Hallo
Es gibt hier ja sicher den ein oder anderen SAP bzw. ABAP Programmierexperten unter euch? Denke/Hoffe ja
Hab folgendes Problem:
Ich bekomme schlichtweg keinen OKCode beim Klick auf Buttons zurück und ich weiß nicht worans liegt.
der ok_code (sy-ucomm) ist immer leer.
hier der code des dynpros:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
PROCESS BEFORE OUTPUT.
MODULE status_0100.
CALL SUBSCREEN: SUB1 INCLUDING sy-repid '0110',
SUB2 INCLUDING sy-repid '0120'.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
CALL SUBSCREEN: SUB1,
SUB2.
MODULE user_command.
|
hier der ABAP Code:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
REPORT ...
DATA: aufart TYPE bapisdhd1-doc_type,
vkorg TYPE bapisdhd1-sales_org,
vkweg TYPE bapisdhd1-distr_chan,
sparte TYPE bapisdhd1-division,
material TYPE bapisditm-material,
menge TYPE bapischdl-req_qty.
DATA field(10) TYPE c.
" Interne Tabelle anlegen - Typ definieren
DATA: it_order_items_in TYPE STANDARD TABLE OF bapisditm
WITH DEFAULT KEY,
it_order_schedules_in TYPE STANDARD TABLE OF bapischdl
WITH DEFAULT KEY,
it_return TYPE STANDARD TABLE OF bapiret2
WITH DEFAULT KEY,
it_order_partners TYPE STANDARD TABLE OF bapiparnr
WITH DEFAULT KEY.
" Definition der Zeilen vom Typ der Tabelle von bapisdhd1
DATA: wa_order_header LIKE bapisdhd1,
wa_order_partners LIKE bapiparnr,
wa_order_items_in LIKE bapisditm,
wa_order_schedules_in LIKE bapischdl,
wa_return LIKE bapiret2,
salesdocument LIKE bapivbeln-vbeln,
IS_OK TYPE C.
CONTROLS TABSTR TYPE TABSTRIP.
DATA: ok_code TYPE syst-ucomm,
save_ok LIKE ok_code.
"DATA number TYPE sy-dynnr. "blättern SAP APPLIC
TABSTR-activetab = 'TAB1'.
"number = '0120'. "blättern SAP APPLIC
Call SCREEN 100.
" Zuweisung
wa_order_header-doc_type = aufart.
wa_order_header-sales_org = vkorg.
wa_order_header-distr_chan = vkweg.
wa_order_header-division = sparte.
wa_order_header-purch_no_c = 'AUS33'.
wa_order_header-purch_date = sy-datum.
wa_order_partners-partn_role = 'AG'.
wa_order_partners-partn_numb = '0000001400'.
wa_order_items_in-material = 'R-F100'.
APPEND wa_order_items_in TO it_order_items_in.
wa_order_schedules_in-req_qty = '1'.
wa_order_schedules_in-ITM_NUMBER = '000010'.
APPEND wa_order_schedules_in TO it_order_schedules_in.
"definierte Zeile in interne Tabelle schreiben
APPEND wa_order_partners TO it_order_partners.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'SCREEN_100'.
ENDMODULE.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE user_command INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'B_TEST'.
field = 'test'.
"WHEN 'ADD'. " siehe ADD weiter unten
"
WHEN OTHERS.
field = save_ok.
ENDCASE.
ENDMODULE.
MODULE USER_COMMAND_0120.
save_ok = ok_code.
CLEAR ok_code.
" Bestätigungs-Button - ruft BAPI_SALESORDER auf, um Auftrag anzulegen
IF save_ok = 'TEST'.
field = 'test'.
"Aufruf von bapi salesorder
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = wa_order_header
IMPORTING
salesdocument = salesdocument
TABLES
return = it_return
order_items_in = it_order_items_in
order_partners = it_order_partners
order_schedules_in = it_order_schedules_in.
IS_OK = 'S'.
LOOP AT it_return into wa_return.
IF wa_return-TYPE <> 'S'.
Write: wa_return-message.
IS_OK = 'N'.
ENDIF.
ENDLOOP.
IF IS_OK eq 'S'.
WRITE: 'Der Verkaufsbeleg wird unter ', salesdocument, ' abgelegt' .
COMMIT WORK AND WAIT.
ENDIF.
ENDIF.
ENDMODULE.
|
Zeile 101 und 102:
Hab hier zum Test nur mal ein simples Textfeld gemacht, in dem bei Klick ein Text erscheinen soll.
Bei klick auf den Button sollte im Textfeld was drin stehen.
Das Feld bleibt allerdings leer und ich weiß nicht warum, im ScreenPainter sind die FunktionCodes richtig gesetzt.
Wär super, wenn mir hier jemand helfen könnte oder per ICQ (75202931)
DANKE