Sie sind auf Seite 1von 90

Integrata SAP ECC 6.

0 Smartforms fr Integrata 1

Die Druck-Workbench bildet eine zentrale Entwicklungsumgebung fr die Erstellung standardisierter


ausgehender Korrespondenzen. Fr die Konfiguration und Gestaltung der Formulare nutzt die Druck-
Workbench die SAP Standardkomponenten der Formulargestaltung SAPscript, Smart Forms und
PDF-basierte Formulare.

1. Fr den Einstieg gehen wir mit einem Business Objekt um

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 2

> <

> <

> <

> <

> <x3

2. Zu allererst legen wir eine Formularklasse an

Formularklassen werden von SAP-Anwendungen vorgegeben und enthalten eine


Modellierung sowie die Zugriffsanweisungen auf alle zu einer Anwendung bzw. zu einem
Integrata SAP ECC 6.0 Smartforms fr Integrata 3

Anwendungsprozess gehrigen Daten. Auf Basis der Formularklassen knnen Sie


Anwendungsformulare erstellen, in denen Sie auf die in den Formularklassen definierten
Daten zugreifen knnen. Beispiele fr Formularklassen sind Rechnungen, Mahnungen und
Kontoauszge. Die Formularklassen werden mit jeder Anwendungskomponente ausgeliefert,
die die Druck-Workbench einsetzt. nderungen an ausgelieferten Formularklassen haben den
Status von Modifikationen.
Die Formularklasse ist ein anwendungsspezifisches Objekt, das sowohl die der Anwendung zugrunde
liegende Datenhierarchie als auch die fr die Datenbeschaffung notwendigen Datenbankzugriffe in
Form von ABAP/4-Coding beinhaltet. Bei der Erstellung der Datenhierarchie wurde besonderes
Augenmerk auf eine logische Sicht auf das Datenmodell gelegt. Aus diesem Grund sind
Formularklassen mit logischen Datenbanken vergleichbar.

> <

><

>Gruppe_xxx< xxx ersetzen


Integrata SAP ECC 6.0 Smartforms fr Integrata 4

!!!!! SmartForms anklicken !!!!!

> <
> <

> <
> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 5

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 6

> <

> <

> <
> <x3

3. Erzeugte Repository Objekte kontrollieren

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 7

> <

> <

> <

> < doppeltklicken

> <

> < doppeltklicken


Integrata SAP ECC 6.0 Smartforms fr Integrata 8

> <

> < 4x
Integrata SAP ECC 6.0 Smartforms fr Integrata 9

Die Formularebenen bilden den Hauptbestandteil einer Formularklasse. Eine Formularebene steht fr
eine Entitt im Datenmodell der jeweiligen Anwendung, z.B. dem Konto oder Geschftspartner. Die
Formularebenen stehen untereinander in einer 1:n-Beziehung. D.h. zu jedem Eintrag, der zu einer
Formularebene gehrt, existieren n Eintrge in den Formularebenen, die hierarchisch gesehen
darunter liegen. Die Formularebene legt das Grundgerst einer Formularklasse fest, das mit Hilfe der
1:1-Ebenen um weitere Daten angereichert wird.

Den Formularebenen sind die 1:1-Ebenen direkt zugeordnet. Sie stehen in einem direkten,
eindeutigen Verhltnis (1:1) zu ihrer zugehrigen Formularebene. Ein typisches Beispiel fr 1:1-
Ebenen sind die Langtexte (erklrende Texte) zu den jeweiligen Entitten. Eine 1:1-Ebene ist von ihrer
zugeordneten Formularebene abhngig, da sich die Selektionskriterien fr den Zugriff auf die
Datenbank in den bereits eingelesenen Daten der bergeordneten Formularebene befinden.
Formularebenen und 1:1-Ebenen reprsentieren eine logische oder betriebswirtschaftliche Entitt.

Zu jeder Formularebene existieren genau zwei ABAP-Unterprogramme in der


Formularklassenbibliothek:
READ-Unterprogramm
Das READ-Unterprogramm dient der initialen Datenbeschaffung und wird am Anfang der
Formularprozessierung genau einmal aufgerufen. Die READ-Unterprogramme einer
Formularklasse werden im Anwendungsformular in der Reihenfolge aufgerufen, in der die
zugehrigen Formularebenen in der Hierarchie existieren.

--------- Coding einbetten in > READ_CUSTOMER----------

DATA: L_RANGES LIKE EFG_RANGES.


TABLES: scustom .
REFRESH YT_CUSTOMER.
CLEAR YT_CUSTOMER.

*** x_sel-ranges = kunde

SELECT * FROM scustom INTO TABLE yt_customer


WHERE id IN x_sel-ranges .

IF sy-subrc NE 0 .
MESSAGE i145(ez) .
mac_print_cancel 'I' '145' 'EZ' '' '' '' '' .
ENDIF.
TYPE-POOLS: EEMSG, EFG00.

INCLUDE EMSG.
INCLUDE IEFGMAC3.
INCLUDE IEFGMAC4. Coding einbetten in report zb_gr....

>aktivieren<
Integrata SAP ECC 6.0 Smartforms fr Integrata 10

--------- Coding einbetten in > READ_BOOKING----------

clear YT_BOOKING .
REFRESH yt_booking .

LOOP AT xt_customer.

SELECT * FROM sbook APPENDING TABLE yt_booking WHERE


customid = xt_customer-id.

ENDLOOP .

>aktivieren<

--------- Coding einbetten in > READ_FLIGHT----------

TABLES: spfli .
REFRESH yt_flight .

LOOP AT xt_booking.

SELECT * FROM spfli APPENDING TABLE yt_flight WHERE


carrid = xt_booking-carrid AND
connid = xt_booking-connid.
ENDLOOP.

>aktivieren<

GET-Unterprogramm
Zu jeder Formularebene gehrt genau ein GET-Unterprogramm. Dieses GET-Unterprogramm
hat die Aufgabe, die n Datenstze der zugehrigen Formularebene in Abhngigkeit vom
aktuellen Datensatz der nchsthheren Formularebene (=Vater) zu beschaffen, damit diese
selbst durchlaufen werden knnen. Bei der Verwendung der beiden Unterprogrammtypen
knnen Sie zwischen den folgenden Strategien whlen:
11 Im oben genannten READ-Unterprogramm werden alle Daten zu einer Formularebene
beschafft und in der globalen Tabelle hinterlegt. Das GET-Unterprogramm extrahiert aus
der globalen Tabelle die n Datenstze, die fr den aktuellen Durchlauf bentigt werden.
11 Das zugehrige READ-Unterprogramm ist leer. Im GET-Unterprogramm beschaffen Sie
die aktuellen Daten zur Formularebene direkt aus der Datenbank oder aus anderen
bereits gefllten Datenpuffern.

Bei der Entwicklung einer Formularklasse mssen Sie sich je nach


Datenkonstellation und Programmdesign fr eine der Strategien entscheiden. Unter dem
Gesichtspunkt der Performance sollten Sie beachten, dass GET-Unterprogramme
potenziell mehrfach im Anwendungsformular aufgerufen werden knnen, d.h. eine
Datenpufferung ist dringend zu empfehlen.
Integrata SAP ECC 6.0 Smartforms fr Integrata 11

--------- Coding einbetten in > get_customer_booking----------

clear yt_booking.
refresh yt_booking .

loop at t_booking where customid = x_customer-id .


append t_booking to yt_booking.
endloop.

>aktivieren<

Zu jeder 1:1-Ebene gehrt genau ein FILL-Unterprogramm. Der Name des FILL-Unterprogramms
setzt sich dabei aus dem Prfix FILL, dem Namen der zugehrigen Formularebene und dem Namen
der 1:1-Ebene selbst zusammen. Whrend READ-Unterprogramme am Anfang eines
Druckprogramms und genau einmal aufgerufen werden, hngen die Aufrufe der FILL-Unterprogramme
von der Hierarchie im Anwendungsformular ab.
Das FILL-Unterprogramm hat die Aufgabe, die Daten der zugehrigen 1:1-Ebene zum aktuellen
Datensatz der zugehrigen Formularebene zur Verfgung zu stellen. Analog zu den GET-
Unterprogrammen knnen Sie auch bei FILL-Unterprogrammen die beiden oben beschriebenen
Strategien fr die Datenbeschaffung verfolgen.

--------- Coding einbetten in > fill_booking_flight ----------

clear y_flight.

read table t_flight into y_flight with key


carrid = x_booking-carrid
connid = x_booking-connid.

>aktivieren<
Integrata SAP ECC 6.0 Smartforms fr Integrata 12

>Kontrolle<
Integrata SAP ECC 6.0 Smartforms fr Integrata 13

>Read_Form kontrollieren<
>DDIC Struktur kontrollieren<
Integrata SAP ECC 6.0 Smartforms fr Integrata 14

Sichten Sie die DDIC-Objekte der Ausgabee

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 15

Sichten Sie den Tabellentyp dazu

>anzeigen<
Integrata SAP ECC 6.0 Smartforms fr Integrata 16

Sichten Sie die Struktur fr die Kundenstammdatenausgabe

>anzeigen<
Integrata SAP ECC 6.0 Smartforms fr Integrata 17

>sichten<
Integrata SAP ECC 6.0 Smartforms fr Integrata 18

4. Jetzt definieren wir das zugehrige Formular

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 19

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 20

> <
> <

Doppelklick auf 1.Ebene

SmartForm > ZSRM_00

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 21

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 22

> <

> <
> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 23

Umfeld kontrollieren

> <

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 24

> <

> <
> <

5. Legen Sie einen Adressblock fr den Kunden als Fenster an

><
Integrata SAP ECC 6.0 Smartforms fr Integrata 25

> <

Mit einem Kopienfenster knnen Sie fr die Druckausgabe einen Ausgabebereich definieren, dessen
Ausgaben nur auf der Kopie oder nur auf dem Orginal erscheinen sollen. Sie knnen Kopien also als
solche ber Ausgaben auf dem Formular kennzeichnen.

Fr die Ausgabe der Unterknoten eines Kopienfensters knnen Sie festlegen, wo sie ausgegeben
werden sollen:

Auf dem Orginal und auf den Kopien ( Orginal und Kopien )
Nur auf dem Orginal ( Nur Orginal )
Nur auf den Kopien ( Nur Kopien )

ber das Systemfeld SFSY-COPYCOUNT oder SFSY-COPYCOUNT0 knnen Sie dabei abfragen, die
wievielte Kopie beziehungsweise ob gerade das Orginal ausgegeben wird.

Der Fenstertyp bezieht sich nur auf den Fall, in denen Sie Kopien von Ihrem Formular drucken wollen.
Dazu geben Sie im Spool-Dialog im Eingabefeld Anzahl im Rahmen Exemplare die Anzahl der zu
druckenden Exemplare (inklusive Orginal) ein.
Integrata SAP ECC 6.0 Smartforms fr Integrata 26

Manchmal mchte man bereits auf der ersten Seite eines Formulars Werte ausgeben oder abfragen,
die erst im Laufe der Prozessierung feststehen. So knnte man zum Beispiel auf die Idee kommen,
bereits im Anschreiben einer Rechnung die Gesamtsumme nennen zu wollen. Dieser
Rechnungsbetrag liegt aber erst nach der Auflistung aller Einzelposten vor. hnliche Schwierigkeiten
ergeben sich, wenn man auf der ersten Seite innerhalb von Bedingungen die Gesamtseitenzahl
abfragen mchte.

Fr solche Flle bringen Abschlufenster die Lsung: Die Prozessierung berspringt erst einmal alle
Fenster dieses Typs im Baum, bis das Ende des Baumes erreicht ist. Erst dann werden abschlieend
alle Abschlufenster abgearbeitet, und zwar ebenso nach Ihrem Auftreten im Baum (von oben nach
unten). Dadurch sind innerhalb dieses Fenstertyps alle Informationen, die erst zum Ende der
Formularprozessierung bekannt sind, verfgbar.

><

><
Integrata SAP ECC 6.0 Smartforms fr Integrata 27

Adressfeld definieren

im globalen Datenbereich Adresse type i


Integrata SAP ECC 6.0 Smartforms fr Integrata 28

Bedingung in der Alternative setzen

im True-Fall Business Adress Service

Variable Adressnummer zuordnen


Integrata SAP ECC 6.0 Smartforms fr Integrata 29

Wert zum test vorbelegen und testen

Ergebnis

> <

6. Ggf Werkzeugwechsel wenn Editor falsch formatiert

Feldliste ein

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 30

>ber Drag & Drop<

&PWB_DATA-WA_CUSTOMER-NAME&
&PWB_DATA-WA_CUSTOMER-STREET&
&PWB_DATA-WA_CUSTOMER-POSTCODE&
&PWB_DATA-WA_CUSTOMER-CITY&
Integrata SAP ECC 6.0 Smartforms fr Integrata 31

> <

> <x2
> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 32

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 33

> <x2

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 34

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 35

> < bis zum Ausgang

>Ergebnis kontrollieren<

7. Kontrollieren Sie den Ablauf ihres Druckprogrammes

Der Einstieg erfolgt ber read_customer

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 36

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 37

>

<

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 38

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 39

>

<

> <

> <

8. Graphic-Ausgabe

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 40

> <

>Fenster anlegen<

>Graphic anlegen<

--------- Relevante Graphic


Integrata SAP ECC 6.0 Smartforms fr Integrata 41

>ggf importieren<

> < + Testen


Integrata SAP ECC 6.0 Smartforms fr Integrata 42

9. Textbausteine anlegen

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 43

> <

> <

> <

><

10. Textbausteine Standard anlegen

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 44

> <

> <

>
<

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 45

> <

> <

> <

> <

> <

> <

> <x3
Integrata SAP ECC 6.0 Smartforms fr Integrata 46

> <

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 47

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 48

> <

> <

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 49

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 50

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 51

Variable global definieren

>
>aktivieren +testen<
Integrata SAP ECC 6.0 Smartforms fr Integrata 52

2.Mglichkeit

<

> <

> <x3

> <

> <

> <

> <x2
Integrata SAP ECC 6.0 Smartforms fr Integrata 53

> <x2
Integrata SAP ECC 6.0 Smartforms fr Integrata 54

11. Legen Sie einen Adressblock fr den Absender an

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 55

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 56

> <

><

Fly & Smile


Holiday Provider
Ihre Kundennummer:
..CUSTOMER-ID..
ffnunszeiten:
8.00 - 18.00 Uhr tglich
Integrata SAP ECC 6.0 Smartforms fr Integrata 57

>ausrichten und testen<

> <
Mglichkeit 3
Integrata SAP ECC 6.0 Smartforms fr Integrata 58

12. Checkboxausgabe
Integrata SAP ECC 6.0 Smartforms fr Integrata 59

13. Richten Sie das Fenster Main aus


Integrata SAP ECC 6.0 Smartforms fr Integrata 60

14. Legen Sie die Zeilenausgabe im Main-Fenster fest


Integrata SAP ECC 6.0 Smartforms fr Integrata 61

><

><

> <

15. Definieren Sie einen Einleitungstext


Integrata SAP ECC 6.0 Smartforms fr Integrata 62

><

Guten Tag,
wir besttigen Ihnen hiermit folgende Buchungen:

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 63

> <

> <x2

16. Legen Sie eine Schleifenverarbeitung an

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 64

> <

> <

><

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 65

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 66

17. Legen Sie Booking-Items an

><

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 67

> <
> <x2

> <

> <

>

<

> <x2
Integrata SAP ECC 6.0 Smartforms fr Integrata 68

>Ergebnis<

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 69

> <

> <

18. Legen Sie zwei Ereignisse (Kopf und Fu) an

>

<
Integrata SAP ECC 6.0 Smartforms fr Integrata 70

><

FL ID Datum Uhrzeit Preis Waeh


--------------------------------------------------------------
>aktivieren<

><

> <
> <x2

> <

> <

>
Integrata SAP ECC 6.0 Smartforms fr Integrata 71

19. Fangen Sie den False-Zweig ab

> <

20. Definieren Sie einen Abschlugru

><

Wir wnschen Ihnen, dass Sie sich in Ihrem Urlaub bestens


erholen und hoffen sie bald wieder als Kunden begrssen zu
drfen. Falls Sie noch weitere Fragen haben, knnen Sie sich
gerne an unser Service Competence Center richten.

Mit freundlichen Gren,


Ihr Fly und Smile Team
Integrata SAP ECC 6.0 Smartforms fr Integrata 72

> <

> <
> <x2
Integrata SAP ECC 6.0 Smartforms fr Integrata 73

21. Arbeiten Sie mit einem User-Exit das die Gesamtsumme kumuliert

> <

> <

> <

> <

> < doppeltklicken

a. Sortierung der Ausgabe nach Flugdatum


b. Umrechnung der Gesamtsumme in Euro
c. Ausgabe des Summenbetrages
Integrata SAP ECC 6.0 Smartforms fr Integrata 74

> <

> < doppeltklicken


Integrata SAP ECC 6.0 Smartforms fr Integrata 75

> <

> <

> <

> <

> <x2

> <

> <

> <

> <x2

> <

> < doppeltklicken


Integrata SAP ECC 6.0 Smartforms fr Integrata 76

> <

> <

-------- Coding Sequence einbetten -----------------------------


*----------------------------------------------------------------------*
* User-Top-Include ZFK_GR_000_TOP
*----------------------------------------------------------------------*
DATA: sum LIKE wa_booking-forcuram.
DATA: local_currency TYPE sbook-loccurkey VALUE 'EUR'.

>aktivieren<

*----------------------------------------------------------------------*
* User Exit-Include ZFK_GR_000_EXIT
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* User Exit-Include PWB_FLIGHT_NOTIFICATION_EXT000
*----------------------------------------------------------------------*
Integrata SAP ECC 6.0 Smartforms fr Integrata 77

*&---------------------------------------------------------------------*
*& Form USER_EXIT_SUM_INIT
*&---------------------------------------------------------------------*
*& Use this form e.g. to sort table XYT_BOOKING or to load
*& additional data from database
*& This exit is processed *BEFORE* looping at XYT_BOOKING
*&---------------------------------------------------------------------*
*& <--> XYT_BOOKING
*&---------------------------------------------------------------------*
FORM user_exit_sum_init
TABLES xyt_booking STRUCTURE sbook .

CLEAR sum .
SORT xyt_booking BY fldate ASCENDING forcurkey ASCENDING .

ENDFORM . " USER_EXIT_SUM_INIT

*&---------------------------------------------------------------------*
*& USER_EXIT_SUM_PERFORM
*&---------------------------------------------------------------------*
*& Use this form e.g. to prepare the data for the printing or
*& to perform summations
*& This exit is processed *DURING* a form_level-loop
*& X_INDEX denotes the current entry in the associated table
*&---------------------------------------------------------------------*
*& <--> X_BOOKING
*&---------------------------------------------------------------------*
FORM user_exit_sum_perform
USING x_booking type sbook
value(x_index) type sy-tabix .

DATA: local_amount LIKE x_booking-forcuram .

CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'


EXPORTING
date = sy-datum
foreign_amount = x_booking-forcuram
foreign_currency = x_booking-forcurkey
local_currency = local_currency
* RATE =0
* TYPE_OF_RATE = 'M'
IMPORTING
* exchange_rate =
* foreign_factor = fremdkurs
local_amount = local_amount
* local_factor =
* exchange_ratex = faktorsum
* FIXED_RATE =
* DERIVED_RATE_TYPE =
EXCEPTIONS
no_rate_found =1
overflow =2
no_factors_found = 3
no_spread_found = 4
derived_2_times = 5
OTHERS = 6.

ADD local_amount TO sum .

ENDFORM . " USER_EXIT_SUM_PERFORM


*&---------------------------------------------------------------------*
*& Form USER_EXIT_CUSTOMER_BEFORE
*&---------------------------------------------------------------------*
*& Use this form e.g. to sort table XYT_CUSTOMER or to load
*& additional data from database
*& This exit is processed *BEFORE* looping at XYT_CUSTOMER
*&---------------------------------------------------------------------*
*& <--> XYT_CUSTOMER
Integrata SAP ECC 6.0 Smartforms fr Integrata 78

*&---------------------------------------------------------------------*
FORM change_sf_options.

**optional

ENDFORM . " USER_EXIT_CUSTOMER_BEFORE

>aktivieren des Gesamtformulares<

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 79

>aktivieren<

>aktivieren<
Integrata SAP ECC 6.0 Smartforms fr Integrata 80

>Ergebnis<

22. Kopieren Sie ihr Formular

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 81

> <

> <

23. Testen Sie den Ablauf mit der kopierten Version

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 82

> <

> <

> <

> < doppeltklicken


Integrata SAP ECC 6.0 Smartforms fr Integrata 83

> <

><
>

<

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 84

> <

> <

> <

> <

> <

> <

24. Anlegen eines eigenen Styles

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 85

> <

> <

> <

> <

> <

25. Arbeiten mit Tabelle

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 86

> <

> <

> <

> <

HEADING 2,50 CM 4,00 CM 8,50 CM


ITEM 2,50 CM 4,00 CM 8,50 CM

>

<

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 87

> <

> <

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 88

> <

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 89

> <

> <

> <

> <

> <
Integrata SAP ECC 6.0 Smartforms fr Integrata 90

> <

> <

>aktivieren und testen<

> <

> <

> <

>aktivieren und testen<