ABAP的子程序参数注意点
生活随笔
收集整理的這篇文章主要介紹了
ABAP的子程序参数注意点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、參數引用傳遞(Parameters Passed by Reference)
使用USING或CHANGING不帶value關鍵字來聲明參數引用傳遞。代碼樣例:
FORM subr USING? ? p1 [{TYPE type}|{LIKE field}]?
? ?? ?? ?? ?? ?? ? p2 [{TYPE type}|{LIKE field}]
? ?? ?? ?? ?? ?? ? ...
? ?? ?? ? CHANGING p1 [{TYPE type}|{LIKE field}]?
? ?? ?? ?? ?? ?? ? p2 [{TYPE type}|{LIKE field}]
? ?? ?? ?? ?? ?? ? ... 復制代碼
在引用傳遞的方式,參數不在堆中占有內存,傳入的是變量的地址,在子程序中對變量的修改實際上是對實際參數的修改。在這種方式using和changing是等價的。
2、輸入參數傳值傳遞(Input Parameters That Pass Values)
使用USING帶value關鍵字來聲明輸入參數傳值傳遞。代碼樣例:
FORM subr USING? ? value(p1) [{TYPE type}|{LIKE field}]?
? ?? ?? ?? ?? ?? ? value(p2) [{TYPE type}|{LIKE field}]
? ?? ?? ?? ?? ?? ? ... 復制代碼
在輸入參數傳值傳遞的方式,參數在堆中占有內存,傳入的是變量的值,在子程序中對變量的修改不會對實際參數的造成修改。
3、輸出參數傳值傳遞(Output Parameters That Pass Values)
使用USING帶value關鍵字來聲明輸入參數傳值傳遞。代碼樣例:
FORM subr CHANGING? ? value(p1) [{TYPE type}|{LIKE field}]?
? ?? ?? ?? ?? ?? ? value(p2) [{TYPE type}|{LIKE field}]
? ?? ?? ?? ?? ?? ? ... 復制代碼
在輸出參數傳值傳遞的方式,形式參數在堆中占有內存,傳入的是變量的值,在子程序中對變量的修改只有正常結束 (Endform,CHECK,EXIT等語句結束)時才會有形式參數拷貝到對實際參數,如果是錯誤消息退出則不會影響實際參數。
使用USING或CHANGING不帶value關鍵字來聲明參數引用傳遞。代碼樣例:
2、輸入參數傳值傳遞(Input Parameters That Pass Values)
使用USING帶value關鍵字來聲明輸入參數傳值傳遞。代碼樣例:
3、輸出參數傳值傳遞(Output Parameters That Pass Values)
使用USING帶value關鍵字來聲明輸入參數傳值傳遞。代碼樣例:
總結
以上是生活随笔為你收集整理的ABAP的子程序参数注意点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP实战中Submit的常见用法-调用
- 下一篇: WM基本功能