CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hi Experten
ich habe folgende aufgabe ich soll alle materialenmit bestimte MAterialart und Verkaufsorganisation 8100 und Vertibswe 81 lesen
und dann mit CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' diese soll mit denselben werten in Verkaufsorganisation 8200 und Vertibswe 82 angelegt werden.
Leider habe ich kein Ahnung , wie 'BAPI_MATERIAL_SAVEDATA' funktioniert.
Kann mir jemanden Helfen?
Hier ist mein Code:


REPORT
*-------------------------------------------------*

CONSTANTS vkorg_tab TYPE p VALUE '8100'.
CONSTANTS vtweg_tab TYPE p VALUE '81'.
CONSTANTS mtart_tab TYPE string VALUE 'ZPRS'.

TYPES:
BEGIN OF t_tab,
matnr TYPE matnr,
mtart TYPE mtart,
meins TYPE meins,
zzmatnr TYPE zzmatnr,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
sktof TYPE sktof,
lvorm TYPE lvorm,
END OF t_tab.

DATA:
it_join TYPE t_tab,
it_tab TYPE TABLE OF t_tab WITH KEY matnr.


*--------------------------------------------------------
START-OF-SELECTION.
*----------it_tab----------------------------------------

SELECT
mara~matnr
mara~mtart
mara~meins
mara~zzmatnr
mvke~vkorg
mvke~vtweg
mvke~sktof
mara~lvorm


FROM mara

JOIN mvke ON mara~matnr = mvke~matnr

INTO CORRESPONDING FIELDS OF TABLE it_tab
WHERE mara~mtart = mtart_tab
AND mvke~vkorg = vkorg_tab
AND mvke~vtweg = vtweg_tab
AND mara~lvorm = 'X'.

SORT it_tab BY matnr.
DELETE ADJACENT DUPLICATES FROM it_tab.
DATA: alv TYPE REF TO cl_salv_table.

--------------------------------

***-------------------------- ***
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING
headdata = headdata
salesdata = salesdata
salesdatax = salesdatax
TABLES
MATERIALDESCRIPTION = it_tab.

WRITE:/ 'ok'.


Danke

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


Re: CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

Beitrag von MrBojangles (Specialist / 367 / 3 / 30 ) »
Hallo Autohandel...?

der Baustein ist ja für SAP-Verhältnisse recht gut dokumentiert. Woran hakt's denn genau?

Da es das Material in einer anderen Vertriebssicht schon gibt, muss Du in der Struktur HEADERDATA nur die Materialnummer und SALES_VIEW = 'X' mitgeben.
Dann in Strukrur SALESDATAX ein X für jedes zu kopierende Feld (vorher im Mat-Stamm gucken, welche Felder vewendet werden) und schließlich in SALESDATA die zuvor ausgelesenen Daten aus der MVKE reinschieben. COMMIT WORK nicht vergessen und dann sollte es eigentlich klappen.
Weiterhin viel Freude mit SAP...
Cheers
MrB.

Re: CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
MrBojangles hat geschrieben:Hallo Autohandel...?

der Baustein ist ja für SAP-Verhältnisse recht gut dokumentiert. Woran hakt's denn genau?

Da es das Material in einer anderen Vertriebssicht schon gibt, muss Du in der Struktur HEADERDATA nur die Materialnummer und SALES_VIEW = 'X' mitgeben.
Dann in Strukrur SALESDATAX ein X für jedes zu kopierende Feld (vorher im Mat-Stamm gucken, welche Felder vewendet werden) und schließlich in SALESDATA die zuvor ausgelesenen Daten aus der MVKE reinschieben. COMMIT WORK nicht vergessen und dann sollte es eigentlich klappen.
Danke für Antwort,
ärlich zusagen, mache ich funktions ersten mal, ich verstehe die logik nicht.
ich soll ergendwo noch sagen, dass bei neue Materialsoll Vertriebsorganization und Vertiebsweg auf neue erzentzen soll? Schau mal bitte meine code, und wenn es möglich , kann stu du mir meine code weiter bearbeiten mit bischin mehr Kommentar.
Danke

REPORT zzmm_be_pmatn_anlegen.


*-------------------------------------------------*

CONSTANTS vkorg_tab TYPE p VALUE '8100'.
CONSTANTS vtweg_tab TYPE p VALUE '81'.
CONSTANTS mtart_tab TYPE string VALUE 'ZPRS'.

TYPES:
BEGIN OF t_tab,
matnr TYPE matnr,
mtart TYPE mtart,
*MAKTX TYPE MAKTX,
meins TYPE meins,
zzmatnr TYPE zzmatnr,
*ZZIDTNR TYPE ZZIDTNR,
*ZZKOVOT TYPE ZZKOVOT,
*ZZSETA TYPE ZZSETA,
*ZZANTO TYPE ZZANTO,
*ZZVPEI TYPE ZZVPEI,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
sktof TYPE sktof,
*VKORG_BEZ TYPE VKORG_BEZ,
*SPRAS TYPE SPRAS,
lvorm TYPE lvorm,
END OF t_tab.

DATA:
it_join TYPE t_tab,
* wa_tab TYPE t_tab,
it_tab TYPE TABLE OF t_tab WITH KEY matnr.


*--------------------------------------------------------
START-OF-SELECTION.
*----------it_tab----------------------------------------

SELECT
mara~matnr
mara~mtart
*MAKT~MAKTX
mara~meins
mara~zzmatnr
*mara~ZZIDTNR
*mara~ZZKOVOT
*mara~ZZSETA
*mara~ZZANTO
*mara~ZZVPEI
mvke~vkorg
mvke~vtweg
mvke~sktof
*makt~SPRAS
mara~lvorm
*RMMG1_BEZ~VKORG_BEZ



FROM mara

JOIN mvke ON mara~matnr = mvke~matnr


INTO CORRESPONDING FIELDS OF TABLE it_tab
WHERE mara~mtart = mtart_tab
AND mvke~vkorg = vkorg_tab
AND mvke~vtweg = vtweg_tab
AND mara~lvorm = 'X'.

SORT it_tab BY matnr.
DELETE ADJACENT DUPLICATES FROM it_tab.
DATA: alv TYPE REF TO cl_salv_table.

*--------------------------------
DATA:
* Kopfdaten
gw_headdata TYPE bapimathead,
gw_salesdata TYPE bapi_mvke,
gw_salesdatax TYPE bapi_mvkex,
* Verkaufsotganization
gw_verkaufsotganization TYPE bapi_mvke,
* Vertiebsweg
gw_vertiebsweg TYPE bapi_mvke,

* Fehlertabelle
gw_return TYPE bapiret2,
* Fehlertext
g_message TYPE bapiret2-message.

gw_verkaufsotganization = '8200'.
gw_vertiebsweg = '82'.
***-------------------------- ***
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING
headdata = gw_headdata
salesdata = gw_salesdata
salesdatax = gw_salesdatax
TABLES


COMMIT WORK.



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.

Re: CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

Beitrag von black_adept (Top Expert / 4080 / 125 / 934 ) »
Hallo autohandel7,

warum löst ihr das nicht im SAP-Standard mit Transaktion MM17.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
black_adept hat geschrieben:Hallo autohandel7,

warum löst ihr das nicht im SAP-Standard mit Transaktion MM17.
Danke für Antwort,
es ist nur erste teil vom Aufgabe, dann soll ich noch Konditionen und Konditionenart kopieren, und mein Shef wollte, dass ich alles im programm geschriben habe
Ich habe schon bischen meine code geändert, aberbei integration von BAPI, verliere ich Logik, ich habe eine intrene tabelle mit alle für mich vihtige Materialen bekommen,
dann diese soll mit denselben werten in Verkaufsorganisation 8200 (Staat 8100) und Vertibswe 82(Staat 81) angelegt werden.
Dass heist ich brauche headdata, und beides sale, alles anderes brauche ich nicht.
Und wie soll ich weitermachen habe ich kein ahnung. Danke

*-------------------------------------------------*

CONSTANTS vkorg_tab TYPE p VALUE '8100'.
CONSTANTS vtweg_tab TYPE p VALUE '81'.
CONSTANTS mtart_tab TYPE string VALUE 'ZPRS'.

TYPES:
BEGIN OF t_tab,
matnr TYPE matnr,
mtart TYPE mtart,
*MAKTX TYPE MAKTX,
meins TYPE meins,
zzmatnr TYPE zzmatnr,
*ZZIDTNR TYPE ZZIDTNR,
*ZZKOVOT TYPE ZZKOVOT,
*ZZSETA TYPE ZZSETA,
*ZZANTO TYPE ZZANTO,
*ZZVPEI TYPE ZZVPEI,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
sktof TYPE sktof,
*VKORG_BEZ TYPE VKORG_BEZ,
*SPRAS TYPE SPRAS,
lvorm TYPE lvorm,
END OF t_tab.

DATA:
it_join TYPE t_tab,
* wa_tab TYPE t_tab,
it_tab TYPE TABLE OF t_tab WITH KEY matnr.


*--------------------------------------------------------
START-OF-SELECTION.
*----------it_tab----------------------------------------

SELECT
mara~matnr
mara~mtart
*MAKT~MAKTX
mara~meins
mara~zzmatnr
*mara~ZZIDTNR
*mara~ZZKOVOT
*mara~ZZSETA
*mara~ZZANTO
*mara~ZZVPEI
mvke~vkorg
mvke~vtweg
mvke~sktof
*makt~SPRAS
mara~lvorm
*RMMG1_BEZ~VKORG_BEZ



FROM mara

JOIN mvke ON mara~matnr = mvke~matnr


INTO CORRESPONDING FIELDS OF TABLE it_tab
WHERE mara~mtart = mtart_tab
AND mvke~vkorg = vkorg_tab
AND mvke~vtweg = vtweg_tab.
* AND mara~lvorm = 'X'.

SORT it_tab BY matnr.
DELETE ADJACENT DUPLICATES FROM it_tab.


*--------------------------------
DATA:
* Kopfdaten
gw_headdata TYPE bapimathead,
wa_salesdata TYPE bapi_mvke,
wa_salesdatax TYPE bapi_mvkex,
* Verkaufsotganization
wa_tab-vkorg TYPE bapi_mvke,
gt_tab-vkorg TYPE bapi_mvke,
* Vertiebsweg
wa_tab-vtweg TYPE bapi_mvke,
gt_tab-vtweg TYPE bapi_mvke,

* Fehlertabelle
gw_return TYPE bapiret2,
* Fehlertext
g_message TYPE bapiret2-message,
SALESDATA TYPE BAPI_MVKE,
SALESDATAX TYPE BAPI_MVKEX.


wa_tab-vkorg = '8200'. "vkorg_tab'.
wa_tab-vtweg = '82'.
APPEND wa_tab-vkorg to gt_tab-vkorg.
APPEND wa_tab-vtweg to gt_tab-vtweg.
* SALES_VIEW = 'X'.
***-------------------------- ***
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING
headdata = gw_headdata

IMPORTING
return = gw_return
TABLES

MATERIALDESCRIPTION = wa_tab-vtweg.


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.

Re: CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
black_adept hat geschrieben:Hallo autohandel7,

warum löst ihr das nicht im SAP-Standard mit Transaktion MM17.
Hi black_adept ,
ich habe schon fast geshaft, etwas stimt nicht bei aufruf BApi und zwar hier:

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
*
EXPORTING
headdata = BAPI_HEAD
* SALESDATA = BAPI_MVKEx
* SALESDATAX = BAPI_MVKEX
Schreibt feldlangen stimtnicht.

Hier ist mein code:
Danke im Vorraus
*-------------------------------------------------*

CONSTANTS vkorg_tab TYPE p VALUE '8100'.
CONSTANTS vtweg_tab TYPE p VALUE '81'.
CONSTANTS mtart_tab TYPE string VALUE 'ZPRS'.

TYPES:
BEGIN OF t_tab,
matnr TYPE matnr,
mtart TYPE mtart,
*MAKTX TYPE MAKTX,
meins TYPE meins,
zzmatnr TYPE zzmatnr,
*ZZIDTNR TYPE ZZIDTNR,
*ZZKOVOT TYPE ZZKOVOT,
*ZZSETA TYPE ZZSETA,
*ZZANTO TYPE ZZANTO,
*ZZVPEI TYPE ZZVPEI,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
sktof TYPE sktof,
*VKORG_BEZ TYPE VKORG_BEZ,
*SPRAS TYPE SPRAS,
lvorm TYPE lvorm,
END OF t_tab.

DATA:
it_join TYPE t_tab,
* p_matnr TYPE matnr,
wa_tab TYPE t_tab,
it_tab TYPE TABLE OF t_tab WITH KEY matnr.

PARAMETERS: p_matnr LIKE mseg-matnr.
*--------------------------------------------------------
START-OF-SELECTION.
*----------it_tab----------------------------------------

SELECT
mara~matnr
mara~mtart
*MAKT~MAKTX
mara~meins
mara~zzmatnr
*mara~ZZIDTNR
*mara~ZZKOVOT
*mara~ZZSETA
*mara~ZZANTO
*mara~ZZVPEI
mvke~vkorg
mvke~vtweg
mvke~sktof
*makt~SPRAS
mara~lvorm
*RMMG1_BEZ~VKORG_BEZ



FROM mara

JOIN mvke ON mara~matnr = mvke~matnr


INTO CORRESPONDING FIELDS OF TABLE it_tab
WHERE
mara~mtart = mtart_tab
and mara~matnr = p_matnr "
AND mvke~vkorg = vkorg_tab
AND mvke~vtweg = vtweg_tab.
* AND mara~lvorm = 'X'.

SORT it_tab BY matnr.
DELETE ADJACENT DUPLICATES FROM it_tab.


*&---------------------------------------------------------------------*
*& Form UPDATE_MM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*FORM UPDATE_MM.
Data: BAPI_HEAD TYPE bapimathead,
BAPI_MARA1 TYPE BAPI_MARA,
BAPI_Vertrieb TYPE BAPI_MVKE,
BAPI_MVKEX TYPE BAPI_MVKE,
SALESDATA TYPE BAPI_MVKE,
SALESDATAx TYPE BAPI_MVKE,
tabvkorg TYPE c LENGTH 4 VALUE '8200',
tabvtweg TYPE c LENGTH 2 VALUE '82'.

LOOP AT it_tab into wa_tab.
* Header
BAPI_HEAD-MATERIAL = wa_tab-MATNR.
BAPI_HEAD-MATL_TYPE = wa_tab-mtart.
*CLIENTDATA
BAPI_MARA1-BASE_UOM = wa_tab-meins.
* zzmatnr
* SALESDATA
BAPI_Vertrieb-SALES_ORG = tabvkorg.
BAPI_Vertrieb-DISTR_CHAN = tabvtweg. "wa_tab-vtweg.
BAPI_Vertrieb-CASH_DISC = wa_tab-sktof.
SALESDATAx = 'X'.

ENDLOOP.
WRITE:/ BAPI_HEAD, / BAPI_Vertrieb-SALES_ORG, / BAPI_Vertrieb-DISTR_CHAN.



*ENDFORM.
**
**--------------------------------
DATA:

** Fehlertabelle
gw_return TYPE bapiret2,
** Fehlertext
g_message TYPE bapiret2-message.


****-------------------------- ***
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
*
EXPORTING
headdata = BAPI_HEAD
* SALESDATA = BAPI_MVKEx
SALESDATAX = BAPI_MVKEX

IMPORTING
return = gw_return
TABLES
*
MATERIALDESCRIPTION = it_tab.


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.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2504
Views
CALL FUNCTION und CALL TRANSACTION
von phil1982 » 10.08.2007 11:00 • Verfasst in ABAP® für Anfänger
2
Antw.
2965
Views
Call Function in Smartform
von Shelly » 21.02.2005 14:41 • Verfasst in Development Related
0
Antw.
2639
Views
CALL FUNCTION 'CSAP_MAT_BOM_CREATE'
von Neugieriger » 13.12.2007 13:19 • Verfasst in ABAP® Core
2
Antw.
2186
Views
Remote Function Call
von km216 » 03.03.2011 10:31 • Verfasst in ABAP® Core
3
Antw.
741
Views
CALL FUNCTION 'FKK_BELEG_WRITE_CHANGEDOC'
von L0w-RiDer » 03.05.2019 08:47 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1579
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8188