SOG-Helpcenter Logo SOG Business - Software

CSharp Jobs


Die Verarbeitung von CSharp-Jobs (mit Vorlaufdaten) in SOGActiveSkin sieht der Verarbeitung von Dialogmasken sehr ähnlich. Sie biete aber zusätzlich den Komfort, das Eingabewerte automatisch Benutzerabhängig gespeichert und wiederhergestellt werden, sowie die Möglichkeit zur Integration der Anwendungen in die SOG ERP (VACOS)-Job-Steuerung.

Legen Sie auch hier ein DD für die zu erzeugende Klasse an (Siehe Dialogmasken).
Ändern Sie jedoch in den neuen Klasse die Basisklasse von SOGDialogMask auf VacosDialogJob.


    public class DlgTstJob : VacosDialogJob
    {
        #region StandardImplementierung

        public static object NewDlgTstJob( string Para )

Implementieren Sie außerdem die Funktion "New..." folgendermaßen:

    public static object NewDlgTstJob( string Para )
    {
        DlgTstJob dlgo = new DlgTstJob( );

        dlgo.Initialize(Para);
        return dlgo;
    }

Als letztes implementieren Sie die eigentliche Funktionalität in der Funktion "Run":

    protected override void Run()
    {
        System.Threading.Thread.Sleep(1000);
        for (int i = 1; i <= m_anzahl; i++)
        {
            v.WriteStatus(v.Format("Durchlauf {0} - {1}-{2}", i, m_datvon.ToString("d"), m_datbis.ToString("d") ));
            System.Threading.Thread.Sleep(1000);
            if (AbortWork)
            {
                v.Slg.WriteError(v.Format("ABBRUCH DURCH BENUTZER!"));
                return;
            }
        }
    }

Die Basisklasse "VacosDialogJob" ist von "SOGDialogMask" abgeleitet, von bietet somit alle von dort bekannten Funktionen. Bei Drücken der Enter-Taste (Softkeycode 143!) wird jedoch automatisch die Verarbeitung gestartet (bzw. im Job-Modus die Eingabe gespeichert).

Über den Parameter "Para" der "NewDlg..." Funktion werden zur Laufzeit Verwaltungsfunktionen wie "Parameter erfassen", "Parameter darstellen" oder "Parameter füllen und Funktion ausführen" eingesteuert. Die Interpretation übernimmt die Basisklasse.

Die Initialize-Funktion steuert die Speicherung und Wiederherstellung von Benutzereingaben, sowie die Ansteuerung der Verarbeitungsfunktion "Run" IN EINEM EIGEN THREAD!

In der Run-Funktion stehen Ihnen die Funktion "v.WriteStatus" zur Ausgabe von Statusmeldungen, sowie die Variable "AbortWork" zur Prüfung des Abbruchwunsches des Benutzer zur Verfügung. Hier können Sie Ihre Verarbeitung implementieren. Beachten Sie das die Verarbeitung in einem eigenen Thread erfolgt.

Standardmäßig wird die Maske nach der Verarbeitung durch einen einfachen "RETURN"-Redirect abgeschlossen. Dieses Verhalten können Sie durch Setzen der Variablen "RedirectOnEnd" auf einen Redirect Ihrer Wahl verändern. Verwenden Sie die Variable "JobDate" für die Bestimmung des aktuellen Datums innerhalb des Jobs. Diese wird bei Jobverarbeitung auf den Aktivierungszeitpunkt des Jobs gesetzt.

Um Eingabe zu prüfen können Sie die Funktion "CheckInput" überschreiben. Um die Verarbeitung abzubrechen (Fehlerhafte Eingaben) werfen Sie eine Exception. (z.B. SOGMessageException). Die CheckInput-Funktion läuft noch im Kontext des Basis-Threads ab.

Die Run-Funktion läuft innerhalb einer Transaktion ab, und protokolliert auftretende Exceptions selbstständig. Möchte Sie eigene Transaktionen implementieren können Sie dies einfach über "v.BeginTransaction()" und "v.CommitTransaction()" erreichen.