SAP RFC – Moduły Funkcyjne
Wprowadzenie
Certyfikowany moduł funkcyjny RFC /DABEXP/RFC_SAPCONNECTOR jest wymagany do podłączenia SAP System do rozwiązań ekstrakcyjnych dab SAP-Extraction Solutions. Rozwiązanie dab SAP-Extraction Solution Add-On instaluje się następnie w SAP System.
Wymagane jest również założenie konta użytkownika SAP, któremu przypisano odpowiedni profil autoryzacyjny. W kolejnych rozdziałach opisano proces instalacji modułu funkcyjnego oraz strukturę wymaganego profilu autoryzacji.
Do pierwszej instalacji modułu RFC w systemie SAP należy użyć pliku typu AOI-SAR. Jeżeli celem jest aktualizacja istniejącego modułu RFC, należy skorzystać z pliku AOU-SAR.
Wymagania
Wspierane rozwiązania
dab SAP-Extraction Solution działa z następującymi rozwiązaniami SAP:
- SAP NetWeaver – 7.50 (SAP_BASIS 750) lub wyższy
- SAP ERP – 6.0 (ECC 6.0)
- SAP CRM – 7.0
- SAP SRM – 7.0
- SAP SCM – 7.0
- SAP EWM – 7.0
- Powyższa lista nie jest wyczerpująca; inne rozwiązania bazujące na SAP NetWeaver z ABAP-Stack i łącznością RFC są również kompatybilne
- SAP S/4HANA – 1610 lub wyższy
- SAP S/4HANA Cloud, Extended Edition – wszystkie wersje
- SAP Cloud ERP Private lub SAP S/4HANA Cloud, Private Edition – wszystkie wersje
- RISE with SAP Ready: Rozwiązanie SAP Add-On jest oficjalnie wspierane oraz certyfikowane do pracy w środowiskach RISE with SAP (Private Cloud Edition)
SAP Cloud ERP ani SAP S4/HANA Cloud, Public Edition nie obsługują importu Add-Onów i dlatego są niekompatybilne.
Wymagane transakcje
Aby zainstalować Add-On, administrator (lub osoba wykonująca wdrożenie) powinna mieć dostęp do następujących transakcji (wersja 0053 lub wyższa):
- SAINT – SAP Add-On Installation Tool
- SPAM – Support Package Manager
Instalacja i aktualizacja
Instalacja
Do instalacji na SAP Basis 740 lub wyższym wymagana jest wersja 1.61 lub wyższa. Plik instalacyjny jest dostępny do pobrania w Customer Portal.
Do instalacji na SAP Basis 731 lub niższym wymagany jest plik dabexp-sapconn-aoi-140.sar. Można go pobrać tutaj.
W tym celu niezbędne są specjalne uprawnienia. Do wdrożenia Add-On wykorzystywana jest transakcja SAINT.
Po wywołaniu transakcji SAINT należy zainstalować plik SAR pakietu instalacyjnego (AOI) przez menu.
W pasku menu proszę wybrać Installation Package > Load Packages > From Frontend i wskazać odpowiedni plik SAR.

Jeśli pakiet DABEXP nie wyświetla się na liście, należy dezaktywować filtry:

Jeśli pojawi się komunikat dotyczący otwartych żądań ekstrakcji danych, można go pominąć – Add-On nie modyfikuje żadnych struktur danych w systemie SAP.
Jeśli pojawi się ostrzeżenie, że pakiet nie posiada podpisu, można je zignorować. Tylko pakiety wydawane przez SAP są podpisywane – Add-Ony firm trzecich nie otrzymują podpisu.

Aktualizacja
Jeżeli Add-On jest już zainstalowany w SAP System, można przeprowadzić aktualizację Add-On do nowszej wersji przy użyciu pakietu Upgrade (AOU). Procedura aktualizacji przebiega analogicznie jak instalacja.
Do aktualizacji systemów SAP z Basis 740 lub wyższym potrzebny jest plik dabexp-sapconn-aou-161.sar. Plik dostępny jest do pobrania w zasobach Customer Portal.
Aby zaktualizować systemy SAP z Basis 731 lub niższym, używa się pliku dabexp-sapconn-aou-140.sar. Plik można pobrać tutaj.
Autoryzacje
dab SAP-Extraction Solutions bazują na mechanizmach bezpieczeństwa oraz koncepcji uprawnień SAP System. Dodatkowo, dostęp do tabel jest zawsze tylko do odczytu. Aby połączyć dab SAP-Extraction Solution z SAP System, niezbędny jest użytkownik, któremu przypisano rolę autoryzacyjną zawierającą poniższe obiekty autoryzacji.
Użytkownik SAP wymagany do łączności może mieć następujący typ:
- Dialog
- Systemowy
- Komunikacyjny
- Serwisowy
Aby utworzyć lub zmodyfikować takiego użytkownika, wymagane są uprawnienia do realizacji transakcji:
- PFCG: zarządzanie lub tworzenie roli autoryzacyjnej
- SU01: zarządzanie lub zakładanie użytkowników
Uprawnienia do uruchomienia modułu RFC
Tutaj możliwe są dwie opcje: autoryzacja na poziomie grupy funkcyjnej lub na poziomie modułu funkcyjnego.
Obiekt autoryzacji wykorzystywany w tym celu to S_RFC: znajduje się on w klasie autoryzacji AAAB – Obiekty autoryzacji międzyaplikacyjne > Obiekt autoryzacji S_RFC – Kontrola autoryzacji dla dostępu RFC.
Uprawnienie na poziomie grupy funkcyjnej
Pierwszym wariantem jest przyznanie uprawnień dla odpowiednich grup funkcyjnych przez RFC_TYPE ustawiony na FUGR (Function Group).
W poniższej tabeli wyszczególniono odpowiednie pola oraz wartości dla obiektu autoryzacji S_RFC.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 16 (wykonanie) |
| RFC_NAME (Nazwa obiektu RFC do ochrony) | /SDF/RI_CRM CMON RFC1 SYST /DABEXP/DAB_FUGR |
| RFC_TYPE (Typ chronionego obiektu RFC) | FUGR (grupa funkcyjna) |
Uprawnienie na poziomie modułu funkcyjnego
Alternatywnie, od wersji SAP NW 7.0 EHP 2 (SAP_BASIS 702), istnieje możliwość ustawienia RFC_TYPE na FUNC (Function Module).
W tabeli przedstawiono właściwe pola i wartości dla obiektu autoryzacji S_RFC.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 16 (wykonanie) |
| RFC_NAME (Nazwa obiektu RFC do ochrony) | /SDF/CMO_GET_INSTNO CMO_GET_INSTNO DDIF_FIELDINFO_GET RFC_GET_FUNCTION_INTERFACE RFC_GET_NAMETAB RFCPING /DABEXP/RFC_SAPCONNECTOR |
| RFC_TYPE (Typ chronionego obiektu RFC) | FUNC (moduł funkcyjny) |
Pozostałe wymagane moduły funkcyjne
Poza modułem /DABEXP/RFC_SAPCONNECTOR, do poprawnego działania wymagane są również inne moduły.
W poniższej tabeli znajdują się grupy funkcyjne, odpowiadające im moduły i ich przeznaczenie:
| Grupa funkcyjna | Moduł funkcyjny | Zastosowanie |
|---|---|---|
| /SDF/RI_CRM | /SDF/CMO_GET_INSTNO | Zapytanie o numer instalacji w systemie S4/HANA |
| CMON | CMO_GET_INSTNO | Zapytanie o numer instalacji |
| RFC1 | RFC_GET_FUNCTION_INTERFACE RFC_GET_NAMETAB | Sprawdzanie struktury i istnienia modułów RFC |
| SDIFRUNTIME | DDIF_FIELDINFO_GET | Wymagany dla poprawnego działania RFC Netweaver |
| SYST | RFCPING | Test połączenia RFC |
| /DABEXP/DAB_FUGR | /DABEXP/RFC_SAPCONNECTOR | Wczytywanie zawartości tabeli |
Uprawnienia na poziomie tabel
Uprawnienia do tabeli można przyznać wyłącznie w całości lub wcale. Ograniczenia do wybranych danych, np. kodów firm, nie są możliwe.
Do przydzielania uprawnień dostępowych do zawartości eksportowanych tabel stosuje się poniższe obiekty autoryzacji. Weryfikacja odbywa się z wykorzystaniem modułu funkcyjnego VIEW_AUTHORITY_CHECK.
Uprawnienia do tabel można przyznać na dwa sposoby – przez grupę autoryzacyjną lub przez nazwę tabeli.
W przypadku przyznania uprawnień poprzez oba obiekty autoryzacji, najpierw sprawdzana jest autoryzacja na S_TABU_DIS (grupa autoryzacyjna tabeli). Jeśli ten test zakończy się niepowodzeniem, sprawdzane jest uprawnienie dla S_TABU_NAM (nazwa tabeli).
Przy przyznawaniu uprawnień na poziomie tabel należy zapewnić również dostęp do poniższych tabel.
| Tabela | Grupa autoryzacyjna | Cel |
|---|---|---|
| T000 | SS | Klienci – tabela standardowa do testu połączenia |
| T001 | FC01 | Jednostki gospodarcze – tabela awaryjna do testu połączenia |
| DD02L | Słownik danych ABAP – dostępne tabele w systemie | |
| DD02T | Słownik danych ABAP – teksty opisujące tabele | |
| DD02V | Słownik danych ABAP – wyszukiwanie tabel w dab Nexus Package Studio | |
| DD03L | Słownik danych ABAP – dostępne pola w systemie | |
| DD03T | Słownik danych ABAP – dostępne opisy pól | |
| DD04L | Słownik danych ABAP – wymagane do ekstrakcji pól typu FLTP | |
| NRIV | SC | Zakresy numeracji – obiekty czasu rzeczywistego w dab Nexus |
| NRIVSHADOW | Lokalne NRIV – obiekty czasu rzeczywistego przy systemach wieloprocesorowych w dab Nexus | |
| TNRO | SS | Definicja obiektów zakresów numeracji – obiekty czasu rzeczywistego w dab Nexus |
Autoryzacja przez Grupy Autoryzacyjne Tabel
Klasa autoryzacji BC_A Basis – Administracja → Obiekt autoryzacji S_TABU_DIS
Stosuje się ją, by na poziomie grupy autoryzacyjnej tabeli zdefiniować, do których tabel możliwy jest dostęp oraz w jaki sposób. Grupy autoryzacyjne wpisuje się do parametru DICBERCLS, a tryb dostępu określa pole ACTVT. Przypisanie tabeli do grupy autoryzacyjnej można sprawdzić w tabeli TDDAT.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 03 (Odczyt) |
| DICBERCLS (Grupa aut.) | * |
Autoryzacja przez Nazwy Tabel
Klasa autoryzacji BC_A Basis – Administracja > Obiekt autoryzacji S_TABU_NAM
Stosuje się ją, aby na poziomie nazwy tabeli zdefiniować, do których tabel oraz w jaki sposób przyznaje się uprawnienia. Tabele definiuje się przez parametr TABLE, zaś rodzaj dostępu przez ACTVT.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 03 (Odczyt) |
| TABLE (Nazwa tabeli) | * |
Testowanie
Testowanie modułu funkcyjnego
Po zainstalowaniu modułu zgodnie z powyższą instrukcją, możliwe jest przeprowadzenie wstępnego testu jego działania za pomocą transakcji SE37 – należy wybrać moduł funkcyjny i kliknąć przycisk Test/Execute lub użyć klawisza F8.
W pierwszym oknie dialogowym można wprowadzić parametry importu. W przykładzie użyto tabeli jednostek gospodarczych T001, podanej w polu QUERY_TABLE. Można wybrać dowolną tabelę, do której aktualnie zalogowany użytkownik ma prawo dostępu. Na potrzeby pierwszego testu nie są konieczne żadne dodatkowe dane. Aby uruchomić test, należy kliknąć przycisk Execute lub nacisnąć klawisz F8.

Jeśli moduł funkcyjny został wykonany bez błędów, pojawią się tabele wynikowe. Wynik można obejrzeć klikając ikonę Widok szczegółowy przy liczbie wpisów w TABL_FIELDS lub DATA.

TABL_FIELDS zawiera strukturę pól pobranej tabeli:

DATA zawiera rekordy danych z wybranej tabeli:

Test połączenia RFC
Do sprawdzenia, czy połączenie RFC może być prawidłowo nawiązane, zalecane jest narzędzie dab FunctionModuleTester. Dalsze instrukcje znajdują się tutaj.
Odinstalowanie
- Proszę otworzyć transakcję SAINT
- Przejść do zakładki Uninstallable components, wybrać komponent DABEXT i kliknąć Start
- Po potwierdzeniu deinstalacji komponent zostanie usunięty z SAP System



Certyfikaty SAP
SAP nie certyfikuje już Add-Onów dla systemów ECC. Oznacza to, że systemy dab nie mogą być już (ponownie) certyfikowane przez SAP dla własnych modułów funkcyjnych w środowiskach ECC. Więcej informacji można znaleźć w tym wpisie na blogu SAP.
Add-On posiada certyfikacje dla następujących wersji – aktualna lista certyfikatów dostępna jest również w każdej chwili w SAP Certified Solutions Directory.
Release Notes
Wersja 1.71
- Dostosowanie do SAP Clean Core Level B, co oznacza wykorzystanie wyłącznie interfejsów API zatwierdzonych przez SAP
- Zmiany dotyczące warunków importu: Add-On można zainstalować na SAP ECC, SAP S4/HANA oraz SAP BW/4HANA
- Rozszerzenie możliwości ekstrakcji widoków z nieunikalnymi kluczami podstawowymi (np. FAGLFLEXT): aby z tego skorzystać, wymagana jest dodatkowa aktualizacja aplikacji
Wersja 1.61
- podczas odinstalowywania Add-On nie wszystkie obiekty mogły zostać usunięte z powodu nieprawidłowych informacji o obiekcie. Powodowało to przerwanie operacji deinstalacji.
Wersja 1.60
- poza poprawką z wersji 110, obecnie obsługiwana jest również rozwiazywanie zagnieżdżonych .INCLUDES z sufiksami. Dotyczy to w szczególności tabeli ACDOCA, gdzie .INCLU-_PA zawiera sufiks i jest rozszerzona przez .APPEND. Dzięki tej poprawce, sufiks jest teraz także stosowany do pól w .APPEND.
Wersja 1.50
- moduł funkcyjny został przygotowany do wspierania eksportu długich tekstów z kolumny CLUSTD w tabeli STXL
Wersja 1.40
- ostatnia wersja SAP Add-On kompatybilna z SAP Basis 731 i niższymi
- spełnienie wymaganych poziomów bezpieczeństwa dla S/4 Cloud EX
Wersja 1.30
- Pobieranie informacji DDIC podawało nieprawidłową wartość OUTPUTLEN dla typu danych RAW w przypadku GUID w tabelach CGPL_TASK lub DPR_TASK. W efekcie eksportowano skróconą wersję tych GUID-ów. Dla pól typu RAW, o INTLEN 16 oraz OUTPUTLEN mniejszym niż 32, OUTPUTLEN został poprawiony do wartości 32.
Wersja 1.20
- podczas budowania listy pól do zapytania SQL, **<table>~<fieldname>** był skracany po 30 znakach podczas składania, co powodowało błędy w zapytaniu SQL.
Wersja 1.10
- w systemach S4/HANA pojawiały się błędy przy określonych tabelach (BKPF, BSEG, MATDOC, ACDOCA, MHNK). Dostosowano rozwiazywanie struktur INCLUDE o nazwach
- .INCLU-_PN
- .INCLU-_A1
- .INCLU-LO Zmodyfikowano strukturę listy pól w zapytaniu SQL z samej nazwy pola na **<table>~<fieldname>**, co pozwala uniknąć wyjątków związanych z niektórymi nazwami pól używającymi zastrzeżonych nazw SQL (np. tabela TOAM – pole Connection).
SAP Legacy RFC Function Modules
Jeśli korzystają Państwo z modułu funkcyjnego innego niż /DABEXP/RFC_SAPCONNECTOR, zdecydowanie zalecamy dokonanie aktualizacji do tego modułu RFC! dab nie będzie ani aktualizował, ani wspierał innych modułów funkcyjnych. Te moduły nie mają również certyfikacji SAP!
Obok /DABEXP/RFC_SAPCONNECTOR, w przeszłości wspierano także inne moduły w obszarze Z, które pochodziły ze starszych instalacji dab:Exporter lub indywidualnych rozwiązań klienta.
Poniższa tabela przedstawia porównanie zakresu funkcjonalności poszczególnych modułów:
- Maks. znaków na rekord danych: określa maksymalną liczbę znaków, które można wyodrębnić na rekord (istotne zwłaszcza dla tabel z wieloma kolumnami)
- Wymagany S_DEVELOP: moduły Z wymagają posiadania obiektu autoryzacji S_DEVELOP do wykonania
- Długie teksty: długie teksty przechowywane są w tabelach STXH i STXL – nowsze wersje modułu potrafią dekodować i wyodrębnić zawartość tych tabel
- Typy danych FLT i RAW: wsparcie ekstrakcji na kolumnach o typach danych FLT oraz RAW
- Aktualizacja przez SAINT: moduły Z muszą być obsługiwane transakcjami SE37 oraz SE80 (moduł certyfikowany należy instalować i aktualizować transakcją SAINT)
| Function Module | Max. characters per data record | S_DEVELOP required | Long texts | FLT & RAW Data types | Update via SAINT | SAP-Certification |
|---|---|---|---|---|---|---|
| Z_RFC_READ_TABLE (Version 2.0) | 8000 | tak | nie | tak | nie | nie |
| Z_RFC_READ_TABLE (Version 1.7) | 2048 | tak | nie | tak | nie | nie |
| Z_RFC_READ_TABLE (Version 1.6 lub starsza) | 2048 | tak | nie | nie | nie | nie |