Neues Thema starten
Beantwortet

FTP-Account variable setzen und nutzen

 Hallo,


wir haben einen Flow, welcher Daten von einem FTP-Server herunterlädt und verarbeitet. Dieser Flow soll für sehr viele verschiedene (über 20) FTP-Accounts ausgeführt werden. Gibt es eine Möglichkeit eine Schleife über mehrere Accounts zu erstellen und einen Flow für jeden Account auszuführen?


Ich habe versucht für den Account eine Flow-Variable anzulegen und die Account-IDs in einem Datastore zu speichern und darüber zu loopen, allerdings war mir keine Konvertierung auf den Variablen-Typ "account" möglich und der Loop an sich hat auch nicht wirklich geklappt.


Gibt es eine Möglichkeit das umzusetzen ohne für jeden Account einen eigenen Flow anzulegen?


Vielen Dank und mit freundlichen  Grüßen,

Dennis Kasparek (TRITUM GmbH)


Beste Antwort

Eine andere Variante wäre über separate Flows (pro Filiale / Lieferant) in Kombination mit einem zentralen Verarbeitungs-Flow, der per FlowExecutingStep angesprochen wird. 


Hier exemplarisch: 


Flow 1 - Lieferant A

Variablen: 

account: für. FTP-Account


Steps:

1. FTPSingleFileDownload (account)

2. FlowExecutingStep (account, ftpFile)


Flow 2 - zentrale Verarbeitung

Variablen: 

account: f. FTP-Account (damit weiss, die zentrale Verarbeitung, um welchen Account es geht)

file - das ist die Datei, die von den Lieferanten-Flows wie Flow 1 übergeben wird 


Steps:

1. CSVReader

2. Mapper (hier könnte man auch auf die account Variable zugreifen, um das Spreadsheet anzureichern, um zu wissen, aus welchem Account die Datei kommt)

3. etc.



Flow 1 dupliziert man dann pro Filiale / Lieferant und passt dort nur die Account-Flow-Variable an. 


Es sollte funktionieren, wenn man für jeden Account einen Step anlegt (FTPSingleFileDownload) . In jedem Step konfiguriert man dann den entsprechenden Account. 

Dann könnte man mit dem ToList Step die einzelnen Dateien zu einer FILELIST wandeln, die man dann gebündelt an den SpreadsheetCSVReader übergeben kann. 


Also das wäre eine Art und Weise, falls alle Dateien den gleichen Aufbau und Verarbeitungslogik haben (quasi Many-to-One). 


Das wäre eine Lösung die übergangsweise funktionieren kann, jedoch ist besonders bei der Vielzahl an Accounts das Limit des ToList-Steps mit 10 Input-Variablen so niedrig, dass wir mehrere ToList-Steps wieder miteinander verbinden müssten und uns somit eine Baum-Struktur aufbauen müssten. Da das System tendenziell wachsen soll, wäre eine dynamischere Lösung für uns wünschenswert. Später bräuchten wir auch die Herkunft der Daten, also von welchem FTP-Account die Daten stammen. Soweit wie ich das jetzt gesehen habe werden die Dateien komplett gemerged und die Inhalte in eine große Datei konkateniert.

Gibt es bei anderen Kunden nicht auch die Notwendigkeit beispielsweise mehrere Fillialen an ein System anzubinden und dafür eine Vielzahl an Accounts zum Download zu nutzen und eine Zuordnung vorzunehmen? ;)

 

Antwort

Eine andere Variante wäre über separate Flows (pro Filiale / Lieferant) in Kombination mit einem zentralen Verarbeitungs-Flow, der per FlowExecutingStep angesprochen wird. 


Hier exemplarisch: 


Flow 1 - Lieferant A

Variablen: 

account: für. FTP-Account


Steps:

1. FTPSingleFileDownload (account)

2. FlowExecutingStep (account, ftpFile)


Flow 2 - zentrale Verarbeitung

Variablen: 

account: f. FTP-Account (damit weiss, die zentrale Verarbeitung, um welchen Account es geht)

file - das ist die Datei, die von den Lieferanten-Flows wie Flow 1 übergeben wird 


Steps:

1. CSVReader

2. Mapper (hier könnte man auch auf die account Variable zugreifen, um das Spreadsheet anzureichern, um zu wissen, aus welchem Account die Datei kommt)

3. etc.



Flow 1 dupliziert man dann pro Filiale / Lieferant und passt dort nur die Account-Flow-Variable an. 

Vielen Dank, diesen Lösungsansatz hat mir ein Kollege eben auch empfohlen und diesen werden wir auch verfolgen.


Danke sehr und mit freundlichen Grüßen,

Dennis Kasparek

Anmelden um einen Kommentar zu veröffentlichen