Initialisierung (Variablen und Argumente)
Wichtig vor der Verwendung von Variablen und Argumenten ist es sie mit einem Wert vorzubelegen (d.h. zu initialisieren). Wenn Sie das nicht tun erhalten Sie schnell eine "NullReferenceException".
Das ist besonders bei komplexen Typen (also nicht string, bool, etc.) wichtig.
Objekt des Typs "WmsInvoice" initialiseren (hier mit Angabe des kompletten Namespaces)
new Accantum.Wms.ActivityContracts.Models.Invoice.V01.WmsInvoice()
In der Initialisierung können Sie mit "With" in geschweiften Klammen einzelne Eigenschaften des Objekts vorbelegen (nicht zu vergessen ist dabei der Punkt vor dem Eigenschaftsnamen):
Komplexe Typen initialisieren und mit Werten vorbelegen
new Accantum.Wms.ActivityContracts.Models.Invoice.V01.WmsInvoice With { .InvoiceNumber = 655, .LanguageId= "de" }
Bei der Initialisierung von Listen können gleichzeitig Listenelemente angegeben werden. Hierfür wird das Schlüsselwort "From" verwendet:
Liste mit Angabe von Elementen initialisieren
new System.Collections.Generic.List (Of string) From {"Item 1", "Item 2", "Item 3"}
Datentypen
Strings
Für String-Werte muss der Ausdruck in Anführungszeichen eingeschlossen werden "Text".
Mehrzeiligen string mit + umbrechen, z.B. „abc“ + „def“
Zeilenumbrüche in einem String: „\r\n“… oder Environment.NewLine
Wenn Sie in einem String ein Anführungszeichen verwenden wollen, muss dieses escaped werden. Escapen Sie Anführungsstriche indem Sie 2 Anführungsstriche setzen (also so: "Text "" Text")
String-Eingabe mit eckigen Klammern: Sollten Sie in einem String-Feld einen Text eingeben, der mit "[" beginnt und mit "]" endet, fügt der Workflow Designer automatisch ein Prozentzeichen zu ein. Bei der Ausführung wird dieses Zeichen nicht berücksichtigt.
Character (1 Zeichen)
Eingabe genau eines Zeichens (Typ Character): z.B. "z“C oder nur z ohne Anführungsstriche "
Decimal
Bei der Angabe einer Dezimalzahl muss der Zahl ein "D" folgen: z.B. 1.23D
Wird das "D" nicht angegeben, so interpretiert VisualBasic die Zahl als Double und kann die Zahl einer Eigenschaft vom Typ Decimal nicht zuweisen.
Liste / Collection / Array
Vor der Verwendung einer Liste muss diese initialisiert werden:
Beispiel: Anlegen einer Liste mit string-EinträgenNew List (Of string)
Weitere Informationen finden Sie hier: https://docs.microsoft.com/de-de/dotnet/visual-basic/programming-guide/language-features/collection-initializers/
Zugriff auf Elemente einer Liste: In VisualBasic werden bei Indexern runde Klammern „(i)“ statt eckigen (wie z.B. in C# oder Java) verwendet!
Besonders Hilfreich bei Listen sind LINQ-Ausdrücke
DateTime und TimeSpan
Für diese Typen bietet der Workflow Designer eine Vereinfachte Eingaben
Datum (Typ DateTime):
Statt „New DateTime(…)“ kann für Datumwerte folgende vereinfachte Schreibweise verwendet werden: bzw. mit Uhrzeit:Zeitspanne (Typ TimeSpan z.n. in der Delay-Aktivität)
Statt "New TimeSpan(...) kann für Werte dieses Typen auch folgende Schreibweise verwendet werden: (5 Minuten)
Umwandlung / Konvertieren von Typen
Umwandlung eines Wertes vom Typ "Object" in einen anderen Datentyp (in C# oder Java auch "Cast" genannt) funktioniert mit der Funktion "CType(<Value>, <Type>)".
Beispiel: Umwandlung der zurückgegebenen ID eines DMS-Attributes vom Typ "Mehrfachauswahl" in Guid
CType(accDocumentAttributes(dmsAttr_Projekte.Id), Guid())
Convert.ToXXX Methoden: Damit können Sie Integer, Strings, DateTimes, etc umwandeln
Beispiel: Umwandlung von String zu einem Integer
Convert.ToInt32("5")Weitere Informationen zur Umwandlung von Datentypen finden Sie hier https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/functions/type-conversion-functions
Alternativ können Sie auch die Konvertieren-Aktivitäten verwenden.