私があなたの質問を正しく理解していれば、古いファイル形式または新しいファイル形式のファイル (同じファイル名だと思います) があり、フラット ファイル ソースに古い (10 列) データ ファイル スキーマしかないために失敗しますか? この場合、ブール変数を作成し、isOldFormat のような名前を付けます。次に、制御フローでスクリプト タスクを使用して、10 列か 15 列かを判断します。擬似コードは次のようになります。
1) フラット ファイルを開く 2) 区切り文字に基づいて列を数える 3) 条件ステートメント:
If columns.Count = 10 isOldFormat = True Else If columns.Count = 15 isOldFormat = False Else throw error
次に、新しいファイル形式スキーマを持つ別のデータ フローを作成します (基本的に、古いファイル形式と新しいファイル形式の 2 つのデータ フローがあります)。
この手順の後、優先順位の制約をスクリプト タスクから新しく作成したデータ フローにドラッグし、1 つを古いデータ フローにドラッグします。Predence 制約をダブルクリックして、エバリュエーター操作プロパティを [式] に設定し、[式] ボックスに @isOldFormat == true と入力して、古いフラット ファイル ソースを含むデータ フローへの制約を入力し、@isOldFormat == false を入力します。他のデータ フローの場合。これが行うことは、スクリプト タスクで設定された変数に基づいて、いずれかのデータ フローのみを実行します。
お役に立てれば。