DYNP_VALUES_UPDATE ohne F4-Hilfe nutzen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

DYNP_VALUES_UPDATE ohne F4-Hilfe nutzen

Beitrag von sapdepp (Specialist / 230 / 40 / 2 ) »
Hallo, liebe Experten,

ich möchte aus einer Methode (BAdI) heraus in Abhängigkeit einer bestimmten Bedingung ein Dynprofeld mit einem Wert belegen, quasi so, wie es der FuBa DYNP_VALUES_UPDATE bei der selbstprogrammierten F4-Hilfe tut. Das BAdI selber bietet leider keinen Exportparameter für dieses Feld. Nachdem das BAdI durchlaufen wurde, wird ein schon fertiges SAP-Dynpro gezündet. Würde ich das Bsp.coding unten so anwenden, erhalte ich zwar einen wunderbaren RC = 0, doch mein Eingabefeld bleibt leer.
Da ich im OO-Kontext kein AT SELECTION-SCREEN OUTPUT, LOOP AT SCREEN usw. einbauen kann, meine Frage, ob ich elegant in PBO ein Eingabefeld füllen kann.

Vielen Dank

Code: Alles auswählen.


METHOD ...

...

DATA dynumb TYPE d020s-dnum.
DATA dyname TYPE d020s-prog.

DATA lt_dynpfields TYPE TABLE OF dynpread.
DATA ls_dynpfields like line of lt_dynpfields.
...

  if lv_cordtsn = 'AUFN_NNCH'.

    dyname = 'SAPLN1_MDY_CORDER_MED'.
    dynumb = '0100'.

    move 'RN1_DYNP_CPOS_SHORT-FALNR' to ls_dynpfields-fieldname.
    move '0022222222' to ls_dynpfields-fieldvalue.
    append ls_dynpfields to lt_dynpfields.

    CALL FUNCTION 'DYNP_VALUES_UPDATE'
      EXPORTING
        DYNAME                     = dyname
        DYNUMB                     = dynumb
      TABLES
        DYNPFIELDS                 = lt_dynpfields.

  endif.

endmethod.


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


Re: DYNP_VALUES_UPDATE ohne F4-Hilfe nutzen

Beitrag von a-dead-trousers (Top Expert / 4485 / 231 / 1205 ) »
Hi!

Das Problem wird sein, dass entweder das Dynpro zu dem Zeitpunkt noch nicht angezeigt wird. Denn erst wenn es angezeigt wird, kann mit DYNP_VALUES_UPDATE das Feld aktualisiert werden. Du wirst warscheinlich mit einem "dirty" assign auf das Feld des zum Dynpro gehörenden Programm eher zum Ziel kommen.

Wenn es aber doch bereits angezeigt wird und es trotzdem nicht zu einer Aktualisierung kommt, dann liegt das daran, dass irgendwo anders im aufrufenden Programm ebenfalls DYNP_VALUES_UPDATE aufgerufen wird. Dieser Baustein schickt die Daten nicht sofort an das Dynpro und speichert sie erstmal intern in eine Tabelle. Wenn man den Baustein dann ein zweites Mal aufruft werden die Daten wieder überschrieben (auch wenn man eigentlich ein ganz anderes Feld updaten möchte)
Es gibt aber einen ähnlichen Baustein der die Daten sofort übermittelt: DYNP_UPDATE_FIELDS

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: DYNP_VALUES_UPDATE ohne F4-Hilfe nutzen

Beitrag von sapdepp (Specialist / 230 / 40 / 2 ) »
Hi ADT,

der erste Fall tritt hier ein, denn das Dynpro wird erst danach erzeugt (deswegen PBO). Ich habe zwar schon von einem "Dirty" Assign gehört, aber benutzt oder eine Ahnung davon habe ich nicht. Das übliche Assign sagt mir was, und ich verwende es ja auch in anderen Programmen. Also was genau meinst du?

Danke und Gruß

Re: DYNP_VALUES_UPDATE ohne F4-Hilfe nutzen

Beitrag von a-dead-trousers (Top Expert / 4485 / 231 / 1205 ) »

Code: Alles auswählen.

ASSIGN ('(programmname)variablenname') to <feldsymbol>.
Das zugehörige Programm muss aber schon im Speicher geladen sein und bei der Variable muss es sich um eine "globale" handeln.
Das ganze heißt deswegen "dirty"-assign weil du so von außen auf den globalen Speicher eines laufenden Programms zugreifst und ihn verändern kannst, ohne die "offiziellen" Schnittstellen zu nutzen die der Programmierer vorgesehen hatte.

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

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3567
Views
Brauche Hilfe zu Update nach Join in ITAB
von laola » 23.07.2008 16:42 • Verfasst in ABAP® für Anfänger
3
Antw.
2546
Views
Listbox mit mehreren values in einer Zeile?!
von newbie007 » 24.02.2012 20:29 • Verfasst in ABAP® für Anfänger
9
Antw.
14599
Views
DBTab Update from Table oder in Loop mit "Update Set" Oder ?
von RIG » 09.03.2018 11:27 • Verfasst in ABAP® Core
15
Antw.
9464
Views
Assertions nutzen
von DeathAndPain » 07.06.2018 12:31 • Verfasst in ABAP® für Anfänger
4
Antw.
12319
Views
Wertebereich nutzen
von MarkusW » 19.12.2007 09:00 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.