重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
??定義:把有具體功能的代碼集合在一起的程序塊,可以重復使用。
2.子程序定義??FORM ENDFORM定義;
??PERFORM調用;
??命名:動詞+賓語。
??實參:調用子程序時使用;
??虛參:在子程序中使用;
??分類:USING、CHANGING。
??例子:
??Call by Value:使用USING關鍵字傳遞時與VALUE語句一起搭配使用。
??注:實參和虛參占有自己單獨的內存空間,改變虛參的值不會影響實參。
??Call by Reference:使用CHANGING關鍵字傳遞參數的情況。
注:虛參沒有自己的內存空間,只是在調用子程序時占用實參的地址,改變虛參的值會影響實參。
區別:若在子例程FORM語句中不使用VALUE語句,則USING與CHANGING語句功能是相同的,將USING代表傳遞數據,CHANGING代表傳遞數據后變更其值。
??為了避免發生實參值在調用子程序后不被修改的情況,當使用USING時要與VALUE語句搭配使用,無法修改實參值。
??Call by Value and Result:
??當CHANGING語句和VALUE語句搭配使用時,會修改實參值。
??子例程中的虛參可以利用TYPE與LIKE語句定義所有的ABAP數據類型。若不明確指定類型,則被定義為Generic類型,繼承實參的技術屬性。
??虛參的定義方法有如下三種:
??當結構體當作參數使用時,不僅能使用TYPE、LIKE語句定義,還可以使用STRUCTURE語句定義結構體類型。
A.USING、CHANGING語句
??當子程序參數為內表時也可以使用關鍵字USING、CHANGING。
??若用TYPE ANY TABLE指定了參數,則在子例程中要改成動態形式。
??使用內表指定參數也有下列三種方法:
B.TABLES語句
??使用TABLES語句定義虛參,不支持相同的物理內存地址。
??調用子程序的方法有Internal、External兩種。通過PERFORM語句既可以調用內部子程序,還可以調用其他程序的子程序。
??只要用PERFORM語句指定FORM名就可以實現。
(2)調用程序外部子程序??調用外部程序的子程序時首先要利用IF FOUND語句檢查是否存在該子程序。
??調用外部程序的子程序時可以動態地指定名字。
5.結束子程序??用ENDFORM結束子程序,還可以利用EXIT、CHECK語句強制在執行過程中結束此子程序。
??遇到EXIT語句:直接跳出子程序。
??遇到CHECK語句:判斷值為假時跳出子程序。
??例子:
??語法:
??可以用上面的語法創建子程序池,將子程序池的代碼插入到內表中。
??常用:動態定義內表。
??例子:
??如果調用子程序時使用ON COMMIT/ROLLBACK選項,則每當遇到COMMIT WORK或者ROLLBACK WORK語句時才執行此FORM。
(1)PERFORM ON COMMIT??遇到COMMIT WORK時調用子程序。
(2)PERFORM ON ROLLBACK??遇到COMMIT ROLLBACK時調用子程序。
??例子:
??例子:
??全局宏Macro在數據庫表TRMAC中進行維護,經常使用的全局Macro中包含指定斷點時用的BREAK語句。
??注:如果雙擊ABAP命令,出現下列消息,就意味著是全局Macro。
??定義:函數是儲存在中央庫中的特殊全局子程序。
??內容:傳入參數、傳出參數、傳入/傳出參數表、例外處理。
??與子例程的區別:
??函數組:通過函數編輯器創建函數和函數組,則系統會自動生成主程序及共享程序。
??主程序名字自動由SAPL+函數組名組成,且函數組的INCLUDE主程序如下:
??與調用此函數的ABAP程序可以同時傳入/傳出參數。
??表參數可以傳遞復數值。
??(1)目的:充當源系統和R/3系統的數據接口。
??(2)設置:創建函數時設置成遠程啟用的模塊。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧