Moduły Funkcyjne SAP RFC
Wprowadzenie
Certyfikowany moduł funkcyjny RFC /DABEXP/RFC_SAPCONNECTOR jest niezbędny, aby połączyć SAP System z dab SAP-Extraction Solutions. Rozwiązanie dab SAP-Extraction Solution Add-On jest następnie instalowane w SAP System.
Wymagane jest również konto użytkownika SAP, któremu przypisano odpowiedni profil uprawnień. W kolejnych rozdziałach opisano instalację modułu funkcyjnego oraz strukturę niezbędnego profilu autoryzacyjnego.
Do początkowej instalacji modułu RFC w SAP proszę użyć pliku AOI-SAR. Aby zaktualizować istniejący moduł RFC, należy skorzystać z pliku AOU-SAR.
Wymagania
Obsługiwane rozwiązania
dab SAP-Extraction Solution można zastosować 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
- Wskazana lista nie jest wyczerpująca, obsługiwane są także inne rozwiązania oparte na SAP NetWeaver z ABAP-Stack oraz RFC
- 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 Add-On jest oficjalnie wspierane oraz certyfikowane do stosowania w środowiskach RISE with SAP (Private Cloud Edition)
SAP Cloud ERP lub SAP S4/HANA Cloud Public Edition nie pozwala na import Add-Ons, przez co pozostaje niekompatybilne.
Wymagane transakcje
Do instalacji Add-On, Administrator SAP Basis lub osoba oddelegowana powinna mieć dostęp do poniższych transakcji (wersja 0053 lub wyższa):
- SAINT - narzędzie instalacyjne SAP Add-On
- SPAM - Support Package Manager
Instalacja i Aktualizacja
Instalacja
Do instalacji na SAP Basis 740 lub wyższym wymagana jest wersja 1.61 lub nowsza. Plik można pobrać z Customer Portal.
Do instalacji na SAP Basis 731 lub niższym należy użyć pliku dabexp-sapconn-aoi-140.sar. Plik dostępny jest tutaj.
Do tego konieczne są odpowiednie uprawnienia. Do skonfigurowania Add-On używa się transakcji SAINT.
Po uruchomieniu transakcji SAINT można zainstalować plik SAR z pakietem instalacyjnym (AOI) wybierając odpowiednią opcję, poprzez menu.
W pasku menu należy kliknąć Installation Package > Load Packages > From Frontend oraz wybrać plik SAR.

Jeżeli pakiet DABEXP nie jest widoczny, należy wyłączyć filtry:

Jeśli pojawi się komunikat dotyczący otwartych żądań ekstrakcji danych, można go zignorować, ponieważ Add-On nie zmienia struktur danych w systemie SAP.
Jeśli pojawi się informacja, że pakiet nie jest podpisany, również można ją zignorować. Tylko pakiety SAP posiadają podpis, Add-Ons spoza SAP nie są podpisywane.

Aktualizacja
Jeśli Add-On został już wcześniej zainstalowany w SAP System, można zaktualizować Add-On do nowszej wersji z użyciem Upgrade Package (AOU). Proces aktualizacji przebiega identycznie jak instalacja.
Do aktualizacji na systemach SAP z Basis 740 lub wyższym potrzebny jest plik dabexp-sapconn-aou-161.sar. Plik można pobrać z Customer Portal.
Do aktualizacji na SAP Basis 731 lub niższym wymagany jest plik dabexp-sapconn-aou-140.sar. Plik można pobrać tutaj.
Uprawnienia
dab SAP-Extraction Solutions bazują na mechanizmach bezpieczeństwa oraz koncepcji autoryzacji SAP System. Dodatkowo dostęp do tabel zawsze odbywa się w trybie tylko do odczytu. Aby połączyć dab SAP-Extraction Solution z SAP System, wymagany jest użytkownik z przypisaną rolą autoryzacji zawierającą następujące obiekty autoryzacyjne.
Użytkownik SAP potrzebny do połączenia może być jednym z następujących typów:
- Dialogowy
- Systemowy
- Komunikacyjny
- Serwisowy
Do utworzenia lub zmodyfikowania odpowiedniego użytkownika wymagane są uprawnienia do następujących transakcji:
- PFCG: tworzenie lub edycja roli autoryzacyjnej
- SU01: tworzenie lub edycja użytkownika
Uprawnienia do uruchomienia modułu RFC
Można wybrać jedną z dwóch opcji: autoryzację na poziomie grupy funkcyjnej lub na poziomie modułu funkcyjnego.
Do autoryzacji używany jest obiekt autoryzacyjny S_RFC: znajduje się w klasie autoryzacji AAAB – Obiekty autoryzacyjne przekrojowe > Obiekt autoryzacyjny S_RFC – kontrola autoryzacji dla dostępu RFC.
Autoryzacja na poziomie grupy funkcyjnej
Pierwsza opcja polega na autoryzacji odpowiednich grup funkcyjnych przez RFC_TYPE ustawiony na FUGR (Function Group).
W poniższej tabeli przedstawiono właściwe pola i wartości obiektu autoryzacyjnego S_RFC.
| Pole | Wartość |
|---|---|
| ACTVT (Aktywność) | 16 (wykonanie) |
| RFC_NAME (Nazwa chronionego obiektu RFC) | /SDF/RI_CRM CMON RFC1 SYST /DABEXP/DAB_FUGR |
| RFC_TYPE (Typ chronionego obiektu RFC) | FUGR (grupa funkcyjna) |
Autoryzacja na poziomie modułu funkcyjnego
Alternatywnie, od SAP NW 7.0 EHP 2 (SAP_BASIS 702) parametr RFC_TYPE można ustawić na FUNC (Function Module).
W poniższej tabeli znajduje się zestawienie pól i wartości dla obiektu autoryzacyjnego S_RFC.
| Pole | Wartość |
|---|---|
| ACTVT (Aktywność) | 16 (wykonanie) |
| RFC_NAME (Nazwa chronionego obiektu RFC) | /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
Oprócz modułu /DABEXP/RFC_SAPCONNECTOR wymagane są także inne moduły do prawidłowego funkcjonowania.
W poniższej tabeli wskazano grupę funkcyjną, odpowiednie moduły oraz przeznaczenie:
| Grupa funkcyjna | Moduł funkcyjny | Zastosowanie |
|---|---|---|
| /SDF/RI_CRM | /SDF/CMO_GET_INSTNO | Zapytanie o numer instalacji pod S4/HANA |
| CMON | CMO_GET_INSTNO | Zapytanie o numer instalacji |
| RFC1 | RFC_GET_FUNCTION_INTERFACE RFC_GET_NAMETAB | Kontrola struktury oraz obecności modułów RFC |
| SYST | RFCPING | Test komunikacji RFC |
| /DABEXP/DAB_FUGR | /DABEXP/RFC_SAPCONNECTOR | Pobieranie zawartości tabel |
Uprawnienia na poziomie tabeli
Uprawnienia do tabel mogą być nadawane wyłącznie w całości lub wcale; ograniczenie do wybranych danych, np. kodów firm, nie jest możliwe.
Do przyznania autoryzacji dostępu do zawartości eksportowanych tabel można wykorzystać poniższe obiekty autoryzacyjne. Kontrola odbywa się poprzez moduł funkcyjny VIEW_AUTHORITY_CHECK.
Istnieją dwie możliwości autoryzacji tabel – przez grupę autoryzacyjną lub nazwę tabeli.
Jeśli uprawnienia do tabel są nadawane z użyciem obu obiektów autoryzacyjnych, kontrola jest najpierw wykonywana dla S_TABU_DIS (grupa autoryzacji tabel). Jeśli ten test nie powiedzie się, sprawdzana jest autoryzacja dla S_TABU_NAM (nazwa tabeli).
W przypadku nadawania uprawnień na poziomie tabeli należy zadbać, aby poniższe tabele również były uwzględnione.
| Tabela | Grupa autoryzacji | Zastosowanie |
|---|---|---|
| T000 | SS | Klienci – standardowa tabela testu połączenia |
| T001 | FC01 | Kody firm – tabela awaryjna do testu połączenia |
| DD02L | ABAP Data Dictionary – dostępne tabele w systemie | |
| DD02T | ABAP Data Dictionary – opisy tabel | |
| DD02V | ABAP Data Dictionary – wyszukiwanie tabel w dab Nexus Package Studio | |
| DD03L | ABAP Data Dictionary – dostępne pola w systemie | |
| DD03T | ABAP Data Dictionary – opisy pól |
Uprawnienia przez grupę autoryzacji tabeli
Klasa autoryzacji BC_A Basis – Administracja → Obiekt autoryzacyjny S_TABU_DIS
Pozwala określić, na poziomie grupy autoryzacyjnej tabeli, do których tabel można uzyskać dostęp oraz w jakim zakresie. Grupy autoryzacji są umieszczane w parametrze DICBERCLS, typ dostępu określa się przez ACTVT. Przypisanie tabeli do grupy autoryzacji można sprawdzić w tabeli TDDAT.
| Pole | Wartość |
|---|---|
| ACTVT (Aktywność) | 03 (Wyświetlanie) |
| DICBERCLS (Grupa autoryzacji) | * |
Uprawnienia przez nazwy tabel
Klasa autoryzacji BC_A Basis – Administracja > Obiekt autoryzacyjny S_TABU_NAM
Pozwala wskazać na poziomie pojedynczej tabeli, do których tabel dostęp jest możliwy i w jakim zakresie. Tabele wpisuje się w parametrze TABLE, typ dostępu określa ACTVT.
| Pole | Wartość |
|---|---|
| ACTVT (Aktywność) | 03 (Wyświetlanie) |
| TABLE (Grupa autoryzacji) | * |
Testowanie
Test modułu funkcyjnego
Po zainstalowaniu modułu funkcyjnego zgodnie z powyższą instrukcją można przeprowadzić test funkcjonalny za pomocą transakcji SE37 — wystarczy wybrać moduł funkcyjny oraz przycisk Test/Execute lub użyć klawisza F8.
Parametry importu można wprowadzić w pierwszym oknie dialogowym. W przykładowym przypadku w polu QUERY_TABLE wskazujemy tabelę kodów firm T001. Można wykorzystać dowolną tabelę, do której zalogowany użytkownik posiada prawa dostępu. Nie trzeba podawać więcej informacji przy pierwszym teście. Aby rozpocząć test, należy nacisnąć przycisk Execute lub klawisz F8.

Jeżeli moduł funkcyjny został wykonany bez błędów, pojawią się Result Tables. Wyniki można sprawdzić klikając ikonę Detailed view obok liczby wpisów dla TABL_FIELDS lub DATA.

TABL_FIELDS zawiera strukturę pól wybranej tabeli:

DATA zawiera rekordy danych wybranej tabeli:

Testowanie połączenia RFC
Do sprawdzenia poprawności połączenia RFC można wykorzystać dab FunctionModuleTester. Szczegółowe instrukcje znajdują się tutaj.
Odinstalowanie
- uruchomić transakcję SAINT
- przejść do zakładki Uninstallable components, wybrać komponent DABEXT i kliknąć Start
- po zatwierdzeniu deinstalacji komponent zostaje usunięty z SAP System



Certyfikaty SAP
SAP nie certyfikuje już Add-Ons dla systemów ECC. Oznacza to, że SAP nie może ponownie certyfikować modułu funkcyjnego własnego dab na systemach ECC. Dodatkowe informacje można znaleźć w tym blogu SAP.
Add-On posiada certyfikaty dla poniższych wersji – aktualne certyfikaty można sprawdzić w SAP Certified Solutions Directory.
| 1.1 | SAP S/4HANA 2020 | Klasyczny ABAP-Add-On
S/4-ABAP 2020 ‒ ABAP Add-On DLA SAP S/4HANA 2020 |
| | SAP S/4HANA 1909 | Klasyczny ABAP-Add-On
S/4-ABAP 1909 ‒ ABAP Add-On DLA SAP S/4HANA 1909 |
| 1.0 | SAP S/4HANA 1809 | Klasyczny ABAP-Add-On
S/4-ABAP 1809 ‒ ABAP Add-On DLA SAP S/4HANA 1809 |
| | SAP NetWeaver 7.50 | Klasyczny ABAP-Add-On
ABAP 7.0 ‒ ABAP Add-On DLA SAP NETWEAVER APPLICATION SERVER |
Informacje o wydaniu
Wersja 1.71
- Dostosowanie do SAP Clean Core Level B, co oznacza, że wykorzystywane są wyłącznie interfejsy API zatwierdzone przez SAP
- Korekta warunków importu: Add-On może być instalowany na SAP ECC, SAP S4/HANA oraz SAP BW/4HANA
- Rozszerzenia do ekstrakcji widoków z nieunikalnymi kluczami głównymi (np. FAGLFLEXT): w celu skorzystania z tej funkcji konieczna jest dodatkowa aktualizacja aplikacji
Wersja 1.61
- podczas odinstalowywania Add-On, z powodu błędnych informacji o obiektach niektóre z nich nie mogły zostać usunięte. Operacja odinstalowania została przerwana.
Wersja 1.60
- oprócz rozwiązania z wersji 110, dodano obsługę rozwijania zagnieżdżonych .INCLUDES z sufiksami. Szczególnie dotyczyło to problemów w tabeli ACDOCA, gdzie obiekt .INCLU-_PA posiada sufiks oraz jest rozszerzany przez .APPEND. Dzięki tej aktualizacji, sufiks jest również stosowany do pól w .APPEND.
Wersja 1.50
- przygotowano moduł funkcyjny do eksportu długich tekstów z kolumny CLUSTD w tabeli STXL
Wersja 1.40
- ostatnia wersja SAP Add-On zgodna z SAP Basis 731 i niższymi
- spełnienie wymaganych poziomów bezpieczeństwa dla S/4 Cloud EX
Wersja 1.30
- w przypadku odczytu informacji DDIC podawana była błędna wartość OUTPUTLEN dla typu danych RAW dla pola GUID w tabelach CGPL_TASK oraz DPR_TASK. W rezultacie eksportowane GUID-y miały skróconą formę. Teraz dla pól o typie danych RAW, INTLEN 16 oraz OUTPUTLEN niższym niż 32, OUTPUTLEN jest ustawiany na 32.
Wersja 1.20
- podczas tworzenia listy pól dla zapytania SQL, **<table>~<fieldname>** był skracany do 30 znaków, co powodowało błędy w zapytaniu SQL.
Wersja 1.10
- pojawiały się błędy w systemach S4/HANA przy niektórych tabelach (BKPF, BSEG, MATDOC, ACDOCA, MHNK). Rozwiązano strukturę INCLUDE w tych tabelach z nazwami:
- .INCLU-_PN
- .INCLU-_A1
- .INCLU-LO Zmieniono strukturę listy pól dla zapytania SQL z samej nazwy pola na **<table>~<fieldname>**, aby uniknąć wyjątków przy określonych nazwach pól korzystających z zastrzeżonych nazw SQL (np. tabela TOAM — pole Connection).
SAP Legacy RFC Function Modules
Jeżeli Pan/Pani korzysta z innego modułu funkcyjnego niż /DABEXP/RFC_SAPCONNECTOR, zalecamy migrację do tego modułu RFC. dab nie aktualizuje ani nie wspiera innych modułów funkcyjnych. Nie posiadają one również certyfikacji SAP!
Poza /DABEXP/RFC_SAPCONNECTOR, w przeszłości wspierano także pozostałe moduły z przestrzeni nazw Z, pochodzące ze starszych instalacji dab:Exporter lub indywidualnych modyfikacji dla klientów.
Poniższa tabela przedstawia porównanie zakresów funkcjonalnych poszczególnych modułów:
- Maksymalna liczba znaków na rekord danych: określa, ile znaków można pobrać z pojedynczego rekordu danych (istotne szczególnie w przypadku tabel z wieloma kolumnami)
- Wymagany S_DEVELOP: moduły Z wymagają uprawnienia S_DEVELOP w celu ich uruchamiania
- Długie teksty: długie teksty są przechowywane w tabelach STXH i STXL — nowsze wersje modułu umożliwiają dekodowanie i ekstrakcję zawartości tych tabel
- Typy danych FLT & RAW: obsługa ekstrakcji kolumn z typami danych FLT oraz RAW
- Aktualizacja za pomocą SAINT: moduły Z powinny być utrzymywane poprzez transakcje SE37 oraz SE80 (moduł certyfikowany jest instalowany i aktualizowany przez transakcję SAINT)
| Function Module | Maksymalna liczba znaków na rekord danych | Wymagany S_DEVELOP | Długie teksty | Typy danych FLT & RAW | Aktualizacja za pomocą SAINT | Certyfikacja SAP |
|---|---|---|---|---|---|---|
| Z_RFC_READ_TABLE (Wersja 2.0) | 8000 | tak | nie | tak | nie | nie |
| Z_RFC_READ_TABLE (Wersja 1.7) | 2048 | tak | nie | tak | nie | nie |
| Z_RFC_READ_TABLE (Wersja 1.6 lub starsza) | 2048 | tak | nie | nie | nie | nie |