- Beiträge: 33
Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
- Umberto W. Ferrari
- Autor
- Offline
- Benutzer
Weniger
Mehr
1 Jahr 4 Monate her #4888
von Umberto W. Ferrari
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen wurde erstellt von Umberto W. Ferrari
Liebe Coummunitiy,
Ich habe folgende Aufgabenstellung:
Das Feld [RECEIVER NAME1] soll geprüft werden, ob es mehr als 30 Zeichen enthält.WENN NEIN
Die Daten sollen ohne Änderung ins Feld [RECEIVER NAME1] geschrieben werden.
WENN JA
Die ersten 30 Zeichen sollen ins Feld [RECEIVER NAME1] geschrieben werden UND die übrigen Zeichen sollen ins Feld [RECEIVER NAME2] geschrieben werden.
Ich weiß nicht, wie ich in einer IF-THEN-ELSE die Länge des Feldinhalts abfragen kann.
Für Hilfe bedanke ich mich bereits jetzt.
Gruss uwf.
Ich habe folgende Aufgabenstellung:
Das Feld [RECEIVER NAME1] soll geprüft werden, ob es mehr als 30 Zeichen enthält.WENN NEIN
Die Daten sollen ohne Änderung ins Feld [RECEIVER NAME1] geschrieben werden.
WENN JA
Die ersten 30 Zeichen sollen ins Feld [RECEIVER NAME1] geschrieben werden UND die übrigen Zeichen sollen ins Feld [RECEIVER NAME2] geschrieben werden.
Ich weiß nicht, wie ich in einer IF-THEN-ELSE die Länge des Feldinhalts abfragen kann.
Für Hilfe bedanke ich mich bereits jetzt.
Gruss uwf.
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 4 Monate her #4889
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Herr Ferrari,
das Prüfen auf die Länge des Feldinhaltes ist hier eigentlich gar nicht notwendig.
Sie können einfach 2x den SubString Heater verwenden. Im ersten tragen Sie für „Start Index“ 1 und „Länge“ 30 ein und im zweiten tragen Sie dann für "Start Index" 31 und "Länge" 0 ein, das sollte es gewesen sein.
Im Anhang finden Sie ein kleines Beispiel dazu. Im Beispiel ist zusätzlich noch vorhanden wie die Länge einer Zeichenfolge per IF-THEN-ELSE Heater geprüft wird.
das Prüfen auf die Länge des Feldinhaltes ist hier eigentlich gar nicht notwendig.
Sie können einfach 2x den SubString Heater verwenden. Im ersten tragen Sie für „Start Index“ 1 und „Länge“ 30 ein und im zweiten tragen Sie dann für "Start Index" 31 und "Länge" 0 ein, das sollte es gewesen sein.
Im Anhang finden Sie ein kleines Beispiel dazu. Im Beispiel ist zusätzlich noch vorhanden wie die Länge einer Zeichenfolge per IF-THEN-ELSE Heater geprüft wird.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Umberto W. Ferrari
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 33
1 Jahr 4 Monate her - 1 Jahr 4 Monate her #4890
von Umberto W. Ferrari
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Umberto W. Ferrari antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Robert Stark,
danke für die schnelle Antwort.
Der von Ihnen beschriebene Weg ist mir bekannt.
Die geschilderte Aufgabenstellung ist stark vereinfacht, um nicht die ganze Komplexität darstellen zu müssen.
Die Kernfrage ist, ob es möglich ist, in Abhängigkeit der Anzahl Zeichen in einem Feld bestimmte Tasks auszuführen? Also ungefähr so:
IF LENGTH(Feld)>30 THEN mache Aktion1 ELSE mache Aktion2.
Ich wünsche einen schönen Abend und grüsse
uwf.
danke für die schnelle Antwort.
Der von Ihnen beschriebene Weg ist mir bekannt.
Die geschilderte Aufgabenstellung ist stark vereinfacht, um nicht die ganze Komplexität darstellen zu müssen.
Die Kernfrage ist, ob es möglich ist, in Abhängigkeit der Anzahl Zeichen in einem Feld bestimmte Tasks auszuführen? Also ungefähr so:
IF LENGTH(Feld)>30 THEN mache Aktion1 ELSE mache Aktion2.
Ich wünsche einen schönen Abend und grüsse
uwf.
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Letzte Änderung: 1 Jahr 4 Monate her von Umberto W. Ferrari. Begründung: Ergänzung, Korrekturen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 4 Monate her #4892
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Herr Ferrari,
wenn ich ein Beispiel erstellen soll, bräuchte ich bitte etwas genauere Angaben was genau wie gemacht werden soll. Ich versuche immer die Umsetzung so einfach wie mögliche zu gestallten.
Im Anhang finden Sie ein angepasstes Beispiel, das etwas komplexer ist aber im Prinzip das gleiche macht.
wenn ich ein Beispiel erstellen soll, bräuchte ich bitte etwas genauere Angaben was genau wie gemacht werden soll. Ich versuche immer die Umsetzung so einfach wie mögliche zu gestallten.
Im Anhang finden Sie ein angepasstes Beispiel, das etwas komplexer ist aber im Prinzip das gleiche macht.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Umberto W. Ferrari
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 33
1 Jahr 4 Monate her #4896
von Umberto W. Ferrari
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Umberto W. Ferrari antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Robert Stark,
ich danke Ihnen erneut für die schnelle Antwort. Das hat mich weitergebracht.
Die gesamte Aufgabenstellung lautet wie folgt:
Ich wünsche Ihnen einen schönen Tag und grüsse Sie herzlich
uwf.
ich danke Ihnen erneut für die schnelle Antwort. Das hat mich weitergebracht.
Die gesamte Aufgabenstellung lautet wie folgt:
- Kunden liefern in [INPUT.XLSX] in den Spalten [RECEIVER NAME1] und [RECEIVER NAME2] Daten.
- Pro Spalte [RECEIVER NAME1] und [RECEIVER NAME2] dürften die Kunden maximal 30 Zeichen einfügen. Machen sie in manchen Fällen nicht.
- Jetzt gilt es, diese beiden Spalten [RECEIVER NAME1] und [RECEIVER NAME2] zu prüfen.
- Die Summe der Zeichen von [RECEIVER NAME1] und [RECEIVER NAME2] ist nie größer als 90.
- In der Datei [OUTPUT.XLSX] bestehen die drei Spalten [RECEIVER NAME1], [RECEIVER NAME2] und [RECEIVER NAME3].
- Die Spalten [RECEIVER NAME1], [RECEIVER NAME2] und [RECEIVER NAME3] dürfen je maximal 30 Zeichen enthalten.
- Daten [RECEIVER NAME1] und Daten [RECEIVER NAME2] werden unverändert in die entsprechenden Spalten von [OUTPUT.XLSX] geschrieben.
- Daten [RECEIVER NAME1] werden unverändert in die entsprechende Spalte von [OUTPUT.XLSX] geschrieben.
- Daten [RECEIVER NAME2] SubString(1|30) werden in [RECEIVER NAME2] und [RECEIVER NAME2] Substring(31|0) werden in [RECEIVER NAME3] geschrieben.
- Daten [RECEIVER NAME1] SubString(1|30) werden in [RECEIVER NAME1] geschrieben.
- Daten [RECEIVER NAME1] SubString(31|0) werden in [RECEIVER NAME2] geschrieben.
- Daten [RECEIVER NAME2] werden in [RECEIVER NAME3] geschrieben.
- Daten [RECEIVER NAME1] SubString(1|30) werden in [RECEIVER NAME1] geschrieben.
- Daten [RECEIVER NAME1] SubString(31|0) werden in [RECEIVER NAME2] geschrieben.
- Daten [RECEIVER NAME2] SubString(1|X) werden an die Zeichen aus [RECEIVER NAME1] in [RECEIVER NAME2] angehängt.
- Daten [RECEIVER NAME2] SubString(X|Y] werden in [RECEIVER NAME3] geschrieben.
Ich wünsche Ihnen einen schönen Tag und grüsse Sie herzlich
uwf.
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 4 Monate her #4897
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Herr Ferrari,
damit kann ich was anfangen
Das geht eigentlich nur per Skript und dem .NET Script Heater. Im Anhang finden Sie ein Beispiel wo ich das mal soweit vorbereitet habe.
Das Skript erwartet die zwei Eingangsparameter „Receiver1“ und „Receiver2“ und setzt dann 3 FlowHeater Parameter die dann den Ausgangsfeldern per Get Parameter Heater zugewiesen werden.
Den beschriebenen Fall 4 habe ich nicht ganz verstanden und aktuell nur halb umgesetzt. Hier müsste noch etwas individuelle Programmierung inkl. Tests stattfinden, Aufwand ca. 1-2 Stunden.
C# Skript Parameter setzen
damit kann ich was anfangen
Das geht eigentlich nur per Skript und dem .NET Script Heater. Im Anhang finden Sie ein Beispiel wo ich das mal soweit vorbereitet habe.
Das Skript erwartet die zwei Eingangsparameter „Receiver1“ und „Receiver2“ und setzt dann 3 FlowHeater Parameter die dann den Ausgangsfeldern per Get Parameter Heater zugewiesen werden.
Den beschriebenen Fall 4 habe ich nicht ganz verstanden und aktuell nur halb umgesetzt. Hier müsste noch etwas individuelle Programmierung inkl. Tests stattfinden, Aufwand ca. 1-2 Stunden.
C# Skript Parameter setzen
Code:
public object DoWork()
{
if (InValues.Length != 2)
throw new Exception("2 Eingangsparameter erwartet!");
// hier die Max. Länge ändern!
int len = 10;
// 1. (=0) Eingangsparameter holen
string in1 = (string)InValues[0].GetString();
// 2. (=1) Eingangsparameter holen
string in2 = (string)InValues[1].GetString();
// Parameter zurücksetzen
Parameter["Receiver1"].Value = "";
Parameter["Receiver2"].Value = "";
Parameter["Receiver3"].Value = "";
// Bedingungen
if (in1.Length <= len && in2.Length <= len)
{
// Fall 1
Parameter["Receiver1"].Value = in1;
Parameter["Receiver2"].Value = in2;
}
else if (in1.Length <= len && in2.Length > len)
{
// Fall 2
Parameter["Receiver1"].Value = in1;
Parameter["Receiver2"].Value = in2.Substring(0, len);
Parameter["Receiver2"].Value = in2.Substring(0, len);
Parameter["Receiver3"].Value = in2.Substring(len);
}
else if (in1.Length > len && in2.Length <= len)
{
// Fall 3
Parameter["Receiver1"].Value = in1.Substring(0, len);
Parameter["Receiver2"].Value = in1.Substring(len);
Parameter["Receiver3"].Value = in2;
}
else if (in1.Length > len && in2.Length > len)
{
// Fall 4
Parameter["Receiver1"].Value = in1.Substring(0, len);
Parameter["Receiver2"].Value = in1.Substring(len);
// Das müsste individuell angepasst werden!
}
// in dem Fall wird keine Rückgabe benötigt
return null;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Umberto W. Ferrari
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 33
1 Jahr 4 Monate her #4899
von Umberto W. Ferrari
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Umberto W. Ferrari antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Robert Stark,
danke erneut für die schnelle Antwort.
Mit dem TextFileAdapter funktioniert Ihr Skript wunderbar. Wenn ich das gleiche Skript für den ExcelAdapter (Read & Write) verwende (siehe Anhang), funktioniert es nicht. Mache ich etwas falsch?
Zum Fall 4:
Fall 4: LENGTH[RECEIVER NAME1]>30 UND LENGTH[RECEIVER NAME2]>30
Sorry, dass ich so kompliziert bin.
Ich wünsche einen schönen Abend und grüsse Sie herzlich
uwf.
danke erneut für die schnelle Antwort.
Mit dem TextFileAdapter funktioniert Ihr Skript wunderbar. Wenn ich das gleiche Skript für den ExcelAdapter (Read & Write) verwende (siehe Anhang), funktioniert es nicht. Mache ich etwas falsch?
Zum Fall 4:
Fall 4: LENGTH[RECEIVER NAME1]>30 UND LENGTH[RECEIVER NAME2]>30
- Die Summe der Zeichen aus [RECEIVER NAME1] und [RECEIVER NAME2] ist nie größer als 90 Zeichen.
- Daten [RECEIVER NAME1] SubString(1|30) werden in [RECEIVER NAME1] geschrieben.
- Daten [RECEIVER NAME1] SubString(31|0) werden in [RECEIVER NAME2] geschrieben.
- Daten [RECEIVER NAME2] SubString(1|X) werden an die Zeichen aus [RECEIVER NAME1] in [RECEIVER NAME2] angehängt.
- Daten [RECEIVER NAME2] SubString(X|Y] werden in [RECEIVER NAME3] geschrieben.
- Die ersten 30 Zeichen von [RECEIVER NAME1] sollen ins Feld [RECEIVER NAME1] geschrieben werden.
- Die restlichen Zeichen (>30) sollen ins Feld [RECEIVER NAME2] geschrieben werden.
- Es wird berechnet, wie viele Zeichen noch in Feld [RECEIVER FELD2] verfügbar sind, wenn in Feld [RECEIVER FELD2] maximal 30 Zeichen stehen dürfen.
- Diese Zahl von Zeichen wird mit einem Leerzeichen getrennt an die Zeichen aus [RECEIVER FELD1] in [RECEIVER FELD2] angehängt.
- Die übrigen Zeichen aus [RECEIVER FELD2] werden in [RECEIVER FELD3] geschrieben.
Sorry, dass ich so kompliziert bin.
Ich wünsche einen schönen Abend und grüsse Sie herzlich
uwf.
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 4 Monate her #4900
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
sorry ich hatte vergessen zu erwähnen, dass in dem Fall die Ausführung im .NET Script Heater auf „Pro Zeile/Satz“ gestellt werden muss, siehe Screenshot.
Hintergrund) Da der .NET Script Heater keine Verbindung zur WRITE Seite hat wird das Skript in dem Fall „Standard“ sonst nicht ausgeführt.
Hintergrund) Da der .NET Script Heater keine Verbindung zur WRITE Seite hat wird das Skript in dem Fall „Standard“ sonst nicht ausgeführt.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Umberto W. Ferrari
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 33
1 Jahr 4 Monate her #4902
von Umberto W. Ferrari
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Umberto W. Ferrari antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Diese Nachricht enthält vertrauliche Informationen.
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Umberto W. Ferrari
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 33
1 Jahr 4 Monate her #4903
von Umberto W. Ferrari
Hallo Robert Stark,
so funktioniert es, auch mit dem ExcelAdapter.
Danke Ihnen vielmals!
Wie löse ich die Aufgabe, wenn nicht nur die Felder [RECEIVER NAME1] und [RECEIVER NAME2], sondern zudem die Felder [RECEIVER ADDRESS1] und [RECEIVER ADDRESS2] in gleicher Art bearbeitet werden sollen?
Sie hatten geschrieben, dass Sie für den Fall 4 eine bis zwei Stunden Aufwand benötigen. Darf ich Sie fragen, wie hoch Ihr Stundenansatz ist?
Ich danke Ihnen für eine Antwort und grüsse Sie herzlich
uwf.
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Umberto W. Ferrari antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Robert Stark,
so funktioniert es, auch mit dem ExcelAdapter.
Danke Ihnen vielmals!
Wie löse ich die Aufgabe, wenn nicht nur die Felder [RECEIVER NAME1] und [RECEIVER NAME2], sondern zudem die Felder [RECEIVER ADDRESS1] und [RECEIVER ADDRESS2] in gleicher Art bearbeitet werden sollen?
Sie hatten geschrieben, dass Sie für den Fall 4 eine bis zwei Stunden Aufwand benötigen. Darf ich Sie fragen, wie hoch Ihr Stundenansatz ist?
Ich danke Ihnen für eine Antwort und grüsse Sie herzlich
uwf.
FlowHeater ein wirklich starkes Programm | Robert Stark ein genialer Entwickler und Supporter.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 4 Monate her #4904
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Feldlänge Wortlänge in IF-THEN-ELSE berücksichtigen
Hallo Herr Ferrari,
so wie Sie es gemacht haben ist es schon richtig. Sie müssen den .NET Script Heater ein zweites Mal verwenden und hier die Parameternamen anpassen. Wichtig ist, dass Sie auch hier die „Ausführung“ von „Standard“ auf „Pro Zeile/Satz“ stellen.
so wie Sie es gemacht haben ist es schon richtig. Sie müssen den .NET Script Heater ein zweites Mal verwenden und hier die Parameternamen anpassen. Wichtig ist, dass Sie auch hier die „Ausführung“ von „Standard“ auf „Pro Zeile/Satz“ stellen.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.342 Sekunden