CallOld
CallOld(alpha1[,var2[,...var9]])
Aufruf einer A- Prozedur mit Rückgabewert
Details
- alpha1: Name der A- Prozedur
- ...: Funktionsargumente
- Siehe: Verwandte Befehle ,
Call (),RmtCall ()
Die mit diesem Befehl aufgerufene A- Prozedur kann nur vom CONZEPT 16-Standard-Client verarbeitet werden. Aufrufe einer A- Prozedur innerhalb der Verarbeitung vom CONZEPT 16-Server, Programmierschnittstelle etc. führen zu dem Laufzeitfehler _ErrCallOld . Soll in diesen Umgebungen kein Laufzeitfehler generiert werden, kann er mit ErrIgnore () übersprungen werden.
Mit dieser Systemprozedur wird aus der aktuellen Prozedur heraus die in (alpha1) angegebene A- Prozedur aufgerufen. Nach Beendigung der Prozedur kehrt die Verarbeitung in die aktuelle Prozedur zurück.
Beispiel:
CallOld('Sum1') // Ruft die Prozedur SUM1 auf
An die aufgerufene Prozedur können bis zu 8 Werte beliebigen Typs übergeben werden. Die Typprüfung findet bei der Ausführung der Prozedur statt. In der aufgerufenen Prozedur müssen die übergebenen Werte ("Argumente") entsprechend deklariert sein.
Beispiel:
// Sum2 mit dem Wert 45 und dem Inhalt des Felds IntRes aufrufen
CallOld('Sum2', 45, IntRes);
Bei übergebenen Feldern oder Variablen kann die Bezeichnung var vorangestellt werden. Dies bedeutet, dass zunächst die in den Feldern oder Variablen enthaltenen Werte in die Variablen der aufgerufenen Prozedur übertragen werden. In der aufgerufenen Prozedur können diese Werte dann verändert werden. Nach der Rückkehr in die ursprüngliche Prozedur werden diese Werte dann wieder in die entsprechenden Felder oder Variablen übertragen (call-by-reference). Dies ist sinnvoll, wenn eine Prozedur ein Ergebnis an die aufrufende Prozedur zurückliefern soll.
Beispiel:
CallOld('VMS', 45, var Ct.Number);
Alle acht Argumente bei CallOld() können mit var gekennzeichnet werden. Das Attribut var kann nicht bei konstanten Werten, Systemfunktionen oder Ausdrücken benutzt werden.