power platform 画面設計・操作・連携・制限

##### 目録：
- [power app](#power-app)
- [power page (Power Apps portals)](#power-page)
- [ユーザと権限管理](#ユーザと権限管理)
- [データ管理](#データ管理)
- [power automate](#power-automate)
- [各サービスの連携](#各サービスの連携)
- [Microsoft Copilot Studio (元Power Virtual Agents)](#microsoft-copilot-studio)
- [他](#他)
- [試作demo](#試作demo)
  - [Microsoft 365 E5环境を作成](#microsoft-365-e5环境を作成)
  - power automate  
    - [Formらかのデータをexcelに書き込み](#formらかのデータをexcelに書き込み)
    - [Listsアイテムが新規また変更された時メールを送信](#listsアイテムが新規また変更された時メールを送信)
    - [dataverseレコード新規の時teamsに通知](#dataverseレコード新規の時teamsに通知)
  - [power app](power-app)
  - power BI
    - [Power BI でリアルタイムアンケートを可視化](https://qiita.com/yugoes1021/items/ea4c96cec9f1c7e47347)

--------
##### power app
- functionを使用Appをコントロール（canvas app）
  - 画面の遷移は`OnSelect` propertyに`Navigate` functionを使用 [参考URL](https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/add-screen-context-variables#add-navigation)
  - `Set( VariableName, Value )`　functionでglobal変数を作成、該当変数の更新もSet functionを使用 [参考URL](https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-set)
  - canvas app上現在画面だけの変数をコントロールには[UpdateContext、Navigate functionを使用](https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/working-with-variables#types-of-variables)
    - Navigateで目標画面に現在画面の[context variableを渡す](https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/working-with-variables#use-a-context-variable)事ができる


- 環境設置
  - ”特定種類のファイルのアップロードをブロック”機能の実現は、環境ごとのsystem settingsで行う
  操作手順：「Power Platform Admin Center -> Environments -> Specific Environment -> Settings -> Pricacy + Security -> Blocked Attachments -> Block these file extensions.」
  - 環境全体使用されるパラメーターは[Environment variableを使用](https://powerapps.microsoft.com/ja-jp/blog/environment-variables-available-in-preview/)
  - Power Pages(Power Apps portal)の設置では、External login（ Third-party identityの許可）とOpen registration（匿名ユーザがアカウントを作成の許可）をコントロール。Third-party identityのアカウントはLinkedIn, Microsoft Accountなどのこと [参考URL](https://learn.microsoft.com/en-us/power-pages/security/authentication/configure-site#general-settings)


- Teamsとの連携
  - teamsの中で[appを作成](https://learn.microsoft.com/en-us/power-apps/teams/create-first-app)出来る、そして[personal appをTeamsメンバーにシェアー](https://learn.microsoft.com/en-us/power-apps/teams/create-apps-overview#get-started-with-creating-apps-in-teams)できる
  - [Teamsにpower appを追加](https://learn.microsoft.com/en-us/power-apps/teams/embed-teams-app)
    [Teams内のpower appをsecurity groupにシェアー](https://learn.microsoft.com/en-us/power-apps/teams/set-perms-and-share#assign-the-colleagues-with-access-role-to-a-security-group-and-share-the-app)
    Teams内のtableへのアクセス権限は、tableごと[security groupを該当tableのpermission setに設置](https://learn.microsoft.com/en-us/power-apps/teams/set-perms-and-share#assign-table-permissions)するのが必要


- business rule
  - canvas app中の[business rule](https://debajmecrm.com/business-rules-in-powerapps-canvas-apps/#google_vignette)は
    - [直接Tableに作用し、Formには作用しない](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/data-platform-create-business-rule#create-a-business-rule)
    - `show/hide`, `enable/disable`のruleは作用しない
  - model-driven app中の[business rule](https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/create-business-rules-recommendations-apply-logic-form)は
    - table、All Forms、Specific Form三つの範囲で作用する
  - データ入力の時、[multi-selectの項目にはbusiness rulesが使えない](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/data-platform-create-business-rule#column-type-support-with-business-rules)、この場合formulaを使用できる
  - [canvas apps中で使用できないbusiness rules](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/data-platform-create-business-rule)
    - Show or hide columns
    - Enable or disable columns
    - Create business recommendations based on business intelligence.

- App画面設置（canvas app）
  - [responsive layoutのcanvas appを作成](https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/create-responsive-layout#disable-scale-to-fit)するため、Disable Scale to fitとConfigure the height and width properties by using a formulaの設置が必要
  - formsとsite mapにflowを表示させたら無効化できない（https://make.powerapps.com で設置）
  ![スクリーンショット 2023-11-21 14.50.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/518f22d8-9bb8-740f-ce48-d19b2233b01b.png)
  ![スクリーンショット 2023-11-21 14.43.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/31676841-9366-6558-d074-b54eddf6801b.png)
  - Tag chart、Line chart、doughnut chartはsystem chartしか使用出来ない
  - model-driven appsの中、他言語を使用する場合、[目標enviroment設置の中「Language Pack」をONにする](https://learn.microsoft.com/en-us/power-platform/admin/enable-languages#enable-the-language)
  - model-driven apps列のラベル、ドロップダウン リストの値など、テーブルまたは列のテキストの[言語をカスタマイズの手順](https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/translate-localizable-text)
    - Select an unmanaged solution.
    - Export translations.
    - Add a language code column and translated wording in the CrmTranslations.xml file.
    - Import translations.


- business process flows
  - [power appがofflineの時、business process flowsを使用する場合](https://learn.microsoft.com/en-us/power-platform-release-plan/2019wave2/power-automate/work-business-process-flows-offline)、該当のbusiness process flowsが一つのtableのみを参照。offlineの時使用できるコマンドは：
    - Next stage
    - Previous stage
    - Set Active stage


- workflow
  - workflowでは、stepにCheck Condition→　Conditional Branch→　Default Actionの順番を設置し、if{} else if{} else{}の条件判断を実現
  ![スクリーンショット 2023-11-22 14.12.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/df6b930b-56a4-0aa9-fc0f-24f3d645cb5f.png)
    - [Real-time workflows run immediately (synchronously) and background workflows run asynchronously](https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/customize/workflow-processes?view=op-9-1#workflow-properties)
      - [Configure real-time workflow stages and steps](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/configure-workflow-steps)
      - [Classic Dataverse background workflows](https://learn.microsoft.com/en-us/power-automate/workflow-processes)


- solution
  - solutionを作成後、[solution checkerで内容をチェック](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/use-powerapps-checker)
  - 開発環境でsolution作成の時、[作成出来るのはunmanaged solution](https://learn.microsoft.com/en-us/power-platform/alm/solution-concepts-alm#managed-and-unmanaged-solutions)、このunmanaged solutionをmanaged solutionとしてexport出来る
    - [Managed properties](https://learn.microsoft.com/en-us/power-platform/alm/managed-properties-alm)を使用して、カスタマイズ可能なmanaged solutionコンポーネントのコントロールを制御
    publisherつまり開発者を定義し、[solutionを作成の時publisherを設置](https://learn.microsoft.com/en-us/power-platform/alm/solution-concepts-alm#solution-publisher)
  - unmanaged solutionが削除された場合、solutionだけが削除され、環境にいるtableやdataへの影響がない。
managed solutionが削除された場合、solutionとの中みがカスタマイズされた部分も削除される。 [参考URL](https://learn.microsoft.com/en-us/power-platform/alm/solution-concepts-alm#managed-and-unmanaged-solutions)
    - 例：custom tableが含む場合、solutionを削除すると、tableとなかのdataも削除される
    - 例：custom labelを更新の場合、solutionを削除すると、このlabelのupdateが削除される
  - [patchを作成](https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/create-patches-simplify-solution-updates?view=op-9-1)しsolution内容を更新。[solutionを目標環境に反映](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/update-solutions)の時、
    - Upgrade方式を選んだの場合、目標環境にいる、solutionに含まれない資材が削除され
    - update方式を選んだの場合、目標環境にいる、solutionに含まれない資材が環境に残される


##### power page（Power Apps portal）
- Scenario-based templatesを選択し、使用目的に合わせる。 [参考URL](https://learn.microsoft.com/ja-jp/training/modules/power-pages-templates/scenario)
  - after school program registration templateでを使って、イベントを作成して関係者による登録を可能にする。
  - schedule meetings with a financial institution templateを使って、スケジューリング機能、空き状況の表示、オンラインでの会議のスケジュールを設置できる。
  - building permit application templateを使って、顧客が申請を送信し、申請の状態に関するメール通知を受信するためのサイトの構築ができる
- 招待状をメールで送信の場合、[招待コードをURLに追加](https://carldesouza.com/how-to-setup-redeem-an-invitation-code-for-power-apps-portal/)できる
- Power Pages(Power Apps portal)は[communityごと設置する](https://techcommunity.microsoft.com/t5/nta-techies/powerapps-community-portal-part-i/ba-p/3812056)（例：sales、service二つのcommunity）、そして一つのwebsiteに[複数の言語を設置できる](https://learn.microsoft.com/en-us/power-pages/configure/enable-multiple-language-support)
- Power Apps portalの[認証はcontact tableを使用、ユーザーを関連付ける](https://learn.microsoft.com/ja-jp/power-pages/security/authentication/)。portal上アクションを実行や、サイト上の保護されたコンテンツやデータにアクセスは[Web rolesでコントロール](https://learn.microsoft.com/ja-jp/power-pages/security/power-pages-security#web-roles)
- Power Pages(Power Apps portal)を新規のため、以下の権限が必要 [参考URL](https://learn.microsoft.com/en-us/power-pages/admin/admin-roles#required-roles-and-permissions)
  - A user account with Read-Write Access Mode.
  - System administrator role.
  - Permissions to register an app in Microsoft Entra are required.


##### ユーザと権限管理
  - ユーザのアクティビティ ログを確認の場合はsystem sttingで設置し、Microsoft Purview compliance portalで詳細を確認 [参考URL](https://learn.microsoft.com/en-us/power-platform/admin/logging-powerapps)
  - security groupのメンバーであるかどうかに関係なく、すべてのライセンス ユーザーには、環境内のデータにアクセスするためのsecurity roleを割り当てる必要がある [参考URL](https://learn.microsoft.com/ja-jp/power-platform/admin/control-user-access)
    - 複数の環境を持つ会社の場合、security groupを使用して、どのライセンスを付与されたユーザーが特定の環境のメンバーになれるかコントロールできる。
  - ユーザ作成の権限を持つためには、Microsoft 365 Global admin権限が必要。security roleのアサインと環境を管理する権限には、Microsoft 365 Global admin、Power Platform admin、Dynamics 365 adminどちらもできる。 [参考URL](https://learn.microsoft.com/en-us/power-platform/admin/use-service-admin-role-manage-tenant#service-administrator-permission-matrix)
  - ログインユーザの名前とメールアドレスを変更したい場合は、Microsoft 365 admin centerで行う [参考URL](https://learn.microsoft.com/en-us/microsoft-365/admin/add-users/change-a-user-name-and-email-address?view=o365-worldwide)
  - Power Platform appを作成できる最小権限はEnvironment Maker（環境のデータアクセス出来ない）、もし環境のデータもアクセスが必要の場合System Customizer roleが必要  [参考URL](https://learn.microsoft.com/en-us/power-platform/admin/database-security#prede)
  - 場所別にブロックアクセスを制御するには、Azure Active Directory (AD)でConditional Accessを設置する [参考URL](https://learn.microsoft.com/en-us/power-platform/admin/restrict-access-online-trusted-ip-rules#create-a-block-access-by-location)
  - レコードを所有できるチームはAzure Active Directory (Azure AD) group team。
    もしレコードを所有せず、security rolesも持たず、ただ[単体のレコードをシェアーするためのチームはAccess team](https://www.azamba.com/2018/02/15/how-to-enable-access-teams-in-microsoft-dynamics-365-for-sales-crm-share-records/)
  - ユーザが自分の部署およびその下位のすべての部署のレコードにアクセス出来るようにするには、Access levelをParent: Child Business Unitに設置 [参考URL](https://learn.microsoft.com/en-us/power-platform/admin/security-roles-privileges#access-levels)
  - tableのcolumnを作成の時、[列レベルのセキュリティ（Column-level security）](https://learn.microsoft.com/en-us/power-platform/admin/enable-disable-security-field)を設置し、この列についてのアクセス権限をコントロールする
  - Role-based security controls access to a specific entity type, record-based security controls access to individual records, and field-level security controls access to specific fields [参考URL](https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/admin/field-level-security?view=op-9-1)
  - By setting security roles for users, you control the types of data and entities a user can access and edit. By setting field security profiles, you control which fields a user sees for an entity [参考URL](https://learn.microsoft.com/en-us/dynamics365/field-service/view-user-accounts-security-roles#step-2-assign-security-roles-and-field-security-profiles)
  - 一般ユーザが自分のpersonal chatを他ユーザに共有するには、shera機能と使用、或いは個人のchartをexportし、他のユーザにimportする [参考URL](https://carldesouza.com/sharing-personal-charts-dynamics-365/)


##### データ管理
  - Dataverseの所有権が二種類、Organization owned、User or Team owned。business unit、security rolesを指定したい場合はUser or Team ownedを選択
  - 外部データソースとの同期の追跡はchange tracking機能を使用、dataverse tableの変更の追跡はauditingを使用
  - [Dataverse search (Relevance Search)](https://learn.microsoft.com/en-us/power-platform/admin/configure-relevance-search-organization#what-is-relevance-search)を使用の場合、全てのtableのデータを検索でき、且つキーワードを含む単語も見つけられる（例"stream" "streaming" "streamed"）
    Quick Findは現在いるtableのデータを検索、[Categorized Search](https://learnmsdynamics.com/blog/categorized-search-in-microsoft-dynamics-365)は複数指定されたtableのデータを検索
  - Data import wizardでCSVファイルインポートの時、[階層的に関連するデータを定義](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/define-query-hierarchical-data)
  - 外部データソースを dataverseにコピーせず、power appに使用したい場合、virtual tablesを作成。暗号化されたデータまたは機密データの場合、columnのData Source Secretを設置 [参考URL](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/create-edit-virtual-entities#add-a-secured-column-to-a-data-source)
  - [親子関係があるtable間の操作と結果](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/create-edit-entity-relationships#parental-table-relationships)
  - dataversデータ削除の選択by record、by table、older than a specified date [参考URL](https://learn.microsoft.com/en-us/power-platform/admin/manage-dataverse-auditing#reduce-log-storage-delete-audit-logs--new-proces)
  - duplicate detection ruleをデータインポートの時動作させるにはDuplicate detectionの「During data import」 optionをonのする [参考URL](https://learn.microsoft.com/en-us/power-platform/admin/turn-duplicate-detection-rules-off-whole-organization)
  - Text columnsの種類
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/89a8958c-d2e1-25a7-6f63-60c4dfe5d454.png)
  lookupsの種類
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/8ccd281d-7461-4921-9a66-6c1af33571c2.png)
  - Calculated Fieldsの計算された値は変更でき無い、Composite (address) fieldsはカスタマイズでき無い、editable gridsはphone上編集出来ない [参考URL1](https://community.dynamics.com/forums/thread/details/?threadid=77a75e98-f304-46b2-a08b-d35be2abf506)  [参考URL2](https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/customize/make-grids-lists-editable-custom-control?view=op-9-1&%20view=op-9-1#why-cant-i-use-editable-grids-on-phones)
  - canvas appの中、[LoadData function](LoadData function.)を使用し、mobile APPがofflineの時データを表示出来る


##### power automate
- [desktop Power Automateの使用条件](https://learn.microsoft.com/en-us/power-automate/desktop-flows/install)は、最新のEage/Chromeが必要、そしてデバイスにPower Automateインスドールが必要
- [Windows recorder (V1) flows作成](https://learn.microsoft.com/en-us/power-automate/desktop-flows/inputs-outputs-desktop#use-outputs-to-extract-information-from-the-app)の操作手順
  - Start recording the Ul flow.
  - On the Outputs menu of the Ul flow, choose Select text on screen.
  - Enter a name and description for the output.
  - Stop the recording and save the flow.
- business process flow中、レコードに対する操作は[Action Stepで行う](https://www.toplineresults.com/2017/11/action-steps-vs-workflows-dynamics-365-business-process-flows/)
  - workflowとmicrosof flowの違いは、workflowはpower appまたdynamics365 app機能の一部。microsof flowはpower automate機能の一部。microsof flowはworkflowの機能大体実現できるが、power automateのライセンスが必要 [参考URL](https://www.crmsoftwareblog.com/2019/08/microsoft-flow-crm-workflows/)
- business process flowの中、stageが完了後、何かの行動を実行する場合、[on-demand workflowを使用](https://learn.microsoft.com/en-us/power-automate/bpf-add-on-demand-workflow)

- REST API機能が持つ、自作のweb applicationにアクセスするには[customer connector](https://learn.microsoft.com/en-us/connectors/custom-connectors/#1-build-your-api)を使用。API機能がない、かつ監視なしのwebサイトのアクセスには[Unattended UI flows](https://learn.microsoft.com/en-us/power-platform-release-plan/2020wave1/power-automate/unattended-automation-ui-flows)を使用
- [twitter(X)へのconnectionを作成](https://learn.microsoft.com/en-us/connectors/twitter/#creating-a-connection)、特定”#”のtweetが検知された度、ユーザにメールを送信する、この機能を作成ための手順は以下。
  - sign into power automate and create a blank flow
  - create a trigger to search for new post with the hashtag
  - select the twitter connector, generate the auth key from service, and use the key for the connection
  - create an action to send email
- [Unattended desktop flowsを実行](https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/run-unattended-desktop-flows)するには、すべてのユーザーがサインアウトした状態のマシンが必要
- [クラウド フローからデスクトップ フローをトリガーする](https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/trigger-desktop-flows)
- flowの中に、二種類の[Dataverse action](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/reference/actions?view=dataverse-latest&viewFallbackFrom=dynamics-ce-odata-9&preserve-view=true)を使用できる
  - [Bound actions](https://learn.microsoft.com/en-us/power-automate/dataverse/bound-unbound#bound-actions)、対象は単一テーブルまたは単一テーブルの一連の行
  - [Unbound actions](https://learn.microsoft.com/en-us/power-automate/dataverse/bound-unbound#unbound-actions)、特定のテーブルや行ではなく、環境全体に対する静的操作として呼び出す


##### 各サービスの連携
- [Microsoft 365 と顧客エンゲージメント アプリ](https://learn.microsoft.com/ja-jp/power-platform/admin/add-office-365-online-services) (Dynamics 365 Sales、Dynamics 365 Customer Service、Dynamics 365 Field Service、Dynamics 365 Marketing、およびDynamics 365 Project Service Automation) の統合はExchange Online（メールサーバー）、SharePoint Online、Skype（Teams） を使用
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/534c8bfd-9bdb-5d78-31dd-0fcb91b34e9e.png)
- AI Builderの
  - [document processing model](https://learn.microsoft.com/ja-jp/ai-builder/form-processing-model-overview)、請求書(invoice)や税務(tax)ドキュメントなどの標準ドキュメントから情報を読み取って保存、
  - [Entity extraction](https://learn.microsoft.com/ja-jp/ai-builder/prebuilt-entity-extraction)、事前構築済みエンティティ抽出モデルを使用、ビジネスに関連するテキストから特定のデータを識別
  - [Text recognition](https://learn.microsoft.com/ja-jp/ai-builder/prebuilt-text-recognition)、ドキュメントや画像から、コンピューターで読み取り可能な文字ストリームに単語を抽出
  - [Sentiment analysis](https://learn.microsoft.com/en-us/ai-builder/prebuilt-sentiment-analysis)、テキスト データ内の肯定的または否定的なセンチメントを検出
- model-driven appの中、[dashboardを作成、tilesを追加し、shareの手順](https://learn.microsoft.com/en-us/power-apps/user/add-powerbi-dashboards#embed--power-bi-tiles-on-your-personal-dashboard)は
  - Create a personal Power BI dashboard in App
  - Embed Power BI tiles on your personal dashboard
  - Share a personal dashboard that contains Power BI visualizations
- [power BI reportがcanvas appのデータを表示する](https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/powerapps-custom-visual)には、Power BI Desktop上Common Data Serviceに接続し、Power BI Desktop menuから表示したいfieldを選択
- customer engagement apps (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing, and Dynamics 365 Project Service Automation)に[データを保存する場合、SharePointを使用](https://learn.microsoft.com/en-us/power-platform/admin/set-up-dynamics-365-online-to-use-sharepoint-online)
- power app内、[すべてのユーザーが使用できるExcelテンプレートをアップロード](https://learn.microsoft.com/en-us/power-platform/admin/analyze-your-data-with-excel-templates#for-admins-upload-the-excel-template)する場合、「 Settings > Templates > Document Templates」の順で操作。もし[個人用のExcelテンプレートをアップロードする](https://learn.microsoft.com/en-us/power-platform/admin/analyze-your-data-with-excel-templates#for-non-admins-or-admins-wanting-to-create-a-personal-template-upload-the-excel-template)場合、特定のrecordのview画面のmenu barで、「Excel Templates > Create Excel Template」の順で操作
- [Power BI alertはPower BI service（Power BI Desktopはできない）から設置](https://learn.microsoft.com/en-us/power-bi/create-reports/service-set-data-alerts)、[alertを受けるのは設置者のみ](https://learn.microsoft.com/en-us/power-bi/consumer/end-user-alerts#who-can-see-alerts-i-create)
- [dashboardやreportを組織外部ユーザーにシェア](https://learn.microsoft.com/en-us/power-bi/collaborate-share/service-share-dashboards#share-outside-your-organization)の時、distribution groupではなく、security group或いは個別emailでシェアする
- [dashboardをmodel-driven appに追加の手順](https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/add-powerbi-visual)
- filter data in dataflow -> Power Query、filter data in Canvas App -> Power Fx(canvas app内のcolumn値を非表示にするのも出来る)
- Power BIの[Incremental refresh](https://learn.microsoft.com/en-us/power-bi/connect-data/incremental-refresh-configure)機能を利用し、新規および更新されたデータを頻繁に読み込むを減らす。その内、Filterを設置の時、Date/Time data type、或いはinteger in the form of yyyymmddのデータを使用。
- [dashboardを作成用のデータは、Excelファイルとしてexportできる](https://learn.microsoft.com/en-us/power-bi/visuals/power-bi-visualization-export-data?tabs=powerbi-desktop)
- connector使用したcanvas appやflowを他環境にdeployの時、[connectorの接続為の認証情報を保存するconnection referenceを同時にsolutionに入れる](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/create-connection-reference)


##### Microsoft Copilot Studio
- [condition nodeを使用してtopic内のbranchを追加し、ある変数の値を別の変数の値または特定の値と比較する](https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/authoring-using-conditions)
- chatbotの中、[ユーザごと会話用のbotを分ける](https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-entities-slot-filling)
  - botの中されに複数topicがあり、
    - topicの中、ユーザの返答は[variableとして保存される](https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-variables?tabs=webApp)。
      - 黙認variableは単独topicにしか使用出来ない、[Global variable](https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-variables-bot?tabs=webApp)はbot全体に使用出来る
    - [entitiyの用途](https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/authoring-variables?tabs=webApp#entities)は、ユーザーの応答から特定の種類の情報を識別
      - [functional difference between Gobal Variables and Custom Entities](https://powerusers.microsoft.com/t5/General/Which-is-the-functional-difference-between-Gobal-Variables-and/td-p/959569)
- Custom entitiyの中
  - [Smart matching機能](https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/advanced-entities-slot-filling#closed-list-entities)をONにし、ユーザ入力時のスペルミスの修正や文法文脈の分析を行う
  - [Slot filling](https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-entities-slot-filling#slot-filling)機能では、ユーザの会話から、抽出されたentitiy値をvariableに配置する。もしユーザは同時に、複数のentitiyにマップする複数の情報を指定した場合、どの情報がどのentitiyに属しているかを自動的に理解でき、そして複数variableに配置する
- [既存のFAQ pagesやsupport sitesから、Microsoft Copilot Studio botを作成](Suggested)出来る、この場合、AIから推薦の topicが自動作成される
- Microsoft Copilot StudioをAn inline frame (iframe)として、[websiteに追加](https://learn.microsoft.com/en-us/microsoft-copilot-studio/publication-connect-bot-to-web-channels?tabs=preview)出来る
  ![スクリーンショット 2023-11-24 13.58.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/907f12fe-fc9a-3333-9566-e5ad5a56ca6d.png)
- Microsoft Copilot Studioの[analytics画面](https://learn.microsoft.com/en-us/microsoft-copilot-studio/analytics-summary)の上：
  - Engagement over time、期間内chatbotで解決出来たsessionと解決出来ない（中断 OR 人工サービスに変換）sessionの数をグラフで表示
  - Session outcomes over time、期間内毎日のresolution rate、escalation rate、abandon rateを表示
  - Escalation rate drivers、期間内人工サービスに変換されたsessionの中、よく当たるtopicを表示
  ![スクリーンショット 2023-11-24 14.30.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/0abd7617-ba44-7c81-2f1a-222d95d4c615.png)
- [chatbotを使用権限をshare](https://learn.microsoft.com/en-us/microsoft-copilot-studio/admin-share-bots?tabs=web#share-a-bot-for-chat)の場合、security groupと組織全体を選択出来るが、[chatbotの編集権限（collaborative authoring）](https://learn.microsoft.com/en-us/microsoft-copilot-studio/admin-share-bots?tabs=web#share-a-bot-for-collaborative-authoring)はユーザ単体でshareしか出来ない
- [組織内他のTeamにchatbotをshare](https://learn.microsoft.com/en-us/microsoft-copilot-studio/publication-add-bot-to-microsoft-teams#show-the-bot-in-microsoft-teams-app-store)したい場合、Microsoft Teams app storeへshareし、そしてchatbotを「Show to my teammates and shared users」に設置、こうしてshareされたユーザのみchatbotが表示される
- [Power Virtual Agents user interfaceから目標environmentが表示されてない](https://learn.microsoft.com/en-us/microsoft-copilot-studio/environments-first-run-experience#the-environment-doesnt-show-up-in-the-drop-down-menu-of-microsoft-copilot-studio)場合、目標environmentがunsupported regionにいるかどうかを確認
- chatbotと対応言語は一対一 [参考URL](https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-language-support)
- [Microsoft Bot Framework skill機能](https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/advanced-use-skills)で、作成済のbotをskillに変換し、Power Virtual Agents bot内に埋め込むことができる
- Copilot Studio botの中、[fallback topicを設置し、botが返答出来ない問題をEscalateできる](https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-system-fallback-topic)
- [smart Matchingとtable into topic機能を利用し、飛行機搭載時間提示のbotの作成例](https://carldesouza.com/entities-and-smart-matching-in-power-virtual-agents/)
- [single sign-onが支持されるchannel](https://learn.microsoft.com/en-us/microsoft-copilot-studio/configure-sso?tabs=webApp#supported-channels)はCustom WebsiteとMicrosoft Teams




##### 他
  - 通貨はTransaction currencyとBase currencyに分けられ。Transaction currencyは無効化できる、もしレコードに使用された場合は削除でき無い。Base currencyは組織環境作成された時設置され、後ででの修正と無効化ができ無い。
  - [複数の言語をサポートするソリューションの作成](https://learn.microsoft.com/en-us/power-platform/alm/create-solutions-support-multiple-languages#BKMK_ExportAndImportTranslations)
  - [teamsにappを作成、dataverseは自動作成](https://learn.microsoft.com/en-us/training/modules/get-started-dataverse-teams/2-provision-environment)
  - [formの種類](https://learn.microsoft.com/en-us/dynamics365/customer-service/create-design-forms-customer-service-hub#types-of-forms)
  - Dynamics 365の中、特定のtableのfieldをカレンダーに表示する場合、viewを作成して表示する  [参考URL](https://crmtipoftheday.com/1206/view-any-dynamics-365-record-on-a-calendar/)
  - ユーザのログインログは[environment auditingを設置](https://learn.microsoft.com/en-us/power-platform/admin/manage-dataverse-auditing#configure-auditing-for-an-environment)



- power platformはApps、Automate、BI、Vitual Agents四つの機能があり
  - power Apps：本当に必要なアプリをイメージどおりに短時間で構築
    - PowerPoint の UI と Excel 関数の感覚で作れるキャンバス アプリと複雑な業務プロセスにも対応できるモデル駆動型アプリ
  - power Automate：アプリケーション、サービスに連携しワクフローと業務プロセスを自動化。
    - 分岐・並列処理・条件付き分岐、ループなどが必要な高度な業務プロセスに対応
  - power BI：Excel の操作感で素早く効率的にレポートを作成、共有
    - ビジネスに合わせてカスタマイズされた 対話型リアル
タイム ダッシュボードを作成
  - power Vitual　Agents：AIチャットボットを ノンコーディングで作成
    - Power Automate のワークフローを活用することで、さまざまなサービスと連携可能
    - ダッシュボード機能でチャットボットのパフォーマンスを可視化

- power Automateの分類
  - クラウドー フロー
    - インスタントフロー：ボタンをクリックしてオートメッションを開始
    - 自動フロー：イベントによってトリガーされた1つまた複数のタスクを自動実行
    - スケジュールされたフロー
  - デスクトップ フロー
  - ビジネスプロセス フロー


##### 試作demo
- この↓リンクで、Microsoft 365 E5环境を申請、「Go to subscription」で開発環境を作成
  https://developer.microsoft.com/en-us/microsoft-365/dev-program
  以下のURLで作成ずみの環境を確認
  https://developer.microsoft.com/en-us/microsoft-365/profile
  ![スクリーンショット 2023-11-02 9.45.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/52f60e4c-e100-581d-9718-472e88bd8993.png)
- admin centerのURLは以下
  https://admin.microsoft.com/?auth_upn=admin001%40wktft.onmicrosoft.com&source=applauncher#/homepage


##### Microsoft 365 E5环境を作成
- Microsoft 365 E5环境を作成後`https://admin.powerplatform.microsoft.com/home`でplatform admin centerを使用。デフォルト表示された言語は、ブラウザの設定と同じ。
  power appとpower automate操作画面の言語を単独変更できるが、platform admin centerは変更でき無い
 　![スクリーンショット 2023-11-02 10.20.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/6c3048ea-18dc-68ad-39d0-6dfa7adf8134.png)
  ![スクリーンショット 2023-11-02 10.13.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/1d821723-e11a-89c2-7685-988b75d11f47.png)

- power automateのフロー制限
  - [自動化フロー、スケジュールされたフロー、インスタント フローの制限事項](https://learn.microsoft.com/ja-jp/power-automate/limits-and-config#performance-profiles)
  - プロセスがオンデマンドで実行されるか、バックグラウンドで実行されるかよって異なります。 オンデマンドで実行されるインスタント フローは、プロセスを開始したアカウントの制限を使用します。 一方、バックグラウンドで実行されるワークフローや自動化/スケジュール設定がされたフローは、プロセスが開始された理由やプロセス内の接続に使用されるアカウントに関係なく、常にプロセスの所有者の制限を使用します [参考URL](https://learn.microsoft.com/ja-jp/power-platform/admin/api-request-limits-allocations#what-accounts-limits-are-used-for-classic-workflows-or-power-automate-flows)

- [データ損失防止ポリシー](https://learn.microsoft.com/ja-jp/power-platform/admin/wp-data-loss-prevention)


##### Formらかのデータをexcelに書き込み
- Formらかのデータをexcelに書き込み用のAutomated cloud flowを作成
  - フロー開始のtriggerは「When a new response is submitted」を選択
  ![スクリーンショット 2023-11-02 15.04.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/78c23918-4f54-8e53-0e0c-35b2503820c8.png)
  - その内excelを選択の時、右のフォルダーマークをクリック。事前用意されたexcelの中にはtableを定義
  ![スクリーンショット 2023-11-02 15.05.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/12ceb004-a3f4-61a6-5d90-cf9fdc965f5c.png)
    - tableの作成ボタン、table名前の変更
    ![スクリーンショット 2023-11-02 15.07.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/b4180b23-544a-8d15-e056-47ac21182a94.png)
    ![スクリーンショット 2023-11-02 15.08.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/f637be27-72ec-4c5a-bdf9-947b6ddec093.png)


##### Listsアイテムが新規また変更された時メールを送信
- 進捗状況Listsアイテムが新規また変更された時、かつ「進状況」が”完了済み”の場合、フローが実行され、メールを送信する
  - テンプレートを使用し、進捗状況Listsファイルを作成
  ![スクリーンショット 2023-11-06 9.46.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/911c75a7-f963-cc72-bc6e-9800d5790dd0.png)
  - List作成後直接テンプレートでflowを作成できる
  ![スクリーンショット 2023-11-06 9.57.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/6847c5a1-e95c-7712-d8a9-82b0986a2c8b.png)
  - またpower　Automateでflowを作成
    - triggerはSharePoint「When an item is created or modified」使用、ListがいるフォルダーとList名を指定、フォルダーはlist　settingの「Web Address」で確認
    ![スクリーンショット 2023-11-06 10.43.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/82a5c6bd-96f5-437b-736e-b4254e07bd24.png)
    ![スクリーンショット 2023-11-06 10.45.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/8043f5f5-4e52-ae71-7417-e976d1457eb7.png)
  
  - もっと詳しくtriggerの起動条件を絞る場合、triggerのsettings画面で設置。
  ![スクリーンショット 2023-11-06 10.47.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/9f0d48b5-6a7a-1365-e19e-da06f9c00103.png)
  例として、進捗状況Listアイテムが新規また変更された時、かつ「進状況」が”完了済み”の場合、フローが実行
  ![スクリーンショット 2023-11-06 10.49.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/24258fc5-da51-00ea-4c6c-29ccba8e231b.png)


##### dataverseレコード新規の時teamsに通知
[アダプティブ カード（adaptive card）機能](https://learn.microsoft.com/ja-jp/business-applications-release-notes/october18/microsoft-flow/post-richer-messages-in-microsoft-teams)を使ってチャネルに投稿 [参考URL](https://learn.microsoft.com/en-us/power-automate/create-adaptive-cards#prerequisites)
Teams環境設定のURLは以下
https://admin.teams.microsoft.com/dashboard

- この場合は「When a row is added, modified or deleted」の「triggerを使用 
![スクリーンショット 2023-11-08 10.30.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/4a0411d1-ea3a-bd9d-e7d5-c786407bfca2.png)
- actionに「Post (adaptive) card to a chat or channel」を選択
- 目標teamとchannelを指定、「Message」にadaptive cardの内容を入力、作成方法は[アダプティブ カードを初めて作成する](https://learn.microsoft.com/ja-jp/power-automate/create-adaptive-cards#prerequisites)を参照。
  adaptive card作成ツールは：https://adaptivecards.io/designer/
  channelに送信されたadaptive cardのイメージは以下
  ![スクリーンショット 2023-11-06 15.12.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/3a5da484-7783-93fa-aab3-b8a731970ea6.png)


##### power app
- キャンバス アプリ
  - 作成方法
    - [SharePointから](https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/app-from-sharepoint)
    - [サンプルから](https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/open-and-run-a-sample-app)
    - [dataverseから](https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/data-platform-create-app)
    - [空白キャンバス アプリから](https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/data-platform-create-app-scratch)
    - [App Sourceを介して](https://learn.microsoft.com/ja-jp/power-apps/user/app-source)

- Power Pages(旧Power Apps ポータル)
    - [Dataverse スターター サイトの作成](https://learn.microsoft.com/ja-jp/power-apps/maker/portals/create-portal)
    - [Power Apps ポータルのライフサイクル](https://learn.microsoft.com/ja-jp/power-apps/maker/portals/admin/portal-lifecycle)
    - [認証の概要](https://learn.microsoft.com/ja-jp/power-apps/maker/portals/configure/configure-portal-authentication)
    - [Power BI 統合の設定](https://learn.microsoft.com/ja-jp/power-apps/maker/portals/admin/set-up-power-bi-integration)
    - [Azure Storage 統合の設定](https://learn.microsoft.com/ja-jp/power-apps/maker/portals/enable-azure-storage)
    
- Dataverse
  - [カスタム テーブルの作成](https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/data-platform-create-entity)
  - [列の管理](https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/data-platform-manage-fields)
  - [選択肢の作成](https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/custom-picklists)
  - [ビジネス ルールの作成](https://learn.microsoft.com/ja-jp/dynamics365/customerengagement/on-premises/customize/create-business-rules-recommendations-apply-logic-form?view=op-9-1)

- canvas app中書式の表示を設置の時、便利なツール
  ![スクリーンショット 2023-11-10 11.04.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/c148ef39-f271-7796-3218-9f4c268a3396.png)

- [power app ライセンス表（非公式）](https://memo.tyoshida.me/en/power-platform/powerapps/unofficial-powerapps-flow-license-chart/)
- [要求の制限と割り当て](https://learn.microsoft.com/ja-jp/power-platform/admin/api-request-limits-allocations#request-limits-based-on-user-licenses)