Adobe Formular erstellen

Getting started ... Alles für einen gelungenen Start.
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Adobe Formular erstellen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hallo zusammen,

ich wäre dabei, das erste Mal ein Adobe Formular zu erstellen.

Es wäre dabei ein sehr kleines Formular. Ich habe bereits die Schnittstelle und das Formular soweit mal angelegt.

Nun habe ich leider aber ein kleines Problem und zwar: das ganze soll über die VL71 laufen, also dort soll jemand LIEFERNR eingeben und dann sollen die restlichen Daten gefunden und im Formular angezeigt werden. Diese wäre z.B. der Kunde, Lieferadresse, Menge, Artikel usw.

Ich wollte mal fragen, wie ich das jetzt genau machen soll. In der Schnittstelle einen Importparameter anlegen, welcher die LieferNr enthält und dann im Coding mir die entsprechenden Daten zusammensuchen?

Oder wie sollte man dabei vorgehen? Ich habe es mir bei anderen Formularen mal angeschaut und da wurde das jeweils so gemacht. Bei einem Formular über den Produktionslenkungsplan wurde jedoch gleich die Struktur QPCPS_PLAN_PRI benutzt, welche im SAP-Standard vorhanden ist.

Nun weiß ich nicht, ob es direkt so eine Struktur (Standard) für die VL71 gibt?? Oder kann ich mir da auch einfach selbst eine erstellen und dann nach dem oben beschriebenen Verfahren?

Vielen Dank im Voraus.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Adobe Formular erstellen

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hallo,
genau erstmals import parametr LIEFERNR, dannach kannst selber programmieren, oder eigene Vuies(Struktur) in Dyktionari einlegen und in Formular aufrufen. Oder mit einfache Selekt von Tabelle und dann zuweisung.

Re: Adobe Formular erstellen

Beitrag von Sebastian82 (ForumUser / 75 / 9 / 11 ) »
Hallo LowRider,

ich bin mir nicht sicher, ob dein Ansatz richtig ist. Die VL71 ist dafür da, Nachrichtentypen auszugeben. D.h. wenn zu einer Lieferung eine Nachricht erzeugt wurde, kannst du sie mit der VL71 ausgeben.

D.h. für einen Beleg oder eine Lieferung ist die VL71 genau das richtige.

Wenn das ein Report werden soll, in etwas für einen Lieferanten alle Lieferungen, dann würde ich vorschlagen, dass du dafür ein eigenes Programm mit einer eigenen Transaktion machst. D

Viele Grüße,

Sebastian

Re: Adobe Formular erstellen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
So ich hätte jetzt mal alles fertig gestellt und ein Druckprogramm angelegt.

Es muss ja bei der NACE für die Nachrichtenart auch noch bei FORM immer etwas eingepflegt werden, also ein Unterprogrammaufruf.

Da in meinem Druckprogramm nun bisher nur dieses Formular genutzt wird, dachte ich, kann ich das Ganze eigentlich als Unterprogramm umstellen, oder?

Ich meine damit, dass ich eigentlich fast meinen gesamten Code mit Formularöffnung, Verarbeitung usw. in ein Unterprogramm packen kann, welches dann in der NACE eingepflegt wird.

Ich habe nun gelesen, dass es bei einem Adobe Formular ENTRY_PDF sein soll, wie man das Unterprogramm nennen soll.

Dies wäre mein Druckerprogramm:

Code: Alles auswählen.

DATA: form TYPE tdsfname VALUE 'Z_FORM_MAT_RESP',
      cntry TYPE c LENGTH 2,
      lx_fp_api TYPE REF TO cx_fp_api,
      fm_name TYPE c LENGTH 30,
      fp_docparams TYPE sfpdocparams,
      fp_outputparams TYPE sfpoutputparams.

fp_outputparams-preview = 'X'.

CALL FUNCTION 'FP_JOB_OPEN'
  CHANGING
    ie_outputparams       = fp_outputparams
 EXCEPTIONS
   CANCEL                = 1
   USAGE_ERROR           = 2
   SYSTEM_ERROR          = 3
   INTERNAL_ERROR        = 4
   OTHERS                = 5
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

TRY.
  CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
    EXPORTING
      i_name                     = form
    IMPORTING
      E_FUNCNAME                 = fm_name.
  CATCH cx_fp_api INTO lx_fp_api.
*    MESSAGE ID lx_fp_api->msgid TYPE lx_fp_api->msgty
*      NUMBER lx_fp_api->msgno
*        WITH lx_fp_api->msgv1 lx_fp_api->msgv2
*             lx_fp_api->msgv3 lx_fp_api->msgv4

    EXIT.
ENDTRY.

fp_docparams-langu = sy-langu.
SELECT SINGLE laiso
  FROM t002
  INTO cntry
  WHERE spras EQ sy-langu.
 fp_docparams-country = cntry.

 CALL FUNCTION fm_name
 EXPORTING
   /1bcdwb/docparams = fp_docparams
   EXCEPTIONS
     usage_error = 1
     system_error = 2
     internal_error = 3.
if sy-subrc <> 0.
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.
* Implement suitable error handling here
ENDIF.
Könnte ich den ganzen Code jetzt einfach in ein Unterprogamm mit Namen ENTRY_PDF packen? Was müsste ich hierbei sonst noch beachten bzgl. Parameter oder wie sollte das gemacht werden?

Könnte mir hier bitte jemand helfen?

Vielen Dank im Voraus.

Re: Adobe Formular erstellen

Beitrag von msfox (Specialist / 302 / 50 / 62 ) »
L0w-RiDer hat geschrieben:
31.05.2021 09:19
Ich wollte mal fragen, wie ich das jetzt genau machen soll. In der Schnittstelle einen Importparameter anlegen, welcher die LieferNr enthält und dann im Coding mir die entsprechenden Daten zusammensuchen?
Ich kenne mich zwar in den Adobe Formularen nicht aus, sondern etwas im SMARTFORMS. Mein Empfehlung wäre, immer ein Trennung Zwischen Layout (Formular) und Inhalt/Datenbeschaffung. Das Formular ist als "dumm" zu betrachten, was lediglich die Daten anzeigt. Die Beschaffung findet also vorher statt und wird an das Formular übergeben. Im SMARTFORMS gibt es dafür die Anwendungsklasse und als Übergabeparameter ein tiefgeschachtelte Struktur.
Das hat letztlich auch den Vorteil, dass man die Datenbeschaffung unabhängig von dem Formular eigenständig testen kann. Man muss also nicht immer ein PDF erzeugen, sondern kann ggf. auch einen Unit-Test dagegen laufen.
Weiterhin kann man die gleiche Datenbeschaffung/-aufbereitung auch für ein anderes Formular-Layout verwendet.
--
Edit: Hab erst in deinem Code-Beispiel gesehen, dass du hier SMARTFORMS nimmst.
Z_FORM_MAT_RESP ist ein SMARTFORMS?
Dann wäre die Anwendungsklasse dein Freund für die Datenbeschaffung.

Re: Adobe Formular erstellen

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
msfox hat geschrieben:
07.07.2021 20:30
Hab erst in deinem Code-Beispiel gesehen, dass du hier SMARTFORMS nimmst.
Z_FORM_MAT_RESP ist ein SMARTFORMS?
Dann wäre die Anwendungsklasse dein Freund für die Datenbeschaffung.
Er verwendet nur den Datentyp für ein Smartformsformular, der Rest ist Adobe 😉
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Adobe Formular erstellen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, ich hätte jetzt mal alles soweit beisammen. Bloß wie bekomme ich die Daten, welcher der User über die VL71 eingegeben hat? Also es wäre so, dass der User über die VL71 Daten eingibt und auf dieser Grundlage werde ich nach Daten suchen, welche ich auf dem Formular einpflege. Weiß jemand wie das geht? Im Druckprogramm noch irgendetwas pflegen (einen Paramter?).

Vielen Dank im Voraus.

Re: Adobe Formular erstellen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hmm also über die VL71 werden die Nachrichten erzeugt, welche dann mit meinem Formular ausgedruckt werden sollen. Wenn ich nun aber zum Test eine Druckvorschau erzeuge und in den Debugger gehe, bekomme ich leider als Parameter nicht die Daten die ich bräuchte um mein Formular entsprechend aufzubereiten. Ich bräuchte nämlich die Lieferantennummer.

Das Programm gibt mir aber nur diese 2 Parameter mit (siehe Bild). Wie könnte ich an die Lieferantennummer rankommen um diese in meinem Druckprogramm für das Formular zu benutzen?

Hat da jemand vielleicht eine Idee?

Re: Adobe Formular erstellen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, neuer Ansatz:

Ich müsste die Daten schon bei der Erzeugung vermutlich befüllen. Also wenn die Nachricht erzeugt wird. Dies wäre über die VL02N. Wenn man dort in Nachrichten reingeht und eine erzeugt, springt er leider nicht in mein Druckerprogramm :/. Anscheinend wird so was blockiert und mit dem Programm MEDEBUG kann man es entblocken. Weiß jemand was man da einstellen muss bei dem Programm Medebug, damit es bei der Nachrichtenerzeugung in mein Druckerprogramm von der Nachrichtenart springt?

Vielen Dank im Voraus.

Re: Adobe Formular erstellen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, ich hätte es nun gelöst. Das ganze funktioniert mit dem Programm RSTNAST00 und indem man auf "versenden durch Job" einstellt. Dann springt er in den Debugger rein : )

Seite 1 von 1

Vergleichbare Themen

3
Antw.
647
Views
Adobe Formular
von L0w-RiDer » 04.06.2021 11:49 • Verfasst in ABAP® für Anfänger
20
Antw.
1044
Views
Adobe Formular mehrmals
von L0w-RiDer » 25.08.2021 14:13 • Verfasst in ABAP® für Anfänger
5
Antw.
720
Views
Adobe Formular Druck verhindern
von L0w-RiDer » 11.03.2021 12:50 • Verfasst in ABAP® für Anfänger
1
Antw.
878
Views
Adobe Formular PDF Rückgabe und Druckdialog
von Aba » 27.03.2018 11:59 • Verfasst in ABAP® für Anfänger
2
Antw.
1386
Views
Adobe Forms Formular im SAP ablegen
von Aba » 31.01.2018 10:02 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140