SAP Jobsuche bei DV-Treff
Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Hallo liebe Profis,

ich möchte gerne den Versandzeitpunkt einer Nachricht im Kundenauftrag beeinflussen. Dies würd ich gerne unmittelbar beim Speichern vornehmen und nicht wie bisher durch einen Nachtlauf. Im MV45AFZZ ist die Nast noch nicht gefüllt und in der Bedingung zur Nachrichtenfindung (VOFM) war ich auch nicht erfolgreich.

Hat jemand eine Idee, wo und wann ich vor dem Speichern eines Kundenauftrages entsprechende Anpassungen vornehmen könnte?

 

Liebe Grüsse vom schönsten Fleckerl der Welt

Tine

 

Förderer

encore
vor 16 Jahre
Hallo Tine,

vielleicht verstehe ich deine Frage ja falsch, aber im Standard wird der Versandzeitpunkt einer Nachricht im betreffenden Konditionssatz hinterlegt, für den SD - Auftrag also unter den TC VV11 - VV13.

Der Zeitpunkt wäre dann = 4 ( ==> beim Sichern der Anwendung)
Grüsse

nk

Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Sorry,  da hatte ich mich missverständlich ausgedrückt. Typisch Frauen ... schreiben auch zwischen den Zeilen und wundern sich, wenns nicht verstanden wird .

Unsere AB's werden generell sofort gedruckt (Hinterlegung wie von Dir angemerkt in der VV11 - Versandzeitpunkt 4).

Bei manchen Aufträgen springe ich jedoch via MV45AFZZ in einen Workflow ab und verändere via BAPI_SALESORDER_CHANGE diverse Daten im Auftrag nachträglich. In diesen Fällen möchte ich die AB erst drucken, nachdem meine Änderungen durch sind. Hierzu möchte ich - nur in diesen Fällen (also nicht generell in der VV12) - den Versandzeitpunkt auf 3 setzen und in meinem Funktionsbaustein dann ... wenn ich alles schön verpfrimelt habe ... die Nachricht via RSNAST00 drucken.

Natürlich könnte ich generell alle AB's erst nachts drucken (VV12 - Versandzeitpunkt 1 und RSNAST00 nachts einplanen). Schicker wäre es jedoch, wenn ich beim Speichern des Auftrages bei genau diesen Aufträgen den Versandzeitpunkt, oder das Versanddatum ändern könnte um es Sekunden später wieder rückzuändern.

Hast Du eine Idee?

Liebe Grüsse

Tine

 

encore
vor 16 Jahre
Hallo Tine,

du könntest doch eine Änderungsnachricht ausgeben; die hängt ja von den von dir definierten Änderungen bestimmter Felder ab. Das Programm dazu musst du in der Nachrichtenart hinterlegen.


Grüsse

nk

Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Hallo nk (was bedeutet nk?)

da die Änderungen erst nach dem Speichern von mir via Workflow durchgeführt werden, ist dies vermutlich nicht der richtige Weg.

Liebe Grüsse

Tine

 

encore
vor 16 Jahre
Hallo Tine,

ich denke doch. SAP entscheidet ja nicht, was eine Änderung ist, sondern dein Programm. Und diese Entscheidung trifftts du auch heute schon, sonst könntest du ja nicht
nachträglich etwas drucken. D.h., du hast ja eindeutige Kriterien, an denen du erkennen kannst, das du jetzt diesen Beleg neu drucken willst - und genau diese Abfrage gehört in das Änderungs-Abfrage - Programm im Feld APROG.

Es kommt ja dabei nicht darauf an, wann die Änderung stattfindet, sondern wann das Programm feststellt, dass die gesuchte Konstellation vorliegt. Von daher musst du dieses Programm entweder nach deiner "Manipulation" direkt aufrufen oder zu einem x-beliebigen späteren Zeitpunkt; nur direkt beim Beleg-Sichern geht ja nach deiner Beschreibung nicht, da du ja erst später änderst.

nk  ist übrigens ein Namenskürzel.
Grüsse

nk

Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Hallo nk,

klingt gut. Heißt das ich kann eine Änderungsnachricht ausgeben, auch wenn die Nachricht zuvor noch nicht gedruckt wurde?

Liebe Grüsse

Tine

encore
vor 16 Jahre
Hallo Tine,

programmieren kann man sehr vieles.  Ist aber nicht immer alles sinnvoll.

Du könntest ja auch hergehen und eine Bedingung definieren, die deine "Änderungs-" Felder abfragt; die Nachricht beim Belegsichern dann nur ausgeben, wenn diese Bedingung zutrifft (SAP-Standard). Also würde keine Nachricht erzeugt, aber alles läuft Standard.

Anschliessend läuft irgendwann dein Änderungsprogramm und ändert hart die Daten.

Zium Abschluss muss jetzt entweder der Anwender manuell einen Änderungsbeleg drucken (ggf. dabei die obige Bedingung umgekehrt abfragen) oder du musst dein "Änderungs-"Programm starten, das dabei diese Abfrage macht und den Änderungsbeleg erzeugt.

Dann hättest du nur 1 Beleg.
Grüsse

nk

Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Hallöchen,

aua ... das klingt jetzt aber nicht mehr so gut.

Mit "manuell" geht bei meinen Anwendern gar nix. Da werd ich geteert und gefedert . Außerdem würden damit alle "normalen" Aufträge in denen nie was geändert wird, hinten runter fallen, denn bei denen wäre die Bedingung ja dann nie erfüllt. Änderungsbelege lesen ist ja auch nícht so wirklich performant ...

Hmmm ... werd wohl doch wieder zu dem altbewährten Nachtlauf übergehen. Echt schade, dass mein heißgeliebter MV45AFZZ keine Modifikationen der NAST hergibt .

Trotzdem ganz lieben Dank nach Mainz

Es grüßt der sonnige Chiemgau und ich

encore
vor 16 Jahre
Hallo Tine,

warum so erschüttert ?  MANUELL ist ja nur eine der Möglichkeiten - du wolltest doch darauf hinaus, dass beim ersten Sichern keine Nachricht erzeugt wird (kannst du über eine Bedingung blockieren),
und dann muss nun irgendwann irgendjemand ein Programm durchführen (manuell/Batchjob oder wie auch immer), das nun prüft, ob deine Datenbankänderung durch ist und bei welchem Beleg nun gegeben ist, dass er endlich (ggf. als Änderungsbeleg) gedruckt werden kann/soll.

Diese Prüfung per Programm bleibt dir immer - ausser du kannst deine Datenbank-Leute dahin bewegen, daß sie einen Trigger in die Datenbank einbauen, der alleine von sich aus reagiert, wenn ein Feldinhalt geändert wurde (auch wenn keine SAP-Applikation läuft).

Aber dann kommen wir wieder zu dem Punkt, programmieren kann man vieles, aber ............
Grüsse

nk

Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Hallo Encore ... Du bist ja lieb. Machst mir echt Mut.

Ich möchte nur bei den "speziellen" Aufträgen nicht sofort drucken. Alle anderen sollen wie bisher sofort ausgegeben werden. Daher die Idee die Nachricht generell auf "Sofortdruck" zu belassen und lediglich bei den betroffenen den Druck zu verzögern.

Ich könnte nun natürlich an die VBAP ein kundeneigenes CHAR1-Feld (um kein anderes zu mißbrauchen) aufnehmen und dieses vor meinem Absprung in den Workflow versorgen. Dieses Feld müsste ich dann in die Nachrichtenstruktur KOMKBV1 aufnehmen, via RVCOMFZZ versorgen und in der Bedingung abfragen.

Damit hätte ich dann bei den "speziellen" zunächst mal keine Nachricht und alle anderen wären weiter glücklich und zufrieden.

Danach könnte ich in meinem Workflow ... so ganz am Schluss ... die Nachricht via RSNAST00 ... hmmm ... geht das überhaupt, wenn im Auftag keine Nachricht steht ...

Was hältst Du davon?

Och menno ... hätt ich nur was 'Gscheits' g'lernt ...

 

encore
vor 16 Jahre
Hallo Tine,

prinzipiell würde das so gehen.

RSNAST00 macht ja nichts anderes als Nachrichten ausgeben, auch erstmalig, wenn die Bedingungen stimmen. Und du kannst halt ein ZSNAST00 machen mit deinen eigenen Abfragen, das dann deine eigenen Nachrichten ausgibt.

Grüsse

nk

Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Na dann ... machen wir das doch so.

Nochmal ganz lieben Dank. Ich hoffe ich kann mich irgendwann mal revanchieren.

Ciao Bello

Tine
  • Tine
  • SAP Forum - User Thema Starter
vor 16 Jahre

Hallo alle miteinander,

nun möcht ich zum Abschluss doch noch schnell mitteilen, wie ich mein Problem gelöst habe.

Ich hab den Versandzeitpunkt für unsere Nachricht (Auftragsbestätigung) generell auf 1 gesetzt. Damit wird die Nachricht in jeden Auftrag eingestellt (der RSNAST00 verarbeitet nur vorhandene Nachrichten in Belegen). Im Userexit MV45AFZZ hab ich mein Event ausgelöst, welches dann den Workflow startet. In diesem führe ich die Änderungen durch und drucke im Anschluss mit dem RSNAST00 die AB - egal ob ich in dem Auftrag etwas geändert habe oder nicht. Mit dem "oder nicht" stelle ich sicher, dass auch bei "nichtänderungsrelevanten" Aufträgen sofort eine AB gedruckt wird.

Hier noch eine Frage zur Forum generell ... es ist für mich das erste mal ... äh im Forum ...

Muss/kann ich meine Meldung irgendwie als erledigt kennzeichnen, damit sich nicht noch mehr Leute bemühen mein Problem zu lösen?

Liebe Grüsse und ein traumhaftes WE

Christine