英語で読む

次の方法で共有


オブジェクト出力コンポーネント

[この記事はプレリリース ドキュメントであり、変更されることがあります。]

このサンプル コンポーネントは、オブジェクト型出力プロパティの使用方法を示しています。 このコンポーネントは静的オブジェクトとプロパティ経由の出力を生成し、キャンバス アプリまたはモデル フォームのクライアント API 経由でアクセスすることができます。

使用可能な対象

モデル駆動型アプリとキャンバス アプリ

前提条件

コード コンポーネントの作成 に精通している。

コード

こちらから完全なコード サンプルを参照してください: PowerApps-Samples/component-framework/ObjectOutputControl/

マニフェストには、Data というオブジェクト型プロパティと、DataSchema という非表示プロパティが含まれています。 DataSchema プロパティはキャンバス アプリにのみ必要であり、出力オブジェクト スキーマを取得するためにプラットフォームによって使用されます。 これら 2 つのプロパティ間にプロパティの依存関係を作成する必要もあります。

<!-- A hidden property used by Canvas to get the output object schema -->
<property name="DataSchema"
   display-name-key="DataSchema"
   description-key="DataSchema"
   of-type="SingleLine.Text"
   usage="input"
   hidden="true" />
<!-- The object type output property -->
<property name="Data"
   display-name-key="Data"
   description-key="Data"
   of-type="Object"
   usage="output"
   hidden="false"
   default-value="" />
<property-dependencies>
   <!-- Define the dependency between schema and the object type property -->
   <property-dependency input="DataSchema"
      output="Data"
      required-for="schema" />
</property-dependencies>

index.ts ファイルでは、getOutputSchema メソッドを追加して、出力オブジェクト スキーマを指定する必要があります。 コントロールがキャンバス アプリに追加されると、プラットフォームはコントロールの初期化の前にこのメソッドを呼び出して、出力オブジェクト スキーマを受け取ります。

public async getOutputSchema(context: ComponentFramework.Context<IInputs>): Promise<Record<string, unknown>> {
   return Promise.resolve({
      Data: StaticDataSchema
   });
}

出力プロパティに値を返すように getOutput メソッドを更新します。

public getOutputs(): IOutputs {
   return {
      Data: this._staticData
   };
}

onLoadData メソッドは、データのロード ボタンが押されたときに呼び出され、データを出力オブジェクトにロードし、出力の変更についてプラットフォームに通知します。 これにより、コントロールについてはキャンバス アプリの onChange 動作が、クライアント API については OnOutputChange イベントをトリガーします。

private onLoadData = async () => {
   this._staticData = StaticData;
   this._staticData.loadCounter = (this._staticData.loadCounter || 0) + 1;
   this.notifyOutputChanged();
}

onOutputChange イベント
StandardControl.getOutputSchema
ReactControl.getOutputSchema
StandardControl.getOutputs
ReactControl.getOutputs

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。