Sie sind nicht angemeldet.

  • Anmelden

Lieber Besucher, herzlich willkommen bei: MastersForum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

20.11.2007, 23:53

SAP ABAP DYNPRO Frage/Hilfe

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 ;)
Jeder Mensch, der kein Ziel hat, ist dazu verdammt für die Ziele anderer zu arbeiten !

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Revolt« (20.11.2007, 23:57)