Hallo Herr Schmidt,
hierfür benötigen Sie eine verschachtelte Bedingung. Im Anhang finden Sie ein kleines Beispiel dazu.
Die zwei Felder werden dabei erst einmal separat auf Ihre Richtigkeit geprüft. In Ihrem Fall einmal ob die dritte (bzw. fünfte) Spalte leer ist sowie ob die erste Spalte einen Wert größer als 9999 aufweist.
Achtung: Bei dieser Bedingung müssen Sie im
IF-THEN-ELSE Heater
den
FlowHeater Datentyp
auf einen Zahlen Datentyp (
Integer, Decimal, Double oder Currency) ändern, siehe Screenshot. Ansonsten wird hier nicht der Zahlenwert, sondern Zeichenweise verglichen. Hier wäre dann 9 schon größer als 1000, da das erste Zeichen bereits eine höhere Zeichensatz Kodierung aufweist!
Als Rückgabewert, falls die Bedingung zutrifft, wird hier nur ein statischer Wert über den
X-Value Heater
zurückgegeben, im Beispiel das Zeichen „#“.
Diese beiden Vergleichswerte werden dann über einen
String Append Heater
zusammengefasst und ein weiterer
IF-THEN-ELSE Heater
prüft dann ob dieser zusammengefasste Wert „##“ ist. Das ist er nur der Fall, wenn beide vorherigen Bedingungen zutreffen. Hier können Sie dann Ihren statischen Wert im DANN Zweig der Bedingung zurückgeben. Im SONST Zweig wird das
CSV
Feld an die WRITE Seite weitergereicht.
Alternative, erfordert Grundkenntnisse in der Programmierung
Als Alternative zu diesem Vorgehen können Sie auch einen .NET Script Heater und untenstehendes C# Skript dafür verwenden. Wurde ebenfalls im Beispiel berücksichtigt.
C# Skript
public object DoWork()
{
if (InValues.Length != 2)
throw new Exception("Es werden 2 Eingangsparameter erwartet!");
// ersten Eingangsparameter holen = 1. Spalte
int zahl = (int)InValues[0].GetInteger();
// zweiten Eingangsparameter holen = 3. Spalte
string wert = (string)InValues[1].GetString();
if (wert.Trim().Length == 0 && zahl > 9999)
{
wert = "3. Spalte leer und 1. Spalte größer 9999";
}
return wert;
}