Envío y Recepción de IDOCs Por HTTP en Formato XML
Envío y Recepción de IDOCs Por HTTP en Formato XML
Envío y Recepción de IDOCs Por HTTP en Formato XML
Queremos utilizar la interfase IDOC para una interfase con un software externo utilizando el
protocolo HTTP y el formato XML. Esta configuracin tiene diversas ventajas:
Este documento es una gua de ejemplo para configurar el sistema SAP mediante el envo de
un maestro de material a un servidor HTTP externo, y la recepcin de otro maestro de material
enviado desde un servidor HTTP externo a SAP.
1. Vamos a la transaccin WE21 y creamos una puerta XML-HTTP, indicando el destino RFC
que hemos creado en el punto anterior. Indicamos el tipo de contenido text/XML.
CONFIGURACIN DE LOS ACUERDOS DE INTERLOCUTOR
Hay que definir los acuerdos de interlocutor. Para este ejemplo, lo haremos con el IDOC de
maestro de materiales, el MATMAS:
2. Definimos los acuerdos de interlocutor para el sistema lgico, indicando las clases de
mensaje de salida que vayamos a necesitar. Transaccin WE20:
PROVAR EL ENVO
1. En nuestro caso, como estamos probando el envo del MATMAS, debemos configurar
primero el modelo de distribucin ALE. Transaccin BD64:
5. Vemos tambin que hay una cabecera con datos inequvocamente enviados desde SAP:
6. Y en el cuerpo (body) vemos el IDOC en formato XML como una larga ristra de texto:
Step 2
Check the configuration of the Internet Communication Framework (t-code SICF) in your system. What is
really important is the Information on Port and Host (Ctrl+Shift+F12) button:
Step 3
You can make a connection test from SICF. Find the sap\\public\\ping service on the list, right-click on it
and choose "Test service". In the popup window that appears, choose to allow connection (for instante,
"Always allow"). Your internet browser's window will be called with the following path:
http://[server]:[port]/sap/public/ping?sap-client=[client]
The [server] and [port] will be equal to what you've seen in Step 2, and [client] will be your system's client.
As a result, you should see a simple HTML page saying: "Server reached successfully".
Performing this step is not required, but can help you verify that your configuration is really working and
you most probably will not experience problems in further steps.
En mi caso, me enconctr con que haba que activar un Servicio addicional en la SICF, el
idoc_xml: default_hostsapbc idoc_xml
Step 4
Prepare your application that will post the IDocs to the SAP system. Use the path:
http://[server]:[port]/sap/bc/idoc_xml?sap-client=[client]
to pass the data from your application to SAP
Step 5
Usaremos un programa llamado POSTMAN que nos permite probar el envo. Para ello
necesitamos Google Chrome. Vamos a extensiones y buscamos postman, y lo instalamos:
Ejecutamos el Postman:
Hay que seleccionar POST en el desplegable (vamos a enviar datos por HTTP).
Tenemos que indicar el servicio (en nuestro ejemplo:
http://sappw6.seidor.es:8000/sap/bc/idoc_xml?sap-client=201).
En el cuerpo (body) hay que indicar tipo RAW y XML. Pegamos el texto del IDOC que
tenamos en formato XML del paso anterior. Para que entre el IDOC, modificamos lo
siguientes valores de campos.
o El caso concreto del campo DOCNUM, debe ser un nmero que no se repita, a
pesar de que el nmero de IDOC lo va a generar SAP; es una manera de no
permitir duplicados.
o En el segmento de cabecera del IDOC:
<DOCNUM>0000000000013604</DOCNUM> *** nmero no repetido
<DIRECT>2</DIRECT> *** 2 = idoc de entrada a SAP
<SNDPOR>PUTSREQ</SNDPOR> *** Puerta remitente
<SNDPRT>LS</SNDPRT> *** Tipo de interlocutor EDI del remitente
<SNDPRN>PUTSREQ</SNDPRN> *** Interlocutor EDI del remitente
<RCVPOR>SAPPW6</RCVPOR> *** nuestro sistema SAP
o En el segmento E1MARAM, hay que escoger un cdigo de material que no
exista, para que lo pueda crear de cero:
<MATNR>HT-PAL02</MATNR>
Luego, vamos a la pestaa Authorization e indicamos type Basic Auth y nuestro usuario y
password de SAP:
Nos aseguramos tambin que en la pestaa Headers aparezcan estas dos lneas:
Clicamos sobre el botn SEND
Por alguna razn, a veces la primera vez falla, as que probamos de nuevo. Si todo va bien, el
resultado es:
Step 6
Ahora lo comprobamos en SAP. Primero, en la transaccin WE02, debera aparecernos el IDOC
entrante:
Este nos ha quedado en estado pendiente. Podemos forzar que se procese con la transaccin
BD87: