I have noticed that 1c WS implememation does not work with a lot of web services published. I have tried to make it work all the way from 8.3.6 until now.
I have prepared and example to test
Code |
---|
&AtServer Procedure TestSOAPAtServer() Clave = "1801201801099271313500120010020000004247142553011"; SSL = New OpenSSLSecureConnection(); WSD = New WSDefinitions("https://cel.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantesOffline?wsdl",,,,,SSL); WSProxy = New WSProxy(WSD,"http://ec.gob.sri.ws.autorizacion", "AutorizacionComprobantesOfflineService", "AutorizacionComprobantesOfflinePort",,15, SSL); Response = WsProxy.autorizacionComprobante(Clave); EndProcedure |
As you can imagine, it fails. And there is no way I can ask my service provider to make any changes to the publication, because it works just fine with java, c# and other applications.
Quote |
---|
{DataProcessor.Consultar.Form.Form.Form(156)}: Error calling context method (autorizacionComprobante) Response = WsProxy.autorizacionComprobante(Clave); , reason: Web service call error. Service operation call error: { , reason: Web service call error. Unknown error. Error converting XDTO data: Read object of type - [1,503] Additional property validation: form: Item name: autorizacion , reason: Error converting XDTO data: Read object of type - [1,503] Additional property validation: form: Item name: autorizacion , reason: XDTO data validation error: Object structure does not match type: |
Is there any way to make it work without manually parsing XML? Actually I have already created a library to replase 1C SOAP services, but it does not seems to be the rihgt way to proceed. I am really hoping it could be done by using standard functions and objects.