Estou usando o método StockKeepingUnitComplementInsertUpdate, mas um dos parâmetros que é ComplementType eu não estou conseguindo identificar e entender o que e como passar.
Alguém teria alguma dica?
Obs.: Anexei um print da tela do SOAP onde estou consumindo o serviço e também o XML do retorno.
andre1
August 2, 2018, 2:22am
2
Fala @Einstein Braga, tudo joia?
ComplementType
enum
-
Tipo do complemento (Acessório, sugestão ou similar)
Encontrei essa informação no manual das classes e métodos do webservice da VTEX.
Ou seja, como é um campo enum, logo você deverá enviar uma dessas opções no seu XML.
@Nathan Prestes @Augusto Garrucho
Quando passo em vb.net - wsVtex
StockKeepingUnitComplementInsertUpdate
sObjeto.ComplementType = wsVtex.StockKeepingUnitComplementDTOComplementTypeEnum.Similarly
RETORNO:
"The INSERT statement conflicted with the FOREIGN KEY constraint ""FK_SkuComplemento_ProdutoComplementoTipo"". The conflict occurred in database ""myplace"", table ""dbo.ComplementoTipo"", column 'IdComplementoTipo'." & vbCrLf & "The statement has been terminated."
Sabem o que pode ser?
Quando faço o teste no postman ele funciona nesse padrao abaixo:
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:vte="http://schemas.datacontract.org/2004/07/Vtex.Commerce.WebApps.AdminWcfService.Contracts" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<x:Header/>
<x:Body>
<tem:StockKeepingUnitComplementInsertUpdate>
<tem:objStockKeepingUnitComplementDTO>
<vte:ComplementType>Similarly</vte:ComplementType>
<vte:StockKeepingUnitComplements>
<arr:int>1325</arr:int>
<arr:int>1329</arr:int>
</vte:StockKeepingUnitComplements>
<vte:StockKeepingUnitId>1325</vte:StockKeepingUnitId>
</tem:objStockKeepingUnitComplementDTO>
</tem:StockKeepingUnitComplementInsertUpdate>
</x:Body>
</x:Envelope>
Aparentemente é a mesma coisa. O que pode ser?
não funciona, tentei, pois o WS pede pra escolher um enum
'''<remarks/>
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2102.0"), _
System.SerializableAttribute(), _
System.Xml.Serialization.XmlTypeAttribute(TypeName:="StockKeepingUnitComplementDTO.ComplementTypeEnum", [Namespace]:="http://schemas.datacontract.org/2004/07/Vtex.Commerce.WebApps.AdminWcfService.Con"& _
"tracts")> _
Public Enum StockKeepingUnitComplementDTOComplementTypeEnum
'''<remarks/>
Accessory
'''<remarks/>
Sugestion
'''<remarks/>
Similarly
'''<remarks/>
Generic
'''<remarks/>
ShowTogether
End Enum
Desta forma abaixo funciona perfeitamente fazendo o teste no PostMan
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:vte="http://schemas.datacontract.org/2004/07/Vtex.Commerce.WebApps.AdminWcfService.Contracts" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<x:Header/>
<x:Body>
<tem:StockKeepingUnitComplementInsertUpdate>
<tem:objStockKeepingUnitComplementDTO>
<vte:ComplementType>Similarly</vte:ComplementType>
<vte:StockKeepingUnitComplements>
<arr:int>1325</arr:int>
<arr:int>1329</arr:int>
</vte:StockKeepingUnitComplements>
<vte:StockKeepingUnitId>1325</vte:StockKeepingUnitId>
</tem:objStockKeepingUnitComplementDTO>
</tem:StockKeepingUnitComplementInsertUpdate>
</x:Body>
</x:Envelope>
Porem no WS ele pede pra passar obrigatoriamente o enum que informei acima.
sObjeto.ComplementType = wsVtex.StockKeepingUnitComplementDTOComplementTypeEnum.Similarly
aparentemente é a mesma coisa que passar o que funciona no Postman
<vte:ComplementType>Similarly</vte:ComplementType>
Porem retorna o que falei sobre o conflito com FK
RETORNO:
"The INSERT statement conflicted with the FOREIGN KEY constraint ""FK_SkuComplemento_ProdutoComplementoTipo"". The conflict occurred in database ""myplace"", table ""dbo.ComplementoTipo"", column 'IdComplementoTipo'." & vbCrLf & "The statement has been terminated."
nathan
September 26, 2018, 6:49pm
6
Que estranho... eu sinceramente nunca precisei enviar uma informação através do WS nessa função e não sei ao certo como enviar.
Já li a documentação dessa parte e realmente não informa direito como enviar.
Acredito que o melhor caminho seja a abertura de um chamado.