Hallo nochmal,
vielleicht resultiert das Problem aus Unwissenheit
Angenommem:
Es existiert ein Merkmal <merk1>.
Dieses Merkmal ist nicht eingabebereit steht auch nicht offensichtlich in Bezug mit einer Prozedur, Bedingung etc. Es ist lediglich in einer Klasse hinterlegt und steht auch auf den Reitern des Konfigurationsprofils "zur Verfügung", wird also als nicht eingabebereit dargestellt.
Im Beziehungswissen wird eine Prozedur mit einer darin aufgerufenen Funktion ausgeführt. Gehen wir gedanklich davon aus, es gäbe ausschließlich dieses eine BZW. Sonst nichts, was durchlaufen wird.
Es ist keine Bedingung für die Ausführung der Funktion hinterlegt. Somit wird die Funktion IMMER durchlaufen!
Beim Aufruf der Funktion wird ein Dummy-Merkmal übergeben. Innerhalb der Funktion wird Logik verarbeitet und anschließend die Entscheidung getroffen, ob Merkmale(theoretisch alle Merkmale möglich) anzupassen sind oder nicht!!!.
Falls keine Anpassungen erforderlich sind, wird die Funktion verlassen. Falls doch, werden die relevanten Merkmale mit Werten über die Funktion "CUPR_SET_VAL" in die Konfiguration geschrieben. Auch das Merkmal <merk1>.
Nach dem Sichern des Belges sind die Merkmale der Konfiguration gefüllt und beim Aufruf der Funktion
"VC_I_GET_CONFIGURATION" sichtbar. Auch <merk1>.
Der Beleg wird nun erneut geöffnet, die Konfiguration gestartet und das o.g. BZW durchlaufen. In der Funktion wird festgestellt, dass keine Änderungen getätigt wurden und die Funktion wird OHNE Aufruf von "CUPR_SET_VAL" wieder verlassen.
Das <merk1> wurde durch KEIN! BZW angetastet und ist NULL ~ ich glaube es ist noch nicht einmal der typgerechte Initialwert (0,00) in dem Merkmal.
Wenn nun die Ausführung des o.g. BZW mit einer Bedingung versehen wird, und dieses BZW beim 2.ten Aufruf die Funktion NICHT ausführt, weil die Bedingung nicht erfüllt ist, wird das Merkmal <merk1> scheinbar wieder mit dem Wert des 1.ten Aufrufs versorgt.
Mal etwas unbeholfen ausgedrückt:
Ist der Wert des Merkmals <merk1> beim Aufruf ohne Bedingung nicht gefüllt, weil die Funktion theoretisch einen Wert für das Merkmal <merk1> hätte setzen können?
Beim Aufruf mit Bedingung hingegen ist klar, das der Wert "von nirgendwo" kommen konnte und somit wird der Wert aus dem 1.ten Aufruf gezogen
Ich hoffe ihr versteht mich. Irgendwie ist mir da die Logik der Wissensverabeitung in der Konfiguration nicht klar. In der Doku habe ich leider nichts gefunden...
Gruß,
Oliver