Die dynamische Maßnahme, so wie das in der Tabelle T588Z gepflegt ist, zündet nur wenn im IT 0004 das Feld SBGRU (Behindertengruppe) geändert wird. Es wird dann ein Datensatz im IT 0019 Terminverfolgung angelegt und der IT2006 wird angepasst.
Meine Frage nun, ich muss das so abändern, dass wenn ich den Datensatz im I0004 abgrenze, weil ich einen Nachfolgesatz anlege, soll das Ausweisende in dem ersten Datensatz, bzw. in dem den ich angrenze dem Endedatum des Datensatzes angepasst werden.
wenn du in der T588Z mal die F1-Taste im Feld Kennzeichen und vor allem im Funktionsteil drückst, bekommst du eine ganz gute Erklärung, was machbar ist.
Ich denke in deinem Fall müsstest du wohl P0004-BEGDA und/oder -ENDDA mit dem ensprechenden PSAVE-BEGDA / ENDDA vergleichen und per MOD-Kommando den bestehenden Infotypen 2006 ändern.
Das ganze ist etwas knifflig, weil die dyn. Maßnahme Tippfehler nicht bemerkt und nachher nicht das macht, was sie soll. Aber mit Geduld und viel Testerei wird's schon klappen.
Gruß
donny
Ach ja: SAP-Hinweis 386027 ist auch ganz hilfreich zum Thema
vielen Dank für Deine Antwort. Ich habe mit PSAVE noch nicht gearbeitet und wenn ich es richtig verstanden habe, kann man damit den alten Wert des Feldes vergleichen.
Nur ist mein Problem jetzt wie gebe ich dem mit, dass wenn ein Datensatz im I0004 abgegrenzt wird, weil ich einen Nachfolgesatz anlege, dass dann das Ausweisende dem Endedatum des Datensatzes angepasst werden soll.
PSAVE hast du richtig verstanden. Hier müsstest du bei Änderungen (OPERA=02) abfragen, ob PSAVE-ENDDA = P0004-ENDDA ist. Ist das nicht der Fall, wurde der Satz abgegrenzt und du mußt das gleiche für den 2006er machen. Ist BEGDA unterschiedlich, mußt du vermutlich in gleicher Weise das Beginndatum des zugehörigen 2006er ändern?
Bei Neuanlage (OPERA=04), egal ob durch Kopieren oder direktes Neuanlegen, legst du einfach auch einen neuen 2006er an.
Bei automatischem Abgrenzen durch Anlegen eines überschneidenden Satzes sollten automatisch beide Operationen nacheinander aufgerufen werden, und deine Welt ist in Ordnung...
Mir geht es nicht um das Datum im IT2006 sondern um das Datum vom Ausweisende im IT0004.
Und zwar angenommen ich habe einen Datensatz vom 01.01.2005 bis 31.12.2006 und das Ausweisdatum ist der 30.09.2006. Sollte ich dann einen weiteren Datensatz im IT0004 anlegen wollen weil mir schon der neue Ausweis vorliegt, bspw. vom 01.12.2006 bis 31.12.2007 (kommt schon vor, dass der neue Ausweis einen Monat eher erstellt wird als der alte endet), in dem Fall möchte ich dass das Ausweisende im ersten Datensatz angepasst wird, in dem Fall auf den 30.10.2006.
jetzt hab' ich's verstanden. Ich glaube, das kriegst du mit dyn. Maßnahmen nicht hin.
Um den vorherigen Datensatz gezielt aufrufen zu können, müßtest du dessen Gültigkeit kennen (also. z.B. Beginndatum des aktuellen Satzes minus 1 ist Endedatum des vorherigen). Dann könntest du den vorherigen gezielt zum Ändern aufrufen. Aber es könnten ja auch Lücken zwischen den Datensätzen liegen, oder? Alle Sätze vom 01.01.1800 bis Beginndatum neuer Satz ist wohl auch nicht elegant.
Vielleicht lieber den Sachbearbeiter entsprechend anweisen, die Ausweisdaten entsprechend anzupassen?
Oder ein kleines Programm, das nächtens Ausweisdatum-Überschneidungen prüft und korrigiert?
genau das war mein Problem. Lücken können durchaus vorhanden sein, ist ja viels möglich. Und die Gültigkeit der Datensätze kann und ist mit Sicherheit unterschiedlich von PNr zu PNr.
Ja dann werde ich das wohl durch ein zusätzliches Programm abfangen müssen.
da fällt mir noch ein: Du kannst in den dyn. Maßnahmen auch Form-Routinen in eigenen Programme aufrufen.
Dort könntest du dann anhand des aktuellen Satzes von/bis-Datum und Ausweisdatum prüfen, ob im Infotypen 0004 Abgrenz-Aktivitäten notwendig sind. In dem Fall kann dann die Form-Routine über die Struktur RP50D entsprechende Infos in die dyn. Maßnahme zurückgeben, wo dann mit diesen Infos Aktionen auf dem alten Datensatz durchgeführt werden können.
In der Form-Routine selber solltest du keine Updates durchführen, hat beim mir jedenfalls nicht funktioniert.
Aufruf der Routine mit Kennzeichen F und dann NAME_DER_FORM_ROUTINE(NAME_DEINES_PROGRAMMS)
Danach Prüfen der von der Form-Routine gesetzten Daten (z.B: RP50D-DATE1) und ggfs Aktionen ausführen.
Hübsch ist auch, daß man die Form-Routine debuggen kann, und dabei ganz gut sieht, was abläuft.