Björn Lambertz
13. Juli 2014

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.

neuedatenbindung1

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.

neuedatenbindung2

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.

neuedatenbindung3

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)

Unser E-Book zum Thema Druckprogramme

E-Book: SAP Druckprogramme

SAP Druckprogramme: Der leicht verständliche Einstieg in die Architektur, Funktionen und Wartbarkeit.

Über ein Druckprogramm kann das Formular nun als PDF Datei ausgegeben werden (der Code dazu befindet sich am Ende des HowTo’s).

Web Services in AIF
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.

 

Björn Lambertz

Björn Lambertz

Mein Name ist Björn Lambertz und ich bin Senior Vice President IT für Produktion & Logistik bei mindsquare. Seit Jahren bewege ich mich im Instandhaltungsumfeld und möchte meine Erfahrungen und mein Wissen für unsere Kunden einsetzen.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

In meinem Blogbeitrag möchte ich der Frage auf den Grund gehen, was eigentlich alles hinter der Architektur von SIFbA (SAP Interactive Forms by Adobe) steht und möchte einen ersten Überblick der […]

weiterlesen

Arbeiten Sie in der Entwicklungsumgebung mit ausreichend Testdaten, können Sie die Entwicklungszeit für Formulare erheblich verkürzen. Nutzen Sie Adobe Forms Technologie, müssen Sie dazu lediglich eine XML-Datei mit Daten in […]

weiterlesen

In diesem Beitrag zeige ich Ihnen, wie Sie Ihr Adobe Formular mit vorgegebenen Dateinamen speichern, denn es wird häufig von Außendienst-Mitarbeitern oder Kunden ausgefüllt, und das auf vielen verschiedenen PCs […]

weiterlesen

In diesem Blogbeitrag möchte ich auf ein besonderes Problem mit dem E-Mail-Versand von Adobe Forms eingehen, das mir zuletzt in einem Kundenprojekt begegnet ist. Der Kunde klagte über sporadisch auftretende, […]

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Julia Buecker
Julia Bücker Kundenservice