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 の間でユーザー アクションを伝達します。

SharePoint 統合オブジェクト。

注意

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 式を使用します。 複数のフォームがある場合は、現在使用しているフォームに対する変更だけを送信してください。

    ヒント

    OnNewOnView、および OnEdit 式の変数には異なる値を設定します。 OnSave 式でこの変数を使用すると、使用されているフォームを指定できます。

  • すべてのフォームの OnSuccess 式に必ず RequestHide() を含めてください。 これを忘れると、SharePoint はフォームを非表示にするタイミングを認識できません。

  • SharePoint では、ユーザーが キャンセル を選択したときにフォームの非表示を制御できないので、SharePointIntegration コントロールの OnCancel 式で必ずフォームをリセットしてください。

  • SharePointIntegration コントロールのプロパティは OnStart または OnVisible では使用できないことがあり、それらのイベントはリストの読み込み中に 1 回だけ実行します。 OnNewOnView、または 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 プロパティ (OnNewOnView など) で Launch() のような命令型関数を使用しないでください。 この使用は、SharePointIntegration のライフサイクル イベント (選択項目の変更など) が、フォームが表示されていないときでもバックグラウンドでトリガーされる場合があるため、予期しない動作を引き起こす可能性があります。

参照

注意

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

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