none
Map de WSDL, Reference.vb RRS feed

  • Pergunta

  • Olá Pessoal,

    Estou em um projeto WinForms (.NET Framework 4), onde adicionei a ele um Web Reference de um wsdl de Magento 1.x Customizado. OK

    Quando chamo o método do Reference.vb passando um objeto que tenha propriedades com tipos complexos, a serialização do objeto em xml não cria elementos aninhados, ele cria o elemento em outro lugar e referencia com #id. O problema é que ele faz isso até com propriedade que são arrays. Segue exemplo:

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope
        xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:tns="urn:Magento"
        xmlns:types="urn:Magento/encodedTypes"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
            <tns:catalogProductUpdate>
                <sessionId xsi:type="xsd:string">f203d861c6d2c02277884705d70b61f4</sessionId>
                <product xsi:type="xsd:string">38333</product>
                <productData href="#id1" />
                <storeView xsi:type="xsd:string">default</storeView>
                <productIdentifierType xsi:type="xsd:string">sku</productIdentifierType>
            </tns:catalogProductUpdate>
            <tns:catalogProductCreateEntity id="id1" xsi:type="tns:catalogProductCreateEntity">
                <categories href="#id2" />
                <websites href="#id3" />
                <name xsi:type="xsd:string">SAIA I TRICOT 29 SEREIA</name>
                <description xsi:type="xsd:string">SAIA I TRICOT 29 SEREIA</description>
                <short_description xsi:type="xsd:string">SAIA I TRICOT 29 SEREIA</short_description>
                <weight xsi:type="xsd:string">0,4</weight>
                <status xsi:type="xsd:string">2</status>
                <visibility xsi:type="xsd:string">4</visibility>
                <has_options xsi:type="xsd:string">1</has_options>
                <price xsi:type="xsd:string">239</price>
                <special_price xsi:type="xsd:string">71,7</special_price>
                <tax_class_id xsi:type="xsd:string">0</tax_class_id>
                <options_container xsi:type="xsd:string">container1</options_container>
                <additional_attributes href="#id4" />
                <stock_data href="#id5" />
                <configurable_products_data href="#id6" />
                <configurable_attributes_data href="#id7" />
            </tns:catalogProductCreateEntity>
            <soapenc:Array id="id2" soapenc:arrayType="xsd:string[0]" />
            <soapenc:Array id="id3" soapenc:arrayType="xsd:string[1]">
                <Item>base</Item>
            </soapenc:Array>
            <soapenc:Array id="id4" soapenc:arrayType="tns:associativeEntity[4]">
                <Item href="#id8" />
                <Item href="#id9" />
                <Item href="#id10" />
                <Item href="#id11" />
            </soapenc:Array>
            <tns:catalogInventoryStockItemUpdateEntity id="id5" xsi:type="tns:catalogInventoryStockItemUpdateEntity">
                <manage_stock xsi:type="xsd:int">1</manage_stock>
                <use_config_backorders xsi:type="xsd:int">1</use_config_backorders>
            </tns:catalogInventoryStockItemUpdateEntity>
            <tns:dadosProdutosConfigurados id="id6" xsi:type="tns:dadosProdutosConfigurados">
                <dadoProdutoConfigurado href="#id12" />
            </tns:dadosProdutosConfigurados>
            <soapenc:Array id="id7" soapenc:arrayType="tns:dadoAtributoConfigurado[2]">
                <Item href="#id13" />
                <Item href="#id14" />
            </soapenc:Array>
            <tns:associativeEntity id="id8" xsi:type="tns:associativeEntity">
                <key xsi:type="xsd:string">medidas</key>
            </tns:associativeEntity>
            <tns:associativeEntity id="id9" xsi:type="tns:associativeEntity">
                <key xsi:type="xsd:string">cor</key>
            </tns:associativeEntity>
            <tns:associativeEntity id="id10" xsi:type="tns:associativeEntity">
                <key xsi:type="xsd:string">referencia</key>
                <value xsi:type="xsd:string">38333</value>
            </tns:associativeEntity>
            <tns:associativeEntity id="id11" xsi:type="tns:associativeEntity">
                <key xsi:type="xsd:string">tamanho</key>
            </tns:associativeEntity>
            <soapenc:Array id="id12" soapenc:arrayType="tns:dadoProdutoConfigurado[6]">
                <Item href="#id15" />
                <Item href="#id16" />
                <Item href="#id17" />
                <Item href="#id18" />
                <Item href="#id19" />
                <Item href="#id20" />
            </soapenc:Array>
            <tns:dadoAtributoConfigurado id="id13" xsi:type="tns:dadoAtributoConfigurado">
                <label xsi:type="xsd:string">Tamanho</label>
                <values href="#id21" />
                <frontend_label xsi:type="xsd:string">Tamanho</frontend_label>
            </tns:dadoAtributoConfigurado>
            <tns:dadoAtributoConfigurado id="id14" xsi:type="tns:dadoAtributoConfigurado">
                <label xsi:type="xsd:string">Cor</label>
                <values href="#id22" />
                <frontend_label xsi:type="xsd:string">Cor</frontend_label>
            </tns:dadoAtributoConfigurado>
            <tns:dadoProdutoConfigurado id="id15" xsi:type="tns:dadoProdutoConfigurado">
                <produto_id xsi:type="xsd:string">12858</produto_id>
            </tns:dadoProdutoConfigurado>
            <tns:dadoProdutoConfigurado id="id16" xsi:type="tns:dadoProdutoConfigurado">
                <produto_id xsi:type="xsd:string">12859</produto_id>
            </tns:dadoProdutoConfigurado>
            <tns:dadoProdutoConfigurado id="id17" xsi:type="tns:dadoProdutoConfigurado">
                <produto_id xsi:type="xsd:string">12860</produto_id>
            </tns:dadoProdutoConfigurado>
            <tns:dadoProdutoConfigurado id="id18" xsi:type="tns:dadoProdutoConfigurado">
                <produto_id xsi:type="xsd:string">12861</produto_id>
            </tns:dadoProdutoConfigurado>
            <tns:dadoProdutoConfigurado id="id19" xsi:type="tns:dadoProdutoConfigurado">
                <produto_id xsi:type="xsd:string">12862</produto_id>
            </tns:dadoProdutoConfigurado>
            <tns:dadoProdutoConfigurado id="id20" xsi:type="tns:dadoProdutoConfigurado">
                <produto_id xsi:type="xsd:string">12863</produto_id>
            </tns:dadoProdutoConfigurado>
            <tns:dadoAtributoConfiguradoValores id="id21" xsi:type="tns:dadoAtributoConfiguradoValores">
                <dadoAtributoConfiguradoValor href="#id23" />
            </tns:dadoAtributoConfiguradoValores>
            <tns:dadoAtributoConfiguradoValores id="id22" xsi:type="tns:dadoAtributoConfiguradoValores">
                <dadoAtributoConfiguradoValor href="#id24" />
            </tns:dadoAtributoConfiguradoValores>
            <tns:dadoAtributoConfiguradoValor id="id23" xsi:type="tns:dadoAtributoConfiguradoValor">
                <label xsi:type="xsd:string">Tamanho</label>
            </tns:dadoAtributoConfiguradoValor>
            <tns:dadoAtributoConfiguradoValor id="id24" xsi:type="tns:dadoAtributoConfiguradoValor">
                <label xsi:type="xsd:string">Cor</label>
            </tns:dadoAtributoConfiguradoValor>
        </soap:Body>
    </soap:Envelope>

    Há uma configuração para não fazer isso na serialização? Ou há uma maneira de fazer isso sem ter que serializar tudo na mão?

    Desde já agradeço. 

    quarta-feira, 13 de setembro de 2017 18:15

Respostas

  • Boa tarde, Rômulo Martins. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 14 de setembro de 2017 17:27
    Moderador

Todas as Respostas

  • Boa tarde, Rômulo Martins. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 14 de setembro de 2017 17:27
    Moderador
  • Bom dia,

    Por falta de retorno essa thread está sendo encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 18 de setembro de 2017 13:48
    Moderador