SAPфорум.RU
https://sapboard.ru/forum/

Интерфейс с сайтом ЦБ РФ по закачке курсов валют
https://sapboard.ru/forum/viewtopic.php?f=70&t=85355
Страница 3 из 3

Автор:  rabbit [ Пт, дек 26 2014, 15:16 ]
Заголовок сообщения:  Re: Интерфейс с сайтом ЦБ РФ по закачке курсов валют

И запулите Response, который я выложил в ваш Response мэппинг - может быть ответ к вам приходит, да вы с ним сделать ничего не можете.

Автор:  SGPI [ Вт, янв 13 2015, 11:18 ]
Заголовок сообщения:  Re: Интерфейс с сайтом ЦБ РФ по закачке курсов валют

rabbit написал(а):
И запулите Response, который я выложил в ваш Response мэппинг - может быть ответ к вам приходит, да вы с ним сделать ничего не можете.

Не проходит, и всё из-за атрибута xmlns у ValuteDate...Поэтому я немного подправил wsdl и получил такую структуру для Response сообщения ->
Изображение

Результат Request мэппинга
Изображение

Результат Response мэппинга если запулить ваше сообщение
Изображение

Если удалить из кода атрибут xmlns то всё становится гуд
Изображение

:cry:

Автор:  rabbit [ Ср, янв 28 2015, 17:58 ]
Заголовок сообщения:  Re: Интерфейс с сайтом ЦБ РФ по закачке курсов валют

Как вариант:
перед вашим мэппингом вставить xslt - мэппинг, который убирает Namespace.

Code:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml"  encoding="UTF-8" indent="yes"/>
        <xsl:template match="*">
            <xsl:element name="{local-name()}">     
                <xsl:for-each select="@*">               
                    <xsl:attribute name="{local-name()}">
                        <xsl:value-of select="."/>
                    </xsl:attribute>
                </xsl:for-each>
                <xsl:apply-templates/>
            </xsl:element>
        </xsl:template>
    </xsl:stylesheet>

Автор:  SGPI [ Вт, май 19 2015, 11:59 ]
Заголовок сообщения:  Re: Интерфейс с сайтом ЦБ РФ по закачке курсов валют

Коллеги, вопрос решился ещё в январе, но забыл написать.
Ключом к решению проблемы стал xsl мэппинг в response части:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:strip-space elements="*"/>
   
    <xsl:template match="ValuteData">
        <ns1:MT_CurrencyRatesERP_resp xmlns:ns1="NAMESPACE">
            <CursOnDateXMLResult>
                <ValuteData>
                    <xsl:copy-of select="@OnDate"/>
                </ValuteData>
               
                <xsl:for-each select="//ValuteCursOnDate">
                    <ValuteCursOnDate>
                        <Vname><xsl:value-of select="Vname"/></Vname>
                        <Vnom><xsl:value-of select="Vnom"/></Vnom>
                        <Vcurs><xsl:value-of select="Vcurs"/></Vcurs>
                        <Vcode><xsl:value-of select="Vcode"/></Vcode>
                        <VchCode><xsl:value-of select="VchCode"/></VchCode>
                    </ValuteCursOnDate>
                </xsl:for-each>
               
            </CursOnDateXMLResult>
        </ns1:MT_CurrencyRatesERP_resp>
    </xsl:template>
</xsl:stylesheet>



Спасибо всем, кто участвовал в обсуждении и помогал :pivo:

Страница 3 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/