クライアント API Dataverse のレコード、ファイル、およびイメージ

$pages.webAPI オブジェクト

Power Pages Client API $pages.webAPI オブジェクトを使用して、Dataverse レコードの作成、取得、更新、削除を行い、ファイル列とイメージ列に格納されているコンテンツを操作します。

Method 説明
createRecord 指定したテーブルに新しいレコードを作成します。
retrieveRecord レコードを一意識別子で取得します。
retrieveMultipleRecords 指定されたクエリ オプションに基づいて複数のレコードを取得します。
updateRecord 指定したテーブル内の既存のレコードを更新します。
deleteRecord 指定したテーブルからレコードを削除します。
updateSingleProperty 既存のレコードの単一列の値を更新します。
deleteSingleProperty 既存のレコード内の 1 つの列の値を null に設定してクリアします。
associateRecord コレクション値ナビゲーション プロパティを使用して、2 つのレコード間の関連付けを作成します。
disassociateRecord 2 つのレコード間の関連付けを削除します。
getRecordCount 指定したテーブル内のレコードの合計数を返します。
uploadFileToColumn ファイルまたはイメージを既存のレコードのファイル列またはイメージ列にアップロードします。
downloadFileFromColumn ファイル列または既存のレコードの画像列のバイナリ コンテンツをダウンロードします。

createRecord メソッド

指定したテーブルに新しいレコードを作成します。

構文: $pages.webAPI.createRecord(entitySetName: string, data: object): Promise<string>
戻り値: 作成されたレコードの ID に解決される Promise 。

createRecord メソッドのパラメーター

作成するレコードを表すターゲット テーブルとデータ オブジェクトを指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。 Dataverse Web API のエンティティ セット名について説明します
data オブジェクト 作成するレコード データ。

createRecord メソッドの例

この例では、エンティティ セット名と最小限のデータ オブジェクトを使用して createRecord を呼び出す方法を示します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    $pages.webAPI.createRecord('contacts', {
        firstName: 'User',
        lastName: 'Test'
    });
});

retrieveRecord メソッド

レコードを一意識別子で取得します。

構文: $pages.webAPI.retrieveRecord(entitySetName: string, id: string, options?: string): Promise<object>
戻り値: レコード オブジェクトに解決される Promise 。

retrieveRecord メソッドのパラメーター

テーブル、レコード ID、およびオプションの OData $select クエリ オプションを指定して、応答を整形します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。 Dataverse Web API のエンティティ セット名について説明します。
id 文字列 レコードの一意識別子。
options string (省略可能) 省略可能な OData $select クエリ文字列。返されるデータを制限します。

Note

options パラメーターは省略可能ですが、パフォーマンスを最大限に高めるには、$select オプションを使用して返される列の値の数を常に制限します。

retrieveRecord メソッドの例

次の使用例は、1 つのレコードを ID で取得し、OData $select クエリ オプションを使用して返される列を制限します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    let record = await $pages.webAPI.retrieveRecord('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',  '$select=name');
});

retrieveMultipleRecords メソッド

指定されたクエリ オプションに基づいて複数のレコードを取得します。

構文: $pages.webAPI.retrieveMultipleRecords(entitySetName: string, options?: string): Promise<object>
戻り値: OData 応答オブジェクトに解決される Promise 。 応答の value プロパティには、レコードの配列が含まれています。

retrieveMultipleRecords メソッドのパラメーター

結果をフィルター処理し、返される列を制限するテーブルとオプションの OData クエリを指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。
options string (省略可能) 返されるデータを制御する OData クエリ オプション文字列。 Dataverse Web API でサポートされる OData クエリ オプションの詳細を確認する

Note

options パラメーターは省略可能ですが、パフォーマンスを最大限に高めるには、$select オプションを使用して返される列の値の数を常に制限します。

retrieveMultipleRecords メソッドの例

この例では、複数のレコードを取得し、OData $select と $top を使用して、返される列と行数を制限します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    let response = await $pages.webAPI.retrieveMultipleRecords('accounts', '$select=name&$top=3');
    let records = response.value;
    console.log(`Retrieved ${records.length} records.`);
});

updateRecord メソッド

指定したテーブル内の既存のレコードを更新します。

構文: $pages.webAPI.updateRecord(entitySetName: string, id: string, data: object): Promise<void>
戻り値: レコードが更新されたときに解決される Promise 。

updateRecord メソッドのパラメーター

テーブル、更新するレコード、および設定する列の値を指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。
id 文字列 更新するレコードの一意識別子。
data オブジェクト 更新する列と値。

updateRecord メソッドの例

次の使用例は、取引先企業レコードの名前を更新します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    await $pages.webAPI.updateRecord('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', { name: 'Updated Name' });
});

deleteRecord メソッド

指定したテーブルからレコードを削除します。

構文: $pages.webAPI.deleteRecord(entitySetName: string, id: string): Promise<void>
戻り値: レコードが削除されたときに解決される Promise 。

deleteRecord メソッドのパラメーター

削除するテーブルとレコードを指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。
id 文字列 削除するレコードの一意識別子。

deleteRecord メソッドの例

次の使用例は、取引先企業レコードを削除します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    await $pages.webAPI.deleteRecord('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb');
});

updateSingleProperty メソッド

既存のレコードの単一列の値を更新します。

構文: $pages.webAPI.updateSingleProperty(entitySetName: string, id: string, property: string, value: unknown): Promise<void>
戻り値: 列が更新されたときに解決される Promise 。

updateSingleProperty メソッドパラメーター

テーブル、レコード、更新する列、および新しい値を指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。
id 文字列 レコードの一意識別子です。
property 文字列 更新する列の名前。
value 不明 列の新しい値。

updateSingleProperty メソッドの例

次の使用例は、取引先企業レコードの名前列を更新します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    await $pages.webAPI.updateSingleProperty('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 'name', 'New Name');
});

deleteSingleProperty メソッド

既存のレコード内の 1 つの列の値を null に設定してクリアします。

構文: $pages.webAPI.deleteSingleProperty(entitySetName: string, id: string, property: string): Promise<void>
戻り値: 列の値がクリアされたときに解決される Promise 。

deleteSingleProperty メソッドパラメーター

クリアするテーブル、レコード、列を指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。
id 文字列 レコードの一意識別子です。
property 文字列 クリアする列の名前。

deleteSingleProperty メソッドの例

次の使用例は、取引先企業レコードの説明列をクリアします。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    await $pages.webAPI.deleteSingleProperty('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 'description');
});

associateRecord メソッド

コレクション値ナビゲーション プロパティを使用して、2 つのレコード間の関連付けを作成します。 このメソッドは、OData $ref 操作を使用してリンクを作成します。

構文: $pages.webAPI.associateRecord(entitySetName: string, id: string, navigationProperty: string, relatedEntitySetName: string, relatedId: string): Promise<void>
戻り値: レコードが関連付けられているときに解決される Promise 。

associateRecord メソッドのパラメーター

最初に親レコードを指定し、次にナビゲーション プロパティと関連レコードを指定します。

パラメーター タイプ 説明
entitySetName 文字列 リレーションシップの一方の親レコードのエンティティ セット名。
id 文字列 親レコードの一意識別子。
navigationProperty 文字列 リレーションシップを定義するコレクション値ナビゲーション プロパティの名前。
relatedEntitySetName 文字列 リレーションシップの多くの側にある関連レコードのエンティティ セット名。
relatedId 文字列 関連付ける関連レコードの一意識別子。

Important

entitySetNameパラメーターとid パラメーターを使用して、リレーションシップの一方の側で常に親レコードを指定します。

associateRecord メソッドの例

次の使用例は、 contact_association ナビゲーション プロパティを使用して、取引先企業レコードに連絡先レコードを関連付けます。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    await $pages.webAPI.associateRecord(
        'accounts',
        'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
        'contact_association',
        'contacts',
        'cccccccc-0000-1111-2222-dddddddddddd'
    );
});

disassociateRecord メソッド

2 つのレコード間の関連付けを削除します。

構文: $pages.webAPI.disassociateRecord(entitySetName: string, id: string, navigationProperty: string, relatedEntitySetName: string, relatedId: string): Promise<void>
戻り値: 関連付けが削除されたときに解決される Promise 。

disassociateRecord メソッドのパラメーター

最初に親レコードを指定し、次にナビゲーション プロパティと関連レコードを指定します。

パラメーター タイプ 説明
entitySetName 文字列 リレーションシップの一方の親レコードのエンティティ セット名。
id 文字列 親レコードの一意識別子。
navigationProperty 文字列 リレーションシップを定義するコレクション値ナビゲーション プロパティの名前。
relatedEntitySetName 文字列 関連レコードのエンティティ セット名。
relatedId 文字列 関連付けを解除する関連レコードの一意識別子。

Important

entitySetNameパラメーターとid パラメーターを使用して、リレーションシップの一方の側で常に親レコードを指定します。

disassociateRecord メソッドの例

次の使用例は、取引先企業レコードと連絡先レコードの関連付けを削除します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    await $pages.webAPI.disassociateRecord(
        'accounts',
        'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
        'contact_association',
        'contacts',
        'cccccccc-0000-1111-2222-dddddddddddd'
    );
});

getRecordCount メソッド

指定したテーブル内のレコードの合計数を返します。 このメソッドは、レコードのコレクションではなく整数を返す OData /$count エンドポイントを呼び出します。

構文: $pages.webAPI.getRecordCount(entitySetName: string): Promise<number>
戻り値: レコードの数に解決される Promise 。

getRecordCount メソッドのパラメーター

レコードをカウントするテーブルを指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。

Note

サーバーは、最大カウント 5,000 を返します。 テーブルに 5,000 を超えるレコードが含まれている場合、結果は 5,000 になります。 レコードを合計カウントと共に取得するには、代わりに $count=true クエリ オプションを指定して retrieveMultipleRecords メソッドを使用します。 そのメソッドは、応答の value プロパティのコレクションと、 @odata.count プロパティの合計数を返します。

getRecordCount メソッドの例

次の使用例は、取引先企業レコードの合計数を返します。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    const total = await $pages.webAPI.getRecordCount('accounts');
    console.log(`Total accounts: ${total}`);
});

uploadFileToColumn メソッド

ファイルまたはイメージを既存のレコードのファイル列またはイメージ列にアップロードします。 Dataverse はバイナリ コンテンツを格納し、 {columnName}_Name 列をファイル名で自動的に更新します。

構文: $pages.webAPI.uploadFileToColumn(entitySetName: string, id: string, columnName: string, file: File): Promise<void>
戻り値: ファイルのアップロード時に解決される Promise 。

uploadFileToColumn メソッドパラメーター

アップロードするテーブル、レコード、列、およびファイルを指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。
id 文字列 レコードの一意識別子です。
columnName 文字列 ファイルまたはイメージ列の論理名。
file File アップロードするファイル。

Note

このメソッドは、イメージ列と共に使用できます。 Dataverse は、サーバー上の EXIF メタデータを削除し、サムネイルを自動的に生成します。 downloadFileFromColumn メソッドを使用して、完全な画像またはサムネイルをダウンロードします。

uploadFileToColumn メソッドの例

次の使用例は、ファイル入力要素を使用して、他のユーザーが選択したファイルをアップロードします。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    const fileInput = document.querySelector('input[type="file"]');

    if (!fileInput || fileInput.files.length === 0) {
        return;
    }

    const file = fileInput.files[0];
    await $pages.webAPI.uploadFileToColumn('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 'new_attachment', file);
});

downloadFileFromColumn メソッド

ファイル列または既存のレコードの画像列のバイナリ コンテンツをダウンロードします。 大きなファイルは 4 MB のチャンクでダウンロードされ、1 つの BLOB に自動的に結合されます。

構文: $pages.webAPI.downloadFileFromColumn(entitySetName: string, id: string, columnName: string, options?: object): Promise<Blob>
戻り値: バイナリ データを含む BLOB に解決される Promise。 BLOB の type プロパティには、サーバーが返す MIME の種類が含まれます。

downloadFileFromColumn メソッドパラメーター

ダウンロードするテーブル、レコード、および列を指定します。

パラメーター タイプ 説明
entitySetName 文字列 エンティティセットの名前。
id 文字列 レコードの一意識別子です。
columnName 文字列 ファイルまたはイメージ列の論理名。
options object (省略可能) ダウンロードのオプション。 size プロパティはイメージ列に適用され、元のイメージをダウンロードするfullを受け入れるか、Dataverse によって生成されるサムネイルをダウンロードするためのthumbnailを受け入れます。 既定値は full です。

Note

応答にはファイル名は含まれません。 ファイル名を取得するには、 retrieveRecord メソッド を使用して、レコードの {columnName}_Name 列に対してクエリを実行します。

downloadFileFromColumn メソッドの例

次の使用例は、ファイル列からファイルをダウンロードし、ブラウザーに保存を求めます。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    const blob = await $pages.webAPI.downloadFileFromColumn('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 'new_attachment');

    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'downloaded_file';
    a.click();
    URL.revokeObjectURL(url);
});

次の使用例は、画像列から完全な画像とサムネイルをダウンロードします。

Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
    // Full-resolution image, which is the default.
    const fullBlob = await $pages.webAPI.downloadFileFromColumn('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 'entityimage');

    // Thumbnail that Dataverse generates.
    const thumbnailBlob = await $pages.webAPI.downloadFileFromColumn(
        'accounts',
        'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
        'entityimage',
        { size: 'thumbnail' }
    );
});