Du mußt einen Änderungsbeleg schreiben, dies geschiet nicht automatisch.unwissende hat geschrieben:Hat jemand schon mal das selbe Problem oder kann mir weiterhelfen wie ich die Änderungen für Textfelder dokumentieren kann!
Nur um Missverständnissen vorzubeugen: Der FuBa MATERIAL_WRITE_DOCUMENT ändert nicht den Vertriebstext (dies wie programmiert mit SAVE_TEXT realisieren), sondern er schreibt einen Änderungsbeleges vom Typ MATERIAL. Der Funktionsbaustein ist zu diesem Änderungsbeleg generiert, deshalb gibt es auch keine Doku.unwissende hat geschrieben:Wie muss ich den Funktionsbaustein MATERIAL_WRITE_DOCUMENT befüllen wenn ich nur den Vertriebstext ändern will?
Code: Alles auswählen.
* Testprogramm: Änderungsbelegerstellung für MATERIAL, nur Vertriebstext
REPORT z_test_material_write_document.
*um die Materialnr an den Änderbelge zu übergeben
DATA: objectid TYPE cdhdr-objectid.
* um die Textänderungen an den Änderungsbele zu übergeben
DATA: icdtxt_material LIKE cdtxt OCCURS 0,
icdtxt_material_line LIKE cdtxt.
* Dummytabellen für FuBa-Aufruf, werden alle leer übergeben!
DATA: n_mara LIKE mara, o_mara LIKE mara,
n_marc LIKE marc, o_marc LIKE marc,
n_mare LIKE mare, o_mare LIKE mare,
n_mard LIKE mard, o_mard LIKE mard,
n_mbew LIKE mbew, o_mbew LIKE mbew,
n_mfhm LIKE mfhm, o_mfhm LIKE mfhm,
n_mlgn LIKE mlgn, o_mlgn LIKE mlgn,
n_mlgt LIKE mlgt, o_mlgt LIKE mlgt,
n_mpgd LIKE mpgd, o_mpgd LIKE mpgd,
n_mpop LIKE mpop, o_mpop LIKE mpop,
n_mvke LIKE mvke, o_mvke LIKE mvke,
xdgesv TYPE TABLE OF xdgesv,
ydgesv TYPE TABLE OF xdgesv,
xdmaex TYPE TABLE OF xdmaex,
ydmaex TYPE TABLE OF xdmaex,
xdmakt TYPE TABLE OF xdmakt,
ydmakt TYPE TABLE OF xdmakt,
xdmape TYPE TABLE OF xdmape,
ydmape TYPE TABLE OF xdmape,
xdmarm TYPE TABLE OF xdmarm,
ydmarm TYPE TABLE OF xdmarm,
xdmean TYPE TABLE OF xdmean,
ydmean TYPE TABLE OF xdmean,
xdmkal TYPE TABLE OF xdmkal,
ydmkal TYPE TABLE OF xdmkal,
xdmlan TYPE TABLE OF xdmlan,
ydmlan TYPE TABLE OF xdmlan,
xdprow TYPE TABLE OF xdprow,
ydprow TYPE TABLE OF xdprow,
xdqmat TYPE TABLE OF xdqmat,
ydqmat TYPE TABLE OF xdqmat,
xdungv TYPE TABLE OF xdungv,
ydungv TYPE TABLE OF xdungv.
* Zum testen für verschiedene Materialien
PARAMETERS: p_matnr TYPE matnr,
p_vkorg TYPE vkorg DEFAULT '0001',
p_vtweg TYPE vtweg DEFAULT '02'.
START-OF-SELECTION.
* Änderungsstruktur für Text aufbauen:
** TEXT-ID erzeugen
CONCATENATE sy-mandt "Mandant
p_matnr "Material
p_vkorg "Verkaufsorganisation
p_vtweg "Vertriebsweg
INTO icdtxt_material_line-teilobjid.
icdtxt_material_line-textart = '0001'. "Vertriebstext
icdtxt_material_line-textspr = 'D'. "Sprache
icdtxt_material_line-updkz = 'U'. " I = Insert, U = Update, D = Delete
APPEND icdtxt_material_line TO icdtxt_material.
* Matnr umformatieren
objectid = p_matnr.
* FuBa aufruf
CALL FUNCTION 'MATERIAL_WRITE_DOCUMENT'
EXPORTING
objectid = objectid "Material welches geändert wird
tcode = 'MM02' "Aus welcher Transaktion wird geändert
utime = sy-uzeit "Änderungszeit
udate = sy-datum "Änderungsdatum
username = sy-uname "Änderer
planned_change_number = ' '
object_change_indicator = 'U' "Es findet ein Update des Materials statt
planned_or_real_changes = 'R' "direkte Änderung
no_change_pointers = ' '
upd_icdtxt_material = 'X' "Nur der Text wird geändert
upd_dgesv = ' '
upd_dmaex = ' '
upd_dmakt = ' '
upd_dmape = ' '
upd_dmarm = ' '
upd_dmean = ' '
upd_dmkal = ' '
upd_dmlan = ' '
upd_dprow = ' '
upd_dqmat = ' '
upd_dungv = ' '
n_mara = n_mara
o_mara = o_mara
upd_mara = ' '
n_marc = n_marc
o_marc = o_marc
n_mare = n_mare
o_mare = o_mare
upd_marc = ' '
n_mard = n_mard
o_mard = o_mard
upd_mard = ' '
n_mbew = n_mbew
o_mbew = o_mbew
upd_mbew = ' '
n_mfhm = n_mfhm
o_mfhm = o_mfhm
upd_mfhm = ' '
n_mlgn = n_mlgn
o_mlgn = o_mlgn
upd_mlgn = ' '
n_mlgt = n_mlgt
o_mlgt = o_mlgt
upd_mlgt = ' '
n_mpgd = n_mpgd
o_mpgd = o_mpgd
upd_mpgd = ' '
n_mpop = n_mpop
o_mpop = o_mpop
upd_mpop = ' '
n_mvke = n_mvke
o_mvke = o_mvke
upd_mvke = ' '
TABLES
icdtxt_material = icdtxt_material
xdgesv = xdgesv
ydgesv = ydgesv
xdmaex = xdmaex
ydmaex = ydmaex
xdmakt = xdmakt
ydmakt = ydmakt
xdmape = xdmape
ydmape = ydmape
xdmarm = xdmarm
ydmarm = ydmarm
xdmean = xdmean
ydmean = ydmean
xdmkal = xdmkal
ydmkal = ydmkal
xdmlan = xdmlan
ydmlan = ydmlan
xdprow = xdprow
ydprow = ydprow
xdqmat = xdqmat
ydqmat = ydqmat
xdungv = xdungv
ydungv = ydungv.