Jest to poprawka, która może zostać zainstalowana na liście folderów i która zostanie poddana integracji. Ta lista zazwyczaj zawiera folder administratora. Tego typu poprawki należy używać w większości przypadków (w tym dla konkretnych i wertykalnych konceptów programistycznych). Dostarczenie konkretnych lub wertykalnych konceptów programistycznych nie jest uwarunkowane przez typ poprawki, ale przez listę kodów działania, które są podawane w odpowiadającej tabeli.
Poprawki zawierające elementy dokumentacji są przetwarzane w trochę inny sposób, opisany w odpowiadającym aneksie.
Tabela Języki
| Tabela ta służy do określania języków, które powinny być poprawione. W rzeczywistości wszystkie teksty słownika danych (określone przez kod typu ATX) są zapisywane w oddzielnej tabeli (tabeli ATEXTE) i są identyfikowane przez dany numer (poniżej 100 000 w przypadku tekstów standardowych i powyżej tej wartości w przypadku pozostałych tekstów). Teksty te są przenoszone przez poprawkę w ich dosłownej postaci (numer nie ma żadnego znaczenia, ponieważ może on ulegać zmianie) w różnych językach. Dlatego też tabela ta podaje listę użytych języków w celu uwzględnienia ich wraz z tekstami. |
Blok numer 6
| Komentarz ten służy do opisania pliku poprawki (z punktu widzenia jego ostateczności lub jego zawartości). Będzie to widoczne w logu integracji poprawki. |
| Jest to nazwa folderu, z poziomu którego zostaną wyodrębnione elementy poprawki. |
| Ten kod wersji minimalnej umożliwia uniknięcie integracji poprawki z aplikacją o niższej wersji. |
| To pole identyfikuje artykuł, na podstawie którego poprawka jest wyodrębniana. To pole nie jest dostępne. |
Tabela Obiekty
| Tabela ta służy do wprowadzania listy obiektów, które mają być objęte poprawką. Lista ta jest identyfikowana przez typ obiektu i nazwę. Definicja różnych typów oraz znaczenie nazwy podane są w załączniku. |
| Klucz elementu wprowadzany tutaj, dla którego wprowadzony został kod lub dodatkowe informacje (warunek w przypadku poprawki danych). Należy zauważyć, że jeśli klucz dla rekordu, który ma być objęty poprawką, składa się z kilku części, są one rozdzielone znakiem tyldy (~). |
| Umożliwia zdefiniowanie opisu powiązanego z każdym rekordem. |
Tabela Kody działań
| Ta tabela umożliwia wprowadzenie listy konkretnych lub wertykalnych kodów działania (tzn. rozpoczynających się od X, Y lub Z). W momencie konieczności utworzenia poprawki integrującej koncepty programistyczne tego typu konieczne jest zdefiniowanie kodów działania, których to dotyczy. W efekcie elementy słownika dotyczące konkretnych, niewymienionych kodów działań zostaną pominięte w momencie integracji poprawki. Podjęcie takich środków ostrożności jest konieczne, ponieważ w przeciwnym razie poprawka standardowa nie będzie w stanie zaktualizować obiektu oznaczonego jako konkretny lub wertykalny kod działania. To właśnie to, że żaden kod działania nie jest wskazany w nagłówku poprawki standardowej umożliwia zarządzanie taką sytuacją. Te kody działania nie są więc sposobem na filtrowanie wyodrębniania obiektów w poprawce, ale sposobem na wskazanie, że elementy wskazane przez te konkretne kody działania zostaną zaktualizowane w momencie integracji poprawki. Ładowanie elementów oznaczonych przez kody działania może odbywać się za pomocą operacji dostępnej z poziomu ikony Operacje na poziomie tabeli definiującej zawartość poprawki. |
Zamknij
Ikona "Operacje"
Ta operacja umożliwia wstępne wczytanie tabeli ze wszystkimi elementami folderu oznaczonymi przez kody działania wymienione w odpowiadającej tabeli.
Ta operacja umożliwia sprawdzenie, czy obiekt w bieżącym języku jest identyczny między dwoma folderami. Otwiera się okno pozwalające na wprowadzenie dwóch kodów folderów. Po uzupełnieniu informacji na tym oknie dochodzi do porównania i otwiera się okno zawierające log podający wynik porównania. Jeśli nazwa elementu nie jest wskazana jako inna, te dwa elementy są identyczne między porównywanymi folderami.
Porównanie może nie być możliwe na niektórych typach obiektów, co jest sygnalizowane komunikatem w logu.
Ta operacja umożliwia sprawdzenie, czy wszystkie obiekty umieszczone w poprawce są takie same między dwoma folderami. Otwiera się okno pozwalające na wprowadzenie dwóch kodów folderów. Po uzupełnieniu informacji na tym oknie dochodzi do porównania i otwiera się okno zawierające log podające wynik porównania.
Ta operacja umożliwia wywoływanie szablonu ustawień w celu uzupełnienia listy poprawek typu AAA (jedna pozycja na szablon, wskazana na ekranie).
W przeciwieństwie do funkcjonalności otrzymanych, jeśli punktem wyjścia jest kopiowanie ustawień, generowane są tutaj tylko pozycje AAA (pozycja APH opisująca szablon nie jest uwzględniana). Co więcej wprowadzenie kodu legislacji nie odbywa się na tym etapie, a więc wszystkie filtry legislacji zostaną tutaj zastosowane nieprawidłowo.
Można natomiast wygenerować pozycję AAA dla szablonu danych jednostkowych klikając na Szablon danych z poziomu ikony Operacje w polu Nazwa obiektu. Otwiera się okno wyboru i umożliwia wybranie szablonu, legislacji, klucza lub formuły wyboru w celu utworzenia pozycji integrującej wszystkie elementy.
Zamknij
Ta tabela umożliwia wprowadzanie listy elementów, które mają zostać poprawione. Ta lista jest identyfikowana za pomocą typu obiektu oraz nazwy. Definicja różnych typów oraz znaczenie nazwy są wyjaśnione poniżej. Kolumna Priorytet wskazuje porządek, w jakim typy elementów są ułożone w pliku poprawki (zob. akapit poniżej). Elementy, które znajdują się w wierszu 100 w tabeli są zawsze umieszczane na końcu poprawki (w porządku alfabetycznym kodów elementów).
Kod | Znaczenie | Nazwa | Ranking |
AAA | Pozycje wynikające z szablonu ustawień | Konkretny format, zob. odpowiadający akapit | 100 |
ABA | Kod zadania okresowego | 46 | |
ABF | Kod tabeli | 54 | |
ABG | Kod grupy | 47 | |
ABI | Wymiar BI | Kod wymiaru | 55 |
ABM | Kod tematycznej hurtowni danych | 56 | |
ABO | Raport Business Objects | Kod raportu | 58 |
ABT | Kod zadania | 45 | |
ABV | Kod reguły | 57 | |
ACL | Kod tabeli | 18 | |
ACN | Kod zapytania | 36 | |
ACS | Przetwarzany w formie warunku (CODACS=”wartość”) | 14 | |
ACT | Kod działania | 16 | |
ACV | Definicja kodu działania | Kod działania | 1 |
ADC | Opis procesu (słownik) | Nazwa procesu | 9 |
ADF | Typ – Kod elementu | 50 | |
ADI | Zawartość tabeli dodatkowej | Numer tabeli | 24 |
ADO | Pomoc funkcjonalna (wszystkie akapity) | Typ – Kod pomocy | 49 |
ADP | Parametr (jednocześnie jego definicja i wartość, jeśli istnieje na poziomie ogólnym) | Kod parametru | 32 |
ADV | Parametry tabeli dodatkowej | Numer tabeli | 23 |
ADX | Proces (wyłącznie w formie skompilowanej) | Nazwa pliku procesu | 11 |
ADZ | Kod pomocy | 48 | |
AEN | Przetwarzana w formie warunku (CODE=”wartość”) | 35 | |
AFC | Kod funkcji | 17 | |
AGB | Nazwa zmiennej | 20 | |
AHH | Hierarchia BI | Kod hierarchii | 59 |
AHI | Kod formuły | 7 | |
AII | Kod warunku | 60 | |
ALH | Kod zapytania | 51 | |
ALQ | Kod zapytania SQL | 52 | |
ALT | Kod zapytania | 53 | |
AMK | Kod ekranu | 28 | |
AML | Numer menu lokalnego | 2 | |
ANG | Kod nawigacji | 10 | |
ANM | Definicja licznika | Kod licznika | 15 |
ANT | Kod obiektu dla widżetu | 65 | |
AOB | Definicja obiektu | Kod obiektu | 30 |
AOE | Kod szablonu | 34 | |
AOP | Właściwości obiektu | Kod obiektu | 31 |
APH | Kod szablonu | 100 | |
APR | Kod procesu | 63 | |
ARP | Definicja raportu w słowniku | Kod raportu | 29 |
ASL | Przetwarzany w formie warunku (COD=”wartość”) | 19 | |
ASU | Opis podprogramu w słowniku | Nazwa podprogramu | 21 |
ASY | Kod stylu | 61 | |
ATB | Definicja tabeli (zawartość nie jest przekazywana, aktualizacja struktury odbywa się bez utraty danych wspólnych) | Kod tabeli | 25 |
ATN | Transakcje | Kod operacji | 8 |
ATY | Kod typu | 22 | |
AUR | Kod URL | 27 | |
AVW | Kod widoku | 26 | |
AWA | Kod reguły przepływu | 43 | |
AWE | Nazwa publikacji | 64 | |
AWI | Definicja okna | Kod okna | 33 |
AWM | Szablon danych przepływu | Kod szablonu | 41 |
AWR | Reguły przypisania przepływu | Kod reguły przypisania | 42 |
AWW | Ustawienia obszaru roboczego przepływu | Kod obszaru roboczego | 44 |
BIA | Obiekty BIAR | Kod obiektu | 4 |
ELT | Elementy interfejsu klienta (xsl, obraz, pliki dodatkowe) | Ścieżka pliku | 3 |
ETA | Crystal Reports (plik o rozszerzeniu *.rtp) | Nazwa raportu | 13 |
EXE | Żądanie wykonania procesu | Nazwa procesu | 6 |
GAU | Kod automatu | 40 | |
PS1 | Kod wyzwalacza | 37 | |
PS2 | Kod statystyczny | 38 | |
TAB | Struktura i pełna zawartość tabeli (oprócz jej definicji „słownika”). | Kod tabeli | 39 |
TFO | Kod formuły | 62 | |
TRT | Źródło procesu (proces zostanie skompilowany w momencie instalacji poprawki) | Nazwa procesu | 12 |
TXT | Plik tekstowy (w katalogu TXT) | Nazwa tekstu | 5 |
Skrót tabeli | Częściowa zawartość tabeli | Warunek wyodrębniania (wyrażony w formie polecenia Where) | 100 |
Kod TAB umożliwia transfer danych tabeli poprzez ponowne załadowane w bazie jej struktury i danych. Natomiast elementy słownika dotyczące tej tabeli nie są tworzono i nie mogą więc wyświetlić się jako widoczne. Ten kod jest również dobrze przystosowany, jeśli użytkownik chce ponownie załadować już utworzoną tabelę w folderze do poprawy i która nie zmieniła struktury. Jeśli tak nie jest to należy umieścić dwie pozycje w definicji poprawki: pierwsza dotyczy definicji tabeli (ATB XXXXX), druga jej zawartości (TAB XXXXX). Nawet jeśli nie są one ustawione w tej kolejności wprowadzania, funkcja wgrywania poprawek ustawi je w takim porządku. W momencie integracji poprawki tabela zostanie utworzona w słowniku i w bazie, jeśli nie istnieje (w przeciwnym razie jej struktura zostanie zaktualizowana, jeśli się różni). Następnie ładowana jest ponownie tabela z danymi.
Możliwość transferu części zawartości tabeli jest otrzymywana poprzez ustawienie w kolumnie typu skrótu tabeli i poprzez wskazanie w kolumnie Nazwy warunku logicznego, który zostanie użyty w momencie wyodrębniania folderu wyjściowego oraz w celu integracji z folderem docelowym. Należy zauważyć, że wyodrębnione w ten sposób dane mogą zmodyfikować istniejące dane przy pomocy tych samych kluczy, lub utworzyć nowe dane. Natomiast ze względów bezpieczeństwa, w żadnym przypadku nie dochodzi do usunięcia danych podczas integracji poprawki. W ten sposób, np. jeśli uwzględniana jest poprzednia sytuacja dla tabeli krajów (skrót TCY):
Folder wyjściowy | Folder docelowy | ||
Kod kraju | Nazwa kraju | Kod kraju | Nazwa kraju |
AD | Andora | AD | Andora |
AE | Zjednoczone Emiraty Arabskie | AF | Afganistan |
AL | Albania | AL | Niemcy |
AR | Argentyna | AU | Australia |
BE | Belgia | BE | Belgia |
… | … |
Jeśli w poprawce wskazano pozycję z TCY, a warunek CRY=”AL” to poprawka będzie zawierała tylko pozycję odpowiadającą Albanii, a integracja poprawki w folderze docelowym nadpisze AL, więc Niemcy zostaną zastąpione przez Albanię.
Jeśli w poprawce wskazano pozycję z TCY i warunkiem pat(CRY,”A*”), poprawka będzie zawierała 4 pozycje AD, AE, AF i AR. W momencie integracji utworzony zostanie plik AE, Zjednoczone Emiraty Arabskie, plik AR, Argentyna, nastąpi zamiana AL, Niemcy na AL, Albania oraz zachowanie A, Afganistan i AU, Australia, które nie zostały dostarczone, ale istniały już w folderze docelowym.
Jeśli w poprawce wskazywana jest pozycja TCY z warunkiem find(CRY,”AD”,”AE”,”AL”), wynik będzie taki sam oprócz tego, co dotyczy AR, Argentyny, która nie zostanie przekazana.
Jedyny sposób usunięcia danych polega na:
W danym przypadku należy wskazać: kod EXE, który umożliwia podanie nazwy procesu lub skryptu do wykonania. Pomimo numeru wiersza ten proces jest wykonywany na końcu integracji poprawki (może on istnieć wcześniej lub zostać dostarczony w ramach samej poprawki, ponieważ zostanie on wykonany na końcu integracji).
Ten proces musi integrować podprogram PATCH z parametrem odpowiadającym kodowi folderu. To ten podprogram zostanie wykonany. W ten sposób dla powyższego przykładu otrzymany zostanie następujący program:
Subprog PATCH(NOMDOS)
Value Char NOMDOS
Local File =NOMDOS+".TABCOUNTRY" [TCU]
Trbegin [TCU]
Delete [TCU] Where pat(CRY,"A*")=1 & find(CRY,"AD","AE","AL")=0
Commit
End
Jak widać powyżej konieczne jest zadeklarowanie tabel w tym podprogramie jasno uwzględniając, że muszą one być zadeklarowane w folderze, który nie musi być koniecznie bieżącym folderem (zapewnia to składnia Local File = NOMDOS + ".NOMTABLE").
Jeśli poprawki są wykonywane na elementach szablonów interfejsu użytkownika (ekrany szablonów używane w celu utworzenia okien transakcji) to konieczne jest ponowne zatwierdzenie tych ekranów.
To ponowne zatwierdzenie może zostać wykonane poprzez zadeklarowanie w poprawce wykonania odpowiedniego procesu. Poniżej znajduje się lista procesów standardowych do uruchomienia w zależności od typu elementu stanowiącego przedmiot poprawki:
Poprawiany element | Proces | Rezultat |
Ekran służący jako podstawa możliwego do skonfigurowania zapytania | SUBGTC | Zatwierdzanie wszystkich ekranów zapytania |
Style prezentacji | SUBASY | Generowanie stylów |
Transakcja systemowa | SUBAMI | Zatwierdzanie transakcji systemowych |
Parametry statystyk | SUBPS2 | Ponowne zatwierdzenie wszystkich statystyk |
Ekran podstawowy transakcji na obiekcie XXX | SUBXXX | Ponowne zatwierdzenie transakcji powiązanych z obiektem |
Ten typ funkcjonalności jest możliwy do zrealizowania dla konkretnej sytuacji (wystarczy dodać podprogram PATCH, wskazany w poprzednim akapicie).
Struktura danych dokumentacji nie jest standardowa. Domyślnie do tworzenia i ponownego zatwierdzenia folderu mają zastosowanie następujące reguły:
Co więcej, podczas wgrywania poprawki dokumentacji (typu ADO), obowiązuje następująca zasada:
Integracja poprawki sprawdza sekwencję przejścia przez pliki poprawek w momencie integracji sekwencji numerycznej w ich nazwie. Zaleca się nazywanie plików poprawek przy użyciu nazwy zdefiniowanej zgodnie z formatem X_yyyy_zzz.dat oznaczającym następujące elementy:
Jeśli ta zasada jest stosowana to podczas integracji wszystkich plików poprawek w katalogu zostaną wykonane następujące kontrole:
Podczas tworzenia pliku poprawki zgodnie z zasadą, elementy, które się w niej znajdują stanowią całość, a więc aplikacja pozostawia folder w zgodnym stanie. W szczególności, jeśli przez poprawkę tworzona jest nowa funkcja, a ta funkcja jest definiowana przez operację, okno, ekran, tabelę i dwa procesy, logicznym wydaje się, żeby wszystkie te elementy były obecne w poprawce.
Jeśli wszystkie elementy są używane w celu utworzenia pliku poprawki to funkcja tworzenia ustawia je w konkretnym porządku według typu w celu uniknięcia wystąpienia błędów w momencie integracji. Jeśli na przykład integrowane jest okno przed ekranami, które się na niego składają to w momencie zatwierdzania wyświetli się błąd Ekran nie istnieje. W ten sposób zawsze integrowane są najpierw typy danych przed ekranami i tabelami, ekrany przed oknami itd.
Porządek używany podczas generowania poprawki odpowiadają porządkowi podanemu w tabeli powyżej. Jest to również porządek propozycji, który wyświetla się w funkcji poprawka automatyczna.
Należy jednak zauważyć, że nie można rozwiązać wszystkich możliwych konfliktów. Weźmy na przykład typ danych, który odnosi się do operacji, która może odnosić się do okna, które może odnosić się do ekranu, które może odnosić się do typu danych. Aby rozwiązać ten typ konfliktu (co jest rzadkie), należy podzielić plik poprawki na dwa pliki (pierwszy dostarczający wszystkie elementy z typem danych nie odnoszącym się do operacji, a drugi dostarczający typ danych integrujący np. operacje).
Jeśli użytkownik instaluje poprawkę zawierającą elementy słownika należy zauważyć, że niektóre pola, uznawane za możliwe do ustawienia elementy słownika, są przestrzegane niezależnie od tego, jaka jest ochrona zapewniana przez kod działania, z którego korzystają. Jest to na przykład przypadek domyślnego miejsca docelowego w raporcie.
Szczegóły zachowywanych pól są opisane w aneksie technicznym.
Poprawka typu AAA odpowiada pozycji wynikającej z szablonu ustawień. Używa on konkretnego formatu dla kodu elementu. Ten format jest jednym z dwóch następujących formatów:
SZABLON~KOD_LEG~KOD_TRS~='FORMUŁA_WYBORU'
SZABLON~KOD_LEG~KOD_TRS~KLUCZ~POD_KLUCZ~POD_POD_KLUCZ...
W tych pozycjach:
Z funkcją domyślnie powiązane są następujące raporty :
PRTSCR : Drukowanie ekranu
Można to zmienić w ustawieniach.
Tę funkcję można wykonać w trybie wsadowym,. W tym celu przewidziano ZPATCHC zadanie standardowe.
Podczas wprowadzania mogą wyświetlić się następujące komunikaty ogólne oraz o błędach :
Ścieżka dostępu do pliku poprawki nie istnieje
Typ obiektu nie odpowiada ani żadnemu wstępnie zdefiniowanemu typowi obiektu, ani skrótowi istniejącej tabeli.
Wystąpiła próba wyodrębnienia nieistniejącego obiektu słownika
Warunek wyodrębniania powiązany z wyodrębnianiem danych tabeli jest nieprawidłowy pod względem składniowym.