2008-10-22 61 views
5

我想將SAP程序(事務)的功能作爲BAPI公開。 我需要調用報告並提供範圍過濾器,以避免GUI被繞過。使用GUI抑制調用ABAP中的現有SAP報告

有沒有人有一個SUBMIT ... WITH ... ABAP構造的工作示例,或者有關如何完成我需要做的其他建議?

回答

3

這裏是一個工作示例:

SUBMIT SAPF140 
    TO SAP-SPOOL       "optional" 
    SPOOL PARAMETERS print_parameters "optional" 
    WITHOUT SPOOL DYNPRO     "optional (hides the spool pop-up)" 
    VIA JOB jobname NUMBER l_number  "optional" 
    AND RETURN       "optional - returns to the calling prog" 
    WITH EVENT = REVENT 
    WITH BUKRS IN RBUKRS 
    WITH BELNR IN lRBELNR 
    WITH GJAHR IN RGJAHR 
    WITH USNAM = SY-UNAME 
    WITH DATUM = SAVE_DATUM 
    WITH UZEIT = SAVE_UZEIT 
    WITH DELDAYS = RDELDAYS 
    WITH KAUTO = 'X' 
    WITH RPDEST = SAVE_PDEST 
    WITH TITLE = TITLE. 

所有的「WITH」語句涉及到被調用的程序,我使用的選擇字段=爲參數聲明(單場),在那裏我用它一個是在select_options聲明(範圍)

這裏是如何填補了一系列簡單的例子:如果你想取消此功能爲BAPI你必須包裝日

REFRESH lrbelnr. 
lrbelnr-sign = 'I'. 
lrbelnr-option = 'EQ'. 
lrbelnr-low = HBKORM-belnr. 
CLEAR lrbelnr-high. 
append lrbelnr. 
+0

謝謝,但這不起作用。特定的程序在選擇後有一個警告,並嘗試這個調用GUI來顯示警告... – user26652 2008-11-13 04:13:07

+0

哪個程序/反式。你在打電話嗎?通過作業ID提交可能會讓您繞過警告,因爲它應該將警告寫入作業日誌。或者,SAP GUI具有特定於用戶的設置,允許您關閉彈出警告(如果警告正確實施)。 – Esti 2008-11-14 03:54:14

1

e功能的遠程功能調用(RFC)模塊。只需實現一個RFC功能模塊。根據報表的實現方式,它可能使用ABAP對象,這些對象也可以從RFC實現中調用。鑑於這種情況,你有一個很好的解決方案。每當調整報告時,您的BAPI也會反映這些變化。如果它是來自SAP的標準程序,無法打包,請考慮將其複製到您的名稱空間並進行調整。儘管如此,當SAP通過支持包堆棧執行更新並且您不會意識到時,這可能會帶來一些麻煩。兩種方法的輸出是不同的。除此之外,如果你想從外部調用它,除了實現一個RFC模塊之外沒有別的可能。

提交報告無法將值返回給外部。報告始終只用於GUI功能,不能用於交換數據。如果您的報告使用選擇選項,則您不得不在RFC中「手動」實現此功能,因爲此語句不能在RFC模塊中使用。我通常會嘗試重寫報告,將其模塊化並將選擇信息放入中心類或可能從報告和BAPI功能模塊調用的其他功能模塊中。您正在討論的過濾器無法在RFC中自動實施。你必須手動實現這些範圍。出現的警告不能被抑制,如果你從遠程系統進行RFC調用,彈出警告,你會以shortdump結束。因此,您必須重新制作報告並根據您的需求重新實施報告。

如果您只是想通過作業調度繞過它,創建一個變體並安排與該變體的報告,但我想這不是你正在尋找的解決方案。

1

您可以使用內置的BAPI也只寫「範圍」並按F4。

0

您可以將您的報告封裝在BATCH INPUT session中並在函數中執行。唯一的缺點是每次更改報告時都需要重新寫入BATCH INPUT。