niedziela, 31 maja 2020

Transakcje SE16S oraz SE16S_CUST czyli wyszukiwanie ciągu znaków w tabelach

System SAP w wersji S/4HANA oferuje bardzo użyteczne narzędzie do wyszukiwania dowolnej wartości w dowolnej tabeli w postaci trzech nowych transakcji SE16S, SE16SL oraz dodatkowej transakcji pomocniczej SE16S_CUST.

Wyszukiwanie odbywa się zawsze w czasie rzeczywistym, bez potrzeby indeksowania, co sprawia, że wyniki pojawiają się na naszych ekranach naprawdę błyskawicznie.

Jak podaje oficjalna nota SAP, główna różnicą pomiędzy transakcjami SE16S oraz SE16SL to sposób w jaki dokonywana jest selekcja. W transakcji SE16S, określona wartość jest poszukiwana we wszystkich znalezionych tabelach, podczas gdy transakcja SE16SL ogranicza się do tabel zawierających wprowadzony opis pola. To ograniczenie sprawia, że transakcja SE16SL może wydawać się szybsza, ale wymaga on nas znajomości opisu pola w tabeli.

 

W tym wpisie przyjrzymy się bliżej transakcjom SE16S - rodzajowe wyszukiwanie tabel i wartości oraz SE16S_CUST - Zarządzanie szukanym ciągiem znaków rodz.wysz. tabeli i wartości.

SE16S

Sekcja Wprow. szukanego ciągu znaków

W polu „Szukany ciąg znaków” definiujemy jeden lub więcej (oddzielonych spacją) ciągów znaków, które chcemy wyszukać w tabelach. Za pomocą czterech kropek wyboru możemy sterować ograniczeniem szukanych wartości:

·         Szukanie lingwistyczne – system automatycznie wyszukuje wpisów z * (dowolny ciąg znaków) przed i po zdefiniowanym ciągu znaków.

·         Szukanie dokładne – zdefiniowany ciąg znaków, musi dokładnie odpowiadać wartości w polu tabeli

·         Przynajmniej jedno poj. (OR) – co najmniej jeden (jeżeli jest ich więcej) zdefiniowany ciąg znaków musi występować w wierszu tabeli

·         Wszystkie pojęcia (AND) – wszystkie (jeżeli jest ich więcej niż jeden) zdefiniowane ciągi znaków muszą znaleźć się w wierszu tabeli.



Wyszukiwany ciąg znaków jest konwertowany na każde możliwe pole tabeli, w której będzie wyszukiwany, natomiast jeżeli jest on dłuższy niż długość pola, wtedy takie pole jest wykluczane z wyszukiwania.

Sekcja Rodz. wysz.

Po zaznaczeniu kropki „Wysz. Ciągu zn. We wz. wysz" wyszukujemy ciągu znaków w obszarze zdefiniowanym zgodnie z wzorcem wprowadzonym w pole „Wzorzec wyszukiwania”. Wzorzec jest tworzony w transakcji SE16S_CUST (zostanie opisany w nowym poście) i zawiera dokładne tabele, które mają być wykorzystywane do wyszukiwania.



Po zaznaczeniu kropki „Tworzenie wz. wysz. ad hoc”, określamy obszar do wyszukiwania bieżącego. Ta opcja jest wykorzystywana jeżeli jeszcze nie został zdefiniowany żaden wzorzec wyszukiwania lub żaden z istniejących wzorców nie spełnia wymagań. Po wystawieniu tego wyboru pojawia się dodatkowa sekcja „Definicja obszaru wyszukiwania” a w niej pole „Obszar wyszuk. Zawiera ciąg” oraz dodatkowa sekcje „Poziom wyszuk” oraz „Ograniczenie do obszaru wyszukiwnia” a w niej kilka opcji pozwalających zawęzić wyniki wyszukiwania podczas stosowania opcji wyszukiwania ad hoc.  W polu „Wzorzec wyszukiwania” określamy ciąg znaków, który muszą zawierać table (lub tylko jedna określona tabela), aby było w nim wykonywane wyszukiwanie.

Przyjrzyjmy się opcjom zawężającymi wyszukiwanie:


·         Nazwa tabeli z obsz. wyszukiw. – oznacza, że nazwa tabeli zawiera w nazwie tekst wpisany we wzrzec wyszukiwanua. (* przed i po tekście)

·         Tekst tab. z obsz. wyszukiw. – tekst tabeli musi zawierać teskt określony w obszarze wyszukiwania

·         Tekst pola tab. z obsz. wysz. - Jest to najgłębsze wyszukiwanie i oznacza, że tekst, pole lub domena, zawiera pole wpisane w pole wyszukiwania.

·         Wykluczenia wglądów – z wyszukiwania wykluczane są views (definicje połączonych tabel)

·         Uwzględnij obiekty proxy – podczas wyszukiwania uwzględniane są obiekty proxy

Po zaznaczeniu kropki „Ustalenie tylko obsz. wysz.” tworzymy obszar wyszukiwania ad hoc i wyświetlamy tylko wyszukane tabele bez szukania aktualnie określonego wzorca w Szukanym ciągu znaków”. Jest to przydatne w momencie gdy nie wiemy ile tabel może znaleźć system na podstawie znaków określonych w Definicji obszaru wyszukiwania. 


Sekcja „Ustawienia techniczne”

W tej sekcji możemy ograniczyć zasoby systemowe wykorzystywane do wyszukiwania. Mamy tam następujące opcje dotyczące przetwarzania równoległego.

·         Przetwarzanie równoległe - jest zaznaczone z automatu i umożliwia wyszukiwanie w wielu tabelach jedocześnie. Takie wyszukiwanie w znaczący sposób zmniejsza czas wyszukiwania, ale jednocześnie angażuje dużo więcej zasobów systemowych. W tym przypadku każda tabela jest przeszukiwana w osobnym procesie, a wynik jest wyświetlany nawet jeżeli system napotka niespójność w którejś z tabel ( w tym przypadku wynik pochodzi oczywiście tylko ze spójnych tabel).

o   Liczba procesów równoległych - pozwala na skonfigurowanie liczby procesów dialogowych, których system użyje do wyszukiwania. Jest to maksymalna liczba procesów ale system może użyć jego mniejszej liczby w zależności od dostępnych zasobów.

o   Grupa serwerów - określa które serwery będą wykorzystywane podczas wyszukiwania (oraz z jak dużą ilością procesów). Odpowiednie ustawienia konfigurowane są w transakcji RZ12

o   Maks. czas ocz. (sek.) - za pomocą tego pola możemy określić liczbę sekund, po których system wyświetli cząstkowe wyniki. Po zakończeniu wyszukiwania system wyświetli wyniki końcowe na miejsce wyników cząstkowych. Jest to opcja przydatna zwłaszcza w przypadku dużej liczby wyników całkowitych.



Sekcja „Opcje wyświetlania”

Ostatnia sekcja, określa jak będą wyglądały wyniki wyszukiwania

·         Ustalanie wielk. tabeli – pozwala uzyskać przegląd, tego który zestaw danych został przeszukany i czy takie tabele zawierają w ogóle jakieś wpisy. Zwiększa to oczywiście czas wyszukiwania.

·         Tylko tabele z wystąpieniami – po ustawieniu tej opcji dostajemy w wynikach tylko tabele z trafieniami. Jeżeli go nie zaznaczymy, system wyświetli również tabele, które nie mają żadnych trafień.



Poniżej przykładowe wyszukiwanie dla daty 27.01.2017 w tabelach zawierających ciąg znaków EKKO






SE16S_CUST

Jeżeli chcemy w sposób szybszy i bardziej efektywny korzystać z transakcji SE16S warto skorzystać z transakcji SE16S_CUST, która pozwala zdefiniować własny „obszar wyszukiwania”, zawierający zdefiniowany zestaw tabel. Taki zestaw można później wykorzystać do szukania w nich ciągu znaków.

 

Sekcja „Rodz. wysz.”

Po wywołaniu transakcji SE16S_CUST w pierwszej sekcji, możemy zdecydować, czy chcemy zarządzać utworzonym już wcześniej zestawem („Zarządzanie szuk. Ciągiem zn.”) czy chcemy stworzyć nowy zestaw („Tworzenie szuk. ciągu znaków”).

 

Sekcja „Definicja obszaru wyszukiwania” wraz ze swoimi podsekcjami jest zbieżna z bliźniaczą sekcją w transakcji SE16S i wykonuje te same funkcje.

Stwórzmy teraz własny obszar wyszukiwania zawierający tabele związane z zamówieniem EKKO, EKPO i EKBE.

W pierwszej sekcji zaznaczamy „Tworzenie szuk. ciągu znaków” a w definicji obszaru wyszukiwania w pole „Obszar wyszuk. zawiera ciąg” wpisujemy EKKO klikamy „Wykonanie” (F8).


Nazywamy „Opis szukanego ciągu znaków”, w tym przypadku Zamówienia oraz zaznaczamy tabelę EKKO, klikamy „Szukany ciąg znaków” wpisujemy „Szuka. ciąg zn.”




 

Cofamy i wybieramy opcję „Zarządzanie szuk. ciągiem zn.” i klikamy „Wykonanie”




W oknie, który się pojawi możemy dodać nowe tabele. Klikamy „Dodawanie nowych wpisów w tabeli (Ctrl + F10) a później wpisujemy dodatkowe tabele i klikamy „Zapamiętanie”.



W ten sposób w transakcji SE16S możemy odnaleźć wzorzec wyszukiwania ZAMÓWIENIA.

 


Poniżej oficjalna nota SAP 2002588


Brak komentarzy:

Prześlij komentarz

SAP Query jako zaplanowane zadanie w SAP

Nie wiem czy wszyscy z was wiedzą, że można uruchomić Query jako osobny program w transakcji SE38 lub SE80 i dzięki temu za harmonogramowani...