Struttura per Content Conversion Sender

Scenario

File sender con Content Conversion.

Requisito

Strutturare il contenuto del file in un Message Type di PO.

Definizione record da indicare in Recordset Structure del content conversion

dt_xxx_rec

Field1

Field2

 

Struttura da indicare in Recordset Name del content conversion

dt_xxx_struct

dt_xxx_rec (field: item)

 

Struttura referenziata dal message type in Document Name

dt_xxx

dt_xxx_struct

dt_xxx_rec


Configurazione RFC Destination

Scenario

Proxy receiver.

Requisito

Configurare la destinazione RFC da associare al canale proxy.

Sulle istanze PI/PO con double stack, è possibile procedere con la definizione della Destinazione RFC tramite TCODE SM59 (ABAP stack) oppure tramite la definizione di una Destination tramite il menu Netweaver Administrator, nwa, (Java stack).

Per le istanze single stack è disponibile, naturalmente, solo la modalità nwa.

In alternativa alla definizione esterna del puntamento al proxy si può definire un communication channel di tipo XI direttamente nell’Integration Builder Configuration.

Modalità ABAP stack

Sull’istanza ABAP di XI/PI lanciare la transazione SM59.

Il Service No. corrisponde alla porta sulla quale risponde il servizio proxy ed è determinato da 8000+SID. Quindi, per SID=10 il service no. è 8010.

Modalità Java stack

Su PI/PO.

http://<server>:<port>/nwa


Struttura JDBC receiver syncro

In uno scenario syncro in cui il receiver è un JDBC, es. proxy -> jdbc -> proxy, in cui la query verso JDBC è di tipo SELECT, per vedere il formato in cui l’adapter JDBC formatta il resultset procedere come segue.

Message Monitor Java

Selezionare il messaggio corrispondente alla response e premere Details

Sul tab Message Content aprire la lista Message Version e selezionare Version 0 quindi il Message Part payload-xxxxxxxxx@sap.com

Dopo che l’adapter ha ceduto il payload all’integration Engine, la corrispondente versione del payload assume il formato dell’output del mapping

Il nome che l’adapter attribuisce al Message Type di response deriva da quello di request al quale aggiunge “_JDBC_response“; se, per esempio il message type di request si chiama MT_PayloadCurveCarico, quello di response si chiamerà MT_PayloadCurveCarico_JDBC_response.


Struttura & mapping JDBC receiver

Dato il datatype JDBC, l’adapter genera una query per ciascuna occorrenza dell’elemento statement o comunque si chiami, gmerci_db nella figura sotto.

<Mt_outbound>

1..1

     
<recordset>

1..1

—>

<Mt_jdbc_inbound>

1..1

<row>

1..n

—>

<stmt>

1..n

   

Constant

<tableelm>

1..1

    Constant @action

0..1

    Constant <access>

1..1

    Constant <key>

1..1


ALEAUD

Qualora in uno scenario Idoc outbound venga generato un indesiderato flusso di ack dal receiver verso l’ECC sender, sull’SXI_MONITOR sii presenterà nella seguente forma per via del fatto che in ECC non è gestito il corrispondente ALEAUD

Per disattivare in PI la generazione del messaggio di ack, eseguire da SE38 il report IDX_NOALE.

Valorizzare i parametri come da idoc di cui disattivare il feedback

Togliere i flag. Non è richiesto alcun salvataggio.


Control Record in automatico

Per fare in modo che l’adapter IDoc compili automaticamente il record di controllo per gli idoc in inbound (receiver) ad ECC occorre assegnare al Business System sender il Logical System configurato nella WE20 per ricevere l’IDoc.

SAP ECC

TCODE WE20

SLD (verificare se necessario)

Associare al Business System il Logical System Name

Integration Builder

Doppio click sul BS sender

SAP PI

Modalità valida per istanze double-stack.

TCODE IDX1

Definire una coppia porta / mandante legata alla destinazione RFC (SM59) che punta l’ECC receiver.

Il nome della porta è da standard SAP: “SAP”+SYSID inbound


createContext

Crea contesti in numero pari ai parametri della function.

Utile per generare un array di parametri da passare in input a qualcosa.

public void createContext(String[] parm1, String[] parm2, ResultList result, Container container) throws StreamTransformationException{
AbstractTrace _trc = container.getTrace();
//_trc.addWarning("parm1:"+parm1.length);

result.clear();
result.addValue(parm1[0]);
result.addValue(parm2[0]);

return;

}

In questo esempio, l’udf si aspetta 2 parametri che generano altrettanti contesti in uscita


Generali

SAP PI 7.31

SAP_ALM_ADMINISTRATOR

SAP_ALM_CUSTOMIZER

SAP_BC_AI_LANDSCAPE_DB_RFC

SAP_BC_ALM_ADMIN

SAP_BC_ALM_ALERT_USER

SAP_BC_ALM_CUST

SAP_BC_BASIS_ADMIN

SAP_BC_BASIS_MONITORING

SAP_BC_CSMREG

SAP_BC_DB_ADMIN_DB2

SAP_BC_DB_ADMIN_DB4

SAP_BC_DB_ADMIN_DB6

SAP_BC_DB_ADMIN_MSS

SAP_BC_DB_ADMIN_ORA

SAP_BC_DB_ADMIN_SDB

SAP_BC_LVC_ADMINISTRATOR

SAP_BC_TREX_ADMIN

SAP_BC_WEBSERVICE_ADMIN

SAP_BC_WEBSERVICE_PI_CFG_SRV

SAP_J2EE_ADMIN

SAP_SLD_ADMINISTRATOR

SAP_SLD_CONFIGURATOR

SAP_SLD_DEVELOPER

SAP_SLD_GUEST

SAP_SLD_ORGANIZER

SAP_XI_ADMINISTRATOR

SAP_XI_ADMINISTRATOR_ABAP

SAP_XI_ADMINISTRATOR_J2EE

SAP_XI_APPL_SERV_USER

SAP_XI_BPE_ADMINISTRATOR_ABAP

SAP_XI_BPE_ADMINISTRATOR_J2EE

SAP_XI_BPE_CONFIGURATOR_ABAP

SAP_XI_BPE_MONITOR_ABAP

SAP_XI_BPE_MONITOR_J2EE

SAP_XI_CONFIGURATOR

SAP_XI_CONFIGURATOR_ABAP

SAP_XI_CONFIGURATOR_J2EE

SAP_XI_CONTENT_ORGANIZER

SAP_XI_CONTENT_ORGANIZER_ABAP

SAP_XI_CONTENT_ORGANIZER_J2EE

SAP_XI_DEMOAPP

SAP_XI_DEMOAPP_EXECUTE

SAP_XI_DEVELOPER

SAP_XI_DEVELOPER_ABAP

SAP_XI_DEVELOPER_J2EE

SAP_XI_DISPLAY_USER_ABAP

SAP_XI_IS_SERV_USER

SAP_XI_IS_SERV_USER_MAIN

SAP_XI_MONITOR

SAP_XI_MONITOR_ABAP

SAP_XI_MONITOR_J2EE

SAP_XI_RWB_SERV_USER

 

SAP PO 7.5

SAP_SLD_ADMINISTRATOR

SAP_SLD_CONFIGURATOR

SAP_SLD_DEVELOPER

SAP_SLD_GUEST

SAP_SLD_ORGANIZER

SAP_XI_ADMINISTRATOR_J2EE


Sbloccare messaggi in holding

I messaggi in holding sono bloccati in una coda Java EOIO e sono rilevabili dal Message Monitor dell’Adapter.

Può essere utile questo articolo

http://scn.sap.com/people/stefan.grube/blog/2006/04/27/how-to-deal-with-stuck-eoio-messages-in-the-xi-30-adapter-framework

Per sbloccare le code seguire questi passi:

  1. Individuare il messaggio più vecchio
  2. Cercare per il Receiver o il Sender messaggi in errore nella data del primo messaggio in holding
  3. Risolverlo o cancellarlo
  4. Selezionare gli holding e riprocessarli