SAP ABAP/4學習---BDC批次輸入寫成內表程式
轉來的:SAP ABAP/4學習---BDC批次輸入寫成內表程式,謝謝作者。[@more@]*-----------------------------------------------------------------------
* Program ID :ZTEST904_BDC
* Program Name :ZTEST904_BDC
*-----------------------------------------------------------------------
* DESCRIPTION :這個程式是學習如何透過程式來呼叫
* BDC自動匯入資料
*-----------------------------------------------------------------------
REPORT ZTEST904_BDC.
* 定義個BDC格式的內表
**************************************************
DATA : BEGIN OF I_BDCDATA OCCURS 0,
*BDC的程式名字,比如事物碼MM01的程式名字為SAPLMGMM(sap標準程式)
PROGRAM LIKE BDCDATA-PROGRAM,
*BDC Dynpro 號碼
DYNPRO LIKE BDCDATA-DYNPRO,
*BDC BDC Dynpro 開始
DYNBEGIN LIKE BDCDATA-DYNBEGIN,
*BDC 專案名字
FNAM LIKE BDCDATA-FNAM,
*BDC 專案名字的附加值
FVAL LIKE BDCDATA-FVAL,
END OF I_BDCDATA.
DATA: BEGIN OF ITAB OCCURS 0,
A(9),
END OF ITAB.
ITAB-A = @#A0010@#.
APPEND ITAB.
ITAB-A = @#A0011@#.
APPEND ITAB.
* START-OF-SELECTION
START-OF-SELECTION.
LOOP AT ITAB.
PERFORM APPEND_MM01 USING ITAB-A.
PERFORM RUN_BDC.
ENDLOOP.
*---------------------------------------------------------------------*
* FORM APPEND_DATA_MM01 *
*---------------------------------------------------------------------*
* 定義一個子程式裡面,用來存放操作的各個步驟 *
*---------------------------------------------------------------------*
FORM APPEND_MM01 USING FVAL LIKE ITAB-A.
CLEAR I_BDCDATA.
CLEAR I_BDCDATA[].
*開始新的畫面事件
*0173畫面
*把程式名字和 BDC DYnpro號碼,開始標誌 寫入內表表頭,
I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
I_BDCDATA-DYNPRO = @#0060@#.
I_BDCDATA-DYNBEGIN = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_CURSOR@#.
I_BDCDATA-FVAL = @#RMMG1-MATNR@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_OKCODE@#.
I_BDCDATA-FVAL = @#/00@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#RMMG1-MATNR@#.
*新建立的物料憑證號碼
* I_BDCDATA-FVAL = @#A004@#.
I_BDCDATA-FVAL = FVAL.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#RMMG1-MBRSH@#.
I_BDCDATA-FVAL = @#C@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#RMMG1-MTART@#.
I_BDCDATA-FVAL = @#WERB@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*開始新的畫面事件
I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
I_BDCDATA-DYNPRO = @#0070@#.
I_BDCDATA-DYNBEGIN = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_CURSOR@#.
I_BDCDATA-FVAL = @#MSICHTAUSW-DYTXT(01)@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_OKCODE@#.
I_BDCDATA-FVAL = @#=ENTR@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MSICHTAUSW-KZSEL(01)@#.
I_BDCDATA-FVAL = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*開始新的畫面事件
I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
I_BDCDATA-DYNPRO = @#4004@#.
I_BDCDATA-DYNBEGIN = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_OKCODE@#.
I_BDCDATA-FVAL = @#=BU@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_CURSOR@#.
I_BDCDATA-FVAL = @#MAKT-MAKTX@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MAKT-MAKTX@#.
I_BDCDATA-FVAL = @#測試BDC匯入資料@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MARA-MEINS@#.
I_BDCDATA-FVAL = @#000@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MARA-MTPOS_MARA@#.
I_BDCDATA-FVAL = @#NORM@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
ENDFORM.
*---------------------------------------------------------------------*
* FORM RUN_BDC *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM RUN_BDC.
*開始呼叫事務MM01,把做好的bdc物件傳遞過去,然後把模式設定為A,
*就是說所有視窗,均可以看見.
* N 表示不看見吧
CALL TRANSACTION @#MM01@# USING I_BDCDATA MODE @#N@#.
ENDFORM.
* Program ID :ZTEST904_BDC
* Program Name :ZTEST904_BDC
*-----------------------------------------------------------------------
* DESCRIPTION :這個程式是學習如何透過程式來呼叫
* BDC自動匯入資料
*-----------------------------------------------------------------------
REPORT ZTEST904_BDC.
* 定義個BDC格式的內表
**************************************************
DATA : BEGIN OF I_BDCDATA OCCURS 0,
*BDC的程式名字,比如事物碼MM01的程式名字為SAPLMGMM(sap標準程式)
PROGRAM LIKE BDCDATA-PROGRAM,
*BDC Dynpro 號碼
DYNPRO LIKE BDCDATA-DYNPRO,
*BDC BDC Dynpro 開始
DYNBEGIN LIKE BDCDATA-DYNBEGIN,
*BDC 專案名字
FNAM LIKE BDCDATA-FNAM,
*BDC 專案名字的附加值
FVAL LIKE BDCDATA-FVAL,
END OF I_BDCDATA.
DATA: BEGIN OF ITAB OCCURS 0,
A(9),
END OF ITAB.
ITAB-A = @#A0010@#.
APPEND ITAB.
ITAB-A = @#A0011@#.
APPEND ITAB.
* START-OF-SELECTION
START-OF-SELECTION.
LOOP AT ITAB.
PERFORM APPEND_MM01 USING ITAB-A.
PERFORM RUN_BDC.
ENDLOOP.
*---------------------------------------------------------------------*
* FORM APPEND_DATA_MM01 *
*---------------------------------------------------------------------*
* 定義一個子程式裡面,用來存放操作的各個步驟 *
*---------------------------------------------------------------------*
FORM APPEND_MM01 USING FVAL LIKE ITAB-A.
CLEAR I_BDCDATA.
CLEAR I_BDCDATA[].
*開始新的畫面事件
*0173畫面
*把程式名字和 BDC DYnpro號碼,開始標誌 寫入內表表頭,
I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
I_BDCDATA-DYNPRO = @#0060@#.
I_BDCDATA-DYNBEGIN = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_CURSOR@#.
I_BDCDATA-FVAL = @#RMMG1-MATNR@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_OKCODE@#.
I_BDCDATA-FVAL = @#/00@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#RMMG1-MATNR@#.
*新建立的物料憑證號碼
* I_BDCDATA-FVAL = @#A004@#.
I_BDCDATA-FVAL = FVAL.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#RMMG1-MBRSH@#.
I_BDCDATA-FVAL = @#C@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#RMMG1-MTART@#.
I_BDCDATA-FVAL = @#WERB@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*開始新的畫面事件
I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
I_BDCDATA-DYNPRO = @#0070@#.
I_BDCDATA-DYNBEGIN = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_CURSOR@#.
I_BDCDATA-FVAL = @#MSICHTAUSW-DYTXT(01)@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_OKCODE@#.
I_BDCDATA-FVAL = @#=ENTR@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MSICHTAUSW-KZSEL(01)@#.
I_BDCDATA-FVAL = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*開始新的畫面事件
I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
I_BDCDATA-DYNPRO = @#4004@#.
I_BDCDATA-DYNBEGIN = @#X@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_OKCODE@#.
I_BDCDATA-FVAL = @#=BU@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#BDC_CURSOR@#.
I_BDCDATA-FVAL = @#MAKT-MAKTX@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MAKT-MAKTX@#.
I_BDCDATA-FVAL = @#測試BDC匯入資料@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MARA-MEINS@#.
I_BDCDATA-FVAL = @#000@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = @#MARA-MTPOS_MARA@#.
I_BDCDATA-FVAL = @#NORM@#.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
ENDFORM.
*---------------------------------------------------------------------*
* FORM RUN_BDC *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM RUN_BDC.
*開始呼叫事務MM01,把做好的bdc物件傳遞過去,然後把模式設定為A,
*就是說所有視窗,均可以看見.
* N 表示不看見吧
CALL TRANSACTION @#MM01@# USING I_BDCDATA MODE @#N@#.
ENDFORM.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8356764/viewspace-941537/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 將 SAP ABAP 內表內容本地匯出成 Excel 檔案試讀版Excel
- SAP MM 模組的入門者,想學習 ABAP 程式語言應該如何入手?
- SAP ABAP 報表螢幕輸入欄位如何實現聯動效果試讀版
- 4.從輸入輸出到基本運算子的學習
- ABAP動態內表
- ABAP 報表中如何給報表的輸入引數增添 F4 Value Help試讀版
- SAP ABAP資料表的操作
- 在SAP雲平臺ABAP程式設計環境上編寫第一段ABAP程式程式設計
- 「SAP技術」SAP MM 批次管理的物料建立DN時無儲存地點就不能輸入批次值?
- ABAP初學者如何系統地學習ABAP程式設計?程式設計
- 如何使用 ABAP 程式消費 SAP ABAP OData 服務
- SAP ABAP 程式之間的呼叫
- spark 批次寫入redis控制SparkRedis
- fdw批次匯入外部表
- SAP ABAP 特性相關表取數邏輯
- 深入學習Netty(4)——Netty程式設計入門Netty程式設計
- 用 SAP ABAP 編寫的俄羅斯遊戲遊戲
- 在 Excel 內使用 ODBC 消費 SAP ABAP CDS viewExcelView
- 如何使用ABAP程式碼建立SAP Product CategoryGo
- 使用 Prometheus 監控 SAP ABAP 應用程式Prometheus
- Python 3 學習筆記之——鍵盤輸入和讀寫檔案Python筆記
- SAP ABAP ALV 層次順序表如何使用雙表頭(Multiple Headers)進行資料輸出試讀版Header
- ABAP READ內表新老語法對比
- SAP ABAP SM50的另類用途 - ABAP工作程式對資料庫表讀取操作的檢測資料庫
- SAP ABAP報表依賴設計原理詳解
- SAP ABAP 動態內表實現 ALV橫向按月份動態顯示資料
- 如何檢視型別為LRAW的SAP ABAP資料庫表欄位的內容型別資料庫
- C++ 學習筆記之——輸入和輸出C++筆記
- 物聯網學習教程——格式輸入與輸出
- SAP掃盲系列之二:SAP ABAP應用伺服器的組成部分伺服器
- SAP ABAP 平臺新的程式設計模型程式設計模型
- 淺談 SAP ABAP 系統裡的 ALV 輸出方式實現
- SAP Fiori介面上輸入事務程式碼的設定
- 用指標編寫程式將輸入的字串倒序輸出指標字串
- 報表如何批次匯出成 excel 檔案Excel
- 寫一個函式,輸入一個4位數字,要求輸出這4個數字字元函式字元
- 01_Numpy學習筆記(下):輸入和輸出筆記
- SAP ABAP Netweaver 裡的 ABAP 會話概念會話
- 練習1-20 編寫程式detab:將輸入的製表符替換成適當數目的空格,使空格充滿到下一個製表符終止位的地方