Wie kann ich Felder beim erstellen des IDOCs noch manipulieren z.B. bei der Standard ALE SST HRMD_ABA


Bei der BAdI Ausgangsverarbeitung bei den HR Stammdaten kann das Business Add-In HRALE00OUTBOUND_IDOC in der Ausgangsverarbeitung verwendet werden.

Mit der Methode IDOC_DATA_FOR_RECEIVER_MODIFY können die Daten des IDocs empfängerabhängig bearbeitet werden.

Hier noch ein Beispiel Coding wie man dies tun kann.

METHOD if_ex_hrale00outbound_idoc~idoc_data_for_receiver_modify.

************************************************************************
****************************             *******************************
***************************    MREGOTZ    ******************************
****************************             *******************************
************************************************************************
*&H
*&H BADI               : HRALE00OUTBOUND_IDOC
*&H Implementierung    : Z_HRMD_ABA_INIT
*&H Methode            : IDOC_DATA_FOR_RECEIVER_MODIFY
*&H PROGRAMMTITEL      : IF_EX_HRALE00OUTBOUND_IDOC~IDOC_DATA_FOR_RECEIVER_MODIFY
*&H ZWECK              : Manipulation IDOC Felder die ins CRM geschickt werden
*&H AUTOR              : Regotz Michel
*&H DATUM              : 14.11.2015
*&H VORAUSSETZUNGEN    : HRMD_ABA
*&H SAP-MODUL          : HR/IDOC Verarbeitung
*&H
*&H Company/Department : T-Systems AG
*&H Phone              : +41 76 334 86 22 (Mobil)
*&H E-Mail             : Michel.Regotz@T-Systems.com
*&H
************************************************************************

************************************************************************
* Datendeklaration
************************************************************************

    DATA:  gt_idoc_data TYPE         edidd_tt,
           gs_idoc_data LIKE LINE OF gt_idoc_data.

    DATA:  gs_e1p0002 TYPE e1p0002,
           gs_e1p0006 TYPE e1p0006.

************************************************************************
* IDOC Daten Manipulieren
************************************************************************
    IF receiver 'I42_075'.
************************************************************************
* E1P0002
************************************************************************
      "Lese im IDOC die Zeile mit dem IT0002
      READ TABLE idoc_data INTO gs_idoc_data WITH KEY segnam 'E1P0002'.
      BREAK-POINT.
      "Wandle den IDOC String in eine Struktur um
      gs_e1p0002 gs_idoc_data-sdata.
      "Lösche den vorhandenen String
      CLEAR gs_idoc_data-sdata.
      "Lösche die Felder die man im IDOC entfernen möchte
      CLEAR:
      gs_e1p0002-refex,
      gs_e1p0002-ordex,
      gs_e1p0002-itbld.
      
      "Wandle die bearbeitete Struktur wieder in einen String um.
      CALL METHOD cl_abap_container_utilities=>fill_container_c
        EXPORTING
          im_value               gs_e1p0002
        IMPORTING
          ex_container           gs_idoc_data-sdata
        EXCEPTIONS
          illegal_parameter_type 1
          OTHERS                 2.
      IF sy-subrc <> 0.
        "Mache nichts
      ENDIF.
      "Schreibe die Daten ins IDOC
      BREAK-POINT.
      MODIFY idoc_data FROM gs_idoc_data TRANSPORTING sdata WHERE segnam 'E1P0002'.

************************************************************************
* E1P0006
************************************************************************
      "Lese im IDOC die Zeile mit dem IT0006
      READ TABLE idoc_data INTO gs_idoc_data WITH KEY segnam 'E1P0006'.
      BREAK-POINT.
      "Wandle den IDOC String in eine Struktur um
      gs_e1p0006 gs_idoc_data-sdata.
      "Lösche den vorhandenen String
      CLEAR gs_idoc_data-sdata.
      "Lösche die Felder die man im IDOC entfernen möchte
      CLEAR:
      gs_e1p0006-itxex,
      gs_e1p0006-refex,
      gs_e1p0006-ordex,
      gs_e1p0006-itbld.
      "Initialisiere die Felder Strasse Ort PLZ und Land
      CLEAR:
       gs_e1p0006-stras,
       gs_e1p0006-ort01,
       gs_e1p0006-pstlz,
       gs_e1p0006-land1.
      "Befülle die Felder Strasse Ort PLZ und Land neu.
      gs_e1p0006-stras 'Hillibilly'.
      gs_e1p0006-ort01 'NewYork'.
      gs_e1p0006-pstlz '9999'.
      gs_e1p0006-land1 'US'.
      "Wandle die bearbeitete Struktur wieder in einen String um.
      CALL METHOD cl_abap_container_utilities=>fill_container_c
        EXPORTING
          im_value               gs_e1p0006
        IMPORTING
          ex_container           gs_idoc_data-sdata
        EXCEPTIONS
          illegal_parameter_type 1
          OTHERS                 2.
      IF sy-subrc <> 0.
        "Mache nichts
      ENDIF.
      "Schreibe die Daten ins IDOC
      BREAK-POINT.
      MODIFY idoc_data FROM gs_idoc_data TRANSPORTING sdata WHERE segnam 'E1P0006'.
    ELSE.
      "mache nichts
    ENDIF.

  ENDMETHOD.

        search this website

Regotz Michel