Error En Interfax Sincronica Entre Sap Pi Y R/3

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • JayEffpee
    Junior Member
    • oct
    • 12

    #1

    Error En Interfax 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
    Editado por última vez por JayEffpee; 06/05/2010, 19:03:13.
Trabajando...