Modellieren der Prozesse mit C#

Achtung
In der Version 2020.0.0 von Comarch DMS ist der C#-Prozessmodellierungsmechanismus eine Beta-Version.

Ab Version 2021.1.0 ist die C#-Prozessmodellierung in der Premium-Lizenz enthalten.

Ab der Version 2023.1.0 ist es möglich, mithilfe von C# Skripte für die automatische Arbeit zu erstellen (siehe Robotisierung von Prozessen).

 

Die Funktionalität, eigene Ereignisse in C# zu erstellen, wurde programmiert. In der aktuellen Version ist die Möglichkeit, Ereignisse in C# zu modellieren, in folgenden Steuerelementen verfügbar:

  • Tabellarische Daten,
  • Tabellarische Daten, Spalte des Typs Liste,
  • Datum und Uhrzeit,
  • Nachricht,
  • Ganzzahl,
  • Reelle Zahl,
  • Festkommazahl,
  • Liste,
  • Text,
  • Eigene Aktion

 

Bei den meisten Steuerelementen können Sie Skripte erstellen, um sowohl Werte in den Steuerelementen zu initialisieren, als auch die Werte anderer Steuerelemente zu beobachten. Das Beobachten von Werten ermöglicht es Ihnen, auf Änderungen zu „reagieren“. Bei Steuerelementen des Typs tabellarische Daten und Eigene Aktion ist auch möglich, „sich selbst zu beobachten“.

Um die Funktionalität zu aktivieren, wählen Sie bei der Installation oder Aktualisierung des Systems den Parameter „Wersja Premium“ („Premium-Version“) oder setzen Sie den Schlüsselwert PremiumFunctionality in der Datei „Web.config“ auf „True“ und geben Sie den entsprechenden Lizenzschlüssel ein: <add key=”PremiumFunctionality” value=”false” />

Das Aktivieren des C#-Editors führt dazu, dass zusätzliche Optionen für die Steuerelementdefinitionen angezeigt werden.

 

C#-Script-Position in den Optionen der Initialisierung des Werts des Steuerelements des Typs Text

 

C#-Script-Position im Steuerelement des Typs Eigene Aktion

 

Nachdem Sie angegeben haben, dass der Wert mit C#-Skript initialisiert wird, und darauf geklickt haben,

wird das Formular gestartet, in das Sie den C#-Code eingeben.

 

Fenster C#-Skript

 

Das Fenster C#-Skript besteht aus einem Feld, in das Sie den Code eingeben und dann mit der Schaltfläche  kompilieren und speichern.

Nach dem Kompilieren wird der Code als Bibliothek in der Lokalisierung …\bin\.scriptsc_cache im Verzeichnis gespeichert, in dem die Webanwendung Comarch DMS installiert wurde.

Im Feld Referenzen geben Sie die Namen der Bibliotheken ein, die vom C#-Code verwendet werden. Der Standardspeicherort zum Ablegen von Bibliotheken ist …\bin\scripts_bin im Verzeichnis, in dem die Webanwendung Comarch DMS installiert wurde.

Eine notwendige Bedingung für den korrekten Betrieb ist, dem Betreiber IIS_USER Vollzugriffsberechtigungen für das Verzeichnis .scriptsc_cache zu erteilen, was das dynamische Speichern von kompilierten Dateien ermöglicht.

Der C#-Skripteditor zeigt QuickInfos an, die Objekte der Steuerelemente der Workflow-Karte (Globals.MainFrame. *) und Variablen (Globals.Common. *) enthalten.

 

Hinweise, die im C#-Skripteditor angezeigt werden

 

Modellierung von Prozessen mit C#-Skript – grundlegende Informationen

Dem Benutzer, der den Workflow-Typ mit der C#-Methode modelliert, steht das Objekt „Globals“ zur Verfügung, dank dessen er Zugriff auf folgende Informationen hat: Dokument-ID, Prozess-ID, … Über dieses Objekt hat er auch Zugriff zu den Werten der Steuerelemente in der Workflow-Karte.

Das Objekt „Globals“ enthält folgende Informationen (Eigenschaften):

  • Eigenschaft „Common“ – in der sich folgende IDs befinden:

UserId (des Typs int) Betreiber-ID,

WorkflowId (des Typs int) Workflow-Typ-ID,

DocumentId (des Typs int?) Dokument-ID,

StageId (des Typs int?) Stufe-ID,

DocumentCompanyId (des Typs int) Gesellschaft-ID,

ParentDocumentId (desTyps int?) Dokumentbesitzer-ID.

Typ abgeschlossen „?“ (Int?) bedeutet, dass eine Variable neben numerischen Werten auch einen NULL (leeren) Wert speichern kann. Ein Beispiel für eine Situation ist, dass in einem Steuerelement des Typs Ganzzahl kein Wert eingegeben wurde.

 

  • Eigenschaft „MainFrame“ – enthält die Namen der Identifikatoren von Steuerelementen aus der Workflow-Karte

Im Steuerelement Tabellarische Daten sind folgende Funktionen und Eigenschaften verfügbar:

MainFrame.<NameTD>.Items[Index]… – Verweis auf den Wert des Steuerelements

  • Funktionen

MainFrame.<NameTD>.AddRow() – weitere Zeile hinzufügen.

MainFrame.<NameTD>.AddRows(count) – Zeilen hinzufügen, wobei „count“ bedeutet, wie viele Zeilen hinzugefügt werden sollen.

MainFrame.<NameTD>.RemoveRow(index) – Zeilen entfernen, wobei „index“ ist die Zeile zum Entfernen.

MainFrame.<NameTD>.Clear() – entfernt alle Zeilen.

  • Eigenschaften

MainFrame.<NameTD>.Column – Information über die zu ändernde Zelle – Spaltennummer.

MainFrame.<NameTD>.Column – Information über die zu ändernde Zelle – Zeilennummer.

MainFrame.<NameTD>.RowCount – Information über die Anzahl der Zeilen in TD (Tabellarische Daten).

 

Hinweis:

Bei C#-Tafeln – die erste Zeile ist 0.

 

Achtung
Wenn Sie zum ersten Mal eine mit C# modellierte Operation ausführen, kann sich der Mechanismus verzögern. Dies liegt daran, dass die DLL-Bibliothek in den Arbeitsspeicher des Computers geladen werden muss.

Aufgrund der Notwendigkeit, die Nomenklatur der C#-Sprache beizubehalten, ist es nicht möglich, polnische diakritische Zeichen und Leerzeichen in den Steuerelementbezeichnern zu verwenden.

 

Der Benutzer kann die Werte der Steuerelemente ändern, indem er die Eigenschaften „Value“ (Wert) oder „Text“ ändert. Z. B. Globals.MainFrame.Zahl.Value = 10;

Dies ist jedoch nur für Steuerelemente möglich, für die C#-Code eingetragen wurde, also das OnInit- oder OnChange-Ereignis (Beobachtung) abgerufen wurde. Alle anderen Eigenschaften sind schreibgeschützt.

 

Beispiel 1: Umschreiben aus dem Steuerelement Ganzzahl des Werts in ein Steuerelement des Typs Text namens Text:

Globals.MainFrame.Text.Text = Globals.MainFrame.Zahl.Value.ToString();

 

Beispiel 2: Abrufen des Werts von einem Steuerelement Komponente und Speichern dieses Werts im Steuerelement Summe plus 1

var a = Globals.MainFrame.Komponente.Value ?? 0; // wenn der Wert leer ist, 0 speichern
a = a + 1;
Globals.MainFrame.Summe.Value = a;

 

Beispiel 3: Umschreiben des Steuerelements des Typs Text des Werts in ein Steuerelement des Typs Ganzzahl, vorausgesetzt, dass der Wert eine Zahl ist

if (IsNumeric (Globals.MainFrame.Wert_Text.Text))
{
Globals.MainFrame.Zahl.Value = Int32.Parse(Globals.MainFrame.Wert_Text.Text);
}

public static bool IsNumeric(string value)
{
return value.All(char.IsNumber);
}

 

Beispiel 4: Ein Beispiel für das Abrufen von Informationen zu einer Betreiber-ID und deren Anzeige in einem Steuerelement des Typs Text

var info = „Betreiber-ID: ” + Globals.Common.UserId;
Globals.MainFrame.Information.Text = info;

 

Für das Steuerelement „Eigene Aktion“ wurde ein Schalter programmiert, mit dem Sie angeben können, wo der kompilierte C#-Code gespeichert werden soll. Sie können Code als Teil des IIS-Prozesses oder als unabhängigen (Singlethread-)Prozess ausgeführt werden. Das Ausführen auf einem unabhängigen Prozess wird für die API-Unterstützung empfohlen, die nicht auf mehrfädigen Prozessen wie IIS ausgeführt werden sollte.

 

Festlegen des C#-Code-Ausführungsorts für das Steuerelement „Eigene Aktion“.