Hallo zusammen,
mein Problem ist folgendes.
Ich habe im SD - User-exit MV45AFZZ mit einer IF Anweisung versucht einen Einteilungstyp zu erzwingen.
Im gleichen Schritt habe ich dies mit einem Werk und Lager getan, dies funktioniert auch.
Der Einteilungstyp soll bei bestimmten Rahmenbedingungen erzwungen werden, wenn diese nicht gelten sollen jedoch auch andere Einteilungstypen möglich sein.
Dies über verschiedene Positionstypen zu lösen halte ich für suboptimal und würde den Ablauf des Kunden im Alltag erschweren.
Der Einteilungsytp soll also zum einen gesetzt werden bei entsprechenden Rahmenbedingungen (was korrekt funktioniert) kann aber vom USER manuell im Nachhinein verändert werden (das soll eigentlich nicht gehen)
Für Werk und Lager ist die IF Anweisung ausreichend und der USER kann Sie bei entsprechenden Rahmenbedingungen nicht manuell verändern.
Im Debugger kann man folgendes beobachten:
Der Einteilungsytp wird zunächst korrekt "erzwungen".
Verändert ihn der USER führt die IF Anweisung dazu, dass der ETTYP bei der Abarbeitung des USER EXITs wieder auf den "erzwungenen" ETTYP zurück gesetzt wird .
Allerdings wird während der Abarbeitung des USER EXITs der ETTYP immer wieder verändert und springt zwischen dem vom USER veränderten ETTYP und dem (eigentlich) erwzungenen ETTYP hin und her.
Am Ende des USER EXITs ist der ETTYP dann so wie ihn der USER manuell eingestellt hat (also entgegen meiner IF Anweisung).
Ich habe versucht die IF Anweisung auf Einteilungsebene, auf Positionsebene, kurz vor dem "Save Document" Befehl, ... einzubauen.
Egal was ich mache der ETTYP lässt sich nicht erzwingen.
Es scheint als ob die manuelle Eingabe des USERs irgendwo temporär gespeichert wird und final (nach Abschluß des USER EXITs) wieder eingelesen wird. Meine Programmierung also umgangen wird.
Der ETTYP der erwzungen werden soll ist in der Positionstypenfindung als Default definiert.
Ich schreibe im Entwicklungsforum da ich der Meinung bin, dass dies kein SD Problem sondern ein Entwicklungsproblem ist.
Falls dies nicht so ist, bitte verschieben und nicht löschen.
Gruß Chris
*... who can do field replacements in the debugger can do anything in the system
*so this check can not stop (him) anyway.