Code: Alles auswählen.
data dat like BAPIMATHEAD-MATERIAL.
dat = 'MAT'.
data itext1 TYPE BAPI_MAKT occurs 0 with header line.
itext1-MATL_DESC = 'aaaaaa'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = dat
TABLES
MATERIALDESCRIPTION = itext1
.
Code: Alles auswählen.
* Du definierst dir ein Feld des Types BAPIMATHEAD-MATERIAL
* Du brauchst aber die ganze Struktur
* Falsch:
*data dat like BAPIMATHEAD-MATERIAL.
*dat = 'MAT'.
*Richtig:
data dat type BAPIMATHEAD.
dat-material = 'MAT'.
* Lies bitte einmal die Hilfe zum Parameter materialdescription,
* bzw. schau dir die Strucktur im Dict an
* du mußt noch mehr mitgeben, so wird das nix
data itext1 TYPE BAPI_MAKT occurs 0 with header line.
itext1-MATL_DESC = 'aaaaaa'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = dat
* Wo ist dein Fehlerhandling?
IMPORTING
return = ....
TABLES
MATERIALDESCRIPTION = itext1 .
* Fehlerhandling
* BAPIs commiten in der Regel nicht, das sollte das Programm expliziet machen
Code: Alles auswählen.
data dat type BAPIMATHEAD.
dat-material = 'MAT'.
dat-basic_view = 'X'.
data itext1 TYPE BAPI_MAKT occurs 0 with header line.
itext1-MATL_DESC = 'aaaaaa'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = dat
TABLES
MATERIALDESCRIPTION = itext1.
commit work.
IF SY-SUBRC NE 0.
write:/ 'Es hat nicht geklappt !'.
endif.
Versuchs zu verstehen. Nicht einfach kopiren.bohne hat geschrieben:JHM kannst du mir bitte doch dein Demoprog zur Verfügung stellen?
Code: Alles auswählen.
DATA:
* Kopfdaten
gw_headdata TYPE bapimathead,
* Materialkurztext
gt_materialdescription TYPE TABLE OF bapi_makt,
gw_materialdescription TYPE bapi_makt,
* Fehlertabelle
gw_return TYPE bapiret2,
* Fehlertext
g_message TYPE bapiret2-message.
* Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_matnr TYPE mara-matnr,
p_maktx TYPE makt-maktx.
SELECTION-SCREEN END OF BLOCK b1.
*** Daten für Bapi zurecht machen
* Daten initialisieren
CLEAR: gw_headdata, gw_materialdescription, gw_return.
REFRESH: gt_materialdescription.
* Strukturen füllen
* Kopfdaten
gw_headdata-material = p_matnr.
* Materialkurztext
gw_materialdescription-langu = sy-langu.
gw_materialdescription-matl_desc = p_maktx.
APPEND gw_materialdescription TO gt_materialdescription.
* Material ändern
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = gw_headdata
IMPORTING
return = gw_return
TABLES
materialdescription = gt_materialdescription.
COMMIT WORK.
* Langtext besorgen
CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'
EXPORTING
id = gw_return-id
number = gw_return-number
textformat = 'ASC'
message_v1 = gw_return-message_v1
message_v2 = gw_return-message_v2
message_v3 = gw_return-message_v3
message_v4 = gw_return-message_v4
IMPORTING
message = g_message.
CASE gw_return-type.
WHEN 'S' OR 'I'.
FORMAT COLOR 5.
WRITE / g_message.
WHEN 'E' OR 'A'.
FORMAT COLOR 6.
WRITE / g_message.
WHEN 'W'.
FORMAT COLOR 3.
WRITE / g_message.
WHEN OTHERS.
FORMAT COLOR OFF.
WRITE / g_message.
ENDCASE.