Gọi chức năng từ xa (RFC) trong Hướng dẫn SAP

Mục lục:

Anonim

RFC là gì?

RFC là một cơ chế cho phép các ứng dụng kinh doanh giao tiếp và trao đổi thông tin (theo các định dạng được xác định trước) với các hệ thống khác. RFC là viết tắt của 'Cuộc gọi chức năng từ xa'

RFC bao gồm hai giao diện:

  1. Giao diện gọi cho các Chương trình ABAP
  2. Giao diện gọi cho các chương trình Non-SAP.

Bất kỳ chương trình ABAP nào cũng có thể gọi một chức năng từ xa bằng cách sử dụng câu lệnh CALL FUNCTION… DESTINATION . Các ĐIỂM tham số kể SAP hệ thống đó được gọi là chức năng chạy trong một hệ thống khác hơn so với những người gọi.Cú pháp-

CHỨC NĂNG GỌI 'chức năng từ xa'DESTINATION cuối cùngXUẤT KHẨU f1 =NHẬP KHẨU f2 =BẢNG T1 =NGOẠI LỆ

Đích logic được xác định thông qua giao dịch SM59 và được lưu trữ trong Bảng RFCDES
Chức năng của giao diện RFC

  • Chuyển đổi tất cả dữ liệu tham số thành biểu diễn cần thiết trong hệ thống từ xa
  • Gọi các quy trình liên lạc cần thiết để nói chuyện với hệ thống từ xa.
  • Xử lý các lỗi liên lạc và thông báo cho người gọi, nếu muốn (sử dụng tham số EXCEPTIONS của CALL FUNCTION).


RFC là một giao thức SAP để xử lý thông tin liên lạc giữa các hệ thống nhằm đơn giản hóa việc lập trình liên quan. Đây là quá trình gọi một mô-đun chức năng nằm trên một máy khác với chương trình người gọi. RFC cũng có thể được sử dụng để gọi một chương trình khác trên cùng một máy, nhưng thông thường, nó được sử dụng khi các mô-đun / chương trình chức năng 'gọi' và 'được gọi' đang chạy trên các máy riêng biệt.


Trong SAP, hệ thống Giao diện RFC được sử dụng để thiết lập các kết nối RFC giữa các hệ thống SAP khác nhau và cũng như giữa SAP và hệ thống bên ngoài (không phải SAP).

Phải biết chi tiết về RFC

  • SAP Sử dụng Giao thức CPIC (Giao diện Lập trình Chung cho Truyền thông) để truyền dữ liệu giữa các Hệ thống. Nó là giao thức cụ thể của SAP. Cuộc gọi chức năng từ xa (RFC) là một giao diện truyền thông dựa trên CPI-C, nhưng có nhiều chức năng hơn và dễ sử dụng hơn cho các lập trình viên ứng dụng
  • Các chức năng thư viện RFC hỗ trợ ngôn ngữ lập trình C và Visual Basic (trên nền tảng Windows)
  • Các kết nối RFC luôn có thể được sử dụng trên toàn bộ hệ thống Điều này có nghĩa là kết nối RFC mà bạn đã xác định trong máy khách 000 cũng có thể được sử dụng từ máy khách 100 (không có bất kỳ sự khác biệt nào).
  • RFC là giao thức để gọi các chương trình con đặc biệt (mô-đun chức năng) qua mạng. Các mô-đun chức năng có thể so sánh với các chức năng C hoặc thủ tục PASCAL. Chúng có một giao diện xác định qua đó dữ liệu, bảng và mã trả lại có thể được trao đổi. Các mô-đun chức năng được quản lý trong Hệ thống R / 3 trong thư viện chức năng của riêng chúng, được gọi là Trình tạo chức năng.
  • Trình tạo chức năng (giao dịch SE37) cung cấp cho các lập trình viên ứng dụng một môi trường hữu ích để lập trình, lập tài liệu và kiểm tra các mô-đun chức năng có thể được gọi cục bộ cũng như từ xa. Hệ thống R / 3 tự động tạo mã bổ sung (đoạn mã RFC) cần thiết cho các cuộc gọi từ xa.
  • Bạn duy trì các tham số cho các kết nối RFC bằng giao dịch SM59. Hệ thống R / 3 cũng được phân phối với RFC-SDK (Bộ phát triển phần mềm) sử dụng các thư viện C mở rộng để cho phép các chương trình bên ngoài được kết nối với Hệ thống R / 3.
  • Sự khác biệt duy nhất giữa cuộc gọi từ xa của một mô-đun chức năng tới một máy chủ khác và cuộc gọi cục bộ là một tham số đặc biệt (đích) chỉ định máy chủ đích mà chương trình sẽ được thực thi.

Ưu điểm của RFC:

RFC giúp giảm thiểu nỗ lực của các lập trình viên, bằng cách cho phép họ tránh việc phát triển lại các mô-đun và phương pháp ở các hệ thống từ xa. Nó đủ khả năng để:

  • Chuyển đổi dữ liệu sang định dạng có thể hiểu được bởi hệ thống từ xa (đích).
  • Chuyển đổi dữ liệu sang định dạng có thể hiểu được bởi hệ thống từ xa (đích).
  • Gọi một số quy trình cần thiết để bắt đầu giao tiếp với hệ thống từ xa.
  • Xử lý các lỗi có thể xảy ra trong quá trình liên lạc.

Các loại RFC:


Đồng bộ

Yêu cầu cả hai hệ thống (máy khách và máy chủ) luôn sẵn sàng tại thời điểm giao tiếp hoặc truyền dữ liệu. Đây là kiểu phổ biến nhất và được yêu cầu khi kết quả được yêu cầu ngay sau khi thực thi sRFC.
sRFC là một phương tiện giao tiếp giữa các hệ thống yêu cầu xác nhận. Các tài nguyên của Hệ thống nguồn chờ trên hệ thống đích và đảm bảo rằng chúng cung cấp thông điệp / dữ liệu bằng ACKD. Dữ liệu nhất quán và đáng tin cậy để giao tiếp.
Vấn đề là nếu hệ thống đích không có sẵn, các tài nguyên của hệ thống nguồn sẽ đợi cho đến khi có sẵn hệ thống đích. Điều này có thể dẫn đến các Quy trình của hệ thống nguồn chuyển sang Chế độ Ngủ / RFC / CPIC tại các hệ thống đích và do đó chặn các tài nguyên này.
Được dùng cho

  • Để giao tiếp giữa các hệ thống
  • Để giao tiếp giữa Máy chủ ứng dụng web SAP với SAP GUI

Không đồng bộ

Đây là giao tiếp giữa các hệ thống không yêu cầu xác nhận (nó tương tự như gửi bưu thiếp). Nó không yêu cầu cả hai hệ thống phải sẵn sàng tại thời điểm thực thi và kết quả không được yêu cầu ngay lập tức được gửi trở lại hệ thống gọi .

Tài nguyên Hệ thống nguồn không đợi hệ thống đích khi chúng cung cấp thông điệp / dữ liệu mà không cần chờ bất kỳ xác nhận nào. Nó không đáng tin cậy để liên lạc vì dữ liệu có thể bị mất nếu hệ thống đích không khả dụng. Được dùng cho -

  • Để giao tiếp giữa các hệ thống
  • Để xử lý song song

Giao dịch

Nó là một dạng aRFC đặc biệt. RFC giao dịch đảm bảo việc xử lý các bước xử lý giống như giao dịch mà ban đầu là tự trị.

RFC giao dịch là một phương thức giao tiếp không đồng bộ thực thi mô-đun chức năng được gọi trong máy chủ RFC chỉ một lần, ngay cả khi dữ liệu được gửi nhiều lần do một số vấn đề mạng. Hệ thống từ xa không cần có sẵn tại thời điểm chương trình khách RFC đang thực thi tRFC. Thành phần tRFC lưu trữ hàm RFC được gọi, cùng với dữ liệu tương ứng, trong cơ sở dữ liệu SAP dưới một ID giao dịch duy nhất (TID). tRFC tương tự như aRFC vì nó không đợi ở hệ thống đích (Tương tự như một bài đăng đã đăng ký). Nếu hệ thống không khả dụng, nó sẽ ghi Dữ liệu vào các Bảng aRFC với ID giao dịch (SM58) được chọn bởi bộ lập lịch RSARFCSE (chạy cứ sau 60 giây). Được dùng cho-

  • Mở rộng RFC không đồng bộ
  • Để liên lạc an toàn giữa các hệ thống

Đã xếp hàng

RFC xếp hàng là một phần mở rộng của tRFC. Nó cũng đảm bảo rằng các bước riêng lẻ được xử lý theo trình tự.

Để đảm bảo rằng nhiều LUW (Đơn vị logic của công việc / giao dịch) được xử lý theo thứ tự do ứng dụng chỉ định. tRFC có thể được tuần tự hóa bằng cách sử dụng hàng đợi (hàng đợi đến và đi). Do đó, tên được xếp hàng đợi RFC (qRFC). Được dùng cho-

  • Mở rộng RFC giao dịch
  • Đối với một trình tự xử lý xác định
  • Việc triển khai qRFC được khuyến nghị nếu bạn muốn đảm bảo rằng một số giao dịch được xử lý theo thứ tự xác định trước.

Các loại kết nối RFC


Loại 3 - các mục chỉ định kết nối giữa các hệ thống ABAP. Ở đây, chúng ta phải chỉ định tên máy chủ / địa chỉ IP. Tuy nhiên, bạn có thể chỉ định thông tin đăng nhập nếu muốn. Điều này áp dụng cho cả hai loại RFC, giữa hệ thống ABAP và các lệnh gọi bên ngoài đến hệ thống ABAPLoại I - các mục nhập chỉ định hệ thống ABAP được kết nối với cùng một cơ sở dữ liệu như hệ thống hiện tại. Các mục này được xác định trước và không thể sửa đổi. Tên mục nhập mẫu: ws0015_K18_24

  • ws0015 = tên máy chủ
  • K18 = tên hệ thống (tên cơ sở dữ liệu)
  • 24 = Tên dịch vụ TCP

Loại T - đích là các kết nối đến các chương trình bên ngoài sử dụng API RFC để nhận RFC. Loại kích hoạt có thể là Bắt đầu hoặc Đăng ký. Nếu là Bắt đầu, bạn phải chỉ định tên máy chủ và tên đường dẫn của chương trình sẽ được khởi động.

Làm thế nào để viết mã một RFC?

1. Trong tab thuộc tính mô-đun chức năng (mã giao dịch SE37), đặt kiểu xử lý là mô-đun Hỗ trợ từ xa để tạo mô-đun chức năng từ xa.


2. Viết mã cho mô-đun chức năng.


3. Xác định đích của máy chủ RFC trong hệ thống máy khách RFC gọi chức năng từ xa (thông qua giao dịch SM59).


4. Khai báo Tham số : Tất cả các trường tham số cho mô-đun chức năng từ xa phải được định nghĩa là trường tham chiếu, nghĩa là, giống như trường Từ điển ABAP.5. Ngoại lệ: Hệ thống tăng COMMUNICATION_FAILURE và SYSTEM_FAILURE trong nội bộ. Bạn có thể nâng cao các ngoại lệ trong một hàm từ xa giống như cách bạn làm trong một hàm được gọi cục bộ.

Gỡ lỗi cuộc gọi chức năng từ xa

  • Không thể gỡ lỗi lệnh gọi chức năng từ xa tới hệ thống khác.
  • Tuy nhiên, khi kiểm tra các lệnh gọi ABAP-to-ABAP RFC, bạn có thể sử dụng trình gỡ lỗi ABAP để giám sát việc thực thi chức năng RFC trong hệ thống từ xa.
  • Với các cuộc gọi từ xa, trình gỡ lỗi ABAP (bao gồm cả giao diện gỡ lỗi) chạy trên hệ thống cục bộ. Giá trị dữ liệu và thông tin chạy khác cho chức năng từ xa được chuyển vào từ hệ thống từ xa.