Massenänderung Materialtext

Alles Rund um SAP®.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Massenänderung Materialtext

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Hallo zusammen,

ich habe eine Frage an euch, an der ich langsam verzweifel.

Ich habe eine Excel Liste mit Materialnummern und deutschen und englischen Materialtexten. Diese müssen alle in SAP eingespielt werden (50.000 Datensätze).

Wie kann ich dies am besten realisieren? Das Problem ist bei z.B. Batch Input: Ich erstelle eine Aufzeichnung in der MM02, gebe die Materialnummer ein, Zusatzdaten. Dort gibt es auf jeden Fall eine deutsche Bezeichnung, aber nur bei manchen Materialnummern eine englische. d.h. manche müssten geändert, andere englische Bezeichnungen komplett neu angelegt werden. Auch steht der deutsche Datensatz nicht immer an erster Stelle, sondern ist manchmal mit dem englischen vertauscht. Müsste also der Datensatz neu angelegt werden spielt mir meine Batch Input Datei zwar die englische Bezeichnung ein, aber nicht das Kürzel "EN" davor. Oder wäre dies rein theoretisch irgendwie möglich und ich weiß nur nicht wie?

Habt ihr eine Idee für mich, wie ich diese Datensätze korrekt einspielen kann?

Viele Grüße

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


Re: Massenänderung Materialtext

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Moin,

Zum Ändern von Materialien gibt es auch sehr schöne Funktionsbausteine bzw. BAPIs.
Der Funktionsbaustein MATERIAL_MAINTAIN_DARK ist sehr komplex und für Anfänger sehr schwer zu durchblicken, aber der kann das.
Etwas leichter und besser zu benutzen ist der BAPI_MATERIAL_SAVEDATA. Mit dem kannst du jeden Text zu jedem Material einzeln anlegen und/oder ändern. Da brauchst du kein Batch Input. Bastel dir ein Programm, welches deine Tabelle mit den 50.000 Datensätzen liest und dann jeden Datensatz an den BAPI übergibt und der BAPI ändert oder legt dir den Text dann an. Du kannst natürlich auch alle Texte zu einem Material erstmal in einer gesonderten Tabelle erfassen und dann den BAPI pro Material nur einmal mit allen Texten füllen und aufrufen.
Gruß,
der Matze

Re: Massenänderung Materialtext

Beitrag von Thomas17 (Specialist / 157 / 17 / 14 ) »
Moin,

falls Du nicht programmieren willst und es nur eine einmalige Sache ist folgender Vorschlag:
Leg in der LSMW ein neues Projekt an,
mache ein Aufzeichnung für die MM02, wähle nur die Grunddaten, ändere den Text.
--> Über die Excel, die Du einspielst änderst Du jetzt nur den deutschen Text.

Dann meldest Du Dich im System mit Sprache EN an und liest in der LSMW nun die englischen Texte ein.
--> nun werden die englischen Texte gepflegt.

Grüße

Re: Massenänderung Materialtext

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Hier ein Codingmuster: http://www.abapforum.com/forum/viewtopi ... 161#p64161
(ganz am Ende) für BAPI_MATERIAL_SAVEDATA.
oder

Code: Alles auswählen.

REPORT  ztest31                                                     .

DATA headdata   LIKE   bapimathead.
DATA return   LIKE   bapiret2.

DATA salesdata LIKE   bapi_mvke.
DATA salesdatax LIKE   bapi_mvkex.
DATA plantdata   LIKE   bapi_marc.
DATA plantdatax   LIKE   bapi_marcx.
DATA storagelocationdata   LIKE   bapi_mard.
DATA storagelocationdatax   LIKE   bapi_mardx.
DATA valuationdata  LIKE bapi_mbew.
DATA valuationdatax LIKE bapi_mbewx.
DATA clientdata TYPE bapi_mara.
DATA clientdatax TYPE bapi_marax.
DATA forecastparameters TYPE bapi_mpop.
DATA forecastparametersx TYPE bapi_mpopx.

DATA taxclassifications TYPE TABLE OF bapi_mlan WITH HEADER LINE.
DATA materiallongtext TYPE TABLE OF bapi_mltx WITH HEADER LINE.
DATA materialdescr TYPE TABLE OF bapi_makt WITH HEADER LINE.

DATA unitsofmeasure   LIKE   bapi_marm.
DATA unitsofmeasurex   LIKE   bapi_marmx.
DATA internationalartnos   LIKE   bapi_mean.
DATA returnmessages   LIKE   bapi_matreturn2 OCCURS 0.
DATA prtdata   LIKE   bapi_mfhm.
DATA prtdatax   LIKE   bapi_mfhmx.
DATA extensionin   LIKE   bapiparex.
DATA extensioninx   LIKE   bapiparexx.

DATA tname TYPE tdobname.
DATA:  e_rol_return           LIKE bapiret2.
DATA:  e_com_return           LIKE bapiret2.

PARAMETERS: material TYPE mara-matnr DEFAULT '000000000000001002'.

PERFORM xtendmat.

RETURN.

*&--------------------------------------------------------------------*
*&      Form  Xtendmat
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM xtendmat.



* KOPF Daten (Sichten) ************************************************
  headdata-material = material.
  headdata-matl_type = 'HAWA'.
  headdata-ind_sector ='M'.
  headdata-sales_view = 'X'.
  headdata-mrp_view = 'X'.
  headdata-storage_view = 'X'.
  headdata-account_view  = 'X'.
  headdata-purchase_view = 'X'.
  headdata-quality_view = 'X'.

* Prognosedaten *****************************************************
forecastparameters-PLANT = '0050'.

forecastparametersx-PLANT = '0050'.
* MARA Basisdaten *****************************************************
  clientdata-base_uom = 'ST'.
  clientdata-base_uom_iso = 'ST'.
*CLIENTDATA-PO_UNIT
*CLIENTDATA-PO_UNIT_ISO
  clientdata-matl_group = '01'.



  clientdatax-base_uom = 'X'.
  clientdatax-base_uom_iso = 'X'.
  clientdatax-matl_group = 'X'.
* Verkaufsdaten *******************************************************
  salesdata-sales_org = '0001'.
  salesdata-distr_chan = '01'.
  salesdata-delyg_plnt = '0050'.
  salesdata-item_cat = 'NORM'.
  salesdata-matl_grp_4 = 'E10'.
  salesdata-matl_stats = '1'.  " Statistikgruppe Material

  salesdatax-sales_org = '0001'.
  salesdatax-distr_chan = '01'.
  salesdatax-delyg_plnt = 'X'.
  salesdatax-item_cat = 'X'.
  salesdatax-matl_grp_4 = 'X'.
  salesdatax-matl_stats = 'X'. "Statistikgruppe Material

* Werksdaten *********************************************************
  plantdata-plant = '0050'.      " Werk
  plantdata-iss_st_loc = '0050'. " Lagerort
  plantdata-sloc_exprc = '0050'." Vorschlagslagerort f Fremdbeschaffung
  plantdata-mrp_type = 'ND'.     " Dispositionsmerkmal
  plantdata-pur_group = '001'.   " EK gruppe
  plantdata-loadinggrp = '0001'. " Ladegruppe
  plantdata-sourcelist = space.  " Kennzeichen Orderbuchpflicht
  plantdata-auto_p_ord = space.  " Kz: Automatische Bestellung erlaubt
  plantdata-plnd_delry = '10'.   " Planlieferzeit
  plantdata-profit_ctr = 'SAM'.  "Profit Center

  plantdatax-plant = '0050'.     " Werk
  plantdatax-iss_st_loc = 'X'.   " Lagerort
  plantdatax-sloc_exprc = 'X'.   " Vorschlagslort für Fremdbeschaffung
  plantdatax-mrp_type = 'X'.     " Dispositionsmerkmal
  plantdatax-pur_group = 'X'.    " EK gruppe
  plantdatax-loadinggrp = 'X'.   " Ladegruppe
  plantdatax-sourcelist = 'X'.  " Kennzeichen Orderbuchpflicht
  plantdatax-auto_p_ord = 'X'.  " Kz: Automatische Bestellung erlaubt
  plantdatax-plnd_delry = 'X'.   " Planlieferzeit
  plantdatax-profit_ctr = 'X'.   "Profit Center

* Lagerort ***********************************************************
  storagelocationdata-plant = '0050'.
  storagelocationdata-stge_loc = '0050'.

  storagelocationdatax-plant =    '0050'.
  storagelocationdatax-stge_loc = '0050'.

* Bewertungsdaten ****************************************************
  valuationdata-val_area = '0050'. "Bewertungskreis
  valuationdata-price_ctrl = 'V'.  "Preissteuerungskennzeichen
*VALUATIONDATA-STD_PRICE
  valuationdata-val_class = '3040'.

  valuationdatax-val_area = '0050'. "Bewertungskreis
  valuationdatax-price_ctrl = 'X'.  "Preissteuerungskennzeichen
*VALUATIONDATA-STD_PRICE
  valuationdatax-val_class = 'X'.

*** TABELLEN >
* Steuerklassifikation MLAN ******************************************
  taxclassifications-depcountry = 'DE'.
  taxclassifications-tax_type_1 = 'MWST'.
  taxclassifications-taxclass_1 = '1'.
  taxclassifications-tax_ind = space.
  APPEND taxclassifications.

* Vertriebslangtext
*000000000271132151 0001 01
  CONCATENATE material '000101' INTO tname.
  materiallongtext-text_name = tname.
  materiallongtext-applobject = 'MVKE'.
  materiallongtext-text_id = '0001'.
  materiallongtext-langu = 'D'.
  materiallongtext-format_col = '*'.
  materiallongtext-text_line = 'Hier nun der Langtext'.
  APPEND materiallongtext.

* Materialkurztext(MAKT)
  materialdescr-langu = sy-langu.
*LANGU_ISO
  materialdescr-matl_desc = 'Abstinence in a material world'.
*materialdescr-DEL_FLAG =
  APPEND materialdescr.

  CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
    EXPORTING
     headdata                   = headdata
    clientdata                 = clientdata
    clientdatax                = clientdatax
     plantdata                  = plantdata
     plantdatax                 = plantdatax
*   FORECASTPARAMETERS         =
*   FORECASTPARAMETERSX        =
*   PLANNINGDATA               =
*   PLANNINGDATAX              =
     storagelocationdata        = storagelocationdata
     storagelocationdatax       = storagelocationdatax
     valuationdata              = valuationdata
     valuationdatax             = valuationdatax
*   WAREHOUSENUMBERDATA        =
*   WAREHOUSENUMBERDATAX       =
     salesdata                  = salesdata
     salesdatax                 = salesdatax
*   STORAGETYPEDATA            =
*   STORAGETYPEDATAX           =
*   FLAG_ONLINE                = ' '
*   FLAG_CAD_CALL              = ' '
*   NO_DEQUEUE                 = ' '
   IMPORTING
     return                     = return
   TABLES
      materialdescription        = materialdescr[]
*   UNITSOFMEASURE             =
*   UNITSOFMEASUREX            =
*   INTERNATIONALARTNOS        =
      materiallongtext           = materiallongtext[]
      taxclassifications         = taxclassifications[]
      returnmessages             = returnmessages[]
*   PRTDATA                    =
*   PRTDATAX                   =
*   EXTENSIONIN                =
*   EXTENSIONINX               =
            .

  IF return-type = 'E' OR return-type = 'A'.
    WRITE:/ 'Fehler Bapi'.
    WRITE:/ 'Type       ', return-type.
    WRITE:/ 'ID         ', return-id.
    WRITE:/ 'NUMBER     ', return-number.
    WRITE:/ return-message.
    WRITE:/ '-----------------------------------------'.
  ENDIF.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait   = 'X'
    IMPORTING
      return = e_com_return.

  IF e_com_return-type NE space.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
      IMPORTING
        return = e_rol_return.
    WRITE:/ 'Rollback', e_rol_return-type.
  ENDIF.

ENDFORM.                    "Xtendmat
..ist mehr als Du möchtest, daher entspechend das Coding reduzieren

lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5527
Views
Massenänderung Belegkopf
von bungalow-bill » 21.04.2008 16:15 • Verfasst in Financials
2
Antw.
2227
Views
Massenänderung des Mitarbeiterkreises
von ginotico » 15.04.2006 13:10 • Verfasst in Human Resources
0
Antw.
1451
Views
Massenänderung von Rabattkonditionen
von fbo » 02.07.2010 12:18 • Verfasst in Sales and Distribution
1
Antw.
3813
Views
Massenänderung Initialpasswort in 46B ?
von Matthias_L. » 11.09.2006 19:54 • Verfasst in Basis
3
Antw.
2644
Views
Massenänderung IT2006
von BlueMC » 22.04.2008 11:46 • Verfasst in Human Resources

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 17 Stunden von black_adept gelöst 23 / 3811
User Exit EXIT_RQCPRM10_001
vor 18 Stunden von a-dead-trousers 2 / 321
Trennen Strasse und Hausnummer
Gestern von payten 13 / 10690
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1372

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.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 17 Stunden von black_adept gelöst 23 / 3811
User Exit EXIT_RQCPRM10_001
vor 18 Stunden von a-dead-trousers 2 / 321
Trennen Strasse und Hausnummer
Gestern von payten 13 / 10690
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1372

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2904
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9499