FAQ033_「フィールド ソースファイル名 はテーブルの名前に存在しません 」エラーについて

◇質問
スクリプトを実行したら、EXPORTの処理で、「フィールド ソースファイル名 はテーブルの名前に存在しません 」というエラーが表示されました。

image

◇回答
このメッセージは、「ソースファイル名」フィールドが、対象のテーブルのフィールド名に存在しないことを意味します。
バージョンv2.3.1以降で、それより前のバージョンで作成したスクリプトを実行した場合に、当該エラーが発生する可能性があります。

【エラーの原因】
v.2.3.1より前のバージョンでは、「フォルダインポート」コマンドで、「ソースファイル名」フィールド(Excelは「シート名」フィールドも含みます)が自動で作成されていました。
v2.3.1では、「ソースファイル名」(および「シート名」)フィールドを作成する/しないを選択するオプションが追加されています。

以前のバージョンで作成したスクリプトで、「フォルダインポート」(IMPORT FOLDER)を使用している場合、このオプションが選択されていない状態となるため、スクリプトを実行すると、「ソースファイル名」、「シート名」フィールドが作成されない状態で、テーブルが作成されることとなります。
そのため、テーブル作成後の処理で、「ソースファイル名」、「シート名」フィールドが記述されたスクリプトがある場合、そのフィールドが存在しないというエラーとなります。

【対応方法】
以下のいずれかの方法でご対応をお願いいたします。

■方法1:スクリプトに「KEEPSOURCECOLUMN」オプションを追加する
スクリプトの「フォルダインポート」コマンドの記述に、ソースファイル名を作成するオプションを追加していただく方法です。
<手順>
①スクリプトで、「IMPORT FOLDER」で始まる行を探します。
②対象の行の「STARTLINE 数字」の後に、「KEEPSOURCECOLUMN」を追加します。
IMPORT FOLDER TYPE DELIMITED TO “テーブル名” FROM “フォルダ名” SUBFOLDER BASE “” “SHIFT_JIS” QUOTECHAR “” SEPARATOR “,” STARTLINE 1 KEEPSOURCECOLUMN FIELD [フィールド名1] ・・・

■方法2:手動でフォルダインポートを実行して、そのログをスクリプトに貼り付けなおす
フォルダインポートを再実行していただき、スクリプトを上書きしていただく方法です。
<手順>
①メニューの「インポート」-「フォルダインポート」で、対象のフォルダを選択します。
②「ファイルのプロパティ設定」の画面で、「ソースファイル名(とシート名)をフィールドして追加する」オプションにチェックを付けます。
その他の設定は、従来通りで進めます。
③「フォルダインポート」が完了したら、ログを開き、末尾に記録されたログ(IMPORT FOLDER …)にチェックマークを付け、右クリック→「コピー」を実行します。
④既存のスクリプトの対象の「IMPORT FOLDER …」の行に上書きで貼り付けます。

上記の操作実行後、スクリプトを実行してください。