<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # SAP 教程中的遠程功能調用(RFC) > 原文: [https://www.guru99.com/rfc-remote-function-call.html](https://www.guru99.com/rfc-remote-function-call.html) ## 什么是 RFC? RFC 是一種機制,允許業務應用程序與其他系統進行通信和交換信息(以預定義的格式)。 RFC 代表**'遠程功能調用'** RFC 由兩個接口組成: 1. ABAP 程序的調用接口 2. 非 SAP 程序的調用接口。 任何 ABAP 程序都可以使用 **CALL FUNCTION ... DESTINATION** 語句來調用遠程功能。 **DESTINATION** 參數告訴 SAP 系統,被調用函數在調用方以外的系統中運行。 **語法-** ``` CALL FUNCTION 'remotefunction' DESTINATION dest EXPORTING f1 = IMPORTING f2 = TABLES t1 = EXCEPTIONS ``` 邏輯目標是通過事務 **SM59** 定義的,并存儲在表 **RFCDES** ***中 RFC 接口的功能*** * 將所有參數數據轉換為遠程系統所需的表示形式 * 調用與遠程系統對話所需的通信例程。 * 處理通訊錯誤,并在需要時通知呼叫者(使用 CALL FUNCTION 的 EXCEPTIONS 參數)。 ![Remote Function Call (RFC) in SAP Tutorial](https://img.kancloud.cn/ba/d1/bad100cf81fc20a401f28119a001f91a_624x270.png) RFC 是一種 SAP 協議,用于處理系統之間的通信以簡化相關的編程。 這是一個調用功能模塊的過程,該模塊位于與調用程序不同的計算機上。 RFC 也可以用于在同一臺機器上調用不同的程序,但是通常,當“ *調用*”和“ *稱為*”功能模塊/程序分別運行時使用 RFC。 機器。 ![Remote Function Call (RFC) in SAP Tutorial](https://img.kancloud.cn/0a/66/0a6612384827ed149d63f374336be09e_623x240.png) 在 SAP 中,RFC 接口系統用于在不同 SAP 系統之間以及 SAP 與外部(非 SAP)系統之間建立 RFC 連接。 ## 必須了解有關 RFC 的詳細信息 * SAP 使用 CPIC(通信通用編程接口)協議在系統之間傳輸數據。 這是 SAP 特定協議。 遠程功能調用(RFC)是基于 CPI-C 的通信接口,但具有更多功能,更易于應用程序程序員使用 * RFC 庫函數支持 C 編程語言和 Visual Basic(在 Windows 平臺上) * RFC 連接始終可以在整個系統中使用。這意味著您可以在客戶端 100 中使用在客戶端 000 中定義的 RFC 連接(沒有任何區別)。 * RFC 是用于通過網絡調用特殊子例程(*功能模塊*)的協議。 功能模塊可與 C 函數或 PASCAL 過程相媲美。 它們具有定義的接口,通過該接口可以交換數據,表和返回碼。 功能模塊在 R / 3 系統中通過自己的功能庫(稱為功能生成器)進行管理。 * Function Builder(事務 SE37)為應用程序程序員提供了一個有用的環境,用于編程,文檔編制和測試功能模塊,這些功能模塊可以在本地或遠程調用。 R / 3 系統會自動生成遠程調用所需的附加代碼(RFC 存根)。 * 您可以使用事務 SM59 維護 RFC 連接的參數。 R / 3 系統還隨 RFC-SDK(軟件開發工具包)一起提供,該工具使用廣泛的 C 庫來允許將外部程序連接到 R / 3 系統。 * 功能模塊對另一臺服務器的遠程調用與本地調用之間的唯一區別是特殊參數(目標),該參數指定要在其上執行程序的目標服務器。 ## RFC 的優點: RFC 通過使程序員避免在遠程系統上重新開發模塊和方法來幫助減少程序員的工作量。 它有能力: * 將數據轉換為遠程(目標)系統可以理解的格式。 * 將數據轉換為遠程(目標)系統可以理解的格式。 * 調用某些例程,這些例程是開始與遠程系統進行通信所必需的。 * 處理在通訊過程中可能發生的錯誤。 ## RFC 的類型: ![Remote Function Call (RFC) in SAP Tutorial](https://img.kancloud.cn/b3/11/b311969c9bb513cd29a7e13a4387c510_262x174.png) ## 同步 要求在通信或數據傳輸時兩個系統(客戶端和服務器)都可用。 它是最常見的類型,在執行 sRFC 之后立即需要結果時才需要。 sRFC 是需要確認的系統之間的一種通信方式。 源系統的資源在目標系統上等待,并確保它們使用 ACKD 傳遞消息/數據。 數據是一致和可靠的通信。 問題是,如果目標系統不可用,則源系統資源將等到目標系統可用為止。 這可能導致源系統的進程在目標系統上進入睡眠/ RFC / CPIC 模式,從而阻塞了這些資源。 **用于** * 用于系統之間的通信 * 用于 SAP Web Application Server 與 SAP GUI 之間的通信 ## 異步 It is communication between systems where acknowledgments are not required (it is similar to postcard delivery).It doesn't require both the systems to be available at the time of execution and the result is not immediately required to be sent back to the calling system. 源系統資源不等待目標系統,因為它們在不等待任何確認的情況下傳遞消息/數據。 通信不可靠,因為如果目標系統不可用,數據可能會丟失。 **用于-** * 用于系統之間的通信 * 用于并行處理 ## 交易性 ?It is a special form of aRFC. Transactional RFC ensures transaction-like handling of processing steps that were originally autonomous. 事務性 RFC 是一種異步通信方法,即使由于某些網絡問題多次發送數據,該方法也只能在 RFC 服務器中執行一次被調用的功能模塊。 當 RFC 客戶端程序執行 tRFC 時,遠程系統不需要可用。 tRFC 組件在唯一事務 ID(TID)下將被調用的 RFC 函數以及相應的數據存儲在 SAP 數據庫中。 tRFC 與 aRFC 相似,因為它不在目標系統上等待(類似于已注冊的帖子)。 如果系統不可用,它將使用事務 ID(SM58)將數據寫入 RFC 表中,該 ID 由調度程序 RSARFCSE(每 60 秒運行一次)選擇。 **用于-** * 異步 RFC 的擴展 * 用于系統之間的安全通信 ## 排隊 Queued RFC is an extension of tRFC. It also ensures that individual steps are processed in sequence. 確保按應用程序指定的順序處理多個 LUW(邏輯工作單元/事務)。 可以使用隊列(入站和出站隊列)對 tRFC 進行序列化。 因此,該名稱排隊 RFC(qRFC)。 用于- * *事務 RFC* 的擴展 * *用于定義的處理序列* * 如果要保證以預定義的順序處理多個事務,建議實施 qRFC。 ## RFC 連接的類型 ![Remote Function Call (RFC) in SAP Tutorial](https://img.kancloud.cn/80/73/807383fc9e936f11064a3e454c1b4f94_372x233.png) **類型 3** -條目指定 ABAP 系統之間的連接。 在這里,我們必須指定主機名/ IP 地址。 但是,可以根據需要指定登錄信息。 這既適用于 ABAP 系統之間的 RFC 類型,也適用于對 ABAP 系統的外部調用 **類型 I-**條目指定連接到與當前系統相同數據庫的 ABAP 系統。 這些條目是預定義的,無法修改。 條目名稱示例:ws0015_K18_24 * ws0015 =主機名 * K18 =系統名稱(數據庫名稱) * 24 = TCP 服務名稱 **類型 T** -目標是到使用 RFC API 接收 RFC 的外部程序的連接。 激活類型可以是 *Start* 或 *Registration* 。 如果是*啟動*,則必須指定要啟動的程序的主機名和路徑名。 ## 如何編碼 RFC? **1\.** 在功能模塊屬性選項卡(事務代碼 SE37)中,將處理類型設置為啟用遠程的模塊以創建遠程功能模塊。 ![Remote Function Call (RFC) in SAP Tutorial](https://img.kancloud.cn/83/29/832975dffee6155726359ef16b200897_480x360.png "SAP-RFC") **2\.** 編寫功能模塊的代碼。 ![Remote Function Call (RFC) in SAP Tutorial](https://img.kancloud.cn/63/34/6334be1279033c49db905ec2c0f279ba_480x360.png "SAP-RFC") **3\.** 在調用遠程功能的 RFC 客戶端系統中定義 RFC 服務器的目的地(通過 SM59 事務)。 ![Remote Function Call (RFC) in SAP Tutorial](https://img.kancloud.cn/d7/fa/d7fa5b66f3d0f1bb85b8e6fdb0c9fafd_480x360.png "SAP-RFC") **4.聲明參數**:必須將遠程功能模塊的所有參數字段定義為參考字段,即 ABAP 詞典字段。 **5.例外**:系統在內部引發 COMMUNICATION_FAILURE 和 SYSTEM_FAILURE。 您可以像在本地調用的函數中一樣在遠程函數中引發異常。 ## 調試遠程功能調用 * **無法調試對另一個系統的遠程功能調用**。 * 但是,在測試 ABAP 到 ABAP 的 RFC 調用時,可以使用 ABAP 調試器來監視遠程系統中 RFC 功能的執行。 * 通過遠程調用,ABAP 調試器(包括調試接口)在本地系統上運行。 遠程功能的數據值和其他運行信息從遠程系統傳入。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看