SAP資格過去問ならSAPnavi

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

SAP過去問 (SAP Exam)

Creating a Function Module (Outbound Processing under MC)

使用する

このセクションでは、新しいプロセスコードを介してレポートRSNASTED(フォームルーチンNEW_DYN_PERFORM)によって識別される汎用モジュールを登録する方法について説明します。この汎用モジュールは、アプリケーションデータを新しい基本タイプで入力します。RSNASTEDは、EDI処理プログラムとしてテーブルTNAPRにあります。メッセージコントロールはこのテーブルを読み取り、RSNASTEDを呼び出すことができます。

プロセス

  1. 機能ビルダを使用して、新しい汎用モジュールを登録します。

  2. セグメントを汎用グループのグローバルデータとして登録します。汎用モジュールは、アプリケーションデータをアプリケーションテーブルから対応するセグメントに転送する必要があります。

  3. 汎用モジュールをアクティブにします。機能ビルダの第一画面で、を選択します活性化

アプリケーションの略語

M(材料管理)

処理タイプ

通常、すぐに開始します

正式なパラメータ

参照構造

説明

インポートパラメータ

物体

MC

現在のメッセージ制御レコード

CONTROL_RECORD_IN

EDIDC

受信者情報が含まれています

パラメータのエクスポート

OBJECT_TYPE

WFAS1-ASGTP

ビジネス・オブジェクト・リポジトリー(BOR)内のアプリケーション・オブジェクトのオブジェクト・タイプ

CONTROL_RECORD_OUT

EDIDC

送信者情報と、IDocテーブルが入力された日時が含まれます。

テーブル

INT_EDIDD

EDIDD

IDocデータレコードの内部テーブル

FUNCTION IDOC_OUTPUT_TESTER.*"------------------------------------------------------------------*"*"Globale Schnittstelle:*"       IMPORTING*"             VALUE(OBJECT) LIKE NAST STRUCTURE NAST*"             VALUE(CONTROL_RECORD_IN) LIKE EDIDC STRUCTURE EDIDC*"       EXPORTING*"             VALUE(OBJECT_TYPE) LIKE WFAS1-ASGTP*"             VALUE(CONTROL_RECORD_OUT) LIKE EDIDC STRUCTURE EDIDC*"       TABLES*"             INT_EDIDD STRUCTURE EDIDD*"       EXCEPTIONS*"             ERROR_MESSAGE_RECEIVED*"-------------------------------------------------------------------  CLEAR CONTROL_RECORD_OUT.* fill help fields  H_KAPPL = OBJECT-KAPPL.  H_EBELN = OBJECT-OBJKY.  H_PARVW = OBJECT-PARVW.* fill control record  MOVE CONTROL_RECORD_IN TO CONTROL_RECORD_OUT.  CONTROL_RECORD_OUT-DIRECT = '1'.  CONTROL_RECORD_OUT-SERIAL = SY-DATUM.  CONTROL_RECORD_OUT-SERIAL+8 = SY-UZEIT.* read orders  PERFORM ORDERS_READ.* fill idoc table  PERFORM IDOC_TABLE_FILL.* provide object type  OBJECT_TYPE = 'BUS2012'.ENDFUNCTION.FORM ORDERS_READ.  SELECT SINGLE * FROM T000 WHERE MANDT EQ SY-MANDT.* read header data  SELECT SINGLE * FROM EKKO WHERE EBELN EQ H_EBELN.  IF SY-SUBRC NE 0.    MESSAGE E751 WITH H_EBELN.  ENDIF.  EDIDC-SNDPRT = 'MM'.  EDIDC-SNDPRN = EKKO-EKORG.* read data of supplier (book keeping view)  SELECT SINGLE * FROM LFB1 WHERE LIFNR = EKKO-LIFNR                               AND BUKRS = EKKO-BUKRS.* fill purchasing organization  IF LFB1-EIKTO EQ SPACE.    LFB1-EIKTO = EKKO-EKORG.  ENDIF.* read position data  SELECT * FROM EKPO WHERE EBELN = EKKO-EBELN.    MOVE-CORRESPONDING EKPO TO XEKPO.    APPEND XEKPO.  ENDSELECT.* read schedule lines  SELECT * FROM EKET WHERE EBELN = EKKO-EBELN.  ENDSELECT.ENDFORM.                               " ORDERS_READFORM IDOC_TABLE_FILL.* header data  PERFORM HEADER_E1HEAD_FILL.* data in position  PERFORM POSITION_E1ITEM_FILL.ENDFORM.                                " IDOC_TABLE_FILLFORM HEADER_E1HEAD_FILL.  CLEAR INT_EDIDD.  CLEAR E1HEAD.  INT_EDIDD-SEGNAM = 'E1HEAD'.* fill fields* document number  E1HEAD-BELNR = EKKO-EBELN.* Die folgenden Konstanten (Zuordnung Kunde/Lieferant zur * Verkaufsorganisation) werden nur in die Segmente geschrieben, damit* im Fallbeispiel die nachfolgende Eingangsverarbeitung im SD* funktioniert. Beim "reellen" Terminauftrag im SD Eingang pflegt man* hierzu Customizing-Tabellen, oder die Zuordnung wird vom* EDI-Subsystem übernommen.* sales organization (not supplied -> constant)    E1HEAD-VKORG = '1000'.* distribution channel (not supplied -> constant)    E1HEAD-VTWEG = '10'.* division (not supplied -> constant)    E1HEAD-SPART = '00'.  ENDSELECT.* order typeE1HEAD-AUART = 'NB'.* date of delivery  IF EKET-EINDT NE 0.    E1HEAD-WLDAT = EKET-EINDT.  ELSE.    E1HEAD-WLDAT = SY-DATUM + 21.  ENDIF.  CONDENSE E1HEAD-WLDAT.* ordering party / sold to party (AG)  E1HEAD-AUGEB = LFB1-EIKTO.* supplier  E1HEAD-LIEF = EKKO-LIFNR.* order date  E1HEAD-BSTDK = EKKO-BEDAT.  CONDENSE E1HEAD-BSTDK.* order time  E1HEAD-BELUZT = SY-UZEIT.* move data to segment area of data record  MOVE E1HEAD TO INT_EDIDD-SDATA.* append data record to internal table  APPEND INT_EDIDD.* customer function in order to change header segment  CALL CUSTOMER-FUNCTION '001'       EXPORTING            PI_EKKO = EKKO       IMPORTING            PE_EKKO = EKKO       TABLES            PT_IDOC_DATA_RECORDS = INT_EDIDD.ENDFORM.                               " HEADER_E1HEAD_FILLFORM POSITION_E1ITEM_FILL.* loop at positions  LOOP AT XEKPO.    CLEAR INT_EDIDD.    CLEAR E1ITEM.    INT_EDIDD-SEGNAM = 'E1ITEM'.    MOVE XEKPO TO EKPO.* fill fields* position number    E1ITEM-POSEX = EKPO-EBELP.    CONDENSE E1ITEM-POSEX.* material number    IF EKPO-MATNR NE SPACE.       E1ITEM-MATNR = EKPO-MATNR.    ENDIF.* amount    E1ITEM-MENGE = EKPO-MENGE.    CONDENSE E1ITEM-MENGE.* unit    PERFORM ISO_CODE_UNIT USING EKPO-MEINS.    E1ITEM-BMEINH = EKPO-MEINS.* material number of supplier    IF EKPO-IDNLF NE SPACE.       E1ITEM-LMATNR = EKPO-IDNLF.    ENDIF.* move data to segment area of data record    MOVE E1ITEM TO INT_EDIDD-SDATA.* append data record to internal table    APPEND INT_EDIDD.* customer function for position segment  CALL CUSTOMER-FUNCTION '002'       EXPORTING            PI_EKPO              = EKPO       IMPORTING            PE_EKPO              = EKPO       TABLES            PT_IDOC_DATA_RECORDS = INT_EDIDD.ENDFORM.                               " HEADER_E1HEAD_FILL  ENDLOOP.ENDFORM.                                " POSITION_E1ITEM_FILLFORM ISO_CODE_UNIT USING ICU_UNIT.  CHECK ICU_UNIT NE SPACE.  CALL FUNCTION 'UNIT_OF_MEASURE_SAP_TO_ISO'       EXPORTING            SAP_CODE    = ICU_UNIT       IMPORTING            ISO_CODE    = ISO_UNIT       EXCEPTIONS            NOT_FOUND   = 01            NO_ISO_CODE = 02.  IF SY-SUBRC NE 0.    MESSAGE I764 WITH EKPO-EBELP ICU_UNIT.  ENDIF.  MOVE ISO_UNIT TO ICU_UNIT.ENDFORM.                                " ISO_CODE_UNIT         

IDOC_OUTPUT_TESTERからのグローバルデータ

*- Tabellen ------------------------------------------------------*TABLES:        EKPO,        EKET,        LFB1,        EDIDC,        E1HEAD,        E1ITEM,        T000,        EDSDC.* help fieldsDATA:        H_EBELN LIKE EKKO-EBELN,        H_KAPPL LIKE NAST-KAPPL,        H_PARVW LIKE EKPA-PARVW.* iso codesDATA:        ISO_UNIT LIKE T006-ISOCODE.TYPE-POOLS ISOC.*- Direktwerte für Return_variables ---------------------------------DATA: EID LIKE BDWFRETVAR-WF_PARAM VALUE 'Error_IDOCs',        PID LIKE BDWFRETVAR-WF_PARAM VALUE 'Processed_IDOCs',        APO LIKE BDWFRETVAR-WF_PARAM VALUE 'Appl_Objects',        APE LIKE BDWFRETVAR-WF_PARAM VALUE 'Appl_Object'.*- Hilfsfelder für Änderungsbeleg ----------------------------------*  INCLUDE FM06ECDT.*- Common-Part für Änderungsbeleg ----------------------------------*  INCLUDE FM06LCCD.*- Direktwerte -----------------------------------------------------*  INCLUDE FMMEXDIR.            

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