Dynamisches Einbinden einer Grafik in AIF/SIFbA (1)
In diesem Beitrag zeige ich Ihnen am Beispiel des SEPA-Lastschriftmandats, wie das Einbinden einer Grafik in AIF funktioniert und was Sie dabei beachten müssen.
Standardmäßig kann im Customizing ein Formular pro Mandant hinterlegt werden. Arbeiten mehrere Buchungskreise auf dem Mandant, besteht die Anforderung, für jeden Buchungskreis das entsprechende Logo zu verwenden.
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 Knowhow profitieren. Eine Übersicht über unsere Dienstleistungen 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 Lösungsmöglichkeiten aufzeigen. Selbstverständlich können wir danach auch ein unverbindliches Angebot unterbreiten.
Vorbereitung
Die Logos werden über die Transaktion SE78 hochgeladen.
Tipp: Speichern Sie das Bild vorab in 256 Farben, um Farbveränderungen zu vermeiden!
Die Transaktion SFP öffnet den Einstieg des Form Builders. Hier können Sie neue Formulare und Schnittstellen anlegen. Im vorliegenden Fall werden das bestehende Formular „SEPA_MANDATE“ und die zugehörige Schnittstelle „SEPA_MANDATE_IF“ in den Kundennamensraum kopiert.
Anpassen der Formular-Schnittstelle
Öffnen Sie die Schnittstelle. Im Menübaum links tragen Sie im Menüpunkt Import die benötigten Importparameter ein. In Abhängigkeit eines dieser Parameter wird später die entsprechende Grafik verwendet. In diesem Fall handelt es sich dabei um das Feld „REC_ID“ der Struktur „MANDATE“.
Tipp: Mit Doppelklick auf die Typbezeichnung ist der Absprung in die Detailsicht des verwendeten Typs möglich.
Legen Sie als nächstes zwei globale Variablen an. Die Variable vom Typ XSTRING beinhaltet später die verwendete Grafik. Die Variable vom Typ STRING beinhaltet die Information, welcher Grafiktyp verwendet wird.
Im Menüpunkt „Coding Initialisierung“ folgt nun das Befüllen der später benötigten Variablen. Innerhalb der IF-Abfrage wird in Abhängigkeit vom Buchungskreis das entsprechende Logo ausgewählt. Der Methodenaufruf sorgt für das Umwandeln der BDS-Grafik in ein Bitmap.
DATA: lv_logo TYPE tdobname.
gv_mtyp = 'image/bmp'.
IF mandate-rec_id = 'BUKRS1'.
lv_logo = 'SE78_LOGO_NAME1'.
ELSEIF mandate-rec_id = 'BUKRS2'.
lv_logo = ' SE78_LOGO_NAME2'.
ENDIF.
CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
EXPORTING
p_object = 'GRAPHICS'
p_name = lv_logo
p_id = 'BMAP'
p_btype = 'BCOL'
RECEIVING
p_bmp = gv_logo
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Error handling
ENDIF.
Anpassen des Formulars
Wechseln Sie von der Schnittstelle zum Formular (SFP). Falls Sie ein Standardformular kopiert haben, passen Sie bitte die verwendete Schnittstelle an. Legen Sie im Kontext eine Grafik an.
Als Grafiktyp wählen Sie bitte „Grafikinhalt“. Speichern Sie die Änderung und bestätigen Sie das Popup: „Wollen Sie den Typ des Grafikknotens wirklich ändern?“
Tragen Sie daraufhin in den Eigenschaften der Grafik als Feld die globale Variable ein, die die Grafik beinhaltet (XSTRING) und als MIME-Typ die globale Variable, die den Grafiktyp beinhaltet (STRING).
Wechseln Sie nun ins Layout des Formulars. Fügen Sie hier ein Bildfeld ein, wandeln ein vorhandenes Bild in ein Bildfeld um oder verwenden Sie ein bereits vorhandenes Bildfeld. Binden Sie die zuvor im Kontext angelegte Grafik an das Bildfeld ein.
In Abhängigkeit des Buchungskreises wird nun automatisch das korrekte Logo verwendet.
Hier kommen Sie zum zweiten Teil dieser HowTo-Reihe.
Fazit
Hat Ihnen dieses How To weitergeholfen oder haben Sie noch Fragen zum dynamischen Einbinden von Grafiken in AIF (Adobe Interactive Formular)?
Ich freue mich über Ihre Anmerkungen in den Kommentaren!
Ein Kommentar zu "Dynamisches Einbinden einer Grafik in AIF/SIFbA (1)"
Hallo Herr Kern,
können Sie mir sagen ob es eine Begrenzung in der Abhängigkeit der Logos gibt? Auch würde mich interessieren ob es eine Möglichkeit gibt die Logos gesammelt einzupflegen oder muss ich das bei allen einzeln machen?
Beste Grüße
Frank