BADI Bestellung anlegen me21n Nachrichtenfindung

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

BADI Bestellung anlegen me21n Nachrichtenfindung

Beitrag von Mole1986m (ForumUser / 7 / 0 / 0 ) »
Hallo allerseits,

ich bin neu hier und hoffe ich bin hier richtig :-) .

Kurz zu mir, ich habe mittlerweile 2 Jahre Erfahrung in der Entwicklung von individuellen SAP Anwendungen. BADIs sind daher für mich etwas neu und ich habe daher etwas Schwierigkeiten bei einer Anforderung.
Es geht um die Transaktion me21n ( Bestellung anlegen ) und deren Nachrichtenfindung.

Wenn ich einen Lieferanten angebe, die Einkaufsorg. und die Einkaufsgruppe habe ich die Möglichkeit einen Ansprechpartner anzugeben (siehe Bild 1).

Nun ist es so, dass bei der Nachrichtenfindung die Faxnummer, E-Mail etc. vom Lieferanten gezogen wird. Die Anforderung ist aber, dass die Faxnummer und E-Mail vom Ansprechpartner des Lieferanten genommen werden soll. Denn bisher wird nur die Rolle Lieferant "LF" berücksichtigt. (siehe Bild 2) Ich habe nun das BADI / Interface IF_EX_ME_PROCESS_PO_CUST implementiert, mit dem ich nach der Partnerauswahl ( Bild 1 ) meinen eigen Code in der Methode IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER implementieren kann. Soweit so gut, ich weiss auch wie ich die Daten von den Ansprechpartner bekomme, aber wie kann ich nun die Nachrichtenfindung manipulieren? Weil es soll wie gesagt so sein, dass die Adressdaten des Ansprechpartners genommen werden und nicht vom Lieferanten. Die Anforderung ist so gewünscht, weil später eine Customizingtabelle gepflegt werden soll, die abhängig von der Einkaufsorg. und Einkaufsgruppe die Adresse des Ansprechpartners nimmt.

Ich bin noch auf die Methoden if_purchasing_document~get_partners / im_header->set_data für Kopfdaten setzen gestoßen, aber die helfen mir auch nicht weiter. Ich hoffe Ihr versteht mein Problem :-) und habt mir einen Tipp.
Dafür muss es doch auch ein BADI geben, oder?

Vielen Dank im Voraus!!!

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


Re: BADI Bestellung anlegen me21n Nachrichtenfindung

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
Mole1986m hat geschrieben:Ich hoffe Ihr versteht mein Problem :-) und habt mir einen Tipp.
Könntest du mal erklären, was der Zweck deiner Änderungen ist.
Brauchst du den Lieferanten und die AP FAX/eMail oder wird der LF gar nicht mehr benötigt? Würde es also ausreichen, den AP als Nachrichtenpartner im NAST-Satz zu haben? Muss die Änderung in der Bestellung bei der Nachrichtenfindung erfolgen oder könnte man die AP-Datenübernahme in die Nachrichtenverarbeitung verlagern?

Je nach Anforderung gibt es verschiedene Wege, das Ziel zu erreichen...

Nur die FAX/eMail zu hinterlegen geht m.W. nicht. Da die Daten erst zur Nachrichtenverarbeitung über die Adressnummer ermittelt werden.

Wir haben für ein ähnliches Scenario eine eigene Partnerrolle angelegt (ZN = Nachrichtenpartner), diese wird vom User manuell mit den rel. Adressdaten versorgt (könnte man aber auch per BADI/UserExit, etc. automatisieren) und dann als Nachrichtenpartner verwendet. So kann man eigentlich jede NAST-Ausgabe an jeden übertragen, wenn man den ZN-Partner entsprechend pflegt.
Gruß Hendrik

Re: BADI Bestellung anlegen me21n Nachrichtenfindung

Beitrag von Mole1986m (ForumUser / 7 / 0 / 0 ) »
Vielen Dank schon Mal JHM!!!

Aktuell ist hier nur bei der Nachrichtenfindung die Rolle "LF" bzw. Lieferant erlaubt.

die konkrete Anforderung lautet:
- Es soll zukünftig über die SAP-Standard Transaktion mk02 die Ansprechpartner zum Lieferant mit E-Mail / Fax und Sprache gepflegt werden. gelöst
- bei Anlegung einer Bestellung, können zum Lieferant die Ansprechpartner gewählt werden. gelöst
- es soll eine Customizing-Tabelle gepflegt werden, in der man die Einkaufsorganisation pflegt und sagen kann, ob bei der Nachrichtenfindung die Adresse des LFs oder des gewählten APs genommen werden soll. gelöst
- nach Auswahl des Ansprechpartners in der Bestellung soll bei der Nachrichtenfindung der Lieferant durch den gepflegten AP ersetzt werden (FAX und E-Mail). nicht gelöst

Ein Grund warum die das wollen ist, sie werden Ansprechpartner zum Kreditor/Lieferant pflegen inkl. Fax/E-Mail/Sprache. Wenn nun einer aus Frankreich eine Bestellung anlegt, soll auch die Landessprache berücksichtigt werden und dementsprechend der französische Ansprechpartner im Bestellkopf stehen. Die Partnernummer/Kreditorennummer bleibt dann meines Wissens trotzdem gleich, aber wie gesagt, sollen dann die Daten des APs direkt in der Nachrichtenfindung stehen. (siehe Bild, ich habe mit der roten Schrift gekennzeichnet wie es aussehen sollte). Bei einem Doppelklick bspw. auf das Fax. sieht man ja dann schon die Faxnummer, aber auch nur direkt vom LF.

Wie ich an die Daten vom AP ran komme weiss ich. Das konnte ich im BADI IF_EX_ME_PROCESS_PO_CUST soweit mit der get_partner Methode und entsprechende SELECTs lösen, aber wie ich das Ganze nun direkt bei der Nachrichtenfindung noch änder und die LF-Daten durch AP-Daten ersetze...da hänge ich :-( .

Vielen Dank im Voraus!

Re: BADI Bestellung anlegen me21n Nachrichtenfindung

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
Das Eingreifen in die eigentlich "fest Verdrahteten" Mechanismen der Einkaufsnachrichten ist schwieriger als man vielleicht glaubt.
Das Coding (MEDRUCK) im Einkauf beinhaltet zudem ja noch Mahnungen und Änderungsdrucke (wird gern mal vergessen).
Als ich seinerseits vor eine ähnliche Aufgabe gestellt wurde, habe ich natürlich viel experimentiert, um z.B. das Druckprogramm nicht ändern zu müßen.
siehe http://www.apentia-forum.de/viewtopic.p ... 922#p58039

Das Ergebnis ist eine Art "Umleitung" .
Du Customized über NACE einen Report(e.g.YMEDRUCK_0), der dann zuerst durchlaufen wird, bevor das ursprüngliche Programm dann über Deinen Report aufgerufen wird.
Dabei stehen Dir die Tabelleneinträge NAST und TNAPR im Speicher zur Verfügung. Nast beinhaltet den Partner (LF) und und eine (leere) Adressnummer.
Ich würde also mal mit NAST-SPRAS / NAST-ADRNR / und NAST-PARVW experimentieren.

z.B. So:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  YMEDRUCK_0
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

* WARNING : NO POPUPS - NO COMMIT WORK !!!!!!!!!!!!!!!!!!!!!!!!!

REPORT  ymedruck_0.
DATA: retcode   LIKE sy-subrc.         "Returncode
DATA: xscreen(1) TYPE c.               "Output on printer or screen
TABLES: nast,                          "Messages
        tnapr.                         "Programs & Forms
*&---------------------------------------------------------------------*
*&      Form  ENTRY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RETURN_CODE  text
*      -->US_SCREEN    text
*----------------------------------------------------------------------*
FORM entry_neu USING return_code TYPE i
                 us_screen TYPE c.


  CLEAR retcode.
*  xscreen = us_screen.

* fuer EXPERIMENTE
if nast-PARNR = 'C7110'.
nast-Spras = 'E'.
nast-adrnr = '0000022509'.
endif.
*************************



*              Call the "Original" Printroutine
************************
* @@@@ TODO !!!!!
************************
*-orig program---------+
*                      |
*-orig Form---+        |
*             |        |
* PERFORM entry_neu(sapfm06p) USING return_code us_screen IF FOUND.
  PERFORM entry_neu(/SMB40/FM06P) USING return_code us_screen IF FOUND.

  IF sy-subrc NE 0.
    return_code = 1.
  ENDIF.

ENDFORM.                    "ENTRY
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.

Re: BADI Bestellung anlegen me21n Nachrichtenfindung

Beitrag von Mole1986m (ForumUser / 7 / 0 / 0 ) »
Hallo Tron,

vielen Dank für dein Lösungsvorschlag!

Ich hätte mir das ehrlich gesagt nun gar nicht so kompliziert vorgestellt. Ich dachte hier gibt's ein BADI (wie IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER) / BAPI / FUBA in der ich einfach mitgeben kann, welche Einträge letztendlich in den Nachrichten stehen soll bzw. dass das System den gewählten AP nehmen soll. Puh ...:-) .

@Tron also ich glaube zu verstehen, wie du das lösen würdest. Aber der Nutzer wählt ja erst in der Bestellung den Kreditor/Lieferant aus und dann kommt die Auswahl der APs zum eingegeben Kreditor. Verstehe ich das richtig, dass ich dann in NACE customizen kann, dass dann genau nach der Auswahl des APs mein eigenes Programm durchläuft? Wenn ja, wie sag ich aber dann explizit, dass die Kontaktdaten des APs für die Nachrichten genommen werden sollen? NAST ist ja eine SAP-Tabelle die ich ja nicht direkt ändern soll/kann. Oder stehe ich jetzt komplett auf dem Schlauch? Sorry, die Nachrichtenfindung ist für mich ein neues Thema. :-) Vielleicht habe ich auch noch nicht Ganz verstanden, was SAP macht, um die Kontaktdaten für die Nachrichtenfindung zu ziehen.

Vielen Dank und viele Grüße!

Re: BADI Bestellung anlegen me21n Nachrichtenfindung

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Nun..
Prinzipieller Ablauf der Nachrichtenfindung / Druck einer Anwendung (e.g. Einkauf)
1.)
Ein Einkaufsbeleg ist vollständig und man trägt in den Nachrichten ein: Nachrichtenart NEU / Partner LF / Ausgabegerät Drucken auf LP01 ein und sichert.
Im Hintergrund wird ein Eintrag in die Tabelle NAST durch die Anwendung geschrieben.
2.)
Dann clickt man auf Druckansicht.
Es passiert im Hintergrund folgendes:
Die Anwendung schaut in der Tabelle TNAPR nach, welches Druckprogramm / Form-Einsprungroutine und welches Formular für diesen Vorgang verwendet werden soll.
Dann wird in die Formroutine des Programms verzweigt. (e.g. PERFORM entry_neu(/SMB40/FM06P) USING return_code us_screen IF FOUND.)
Damit das Druckprogramm "weiß", welches Formular verwendet werden soll, werden dem Druckprogramm der NAST und der TNAPR Eintrag im Speicher übergeben.
3.)
Im Druckprogramm werden die Daten beschafft und an das Formular übergeben.

Die Einträge der Tabelle TNAPR werden selbstverständlich durch das Customizing (NACE) eingetragen.

sind wir uns soweit einig ?

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.

Re: BADI Bestellung anlegen me21n Nachrichtenfindung

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
Mole1986m hat geschrieben:Sorry, die Nachrichtenfindung ist für mich ein neues Thema. :-) Vielleicht habe ich auch noch nicht Ganz verstanden, was SAP macht, um die Kontaktdaten für die Nachrichtenfindung zu ziehen.
Hier: https://www.consolut.com/fileadmin/Medi ... SDBFOC.PDF
ist die Nachrichtenfindung sehr umfassend beschrieben. Ist zwar schon etwas älter erklärt aber sehr genau wie es läuft und viel geändert hat sich auch nicht.

Was du suchst gibt es m.W.n. nicht als BADI in der Nachrichtenfindung.
Also entweder vor der Findung die Daten für die Findung aufbereiten (z.b. AP in eigene Partnerrolle kopieren und diese über die Konditionstechnik verwenden für die Ausgabe verwenden) oder aber in der Nachrichtenverarbeitung (= Druckprogramm). Im Druckprogramm kann man (fast) alles übersteuern.
Dann gäbe es sicher noch die Wege der Modification bzw. impl. Erweiterung, aber wieso mit der Brechstange, wenn es auch einfacher geht.
Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2729
Views
2
Antw.
2048
Views
BAdI für Transaktion me21n (Feld: Kopftext)
von Fools » 21.09.2005 10:16 • Verfasst in ABAP Objects®
4
Antw.
5813
Views
Feld in Me21n / Me22n nur anzeigen über BADI
von tomsto » 07.12.2007 09:56 • Verfasst in ABAP Objects®

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141