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

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 (ở 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 'Gọi chức năng từ xa'

RFC bao gồm hai giao diện:

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

Bất kì chương trình ABAP có thể gọi một chức năng từ xa bằng cách sử dụng CHỨC NĂNG GỌI…ĐỊA CHỈ tuyên bố. Các ĐIỂM ĐẾN tham số cho biết SAP Hệ thống mà hàm được gọi chạy trong một hệ thống không phải là hệ thống gọi.

Cú pháp-

CALL FUNCTION 'remotefunction'

DESTINATION dest

EXPORTING f1 =

IMPORTING f2 =

TABLES t1 =

EXCEPTIONS

Đích hợp lý đượ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 thủ tục 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).

Chức năng của giao diện RFC

RFC là một SAP giao thức để xử lý thông tin liên lạc giữa các hệ thống để đơn giản hóa việc lập trình liên quan. Đó 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.

Chức năng của giao diện RFC

In 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 SAP hệ thống, và cũng giữa một SAP và bên ngoài (không phảiSAP) hệ thống.

Cần biết chi tiết về RFC

  • SAP Sử dụng Giao thức CPIC (Giao diện lập trình chung cho giao tiếp) để truyền dữ liệu giữa các Hệ thống. Đó là SAP Giao thức cụ thể. Cuộc gọi chức năng từ xa (RFC) là 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 (bật Windows nền tảng)
  • 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 hàm C hoặc thủ tục PASCAL. Chúng có một giao diện được xác định thông qua đó dữ liệu, bảng và mã trả về 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 riêng của chúng, được gọi là Trình tạo chức năng.
  • Trình tạo hàm (giao dịch SE37) cung cấp cho người lập trình ứng dụng một môi trường hữu ích để lập trình, ghi 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 (sơ khai RFC) cần thiết cho các cuộc gọi từ xa.
  • Bạn duy trì các tham số cho kết nối RFC bằng giao dịch SM59. Hệ thống R/3 cũng được cung cấp RFC-SDK (Bộ công cụ 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ô-đun chức năng đến 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 trên đó.

Ưu điểm của RFC

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

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

Các loại RFC

Các loại RFC

Syncto lớn

Yêu cầu cả hai hệ thống (máy khách và máy chủ) phải sẵn sàng tại thời điểm liên lạc hoặc truyền dữ liệu. Đây là loại 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à phương tiện liên lạc 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 gửi thông báo/dữ liệu bằng ACKD. Dữ liệu nhất quán và đáng tin cậy để liên lạc.

Vấn đề là nếu hệ thống đích không khả dụng thì tài nguyên hệ thống nguồn sẽ đợi cho đến khi hệ thống đích khả dụng. Điều này có thể khiế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

  • Để liên lạc giữa các hệ thống
  • Để liên lạc giữa SAP Máy chủ ứng dụng web tới SAP GUI

không đồng bộ

Đây là giao tiếp giữa các hệ thống không cần xác nhậ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 hiện và kết quả không cần phải gửi lại ngay lập tức cho hệ thống gọi điện .

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

  • Để liên lạc giữa các hệ thống
  • Để xử lý song song

Giao dịch

Đây là một dạng đặc biệt của aRFC. RFC giao dịch đảm bảo xử lý giống như giao dịch đối với các bước xử lý ban đầu được tự động hóa.

RFC giao dịch là phương pháp giao tiếp không đồng bộ thực thi mô-đun hàm đượ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 đề về mạng. Hệ thống từ xa không cần phải khả dụng tại thời điểm chương trình máy 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 SAP cơ sở dữ liệu theo một ID giao dịch duy nhất (TID). tRFC tương tự như aRFC vì nó không chờ ở 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 Bảng aRFC với ID giao dịch (SM58) được chọn bởi trình lập lịch RSARFCSE (chạy trong mỗi 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ị công việc/giao dịch logic) đượ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 vào và ra). Do đó có tên xếp hàng 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
  • Nên triển khai qRFC nếu bạn muốn đảm bảo rằng một số giao dịch được xử lý theo thứ tự được xác định trước.

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

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

Loại 3 – các mục xác định kết nối giữa 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 có thể á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 tới hệ thống ABAP

Loại I – các mục chỉ định hệ thống ABAP được kết nối với cùng cơ sở dữ liệu với 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 ví dụ: 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 tới 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 bắt đầu.

Làm cách nào để mã hóa RFC?

1) Trong tab thuộc tính mô-đun chức năng (mã giao dịch SE37), đặt loại xử lý là Mô-đun kích hoạt từ xa để tạo mô-đun chức năng từ xa.

Cách mã hóa RFC

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

Cách mã hóa RFC

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

Cách mã hóa RFC

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 xác định là các trường tham chiếu, nghĩa là giống như các 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ể đưa ra các ngoại lệ trong một hàm từ xa giống như cách bạn làm với hàm được gọi cục bộ.

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

  • Đó là không thể gỡ lỗi một cuộc gọi chức năng từ xa đến một hệ thống khác.
  • Tuy nhiên, khi kiểm tra các cuộc gọi RFC ABAP-to-ABAP, 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 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 truyền vào từ hệ thống từ xa.