CALL TRANSACTION USING

來源:互聯網
上載者:User

BDC: CALL TRANSACTION USING... 參數祥解

 CALLTRANSACTION 'tcode' USING bdc_tab ... 是 ABAP 裡提供的一個方便的執行批量輸入的語句,使用它可以通過程式碼完成多個事務碼的連續執行。

bdc_tab 這個批輸入任務表的填寫方式,網上有很多例子了,大家用到的時候可以搜尋。用事務碼 SHDB 可以產生填寫這個表的內容,按照 ABAP 字典結構類型 BDCDATA 的定義對應填寫就可以了。

下面詳細介紹一下這種調用方式中的執行參數:

... {{[MODE mode] [UPDATE upd]} 
    | [OPTIONS FROM opt] } 
    [MESSAGES INTO itab] ... .

 

MODE 確定批輸入的執行模式,有下面幾個可選值:

執行模式  

作用

"A"

顯示所有輸入螢幕,如果在 bdc_tab 中包含該螢幕的功能碼,則會出現小視窗顯示這個功能碼。它也是預設值,如果指定不是下面的值,則都認為是 A。

"E"

只有在出現錯誤時才顯示螢幕,使用者可以修正資料,修正後程式可以繼續處理。

"N"

不顯示螢幕的靜默模式。如果到達被調用事務的斷點,則系統處理終止,並設定一些系統欄位。sy-subrc 為 1001,sy-msgty 為 "S"、sy-msgid 為 "00"、sy-msgno 為 "344"、sy-msgv1 為 "SAPMSSY3"、sy-msgv2 為
"0131"。

"P"

不顯示螢幕的偵錯模式。如果到達被調用事務的斷點,則系統自動轉到 ABAP 調試器,這種方式主要用於調試過程。

 

UPDATE 確定批輸入的更新模式,有下面幾個可選值:

更新模式

作用

"A"

非同步更新。被調用程式的更新按照沒有指定 COMMIT WORK 語句和 AND WAIT 附加的方式執行。也就是說,資料更新被放到更新隊列裡,由另一個專門的更新進程執行,主程式一旦提交資料就繼續執行,而不管提交的更新是否執行完成。這種方式比較適合於用一個事務碼大量更新指定資料,比如維護主要資料等。

"S"

同步更新。被調用程式的更新按照指定了 COMMIT WORK 語句和 AND WAIT 附加的方式執行。也就是說,資料更新被放到更新隊列裡,由專門的更新進程執行,但是主程式會等到資料提交完成,返回結果資訊後才繼續執行。這種方式比較適合於資料一致性要求比較高,多個不同事務碼的連續處理。

"L"

本地更新。被調用程式的更新按照執行 SET UPDATE TASK LOCAL 語句的方式執行。也就是說,資料更新在主程式所在的進程中完成,主程式必定等到被調用事務完成才繼續執行。

 

OPTIONS FROM opt 則用一個參考 ABAP 字典中結構類型 CTU_PARAMS的結構資料對象來傳遞參數,CTU_PARAMS 結構包含了 MODE 和 UPDATE 兩個參數,並且還包含其它參數,結構如下:

DISMODE:顯示模式,其值對應於前面介紹的 MODE 參數;
UPDMODE:更新模式,其值對應於前面介紹的 UPDATE 參數;
CATTMODE:CATT 模式,有三個值:""、非 CATT 模式;"N"、CATT 模式但不對每個螢幕進行控制;"A"、CATT 模式並對每個螢幕進行控制;
DEFSIZE:是否使用螢幕的定義大小,有兩個值:" "、不使用螢幕定義大小,即顯示給使用者的螢幕跟普通運行時一樣,根據使用者視窗大小而自動擴充到全屏;"X"、使用螢幕定義大小,即只用來源程式中固定的螢幕大小,無論使用者視窗如何;
RACOMMIT:英文原文(CALL TRANSACTION USING... is not completed by COMMIT),德文原文(COMMIT WORK ist kein Ende bei CALL TRANSACTION USING...),沒看明白;

OPT-RACOMMIT = 'X'. 就是一個可以在所有錄屏工作結束後才觸發COMMIT事件的選項,原來預設為空白

NOBINPT:調用事務碼時,系統欄位 sy-binpt 的值,有兩個值:" "、在被調用事務執行時,系統欄位 sy-binpt 的值為 "X";:"X"、在被調用事務執行時,系統欄位 sy-binpt 的值為 " ";
NOBIEND:調用事務碼完成後,系統欄位 sy-binpt 的值,有兩個值:" "、在被調用事務執行後,系統欄位 sy-binpt 的值為 "X";:"X"、在被調用事務執行後,系統欄位 sy-binpt 的值為 " "。

最後一個 MESSAGEINTO itab 是把執行過程中的訊息都輸入到內表 itab 中,itab 的結構必須是 ABAP 字典中結構 BDCMSGCOLL。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.