サンプル: ExportDataUsingFetchXmlToAnnotation カスタム API
このサンプルでは、sample_ExportDataUsingFetchXmlToAnnotation
という名前のカスタム API をサポートするプラグインの作成方法を示します。
PowerApps-サンプル/dataverse/orgsvc/C#/ExportDataUsingFetchXmlToAnnotation/ からサンプル コードにアクセスできます。
プラグインは、カスタム API の主な操作のロジックを提供します。 sample_ExportDataUsingFetchXmlToAnnotation
カスタムAPIは、提供された FetchXML
入力パラメーターを使用してデータを取得し、CSV ファイルを作成します。 次に、注釈レコードを作成し、annotationid
を AnnotationId
レスポンス プロパティとして返します。
注 : CSV ファイルのデータのサイズは、システム設定で指定された添付ファイルのサイズ制限未満にする必要があります。そうでない場合、添付ファイルの作成は失敗します。
このサンプルを実行する方法
このサンプルにあるコードを実行するには、最初に組織でカスタム API を作成する必要があります。
カスタム API を作成するには、次の 2 つの方法があります。
マネージド ソリューション ファイルのインポート
このフォルダーの ExportDataUsingFetchXmlToAnnotation_1_0_0_0_managed.zip
には、このコードを使用する sample_ExportDataUsingFetchXmlToAnnotation
カスタム API とクリーンアップ API sample_CleanupExportedDataAnnotations
が含まれます。 このソリューション ファイルをインポートするだけで、組織でカスタム API を作成できます。 手順については、ソリューションのインポートを参照してください。
テストが終了したら、 sample_CleanupExportedDataAnnotations
カスタム API を使用して作成したデータを削除し、管理ソリューション を削除してカスタム API を削除します。
sample_ExportDataUsingFetchXmlToAnnotation
バインドされていないカスタム API です。 データの取得に使用される 1 つの入力パラメータ FetchXml
を取り、 AnnotationId
CSV ファイル データを含む作成された注釈レコードのレコード ID を返します。
sample_CleanupExportedDataAnnotations
API には入出力パラメータがありません。
カスタム API の作成
このプロジェクトでプラグイン アセンブリをビルドし、カスタム API を作成し、いくつかの方法のいずれかを使用してプラグイン ステップを関連付けることもできます。 詳細: カスタム API の作成
このソリューションには 2 つのカスタム API があります。 これらのカスタムAPIを記述する次の JSON は、Web API を使用して取得されました。 詳細: カスタム API に関するデータの取得
sample_ExportDataUsingFetchXmlToAnnotation
{
"uniquename": "sample_ExportDataUsingFetchXmlToAnnotation",
"allowedcustomprocessingsteptype@OData.Community.Display.V1.FormattedValue": "None",
"allowedcustomprocessingsteptype": 0,
"bindingtype@OData.Community.Display.V1.FormattedValue": "Global",
"bindingtype": 0,
"boundentitylogicalname": null,
"description": "Exports data using the input Fetch Xml to CSV attaches to an annotation record.",
"displayname": "Export Data Using Fetch XML to Annotation",
"executeprivilegename": null,
"isfunction@OData.Community.Display.V1.FormattedValue": "No",
"isfunction": false,
"isprivate@OData.Community.Display.V1.FormattedValue": "No",
"isprivate": false,
"workflowsdkstepenabled@OData.Community.Display.V1.FormattedValue": "No",
"workflowsdkstepenabled": false,
"customapiid": "bd8ffcee-5a38-4d0a-b296-6848c94dd22e",
"iscustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizableanddeletable"
},
"CustomAPIRequestParameters": [
{
"uniquename": "FetchXml",
"name": "Fetch Xml",
"description": "Fetch XML which is used to fetch all data and export to CSV",
"displayname": "Fetch Xml",
"type@OData.Community.Display.V1.FormattedValue": "String",
"type": 10,
"logicalentityname": null,
"isoptional@OData.Community.Display.V1.FormattedValue": "No",
"isoptional": false
}
],
"CustomAPIResponseProperties": [
{
"uniquename": "AnnotationId",
"name": "Annotation Id",
"description": "Id of the created annotation entity record.",
"displayname": "Annotation Id",
"type@OData.Community.Display.V1.FormattedValue": "Guid",
"type": 12,
"logicalentityname": null
}
],
"PluginTypeId": {
"typename": "PowerApps.Samples.ExportDataUsingFetchXmlToAnnotationPlugin",
"version": "1.0.0.0",
"name": "PowerApps.Samples.ExportDataUsingFetchXmlToAnnotationPlugin",
"assemblyname": "ExportDataUsingFetchXmlToAnnotation"
}
}
sample_CleanupExportedDataAnnotations
{
"uniquename": "sample_CleanupExportedDataAnnotations",
"allowedcustomprocessingsteptype@OData.Community.Display.V1.FormattedValue": "None",
"allowedcustomprocessingsteptype": 0,
"bindingtype@OData.Community.Display.V1.FormattedValue": "Global",
"bindingtype": 0,
"boundentitylogicalname": null,
"description": "Clean Up Exported Data Annotations",
"displayname": "Clean Up Exported Data Annotations",
"executeprivilegename": null,
"isfunction@OData.Community.Display.V1.FormattedValue": "No",
"isfunction": false,
"isprivate@OData.Community.Display.V1.FormattedValue": "No",
"isprivate": false,
"workflowsdkstepenabled@OData.Community.Display.V1.FormattedValue": "No",
"workflowsdkstepenabled": false,
"iscustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizableanddeletable"
},
"CustomAPIRequestParameters": [],
"CustomAPIResponseProperties": [],
"PluginTypeId": {
"typename": "PowerApps.Samples.CleanUpExportedDataAnnotationsPlugin",
"version": "1.0.0.0",
"name": "PowerApps.Samples.CleanUpExportedDataAnnotationsPlugin",
"assemblyname": "ExportDataUsingFetchXmlToAnnotation"
}
}
このサンプルの動作方法
Web API または Dataverse SDK for .NET を使用して、sample_ExportDataUsingFetchXmlToAnnotation
カスタム API を使用できます。
.NET 用 SDK のクイック スタートのサンプル手順を使用して、C# で .NET Framework コンソール アプリケーションを作成できます。 クイックスタート: .NET 用 SDK 要求を実行する (C#) を参照してください
プログラム クラスに次の静的メソッドを追加して、 FetchXML を使用してデータをAnnotationにエクスポートするための再利用可能なメソッドを作成します。
static Guid ExportDataUsingFetchXmlToAnnotation(IOrganizationService service) { var req = new OrganizationRequest("sample_ExportDataUsingFetchXmlToAnnotation") { ["FetchXml"] = @"<fetch version='1.0' output-format='xml-platform' mapping='logical'> <entity name='account'> <attribute name='accountid'/> <attribute name='name'/> </entity> </fetch>" }; var resp = service.Execute(req); var annotationId = (Guid)resp["AnnotationId"]; return annotationId; }
WhoAmIRequest
を呼び出すコードを次のコードに置き換えます。var annotationId = ExportDataUsingFetchXmlToAnnotation(svc)
実際の動作
- Fetch xml からデータを再帰的に取得する方法。
- 注釈エンティティへの csv 添付ファイルを作成する方法。
- カスタム API をサポートするプラグインの記述方法
- カスタム API を使用してカスタム API 関数を呼び出す方法
- .NET 用 SDK を使用してカスタム API を使用する方法
クリーンアップ
作成されたすべてのデータをクリーンアップするには、sample_CleanupExportedDataAnnotations
カスタム API アクションを使用して、作成された注釈レコードを削除してから、管理ソリューション をアンインストールします。
sample_CleanupExportedDataAnnotations
は次の基準を満たすすべての注釈レコードを削除します。
Column | 価値 |
---|---|
subject |
Export Data Using FetchXml To Csv |
filename |
exportdatausingfetchxml.csv |
Web API または Dataverse SDK for .NET を使用して、sample_CleanupExportedDataAnnotations
カスタム API を使用できます。
.NET 用 SDK のクイック スタートのサンプル手順を使用して、C# で .NET コンソール アプリケーションを作成できます。 クイックスタート: .NET 用 SDK 要求を実行する (C#) を参照してください
次の静的メソッドをプログラム クラスに追加して、
sample_ExportDataUsingFetchXmlToAnnotation
カスタム api を使用して作成したデータを削除するための再利用可能なメソッドを作成します。static void CleanupExportedDataAnnotations(IOrganizationService service) { var req = new OrganizationRequest("sample_CleanupExportedDataAnnotations") service.Execute(req); }
WhoAmIRequest
を呼び出すコードを次のコードに置き換えます。CleanupExportedDataAnnotations(svc)