✒️ABAP La creación del programa de extracción Z para IDocs de salida
ABAP La creación del programa de extracción Z para IDocs de salida
Creating a Custom Extraction Program for Outbound IDocs
In the realm of ABAP, building a Z extraction program for outbound IDocs is a pivotal task. Let's delve into the steps to accomplish this with clarity and precision.
Step 1: Program Creation
Begin by crafting a Z-type executable program using transaction code SE38. This program will consist of several components to streamline the extraction process effectively.
Step 2: Modularization Approach
Embrace a modular approach to enhance maintainability and readability. Segregate your program into distinct includes:
- Main Include (xxxxxx_top): This include houses essential data definitions and the screen selection definition.
- Processing Include (xxxxxx_f01): Here, embed all necessary routines required for processing.
Step 3: Initialization
Upon initialization (INICIALIZATION event), ensure to initialize internal tables and relevant structures promptly. This sets the groundwork for seamless processing ahead.
Step 4: Screen Selection Validation
Validate the parameters inputted through the selection screen during the AT_SELECTION_SCREEN event. This ensures that only valid inputs proceed for further processing.
Step 5: Kickstarting the Extraction
In the START-OF-SELECTION event:
- Call a subroutine to load the IDoc's control record. Key information such as message type, partner number, output port, and logical system are crucial. Ensure to set the 'direct' field to "1" to denote an outbound IDoc.
- Invoke a subroutine to fetch requisite data from SAP and populate the various data segments of the IDoc accordingly. Develop individual subroutines for loading each distinct data segment type.
- Trigger the subroutine to execute the IDoc's output. Within this subroutine, invoke the MASTER_IDOC_DISTRIBUTE function for IDoc creation and processing.
- Lastly, initiate the RSEOUT00 program using a SUBMIT statement to enforce IDoc output.
Step 6: Activation and Execution
Activate and execute the program. Witness the generation of an outbound IDoc seamlessly.
Step 7: Processing the IDoc
Navigate to transaction BD87 to process the IDoc. As IDoc processing is asynchronous, manual intervention might be necessary. Select the desired IDoc and click on the process button. Confirm successful execution as the IDoc transitions to status 03.
Step 8: Verification
Validate the IDoc creation by accessing transaction WE05. This allows you to visually inspect the generated IDoc for accuracy and completeness.
E.g 1 Base Logic for creating a custom extraction program for outbound IDocs
REPORT Z_EXTRACT_OUTBOUND_IDOC.
*---------------------------------------------------------------------*
* Include xxxxxx_top: Data Definitions and Screen Selection *
*---------------------------------------------------------------------*
INCLUDE xxxxxx_top.
*---------------------------------------------------------------------*
* Include xxxxxx_f01: Processing Routines *
*---------------------------------------------------------------------*
INCLUDE xxxxxx_f01.
*---------------------------------------------------------------------*
* Initialization Event *
*---------------------------------------------------------------------*
INITIALIZATION.
PERFORM initialize_data.
*---------------------------------------------------------------------*
* Screen Selection Event *
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM validate_selection_screen.
*---------------------------------------------------------------------*
* Start of Selection Event *
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM load_idoc_control_record.
PERFORM fetch_and_populate_data_segments.
PERFORM execute_idoc_output.
SUBMIT RSEOUT00.
*---------------------------------------------------------------------*
* Additional Processing *
*---------------------------------------------------------------------*
FORM initialize_data.
" Initialize internal tables and structures
CLEAR gt_data_table.
CLEAR gs_idoc_control_record.
ENDFORM.
FORM validate_selection_screen.
" Validate selection screen parameters
IF gv_parameter1 IS INITIAL.
MESSAGE 'Parameter 1 is mandatory' TYPE 'E'.
ENDIF.
ENDFORM.
FORM load_idoc_control_record.
" Load IDoc control record
" Perform necessary logic to populate gs_idoc_control_record
ENDFORM.
FORM fetch_and_populate_data_segments.
" Fetch data from SAP and populate IDoc segments
" Perform necessary logic to fetch and populate data segments
ENDFORM.
FORM execute_idoc_output.
" Execute IDoc output
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' ...
ENDFORM.
E.g 2
REPORT z_extract_outbound_idoc.
* Data Declarations
DATA: gv_message_type TYPE edimsgt,
gv_idoc_type TYPE edidoct,
gt_idoc_control TYPE TABLE OF edidc,
gt_idoc_data TYPE TABLE OF edidd.
* Fetch data from custom Z table
SELECT *
FROM ztable
INTO TABLE @DATA(lt_ztable).
* Set IDoc control data
gv_message_type = 'MESSAGE'.
gv_idoc_type = 'IDOC'.
* Populate IDoc data
LOOP AT lt_ztable INTO DATA(ls_ztable).
CLEAR gt_idoc_data.
gt_idoc_data-segnam = 'SEGMENT'.
gt_idoc_data-sdata = ls_ztable-field1. " Example field from Z table
APPEND gt_idoc_data.
ENDLOOP.
* Distribute the IDoc using predefined settings
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' IN UPDATE TASK
EXPORTING
master_idoc_control = VALUE edidc( mestyp = gv_message_type
doctyp = gv_idoc_type )
TABLES
communication_idoc_control = gt_idoc_control
master_idoc_data = gt_idoc_data
EXCEPTIONS
error_in_idoc_control = 1
error_writing_idoc_status = 2
error_in_idoc_data = 3
sending_logical_system_unknown = 4
OTHERS = 5.
IF sy-subrc = 0.
COMMIT WORK.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para la Carrera Consultor ABAP.
Jaime Eduardo Gomez Arango
Profesión: Ingeniero de Sistemas y Computaci?n - Espa?a - Legajo: SW34C
✒️Autor de: 149 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero de sistemas y computaci?n con 8 a?os de experiencia el desarrollo frontend & backend (react/node) y en cloud (aws), actualmente desarrollando habilidades en sap btp, ui5, abap y fiori.
Certificación Académica de Jaime Gomez