Einbinden eines Web Services in AIF
PDF Formulare finden wir heutzutage in jedem Bereich unseres Lebens. Sie sind einfach und bequem auszufüllen. Wir können Sie auf dem eigenen Rechner ausgefüllt archivieren und auch digital versenden. Dennoch ist es immer etwas umständlich, das PDF erst zu speichern, Email-Client oder Website für den Upload aufzurufen, die Datei auf der Festplatte zu suchen und dann zu verschicken. Auf der Gegenseite sitzt ein Bearbeiter, der dann wiederum alles händisch ins System einträgt.
Hier wäre es doch schöner, wenn dies alles automatisch geschehen könnte. Und genau das können wir durch die Verbindung des PDFs mit einem Web Services in AIF erreichen!
Projektleitung, Projektbegleitung oder einfach nur Unterstützung in der Entwicklung. Unsere Mitarbeiter haben langjährige Erfahrungen in der SAP Formulargestaltung und Sie können von unserem gesamten Knowhow profitieren. Unser passendes Angebot finden sie hier: Formular-Experten von MINDFORMS buchen
Kontaktieren Sie mich: Telefon 0211 946 285 72-35 oder per E-Mail info@mindforms.de
In einem unverbindlichen Gespräch kann ich mit Ihnen über Ihre Ausgangslage sprechen und Ihnen Möglichkeiten aufzeigen. Selbstverständlich können wir danach auch ein unverbindliches Angebot unterbreiten.
Das Formular
Als erstes legen wir über die Transaktion “sfp” eine Schnittstelle an.
Diese kann leer sein, wir brauchen sie aber für die Erstellung des Formulars.
Danach erstellen wir das Formular, tragen eine Kurzbeschreibung sowie die gerade angelegte Schnittstelle ein.
Nachdem wir auf “Anlegen” geklickt haben, öffnet sich der Adobe LiveCycle Designer. Dort wechseln wir auf den Reiter “Layout”.
Anschließend auf den Reiter “Datenansicht” oder alternativ über den Menüpunkt “Palette->Datenansicht”.
Einbinden des Web Services in AIF
Rechtsklick auf den Rootknoten mit dem Namen des Formulars und “Neue Datenverbindung…” auswählen.
Der Name der Datenverbindung ist frei wählbar.
Darunter müssen wir angegeben, in welcher Form die Datenbeschreibung vorliegt. In unserem Beispiel verwenden wir eine WSDL-Datei.
Im darauf folgenden Fenster geben wir die URL der Datei an und klicken auf “Weiter”.
Im Anschluss daran werden die von der Schnittstelle angebotenen Verbindungen zur Auswahl angeboten.
Nachdem wir eine Verbindung ausgewählt haben, müssen wir noch die Authentifizierungsmethode für zukünftige Anfragen auswählen.
Nach klicken auf “Fertig stellen” gelangen wir zurück zum LCD. In der Datenansicht ist ein neuer Knoten zu sehen.
Die Verbindung
Von dem neuen Knoten können wir jetzt die einzelnen Elemente in die Designansicht per Drag&Drop ziehen.
Das Binding des Web Services in AIF wird automatisch angelegt.
Abschließend muss das Formular gespeichert und aktiviert werden. (Tipp: Beim Aktivieren mit techn. Nutzer anmelden – im PDF ist später keine Anmeldung mehr notwendig)
Über ein Druckprogramm kann das Formular nun als PDF Datei ausgegeben werden (der Code dazu befindet sich am Ende des HowTo’s).
Fazit zum Thema ‘Web Services in AIF’
Im erzeugten PDF sind die im LCD ausgewählten Elemente zu sehen.
Mit einem Klick auf den Button wird der Inhalt des Formulars an den Web Service geschickt.
Haben Sie bereits Erfahrungen mit der Verbindung eines PDFs und Web Services in AIF gemacht? Vielleicht haben Sie auch weitere Tipps oder gar einen ganz anderen Weg für die Erstellung des PDFs oder Web Services.
Schreiben Sie mir! Ich freue mich auf Ihr Feedback.
Das Druckprogramm
REPORT z_msu_howto_ws.
TYPE-POOLS: abap.
DATA: lv_fpname TYPE fpname,
lv_module_name TYPE funcname,
lv_filename TYPE string,
ls_docparams TYPE sfpdocparams,
ls_outparams TYPE sfpoutputparams,
ls_form_out TYPE fpformoutput,
pdf TYPE fpcontent,
l_len TYPE i,
l_tab TYPE tsfixml,
lt_sbook TYPE sbook.
ls_outparams-preview = abap_false.
ls_outparams-dest = text-001.
ls_outparams-getpdf = abap_true.
ls_outparams-nodialog = abap_true.
ls_docparams-fillable = abap_true.
ls_docparams-dynamic = abap_true.
ls_docparams-langu = sy-langu.
lv_fpname = 'ZAIF_HOWTO_WS'.
CONCATENATE 'C:\TEMP\test_' sy-datlo '_' sy-timlo '.pdf' INTO lv_filename.
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name = lv_fpname
IMPORTING
e_funcname = lv_module_name
.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = ls_outparams
EXCEPTIONS
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
WRITE 'Fehler'.
ENDIF.
CALL FUNCTION lv_module_name
EXPORTING
/1bcdwb/docparams = ls_docparams
IMPORTING
/1bcdwb/formoutput = ls_form_out
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
WRITE 'Fehler'.
ENDIF.
pdf = ls_form_out-pdf.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = pdf
IMPORTING
output_length = l_len
TABLES
binary_tab = l_tab.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = l_len
filename = lv_filename
filetype = 'BIN'
CHANGING
data_tab = l_tab
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
* E_RESULT =
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4
.
IF sy-subrc <> 0.
WRITE 'Fehler'.
ENDIF.