B2bToSAPAperakAction30

Funktionsbeschreibung

Eingehende Aperaks vom Typ Z09 aufwärts werden in eine SAP Tablle geschrieben.

Aus dieser Tabelle werden auch ausgehende Aperaks erzeugt und versendet.

SAP Funtionsbaustein

LOGSYS CHAR14

APERAKUNBREF CHAR35

APERAKUNHREF CHAR35

SENDER CHAR35

RECEIVER CHAR35

APERAKDAT CHAR12

DIR CHAR3

DA E_DEXTASKID

WB EIDESWTNUM

ORIGIDOC EDI_DOCNUM

ORIGTYPE CHAR10

ORIGB2BGUID CHAR50

UNBDE0020 CHAR35

UNHDE0062 CHAR35

BGMDE1004 CHAR35

TRANSACTIONREF CHAR35

ORGDAT CHAR12

ERRCODE CHAR3

ERRTEXT CHAR512

B2BSTAT CHAR3

B2BDAT CHAR12

APERAKB2BGUID CHAR50

ACK CHAR3

ACKDAT CHAR12

Beispiel für eine zugehörige Dictornay Tabelle

LOGSYS CHAR14

APERAKUNHREF CHAR35

SENDER CHAR35

RECEIVER CHAR35

APERAKDAT CHAR12

DIR CHAR3

DA E_DEXTASKID

WB EIDESWTNUM

ORIGIDOC EDI_DOCNUM

ORIGTYPE CHAR10

ORIGB2BGUID CHAR50

UNBDE0020 CHAR35

UNHDE0062 CHAR35

BGMDE1004 CHAR35

TRANSACTIONREF CHAR35

ORGDAT CHAR12

ERRCODE CHAR3

ERRTEXT

B2BSTAT CHAR3

B2BDAT CHAR12

APERAKB2BGUID CHAR50

ACK CHAR3

ACKDAT CHAR12

APERAKUBHREF CHAR35

Beispielprogramm mit dem man Sätze aus der Tabelle auf die B2B schickt.

*&---------------------------------------------------------------------*
*& Report  ZIDE_ISU_B3P_APERAK_SYNC 
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZIDE_ISU_B3P_APERAK_SYNC.

Data: lt_ZB2BAPERAK Type TABLE OF  ZB2BAPERAK with header line,
         lt_ZB2BAPERAKT Type TABLE OF ZB2BAPERAKT.

DATA itab TYPE STANDARD TABLE OF ZB2BAPERAK  WITH HEADER LINE.


Break F000259.

  FIELD-SYMBOLS <lt_ZB2BAPERAKT_line> LIKE LINE OF lt_ZB2BAPERAKT.
 FIELD-SYMBOLS <lt_ZB2BAPERAK_line> LIKE LINE OF lt_ZB2BAPERAK.

  SELECT * FROM ZB2BAPERAKT into TABLE lt_ZB2BAPERAKT
            WHERE  DIR EQ '1' AND B2BSTAT = 'NEW'.
* 1 = ausgehende IDOCs
* 2 = eingehende IDOCs

 LOOP AT lt_ZB2BAPERAKT  ASSIGNING <lt_ZB2BAPERAKT_line>.
   MOVE-CORRESPONDING <lt_ZB2BAPERAKT_line> TO  lt_ZB2BAPERAK.
   append lt_ZB2BAPERAK.
    ENDLOOP.

CALL FUNCTION 'ZIDE_ISU_B3P_APERAK_SYNC' DESTINATION 'B2B_RFC'
  TABLES
    ZIDE_ISU_B3P_APERAK       = lt_ZB2BAPERAK.


  DATA :  wa_zb2baperak LIKE zb2baperak,
          wa_zb2baperakt TYPE zb2baperakt.
  break f000259.

  LOOP AT lt_zb2baperak INTO wa_zb2baperak.

    SELECT SINGLE * FROM zb2baperakt INTO wa_zb2baperakt
      WHERE logsys     EQ wa_zb2baperak-logsys
      AND aperakunhref EQ wa_zb2baperak-aperakunhref
      AND sender       EQ wa_zb2baperak-sender
      AND receiver     EQ wa_zb2baperak-receiver
*      AND aperakdat    EQ wa_zb2baperak-aperakdat
      AND dir          EQ wa_zb2baperak-dir.

      MOVE wa_zb2baperak-b2bstat       TO wa_zb2baperakt-b2bstat.
      MOVE wa_zb2baperak-b2bdat        TO wa_zb2baperakt-b2bdat.
      MOVE wa_zb2baperak-aperakb2bguid TO wa_zb2baperakt-aperakb2bguid.
      MOVE wa_zb2baperak-aperakunbref  TO wa_zb2baperakt-aperakunbref.

      MODIFY zb2baperakt FROM wa_zb2baperakt.


    MODIFY zb2baperakt FROM wa_zb2baperakt.

  ENDLOOP.

write: 'done'.

Beispielprogramm des Fuba. Er wird von der B2B aufgerufen und speichert die neuen Aperaks in der Tabelle ab..

FUNCTION zide_isu_b3p_aperak_sync.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  TABLES
*"      ZIDE_ISU_B3P_APERAK STRUCTURE  ZB2BAPERAK
*"  EXCEPTIONS
*"      SYSTEM_FAILURE
*"      COMMUNICATION_FAILURE
*"----------------------------------------------------------------------
  DATA :  wa_zb2baperak LIKE zb2baperak,
          wa_zb2baperakt TYPE zb2baperakt.

LOOP AT ZIDE_ISU_B3P_APERAK INTO wa_zb2baperak.

    MOVE-CORRESPONDING wa_zb2baperak   TO wa_zb2baperakt.

    MODIFY zb2baperakt FROM wa_zb2baperakt.

ENDLOOP.

ENDFUNCTION.

SAP -> Welt: ausgehede IDOCs

Customizing auf der B2B (JCO 3.0)

Neuer Parameter für RFC Service Statussynchronisation

Der Service für die Statussynchronisation wird erweitert

Um die Eigenschaft
ZIDE_ISU_B3P_APERAK_SYNC_SKL
mit dem Wert
com.b2bbp.services.inbound.sap.status.B2bToSAPAperakAction30

Hier ein Screenshot , allerdings für JCO 2.0: (andere Klassennamen und andere Parameter)

Neuer Service um den Aperak Outbound Channel festzulegen

Wenn man einen anderen Channel für den Versand der Aperak haben möchte als

OUTBOUND_APERAK_SAP dann kann man einn (Dummy Service ) APERAKSAPOUT anlegen und ihm den gewünschten Channel zuorden (in der „Kopfdaten“)

Screenshot der den Versand der APERAK über den Channel zeigt

Weld -> B2B: eingehende IDOCs

Aussortierung der eingehenden IDOCs Z09 , Z10,..

Für die Ermittlung des richtigen Channel für eingehende Aperak, muss die Channel Distribution „org.b2bbp.channels.extension.CheckAperakError“ in der Extension EXT_CHANNEL_DIST konfiguriert werden. Die Einrichtung erfolgt analog zu den schon existierenden.

Beispiel:

registered.classes=org.b2bbp.channels.extension.IndexingService;\

org.b2bbp.channels.extension.CheckDuplicateMessageEntry;\

org.b2bbp.channels.extension.CheckAperakError;\

org.b2bbp.channels.extension.CheckAperakError=*

org.b2bbp.channels.extension.CheckAperakError.executeOnChannelId=*

Die Channel Distribution untersucht die eingehende Aperak auf die Fehlerkategorie und stellt diese im MessageContext unter der Eigenschaft „APERAK_ERROR_TYPE“ zur Verfügung. Über den PatternBased-Ansatz wird die Konfiguration der Channels in die GENERIC_MAP Extension verlagert. Die Konfiguration könnte zum Beispiel so aussehen:

Beispiel (GENERIC_MAP):

CD_APERAK_ERROR.pattern=${template(&(this.APERAK_ERROR_TYPE)_ &(this.FORMAT.partnerCode))}

# Standardverarbeitung Z01-Z08 2.0F

CD_APERAK_ERROR= M=INBOUND_APERAK

# Aussteuerung Z09-Z13 in Richtung SAP

CD_APERAK_ERROR=V_<MPID1>=INBOUND_MPID1

CD_APERAK_ERROR=V_<MPID2>=INBOUND_MPID2

CD_APERAK_ERROR=V_<MPID3>=INBOUND_MPID3

Einspielen der Daten in das SAP System über den Fuba-Aufruf

Hierzu gibt es eine Action (für JCO 3.0):

com.b2bbp.services.inbound.sap.status.B2bToSAPAperakAction30

mit folgenden Eigenschaften und Werten

B3P_JCO_DESTINATION_DATA_PROVIDER <Name des System anlog der Bez.in der Extension>

B3P_LOGSYS <Name des log Systems des SAP Zielmandanten>

B3P_FUBA_TABLE <Name des Fuba, falls nicht gesetzt wird ZIDE_ISU_B3P_APERAK_SYNC gesetzt>

ZIDE_ISU_B3P_APERAK_SYNC <Name des Tableparameter, falls nicht gesetzt wird ZIDE_ISU_B3P_APERAK gesetzt>

Hier ein Screenshot – allerd für JCO 2.0 (andere Parameter und Klassenname)

View Me   Edit Me