Instantiierung von public class Helper
Frank Romeni
Regeln vom Coresuite Optimizer und Extended Code werden von Coresuite Customize in die Klasse public class Helper als Methoden und Felder eingefügt.Da ich Felder in Extended Code oft zur Synchronisierung von Regeln verwende und die Felder in Extended Code auch initialisiere, möchte ich wissen, wann und wie oft die Klasse Helper instantiiert wird, d.h. wann diese Felder initialisiert werden.
Zur Verdeutlichung meine Verwendung dieser Felder:
// in Extended Code
//
private bool syncXY = false;
...
// Ende Extended Code
// Regel X im Optimizer
//
if(!syncXY){
// Regel X nicht ausführen
//
return true;
}else{
// Regel X ausführen
//
...
}
// Ende Regel X
// Regel Y im Optimizer
// ausführen ...
...
// Ausführung von Regel X erlauben
//
syncXY = true;
// Ende Regel Y
Ich kann mich offensichtlich nicht darauf verlassen, daß syncXY im Extended Code immer bei Aufrug einer neuen SAP-Form initialisiert wird; manchmal funktioniert es aber doch ...
Vielen Dank für die Bereitstellung von Hintergrundinformationen!
Wir haben jetzt teilweise soviele Optimizer-Regeln, die sich gegenseitig stören können, daß ich diese Art der Synchronisierung immer häufiger brauche!
Gruß
Frank Romeni
Michael Egloff
Hallo Frank,wenn coresuite customize im "Normalgebrauch" ist (d.h. die Regeln sind alle erstellt), wird beim Start der coresuite die Klasse instantiert und die Felder initialisiert.
Danach werden "nur" noch die Methoden ausgeführt, welche aufgerufen worden sind, es wird nichts mehr kompiliert oder instantiert.
Anders verhält es sich, wenn man an den Regeln arbeitet. Dort ist es so, dass wenn du eine neue Code-Regel erstellst, wird die Klasse beim ersten Mal der neuen Funktion kompiliert und somit die Felder initialisiert.
Ich hoffe, das hilft dir weiter.
Gruss,
Michael
Frank Romeni
Vielen Dank für die Antwort - sie ist eindeutig!Für mich heißt daß, daß ich beim erneuten Aufruf einer SAP-Form (was ich mir durch eine entsprechende Regelaktivierung im Optimizer signalisieren lasse) die sync-Variablen innerhalb der Regel selbst in einen Initialzustand versetze.
Alternativ kann ich auch beim Verlassen der Form (Button-Event bei OK oder Abbruch) die sync-Variablen zurücksetzen.
Beides ist OK.
Danke!
Frank Romeni
0
Please sign in to leave a comment.
Comments
0 comments