Lo que vamos a hacer es realizar una conexión desde Navision a un servicio web de tipo soap.en princpio con este método se deberia de poder llamar a una función con parámetros pero a veces suele ocasionar problemas.
Creamos las siguientes variables de tipo automation.
locautSoapHttpConnector
Automation 'Microsoft Soap Type Library v3.0'.HttpConnector30
locautSoapSerializer
Automation 'Microsoft Soap Type Library v3.0'.SoapSerializer30
locautXmlDoc Automation 'Microsoft XML, v6.0'.DOMDocument
IF ISCLEAR(LocautSoapHttpConnector) THEN
CREATE(LocautSoapHttpConnector);
LocautSoapHttpConnector.Property('ProxyServer','isaserver');
LocautSoapHttpConnector.Property('ProxyPassword','proxypass');
LocautSoapHttpConnector.Property('ProxyUser','username');
LocautSoapHttpConnector.Property('EndPointURL','http://servername:7047/DynamicsNAV/ws/coduenit/');
LocautSoapHttpConnector.Connect;
LocautSoapHttpConnector.Property('SoapAction','http://servername:7047/DynamicsNAV/ws/coduenit/thefunction');
LocautSoapHttpConnector.BeginMessage;
CREATE(LocautSoapSerialize);
LocautSoapSerialize.Init(LocautSoapHttpConnector.InputStream);
LocautSoapSerialize.StartEnvelope('SOAP','STANDARD');
LocautSoapSerialize.StartBody;
LocautSoapSerialize.StartElement(Elemento o nodo);
LocautSoapSerialize.StartElement('Elemento hijo');
LocautSoapSerialize.WriteString('Parametro valido');
LocautSoapSerialize.EndElement;
LocautSoapSerialize.EndElement;
LocautSoapSerialize.EndBody;
LocautSoapSerialize.EndEnvelope;
LocautSoapHttpConnector.EndMessage;
IF ISCLEAR(XMLDOM) THEN
CREATE(XMLDOM);
//Cargar la respuesta del servicio web esta es un fichero xml
XMLDOM.load(LocautSoapHttpConnector.OutputStream);
XMLNode := XMLDOM.selectSingleNode('//valid');
No hay comentarios:
Publicar un comentario