Schnell und billig Auftragsdaten darstellen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

Schnell und billig Auftragsdaten darstellen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Moin moin,

ich habe die Daten eines Kundenauftrags in einem XML, die ich vor der Verbuchung darstellen soll (VBAK, VBAP, VBPA, etc, das ganze Programm). Weiß jemand einen Weg, der schnell und billig ist, um diese Daten in einem Dynpro, einem Popup oder sowas darzustellen? Vielleicht hat die SAP ja sowas schon fertig zum Aufrufen.... ;)

Bisher liebäugele ich mit einem Fullscreen-Dynpro, auf dem mehrere ALVs sind (einer für die Positionen, einer für die Partner, etc.), wie ich die Kopfdaten darstellen soll, überlege ich mir noch (ein ALV mit einer Zeile finde ich etwas "oversized").

Nett wäre auch ein ALV-Tree, ist aber noch aufwendiger.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Re: Schnell und billig Auftragsdaten darstellen

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Mein Vorschlag:
Kopfdaten in das 'Header' Fenster / Posdaten in das ALV

Code: Alles auswählen.

     :
     :
  call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
      i_callback_program      = sy-repid
      i_callback_top_of_page  = 'PRINT_HEADER'
      i_default               = 'X'
      i_save                  = 'X'
      is_variant              = g_variant
      it_fieldcat             = i_fieldcat
      is_layout               = i_layout
      i_callback_user_command = 'USER_COMMAND'
    tables
      t_outtab                = t_vbap
    exceptions
      program_error           = 1
      others                  = 2.
   :
   :
*&---------------------------------------------------------------------*
*&      Form  print_header ( FÜR VBAK DATEN )
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM print_header.
  DATA: t_show_line TYPE slis_t_listheader,
        show_line TYPE slis_listheader.

   :
   :
  CLEAR: show_line.
  show_line-typ = 'S'.
  CONCATENATE 'Date/Time:' sy-datum '/' l_uzeit INTO show_line-info.
  APPEND show_line TO t_show_line.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = t_show_line.

ENDFORM.                    "PRINT_HEADER


lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Wenns so einfach wäre, würde ich hier nicht fragen ;) Konditionen (mehrere pro Position), Partner (mehrere pro Position), Partneradressen (mehrere pro Partner) und so weiter und so fort ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
... *grins* (warum sollten auch Deine User anders sein als Meine ).
Wenn es also nur um Darstellung geht, nimm doch ein Formular als PDF im PDF - viewer.
(Oder gibt es noch ein paar unbedeutende Nebenbedingungen ?)
lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von Thomas17 (Specialist / 157 / 17 / 14 ) »
Hi,

bin mir nicht sicher, wo Du die Daten hast - im r3 direkt?
Wenn ja, dann mach doch eine Auftragssimulation bzw. Auftragsanlage über Batchinput
und zeig dann die VA01 vor dem Speichern?

Gut möglich, dass ich auch nicht Deinen Ansatz/Problem ganz durchschaue.

Gruss

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Hintergrund ist eine Transaktion, die Aufträge anlegt (VA01). Das macht die mit Batch-Input, weil der Anwender noch drübergucken soll ehe der Auftrag wirklich gespeichert wird. Manchmal lässt sich der Auftrag aber nicht anlegen, weil irgendwelche Daten (aus externer Quelle) Müll sind, also will man VOR dem Auftrag-Anlegen (oder wenn man merkt, der konnte nicht angelegt werden) in die Daten reingucken können zu Diagnosezwecken.

Also bringst mir nix, wenn ich per Batch-Input genau das mache, was ohnehin gemacht werden soll, aber nicht funktioniert ;) Es geht wirklich nur darum, die Daten mal zu SEHEN, wie sie aus der Quelle kommen, damit man diagnostizieren kann, ob die sendende Anwendung Mist gebaut hat.

Ich bin gerade dabei, ein zweigeteiltes Dynpro zu erstellen - links ein Simple Tree mit der Hierarchie, rechts ein Dynpro, in dem (wie in der Detailanzeige der SE16 im ALV-Modus) zwei Spalten dargestellt werden, wo Text und Wert einander gegenüber gestellt werden. Derzeit bin ich noch am Tree-Basteln, danach werde ich irgendwie nen ALV basteln, der die Daten darstellt mit ihren Bezeichnern.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Manchmal lässt sich der Auftrag aber nicht anlegen, weil irgendwelche Daten (aus externer Quelle) Müll sind
... BAPI_SALESORDER_CREATEFROMDATA2 hätte für solche Fälle ein Simulationsflag (TESTRUN = 'X').
lg jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Da fällt mir noch eine Frage ein: Kann man irgendwie bewirken, dass einfache Nodes erst dargestellt werden und dann die Ordner?

Da Bilder mehr sagen als 1000 Worte: Rote Nodes (Ist, unerwünscht) sollen da hin wo die grünen Nodes (Soll, erwünscht) eingezeichnet sind. Die farbigen Nodes haben dieselbe Hierarchiestufe wie die Ordner, werden aber leider unten dargestellt, ich hätte sie gern oben.

ROOT
+---Einfacher Node
+---Einfacher Node
+---Ordner
............+---Einfacher Node
............+---Einfacher Node
+---Ordner
............+---Einfacher Node
............+---Einfacher Node
............+---Einfacher Node
............+---Einfacher Node
+---Ordner
............+---Einfacher Node
............+---Einfacher Node
+---Einfacher Node
+---Einfacher Node


Edit: Und wenn jemand weiß, wie ich hinbekomme, dass beim Schweben über einem Node mit dem Mauszeiger ein Tooltip angezeigt werden kann, wäre ich superdankbar.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Im TreeModel (und TreeControl) wird das über die RELATSHIP (FirstChild, LastChild, NextSibling, PreviousSibling) und die Reihenfolge des Einfügens gelöst.
d.h.
Fügt man alle Knoten als 'LastChild' zum RELATKEY vom Root-Knoten ein, werden sie auch in dieser Reihenfolge sortiert dargestellt.
Fügt man aber alle Knoten als 'FirstChild' zum RELATKEY vom Root-Knoten ein, werden sie genau verkehrt herum sortiert dargestellt.

Wie man das beim ALV-Tree beeinflussen kann weiß ich leider nicht.

Meine Empfehlung wäre sowieso, die Klasse CL_COLUMN_TREE_MODEL zu verwenden. Damit hat man einfach mehr Freiheiten was die Gestalltung anbelangt und zusätzlich bietet das TreeModel gegenüber dem TreeControl, Strings als NodeKey und eine detailierte Fehlerbeschreibung wenn irgendwas mit den Knoten nicht passt anstatt einen nichtsagenden (CONTROL_ERROR) Kurzdump auszulösen.

lg ADT
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: Schnell und billig Auftragsdaten darstellen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Plötzlich (!) ist die Ausgabe so, wie ich es haben will. Da muss ich mal wühlen, warum. Einfach 2x hintereinander gestartet LOL

Das mit dem Tooltip habe ich noch nicht gelöst, geht das im Simple Tree nicht? Oder im Tree überhaupt nicht?
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von Thomas17 (Specialist / 157 / 17 / 14 ) »
ralf.wenzel hat geschrieben:Hintergrund ist eine Transaktion, die Aufträge anlegt (VA01). Das macht die mit Batch-Input, weil der Anwender noch drübergucken soll ehe der Auftrag wirklich gespeichert wird. Manchmal lässt sich der Auftrag aber nicht anlegen, weil irgendwelche Daten (aus externer Quelle) Müll sind, also will man VOR dem Auftrag-Anlegen (oder wenn man merkt, der konnte nicht angelegt werden) in die Daten reingucken können zu Diagnosezwecken.

Also bringst mir nix, wenn ich per Batch-Input genau das mache, was ohnehin gemacht werden soll, aber nicht funktioniert ;) Es geht wirklich nur darum, die Daten mal zu SEHEN, wie sie aus der Quelle kommen, damit man diagnostizieren kann, ob die sendende Anwendung Mist gebaut hat.
moin,
Aber Du siehst doch dann im BI welche Daten Mist sind. Wenn Du die Daten im Vorfeld als ALV oder auch nur als Reportausgabe rauslässt, muss der Fehler ja gesucht und gefunden(!) werden. Der BI sagt Dir doch was falsch ist (im E - Mode werden Dir doch die Fehler angezeigt, Kundennummer existiert nicht, etc.).
So wie ich das sehe wird die nächste Anfrage an Dich sein - "Schön jetz sehen wir die Daten - aber wo ist der Fehler? Können Sie nicht den Fehler noch darstellen und gleich ein Warnsignal mit Blinklicht ausgeben?"
Vorallem, wenn Du das alles schön mit ALVTress darstellst, muss ja jeder Bereich: Kopf, Position, Einteilung, Kondition, Partner,etc. PP durchgeklickt werden.

Wenn es um die Analyse der Daten geht würde ich eher die XML mit der Datenbank abgleichen und dann die Unstimmigkeiten ausgeben, im Sinne stimmen die Mengen/Konditionen, etc. Aber das ist ja nach der Anlage des Auftrages.

Versteh das irgendwie ned so wirklich. Aber das musst letztendlich ja auch nur Du ... ;) :P
Bzgl. des Tooltips:
Verwendest Du Icons? Wenn ja, zeigts bei mir den Standard Tooltip des Icons an - eventuell kannst Du den Text ja übersteuern?
lvc_s_layi / cl_gui_alv_tree

Grüße und viel Erfolg!

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Thomas17 hat geschrieben:Aber Du siehst doch dann im BI welche Daten Mist sind. Wenn Du die Daten im Vorfeld als ALV oder auch nur als Reportausgabe rauslässt, muss der Fehler ja gesucht und gefunden(!) werden. Der BI sagt Dir doch was falsch ist (im E - Mode werden Dir doch die Fehler angezeigt, Kundennummer existiert nicht, etc.).
So wie ich das sehe wird die nächste Anfrage an Dich sein - "Schön jetz sehen wir die Daten - aber wo ist der Fehler? Können Sie nicht den Fehler noch darstellen und gleich ein Warnsignal mit Blinklicht ausgeben?"
Der Hintergrund ist, dass der Anwender nur sehen kann, dass der BI nicht funktioniert, mit den technischen Details aber nix anfangen kann - ICH will aber ohne Breakpoint in die Daten gucken können ;) und die Kollegen aus der Java-Truppe auch (wenn ich denen mit Debugger komme, treten die mir ins Kreuz).

Wenn also eine Fehlermeldung kommt, will ich erstmal sehen, was aus dem XML herausgefischt wurde und ob das auch in sich konsistent ist.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von Thomas17 (Specialist / 157 / 17 / 14 ) »
Hmm wenn Du den Batch Input wie folgt ausführst,

Code: Alles auswählen.

CALL TRANSACTION 'VA01' USING gt_bdcdata[] MODE 'E' UPDATE 'S'.
Dann bleibt der BI doch dort stehen wo der Fehler auch tatsächlich ist.
Ist halt nix für asynchrone Verarbeiten - so wie ich Dich verstehe passiert das aber eh im Dialog,
damit ja noch Daten ergänzt werden können.

Den BI würde ich vor dem Speichern beenden - dann muss der User den Speichern-Button selber drücken.

Grüße

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Thomas17 hat geschrieben:Dann bleibt der BI doch dort stehen wo der Fehler auch tatsächlich ist.
Ist halt nix für asynchrone Verarbeiten - so wie ich Dich verstehe passiert das aber eh im Dialog,
damit ja noch Daten ergänzt werden können.
Je nachdem wo welcher "Fehler" auftaucht sehe ich aber nicht alle Daten.
Wenn ein "Fehler" in der ersten Position auftritt, siehst du die anderen Positionen erst mal nicht!
Gruß Hendrik

Re: Schnell und billig Auftragsdaten darstellen

Beitrag von Thomas17 (Specialist / 157 / 17 / 14 ) »
JHM hat geschrieben:Wenn ein "Fehler" in der ersten Position auftritt, siehst du die anderen Positionen erst mal nicht!
jo - dann sehe ich den ersten Fehler, korrigiere diesen und dann kommt der nächste, sofern änderbar... schon klar.
Aber je nachdem gibt dir der BAPI im Simulationsmodus auch nur den ersten Fehler aus,
weil er sonst nicht weitermachen kann.

Wie bereits erwähnt, muss Du ja sonst sämtliche Logiken mit den Daten testen um einen Fehler als solchen identifizieren zu können.
Nur die Daten in nem ALV anzeigen zu lassen wäre ja nur die halbe Miete.
Dann kannst letzendlich ja den Auftrag auch als IDOC übergeben und in der BD87
die Fehler anzeigen lassen. Je länger ich darüber nachdenke... wird das wohl der "billigste und schnellste" Weg sein.
Übergebe die Daten als ORDERS, lege so die Aufträge mit ner Liefersperre an - die FA sichtet die gesperrten Aufträge, ändert, und entfernt die Sperre.
Um die fehlerhaften Aufträge zu sehen muss man dann halt die BD87 zeitnah abarbeiten.

Grüße
Zuletzt geändert von Thomas17 am 20.08.2014 15:53, insgesamt 2-mal geändert.

Vergleichbare Themen

2
Antw.
1233
Views
130 Million DS schnell entalden
von c0lt.seavers » 23.01.2007 08:19 • Verfasst in ABAP® für Anfänger
3
Antw.
6321
Views
Lokales Layout anpassen / Schnell ausschneiden und einfügen
von dorenthe » 17.01.2012 14:06 • Verfasst in ABAP® für Anfänger
2
Antw.
2779
Views
PNG im CustomContainer darstellen
von peterpaulandmary » 10.06.2008 11:44 • Verfasst in Dialogprogrammierung
15
Antw.
20015
Views
Wie Ö Ä bzw Ü in ABAP darstellen?
von donossi » 13.01.2011 11:50 • Verfasst in ABAP® für Anfänger
5
Antw.
2620
Views
ALV im WD als disabled darstellen
von Thanatos82 » 16.11.2012 16:00 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 741
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2365
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8951