====== Alternative zum EntitySelector für Flatfiles ====== ===== Problem: ===== Eingehende Flatfiles **mit identischer Struktur** sollen anhand Dateiname unterschieden und mit unterschiedlichen Mappings in verschiedene Zieltypen konvertiert werden. ===== Standard Lösung: ===== Definiere und benenne die verschiedenen [[prozessdefinition:repositorien:entitaetstyp:|]] alle basierend auf der gleichen Objekt Klasse. Definiere die zugehörigen [[prozessdefinition:repositorien:Erkennungskomponenten:|]] und [[prozessdefinition:repositorien:analysator:|]]. Definiere die verschiedenen Dateinamen als Masken in den [[prozessdefinition:repositorien:Erkennungskomponenten:|]]. Weise den verschiedenen Analysatoren die entsprechende [[prozessdefinition:repositorien:Erkennungskomponenten:|]] und [[prozessdefinition:repositorien:entitaetstyp:|]] zu. Verwende im INBOUND Job für jeden analysierten [[prozessdefinition:repositorien:entitaetstyp:|]] einen spezifischen [[prozessdefinition:jobs:jobsteps:allgemein:entityselector|]]. **Vorteil:** saubere Trennung nach Typen in den Nachrichtenboxen möglich.\\ **Nachteil:** zusätzlicher Pflegeaufwand in den Repositorien. ===== Alternative Lösung ===== Verwende im INBOUND Job für jeden Typ einen [[prozessdefinition:jobs:jobsteps:allgemein:EntityIfCase]] um in die gewünschten Mappings zu verzweigen. Definiere die Expression im jeweiligen [[prozessdefinition:jobs:jobsteps:allgemein:EntityIfCase]] entsprechend der Objektklassen Struktur /FlatFileNoHeader/FlatNoHeader_Line[starts-with( GetFileName(), 'Dateiname' )] und verknüpfe die [[prozessdefinition:jobs:jobsteps:allgemein:entitytransformer]] bei **OnTrue**. **Vorteil:** geringer Pflegeaufwand in den Jobs.\\ **Nachteil:** keine Trennung nach Typen in den Nachrichtenboxen möglich.