Inhaltsverzeichnis

DoCall

Methode der Klasse ModlEnv

  System.Boolean doCall ( System.String sModl , System.String sEvnt , params string[] sArgs )

Die Methode DoCall fordert bei der Infrastruktur die Ausführung eines anderen TAA-Services an. Der Rückkehrwert ist false, wenn der Aufruf nicht durchgeführt werden konnte.

Die Zuweisung der Parameter (sArgs) kann entfallen, wenn das aufgerufenen Modul keine Parameter erwartet. Wenn Parameter angegeben werden, sieht sie wie folgt aus:

  „<Parameter des gerufenen Moduls>=<Datenobjekt des Aufrufers> [byValorRef]“

Ab V7.04

  „<Parameter des gerufenen Moduls>=<Datenobjekt des Aufrufers> [byValorRef]“

oder

  „[<byValorRef>] <Parameter des gerufenen Moduls>=<Datenobjekt des Aufrufers> “

<Parameter des gerufenen Moduls> ist der Name des von dem aufgerufenen Modul erwarteten Parameterobjekts. <Datenobjekt des Aufrufers> kann ein lokales, ein globales oder ein Parameterobjekt sein.

Ab V7.04

  <ByValorRef> ist optional.

Hiermit kann angegeben werden, ob das Objekt direkt (als Referenz) oder als Kopie (nur Inhalt) übergeben werden soll. Zulässige Angaben sind „By Value“ oder „ByVal“, bzw. „by Reference“ oder „byRef“. Default ist „By Reference“.

Mehrere Parameterzuweisungen werden durch Komma, Semikolon oder „and“ getrennt.

Wenn der Parameter und das zugewiesene Objekt denselben Namen haben, kann die Schreibweise verkürzt werden:

Statt

  ptaaEnv.DoCall „Mein_Baustein“, „Bearbeiten“, „Kunde=Kunde“, „Rgnr=Rgnr“

genügt

  ptaaEnv.DoCall „MeinBaustein“, „Bearbeiten“, „Kunde“, „Rgnr“

z.B.

Me.doCall("pg-efun-formate", "anzeigen", "pgformt=pfmt");
Me.doCall("pg-ezug-liste1", "aendern", "ptest=Ptest", "pgbinl=pgbinl");

Ab V7.04 auch:

Me.doCall("pg-ezug-liste1", "aendern", "ptest=Ptest by value", "byref pgbinl=pgbinl");

Wenn der Baustein in einem Arbeitsgang unter einem WFM-System ausgeführt wird, sollten Sie nach dem DoCall abfragen, ob der Arbeitsgang unterbrochen oder zurückgesetzt wurde (IsSuspend); wenn ja, sollte der Baustein direkt verlassen werden.

Die TAA-Infrastruktur prüft nach einem doCall automatisch, ob vom gerufenen Modul eine Condition geraised wurde, die mglw. durch einen ID-Handler in dem aktuellen Modul bearbeitet werden soll, und veranlasst ggf. den cndRaise.

Ebenso überprüft die TAA-Infrastruktur - falls nicht der vorhergehende Raise bereits eine Aktion ungleich Resume ergab -, ob markierte Conditions vorliegen, und veranlasst ggf. den Raise dieser Conditions. Bei vorliegen mehrerer markierter Conditions werden diese geraised, bis alle Conditions abgearbeitet sind oder ein Aktionscode ungleich Resume vorliegt.

Der so ermittelte Aktionscode cndAction sollte nach dem doCall abgefragt und interpretiert werden.

Besonderheit für Web-Anwendungen

State

Methode der Klasse ModlEnv

  System.String State ( System.String sModl )

Diese Methode liefert den Status, mit dem ein bestimmtes, aufgerufenes Modul geendet hat. Der Name des Moduls ist als Argument zu übergeben.

Beispiel

using System;
using TeamWiSE.TAA;
 
namespace TESTCASE
{
 
    public class TC_DO_DLLCLR
    {
 
        public void Execute()
        {
            TAACondition cnd;
 
            ModlEnv _ModlEnv = taaEnv.taaRegister("TC-DO-DLLCLR");
 
            if (_ModlEnv != null)
            {
                _ModlEnv.ActiveState = "FEHLER";
                if (!_ModlEnv.doCall("TC-CALL-DLLCLR", "DURCHFUEHREN"))
                {
                    cnd = _ModlEnv.cndSet("MWDOTNET", 3, TAAConditionSeverity.Severe, "TC-DO-DLLCLR", "DURCHFUEHREN");
                    cnd.cndRaise();
                }
 
                if (!Check_CndAction_Continue(_ModlEnv) )
                {
                    _ModlEnv.Unregister();
                    return;
                }
 
                if ( _ModlEnv.Bp.IsFault )
                {
                    cnd = _ModlEnv.cndSet("MWDOTNET", 4, TAAConditionSeverity.Severe, "TC-DO-DLLCLR", "DURCHFUEHREN", _ModlEnv.State("TC-DO-DLLCLR"));
                    cnd.cndRaise();
                }
                _ModlEnv.ActiveState = "OK";
                _ModlEnv.Unregister();
            }
        }
 
        private Boolean Check_CndAction_Continue(ModlEnv _ModlEnv)
        {
            switch (_ModlEnv.cndAction)
            {
                case TAAConditionAction.ExitArgb:
                case TAAConditionAction.ExitModl:
                    _ModlEnv.Bp.Fault();
                    return false;
                default:
                    break;
                }
            return true;
        }
    }
}