SAP ABAP 程式之間的呼叫
一,同步呼叫從一個程式同步呼叫其他的ABAP程式,有2種方式:
1,呼叫程式被打斷,當被呼叫程式執行完畢之後,呼叫程式繼續執行。如:CALL FUNCTION <function>SUBMIT <program> AND RETURNCALL TRANSACTION <tcode> 使用CALL FUNCTION 'AAA'呼叫FM的時候,相應的FUNCTION GROUP被載入到呼叫程式所在的internal session。當FM執行完畢,接著執行呼叫程式。FUNCTION GROUP和其GLOBAL DATA會一直儲存在這個internal session直到呼叫程式結束。當呼叫程式再次呼叫這個FM的時候,不會再次載入相應的FUNCTION GROUP。這個FUNCTON GROUP的GLOBAL DATA和第一次呼叫它時的內容是一樣的。 使用SUBMIT <program> AND RETURN或者CALL TRANSACTION <tcode>的時候,實際是插入了一個新的internal session,當被呼叫的程式執行完畢之後,新插入的internal session會被刪除,繼續執行呼叫程式。可以使用leave program語句來結束程式。
2,呼叫程式被結束,被呼叫程式開始執行。如:SUBMIT <program>LEAVE TO TRANSACTION <tcode>. 使用SUBMIT語句之後,呼叫程式從所在的internal session中被刪除了,被呼叫的程式被載入到這個internal session。 使用LEAVE TO TRANSACTION <tcode>之後,當前external session中的所有internal session會被刪除,併產生一個新的internal session,被呼叫的tcode會載入到這個新的internal session中。特別要注意的是,使用這個語句之後,ABAP MEMORY會被初始化,意思就是你不可以透過ABAP MEMORY向被呼叫的tcode傳值。
二,FUNCTION MODULE的非同步呼叫CALL FUNCTION 'AAA' STARTING NEW TASK <taskname> PERFORMING <subroutine> ON END OF TASK EXPORTING .....使用上面語句之後,AAA和呼叫其的程式 會並行執行。可以在<subroutine>中使用RECEIVE RESULTS FROM FUNCTION 'AAA'語句來獲得FUNCTION執行的結果。值得注意的是,用STARTING NEW TASK形式的FM的processing type必須要是REMOTE-CAPABLE MODULE.
三,LOGICAL MEMORY一個使用者session可以有多個external session,可以理解你開了幾個SAP的視窗,就有幾個external session,一般設定為6個。 一個external session裡可以有多個internal session(最多20個,想想LIST的LSIND為什麼不能超過20)。一個程式一般來說是在一個internal session裡處理的。 可以用ABAP MEMORY(EXPORT/IMPORT)和SAP MEMORY(GET/SET)在不同的程式之間傳遞資料。 一個使用者session有一個SAP MEMORY,這個使用者session裡所有session都可以訪問SAP MEMORY,但是SAP MEMORY一般用於不同external session間的internal session傳值。每個external session包含一個ABAP MEMORY,屬於這個external session的internal session都可以訪問這個ABAP MEMORY,ABAP MEMORY適合在一個external session的不同internal session間傳值。 當external session終止的時候,自動會釋放其ABAP MEMORY。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901557/viewspace-2673545/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP ABAP呼叫WEBAPI(一)WebAPI
- 如何在 SAP BTP ABAP 程式設計環境裡直接呼叫 ABAP On-Premises 系統的 RFC 函式程式設計REM函式
- SAP雲平臺上兩個ABAP系統例項之間的互連
- 如何使用 ABAP 程式消費 SAP ABAP OData 服務
- 如何使用 Java 程式透過 SAP Java Connector 呼叫 ABAP 系統的函式試讀版Java函式
- SAP ABAP 平臺新的程式設計模型程式設計模型
- SAP ABAP Netweaver 裡的 ABAP 會話概念會話
- Eureka的微服務之間呼叫微服務
- 微服務之間的相互呼叫微服務
- 使用Java+SAP雲平臺+SAP Cloud Connector呼叫ABAP On-Premise系統裡的函式JavaCloudREM函式
- SAP官方釋出的ABAP程式設計規範程式設計
- 一個好用的SAP ABAP工作程式跟蹤工具
- SAP ABAP Function Module 的動態呼叫方式使用方式介紹試讀版Function
- 如何使用ABAP程式碼建立SAP Product CategoryGo
- 使用 Prometheus 監控 SAP ABAP 應用程式Prometheus
- 一些通過SAP ABAP程式碼審查得出的ABAP程式設計最佳實踐程式設計
- SAP ABAP FOR ALL ENTRIES 的用法
- 建構函式之間的呼叫函式
- SAP ABAP Gateway Client 的 ABAP 實現,重用 HTTP ConnectionGatewayclientHTTP
- SAP ABAP資料表的操作
- SAP技術專家的ABAP偵錯程式培訓材料
- SAP 雲平臺 ABAP 程式設計環境的前世今生程式設計
- 服務之間的呼叫 HTTP代替RPC?HTTPRPC
- eureka實現服務之間的呼叫
- 服務與服務之間的呼叫
- 在SAP雲平臺ABAP程式設計環境上編寫第一段ABAP程式程式設計
- 玩了一下 SAP Fiori ABAP程式設計模型程式設計模型
- My suggestions on SAP ABAP transformationORM
- eureka服務之間呼叫(3)
- Eureka微服務之間呼叫-feign微服務
- SAP工作流介紹之ABAP Business Workflow介紹
- SAP ABAP的CI/CD解決方案
- SAP ABAP SQL的execution plan和cacheSQL
- 什麼是 SAP ABAP 的 include structureStruct
- SAP ABAP Application Log 的使用方法APP
- SAP SEGW 事物碼裡的 ABAP Editor
- 兩個JS之間的函式互相呼叫JS函式
- 微服務之間的呼叫方式哪種最佳?微服務