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 はフォームを非表示にするタイミングを認識できません。 また、フォームが表示されロジックを実行できる間にすべてのコードが実行できるように、RequestHide() を呼び出した後は重要なコードを実行しないでください。
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 分かかります。 個人データは収集されません (プライバシー ステートメント)。