SAP RFC Function Modules
Wprowadzenie
Certyfikowany moduł funkcyjny RFC /DABEXP/RFC_SAPCONNECTOR jest wymagany do połączenia SAP System z rozwiązaniami ekstrakcyjnymi dab SAP. Rozwiązanie ekstrakcyjne dab SAP Add-On jest następnie instalowane w SAP System.
Wymagane jest również konto użytkownika SAP, do którego przypisano odpowiedni profil autoryzacyjny. W kolejnych rozdziałach opisano sposób instalacji modułu funkcyjnego oraz strukturę niezbędnego profilu autoryzacji.
Do pierwszej instalacji modułu RFC w systemie SAP należy użyć pliku AOI-SAR. Aby zaktualizować istniejący moduł RFC, należy użyć pliku AOU-SAR.
Wymagania
Wspierane rozwiązania
dab SAP-Extraction Solution może być używane z następującymi rozwiązaniami SAP:
- SAP NetWeaver - 7.50 (SAP_BASIS 750) lub wyżej
- SAP ERP - 6.0 (ECC 6.0)
- SAP CRM - 7.0
- SAP SRM - 7.0
- SAP SCM - 7.0
- SAP EWM - 7.0
- Lista nie jest zamknięta — inne rozwiązania oparte na SAP NetWeaver z ABAP-Stack i łącznością RFC również są kompatybilne
- SAP S/4HANA - 1610 lub wyżej
- 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: Nasze Add-On SAP jest oficjalnie wspierane i certyfikowane do użytku w środowiskach RISE with SAP (Private Cloud Edition)
SAP Cloud ERP albo SAP S4/HANA Cloud, Public Edition nie obsługują importu Add-Onów i tym samym są niekompatybilne.
Niezbędne transakcje
Do instalacji Add-On użytkownik lub administrator SAP Basis powinien posiadać dostęp do następujących transakcji (wersja 0053 lub wyższa):
- SAINT - narzędzie instalacyjne Add-On SAP
- SPAM - Support Package Manager
Instalacja i aktualizacja
| SAP Basis | Add-On Version | Instalacja (AOI) | Aktualizacja (AOU) |
|---|---|---|---|
| 740+ | 1.61 lub wyżej | Customer Portal | Customer Portal |
| 731 i niżej | 1.40 | Pobierz AOI | Pobierz AOU |
Instalacja
Do wykonania tej czynności potrzebne są specjalne uprawnienia. Do wdrożenia Add-On wykorzystywana jest transakcja SAINT.
Po uruchomieniu transakcji SAINT należy zainstalować plik SAR z pakietu instalacyjnego (AOI) poprzez menu.
W pasku menu należy kliknąć Installation Package > Load Packages > From Frontend i wybrać właściwy plik SAR.

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

W przypadku pojawienia się komunikatu dotyczącego otwartych żądań ekstrakcji danych, można go pominąć, ponieważ Add-On nie modyfikuje żadnych struktur danych w SAP System. Komunikaty dotyczące niepodpisanych pakietów również można zignorować — jedynie pakiety SAP są podpisywane.

Aktualizacja
Gdy Add-On jest już zainstalowany w SAP System, możliwe jest zaktualizowanie Add-On do nowszej wersji przy użyciu pakietu Upgrade (AOU). Procedura aktualizacji przebiega identycznie jak instalacja. W celu doboru właściwego pliku AOU należy skorzystać z powyższej tabeli Wymagania wersji.
Uprawnienia
dab SAP-Extraction Solutions opiera się o mechanizmy zabezpieczeń i koncepcję uprawnień SAP System. Dodatkowo dostęp do tabel zawsze ma charakter tylko do odczytu. Do połączenia dab SAP-Extraction Solution z SAP System wymagane jest utworzenie użytkownika z przypisaną rolą autoryzacyjną, zawierającą poniższe obiekty autoryzacji.
Użytkownik SAP wykorzystywany do połączenia może być jednym z poniższych typów:
- Dialogowy
- Systemowy
- Komunikacyjny
- Serwisowy
Do utworzenia lub modyfikacji takiego użytkownika niezbędne są uprawnienia do następujących transakcji:
- PFCG: zarządzanie lub tworzenie roli autoryzacyjnej
- SU01: zarządzanie lub tworzenie użytkowników
Uprawnienia do uruchomienia modułu RFC
Możliwe są tutaj dwie opcje: uprawnienia na poziomie grupy funkcyjnej lub na poziomie konkretnego modułu funkcyjnego.
Służy do tego obiekt autoryzacyjny S_RFC: znajduje się w klasie autoryzacyjnej AAAB - Obiekty autoryzacyjne przekrojowe > Obiekt autoryzacyjny S_RFC - Sprawdzenie uprawnień do dostępu RFC.
Uprawnienia na poziomie grupy funkcyjnej
Pierwsza możliwość polega na udzieleniu uprawnień do odpowiednich grup funkcyjnych poprzez pole RFC_TYPE ustawione na FUGR (Function Group).
Poniżej przedstawiono tabelę odpowiadającą wartościom pól dla obiektu autoryzacyjnego S_RFC.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 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) |
Uprawnienia na poziomie modułu funkcyjnego
Alternatywnie, począwszy od SAP NW 7.0 EHP 2 (SAP_BASIS 702) możliwe jest ustawienie RFC_TYPE na FUNC (Function Module).
Poniżej przedstawiono tabelę odpowiadającą wartościom pól dla obiektu autoryzacyjnego S_RFC.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 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) |
Inne wymagane moduły funkcyjne
Oprócz modułu /DABEXP/RFC_SAPCONNECTOR dla poprawnego działania wymagane są także inne moduły funkcyjne.
W poniższej tabeli przedstawiono grupy funkcyjne, odpowiadające moduły oraz ich zastosowanie:
| Grupa funkcyjna | Moduł funkcyjny | Zastosowanie |
|---|---|---|
| /SDF/RI_CRM | /SDF/CMO_GET_INSTNO | Odczyt numeru instalacji w S4/HANA |
| CMON | CMO_GET_INSTNO | Odczyt numeru instalacji |
| RFC1 | RFC_GET_FUNCTION_INTERFACE RFC_GET_NAMETAB | Weryfikacja struktury i istnienia modułów RFC |
| SDIFRUNTIME | DDIF_FIELDINFO_GET | Konieczny do prawidłowej obsługi RFC Netweaver |
| SYST | RFCPING | Test połączenia RFC |
| /DABEXP/DAB_FUGR | /DABEXP/RFC_SAPCONNECTOR | Odczyt zawartości tabeli |
Uprawnienia na poziomie tabeli
Uwaga: Uprawnienia do tabel można nadawać tylko w całości albo wcale. Nie ma możliwości ograniczenia dostępu, np. do konkretnych kodów firm.
Do przyznania uprawnień do eksportu zawartości tabel można wykorzystać następujące obiekty autoryzacyjne. Kontrola dostępu jest realizowana przy użyciu modułu VIEW_AUTHORITY_CHECK.
Uprawnienia do tabel można nadawać na dwa sposoby — przez grupę autoryzacyjną albo bezpośrednio po nazwie tabeli.
Jeżeli nadawanie uprawnienia do tabeli odbywa się za pomocą obu obiektów autoryzacyjnych, najpierw wykonywana jest kontrola dla S_TABU_DIS (Grupa Autoryzacji Tabeli). W przypadku jej niepowodzenia kontrola odbywa się przez S_TABU_NAM (Nazwa Tabeli).
CDS View Entities (SAP Add-On 1.8+)
Od SAP Add-On Wersja 1.8 wspierane są CDS View Entities. Funkcjonalność ta wymaga wersji dab Nexus 1.19.986 lub wyższej.
| Tabela | Grupa autoryzacji | Przeznaczenie |
|---|---|---|
| T000 | SS | Klienci – tabela standardowa do testu łączności |
| T001 | FC01 | Kody firm – tabela zapasowa do testu łączności |
| DD02L | Słownik danych ABAP – dostępne tabele w systemie | |
| DD02T | Słownik danych ABAP – opisy tabel | |
| 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 – wymagany do ekstrakcji pól typu FLTP | |
| DDDDLSRC | Słownik danych ABAP – dostępne CDS Views (dotyczy tylko CDS Views) | |
| DDDDLSRC02BT | Słownik danych ABAP – opisy CDS Views (dotyczy tylko CDS Views) | |
| DD10B | Słownik danych ABAP – widoki z parametrami (dotyczy tylko CDS Views) | |
| NRIV | SC | Zakresy numeracji – obiekty czasu rzeczywistego w dab Nexus |
| NRIVSHADOW | Lokalne NRIV dla maszyn wieloprocesorowych – obiekty czasu rzeczywistego w dab Nexus | |
| TNRO | SS | Definicja obiektów zakresu numeracji – obiekty czasu rzeczywistego w dab Nexus |
Autoryzacja przez grupy autoryzacyjne tabel
Klasa autoryzacyjna BC_A Basis - Administracja → Obiekt autoryzacyjny S_TABU_DIS
Służy do określenia, na poziomie grupy autoryzacyjnej tabeli, jaka tabela może być dostępna i w jakim zakresie. Grupy autoryzacyjne podaje się w parametrze DICBERCLS, a typ dostępu przez ACTVT. Przypisanie tabeli do grupy autoryzacyjnej (lub odwrotnie) można sprawdzić w tabeli TDDAT.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 03 (Wyświetl) |
| DICBERCLS (Grupa autoryzacji) | * |
Autoryzacja przez nazwy tabel
Klasa autoryzacyjna BC_A Basis - Administracja > Obiekt autoryzacyjny S_TABU_NAM
Pozwala określić, na poziomie nazwy tabeli, do jakiej tabeli można uzyskać dostęp i w jaki sposób. Tabele podaje się w parametrze TABLE, a typ dostępu przez ACTVT.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 03 (Wyświetl) |
| TABLE (Grupa autoryzacji) | * |
Testowanie
Testowanie modułu funkcyjnego
Po zainstalowaniu modułu funkcyjnego zgodnie z powyższą instrukcją, można przeprowadzić wstępny test działania za pomocą transakcji SE37 i przycisku Test/Execute lub klawisza F8.
Parametry importu można wprowadzić w pierwszym oknie dialogowym. W prezentowanym przykładzie w polu QUERY_TABLE użyto tabeli dla kodów firm T001. Można wykorzystać dowolną tabelę, do której zalogowany użytkownik ma uprawnienia. Przy pierwszym teście dalsze wpisy nie są wymagane. Aby rozpocząć test, należy kliknąć przycisk Execute lub nacisnąć klawisz F8.

Jeśli moduł funkcyjny wykonał się bez błędów, wyświetlone zostaną tabele wynikowe. Szczegóły można zobaczyć po kliknięciu ikony Widok szczegółowy obok liczby wpisów w sekcji TABL_FIELDS lub DATA.

TABL_FIELDS zawiera strukturę pól pobranej tabeli:

DATA obejmuje rekordy danych pobranej tabeli:

Testowanie połączenia RFC
Do sprawdzenia, czy połączenie przez RFC zostało zestawione prawidłowo, można wykorzystać dab FunctionModuleTester. Szczegółowa instrukcja dostępna jest tutaj.
Odinstalowanie
- Otworzyć transakcję SAINT
- Przejść na zakładkę Uninstallable components, wybrać komponent DABEXT i kliknąć Start
- Po potwierdzeniu deinstalacji komponent zostanie usunięty z SAP System



Certyfikacje SAP
SAP nie certyfikuje już Add-Onów dla systemów ECC. W związku z tym SAP nie może już ponownie certyfikować autorskiego modułu funkcyjnego dab dla systemów ECC. Dodatkowe informacje można znaleźć w tym wpisie na blogu SAP.
Add-On posiada certyfikaty dla poniższych wersji — aktualne certyfikaty można w każdej chwili sprawdzić w SAP Certified Solutions Directory.
Informacje o wydaniach
Wersja 1.82
- Obsługa CDS View Entities: Od tej wersji możliwy jest ekstrakt CDS View Entities.
- Wymagane nowe autoryzacje do tabel:
- DDDDLSRC – identyfikuje dostępne CDS Views w systemie
- DDDDLSRC02BT – teksty opisowe dla CDS Views
- DD10B – widoki z parametrami (pozwala na filtrowanie widoków z parametryzacją)
- Uwaga dotycząca aktualizacji: Podczas aktualizacji z wersji 1.7 bez nadanych tych uprawnień do tabel, Package Studio pominie tabele bez autoryzacji. Jeśli tabele w ogóle nie posiadają autoryzacji, Package Studio może zakończyć pracę z błędem podczas wyszukiwania tabel. Funkcja ta wymaga wersji dab Nexus 1.19.986 lub wyższej.
Wersja 1.71
- Dostosowanie do SAP Clean Core Level B, tzn. wykorzystywane są wyłącznie interfejsy API zatwierdzone przez SAP
- Zmiany w warunkach instalacji: Add-On można wdrożyć na SAP ECC, SAP S4/HANA oraz SAP BW/4HANA
- Możliwość ekstrakcji widoków z nieunikalnym kluczem głównym (np. FAGLFLEXT): w celu skorzystania z tej funkcji wymagana jest dodatkowa aktualizacja aplikacji
Wersja 1.61
- podczas odinstalowania Add-On, nie wszystkie obiekty mogły zostać usunięte z powodu błędnych informacji o obiektach. Skutkowało to przerwaniem procesu dezinstalacji.
Wersja 1.60
- oprócz poprawki z wersji 110, wprowadzono również obsługę rozwiązania zagnieżdżonych .INCLUDES z sufiksami. Dotyczyło to w szczególności tabeli ACDOCA, w której .INCLU-_PA zawiera sufiks i jest dodatkowo rozszerzony przez .APPEND. Po modyfikacji, sufiks jest także stosowany do pól w .APPEND.
Wersja 1.50
- moduł funkcjonalny został przygotowany pod kątem 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 wymaganego poziomu bezpieczeństwa dla S/4 Cloud EX
Wersja 1.30
- pobieranie informacji DDIC zapewniało nieprawidłową wartość OUTPUTLEN dla typu danych RAW w przypadku pola GUID w tabelach CGPL_TASK i DPR_TASK. W konsekwencji eksportowała się skrócona wersja GUID. Dla pól typu RAW i INTLEN 16 oraz OUTPUTLEN mniejszym niż 32, OUTPUTLEN jest teraz ustawiany na 32.
Wersja 1.20
- podczas budowania listy pól do zapytania SQL, **<table>~<fieldname>** był obcinany po 30 znakach, co powodowało błędy w zapytaniach SQL.
Wersja 1.10
- występowały błędy w systemach S4/HANA z wybranymi tabelami (BKPF, BSEG, MATDOC, ACDOCA, MHNK). Dostosowano rozwijanie struktur INCLUDE w tych tabelach o nazwach
- .INCLU-_PN
- .INCLU-_A1
- .INCLU-LO Zmodyfikowano także strukturę listy pól w zapytaniach SQL, aby obejmowała **<table>~<fieldname>** zamiast tylko nazwy pola – zapobiega to wyjątkom w przypadkach, gdy nazwy pól są zarezerwowane przez SQL (np. tabela TOAM – pole Connection).
SAP Legacy RFC Function Modules
W przypadku używania modułu funkcjonalnego innego niż /DABEXP/RFC_SAPCONNECTOR, zdecydowanie zaleca się przejście na ten właśnie RFC module! dab nie będzie aktualizować ani wspierać innych modułów funkcjonalnych. Nie posiadają one również certyfikacji SAP!
Oprócz /DABEXP/RFC_SAPCONNECTOR w przeszłości obsługiwano także inne moduły z przestrzeni nazw Z, wywodzące się ze starszych instalacji dab:Exporter lub odrębnych dostosowań klienta.
W poniższej tabeli porównano zakres funkcjonalny poszczególnych modułów:
- Maks. znaków w rekordzie danych: określa maksymalną liczbę znaków, które można wyeksportować z jednego rekordu (istotne zwłaszcza dla tabel o dużej liczbie kolumn)
- Wymagane S_DEVELOP: moduły Z wymagają obiektu autoryzacji S_DEVELOP do wykonania
- Długie teksty: dłuższe opisy przechowywane są w tabelach STXH i STXL – nowsze wersje modułu pozwalają na dekodowanie i wyodrębnienie tych danych
- Typy danych FLT & RAW: możliwość ekstrakcji kolumn o typach danych FLT i RAW
- Aktualizacja przez SAINT: moduły Z należy utrzymywać przy użyciu transakcji SE37 oraz SE80 (certyfikowany moduł instaluje się i aktualizuje przez SAINT)
| Moduł funkcjonalny | Maks. znaków w rekordzie danych | Wymagane S_DEVELOP | Długie teksty | Typy danych FLT & RAW | Aktualizacja przez 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 |