次の方法で共有


データ インポートの実行

データのインポートは、Microsoft Dataverse サーバーで直接実行されます。 データ インポートを実行するには、次の内容を実行する非同期ジョブが、次の順序でバックグラウンド実行されるように設定します。

  • インポート ファイルに含まれているソース データを解析します。
  • データ マップを使用して、解析されたデータを変換します。
  • 変換されたデータを Dataverse にアップロードします。

適切なアクセス許可を持つすべての Dataverse ユーザーは、データインポートを実行できます。

ソース データを解析する

ソース データの解析時には、特定のインポート (データ インポート) に関連付けられたすべてのインポート ファイルが解析されます。

解析されたデータは、インポート ファイルごとに作成される解析テーブルに一時的に格納されます。 解析テーブルの名前は、 ImportFile.ParsedTableName 列に格納されます。 ソース ファイルの列見出しは、 ImportFile.HeaderRow 列で指定します。 ソース ファイルに列見出しを含む最初の行が含まれていない場合、この列はシステム生成の既定の列見出しを指定します。

解析されたデータを解析テーブルに保存するには、ParseImport メッセージを使用します。 GetDistinctValuesImportFile メッセージとRetrieveParsedDataImportFile メッセージを使用して、解析テーブルからデータを取得します。

次の表は、インポート ファイルを解析し、解析されたデータを解析テーブルから取得するために使用できるメッセージの一覧です。

メッセージ
SDK クラス
Web API アクションまたは関数
Description
ParseImportRequest
ParseImportRequest クラス
ParseImport アクション
指定されたインポート (データ インポート) に関連付けられたすべてのインポート ファイルを解析する非同期ジョブを送信します。 要求の ImportId プロパティの関連付けられたインポート (データ インポート) の ID を渡します。 バックグラウンドで実行され、データの解析を実行する非同期ジョブの ID は、応答の AsyncOperationId プロパティで返されます。
GetDistinctValuesImportFile
GetDistinctValuesImportFileRequest クラス
GetDistinctValuesImportFile 関数
リスト値を収めたソース ファイルにある列の個別の値を返します。 要求の ImportFileId プロパティの関連付けられたインポート ファイル の ID を渡します。 個別の値は、応答の Values プロパティ内の文字列の配列で返されます。 このメッセージは、ParseImport メッセージを使用して解析テーブルを作成した後でのみ使用します。
重要:ImportRecordsImport メッセージを使用した後は、このメッセージを使用しないでください。 ImportRecordsImport メッセージで送信されたインポート ジョブの実行の完了後は、解析テーブルにアクセスできません。
RetrieveParsedDataImportFile
RetrieveParsedDataImportFileRequest クラス
RetrieveParsedDataImportFile 関数
解析テーブルからデータを取得します。 要求の ImportFileId プロパティの関連付けられたインポート ファイル の ID を渡します。 解析されたデータは、応答の Values プロパティ内の文字列の 2 次元配列で返されます。 データは、ソース ファイルと同じ列順で返されます。 このメッセージは、ParseImport メッセージを使用して解析テーブルを作成した後でのみ使用します。
重要:ImportRecordsImport メッセージを使用した後は、このメッセージを使用しないでください。 ImportRecordsImport メッセージで送信されたインポート ジョブの実行の完了後は、解析テーブルにアクセスできません。

解析されたデータを変換する

データの変換は、特定のインポート (データ インポート) に関連付けられている使用可能なすべてのデータ マッピングおよび変換を、解析されたデータに適用して行われます。

TransformImportまたは TransformImport アクションを使用して メッセージを使用して、解析されたデータを変換する非同期ジョブを送信します。 要求の Import.ImportId 列に格納された、関連付けられているインポート (データインポート) の一意な識別子を渡します。 バックグラウンドで実行され、変換を行う非同期ジョブの一意の識別子が、メッセージ応答の AsyncOperationId プロパティに返されます。

変換されたデータを対象サーバーへアップロードする

変換が正常に完了すると、データを Dataverse サーバーにアップロードする準備が整います。

ImportRecordsImportまたは ImportRecordsImport アクションを使用して メッセージを使用して、変換されたデータを Dataverse にアップロードする非同期ジョブを送信します。 関連付けられているインポート (データ インポート) の一意識別子は、要求の ImportId パラメーターで指定する必要があります。 バックグラウンドで実行され、Dataverse にデータをアップロードする非同期ジョブを一意に識別するIDは、応答の AsyncOperationId プロパティで返されます。 指定されたインポート (データ インポート) に関連付けられているすべてのインポート ファイルがインポートされます。

各インポート ジョブには、作成するレコードの ImportSequenceNumber 列に格納される一意のシーケンス番号があります。 Organization.CurrentImportSequenceNumber列には、システムで実行された最後のインポート ジョブの一意のシーケンス番号が含まれています。 これらの一意のシーケンス番号を使用して、インポート ジョブに属するレコードを追跡できます。

エラー ログ

レコードのインポート エラーは、データの解析、変換、アップロード中などに発生します。 インポートに失敗したレコードに関するエラーの理由とその他の詳細情報は、インポート ログ (ImportLog) テーブルにキャプチャされます。

インポートに失敗したレコードの数を確認するには、レコードの ImportFile.FailureCount 列を取得します。 インポート中に部分的なエラーが発生したレコードの数を確認するには、 ImportData.HasError 列を取得します。 HasError列がtrueされている場合は、部分的なエラーが発生し、false場合はレコードが正常にインポートされます。

監査データをインポートする

Dataverse テーブルには、レコードが作成および最後に変更された日時と、レコードを作成および変更したユーザーを追跡するために使用される 4 つの既定の列があります。

createdon列は、レコードが作成された日時を指定します。 createdon列にデータをインポートするには、このデータを含むソース列をoverriddencreatedon列にマップします。 インポート時に、レコードの createdon 列は overriddencreatedon 列にマップされた値で更新され、 overriddencreatedon 列はデータがインポートされた日時に設定されます。 ソース値が overriddencreatedon 列にマップされていない場合、 createdon 列はデータがインポートされた日時に設定され、 overriddencreatedon 列は値に設定されません。

インポート時に createdon 列の値をオーバーライドするには、 prvOverrideCreatedOnCreatedBy 特権が必要です。 特権名は、インポート時に createdby 列をオーバーライドできることを意味します。 ただし、この機能は現在はサポートされていません。

modifiedoncreatedby、およびmodifiedby列にデータをインポートすることはできません。 データを作成および変更したユーザーに関連するデータを格納する必要がある場合は、Dataverse でカスタム列を作成し、ソース列を新しいカスタム列にマップできます。

こちらもご覧ください

データのインポート
インポート用のソース ファイルを準備する
インポート用データ マップの作成
インポート用の変換マッピングを追加する
データのインポートを構成する
データ インポート テーブル
サンプル: データ マップのエクスポートとインポート
サンプル: 複雑なデータ マップを使用してデータをインポートする
ブログ投稿: プログラムで添付ファイルをインポートする方法