ABAP基礎知識 BDC記錄創建單據

前言

SAPERP系統中的大部分的單據都會提供對應的BAPI函數.

通過事務代碼BAPI可以查找到標準業務的BAPI函數.但有些業務單據可能無法查找對應的BAPI函數,即使小夥伴google和bing也無法幫助你.

此時BDC就成為瞭一個必選項

本文主要介紹用BDC開發程序的步驟及註意事項

定義

( BDC – Batch Data Communication)

一種調用事務代碼的方式, 通過參數BDC_TAB傳遞調用過程中所有屏幕的內容及操作.

因為屏幕處理過程繁瑣且復雜,所以SAP提供瞭一個工具SHDB,用於輔助用戶在執行事務代碼時記錄處理過程.

記錄

TCODE: SHDB

記錄時,勾選

  • 不是批處理會話

  • 模擬後臺模式

  • 這個很重要,務必勾選,減少可能的錯誤.

    點擊開始記錄時,系統會執行填寫的事務代碼. 在記錄中盡量最簡化與系統的交互過程.

    完成

    完成記錄後, 系統會生成一個記錄信息.

    這份信息包含瞭執行事務代碼過程中的所有輸入內容及操作過程.

    可以通過點擊處理按鈕驗證記錄是否能再次成功執行

    b1b881e4869a98a86917403651041e48

    函數

    通過按鈕<功能模塊>可以把記錄的信息創建一個函數. 後續改寫函數可以完成業務動作的封裝.

    7f9188d1505c6cc78e1a57b2c10df894

    問題

    在SHDB中執行能成功創建單據

    但是通過函數調用卻總會報錯. 特定屏幕無批輸入數據

    這種問題不是一定會產生的.

    問題產生的原因是標準程序在執行過程中會檢查一些系統環境變量,比如 SY-BINPT(批輸入處理活動) ,根據該環境變量,改變屏幕處理過程.

    所以需要確保記錄和執行的過程中這些環境變量一致.

    1579b42abe503e6b49125234a8ec57c3

    分析

    使用SHDB處理時, 勾選瞭

  • 不是批處理會話

  • 模擬後臺模式

  • 但是生成的函數沒有給出這個選項.

    查看CALL TRANSACTION的幫助,可以看到在OPTIONS FROM opt 子句中可以填寫這些內容

    改造

  • 復制include bdcrecxy-> 自定義的include 名稱,並使用

  • 改進 CALL TRANSACTION 語句添加 options from opt 子句

  • 添加參數 不是批處理會話, 模擬後臺處理

  • 把BDC的返回調整成BAPIRET2的返回.

  • 缺點

    BDC嚴格按照記錄的順序執行.

    如果因為填寫的內容或配置改變導致瞭屏幕順序的變化,或者意外的彈窗信息都會導致BDC處理失敗.

    實踐中,非必要不采用BDC調用系統事務.

    其實某些早期的BAPI函數內部也封裝的BDC調用. 隻是標準函數考慮瞭屏幕執行的所有過程,不會出現意外.

    總結

    盡量用標準BAPI函數,不使用BDC.

    BDC處理可以處理大部分SAP標準程序,但是一些應用瞭OO對象(比如 ALV修改/顯示數據)的事務無法處理.

    因為這類事務調用瞭GUI的前臺顯示類,而BDC需要後臺處理-無法和GUI交互.

    BDC記錄及後臺處理時,最好設置參數 不是批處理會話 / 模擬後臺模式. 這樣才能確保記錄及處理成功.

    約定

    如果你對這篇文章感興趣,請幫忙點贊,在看,分享.

    (如果你真的喜歡這篇文章,請記得回來打個賞,作為支持我繼續下去的動力,這是一個正反饋過程. 越多的人打賞,作者越有動力分享,讀者就能享受更多的福利.畢竟打賞的金額富不瞭我,窮不瞭你,卻能支持這個公眾號長久發文.)

    請微信聯系管理員:

    syjf1976

    sharry_xlp

    Yannick_Duan

    申請進入公眾號討論群提問或者參與話題討論

    发表回复

    相关推荐

    香港公司必备知识 | 3分钟了解商业登记证

    根据香港《商业登记条例》(第310章)的规定,任何在香港经营业务的人士,都需要在公司开业之后的一个月内,以书面通知向税局 ...

    · 8分钟前

    被聯合抵制!四川大學走到今天這一步,純屬自找的

    “落實立德樹人根本任務有差距,思想政治工作不夠到位,師德師風建設不夠紮實,加強學科建設不夠有力。”“落實全面從嚴治黨兩個...

    · 16分钟前

    小户型福利,7款迷你衣帽间设计方案,超实用!

    其实在心底, 每个女生都希望有一间属于自己的衣帽间(包括丽酱在内)。 我们在很多影视剧里都看过这样梦幻敞亮的衣帽间,简 ...

    · 17分钟前

    直流電機和交流電機有什麼不同

    1、首要兩者的外部供電不同,直流電機運用直流電做為電源;而交流電機則是運用交流電做為電源。2、從結構上說,前者的原理相...

    · 19分钟前

    转帖 欲加之罪,何患无辞–袁崇焕十二宗罪辨析

    这是《袁崇焕之孤城》第二部《孤忠》后记之二(已在起点首发),看到凤凰网“袁崇焕是怎样走上神坛的?”等几组专稿以及起点中 ...

    · 19分钟前