SharePoint フォームの統合について
Power Apps で Microsoft Lists または SharePoint ライブラリ フォームを簡単にカスタマイズ できるようになりました。 この記事では、これらのフォームの動作とカスタマイズ方法について詳しく説明します。
リスト フォームをカスタマイズしたことがある場合、既定の生成されたフォームが、項目の作成、表示、編集などのすべての操作に対応していることをご存知でしょう。 これは、生成された数式と SharePointIntegration コントロールによって実現されています。
既定の生成されたフォームを理解する
既定の生成されたフォームは、次のコントロールと対応する既定値で構成されています:
FormScreen1 - これは、フォームを含むスクリーン です。
SharePointForm1 - これは、リスト アイテムの作成、表示、または編集に使用されるフォーム です。
データ ソース - フォームがカスタマイズされているリストです。
項目 - リストから選択された項目です。 これは、Power Apps Studio で操作するとき便利なように、リストの First() 項目に設定されています。
If( IsBlank(SharePointIntegration.Selected) || IsEmpty(SharePointIntegration.Selected), First('*YourListName*'), SharePointIntegration.Selected )
ヒント
上記の数式パターン (
... SharePointDatasourceName.Selected
を使用) は、フォームの Item プロパティで機能します。 SharePoint レコードの値を設定する数式パターンについては、以下のセクション を参照してください。
OnSuccess - 項目が正常に作成または保存されると、フォームがリセットされ、SharePoint でこのフォームが非表示になります。
ResetForm(SharePointForm1); RequestHide()
SharePointIntegration - このコントロールは、SharePoint と Power Apps の間でユーザー アクションを伝達します。
データ ソース - フォームがカスタマイズされているリストです。
'YourListName'
OnNew - SharePointForm1 を新しいモードに設定します。
NewForm(SharePointForm1)
OnView - SharePointForm1 を表示モードに設定します。
ViewForm(SharePointForm1)
OnEdit - SharePointForm1 を編集モードに設定します。
EditForm(SharePointForm1)
OnSave - SharePointForm1 の変更を送信します。 フォームの送信が成功すると、SharePointForm1.OnSuccess 式が実行されます。
SubmitForm(SharePointForm1)
OnCancel - SharePointForm1 の変更をリセットします。 ユーザーが SharePoint で キャンセル を選択すると、SharePoint では常にフォームが非表示になります。
ResetForm(SharePointForm1)
これらの既定値によって、SharePoint 内で実行したときにフォームが機能し、ユーザーが SharePoint でフォームと対話したときに Power Apps フォーム モードが変更され、変更内容が SharePoint に確実に送信されます。
SharePointIntegration コントロールを理解する
SharePointIntegration コントロールは、SharePoint と Power Apps の間でユーザー アクションを伝達します。
注意
SharePointIntegration コントロールのプロパティには、フォームが SharePoint で実行されているときにのみアクセスでき、Power Apps Studio でフォームをカスタマイズしているときにはアクセスできません。 これらのプロパティは、OnStart または OnVisible では使用できないことがあります。
SharePointIntegration コントロールには、次のプロパティがあります:
選択済み - リストから選択された項目です。
OnNew - ユーザーが SharePoint で 新規 ボタンを選択、または 項目の作成 フォームを開くときに実行するアクション。
OnView - ユーザーが SharePoint で 項目 を選択、または 項目の詳細 フォームを開くときに実行するアクション。
OnEdit - ユーザーが SharePoint で すべてを編集 ボタンを選択、または 項目の編集 フォームを開くときに実行するアクション。
OnSave -ユーザーが SharePoint で 保存 ボタンを選択したときに実行するアクション。
OnCancel -ユーザーが SharePoint で キャンセル ボタンを選択したときに実行するアクション。
SelectedListItemID - リストで選択された項目 ID です。
データ ソース – フォームが表示、編集、または作成するレコードが含まれるリストです。 このプロパティを変更すると、Selected プロパティと SelectedItemID プロパティが機能しなくなる場合があります。
既定のフォームをカスタマイズする
既定の生成されたフォームと SharePointIntegration コントロールを理解したら、数式を変更して、フォームをさらにカスタマイズすることができます。 フォームをカスタマイズするときの注意事項をいくつか次に示します:
ユーザーが SharePoint で 保存 を選択したときの動作をカスタマイズするには、SharePointIntegration コントロールの OnSave 式を使用します。 複数のフォームがある場合は、現在使用しているフォームに対する変更だけを送信してください。
ヒント
OnNew、OnView、および OnEdit 式の変数には異なる値を設定します。 OnSave 式でこの変数を使用すると、使用されているフォームを指定できます。
すべてのフォームの OnSuccess 式に必ず RequestHide() を含めてください。 これを忘れると、SharePoint はフォームを非表示にするタイミングを認識できません。
SharePoint では、ユーザーが キャンセル を選択したときにフォームの非表示を制御できないので、SharePointIntegration コントロールの OnCancel 式で必ずフォームをリセットしてください。
SharePointIntegration コントロールのプロパティは OnStart または OnVisible では使用できないことがあり、それらのイベントはリストの読み込み中に 1 回だけ実行します。 OnNew、OnView、または OnEdit 式を使って、フォームが毎回ユーザーに表示される前にロジックを実行できます。
SharePointIntegration オブジェクトに関する一般的な問題
SharepointIntegration.Selected
の値を OnView プロパティでコレクションに設定しても、最新の値は表示されません。 この問題を解決するために推奨される方法は、SharepointIntegration.SelectedListItemID
を使用してテーブルでルックアップを実行して、selectedRecord を取得することです。例えば、OnView プロパティの場合:
代替案:
Set( selectedItem, SharePointIntegration.Selected );
以下を使用します:
Set( selectedLookupItem, LookUp( YourSharepointIntegrationObject, ID=SharePointIntegration.SelectedListItemID ) );
コレクション変数は、Power Apps フォームを閉じてもリセットされず、状態はセッション全体で保持されます。 そのため、変数をリセットする必要があるユース ケースがある場合は、SharePointIntegration オブジェクトの OnView プロパティで変数をクリアします。
SharePointIntegration プロパティ (OnNew や OnView など) で Launch() のような命令型関数を使用しないでください。 この使用は、SharePointIntegration のライフサイクル イベント (選択項目の変更など) が、フォームが表示されていないときでもバックグラウンドでトリガーされる場合があるため、予期しない動作を引き起こす可能性があります。
参照
- EditForm、NewForm、SubmitForm、ResetForm、および ViewForm 関数 - Power Apps フォーム関数
- RequestHide 関数
- SharePoint の統合シナリオ
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示