Компонент вывода объекта

[Данный раздел посвящен предварительному выпуску и может быть изменен.]

В этом примере компонента показано, как использовать свойства выходных данных типа объекта. Этот компонент создает статический объект и выходные данные через свойство, которое затем можно получить в приложении холста или через клиентские API в форме модели.

Доступно для

Приложения на основе модели и приложения Canvas

Предпосылки

Знакомство с созданием компонентов кода.

Code

Полный пример кода можно найти здесь: PowerApps-Samples/component-framework/ObjectOutputControl/.

Манифест содержит свойство типа объекта, вызываемое DataDataSchema и скрытое свойство. Свойство DataSchema требуется только для приложений Canvas и используется платформой для получения схемы выходного объекта. Необходимо также создать зависимость свойств между этими двумя свойствами.

<!-- 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 , чтобы предоставить схему выходного объекта. При добавлении элемента управления в приложение Canvas платформа вызывает этот метод перед инициализацией элемента управления для получения схем выходных объектов.

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 в приложении Canvas для элемента управления или события OnOutputChange для клиентских API.

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