エンティティ フォーム コントロールの使用Use the Entity form control

エンティティ フォーム コントロールを使用して、Common Data Service エンティティに豊富なフォームを追加し、アプリをさらに短い期間で作成できます。Create apps faster by using the Entity form control to add rich forms for a Common Data Service entity.

エンティティ フォーム コントロールの概要については、「New Entity form control (experimental feature) for Common Data Service」 (Common Data Service の新しいエンティティ フォーム コントロール (試験的機能)) のブログ投稿をご覧ください。For an introduction to the Entity form control, see this blog post: New entity form control (experimental feature) for Common Data Service.

重要: このブログ投稿で記載されているとおり、エンティティ フォーム コントロールの試験的な性質に注意してください。また、少なくとも現時点では、エンティティ フォーム コントロールの実稼働アプリでの使用については慎重に検討してください。Important: Please be aware of the experimental nature of the Entity form control as outlined in the blog post, and be careful about using the Entity form control in production apps, at least for now.

主要なプロパティKey properties

エンティティ フォーム コントロールの主要なプロパティは次のとおりです。Here are the key properties of an Entity form control.

DataSource – 表示するレコードを含むデータ ソースを指定します。DataSource – Specifies the data source that contains the record(s) that you want to display.
: 現在、Common Data Service 内のエンティティのみがエンティティ フォーム コントロールのデータ ソースとしてサポートされています。Note: Currently only entities in the Common Data Service are supported as data sources for the Entity form control.

Patternエンティティ フォーム コントロールで表示するフォームのスタイルを指定します。Pattern – Specifies the style of the form that you want to display in the Entity form control. FormPattern 列挙型を使用して、このプロパティを設定します。Set this property by using the FormPattern enumeration.

  • FormPattern.List – レコードの表形式のリストを表示します。FormPattern.List – Displays a tabular list of records.
  • FormPattern.CardList – レコードのカード リストを表示します。FormPattern.CardList – Displays a card list of records.
  • FormPattern.Details – 単一レコードの詳細を表示または編集するためのフォームを表示します。FormPattern.Details – Displays a form to view or edit the details of a single record.
  • FormPattern.None – スタイルが明示的に指定されていません。FormPattern.None – No style has been explicitly specified. 既定値はタブレット アプリは List、携帯電話アプリは CardList です。Defaults to List for tablet apps and CardList for phone apps.

Itemエンティティ フォーム コントロールが表示する必要のあるデータ ソース内のレコードを指定します。Item – Specifies the record in the data source that the Entity form control should display. このプロパティは、PatternFormPattern.Details に設定されている場合にのみ使用されます。This property is used only when Pattern is set to FormPattern.Details.

Selected– 現在選択されているレコードを取得します。Selected – Gets the record that’s currently selected.
例: エンティティ フォームコントロールが販売注文レコードの一覧を表示する場合、Selected プロパティは現在選択されているレコードを指定します。Example: If the Entity form control displays a list of sales-order records, the Selected property will give you the record that’s currently selected. レコード内のフィールドにアクセスすることもできます。You can also access a field within a record. (たとえば、選択したレコードの Account フィールドを Selected.Account として指定します。)(For example, specify the value of the Account field of the selected record as Selected.Account.)

SelectableFields – どのフィールドがリンクとして表示される必要があるかを指定します。SelectableFields – Specifies which fields should appear as links. 次の構文を使用して、このプロパティの値を設定します。Set the value of this property by using this syntax:
{Field1Name : true, Field2Name : true}{Field1Name : true, Field2Name : true}
例: フォームで SalesOrderId および Account フィールドをリンクとして表示するには、そのフォームの SelectableFields プロパティを次の値に設定します。Example: If you want the SalesOrderId and Account fields to appear as links in a form, set the SelectableFields property of that form to this value:
{SalesOrderId : true, Account : true}{SalesOrderId : true, Account : true}

SelectedField – どのフィールドがクリックまたはタップされたかを特定します。SelectedField – Determines which field was clicked or tapped. これは、SelectableFields として指定されたフィールドにのみ適用されます。This applies only to the fields specified as SelectableFields.
例: SelectableFields プロパティを {SalesOrderId : true, Account : true} に設定し、ユーザーが Account フィールドをクリックまたはタップすると、SelectedField.Account が true に設定されます。Example: If you set the SelectableFields property to {SalesOrderId : true, Account : true} and the user clicks or taps the Account field, SelectedField.Account is set to true.

OnFieldSelect – ユーザーがフィールドをクリックまたはタップしたときのアプリの応答方法。OnFieldSelect – How an app responds when the user clicks or taps a field. これは、SelectableFields として指定されたフィールドにのみ適用されます。This applies only to the fields specified as SelectableFields.

Mode – フォームのモードを決定します。Mode – Determines the mode of the form. モードを変更するには、ViewFormEditForm、または NewForm 関数を使用します。To change the mode, use the ViewForm, EditForm, or NewForm function. これらの関数は、Pattern プロパティが FormPattern.Details に設定されている場合にのみ機能します。These functions work only when the Pattern property is set to FormPattern.Details. Mode プロパティの値を FormMode 列挙型の値に設定します。Set the value of the Mode property to a value of the FormMode enumeration.

  • FormMode.View – レコードを表示できますが、編集や追加はできません。FormMode.View – Allows users to view but not edit or add a record.
  • FormMode.Edit – レコードを編集できます。FormMode.Edit – Allows users to edit a record.
  • FormMode.New – レコードを追加できます。FormMode.New – Allows users to add a record.

OnSuccess – データ操作が成功したときのアプリの応答方法。OnSuccess – How an app responds when a data operation has been successful.

OnFailure – データ操作が失敗したときのアプリの応答方法。OnFailure - How an app responds when a data operation has been unsuccessful.

Unsaved – ユーザーが編集中のレコードに未保存の変更があるかどうかを特定します。Unsaved – Determines whether a record that a user is editing has unsaved changes.

エンティティ フォーム コントロールまたは編集フォーム コントロールのいずれかで、次の共有関数を使用できます。You can use these shared functions with either the Entity form control or the Edit form control. これらの関数は、Pattern プロパティが FormPattern.Details に設定されている場合にのみ編集フォーム コントロールで機能します。These functions work with the Entity form control only when its Pattern property is set to FormPattern.Details.

ViewFormエンティティ フォーム コントロールの Mode プロパティを FormMode.View に設定します。ViewForm – Sets the Mode property of an Entity form control to FormMode.View.

EditFormエンティティ フォーム コントロールの Mode プロパティを FormMode.Edit に設定します。EditForm- Sets the Mode property of an Entity form control to FormMode.Edit.

NewForm - エンティティ フォーム コントロールの Mode プロパティを FormMode.New に設定します。NewForm - Sets the Mode property of an Entity form control to FormMode.New.

SubmitForm - ユーザーがエンティティ フォーム コントロールのレコードを編集するときに、変更を保存します。SubmitForm - Saves changes when a user edits a record in an Entity form control.

ResetForm - ユーザーがエンティティ フォーム コントロールでレコードを編集するときに、未保存の変更を破棄します。ResetForm - Abandons unsaved changes when a user edits a record in an Entity form control.

さまざまなプロパティや関数の概要を説明しました。これ以降では、これらの操作について説明します。Now that you have an overview of the various properties and functions, let’s look at them in action.

: Common Data Service データベースへのアクセス権がない場合は、以下の手順を行う前にアクセス権を取得してください。Note: If you don’t have access to a Common Data Service database, create one before you start to follow these steps.

レコードの一覧を表示するDisplay a list of records

次の 5 つの手順では、単一の、エンド ツー エンドのエンティティ フォーム コントロール使用方法の例を提供します。The next five procedures provide a single, end-to-end example of how to use Entity form controls. この手順では、販売注文の一覧を表示するフォームを追加します。In this procedure, add a form that shows a list of sales orders.

  1. 空白のタブレット アプリを作成します。Create a blank tablet app.

  2. 最初の画面 SalesOrderListScreen の名前を変更します。Rename the first screen SalesOrderListScreen.

  3. [挿入] タブの [フォーム] をクリックまたはタップし、[エンティティ フォーム (試験段階)] をクリックまたはタップします。On the Insert tab, click or tap Forms, and then click or tap Entity form (experimental).

    エンティティ フォーム コントロールが画面に追加されます。An Entity form control is added to the screen.

  4. エンティティ フォーム コントロール SalesOrderListForm の名前を変更し、画面全体をカバーするサイズに変更します。Rename the Entity form control SalesOrderListForm, and resize it to cover the entire screen.
  5. 右側のウィンドウで、テキスト [データ ソースが選択されていません ] の横にあるデータベース アイコンをクリックまたはタップしてから、[データ ソースの追加] をクリックまたはタップします。In the right-hand pane, click or tap the database icon next to the text No data source selected, and then click or tap Add a data source.

  6. 接続の一覧で、データベースの接続をクリックまたはタップします。In the list of connections, click or tap the connection for your database.

  7. エンティティの一覧で、[販売注文] をクリックまたはタップしてから、[接続] をクリックまたはタップします。In the list of entities, click or tap Sales order, and then click or tap Connect.

    販売注文エンティティのデータ ソースが作成され、SalesOrderListFormDataSource プロパティがそのデータ ソースに設定されます。A data source for the Sales order entity is created, and the DataSource property of the SalesOrderListForm is set to that data source.

    エンティティ フォームコントロールが販売注文の一覧を表示します。The Entity form control shows a list of sales orders. エンティティ フォームコントロールを使用して、手動で構築することなく、リスト フォームをすばやく表示しました。By using the Entity form control, you quickly displayed a list form without having to manually build it.

    エンティティ フォーム コントロールの Pattern プロパティを設定していないため、既定で List パターンになります。You didn’t set the Pattern property for the Entity form control, so it defaults to the List pattern. さらに、販売注文エンティティの DefaultList フィールド グループが、リスト フォームの表示に使用されます。In addition, the DefaultList field group of the Sales order entity is used to display the list form. また、フォームは動的であり、フィールド グループでの変更を自動的に反映します。The form is also dynamic and will automatically reflect any change in the field group.

  8. (オプション) 販売注文エンティティの DefaultList フィールド グループを表示します。(Optional) View the DefaultList field group of the Sales order entity:

    1. powerapps.com にサインインし、左側のナビゲーション ウィンドウの [Common Data Service] をクリックまたはタップし、[エンティティ] をクリックまたはタップします。Sign in to powerapps.com, click or tap Common Data Service in the left navigation pane, and then click or tap Entities.
    2. エンティティの一覧で [販売注文] をクリックまたはタップし、[フィールド グループ] タブをクリックまたはタップしてから、[DefaultList] フィールド グループをクリックまたはタップします。In the list of entities, click or tap Sales order, click or tap the Field groups tab, and then click or tap the DefaultList field group.

      販売注文の一覧のフィールドは、ここに表示されるフィールドに一致します。The fields in the sales order list match those listed here.

      Common Data Service で、(標準エンティティではなく) カスタム エンティティのフィールド グループを変更して、エンティティ フォーム コントロールに表示される、対応するフォーム上のフィールドを変更することができます。In the Common Data Service, you can modify field groups for custom entities (but not standard entities) to change the fields that appear on the corresponding forms that the Entity form control displays. 特に、フィールド グループへの変更は自動的に、エンティティ フォーム コントロールを使用するすべてのアプリに反映されます。Best of all, any change to the field group is automatically reflected in all the apps that use an Entity form control to display the corresponding form.

レコードの詳細を表示するDisplay the details of a record

別のエンティティ フォーム コントロールを追加して、前に作成した一覧で選択されている販売注文の詳細を表示しましょう。Let’s add another Entity form control to display the details of the sales order that’s selected in the list that you created earlier.

  1. SalesOrderListForm のサイズを、画面の半分をカバーするように変更し、2 つ目のエンティティ フォーム コントロールを追加して、画面のもう半分をカバーするようにします。Resize SalesOrderListForm to cover half the screen, and add a second Entity form control to cover the other half of the screen.

  2. 2 つ目のエンティティ フォーム コントロール SalesOrderDetailsForm の名前を変更し、前に作成した販売注文データ ソースに接続します。Rename the second Entity form control SalesOrderDetailsForm, and connect it to the Sales order data source that you created earlier.

  3. SalesOrderDetailsFormPattern プロパティを FormPattern.Details に設定します。Set the Pattern property of SalesOrderDetailsForm to FormPattern.Details.

    SalesOrderDetailsForm は、販売注文エンティティの DefaultDetails フィールド グループを使用して、フォームを表示します。SalesOrderDetailsForm uses the DefaultDetails field group of the Sales order entity to display the form. SalesOrderListForm と同様、フォームを手動で作成することなく、すばやくレコードの詳細を表示することができます。As with the SalesOrderListForm, you can quickly show record details without having to manually build a form.

  4. SalesOrderDetailsFormItem プロパティを SalesOrderListForm.Selected に変更します。Set the Item property of SalesOrderDetailsForm to SalesOrderListForm.Selected.

    SalesOrderDetailsForm は、ユーザーが SalesOrderListForm でクリックまたはタップするレコードの詳細を表示します。SalesOrderDetailsForm will display the details of the record that the user clicks or taps in SalesOrderListForm.

  5. F5 を押してアプリをプレビューしてから、左側の一覧にある販売注文をクリックまたはタップします。Preview the app by pressing F5, and then click or tap a sales order in the list on the left.

    選択した注文の詳細は、右側に表示されます。The details of the order that you selected appear on the right side.

別の画面に移動するためのフィールドの構成Configure a field to navigate to another screen

次は、アプリにさらに画面を追加してから、エンティティ フォーム コントロールのフィールドを構成して、アプリでフィールドをクリックまたはタップしたときに、別の画面に移動するようにしましょう。Next let’s add more screens to our app and then configure fields in an Entity form control to navigate to another screen in the app when the user clicks or taps a field.

  1. 2 つ目の画面をアプリに追加し、画面 SalesOrderDetailsScreen の名前を変更します。Add a second screen to the app, and rename the screen SalesOrderDetailsScreen.
  2. SalesOrderDetailsForm を切り取って SalesOrderDetailsScreen に貼り付け、上部のにあるアイコンのスペースを確保した状態で、画面の大部分がカバーされるようにフォームのサイズを変更します。Cut the SalesOrderDetailsForm, paste it on the SalesOrderDetailsScreen, and resize the form to cover most of the screen, leaving enough space for an icon at the top.
  3. SalesOrderDetailsScreen の左上隅近くに、左向き矢印アイコンを追加します。Add a back-arrow icon near the upper-left corner of SalesOrderDetailsScreen.
  4. 左向き矢印アイコンの OnSelect プロパティを Back 関数に設定します。Set the OnSelect property of the back-arrow icon to the Back function.

  5. SalesOrderListScreen で、SalesOrderListForm のサイズを変更し、画面全体がカバーされるようにします。On the SalesOrderListScreen, resize the SalesOrderListForm to cover the entire screen.
  6. SalesOrderListForm をクリックまたはタップして選択します。Click or tap the SalesOrderListForm to select it.
  7. 右側のウィンドウの [フィールド] の下で、SalesOrderId を設定して SalesOrderDetailsScreen に移動するようにします。In the right-hand pane, under Fields, set SalesOrderId to navigate to the SalesOrderDetailsScreen.

    エンティティ フォーム コントロールが SalesOrderId フィールド (一覧の最初の列) の値ををリンクとして表示します。The Entity form control displays the values in the SalesOrderId field (the first column in the list) as links.

  8. F5 を押してアプリをプレビューしてから、販売注文の一覧にあるリンクをクリックまたはタップします。Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    2 つ目の画面が開き、指定した販売注文の詳細が表示されます。The second screen opens and displays the details of the sales order that you specified.

    別の販売注文の詳細を表示するには、左向き矢印をクリックまたはタップして一覧に戻り、詳細を表示する注文のリンクをクリックまたはタップします。To display the details of a different sales order, click or tap the back arrow to navigate back to the list, and then click or tap the link of the order for which you want to show details.

SalesOrderDetailsFormItem プロパティは、ユーザーが SalesOrderListForm で選択したレコードの詳細が SalesOrderDetailsForm で表示されるように SalesOrderListForm.Selected に設定されています。The Item property of the SalesOrderDetailsForm is set to SalesOrderListForm.Selected so that SalesOrderDetailsForm shows details about the record that the user selects in SalesOrderListForm. 移動するフィールドを構成するためにフォームのカスタマイズ ウィンドウを使用するときに自動的に作成される NavigationContext コンテキストの変数を使用して、選択したレコードのコンテキストを取得することもできます。You can also get the context of the selected record by using the NavigationContext context variable, which gets automatically created when you use the form-customization pane to configure a field to navigate.

  1. SalesOrderDetailsFormItem プロパティを SalesOrderListForm.Selected に変更します。Set the Item property of SalesOrderDetailsForm to NavigationContext.

  2. F5 を押してアプリをプレビューしてから、販売注文の一覧にあるリンクをクリックまたはタップします。Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    SalesOrderDetailsScreen が開き、指定した販売注文の詳細が表示されます。The app opens SalesOrderDetailsScreen and displays the details of the sales order that you specified.

フォームのカスタマイズ ウィンドウによってどのように移動とコンテキストが設定されるかを見てみましょう。Let’s dig into how the form-customization pane sets up the navigation and context for us.

SalesOrderListFormSelectableFields プロパティは、SalesOrderId を選択可能なフィールドとして指定します。The SelectableFields property of the SalesOrderListForm specifies SalesOrderId as a selectable field.

これは、フォームのカスタマイズ ウィンドウを使用して SalesOrderId フィールドを SalesOrderDetailsScreen に移動するようにしたときに、自動的に設定されています。This was set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen. そのため、SalesOrderId フィールド内の値がリンクとして表示されます。Therefore, the values in the SalesOrderId field appear as links.

SalesOrderListFormOnFieldSelect プロパティは If 関数に設定され、これによりユーザーが販売注文 IDフィールド: SalesOrderListForm.SelectedField.SalesOrderId = true をクリックするかタップするかが決定されます。The OnFieldSelect property of the SalesOrderListForm is set to an If function, which determines whether the user clicks or taps the Sales order ID field: SalesOrderListForm.SelectedField.SalesOrderId = true.

この関数が true として評価される場合、SalesOrderDetailsScreen は以前使用した NavigationContext というコンテキストの変数で開きます。If the function is evaluated as true, the SalesOrderDetailsScreen opens with the context variable named NavigationContext that we used earlier.

これもすべて、フォームのカスタマイズ ウィンドウを使用して SalesOrderId フィールドを SalesOrderDetailsScreen に移動するようにしたときに、自動的に設定されています。All this was also set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen.

そのため、販売注文 ID フィールドをクリックまたはタップすると、If 関数が true に評価され、Navigate 関数が対応するコンテキストで呼び出されて詳細画面が開きます。Therefore, when the user clicks or taps a sales order ID field, the If function evaluates to true, and the Navigate function is called with the corresponding context, opening the details screen.

: フォームのカスタマイズ ウィンドウを使用すると、NavigationContext が適切に決定されます。Note: When you use the form-customization pane, the NavigationContext is intelligently determined for you. ユーザーが SalesOrderId をクリックまたはタップすると、以前の数式と同様に NavigationContextSalesOrderListForm.Selected に設定されます。When the user clicks or taps SalesOrderId, NavigationContext is set to SalesOrderListForm.Selected, as the earlier formula shows. 代わりに、移動に Account フィールドが指定されている場合は、NavigationContextSalesOrderListForm.Selected.Account に設定されており、正しいコンテキストが渡されます。If we had specified the Account field for navigation instead, NavigationContext would have been set to SalesOrderListForm.Selected.Account, ensuring that the correct context is passed. ただし、そのコンテキストを使用するには、エンティティ フォーム コントロールが Common Data Service の Account エンティティに接続されている必要があります。However, to consume that context, you would need an Entity form control connected to the Account entity in the Common Data Service.

レコードの編集および保存Edit and save a record

最後に、エンティティ フォーム コントロールでレコードを編集し、保存する方法について見てみましょう。Finally let’s look at how we can edit and save a record in an Entity form control.

  1. SalesOrderDetailsScreen で、編集アイコンを追加してから、その OnSelect プロパティを次の数式に設定します。On the SalesOrderDetailsScreen, add an edit icon, and then set its OnSelect property to this formula:
    EditForm(SalesOrderDetailsForm)EditForm(SalesOrderDetailsForm)

  2. 編集アイコンの隣にチェックマーク アイコンを追加し、チェックマーク アイコンの OnSelect プロパティを次の数式に設定します。Add a checkmark icon next to the edit icon, and then set the OnSelect property of the checkmark icon to this formula:
    SubmitForm(SalesOrderDetailsForm)SubmitForm(SalesOrderDetailsForm)

  3. F5 キーを押してアプリをプレビューし、販売注文 ID リンクをクリックまたはタップして販売注文の詳細を表示してから、編集アイコンをクリックまたはタップします。Preview the app by pressing F5, click or tap a Sales order ID link to view the details of a sales order, and then click or tap the edit icon.

    レコードを編集できるように、エンティティ フォーム コントロールの ModeFormMode.Edit に設定されています。The Mode of the Entity form control is set to FormMode.Edit so that you can edit the record.

  4. [注文状況][請求書] に更新します。Update the Order status to Invoice.

  5. [販売担当者][WRK014] に更新します。Update the Sales person to WRK014.

    [販売担当者] の選択をサポートするため、エンティティ フォーム コントロールによって自動的に詳細な検索がレンダリングされます。To help you pick the Sales person, the Entity form control automatically renders a rich detailed lookup. この検索を生成および表示するため、このコントロールでは Common Data Service のワーカーエンティティの DefaultLookup フィールド グループが使用されます。To generate and display this lookup, the control uses the DefaultLookup field group of the Worker entity in the Common Data Service. [販売担当者] フィールドの種類が [ワーカー] であるため、ワーカー エンティティが使用されます。The Worker entity is used because the Sales person field is of type Worker.

  6. チェックマーク アイコンをクリックまたはタップして、変更を保存します。Click or tap the checkmark icon to save your changes.

アプリでエンティティ フォーム コントロールを使用する方法について説明したこの記事は、この手順で終了です。This step concludes this article on how to use the Entity form control in your apps. ここでご紹介した情報がエンティティ フォーム コントロールの使用を始めるときにお役に立てば幸いです。We hope that you find the information covered here useful to get started using the Entity form control. エンティティ フォーム コントロール、およびアプリに豊富なフォームを追加する方法に関してご提供した情報についてのご意見をお待ちしております。We look forward to hearing what you think about the Entity form control and our overall push toward helping you quickly add rich forms to your apps.