Microsoft Project ファイルのリストを反復処理し、レコードをデータベースにインポートすることを除いて、あなたと同様の SSIS パッケージをセットアップしました。Foreach ループ コンテナー内では、最初にファイルが存在するかどうかを確認するためのチェックが実行されます。FileName の文字列変数とブール変数 bolFileExists をスクリプトに渡しています。ファイルが正しくフォーマットされているかどうかも確認しようとされていることは承知しており、以下のスクリプト タスク コードのようなものを適用できるのではないかと推測しています。
public void Main()
{
if (File.Exists(Dts.Variables["FileName"].Value.ToString()) )
{
Dts.Variables["bolFileExists"].Value = true;
}
else
{
Dts.Variables["bolFileExists"].Value = false;
}
}
ここから先は 2 つのパスになります。1 つ目は、「@bolFileExists==True」という式を適用してから、インポート プロセスを実行します。もう 1 つは、「@bolFileExists==False」という式を適用し、そのファイルをスキップして、次のファイルを処理できるようにします。テーブル駆動型の SSIS パッケージでは、両方のオプションについて、インポート ステータスは、インポートされるファイルを一覧表示するテーブルで定義されます。インポートされたファイルが 40 近くあります。これにより、クエリを実行して、不足しているファイルがないかどうかを判断し、プロセスの完了後に送信される自動メールでそのクエリを適用できます。
不適切なフォーマットについては、ワークシートの 1 つの指示に従うためのテンプレートをユーザーに提供することをお勧めします。その後、対象のワークシートに含まれる列のリストまたは数を収集するステージング テーブルまたは SQL を適用してみてください。ここで行うアプローチは、取得する情報の複雑さによって異なります。私の SSIS パッケージでも、インポート後もデータがオフになっている可能性があります。この場合、最初にチェックが実行される一時的なステージング テーブルにインポートし、関心のある基準を満たすものだけが MERGE を使用して最終決定テーブルに正規化されます。
ご不明な点がございましたら、お知らせください。これが問題の一部に役立つことを願っています。