Material USER EXIT nach dem Speichern

SAP R/3 Materialwirtschaft: Einkauf, Bestandsführung, Rechnungsprüfung, Inventur, Bewertung, Leistungsabwicklung, Materialstamm...
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Material USER EXIT nach dem Speichern

Beitrag von Sebastian82 (ForumUser / 79 / 10 / 12 ) »
Hallo zusammen,

meine Aufgabe ist bei einem Material die Klassenmerkmale zu lesen und diese in den Material-Langtext zu speichern. Dafür habe ich mir einen Funktionsbaustein geschrieben, der die Materialnummer entgegennimmt, die Klassen ausließt und anschließend speichert.

Das klappt auch. Soweit so gut.

Jetzt würde ich gerne folgendes machen: Der FuBa soll nicht nur über die SE37 aufgerufen werden können, sondern auch automatisch loslaufen sobald das Material gespeichert wird. So würden Änderungen in der Materialklasse auch sofort in den Langtext übernommen.

Um das zu realisieren habe ich gedacht, klinke ich mich in einen User Exit ein der beim Speichern aufgerufen wird. Hierfür bin ich über den EXIT_SAPLMGMU_001 gestolpert, der auch aufgerufen wird. Anscheinend wird dieser Exit aber VOR dem Speichern der Werte aufgerufen.

Daher meine Frage: Kennt jemand einen User Exit der aufgerufen wird, NACHDEM die Daten der Materialmaske in die Datenbank übernommen wurden?

Viele Grüße,

Sebastian

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


Re: Material USER EXIT nach dem Speichern

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Dann rufe Deinen Funktionsbaustein "IN UPDATE TASK" auf.
dann werden die Daten beim Commit gespeichert.
gruß Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
Sebastian82

<:: 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.

Re: Material USER EXIT nach dem Speichern

Beitrag von Sebastian82 (ForumUser / 79 / 10 / 12 ) »
Hallo Tron,

danke für die Antwort. Das klappt leider nicht.
Mein Problem ist grade vor allem, dass das Material noch nicht existiert wenn der User Exit aufgerufen wird. Also wenn jemand mit der MM01 ein Material neu anlegt und speichert, dann soll durch meinen Baustein auch der Text schon geschrieben werden. Das führt jedoch zu einem Fehler, da das Material noch nicht existiert.

Kennt jemand einen User Exit für den Materialstamm der NACH dem Speichern des Materials ausgeführt wird?

Viele Grüße,

Sebastian

Re: Material USER EXIT nach dem Speichern

Beitrag von Temeraire (ForumUser / 5 / 1 / 1 ) »
Hi Sebastian,

ich kenne den genauen Ablauf leider nicht auswendig, aber deine Anforderung hört sich stark nach Änderungsbelegen an. Du möchtest also in etwa diesen Weg gehen:
- in der SWO1 nach dem Business Object für Material suchen (ich glaube BUS1001)
- Über Transaktion SWETYPV und SWEC musst du dann das Event aus dem BO "Created" koppeln mit deinem Funktionsbaustein.

Wenn ein Material erstellt wird, wird es auf der Datenbank festgehalten. Daraufhin werden Änderungsbelege geschrieben. Da das nach dem Datenbankupdate passiert ist das Material immer vorhanden und es kann darauf zugegriffen werden.

LG

Re: Material USER EXIT nach dem Speichern

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Kennt jemand einen User Exit der aufgerufen wird, NACHDEM die Daten der
Materialmaske in die Datenbank übernommen wurden?
Den wird es nicht geben mal abgesehen von BAPI_MATERIAL_SAVEDATA, da das Material ja asynchron, in einem separaten Prozess, verbucht wird.
Eine Lösung, wie z.B: Triggern eines Job-Events im Exit ist in der Regel "murks".
Könnte sein, dass es keine freien Batch Prozesse gibt, der Stamm schon wieder in Bearbeitung ist, oder immer noch.......

Es gibt im Funktionsbaustein MATERIAL_UPDATE_ALL einige Enhancement Spots.
Mein Tip wäre ENHANCEMENT-POINT MATERIAL_UPDATE_ALL_11 SPOTS ES_SAPLMGMU.
Einfach mal einen Breakpoint setzen und Material Anlegen / Ändern / Anschauen
ausprobieren.

Hinweis bzgl. SAVE_TEXT plus COMMIT_TEXT
https://answers.sap.com/questions/63912 ... rchas.html

Ein weiterer Ort für eine Erweiterung könnte auch das entsprechende Dynpro coding sein.
https://abapforum.com/forum/viewtopic.p ... 341#p64144

Ich würde so vorgehen:
Einen Funktionsbaustein für Update Task erstellen und probeweise SAVE_TEXT plus COMMIT_TEXT verarbeiten mit einem Test text und sehen, ob MM01/02/03 korrekt damit arbeiten, also ohne Verbuchungsabbruch oder Dump.
Falls dem so ist, Dein Coding für die Merkmale hinzufügen.

gruß Jens

Beispiel:

Code: Alles auswählen.

     :
     :
     :
ENHANCEMENT-POINT MATERIAL_UPDATE_ALL_11 SPOTS ES_SAPLMGMU .
*$*$-Start: MATERIAL_UPDATE_ALL_11--------------------------------------------------------------$*$*
ENHANCEMENT 1  ZMM_CHECK_MSTAV.    "active version

" Tranparente Kundentabelle zmm_mstavstatus:
" MANDT       MANDT
" MATNR       MATNR
" DELDATE     AUSBDAT
" PFLAG       NRMARK


data: gs_mstavstatus type zmm_mstavstatus.

  "   OMARA = OLD mara
  "   MARA = NEW mara

      if Omara-mstav eq gv_mstav and mara-mstav ne gv_mstav.
        clear gs_mstavstatus.
        gs_mstavstatus-matnr = omara-matnr.
        gs_mstavstatus-deldate = sy-datum.

        CALL FUNCTION 'Z_MM_MSTAVPOST' in UPDATE TASK
          EXPORTING
            im_status                = gs_mstavstatus
            im_processing_mode       = 'I'.

    endif.
ENDENHANCEMENT.
*$*$-End:   MATERIAL_UPDATE_ALL_11--------------------------------------------------------------$*$*

     :
     :
     :

Code: Alles auswählen.

* WOBEI:

FUNCTION z_mm_mstavpost.


*"----------------------------------------------------------------------
*"*"Update Function Module:
*"
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(IM_STATUS) TYPE  ZMM_MSTAVSTATUS
*"     VALUE(IM_PROCESSING_MODE) TYPE  UPDKZ_D DEFAULT 'I'
*"----------------------------------------------------------------------


  DATA ls_zmm_mstavstatus TYPE zmm_mstavstatus.
  DATA lv_processing_mode TYPE updkz_d.

  lv_processing_mode = im_processing_mode.

  CLEAR ls_zmm_mstavstatus.
  SELECT SINGLE * FROM zmm_mstavstatus INTO ls_zmm_mstavstatus
  WHERE matnr EQ im_status-matnr.

  ls_zmm_mstavstatus-matnr = im_status-matnr.
  ls_zmm_mstavstatus-deldate = im_status-deldate.
  ls_zmm_mstavstatus-pflag = im_status-pflag.

  CASE lv_processing_mode.

* modify / update_table
    WHEN 'M'.
      TRY.
          MODIFY zmm_mstavstatus FROM ls_zmm_mstavstatus.
        CATCH cx_sy_dynamic_osql_error.
*          MESSAGE i061.
      ENDTRY.

    WHEN 'U'.
      TRY.
          UPDATE zmm_mstavstatus FROM ls_zmm_mstavstatus.
        CATCH cx_sy_dynamic_osql_error.
*          MESSAGE i061.
      ENDTRY.

* insert into table
    WHEN 'I'.
      TRY.
          INSERT zmm_mstavstatus FROM ls_zmm_mstavstatus.
        CATCH cx_sy_dynamic_osql_error.
          "MESSAGE I061.
      ENDTRY.

* delete table
    WHEN 'D'.
      TRY.
          DELETE zmm_mstavstatus FROM ls_zmm_mstavstatus.
        CATCH cx_sy_dynamic_osql_error.
          "MESSAGE I061.
      ENDTRY.


    WHEN OTHERS.
      "RAISE wrong_action_code.
  ENDCASE.


ENDFUNCTION.

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
Sebastian82

<:: 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.

Re: Material USER EXIT nach dem Speichern

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
Irgend ein BTE für Material eignet sich dafür, weiß jetzt nicht aus dem Kopf welche Nummer. Bin ziemlich sicher die ziehen erst nach dem DB-Commit

Re: Material USER EXIT nach dem Speichern

Beitrag von Sebastian82 (ForumUser / 79 / 10 / 12 ) »
Danke dir Tron. Ich werd das mal ausprobieren und meine Erfahrungen berichten!

Re: Material USER EXIT nach dem Speichern

Beitrag von IHe (Specialist / 150 / 36 / 49 ) »
deejey hat geschrieben:
12.08.2019 22:53
Irgend ein BTE für Material eignet sich dafür, weiß jetzt nicht aus dem Kopf welche Nummer. Bin ziemlich sicher die ziehen erst nach dem DB-Commit
Mit Event 1250 sollte das gehen.
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Seite 1 von 1

Vergleichbare Themen

1
Antw.
4894
Views
Exit/Badi VA01/VA02 bei speichern
von Thomas R. » 08.11.2005 16:28 • Verfasst in Sales and Distribution
0
Antw.
5333
Views
User-Exit: Meldung prüfen vor Speichern
von babap » 22.06.2005 17:27 • Verfasst in SAP - Allgemeines
2
Antw.
13184
Views
3
Antw.
15581
Views
5
Antw.
2359
Views
User-Exit beim Kundenauftrag - Prüfen Daten beim Speichern
von monika.endl3 » 20.07.2020 14:26 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

SM30 Kundenfunktion
vor 8 Stunden von black_adept 2 / 207
Customizing-Transportauftrag schreiben
vor 17 Stunden von msfox 5 / 703
Daten an Tabelle binden
vor 2 Tagen von Lukas Sanders 4 / 2871

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

SM30 Kundenfunktion
vor 8 Stunden von black_adept 2 / 207
Customizing-Transportauftrag schreiben
vor 17 Stunden von msfox 5 / 703
Daten an Tabelle binden
vor 2 Tagen von Lukas Sanders 4 / 2871

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 6 Tagen von snooga87 1 / 1235
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 4425
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 10808