Trzy drogi do wydruku
Obecnie w SAP-ie używa się trzech sposobów tworzenia wydruków. Najdłużej używaną technologią jest SAPscript, nowszą – SAP Smart Forms, zaś najnowszą – Adobe Forms. Każda z tych technologii ma szeroki zakres możliwości programistycznych, ma też zalety i wady.
Doświadczony programista na pewno stworzy zaawansowane wydruki zarówno w technologii SAP Script, jak i używając SAP Smart Forms. Jednak dzięki swojej przejrzystości Smart Forms wyraźnie góruje prostotą implementacji nad wydrukami tworzonymi w SAPscripcie.
Wyższość ta jest widoczna na każdym poziomie – zaczynając od takiej błahostki jak drzewo wyświetlające hierarchię elementów wydruku podczas jego implementacji, a kończąc na całkowitej niezależności layoutu od programu drukującego.
Wydruki w SAP Smart Forms
Na podstawie stworzonego formularza w SAP Smart Forms generowany jest moduł funkcyjny, który wykorzystując dane pobrane przez program drukujący, generuje odpowiedni wydruk w SPOOL-u (funkcjonalność w SAP obsługująca m.in. wszystkie wychodzące wydruki).
Prostota implementacji wydruków jako Smart Forms sprawia, że już po wykonaniu kilku prostych zadań programista może przystąpić do stworzenia naprawdę skomplikowanych rozwiązań. Dzięki hierarchicznej strukturze i wygodnemu edytorowi graficznemu zmiana dotychczas istniejących formularzy nie wymaga dużego nakładu pracy.
Tworząc wydruk, łatwo zauważyć, że część jego elementów jest ze sobą powiązana logicznie (czy to biznesowo, czy od strony technicznej). Może to być na przykład nagłówek dokumentu z jego tytułem, numerem i datą lub dane adresowe kontrahenta.
Warto takie elementy zgrupować w jednym elemencie typu Folder. Znacznie uporządkuje to strukturę formularza. Zwiększy jego przejrzystość i umożliwi ukrywanie całej grupy elementów po dokonaniu zmian warunków tylko na obiekcie Folderu – dzięki czemu wszystkie te elementy znikną z wydrukowanego dokumentu.
Zaszyty kod ABAP
Smart Forms są na tyle elastyczne, że pozwalają między innymi na zaszycie dodatkowego kodu ABAP. Dzięki temu możemy bez ograniczeń operować na przekazanych do formularza danych. Ponadto możemy te dane uzupełniać o brakujące informacje, pobierając je bezpośrednio z systemu. Jest to bardzo wygodna funkcjonalność. Jednak warto dobrze się zastanowić, zanim zaczniemy ją wykorzystywać.
Jeśli sami tworzymy program drukujący (wywołujący formularz), wszelką logikę odpowiedzialną za przygotowanie danych najlepiej zawrzeć właśnie w tym programie. W takiej sytuacji Smart Form pozostanie odpowiedzialny wyłącznie za sformatowanie przesłanych do niego danych. Uzyskamy dwie warstwy – pierwszą z nich będzie program pobierający dane, drugą – Smart Form prezentujący je użytkownikowi.
Jeśli użytkownik zażyczy sobie innego wyglądu wydruku, zmienimy wyłącznie Smart Form (ewentualnie stworzymy drugi). W takiej sytuacji możemy być pewni, że logika odpowiedzialna za pobieranie danych nadal działa poprawnie – ponieważ nic w niej nie zostało zmienione.
I odwrotnie. Gdy użytkownik zmieni wymagania co do samej logiki pobierania danych do wydruku, programiście pozostanie tylko zmiana programu drukującego. W tym wypadku również możemy mieć pewność, że wydruk zadziała poprawnie.
Takie zaprogramowanie drukowania pozwala nam na utrzymanie niezależności obu tych elementów –logiki pobierania danych i programu drukującego. Dzięki temu w każdej chwili możemy podmienić jeden z nich – mając jednocześnie pewność, że drugi będzie nadal działał poprawnie.
Tworzenie wydrukóww środowisku SAP to element prac deweloperskich, w którym wykorzystywane są różnorodne technologie, jednak we wszystkich występuje element programowania w języku ABAP
Często zdarza się jednak, że zmienić możemy wyłącznie formularz Smart Form, na przykład gdy jako program drukujący używany jest standardowy program SAP. W przypadku gdy rzeczywiście jesteśmy zmuszeni do umieszczenia kodu ABAP w Smart Form, bardzo ważne jest zadbanie o jego przejrzystość i czytelność.
Istotne jest, aby poszczególne funkcje były umieszczone w sekcji Definicje globalne → Procedury FORM, co ułatwi ich ponowne.
Pomimo że jest to „tylko” wydruk, należy zadbać o konwencję nazewniczą, wcięcia i odpowiednie komentowanie kodu. Nigdy nie wiadomo, kiedy trzeba będzie zmodyfikować dany formularz i kto to będzie robił.
Adobe Forms
Od chwili wprowadzenia komponentu SAP NetWeaver 2004 mamy dostęp do nowej formy wydruków, powstałej przy współpracy firm SAP i Adobe. Adobe Forms oparte są na używanym i popularnym formacie Portable Document Format – czyli w skrócie PDF.
Dzięki tej technologii możemy do tworzenia wydruków wykorzystać format PDF, bardzo przyjazny dla użytkownika końcowego. Istotne jest również to, że możliwa jest pełna integracja Adobe Forms z SAP NetWeaver Portal.
Tworzenie wydruków Adobe Forms może odbywać się zarówno z wykorzystaniem języka ABAP, jak i przy użyciu języka Java. Gotowe pliki PDF mogą służyć nam między innymi za wzorce wydruków, uzupełniane odpowiednimi danymi z systemu.
Technologia ta może zostać użyta w wielu scenariuszach biznesowych wspieranych przez produkty SAP.
Formularze Adobe mogą zostać wykorzystane nie tylko do wyprowadzania danych (drukowania), ale również jako źródło wprowadzania danych do systemu – zarówno online (mając połączenie z systemem SAP) jak i offline (pobranie odpowiedniego formularza z SAP np. na komputer przenośny → uzupełnienie formularza danymi → załadowanie formularza do systemu (np. poprzez e-mail, WWW) → wczytanie i przetworzenie danych w systemie, np. utworzenie nowego rekordu danych podstawowych klienta.
Ponadto niewątpliwą zaletą jest możliwość wplecenia wydruków Adobe Froms w całościowy obieg dokumentów w firmie wraz z możliwością zatwierdzania poszczególnych dokumentów przez uprawnionych użytkowników. Oczywiście, tak jak przy innych sposobach wyprowadzania wydruków, możliwe jest bezpośrednie wykorzystanie faksów i integracja ze specjalistycznymi systemami archiwizującymi dokumenty.
Jak widać, tworzenie wydruków w środowisku SAP to element prac deweloperskich, w którym wykorzystywane są różnorodne technologie. W każdej z technik występuje element programowania w języku ABAP (a w przypadku Adobe Forms również w języku Java) i – podobnie bezpośrednie programowanie – tworzenie wydruków wymaga od programisty zachowania dobrych praktyk sztuki programowania.