#1
|
|||
|
|||
Error En Interfaz Sincronica Entre Sap PI Y R/3
Hola Gente,
no sé si el foro de ABAP es el indicado para esto, pero al menos el tema lo está viendo mi equipo de ABAP :-) A ver si nos pueden ayudar porque es muy extraño. Estamos haciendo un upgrade de ECC 5.0 a ECC 6.0, y al probar una de las interfaces sincronicas con SAP NetWeaver 7.10 (para conversion de Ordenes de Compra) Cuando SAP PI nos devuelve la respuesta SAP R/3 no puede interpretar el XML dando el error El momento exacto es cuando PI proces el IDOC ORDERS y reponde el status, no puede interpretar el XML La llamanda a CALL TRANSFORMATION termina, por algun motivo desconocido, con la excepcion CX_ST_MATCH_ELEMENT. Les adjunto un detalle (en ingles, perdon) con la secuencia de ejecucion de los metodos. Si alguien quiere las pantallas del debug, me pasa su mail, por favor: Order in which the methods are executed until arriving at the exception: 1.- cl_ws_payload_handler=>deserialize( exporting part = lr_part ws_payload = me->ws_payload payload = payload changing bindings = lt_bindings ). 2.- lr_part->deserialize( reader = lr_reader ). 3.- CALL TRANSFORMATION (m_transformation_deserialize) PARAMETERS (l_ref_params) SOURCE XML reader RESULT (l_data_refs). options value_handling = m_opt_value_handling. CATCH cx_xslt_system_error cx_st_error INTO l_exception. cl_soap_util=>log_create_from_exception( ex_root = l_exception add_info = m_transformation_deserialize add_info_name = 'DESERIALIZE_TRANSFORMATION' ). Values of the parameters: a.- m_transformation_deserialize = ‘/1SAI/TXS32F9B78F3FC73361C131’. b.- l_ref_params = Table[0x16]. c.- reader = {O:165*\CLASS=CL_SXML_STRING_READER} d.- l_data_refs = Table[1x16]. NAME INPUT VALUE {A:4*\TYPE=ZDPI_ORDEN_COCO_SUPPLIER_RESP1} 4.- Exception CX_ST_MATCH_ELEMENT. Si testeamos proxy desde la trx SPROXY aparece el error: Detail of the error: The error that this giving is in line 124 of the transformation /1SAI/TXE32F9B78F3FC73361C131: <!-- name /1SAI/TXE32F9B78F3FC73361C131 object CLAS obj_name ZDPI_ORDEN_COCO_CO_SI_R3_ORDEN method EXECUTE_SYNCHRONOUS extended --> <?sap.transform simple?> <tt:transform version="1.0" xmlns:tt="http://www.sap.com/transformation-templates" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sapgdt="http://sap.com/xi/SAPGlobal/GDT" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns&> rx="urn:sap.comroxy:PRD:/1SAI/TXE32F9B78F3FC73361C131:701:2009/02/10" xmlns:n0="urn:dds.com.ar:r3:int_11"> <tt:root name="INPUT" type="ddic:ZDPI_ORDEN_COCO_SUPPLIER_RESP1"/> <tt:variable name="_C_NIL" val="''"/> <tt:template name="ZDPI_ORDEN_COCO_SUPPLIER_RESP1"> <tt:context> <tt:root name="ROOT" type="ddic:ZDPI_ORDEN_COCO_SUPPLIER_RESP1"/> <tt:variable name="_C_1" val="''"/> <tt:variable name="_C_2" val="'3'"/> <tt:variable name="_C_3" val="'3'"/> </tt:context> <tt:ref name="ROOT"> <tt:deserialize> <tt:group> <tt:cond frq="?"> <status> <tt:assign to-var="_C_2" val="'1'"/> <tt:deserialize> <tt:apply name="XSI_NIL_READ"> <tt:with-parameter name="CTRL" var="_C_2"/> </tt:apply> </tt:deserialize> <tt:cond-var check="_C_2!='2'"> <tt:read var="_C_2" type="C"/> <tt:assign to-ref="SUPPLIER_RESPONSE_MSG.STATUS" var="_C_2"/> <tt:switch-var> <tt:cond-var check="initial(var(_C_2))"> <tt:assign to-var="_C_2" val="'1'"/> </tt:cond-var> <tt:cond-var> <tt:assign to-var="_C_2" val="''"/> </tt:cond-var> </tt:switch-var> </tt:cond-var> </status> </tt:cond> <tt:cond frq="?"> <messageId> <tt:assign to-var="_C_3" val="'1'"/> <tt:deserialize> <tt:apply name="XSI_NIL_READ"> <tt:with-parameter name="CTRL" var="_C_3"/> </tt:apply> </tt:deserialize> <tt:cond-var check="_C_3!='2'"> <tt:read var="_C_3" type="C"/> <tt:assign to-ref="SUPPLIER_RESPONSE_MSG.MESSAGE_ID" var="_C_3"/> <tt:switch-var> <tt:cond-var check="initial(var(_C_3))"> <tt:assign to-var="_C_3" val="'1'"/> </tt:cond-var> <tt:cond-var> <tt:assign to-var="_C_3" val="''"/> </tt:cond-var> </tt:switch-var> </tt:cond-var> </messageId> </tt:cond> </tt:group> <tt:group> <tt:cond using="exist($REF)"> <tt:cond-var check="not-initial(_C_1)"> <tt:assign to-ref="CONTROLLER"> <tt:assign to-ref="FIELD" val="'SUPPLIER_RESPONSE_MSG'"/> <tt:assign to-ref="VALUE" var="_C_1"/> </tt:assign> </tt:cond-var> <tt:ref name="SUPPLIER_RESPONSE_MSG"> <tt:cond-var check="not-initial(_C_2)"> <tt:assign to-ref="CONTROLLER"> <tt:assign to-ref="FIELD" val="'STATUS'"/> <tt:assign to-ref="VALUE" var="_C_2"/> </tt:assign> </tt:cond-var> <tt:cond-var check="not-initial(_C_3)"> <tt:assign to-ref="CONTROLLER"> <tt:assign to-ref="FIELD" val="'MESSAGE_ID'"/> <tt:assign to-ref="VALUE" var="_C_3"/> </tt:assign> </tt:cond-var> </tt:ref> </tt:cond> </tt:group> </tt:deserialize> </tt:ref> </tt:template> <tt:template name="XSI_NIL_READ"> <tt:context> <ttarameter name="CTRL" kind="in/out"/> </tt:context> <tt:d-cond> <tt:attribute name="xsi:nil"> <tt:switch> <tt:cond> <tt:text>true</tt:text> <tt:assign to-var="CTRL" val="'2'"/> </tt:cond> <tt:cond> <tt:text>false</tt:text> </tt:cond> <tt:cond> <tt:text>1</tt:text> <tt:assign to-var="CTRL" val="'2'"/> </tt:cond> <tt:cond> <tt:text>0</tt:text> </tt:cond> </tt:switch> </tt:attribute> </tt:d-cond> </tt:template> <tt:template> <tt:clear ref="INPUT"/> Here it is where it marks the error!! <n0:SupplierResponseMsg tt:extensible="deep"> <tt:namespace name="prx"/> <tt:namespace name="n0"/> <tt:ref name="INPUT"> <tt:apply name="ZDPI_ORDEN_COCO_SUPPLIER_RESP1"> <tt:with-root name="ROOT"/> </tt:apply> </tt:ref> </n0:SupplierResponseMsg> </tt:template> </tt:transform> Desde ya cualquier ayuda será bienvenida!! Mil gracias Javier Úlima edición por JayEffpee fecha: 06/05/10 a las 19:03:13. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|