SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

Example Program for Mass Processing IDocs

使用する

FUNCTION IDOC_INPUT_XAMPLE4.*"----------------------------------------------------------------------*"*"Lokale Schnittstelle:*"       IMPORTING*"             VALUE(INPUT_METHOD) LIKE  BDWFAP_PAR-INPUTMETHD*"             VALUE(MASS_PROCESSING) LIKE  BDWFAP_PAR-MASS_PROC*"       EXPORTING*"             VALUE(WORKFLOW_RESULT) LIKE  BDWF_PARAM-RESULT*"             VALUE(APPLICATION_VARIABLE) LIKE  BDWF_PARAM-APPL_VAR*"             VALUE(IN_UPDATE_TASK) LIKE  BDWFAP_PAR-UPDATETASK*"             VALUE(CALL_TRANSACTION_DONE) LIKE  BDWFAP_PAR-CALLTRANS*"       TABLES*"              IDOC_CONTRL STRUCTURE  EDIDC*"              IDOC_DATA STRUCTURE  EDIDD*"              IDOC_STATUS STRUCTURE  BDIDOCSTAT*"              RETURN_VARIABLES STRUCTURE  BDWFRETVAR*"              SERIALIZATION_INFO STRUCTURE  BDI_SER*"       EXCEPTIONS *"              WRONG_FUNCTION_CALLED*"-------------------------------------------------------------------- *---------------------------------------------------------------------- *---------------------- 05 July 1996 ---------------------------------- *---------------------------------------------------------------------- *Example function module for processing inbound IDocs for ALE or EDI.* This example applies for processing** with    -  mass processing (more than one IDoc at a time)**   without -  serialization*           -  customer-exits*           -  calling an ALE-enabled transaction* -------------------- Naming conventions ------------------------------* Internal tables start with 't_' * Internal field strings start with 'f_'*----------------------------------------------------------------------* >> The following line must appear in the global part of your * >> function group: * include mbdconwf.   "Report containing the ALE constants.* The ALE constants start with 'c_'.* Internal table for the document headers.DATA: T_XHEAD LIKE XHEAD OCCURS 0 WITH HEADER LINE.* Internal table for the document items.DATA: T_XITEM LIKE XITEM OCCURS 0 WITH HEADER LINE.DATA: SUBRC LIKE SY-SUBRC,OBJECT_NUMBER LIKE XHEAD-DOCMNT_NO.* Initialize variablesSUBRC = 0.* Fill the ALE export parameters prior to loop through IDocs.CLEAR IN_UPDATE_TASK.CLEAR CALL_TRANSACTION_DONE. "Call Transaction is not used.WORKFLOW_RESULT = C_WF_RESULT_OK.* Loop through the IDocs' control recordsLOOP AT IDOC_CONTRL.*   Process the IDoc and check the data; no database updates!PERFORM IDOC_PROCESS_XAMPLE4 TABLES IDOC_DATAIDOC_STATUSt_xheadt_xitemUSING    IDOC_CONTRLCHANGING OBJECT_NUMBERSUBRC.*   Fill the ALE export parameters.IF SUBRC <> 0. "Error occurredWORKFLOW_RESULT = C_WF_RESULT_ERROR.RETURN_VARIABLES-WF_PARAM = C_WF_PAR_ERROR_IDOCS.RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.APPEND RETURN_VARIABLES.ELSE.          "IDoc processed successfullyRETURN_VARIABLES-WF_PARAM = C_WF_PAR_PROCESSED_IDOCS.RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.APPEND RETURN_VARIABLES.RETURN_VARIABLES-WF_PARAM = C_WF_PAR_APPL_OBJECTS.RETURN_VARIABLES-DOC_NUMBER = OBJECT_NUMBER.APPEND RETURN_VARIABLES.ENDIF.ENDLOOP.         "loop at idoc_contrl.* Once all IDocs have been processed, insert the application data to* the database (as long as there is some data to insert).read table t_xitem index 1.if sy-subrc = 0.        "i.e. at least one entry*   This fictitious function module inserts the data in tables*   t_xhead and t_xitem to the database tables xhead and xitem.*   It has no exceptions, because a failed insert leads to a run-time *   error.CALL FUNCTION 'XAMPLE_OBJECTS_INSERT_TO_DATABASE'TABLESXHEAD = T_XHEADXITEM = T_XITEM.endif.       "if sy-subrc = 0.ENDFUNCTION.          

*-----------------------------------------------------**FORM IDOC_PROCESS_XAMPLE4 **---------------------------------------------------------------------**  This routine adds an application document to tables t_xhead and  **  t_xitem based on the IDoc'S contents.**  Object_Number contains the new document's number. **  If an error occurs, subrc is non-zero, t_idoc_status is filled. **  Note: if more than one error is detected, t_idoc_status contains **  more than one status record.  * *---------------------------------------------------------------------**  -->  F_IDOC_CONTRL    IDoc control record **  -->  T_IDOC_DATA      IDoc data records  **  <--  T_XHEAD          Application document's header records **  <--  T_XITEM          Application document's line item records **  <--  T_IDOC_STATUS    IDoc status records **  <--  OBJECT_NUMBER    Created document's number **  <--  SUBRC            Return code **---------------------------------------------------------------------*FORM IDOC_PROCESS_XAMPLE4TABLES   T_IDOC_DATA    STRUCTURE EDIDDT_IDOC_STATUS  STRUCTURE BDIDOCSTATT_XHEAD        STRUCTURE XHEADT_XITEM        STRUCTURE XITEMUSING    F_IDOC_CONTRL  STRUCTURE EDIDCCHANGING OBJECT_NUMBER  LIKE XHEAD-DOCMNT_NOSUBRC          LIKE SY-SUBRC.* Internal table string for the document headers.DATA: F_XHEAD LIKE XHEAD OCCURS 0 WITH HEADER LINE.* Internal table for one document's items.DATA: T_ONE_XITEM LIKE XITEM OCCURS 0 WITH HEADER LINE.* Number given to the created documentDATA: DOCUMENT_NUMBER LIKE XHEAD-DOCMNT_NO.* Move the data in the IDoc to the internal structures/tables* f_xhead and t_xitem.PERFORM IDOC_INTERPRET TABLES   T_IDOC_DATAT_ONE_XITEMT_IDOC_STATUSUSING    F_IDOC_CONTRLCHANGING F_XHEADSUBRC.* Create the application object if no error occurred so far.IF SUBRC = 0.*   This fictitious function module checks the new object based on the*   data that was read from the IDoc.*   If the checks succeed, the new object's ID is returned in the*   parameter 'document_number'.*   If the checks fail, an exception is raised.*   Note: this function must not insert or modify database records!CALL FUNCTION 'XAMPLE_OBJECT_CHECK'EXPORTING XHEAD           = F_XHEADIMPORTINGDOCUMENT_NUMBER = DOCUMENT_NUMBERTABLESXITEM           = T_ONE_XITEMEXCEPTIONSOTHERS          = 1.IF SY-SUBRC <> 0.SUBRC = 1.*     Put the error message into 't_idoc_status'PERFORM STATUS_FILL_SY_ERRORTABLES   T_IDOC_STATUSUSING    T_IDOC_DATASY''    "Field name'idoc_process_xample'.         "Form routineELSE.*     Fill the remaining export parametersOBJECT_NUMBER = DOCUMENT_NUMBER. "New document's numberappend f_xhead to t_xhead.APPEND LINES OF T_ONE_XITEM TO T_XITEM.t_idoc_status-docnum = f_idoc_contrl-docnum.t_idoc_status-status = c_idoc_status_ok.t_idoc_status-msgty  = 'S'.t_idoc_status-msgid  = your_msgid. "Global variable.t_idoc_status-msgno  = msgno_success."Global variable.t_idoc_status-msgv1  = object_number.APPEND T_IDOC_STATUS.ENDIF.  "if sy-subrc <> 0.ENDIF.  "if subrc = 0.ENDFORM.         

タイトルとURLをコピーしました