Dynamische Erzeugung des Flatfile Dateinamens in Informatica Powercenter
Der Dateinamen eines Flatfile Targets in Informatica wird in den Target Properties der Session konfiguriert. Wie muss man aber vorgehen, wenn man keinen statischen Dateinamen haben möchte? Vom Auftraggeber könnte ja z.B. die Anforderung kommen, dass jeden Tag eine neue Datei erzeugt werden soll, die einen Zeitstempel im Dateinamen enthält.
Informatica biete hier im Target Designer eine etwas versteckte Option an, über die ein weiterer Port in der Target Definition erzeugt werden kann. Über genau diesen neuen Port kann der Dateiname dynamisch im Mapping generiert werden.
Sobald der neue Port im Target erzeugt wurde, legt man im Mapping in einer Expression Transformation einen weiteren Output Port an, der mit dem Filename Port des Targets verbunden wird.
Im Formel Edltor stehen dann alle Möglichkeiten zur Verfügung, um den Dateinamen nach den Anforderungen zu formen. In meinem Beispiel wird der Startzeitpunkt der Session (sessstarttime) in einen String im Format „YYYYMMDDHH24MISS“ umgewandelt und dem fachlichen Dateinamen mit der Concat Funktion vorangestellt.
Leider wird bei dieser Methode auch eine 0 Byte große Datei mit dem in der Session konfiguriertem Namen erzeugt. Ich lösche diese in der Regel in einem Post-Session Kommando über das Betriebssystem.