[ABAP] DMS: Dateien an Dokumenteninfosätze anhängen (BAPI_DOCUMENT_CREATE2)

* Dokumentart (TA DC10, Tabelle TDWA)
PARAMETERS: p_dtype TYPE bapi_doc_aux-doctype OBLIGATORY.
* Teildokument
PARAMETERS: p_dpart TYPE bapi_doc_aux-docpart OBLIGATORY DEFAULT '000'.
* Dokumentversion
PARAMETERS: p_dver TYPE bapi_doc_aux-docversion OBLIGATORY DEFAULT '00'.
* Beschreibung
PARAMETERS: p_desc TYPE bapi_doc_drat-description DEFAULT 'Test 123'.
* Ablagekategorie (TA OACT, Tabelle SDOKSTCAE, View V_SDOKSTCA)
PARAMETERS: p_stor TYPE bapi_doc_files2-storagecategory OBLIGATORY.
* Logisches Dokument/Workstation Application (TA S_ALR_87008829, Tabelle TDWP, Bild -> JPG)
PARAMETERS: p_appl TYPE bapi_doc_files2-application_id OBLIGATORY DEFAULT 'JPG'.
* Objekttyp (Material -> MARA)
PARAMETERS: p_otype TYPE bapi_doc_drad-objecttype OBLIGATORY DEFAULT 'MARA'.
* Objektkey (Material -> MATNR)
PARAMETERS: p_okey TYPE bapi_doc_drad-objectkey OBLIGATORY DEFAULT '000000001122334455'.

START-OF-SELECTION.

  TRY.
      DATA: lv_rc TYPE i.
      DATA: it_files TYPE filetable.
      DATA: lv_action TYPE i.

* FileOpen-Dialog aufrufen
      cl_gui_frontend_services=>file_open_dialog( EXPORTING file_filter = |jpg (*.jpg)\|*.jpg\|{ cl_gui_frontend_services=>filetype_all }|
                                                  CHANGING  file_table  = it_files
                                                            rc          = lv_rc
                                                            user_action = lv_action ).

      IF lv_action = cl_gui_frontend_services=>action_ok.
* wenn Datei ausgewählt wurde
        IF lines( it_files ) > 0.

          DATA(lv_bapi_doc_draw2) = VALUE bapi_doc_draw2(
                                                          documenttype    = p_dtype
                                                          documentversion = p_dver
                                                          documentpart    = p_dpart
                                                        ).

          DATA: lv_documenttype TYPE bapi_doc_aux-doctype.
          DATA: lv_documentnumber TYPE bapi_doc_aux-docnumber.
          DATA: lv_documentpart TYPE bapi_doc_aux-docpart.
          DATA: lv_documentversion TYPE bapi_doc_aux-docversion.
          DATA: lv_return TYPE bapiret2.

          DATA: it_documentdescriptions TYPE STANDARD TABLE OF bapi_doc_drat WITH DEFAULT KEY.
          it_documentdescriptions = VALUE #( (
                                                description  = p_desc
                                                language     = 'D'
                                                language_iso = 'DE'
                                             )
                                           ).

          DATA: it_documentfiles TYPE STANDARD TABLE OF bapi_doc_files2 WITH DEFAULT KEY.

          it_documentfiles = VALUE #( (
                                        originaltype      = '1'
*                                        sourcedatacarrier = 'SAP-SYSTEM' " oder 'DEFAULT'
                                        created_by        = sy-uname
                                        storagecategory   = p_stor
                                        docfile           = it_files[ 1 ]-filename
                                        wsapplication     = p_appl
*                                        checkedin         = abap_true
                                      )
                                    ).

          DATA: it_objectlinks TYPE STANDARD TABLE OF bapi_doc_drad WITH DEFAULT KEY.

          it_objectlinks = VALUE #( (
                                      objecttype    = p_otype
                                      objectkey     = p_okey
                                    )
                                  ).

* Create Document
          CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
            EXPORTING
              documentdata         = lv_bapi_doc_draw2
            IMPORTING
              documenttype         = lv_documenttype
              documentnumber       = lv_documentnumber
              documentversion      = lv_documentversion
              documentpart         = lv_documentpart
              return               = lv_return
            TABLES
              documentdescriptions = it_documentdescriptions
              documentfiles        = it_documentfiles
              objectlinks          = it_objectlinks.

          IF lv_return-type CA 'EA'.
* Rollback bei Fehler
            CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          ELSE.
* Daten verbuchen
            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
              EXPORTING
                wait = abap_true.

            cl_demo_output=>write_data( lv_documenttype ).
            cl_demo_output=>write_data( lv_documentnumber ).
            cl_demo_output=>write_data( lv_documentversion ).
            cl_demo_output=>write_data( lv_documentpart ).
            cl_demo_output=>write_data( lv_return ).

* HTML-Code vom Demo-Output holen
            DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
            cl_abap_browser=>show_html( EXPORTING title       = 'BAPI_DOCUMENT_CREATE2'
                                                  html_string = lv_html
                                                  container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
            WRITE: space.
          ENDIF.
        ENDIF.
      ENDIF.
    CATCH cx_root INTO DATA(e_text).
      MESSAGE e_text->get_text( ) TYPE 'S' DISPLAY LIKE 'E'.
  ENDTRY.

Links

[ABAP] Daten zum Material anzeigen

* siehe auch Report RMMMTREE
PARAMETERS: p_mat TYPE matnr.

START-OF-SELECTION.

* Allgemeine Materialdaten
  SELECT
    FROM mara
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_mara).

* Werksdaten zum Material
  SELECT
    FROM marc
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_marc).

  IF lines( it_marc ) > 0.
* Lagerortdaten zum Material
    SELECT
      FROM mard AS m
      FIELDS *
      FOR ALL ENTRIES IN @it_marc
      WHERE m~matnr EQ @p_mat
        AND m~werks EQ @it_marc-werks
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_mard).
  ENDIF.

* Materialkurztexte
  SELECT
    FROM makt
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_makt).

* STXD SAPscript Text-Datei Header
  SELECT
    FROM stxh
    FIELDS *
    WHERE tdobject EQ 'MATERIAL'
      AND tdname EQ @( |{ p_mat WIDTH = 18 ALPHA = IN }| )
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_stxh).
      
* Reservierung/Sekundärbedarf
  SELECT
    FROM resb
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_resb).

* Bestellanforderung
  SELECT
    FROM eban
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_eban).

* Einkaufsbelegposition
  SELECT
    FROM ekpo
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_ekpo).

  IF lines( it_ekpo ) > 0.
* Einkaufsbelegkopf
    SELECT
      FROM ekko AS e
      FIELDS *
      FOR ALL ENTRIES IN @it_ekpo
      WHERE e~ebeln EQ @it_ekpo-ebeln
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_ekko).
  ENDIF.

* Materialstamm: Standardfelder und spezielle Retail-Felder
  SELECT
    FROM maw1
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_maw1).

  IF lines( it_makt ) > 0.
* Materialstamm-Texte je Mengeneinheit und Text-Id
    SELECT
      FROM mamt AS m
      FIELDS *
      FOR ALL ENTRIES IN @it_makt
      WHERE m~matnr EQ @p_mat
        AND m~spras EQ @it_makt-spras
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_mamt).
  ENDIF.

* Mengeneinheiten zum Material
  SELECT
    FROM marm
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_marm).

  IF lines( it_marm ) > 0.
* Europäische Artikelnummern zum Material
    SELECT
      FROM mean AS m
      FIELDS *
      FOR ALL ENTRIES IN @it_marm
      WHERE m~matnr EQ @p_mat
        AND m~meinh EQ @it_marm-meinh
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_mean).

* Zuordnung von Layoutbausteinen zu Materialien
    SELECT
      FROM malg AS m
      FIELDS *
      FOR ALL ENTRIES IN @it_marm
      WHERE matnr EQ @p_mat
        AND m~meinh EQ @it_marm-meinh
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_malg).
  ENDIF.

* Verkaufsdaten zum Material
  SELECT
    FROM mvke
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_mvke).

* Materialbewertung
  SELECT
    FROM mbew
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_mbwe).

* Materialdaten pro Lagernummer
  SELECT
    FROM mlgn
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_mlgn).

  IF lines( it_mlgn ) > 0.
* Materialdaten pro Lagertyp
    SELECT
      FROM mlgt AS m
      FIELDS *
      FOR ALL ENTRIES IN @it_mlgn
      WHERE m~matnr EQ @p_mat
        AND m~lgnum EQ @it_mlgn-lgnum
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_mlgt).
  ENDIF.

* Einkaufsinfosatz - allgemeine Daten
  SELECT
    FROM eina
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_eina).

  IF lines( it_eina ) > 0.
* Einkaufsinfosatz - Einkaufsorganisationsdaten
    SELECT
      FROM eine AS e
      FIELDS *
      FOR ALL ENTRIES IN @it_eina
      WHERE e~infnr EQ @it_eina-infnr
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_eine).
  ENDIF.

* Materialstammstatus
  SELECT
    FROM msta
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_msta).

* noch offene Materialstaemme
  SELECT
    FROM moff
    FIELDS *
    WHERE matnr EQ @p_mat
      ORDER BY statm
      INTO TABLE @DATA(it_moff).

* Planauftrag
  SELECT
    FROM plaf
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_plaf).

* Kopfsatz für Bedarfssummensätze im MRP
  SELECT
    FROM rqhd
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_rqhd).

* Positionssatz für Bedarfssummensätze im MRP
  SELECT
    FROM rqit
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_rqit).

* Material (Konditionssätze)
  SELECT
    FROM a004
    FIELDS *
    WHERE matnr EQ @p_mat
    ORDER BY PRIMARY KEY
    INTO TABLE @DATA(it_a004).

  IF lines( it_a004 ) > 0.
* Konditionen (Kopf)
    SELECT
      FROM konh
      FIELDS *
      FOR ALL ENTRIES IN @it_a004
      WHERE knumh EQ @it_a004-knumh
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_konh).

* Konditionen (Position)
    SELECT
      FROM konp
      FIELDS *
      FOR ALL ENTRIES IN @it_a004
      WHERE knumh EQ @it_a004-knumh
      ORDER BY PRIMARY KEY
      INTO TABLE @DATA(it_konp).
  ENDIF.

  cl_demo_output=>next_section( 'Materialstamm' ).
  cl_demo_output=>write_data( value = it_mara name = 'MARA (Allgemeine Materialdaten)' ).
  cl_demo_output=>write_data( value = it_marc name = 'MARC (Werksdaten zum Material)' ).
  cl_demo_output=>write_data( value = it_mard name = 'MARD (Lagerortdaten zum Material)').
  cl_demo_output=>next_section( 'Texte' ).
  cl_demo_output=>write_data( value = it_makt name = 'MAKT (Materialkurztexte)').
  cl_demo_output=>write_data( value = it_stxh name = 'STXH (STXD SAPscript Text-Datei Header)').
  cl_demo_output=>next_section( 'Einkauf' ).
  cl_demo_output=>write_data( value = it_resb name = 'RESB (Reservierung/Sekundärbedarf)').
  cl_demo_output=>write_data( value = it_eban name = 'EBAN (Bestellanforderung)').
  cl_demo_output=>write_data( value = it_ekko name = 'EKKO (Einkaufsbelegkopf)').
  cl_demo_output=>write_data( value = it_ekpo name = 'EKPO (Einkaufsbelegposition)').
  cl_demo_output=>next_section( 'Infosatz' ).
  cl_demo_output=>write_data( value = it_eina name = 'EINA (Einkaufsinfosatz - allgemeine Daten)').
  cl_demo_output=>write_data( value = it_eine name = 'EINE (Einkaufsinfosatz - Einkaufsorganisationsdaten)').
  cl_demo_output=>next_section( 'Konditionen' ).
  cl_demo_output=>write_data( value = it_a004 name = 'A004 (Material (Konditionssätze)').
  cl_demo_output=>write_data( value = it_konh name = 'KONH (Konditionen (Kopf))').
  cl_demo_output=>write_data( value = it_konp name = 'KONP (Konditionen (Position))').
  cl_demo_output=>next_section( 'Bewertung' ).
  cl_demo_output=>write_data( value = it_mbwe name = 'MBEW (Materialbewertung)').
  cl_demo_output=>next_section( 'Verkaufsdaten' ).
  cl_demo_output=>write_data( value = it_mvke name = 'MVKE (Verkaufsdaten zum Material)').
  cl_demo_output=>next_section( 'Mengeneinheiten' ).
  cl_demo_output=>write_data( value = it_marm name = 'MARM (Mengeneinheiten zum Material)').
  cl_demo_output=>next_section( 'Materialdaten' ).
  cl_demo_output=>write_data( value = it_mlgn name = 'MLGN (Materialdaten pro Lagernummer)').
  cl_demo_output=>write_data( value = it_mlgt name = 'MLGT (Materialdaten pro Lagertyp)').
  cl_demo_output=>next_section( 'Planaufträge' ).
  cl_demo_output=>write_data( value = it_plaf name = 'PLAF (Planauftrag)').
  cl_demo_output=>next_section( 'MRP' ).
  cl_demo_output=>write_data( value = it_rqhd name = 'RQHD (Kopfsatz für Bedarfssummensätze im MRP)').
  cl_demo_output=>write_data( value = it_rqit name = 'RQIT (Positionssatz für Bedarfssummensätze im MRP)').
  cl_demo_output=>next_section( 'Materialstammstatus' ).
  cl_demo_output=>write_data( value = it_msta name = 'MSTA (Materialstammstatus)').
  cl_demo_output=>write_data( value = it_moff name = 'MOFF (noch offene Materialstaemme)').
  cl_demo_output=>next_section( 'Sonstges' ).
  cl_demo_output=>write_data( value = it_maw1 name = 'MAW1 (Materialstamm: Standardfelder und spezielle Retail-Felder)').
  cl_demo_output=>write_data( value = it_mamt name = 'MAMT (Materialstamm-Texte je Mengeneinheit und Text-Id)').
  cl_demo_output=>write_data( value = it_mean name = 'MEAN (Europäische Artikelnummern zum Material)').
  cl_demo_output=>write_data( value = it_malg name = 'MALG (Zuordnung von Layoutbausteinen zu Materialien)').

*   HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

*   Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'Material'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

* leere Standard-Toolbar ausblenden
  cl_abap_list_layout=>suppress_toolbar( ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.

[ABAP] Mengen von einer Mengeneinheit in die Menge zu einer anderen Mengeneinheit umwandeln

DATA: lv_matnr TYPE mara-matnr VALUE '1234567890'.
DATA: lv_menge TYPE ekpo-menge VALUE '1'.
DATA: lv_r_menge TYPE ekpo-menge.

* Wandelt Menge von Quellmengeeinheit in Zielmengeneinheit für Material
* Siehe auch Tabelle: T006
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
  EXPORTING
    i_matnr              = lv_matnr   " MATNR
    i_in_me              = 'KA'       " Ausgangsmengeneinheit
    i_out_me             = 'ST'       " Zielmengeneeinheit
    i_menge              = lv_menge   " Ausgangsmenge
  IMPORTING
    e_menge              = lv_r_menge " Zielmenge
  EXCEPTIONS
    error_in_application = 1
    error                = 2
    OTHERS               = 3.

IF sy-subrc = 0.

ENDIF.

[ABAP] MM: BAPI_MATERIAL_SAVEDATA – Anlegen und Ändern von Materialstammdaten

TYPES: ty_it_materialdescription TYPE STANDARD TABLE OF bapi_makt WITH DEFAULT KEY.

* Kopfdaten
DATA(lv_headdata) = VALUE bapimathead( material      = '123456'             " MATNR
                                       ind_sector    = CONV mbrsh( 'A' )    " Branche (Tabelle T137)
                                       matl_type     = CONV mtart( 'VERP' ) " Materialart (Tabelle T134)

                                       basic_view    = abap_true            " Sicht Grundddaten anlegen
                                       purchase_view = abap_true            " Sicht Einkauf anlegen
                                       account_view  = abap_true            " Sicht Buchhaltung
                                     ).
* Mandantenebene (MARA)
* Daten
DATA(lv_clientdata) = VALUE bapi_mara( del_flag   = abap_false               " Löschvormerkung auf Mandantenebene
                                       matl_group = CONV matkl( '00100000' ) " Warengruppe (Tabelle T023)
                                       base_uom   = CONV meins( 'KG' )       " Basismengeneinheit (Tabelle T006)
                                     ).

* Speicherflags
DATA(lv_clientdatax) = VALUE bapi_marax( del_flag   = abap_true " Löschvormerkung auf Mandantenebene setzen
                                         matl_group = abap_true " Warengruppe setzen
                                         base_uom   = abap_true " Basismengeneinheit setzen
                                       ).
* Werksebene (MARC)
* Daten
DATA(lv_plantdata) = VALUE bapi_marc( plant     = CONV werks_d( '0001' ) " Werk (Tabelle T001W)
                                      del_flag  = abap_false             " Löschvormerkung auf Werksebene
                                      pur_group = CONV ekgrp( '001' )    " Einkäufergruppe (Tabelle T024)
                                    ).

* Speicherflags
DATA(lv_plantdatax) = VALUE bapi_marcx( plant     = CONV werks_d( '0001' ) " Werk (Tabelle T001W)
                                        del_flag  = abap_true              " Löschvormerkung auf Werksebene setzen
                                        pur_group = abap_true              " Einkäufergruppe setzen
                                      ).

* Materialbewertung (MBEW)
* Daten
DATA(lv_valuationdata) = VALUE bapi_mbew( val_area  = CONV bwkey( '0001' )  " Bewertungskreis (Tabelle T001K)
                                          val_type  = CONV bwtar_d( 'ABC' ) " Bewertungsarten (Tabelle T149D)
                                          val_class = CONV bklas( '1234' )  " Bewertungsklasse (Tabelle T025)
                                          del_flag  = abap_false            " Löschvormerkung für alle Materialdaten einer Bewertungsart
                                        ).

* Speicherflags
DATA(lv_valuationdatax) = VALUE bapi_mbewx( val_area = CONV bwkey( '0001' )  " Bewertungskreis (Tabelle T001K)
                                            val_type = CONV bwtar_d( 'ABC' ) " Bewertungsarten (Tabelle T149D)
                                            val_class = abap_true            " Bewertungsklasse setzen
                                            del_flag  = abap_true            " Löschvormerkung setzen
                                          ).

* Lagerort (MARD)
* Daten
DATA(lv_storagelocationdata) = VALUE bapi_mard( plant    = CONV werks_d( '0001' ) " Werk (Tabelle T001W)
                                                stge_loc = CONV lgort_d( '1000' ) " Lagerort (Tabelle T001L)
                                                del_flag = abap_false             " Material auf Lagerortebene zum Löschen vormerken
                                              ).

* Speicherflags
DATA(lv_storagelocationdatax) = VALUE bapi_mardx( plant    = CONV werks_d( '0001' ) " Werk (Tabelle T001W)
                                                  stge_loc = CONV lgort_d( '1000' ) " Lagerort (Tabelle T001L)
                                                  del_flag = abap_false             " Löschvormerkung setzen
                                                ).

* Materialkurztext
DATA(it_materialdescription) = VALUE ty_it_materialdescription( ( langu     = sy-langu
                                                                  langu_iso = cl_i18n_languages=>sap1_to_sap2( im_lang_sap1 = sy-langu )
                                                                  matl_desc = 'Schraube 70mm' ) ).

DATA: lv_return TYPE bapiret2.
DATA: it_returnmessages TYPE STANDARD TABLE OF bapi_matreturn2 WITH DEFAULT KEY.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
  EXPORTING
    headdata             = lv_headdata
    clientdata           = lv_clientdata
    clientdatax          = lv_clientdatax
    plantdata            = lv_plantdata
    plantdatax           = lv_plantdatax
    valuationdata        = lv_valuationdata
    valuationdatax       = lv_valuationdatax
    storagelocationdata  = lv_storagelocationdata
    storagelocationdatax = lv_storagelocationdatax
  IMPORTING
    return               = lv_return
  TABLES
    materialdescription  = it_materialdescription
    returnmessages       = it_returnmessages.

* Meldungen des Bausteins ausgeben
LOOP AT it_returnmessages ASSIGNING FIELD-SYMBOL(<m>).
  WRITE: / <m>-type,
           <m>-id,
           <m>-number,
           <m>-message,
           <m>-log_no,
           <m>-log_msg_no,
           <m>-message_v1,
           <m>-message_v2,
           <m>-message_v3,
           <m>-message_v4,
           <m>-parameter,
           <m>-row,
           <m>-field,
           <m>-system.
ENDLOOP.

* Fehlerauswertung
* Meldungstyp auswerten, Baustein gibt nur S - Success oder E - Error zurück
IF lv_return-type = 'E'.
* Fehler -> ROLLBACK
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
    IMPORTING
      return = lv_return.

  WRITE: / lv_return-type, lv_return-id, lv_return-message.
ELSE.
* kein Fehler -> COMMIT
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*      EXPORTING
*       wait   = abap_true
    IMPORTING
      return = lv_return.

  WRITE: / lv_return-type, lv_return-id, lv_return-message.
ENDIF.

[ABAP] MM: Materialdaten lesen

DATA: lv_matnr TYPE bapi_mara_ga-material VALUE '000000001234567890'.
DATA: lv_clientdata TYPE bapi_mara_ga.

DATA: it_materialdescription TYPE STANDARD TABLE OF bapi_makt_ga WITH DEFAULT KEY.
DATA: it_return TYPE STANDARD TABLE OF bapireturn WITH DEFAULT KEY.

CALL FUNCTION 'BAPI_MATERIAL_GET_ALL'
  EXPORTING
    material            = lv_matnr
*   COMP_CODE           =
*   VAL_AREA            =
*   VAL_TYPE            =
*   PLANT               =
*   STGE_LOC            =
*   SALESORG            =
*   DISTR_CHAN          =
*   WHSENUMBER          =
*   STGE_TYPE           =
*   LIFO_VALUATION_LEVEL =
*   KZRFB_ALL           =
  IMPORTING
    clientdata          = lv_clientdata
*   PLANTDATA           =
*   FORECASTPARAMETERS  =
*   PLANNINGDATA        =
*   STORAGELOCATIONDATA =
*   VALUATIONDATA       =
*   WAREHOUSENUMBERDATA =
*   SALESDATA           =
*   STORAGETYPEDATA     =
*   PRTDATA             =
*   LIFOVALUATIONDATA   =
  TABLES
    materialdescription = it_materialdescription
*   UNITSOFMEASURE      =
*   INTERNATIONALARTNOS =
*   MATERIALLONGTEXT    =
*   TAXCLASSIFICATIONS  =
*   EXTENSIONOUT        =
    return              = it_return.

* Fehlermeldungen ausgeben
LOOP AT it_return ASSIGNING FIELD-SYMBOL(<r>).
  WRITE: / <r>-type, <r>-code, <r>-message.
ENDLOOP.

* Materialdaten (MARA)
WRITE: / lv_clientdata-material,
         lv_clientdata-matl_type,
         lv_clientdata-mat_status,
         lv_clientdata-del_flag,
         lv_clientdata-matl_group,
         lv_clientdata-base_uom.

* Materialkurztexte (MAKT)
LOOP AT it_materialdescription ASSIGNING FIELD-SYMBOL(<d>).
  WRITE: / <d>-langu, <d>-langu_iso, <d>-matl_desc.
ENDLOOP.

[SAP] Material (Materialstammsatz)

Transaktionen

MM01 (anlegen)

  • Material: neue MatNr eingeben
  • Branche: einstellen
  • Materialart: einstellen
  • Vorlage Material: evtl. MatNr angeben von der Daten kopiert werden sollen
  • Button “Sichtenauswahl” klicken
  • gewünschte Sichten markieren
  • Haken bei “Markierte Sichten anlegen”
  • Grünen Haken klicken
  • Organisationsebenen
  • Werk: eingeben, evtl. bei Vorlage auch
  • Lagerort: eingeben, evtl. bei Vorlage auch
  • Verkaufsorg.: eingeben, evtl. bei Vorlage auch
  • Vertiebsweg: eingeben, evtl. bei Vorlage auch
  • Alle Sichten durchgehen (Button Pfeil <- / ->, Menü->Springen …) und ggf. anpassen, Warnungen mit Enter bestätigen
  • mit Button “Speichern” (blaue Diskette) das Material anlegen

MM02 (ändern, z.B. Materialkurztext)

  • Material: Materialnummer eingeben
  • Button “Sichtenauswahl” klicken
  • Grunddaten wählen
  • Kurztext ändern
  • Button “Sichern” (Diskette) klicken

MM03 (anzeigen)

MM04 (Änderungsbelege anzeigen)

  • zeigt Datum, Nutzer, Transaktion bei Änderungen am Material

MM06 (löschen / entlöschen)
MM60 (Materialverzeichnis)
MMCC (Material kopieren)

Tabellen

MARA (Allgemeine Materialdaten)
MARC (Werksdaten zum Material)
MARD (Lagerortdaten zum Material)
MARM (Mengeneinheiten zum Material)
MAKT (Materialkurztexte)
MBEW (Materialbewertung)

Views

V_OLR3_MARX (Werksmaterial: Konsistenzprüfung)

  • MARA, MARC mit Selektionsbedingung MARC LVORM EQ ‘ ‘

MC29V (Datenbankview aus MARA und MARC für Stücklisten)

  • MARA, MARC für Stücklisten

MA07V (Materialstamm: DB-View Bestandsführung)

  • MARA, MARC

MARU (Projektion auf die MARA,von der Materialstammpflege upgedat.)

  • MARA

Links