Probleme mit MODULE und PAI / PBO: PROCESS ON VALUE-REQUEST

Benutzeroberflächen in SAP®-Systemen.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Probleme mit MODULE und PAI / PBO: PROCESS ON VALUE-REQUEST

Beitrag von kevkev (ForumUser / 1 / 0 / 0 ) »
Hallo ich habe ein Problem bei Modul/Dynproprogrammierung:
den Code habe ich weiter unten aufgelistet.
Gefüllt werden sollen die Felder "zmepo_badi_9000-ateil" und "zmepo_badi_9000-z_zielpreis".
"zmepo_badi_9000-ateil" wird mit der Hilfe von diesem Programmcode gefüllt:
PROCESS ON VALUE-REQUEST.
FIELD zmepo_badi_9000-ateil
MODULE suchhilfe_ateil. (Der komplette Code von "Module SUCHHILFE_ATEIL INPUT" siehe unten)

Mit einer F4-Hilfe(F4 help with FB 'F4IF_INT_TABLE_VALUE_REQUEST') kann ich einen Wert auswählen, der dann auch direkt sofort in das Feld in dem Dynpro geschrieben wird. Das passt also.
Allerdings möchte ich auch im MODULE suchhilfe_ateil noch einen Wert in zmepo_badi_9000-z_zielpreis schreiben ( coding: zmepo_badi_9000-z_zielpreis = zmepo_badi_9000-z_wertz, siehe im Kontext weiter unten ).
Das funktioniert auch, aber leider erst nach dem ich das ganze mit ENTER bestätigt habe. Das andere Feld (Ateil) ist schon direkt befüllt über die F4-Hilfe (genauer gesagt über zmepo_badi_9000-ateil = ls_return-fieldval.). Dann übernimmt er den Wert. Vorher nicht. Wie bekomme ich es hin, dass er den Wert gleich in das Feld schreibt (macht er ja eigentlich, wird dann aber nicht im Dynpro angezeigt)?? Wahrscheinlich liegt es an falscher Logik PAI... Geht es vielleicht mit einem automatischen ENTER???
Würde mich freuen wenn mir jemand helfen könnte.

*----------------------------------------------------------------------*
***INCLUDE LZMEPOBADIEXI02 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module SUCHHILFE_ATEIL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE suchhilfe_ateil INPUT.
DATA: ls_ekko TYPE ekko,
lv_netwr_eur(16) TYPE p DECIMALS 2.

CLEAR ls_ekko.
TYPES: BEGIN OF t_ateil,
ateil TYPE zco_pc4a-ateil,
pspnr TYPE zco_pc4a-pspnr,
kstar TYPE zco_pc4a-kstar,
menge TYPE zco_pc4a-menge,
wertz TYPE zco_pc4a-wertz,
ktext TYPE zco_pc4a_text-ktext,
ltext TYPE zco_pc4a_text-ltext,
waers TYPE zco_pc4a-waers,
END OF t_ateil.
DATA: ateil TYPE zco_pc4a-ateil.
CLEAR ateil.
DATA: it_return TYPE ddshretval OCCURS 10.
DATA: it_return2 TYPE ddshretval OCCURS 10.

DATA: ls_return TYPE ddshretval.
DATA: ls_ateil TYPE t_ateil,
it_ateil TYPE STANDARD TABLE OF t_ateil.
DATA: BEGIN OF dynpfields OCCURS 0. "Hilfsstruktur zum auslesen des akt.
INCLUDE STRUCTURE dynpread. "Feldwertes vom Dynpro bei >F4<
DATA: END OF dynpfields.

REFRESH it_ateil. REFRESH it_return. CLEAR ls_return.

******************************************************
* --> Selektion der A-Teile anhand des PSP-Elements
******************************************************
SELECT * FROM zco_pc4a INTO CORRESPONDING FIELDS OF ls_ateil
WHERE pspnr = zmepo_badi_9000-z_pspnr.
APPEND ls_ateil TO it_ateil.
ENDSELECT.


CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'ATEIL'
* PVALKEY = ' '
* dynpprog = sy-repid
* dynpnr = sy-dynnr
* DYNPROFIELD = ' '
* window_title = text-001
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = it_ateil
return_tab = it_return
* DYNPFLD_MAPPING =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* NO_VALUES_FOUND = 2
* OTHERS = 3
.

LOOP AT it_return INTO ls_return.
zmepo_badi_9000-ateil = ls_return-fieldval.
zmepo_badi_9000-z_kstar = ls_ateil-kstar.
zmepo_badi_9000-z_wertz = ls_ateil-wertz.
IF ls_ateil-wertz IS NOT INITIAL.
IF zmepo_badi_9000-z_zielpreis IS INITIAL.

IF ls_ateil-waers NE 'EUR' AND ls_ateil-waers IS NOT INITIAL .
SELECT SINGLE * FROM ekko INTO ls_ekko WHERE ebeln = zmepo_badi_9000-z_ebeln.
* WAE umrechnen in EUR
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
date = ls_ekko-bedat
foreign_amount = '23' "ls_ekko-wertz
foreign_currency = ls_ekko-waers
local_currency = 'EUR'
rate = ls_ekko-wkurs
IMPORTING
local_amount = lv_netwr_eur
EXCEPTIONS
no_rate_found = 1
overflow = 2
no_factors_found = 3
no_spread_found = 4
derived_2_times = 5
OTHERS = 6.
if sy-subrc = 0.
zmepo_badi_9000-z_wertz = lv_netwr_eur.
zmepo_badi_9000-z_zielpreis = zmepo_badi_9000-z_wertz.
modify SCREEN.
endif.
ENDIF.
ENDIF.
ENDIF.

EXIT.
ENDLOOP.
ENDMODULE. " SUCHHILFE_ATEIL INPUT







PROCESS BEFORE OUTPUT.

MODULE event_pbo.

MODULE screen_9000.

PROCESS AFTER INPUT.

FIELD zmepo_badi_9000-z_zielpreis
MODULE daten_pruefen_9000_zp ON REQUEST.

FIELD zmepo_badi_9000-z_bestang
MODULE daten_pruefen_9000_ba ON REQUEST.

FIELD zmepo_badi_9000-z_altpreis
MODULE daten_pruefen_9000_ap ON REQUEST.
* MODULE zielpreis.

MODULE event_pai.

PROCESS ON VALUE-REQUEST.
FIELD zmepo_badi_9000-ateil
MODULE suchhilfe_ateil.

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


Re: Probleme mit MODULE und PAI / PBO: PROCESS ON VALUE-REQU

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,

vielleicht kann dir das weiter helfen, Stichwort SUPPRESS DIALOG.

Gruß
coco

Re: Probleme mit MODULE und PAI / PBO: PROCESS ON VALUE-REQU

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Hi!

Wie ich sehe hast du in deinem Coding ja schon die Struktur DYNPREAD eingebaut.
Also fehlt dir nur noch der zugehörige Funktionsbaustein ;)

DYNP_VALUES_UPDATE

In die DYNPFIELDS-Tabelle in deinem Programm schreibst du einfach die Felder und zugehörigen Werte rein die neben dem F4-Feld noch verändert werden sollen. Dann rufst du damit einfach nur den Funktionsbaustein auf.
Aber Achtung: Der Baustein schreibt die Werte "wie sie sind" in das Dynpro. Das heißt z.B. bei Datums oder Zeitfeldern musst du die Werte in der Form "22.08.2013" bzw "20:17:59" reinschreiben.

Hier im Forum findest du auch Beispiele zu dem Thema: Such einfach nach "DYNP_VALUES_UPDATE"

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

3
Antw.
4757
Views
PBO neu prozessieren -> aus PROCESS ON VALUE-REQUEST.
von cut1 » 24.10.2006 13:03 • Verfasst in Dialogprogrammierung
5
Antw.
3894
Views
PROCESS ON VALUE-REQUEST & dialog neu aufbauen
von SwordMaster » 29.03.2006 09:20 • Verfasst in ABAP® Core
0
Antw.
4075
Views
Business Process oder ABAP Proxy
von CaptainABAP » 24.01.2007 14:26 • Verfasst in Exchange Infrastructure
2
Antw.
2362
Views
Module
von timfloyd » 10.09.2008 10:33 • Verfasst in SAP - Allgemeines
1
Antw.
1695
Views
sap Module
von dimes » 23.10.2006 11:40 • Verfasst in SAP - Allgemeines

Ü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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 515
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2149
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8744