創建函數:
創建函數先創建函數組,函數放在函數組里,函數組里的每個函數公共部分的數據是共享的
創建函數組方法:se37-轉到-函數組-創建函數組
(注意se37創建函數組會有一個小陷阱,有時候在使用函數組時報ABAP 函數組xxx不能被處理,搜索幫助說無法生成功能組xxx。主程序SAPLxxx和/或 Include 程序LxxxTOP可能是不活動的。可以到se80找到該函數組激活,或者直接到se80工作台直接創建函數組,在激活即可)
(刪除函數組:se37-轉到-函數組-刪除組,注意此時功能模塊的輸入應該為空才行。輸出函數組名,確定即可或者se80里刪除)
再創建函數
(一).創建函數后:
1.導入:入參
缺省值:默認值
傳遞值:一般函數不勾,接口才勾選
2.導出:處理后輸出
3.正在更改(change) 作為導入導出都可以
4.表:可以以表的形式導入或者導出,一般alv的用
5.例外:一些不符合條件的特殊數據,拋出異常(異常拋出例外碼,不是拋出短文本)
6.源代碼 :寫代碼
當代碼復雜時,或者為了美觀時可以創建一個include程序,將代碼包含在include里放在form里,可以用usering傳參(定義形式參數),changing返回
在函數里通過perform +include的form名+usring。。+changing。。。 模塊化調用即可
點擊顯示對象列,產生的結構如圖:
函數模塊:函數組ZPWH_FUNCTION下建立的多個函數存放處
子列程: 建立的PERFORM 引用的子程序代碼塊
包含:自動生成INCLUDE的兩個程序,LZPWH_FUNCTIONTOP和LZPWH_FUNCTIONUXX
LZPWH_FUNCTIONTOP:里邊一般放定義的DATA等,當然建立的PERFORM 引用的子程序代碼塊如果選擇LZPWH_FUNCTIONTOP,
這里邊也會自動生成form,如果不選擇LZPWH_FUNCTIONTOP,那么就會單獨生成一個如圖中LZPWH_FUNCTIONF01的include程序,程序里就是form.
LZPWH_FUNCTIONUXX:里邊放的引用,雙擊里邊的 include xxx,就會跳轉到對應的函數中.
(二).函數代碼寫完后:
如何調用:
在include程序中:模式--調用功能--寫函數名,自動生成call function...
EXPORTING :在此處是輸入 (可以用選擇屏幕的方式給值,值賦值給入參)
入參名:入參名
IMPOEPTING:在此處是輸出
出參名:出參名
EXCEPTIONS :在此處是例外(各種異常)
異常碼:1234。。。。