既存のプロセスの簡単な紹介: SSIS の foreach ループは、エントリ パス フォルダー内のテキスト ファイルを検索してフラット ファイルを SQL Server テーブルにインポートします。インポート後、フラット ファイルをアーカイブ フォルダーにダンプします。これは合計 4 つのフラット ファイルで発生しますが、検索対象はテキスト ファイルのみであるため、問題はありません。
ただし、代わりに提示された新しいアイデアは、SSIS が最初にテキスト ファイルの日付と状態を (ファイル内ではなくファイル名から) 取得するプロセスを実行し、次にそのデータを状態と一緒に SQL Server に挿入することでした。日付を記録してから、ファイルをアーカイブします。この背後にある考え方は、日付が 1 か月前後の場合、SSIS はファイルをインポートしない (または、年が間違っている場合はインポートしない) というものでした。
そのため、SSIS は最初に 4 つのファイルが存在するかどうかを確認する必要があります。- 4 つのファイルが存在する場合、foreach ループに移動します (少なくとも、これがこの問題に対処する最善の方法だと思います)。- 各ループで、プロセスはファイル名から日付と状態を解析する必要があり、データを SQL Server にインポートして、解析された日付と状態を適切な列に追加する必要があります。- 次に、そのファイルをアーカイブして、次のファイルに移動する必要があります。
解析を行ったことがなく、式と接続文字列をいじって現在の月と年を検索しようとしましたが、うまくいきませんでした。
(最後に、私は C# をほとんど知らないので、スクリプト タスクは私の範囲外です)。