ich bin gerade dabei herauszufinden, woher die Daten von einem Adobe Formular gezogen werden bzw. wie die Felder befüllt werden.
Ich habe das Ganze jetzt schon ein paar Mal durchdebuggt, bloß irgendwie kann ich nicht nachvollziehen woher die Daten gezogen werden.
Es gibt eine Schnittstelle (Siehe Bild) bei der bei einem Methodenaufruf gewisse Parameter mitgegeben werden.
Wenn ich nun den Funktionsbaustein von dem Formular durchdebugge, dann der Parameter IS_CPLAN bereits alle Daten gefüllt (wäre für mich super wichtig zu verstehen, wo dieser gefüllt wird, aber irgendwie verstehe ich es nicht).
Nach dem Methodenaufruf stehen, dann die ganzen wichtigen Daten in der Tabelle gt_parts_processes über welche noch mal später drübergeloopt wird um gewisse Sachen auszuschließen (Dieser Teil ist mir noch klar).
Ich habe mir den Methodenaufruf mal angeschaut und habe mir die Klassen usw. angeschaut usw. hat mir aber auch nichts gebracht.
Wäre super, wenn mir da mal jemand einen Tipp o.Ä. geben kann, was ich da noch probieren kann.
Vielen Dank im Voraus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Wenn du im Debugger bist, einfach im Aufrufstack nach oben suchen bis du zu der Stelle kommst die das Feld zum ersten Mal übergibt.
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.
Etwas Hintergrundwissen vorweg:
Das "Adobe-Formular" gibt es eigentlich nur in XML. Die Schnittstelle und der Kontext ist der Teil der in SAP verwaltet wird. Aus diesen Informationen wird beim Aktivieren des Formulars ein Funktionsbaustein im Namensraum /1BCDWB/ generiert. Auf diesen Namen hat man leider keinen Einfluss und auch zwischen Systemen einer zusammenhängenend Transportschine kann sich dieser Namen ändern. Daher gibt es Bausteine die zum Formularnamen den korreken Funktionsbausteinnamen ermitteln.
Du musst also im Aufrufstack des Debuggers nachschauen, von wo aus dieser /1BCDWB/-Baustein aufgerufen wurde und dann dort (oder in noch tieferliegenden Aufrufen) nach der Stelle suchen an der dein Parameter befüllt wurde. Damit du im Debugger auch stehenbleibst, kannst du entweder eine Break Anweisung in der Formularschnittstelle einbauen oder einen Break-Point in besagtem Funktionsbaustein aktivieren. Dann einfach den Druck nochmal anwerfen und du solltest im Debugger sein.
Ein Doppelklick auf den Eintrag im Aufrufstack bringt dich übrigens sofort zur jeweiligen Aufrufstelle im laufenden Programm.
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.
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.
Irgendwie habe ich nun zwar einiges gesehen, bloß komme ich nach wie vor nicht drauf, woher die Daten gezogen werden, welche ich brauche.
Es wird ein Produktionslenkungsplan mit einer Planart eingegeben und bei diesem wird ein Adobe Formular erzeugt, welches mehrere Positionen hat. Hierbei interessiert mich z.B. die Kurzbeschreibung und andere Daten.
Wenn ich ins global init gehe und dann auf den ersten Methodenruf, dann komme ich an die Stelle, bei welcher die Methode get_objects aufgerufen werde.
(Siehe Bild 1).
Okay, danach selektiert er in der qpcpc_objtype die objekttexte (Siehe Bild_2).
Anschließend wird die Methode get_nodes aufgerufen (Siehe Bild_3) und loopt dort über die mt_root (dort befindet sich nur ein Wert drin) und sucht dort damit Objekte indem die Methode get_all_children aufgerufen wird.
Und dann holt er sich die ganzen Objekte (Siehe Bild_5) und dort in mv_state sind tatsächlich die Wert wie z.B. der shorttext drin (Siehe Bild_6 & Bild_7).
Und genau dort steige ich irgendwie aus. Woher kommen nun die Daten (also aus welcher Datenbanktabelle und wie ist die Grundlage die children zu holen). Ich kann keinen einzigen Select auf einer DB-Tabelle finden. Wie ist denn hier die Vorgehensweise wie die Daten zusammengesetzt werden.
-> weiter Bilder in nächster Nachricht.
Versteht ihr mein Problem?
Kann mir da jemand bitte helfen oder es erklären?
Vielen Dank im Voraus,
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Kennt sich denn jemand vielleicht mit der Methode ('CONVERT_FORM_DATA') aus?
Ich verstehe hier nicht ganz wie er die Children holt....
Es geht dabei um ein Adobe Formular bei welchem ich herausfinden möchte, woher die Daten aus einer gewissen Spalte kommen. Leider debugge ich mich hier gerade zu Tode....