Moduły funkcyjne SAP RFC
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 Add-On instalowane jest następnie w SAP System.
Wymagane jest również konto użytkownika SAP, któremu przypisano odpowiedni profil autoryzacji. W kolejnych rozdziałach przedstawiono instalację modułu funkcyjnego oraz strukturę niezbędnego profilu autoryzacji.
Do pierwszej instalacji modułu RFC w systemie SAP prosimy użyć pliku AOI-SAR. Jeśli konieczna jest aktualizacja istniejącego modułu RFC, należy wykorzystać plik AOU-SAR.
Wymagania
Wspierane rozwiązania
dab SAP-Extraction Solution można wykorzystywać w następujących rozwiązaniach 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
- Lista nie jest wyczerpująca – inne systemy oparte na SAP NetWeaver z ABAP-Stack oraz łącznością RFC również są kompatybilne
- SAP S/4HANA – 1610 lub wyższy
- SAP S/4HANA Cloud, Extended Edition – wszystkie wersje
- SAP Cloud ERP Private oraz SAP S/4HANA Cloud, Private Edition – wszystkie wersje
- RISE with SAP Ready: Nasze Add-On SAP posiada oficjalne wsparcie i certyfikat dla wdrożeń w środowisku RISE with SAP (Private Cloud Edition)
SAP Cloud ERP oraz SAP S4/HANA Cloud, Public Edition nie obsługują importu Add-Onów i z tego względu są niekompatybilne.
Wymagane transakcje
Aby przeprowadzić instalację Add-On, Pan/Pani lub administrator SAP Basis powinni mieć dostęp do następujących transakcji (w wersji 0053 lub wyższej):
- SAINT – narzędzie instalacyjne Add-On SAP
- SPAM – Support Package Manager
Instalacja i aktualizacja
Instalacja
Do instalacji na SAP Basis 740 lub wyższej wymagane jest wydanie 1.61 lub nowsze. Plik można pobrać z Customer Portal.
W przypadku instalacji na SAP Basis 731 lub niższych konieczne jest użycie pliku dabexp-sapconn-aoi-140.sar. Plik dostępny jest do pobrania tutaj.
Wymagane są do tego specjalne uprawnienia. W celu uruchomienia Add-On należy użyć transakcji SAINT.
Po uruchomieniu transakcji SAINT, można zainstalować plik SAR pakietu instalacyjnego (AOI) za pomocą menu.
W pasku menu wybrać Installation Package > Load Packages > From Frontend i wskazać plik SAR.

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

W przypadku komunikatu dotyczącego otwartych żądań ekstrakcji danych, komunikat ten można pominąć, gdyż Add-On nie wprowadza zmian w strukturze danych systemu SAP.
W razie pojawienia się powiadomienia o braku podpisu pakietu, informację tę można zignorować. Wyłącznie pakiety SAP mają podpis; dodatki zewnętrzne takiego podpisu nie otrzymują.

Aktualizacja
Jeżeli Add-On został już zainstalowany w SAP System, istnieje możliwość aktualizacji Add-On do nowej wersji za pomocą pakietu aktualizacji (AOU). Proces przebiega analogicznie jak instalacja.
Aby przeprowadzić aktualizację w systemach SAP opartych na Basis 740 lub wyższej, wykorzystywany jest plik dabexp-sapconn-aou-161.sar. Plik dostępny jest w Customer Portal.
W aktualizacji systemów SAP z Basis 731 lub niższą wymagany jest plik dabexp-sapconn-aou-140.sar. Plik dostępny jest do pobrania tutaj.
Uprawnienia
dab SAP-Extraction Solutions opierają się na mechanizmach bezpieczeństwa oraz koncepcji autoryzacji SAP System. Dodatkowo dostęp do tabel zawsze odbywa się wyłącznie w trybie odczytu. W celu połączenia dab SAP-Extraction Solution z SAP System potrzebny jest użytkownik, któremu przypisano rolę autoryzacyjną z następującymi obiektami autoryzacji.
Wymagany użytkownik SAP może być jednego z następujących typów:
- Dialogowy
- Systemowy
- Komunikacyjny
- Serwisowy
Aby utworzyć lub zmodyfikować odpowiedniego użytkownika, należy dysponować uprawnieniami do następujących transakcji:
- PFCG: tworzenie lub modyfikowanie ról autoryzacyjnych
- SU01: zarządzanie użytkownikami lub ich tworzenie
Uprawnienia do uruchamiania modułu RFC
Istnieją dwie możliwości: autoryzacja na poziomie grupy funkcyjnej oraz na poziomie modułu funkcyjnego.
Do autoryzacji wykorzystywany jest obiekt S_RFC. Można go znaleźć pod klasą autoryzacyjną AAAB – Obiekty autoryzacyjne przeznaczenia ogólnego > Obiekt autoryzacyjny S_RFC – Kontrola autoryzacji dla dostępu RFC.
Autoryzacja na poziomie grupy funkcyjnej
Pierwszym rozwiązaniem jest autoryzacja odpowiednich grup przez parametr RFC_TYPE na FUGR (Function Group).
Odpowiednie pola i wartości dla obiektu autoryzacyjnego S_RFC przedstawiono w tabeli poniżej.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 16 (wykonanie) |
| RFC_NAME (Nazwa obiektu RFC do zabezpieczenia) | /SDF/RI_CRM CMON RFC1 SYST /DABEXP/DAB_FUGR |
| RFC_TYPE (Typ obiektu RFC do zabezpieczenia) | FUGR (grupa funkcyjna) |
Autoryzacja na poziomie modułu funkcyjnego
Alternatywnie, od SAP NW 7.0 EHP 2 (SAP_BASIS 702) możliwe jest ustawienie RFC_TYPE na FUNC (Function Module).
Tabela poniżej przedstawia odpowiednie pola i wartości dla obiektu autoryzacyjnego S_RFC.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 16 (wykonanie) |
| RFC_NAME (Nazwa obiektu RFC do zabezpieczenia) | /SDF/CMO_GET_INSTNO CMO_GET_INSTNO DDIF_FIELDINFO_GET RFC_GET_FUNCTION_INTERFACE RFC_GET_NAMETAB RFCPING /DABEXP/RFC_SAPCONNECTOR |
| RFC_TYPE (Typ obiektu RFC do zabezpieczenia) | FUNC (moduł funkcyjny) |
Inne wymagane moduły funkcyjne
Oprócz modułu funkcyjnego /DABEXP/RFC_SAPCONNECTOR, aby zapewnić prawidłowe działanie, wymagane są również inne moduły.
Tabela poniżej przedstawia grupy funkcyjne, odpowiadające im moduły oraz przeznaczenie każdego z nich:
| Grupa funkcyjna | Moduł funkcyjny | Cel |
|---|---|---|
| /SDF/RI_CRM | /SDF/CMO_GET_INSTNO | Pobranie numeru instalacji w S4/HANA |
| CMON | CMO_GET_INSTNO | Pobranie numeru instalacji |
| RFC1 | RFC_GET_FUNCTION_INTERFACE RFC_GET_NAMETAB | Sprawdzenie struktury i istnienia modułów RFC |
| SYST | RFCPING | Test połączenia RFC |
| /DABEXP/DAB_FUGR | /DABEXP/RFC_SAPCONNECTOR | Pobranie zawartości tabeli |
Uprawnienia na poziomie tabel
Tabele w SAP mogą być autoryzowane jedynie w całości. Ograniczenie na poziomie zawartości, np. według kodów firm, jest niemożliwe.
Można wykorzystać podane obiekty autoryzacyjne do nadania dostępu do danych tabel przeznaczonych do eksportu. Kontrola prowadzona jest przy użyciu modułu funkcyjnego VIEW_AUTHORITY_CHECK.
Tablice można uprawnić dwoma sposobami – przez Grupę Autoryzacyjną bądź nazwę tabeli.
W przypadku uprawnienia tabel jednocześnie za pośrednictwem obu obiektów autoryzacyjnych, sprawdzana jest najpierw autoryzacja z wykorzystaniem S_TABU_DIS (Grupa Autoryzacyjna Tabel). W razie jej braku, kontrola przeprowadzana jest przez S_TABU_NAM (Nazwa Tabeli).
Autoryzując dostęp do tabel na tym poziomie, należy również nadać uprawnienia do poniższych tabel.
| Tabela | Grupa autoryzacyjna | Cel |
|---|---|---|
| T000 | SS | Klienci – standardowa tabela testowa łączności |
| 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 – 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 – opisy pól w systemie | |
| DD04L | Słownik danych ABAP – potrzebne do ekstrakcji pól typu FLTP | |
| NRIV | SC | Zakresy numeracji – obiekty czasu rzeczywistego w dab Nexus |
| NRIVSHADOW | Lokalny NRIV dla maszyn wieloprocesorowych – obiekty czasu rzeczywistego w dab Nexus | |
| TNRO | SS | Definicje obiektów numeracji – obiekty czasu rzeczywistego w dab Nexus |
Uprawnienia przez Grupę Autoryzacyjną Tabel
Klasa autoryzacyjna BC_A Podstawy – Administracja→ Obiekt autoryzacyjny S_TABU_DIS
Ten sposób umożliwia podanie na poziomie Grupy Autoryzacyjnej Tabel do których tabel i w jakim zakresie można przyznać dostęp. Grupy autoryzacyjne wskazuje się w parametrze DICBERCLS, a rodzaj dostępu określa się przez ACTVT. Powiązanie tabeli z grupą autoryzacyjną znaleźć można w tabeli TDDAT.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 03 (Wyświetlanie) |
| DICBERCLS (Grupa autoryzacyjna) | * |
Uprawnienia przez Nazwę Tabeli
Klasa autoryzacyjna BC_A Podstawy – Administracja > Obiekt autoryzacyjny S_TABU_NAM
To rozwiązanie pozwala zdefiniować na poziomie Nazwy Tabeli, które tabele są dostępne oraz jaki mają być zakres uprawnień. Tabele wymienia się w parametrze TABLE, a rodzaj uprawnień określa ACTVT.
| Pole | Wartość |
|---|---|
| ACTVT (Czynność) | 03 (Wyświetlanie) |
| TABLE (Grupa autoryzacyjna) | * |
Testowanie
Testowanie modułu funkcyjnego
Po zainstalowaniu modułu funkcyjnego zgodnie z powyższą instrukcją, można wykonać test działania za pomocą transakcji SE37 poprzez przycisk Test/Execute lub klawisz F8.
Parametry wejściowe wpisuje się w pierwszym oknie dialogowym. W przykładzie użyto tabeli jednostek gospodarczych T001 w polu QUERY_TABLE. Można wskazać jakąkolwiek tabelę, do której aktualny użytkownik posiada prawa dostępu. Przy pierwszym teście brak jest konieczności wprowadzania dodatkowych danych. W celu uruchomienia testu należy kliknąć przycisk Execute lub nacisnąć klawisz F8.

Jeśli moduł funkcyjny wykona się bez błędu, otrzymają Państwo tabele wynikowe. Wynik można przeanalizować poprzez kliknięcie w ikonę Detailed view obok liczby rekordów przy TABL_FIELDS lub DATA.

TABL_FIELDS zawiera strukturę pól w zapytanej tabeli:

DATA obejmuje rekordy danych z tej tabeli:

Testowanie połączenia RFC
Weryfikację poprawności połączenia RFC można przeprowadzić za pomocą dab FunctionModuleTester. Dalsze instrukcje znajdują się tutaj.
Odinstalowanie
- otworzyć transakcję SAINT
- przejść do zakładki Uninstallable components, wybrać komponent DABEXT i kliknąć Start
- po zatwierdzeniu odinstalowania, komponent zostanie usunięty z SAP System



Certyfikacje SAP
SAP nie przyznaje już certyfikatów dla Add-Onów przeznaczonych do ECC systems. W rezultacie SAP nie jest w stanie ponownie certyfikować autorskiego modułu funkcyjnego dab na ECC systems. Dodatkowe informacje znajdują się w tym wpisie na blogu SAP.
Add-On posiada certyfikaty dla następujących wersji – aktualny status certyfikacji można w każdej chwili sprawdzić w SAP Certified Solutions Directory.
Informacje o wydaniach
Wersja 1.71
- Dostosowanie do SAP Clean Core Poziom B oznacza, że wykorzystywane są wyłącznie API zatwierdzone przez SAP
- Zmiany w warunkach instalacji: Add-On może być wdrożony na SAP ECC, SAP S4/HANA oraz SAP BW/4HANA
- Rozszerzenia do ekstrakcji widoków z nieunikalnymi kluczami podstawowymi (np. FAGLFLEXT): w celu skorzystania z tej funkcjonalności wymagana jest dodatkowa aktualizacja aplikacji
Wersja 1.61
- podczas odinstalowywania Add-On nie wszystkie obiekty mogły zostać usunięte z powodu niepoprawnych informacji obiektowych, co powodowało przerwanie procesu odinstalowania.
Wersja 1.60
- oprócz poprawki z Wersji 110, wsparcie uzyskało także rozwiazywanie zagnieżdżonych .INCLUDES z sufiksami. W szczególności występowały problemy w tabeli ACDOCA, gdzie dołączany .INCLU-_PA zawierał sufiks i był także rozszerzany przez .APPEND. Dzięki tej poprawce sufiks jest teraz również uwzględniany dla pól z .APPEND.
Wersja 1.50
- moduł funkcyjny został przygotowany do wsparcia 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 starszymi
- spełnienie wymaganych poziomów bezpieczeństwa dla S/4 Cloud EX
Wersja 1.30
- podczas odczytu informacji DDIC błędnie zwracano wartość OUTPUTLEN dla typu danych RAW dla GUID w tabelach CGPL_TASK lub DPR_TASK. Skutkowało to eksportem skróconych GUID-ów. W przypadku pól o typie RAW, INTLEN 16 i OUTPUTLEN mniejszym niż 32 ustawiana jest teraz wartość OUTPUTLEN równa 32.
Wersja 1.20
- podczas budowania listy pól do zapytania SQL, **<table>~<fieldname>** był obcinany po 30 znakach podczas kompozycji, co powodowało błędy w zapytaniu SQL.
Wersja 1.10
- błędy występowały w systemach S4/HANA dla pewnych tabel (BKPF, BSEG, MATDOC, ACDOCA, MHNK). Dostosowano rozwiązywanie struktur INCLUDE w obrębie tych tabel dla nazw
- .INCLU-_PN
- .INCLU-_A1
- .INCLU-LO Zmodyfikowano strukturę listy pól do zapytania SQL z pojedynczej nazwy pola na **<table>~<fieldname>**, aby zapobiec wyjątkom dla określonych nazw pól wykorzystujących zastrzeżone nazwy SQL (np. tabela TOAM – pole Connection).
SAP Legacy RFC Function Modules
W przypadku używania innego modułu funkcyjnego niż /DABEXP/RFC_SAPCONNECTOR zalecamy niezwłoczną aktualizację do tego modułu RFC! dab nie będzie aktualizować ani wspierać innych modułów funkcyjnych. Moduły te nie posiadają też certyfikacji SAP!
Oprócz /DABEXP/RFC_SAPCONNECTOR w przeszłości wspierano także inne moduły z przestrzeni nazw Z, pochodzące ze starszych wdrożeń dab:Exporter lub indywidualnych modyfikacji klienta.
W poniższej tabeli przedstawiono porównanie funkcjonalności poszczególnych modułów:
- Maks. liczba znaków na rekord danych: określa maksymalną liczbę znaków możliwych do wyekstrahowania na rekord danych (istotne szczególnie dla tabel z wieloma kolumnami)
- Wymagany S_DEVELOP: moduły Z wymagają obiektu autoryzacyjnego S_DEVELOP do uruchomienia
- Długie teksty: długie teksty są przechowywane w tabelach STXH i STXL – nowsze wersje modułu potrafią dekodować i wyciągać zawartość tych tabel
- Typy danych FLT & RAW: wsparcie ekstrakcji danych z kolumn typu FLT oraz RAW
- Aktualizacja przez SAINT: moduły Z powinny być obsługiwane przez transakcje SE37 i SE80 (certyfikowany moduł należy instalować i aktualizować za pomocą transakcji SAINT)
| Moduł funkcyjny | Maks. liczba znaków na rekord danych | Wymagany 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 |