Material anlegen mit MAterial_Maintain_Dark

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
20 Beiträge • Seite 1 von 2 (current) Nächste
20 Beiträge Seite 1 von 2 (current) Nächste

Material anlegen mit MAterial_Maintain_Dark

Beitrag von nikibert (ForumUser / 78 / 4 / 0 ) »
Hallo zusammen,

leider gelingt es mir nicht mit dem Funktionsbaustein MAterial_Maintain_Dark ein Material (Roh oder NLAG) anzulegen, da ich es wahrscheinlich nicht schaffe, diesen korrekt aufzurufen. Mir fehlt schlichtweg die Materialnummer.
Testweise moechte ich nur die Grunddaten anlegen, leider verzweifle ich an dieser simplen Aufgabe.

Code: Alles auswählen.

    wa_mara-tcode = 'MM01'.
    wa_mara-tranc = 1.
    wa_mara-d_ind = 1.

*    wa_mara-matnr = '0'."lv_matnr.
    wa_mara-mtart = wa_data-mtart.
    wa_mara-bismt = wa_data-bismt.
    wa_mara-spart = p_spart.
    wa_mara-mbrsh = p_mbrsh.
    APPEND wa_mara TO it_mara.

*    wa_makt-matnr = '0'."lv_matnr.
    wa_makt-maktx = wa_data-maktx(40) .
    wa_makt-maktg = wa_makt-maktx.
    TRANSLATE wa_makt-maktg TO UPPER CASE.
    wa_makt-spras = 'EN'.
    wa_makt-tranc = 1.
    wa_makt-d_ind = 2.
    APPEND wa_makt TO it_makt.

    CALL FUNCTION 'MATERIAL_MAINTAIN_DARK'
      EXPORTING
        p_kz_no_warn               = 'N'
        kz_prf                          = 'I'
        kz_test                         = p_test
      TABLES
        amara_ueb                     = it_mara
        amakt_ueb                     = it_makt
        amfieldres                     = amfieldres
        amerrdat                       = amerrdat
   EXCEPTIONS
     kstatus_empty                   = 1
     tkstatus_empty                  = 2
     t130m_error                      = 3
     internal_error                   = 4
     too_many_errors               = 5
     update_error                    = 6
     error_propagate_header    = 7
     OTHERS                           = 8
              .
Es erscheint folgende Fehlermeldung: "Es wurde kein Kurztext übergeben" und glaubt mir, ich uebergeb einen. Dies wird wahrscheinlich an der fehlenden Materialnummer liegen.
Hat jemand eine Idee oder ein Beispiel wie es geloest werden kann?

Danke und Gruss
Nikibert

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


Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von JHM (Top Expert / 1201 / 1 / 197 ) »
vergiss es, man sollte lesen bevor man postet.
Gruß Hendrik

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von black_adept (Top Expert / 4116 / 129 / 951 ) »
Hallo nikibert,

1.) ersetze

Code: Alles auswählen.

    wa_makt-tranc = 1.
    wa_makt-d_ind = 2.
durch

Code: Alles auswählen.

    wa_makt-tranc = wa_mara-tranc.
    wa_makt-d_ind = wa_mara-d_ind.
2.) Füge die zu pflegenden Sichten hinzu

Code: Alles auswählen.

  wa_mara_ueb-pstat = 'K'.
3.) Falls das immer noch nicht klappt, so solltest du mal posten, was in der Rückgabetabelle amerrdat steht. Dort teilt dir der Baustein mit warum er etwas nicht tun möchte.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
servus nikibert,

nur mal interesse halber, warum den MAterial_Maintain_Dark und nicht BAPI_MATERIAL_SAVEDATA ?
gibt es einen bestimmten Grund ?

gruss
ratsnus
<:: XING-Gruppe Tricktresor::>

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von nikibert (ForumUser / 78 / 4 / 0 ) »
Hi,

nein, es gibt keinen wirklichen Grund, reine Gewohnheit bei Sichtanlagen und Massenaenderungen von Materialstaemmen.
Habe ich beim BAPI_MATERIAL_SAVEDATA denn nicht gleiches Problem?


Ich habe die Aenderungen soweit mal ausprobiert, brauchte kein Erfolg.
Die Tabelle AMERRDAT hat folgenden Inhalt:
TRANC: 0000000001
MATNR: 000000000000203461
MSGID: MG
MSGTY: E
MSGNO: 148
(Es wurde kein Kurztext übergeben)


Danke und Gruss.
nikibert

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von black_adept (Top Expert / 4116 / 129 / 951 ) »
Aber beim Aufruf ( Debugger nachschauen ) haben die amakt und amara auch in den Feldern: MATNR, TRANC, D_IND alle das selbe stehen? Und amara besteht aus genau einer Zeile und amakt auch?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von black_adept (Top Expert / 4116 / 129 / 951 ) »
ratsnus hat geschrieben:...

nur mal interesse halber, warum den MAterial_Maintain_Dark und nicht BAPI_MATERIAL_SAVEDATA ?
gibt es einen bestimmten Grund ?
Hi ratsnus,

ich verwende auch fast ausschließlich den material_maintain_dark. Und meine Gründe sind.
1.) Gewohnheit
2.) Ich kann hier mehrere Materialien in einem Rutsch anlegen ( mache ich aber so gut wie nie - aber das funktioniert nicht nur theoretisch )
3.) Ich glaube dass es einige Sachen gibt, die mit dem BAPI nicht unterstützt werden ( Verbräuche wenn ich mich recht entsinne können mit dem BAPI nicht übenommen werden )
und der für mich letztlich ausschlaggebende Grund:
4.) Die Feldnamen der Übergabestrukturen des material_maintain_dark entsprechen den Feldnamen in den jeweiligen Tabellen. Allein das nervt mich beim BAPI so sehr, dass ich den nicht verwende.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von nikibert (ForumUser / 78 / 4 / 0 ) »
Hallo Stefan,

ja, die Tabellen haben in den entscheidenen Feldern den gleichen Inhalt.

Habe nun 2 neue Fehlermeldungen (Nach entfernen des Flags KZ_MAT_RE, dieses hatte ich kurzerhand gesetzt):
- Für Materialart Nichtlagermaterial keine externe Nummernvergabe möglich
- Die Nummer 203470 ist zur Materialart Rohstoff nicht vorgesehen
Und die Sprache habe ich nun angepasst, Anlagesprache und Anmeldesprache sind nun identisch.

EDIT:
Habe vergessen folgendes zu posten. Sorry... Folgende Sache habe ich zusaetzlich zum geposteten Coding eingefuegt:
Via BAPI_STDMATERIAL_GETINTNUMBER hole ich mir freie Materialnummern und fuelle die jeweiligen -matnr Eintraege in it_mara und it_makt. In diesem Zusammenhang hatte ich auch das Flag KZ_MAT_RE gesetzt.
Was muss ich hier ueberhaupt machen? Muss ich das KZ_MAT_RE Flag setzen? Materialnummern vorfuellen?

Gruss
Zuletzt geändert von nikibert am 16.10.2012 14:32, insgesamt 1-mal geändert.

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von black_adept (Top Expert / 4116 / 129 / 951 ) »
Materialnummer überall leer gelassen?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von nikibert (ForumUser / 78 / 4 / 0 ) »
Nun nochmal das aktuelle Coding, bevor ich voellig den Ueberblick verliere:

Code: Alles auswählen.

    CALL FUNCTION 'BAPI_STDMATERIAL_GETINTNUMBER'
      EXPORTING
        material_type          = wa_data-mtart
*   INDUSTRY_SECTOR        = ' '
       required_numbers       = 1
     IMPORTING
       return                 = return
      TABLES
        material_number        = material_number.

    LOOP AT material_number INTO wa_matnr.
      lv_matnr = wa_matnr-material.
    ENDLOOP.

    wa_mara-tcode = 'MM01'.
    wa_mara-tranc = 1.
    wa_mara-d_ind = 1.
*    wa_mara-KZ_MAT_RES = 'X'.

*    wa_mara-matnr = lv_matnr.
    wa_mara-mtart = wa_data-mtart.
    wa_mara-bismt = wa_data-bismt.
    wa_mara-spart = p_spart.
    wa_mara-mbrsh = p_mbrsh.
    wa_mara-pstat = 'K'.

    APPEND wa_mara TO it_mara.

*    wa_makt-matnr = lv_matnr.
    wa_makt-maktx = wa_data-maktx(40) .
    wa_makt-maktg = wa_makt-maktx.
    TRANSLATE wa_makt-maktg TO UPPER CASE.

    wa_makt-spras = 'D'.
    wa_makt-tranc = wa_mara-tranc.
    wa_makt-d_ind = wa_mara-d_ind.

    APPEND wa_makt TO it_makt.
*    wa_makt-spras = 'E'.
*        wa_makt-d_ind = wa_mara-d_ind + 1.
*    APPEND wa_makt TO it_makt.

    CALL FUNCTION 'MATERIAL_MAINTAIN_DARK'
      EXPORTING
*   FLAG_MUSS_PRUEFEN               = 'X'
*   SPERRMODUS                      = 'E'
*   MAX_ERRORS                      = 0
        p_kz_no_warn                    = 'N'
        kz_prf                          = 'I'
*   KZ_VERW                         = 'X'
*   KZ_AEND                         = 'X'
*   KZ_DISPO                        = 'X'
     kz_test                         = p_test
*   NO_DATABASE_UPDATE              = ' '
*   CALL_MODE                       = ' '
*   CALL_MODE2                      = ' '
*   USER                            = SY-UNAME
*   SUPPRESS_ARRAY_READ             = ' '
*   FLG_MASS                        = ' '
*   IV_CHANGE_DOC_TCODE             = ' '
* IMPORTING
*   MATNR_LAST                      =
*   NUMBER_ERRORS_TRANSACTION       =
      TABLES
     amara_ueb                       = it_mara
     amakt_ueb                       = it_makt
*     amarc_ueb                       = it_marc
*   AMARD_UEB                       =
*   AMFHM_UEB                       =
*   AMARM_UEB                       =
*   AMEA1_UEB                       =
*     ambew_ueb                       = it_mbew

*   ASTEU_UEB                       =
*   ASTMM_UEB                       =
*   AMLGN_UEB                       =
*   AMLGT_UEB                       =
*   AMPGD_UEB                       =
*   AMPOP_UEB                       =
*   AMVEG_UEB                       =
*   AMVEU_UEB                       =
*   AMVKE_UEB                       =
*   ALTX1_UEB                       =
*   AMPRW_UEB                       =
*   AE1CUCFG_UEB                    =
*   AE1CUINS_UEB                    =
*   AE1CUVAL_UEB                    =
*   AE1CUCOM_UEB                    =
     amfieldres                      = amfieldres

     amerrdat                        = amerrdat
   EXCEPTIONS
     kstatus_empty                   = 1
     tkstatus_empty                  = 2
     t130m_error                     = 3
     internal_error                  = 4
     too_many_errors                 = 5
     update_error                    = 6
     error_propagate_header          = 7
     OTHERS                          = 8
              .

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von black_adept (Top Expert / 4116 / 129 / 951 ) »
Lass den BAPI-Aufruf zur Nummernvergabe weg und poste danach noch mal die dann aktuellen Fehlermeldungen pro Materialart.
Und füge noch mal ein clear auf wa_mara und wa_makt vor deinen Aufrufen ein, damit man sieht, dass das auch wirklich initial ist.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von nikibert (ForumUser / 78 / 4 / 0 ) »
So, es erscheint fuer beide Materialarten: "Es wurde kein Kurztext übergeben"
TRANC: 0000000001
MATNR: !0000001
MSGID: MG
MSGTY: E
MSGNO: 148
wa_mara und wa_makt werden definitiv initial uebergeben, clear wird direkt am start gemacht .

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von black_adept (Top Expert / 4116 / 129 / 951 ) »
Eigentlich sieht das gut aus - AMFIELDRES ist auch initial?

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
nikibert

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von nikibert (ForumUser / 78 / 4 / 0 ) »
Ja, ist initial.
Ich werde es weiter versuchen, irgendwie muss das doch machbar sein.

Re: Material anlegen mit MAterial_Maintain_Dark

Beitrag von JHM (Top Expert / 1201 / 1 / 197 ) »
nikibert hat geschrieben:Ich werde es weiter versuchen, irgendwie muss das doch machbar sein.
Füll mal den Mandant in den Übergabestrukturen.
Im MATERIAL_MAINTAIN_DARK wird der Kurztext bei der Anlage über:

Code: Alles auswählen.

READ TABLE AMAKT_UEB WITH KEY MANDT = SY-MANDT
                                TRANC = TRANC BINARY SEARCH.
ermittelt (INCLUDE LMGMDF01 Zeile 551). Somit muss AMAKT_UEB-MANDT entsprechend gefüllt sein.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
nikibert

Gruß Hendrik

Vergleichbare Themen

4
Antw.
5571
Views
Material Maintain Dark
von queen » 09.06.2008 16:10 • Verfasst in ABAP® für Anfänger
1
Antw.
2629
Views
fetch material group,material account 3010 and Plant(WERKS)
von dragospirnut1 » 05.07.2017 12:27 • Verfasst in ABAP Objects®
0
Antw.
2536
Views

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1777
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2319

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1777
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2319

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 352
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 948
MS-Word als Editor
letzen Monat von tekko 1 / 4463