変換マップで日付または日付/時刻の値を正しくマッピングするにはどうすればよいですか?SummaryExcel ファイルからインポートセットテーブルにデータをロードすると、ユーザーの Excel ファイルで使用されているデータ形式によっては、インポートセットテーブルに日付または日付/時刻データタイプのフィールドが自動的に作成される可能性があります。変換マップを使用してフィールド値をターゲットテーブルに変換するときに、特に日付または日付/時刻フィールドのフィールドマッピングで結合が true に設定されている場合、予期しない動作が発生する可能性があります。 次のような一般的な問題が発生する可能性があります。 問題 1日付タイプフィールドマッピングで Coalesce=true が設定されている場合、変換後にターゲットテーブルで日付値が予期しない日付値に変更されます。 たとえば、ソーステーブルでは日付値は「30-11-2017」で、ターゲットテーブルでは「09-05-0036」に変更されます。 問題 2日付/時刻タイプのフィールドマッピングで Coalesce=true が設定されている場合、変換後に日付/時刻の値が UTC タイムゾーンの値に変更され、ユーザーのタイムゾーン設定が無視されます。 たとえば、ユーザーが日本のタイムゾーンにいて、ソーステーブルの日付/時刻値が「2021-02-12 11:29:00」であるとします。変換後、ターゲットテーブルでは「2021-02-12 02:29:00」(UTC タイムゾーンで -9 時間) に変更されます。 問題 3フィールドマッピングで日付/時刻タイプのフィールドが選択されている場合、ユーザーが正しい日付形式を選択しても、変換中に以下のエラーメッセージが表示される。日付/時刻の値を変換することはできず、フィールドはターゲットテーブルで空のままになります。 「<source_field_name> フィールド のフォーマット文字列 yyyy-MM-dd HH:mm:ss を使用して 2021/02/12 11:30:00 をフォーマットできません"Releaseすべてのリリースに適用InstructionsServiceNow プラットフォームは、インポートセットテーブルの文字列フィールドタイプのみをサポートしています。ユーザーは、インポートセットテーブルのフィールドタイプを手動で変更する必要はありません。Excel ファイルの特定のデータ形式が原因で、インポートセットテーブルに日付または日付/時刻フィールドタイプのフィールドが作成される場合があります。これはサポートされていない使用方法であり、ユーザーはデータをインポートする前に Excel データの書式設定を修正する必要があります。 上記の問題を解決するための一般的なソリューションを以下に示します。 ソリューション 1 インポートセットテーブルでユーザー観測フィールドが日付または日付/時刻フィールドタイプで作成されている場合は、最初に Excel ファイルのデータフォーマットを変更します。これにより、すべてのフィールドがインポートセットテーブルの文字列フィールドタイプで作成されます。たとえば、元のセル値をコピーしてセルの書式設定を「テキスト」に変更し、値をセルに再度コピーします。 注意 1: インポートセットテーブルでフィールドが日付/時刻タイプで作成されると、[文字列] オプションがないため、テーブルディクショナリでフィールドタイプを文字列に変更することもできません。ユーザーはインポートセットテーブルを削除し、Excel でデータの書式設定を変更してから再度インポートする必要があります。以下のスクリーンショットを参照してください。 注意 2: インポートセットテーブルでフィールドが日付タイプで作成されている場合は、フィールドタイプを手動で文字列タイプに変更できます。ただし、同じ問題が再発しないようにするには、Excel ファイルのデータ形式を変更する必要があります。 注意 3: フィールドマッピングで正しい日付形式が選択されていることを常に確認してください。形式は、インポートセットテーブルのインポートされた日付または日付/時刻の値と一致する必要があります。 ソリューション 2 日付/時刻フィールドの場合、フィールドがインポートセットテーブルの文字列タイプで作成されていても、変換中に 問題 3 で上記のエラーが発生します。これは、日付/時刻フィールドの値に、値をターゲットテーブルに変換するための追加のスクリプトが必要なためです。 以下の手順とスクリーンショットに従ってください。 ステップ 1: フィールドマッピングで、日付/時刻フィールドのフィールドマッピングをクリックして開きます ステップ 2: [ソーススクリプトを使用] ボックスをオンにし、ソーススクリプトで、日付/時刻の値をプログラムで取得する 2 つのスクリプト行を追加します。==============================================var gdt = new GlideDateTime(source.<source_field_name>);return gdt.getValue();============================================== ステップ 3: [更新] をクリックして変更を保存します。これで、フィールドマッピングのソースフィールドが [スクリプト] に変更されました。以下のスクリーンショットを参照してください。 データのインポートと変換に進みます。これで、日付/時刻の値をターゲットテーブルに正常に変換できることがわかります。