Merge pull request #7 from microsoft/gh-mirror

Mirror internal ADO
This commit is contained in:
ali-hamud 2021-03-08 14:57:59 +02:00 коммит произвёл GitHub
Родитель c3947ffb9c f4eae4e813
Коммит a2c27d16d8
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
7 изменённых файлов: 187 добавлений и 4 удалений

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 53 KiB

После

Ширина:  |  Высота:  |  Размер: 56 KiB

Просмотреть файл

@ -0,0 +1,80 @@
## Step 1: Log into [Power Apps](https://make.powerapps.com/) portal
## Step 2: Environment creation
Create a new Environment from the [Admin Center](https://admin.powerplatform.microsoft.com/) with below configuration
#### **Environment Settings:**
&nbsp;&nbsp;**Name:** <_Name of Environment, ex. ContosoSalesDemo_>
&nbsp;&nbsp;**Type:** Production
&nbsp;&nbsp;**Region:** United States
&nbsp;&nbsp;**Purpose:** Provide database support for the <Name of Application, ex. ContosoSalesDemo> Application
&nbsp;&nbsp;**Create a database for this environment:** Yes
**Click** `Next`
#### **Database Settings:**
&nbsp;&nbsp;**Language:** English
&nbsp;&nbsp;**URL:** <Choose URL as per your preference, ex. ContosoSalesDemoOrg.crm.dynamics.com>
&nbsp;&nbsp;**Currency:** USD ($)
&nbsp;&nbsp;**Enable Dynamics 365 apps:** Yes
&nbsp;&nbsp;**Automatically Deploy these Apps:**
Choose the below apps
&nbsp;&nbsp;&nbsp;&nbsp;1. Customer Service
&nbsp;&nbsp;&nbsp;&nbsp;2. Field Service
&nbsp;&nbsp;&nbsp;&nbsp;3. Sales Enterprise
&nbsp;&nbsp;**Deploy Sample Apps and Data:** No
&nbsp;&nbsp;**Security Group:** None Selected
**Click** `Save`
**Note:** It will take ~5 minutes for the environment to be created. Click the `Refresh` button to confirm that the new environment is created.
## Step 3: Enable TDS Endpoint for the new environment
1. Go the created environment
2. Go to `Settings` by clicking on the top navigation pane
3. Click on the dropdown to the left of `Product` settings
4. Go to `Features` settings
5. Enable TDS Endpoint
6. Click `Save`
## Step 4: Configure the environment prefix
1. Go to [Power Apps](https://make.powerapps.com/) portal home
2. From the `Environments`, select the created environment
3. From the `Settings` gear icon, select `Advanced Settings` of the environment
4. From the `Settings` dropdown in the navigation panel, select `Customizations`
5. Select `Publishers`
6. Select `CDS Default Publisher`
7. In the opened window, go to "Set the prefix name for custom entities and fields" section
8. Change the Prefix to `crcb2`
9. Click `Save and Close`

Просмотреть файл

@ -0,0 +1,27 @@
#### 1. Download the database schema solution [(SampleSolution_1_0_0_1.zip)](SampleSolution_1_0_0_1.zip) file
#### 2. Log into [Power Apps](https://make.powerapps.com/) portal
#### 3. Go the created environment
#### 4. Go to `Solutions` from the left navigation pane
#### 5. On the top command bar, select `Import`
#### 6. Select `Browse`
#### 7. Locate the downloaded .zip file (SampleSolution_1_0_0_1.zip)
#### 8. Click `Open`
#### 9. Click `Next`
#### 10. Wait for upload and click `Import`
#### 11. The message "Currently importing solution <solution name>." will be showed.
#### 12. Wait until it shows the confirmation message --> "Solution "SampleSolution" imported successfully".
**Note:** The [database schema](Schema.md) can be used as a reference for validation.<br/>
**Note:** The database can be browsed by navigating to `Data` and then `Tables` in the vertical navigation bar on the left.<br/>
**Note:** For more information on "Solutions" in Microsoft Dataverse, refer to the [Microsoft Docs](https://docs.microsoft.com/en-us/powerapps/maker/data-platform/solutions-overview/).

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,66 @@
**SCHEMA**
**Custom "Choice" Columns' Values**
| **Table** | **Opportunity** | **Opportunity** | **Activity** | **Activity** | **Lead** | **Lead** |
| --- | --- | --- | --- | --- | --- | --- |
| **Choice Columns** | **Opportunity Sales Stage** | **Opportunity Status** | **Activity Type** | **Priority** | **Lead Status** | **Rating** |
| **Values** | Qualify | Closed Won | Appointment | Low | New | Hot |
| | Closed | Closed Lost | Email | Normal | Qualified | Warm |
| | Develop | Quote Sent | Phone Call | High | Disqualified | Cold |
| | Propose | Meeting Scheduled | Task | | | |
| | | New | | | | |
**Table Definitions**
**Note:** The tables in the environment would have additional columns as compared to the below list. Please validate if the below columns are present in the tables. All other additional columns can be ignored.<br/>
| **Table Display Name** | **User** | | |
| --- | --- | --- | --- |
| **Table Database Name** | **systemuser** | | |
| **Custom Table** | **No** | | |
| **Column Display Name** | User | Full Name | Manager |
| **Column Database Name** | systemuserid | fullname | parentsystemuserid |
| **Type** | Unique Identifier | Text | Lookup |
| **Table Display Name** | **Account** | | | | | | | | | | |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **Table Database Name** | **account** | | | | | | | | | | |
| **Custom Table** | **No** | | | | | | | | | | |
| **Column Display Name** | Account | Account name | Primary Contact Name | Row Creation Date | Address 1: Country/Region | Address 1: City | Email | Industry | Main Phone | Owner | Owning User |
| **Column Database Name** | accountid | name | crcb2\_primarycontactname | crcb2\_rowcreationdate | address1\_country | address1\_city | emailaddress1 | industrycode | telephone1 | ownerid | owninguser |
| **Type** | Unique Identifier | Text | Text | Date Only | Text | Text | Email | Choice | Phone | Owner | Lookup |
| **Relationship** | | | | | | | | | | | user.systemuserid |
| **Custom column** | | | Yes | Yes | | | | | | | |
| **Table Display Name** | **Lead** | | | | | | | | | | | |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **Table Database Name** | **lead** | | | | | | | | | | | |
| **Custom Table** | **No** | | | | | | | | | | | |
| **Column Display Name** | Lead | Base Id | Is Latest | Row Creation Date | Topic | Contact Name | Lead Status | Rating | Lead Source | Parent Account for lead | Owner | Owning User |
| **Column Database Name** | leadid | crcb2\_baseid | crcb2\_islatest | crcb2\_createdon | subject | crcb2\_primarycontactname | crcb2\_leadstatus | leadqualitycode | leadsourcecode | parentaccountid | ownerid | owninguser |
| **Type** | Unique Identifier | Text | Text | Date Only | Text | Text | Choice | Choice | Choice | Lookup | Owner | Lookup |
| **Relationship** | | | | | | | | | | account.accountid | | user.systemuserid |
| **Table Display Name** | **Opportunity** | | | | | | | | | | | | | | | |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **Table Database Name** | **opportunity** | | | | | | | | | | | | | | | |
| **Custom Table** | **No** | | | | | | | | | | | | | | | |
| **Column Display Name** | Opportunity | Base Id | Originating Lead | Account | Is Latest | Topic | Opportunity Status | Opportunity Sales Stage | Estimated Revenue | Quote Amount | Actual Revenue | Estimated Close Date | Actual Close Date | Row Creation Date | Owner | Owning User |
| **Column Database Name** | opportunityid | crcb2\_baseid | originatingleadid | parentaccountid | crcb2\_islatest | name | crcb2\_opportunitystatus | crcb2\_salesstage | estimatedvalue | crcb2\_quoteamount | actualvalue | estimatedclosedate | actualclosedate | crcb2\_createdon | ownerid | owninguser |
| **Type** | Unique Identifier | Text | Lookup | Lookup | Text | Text | Choice | Choice | Currency | Currency | Currency | Date Only | Date Only | Date Only | Owner | Lookup |
| **Relationship** | | | lead.leadid | account.accountid | | | | | | | | | | | | user.systemuserid |
| **Table Display Name** | **Activity** | | | | | | | | | | | | | | | |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **Table Database Name** | **crcb2\_activity** | | | | | | | | | | | | | | | |
| **Custom Table** | **Yes** | | | | | | | | | | | | | | | |
| **Column Display Name** | **AutoGenKey** | Activity Id | Base Id | Lead Id | Is Latest | Subject | Topic | Description | Activity Type | Priority | Due Date | Start Date | End Date | Row Creation Date | Owner | Owning User |
| **Column Database Name** | **crcb2\_autogenkey** | crcb2\_activitiesid | crcb2\_baseid | crcb2\_leadid | crcb2\_islatest | crcb2\_subject | crcb2\_topic | crcb2\_description | crcb2\_activitytype | crcb2\_priority | crcb2\_duedatetime | crcb2\_startdatetime | crcb2\_enddatetime | crcb2\_rowcreationdate | ownerid | owninguser |
| **Type** | **Autonumber** | Unique Identifier | Text | Lookup | Text | Text | Text | Text | Choice | Choice | Date and Time | Date and Time | Date and Time | Date Only | Owner | Lookup |
| **Relationship** | **\*Primary Name Column** | | | lead.leadid | | | | | | | | | | | | user.systemuserid |
| **Autonumber Type** | **String Prefixed Number** | | | | | | | | | | | | | | | |
| **Prefix** | **act** | | | | | | | | | | | | | | | |
| **Min Digits/ seed value** | **4/1000** | | | | | | | | | | | | | | | |

Двоичные данные
ContosoSalesDemo/PowerBIReport/ContosoSalesDemo.pbit Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -1,4 +1,4 @@
[Contoso Sales Demo](https://contososalesdemo.azurewebsites.net/) is an application based on Power BI [embedded analytics](https://aka.ms/powerbi-embedded), demonstrating a sales management portal. The application empowers salespeople and sale managers to make business decisions based on data. Salespeople can monitor and track sales, leads, opportunities and accounts, and manage their calendars. Sales managers can view a summary of the salesforce performance, including sales history and individual accounts. The application also enables managers to provide salespeople with data driven insights, assisting them with their decision making.
[Contoso Sales Demo](https://contososalesdemo.azurewebsites.net/) is an application based on [Power BI embedded analytics](https://aka.ms/powerbi-embedded), demonstrating a sales management portal. The application empowers salespeople and sales managers to make business decisions based on data. Salespeople can monitor and track sales, leads, opportunities and accounts, and manage their calendars. Sales managers can view a summary of the salesforce performance, including sales history and individual accounts. The application also enables managers to provide salespeople with data driven insights, assisting them with their decision making.
Follow the steps below to get a first hand experience of the demo:
1. Open the [Contoso Sales Demo](http://contososalesdemo.azurewebsites.net/) application.
@ -48,7 +48,7 @@ Users can do the following in the applications user interface:
*Contoso Sales Demo* integration with other Microsoft databases and libraries:
* Microsoft Dataverse. The applications integration can be extended to other databases.
* [Microsoft Dataverse](https://docs.microsoft.com/en-us/powerapps/maker/data-platform/data-platform-intro). The applications integration can be extended to other databases.
* [MSAL.NET](https://aka.ms/MSAL) used for service principal authentication.
@ -63,12 +63,22 @@ Users can do the following in the applications user interface:
|-----|--------|---|
|[App Service](https://aka.ms/AppService) for hosting the application <br /><br /> [Key Vault](https://aka.ms/AzureKeyVault) for storing certificates/secrets <br /><br /> [Azure AD](https://aka.ms/AzureAd) app for creating a [service principal](https://aka.ms/embed-service-principal-certificate) object <br /><br /> [Application Insights](https://aka.ms/app-insights-overview) for telemetry|[Power BI service license](https://powerbi.microsoft.com/en-us/pricing) for hosting reports <br /><br /> [Power BI Embedded capacity](https://aka.ms/powerbi-embedded-pricing) for embedding report|[Dynamics 365 license](https://aka.ms/dynamics365) for using Microsoft Dataverse as a data source|
### Microsoft Dataverse Database
This application is integrated with a Microsoft Dataverse database. Follow the steps below to setup your own Microsoft Dataverse database:
1. [Setup a Microsoft Dataverse environment](ContosoSalesDemo/MicrosoftDataverseArtifacts/EnvironmentSetup.md)<br/>
**Note:** Ensure TDS endpoint is enabled for the environment. It allows to connect to CDS using DQ in a Power BI report<br />
**Note:** Set the prefix for the CDS Default Publisher to "crcb2"
2. [Import the Microsoft Dataverse schema](ContosoSalesDemo/MicrosoftDataverseArtifacts/ImportSchema.md)<br />
**Note:** Insert data as required
## Power BI report
The report [ContosoSalesDemo.pbix](ContosoSalesDemo/PowerBIReport/) can be used as a reference for development. <br />
### Power BI report
1. The report [ContosoSalesDemo.pbix](ContosoSalesDemo/PowerBIReport/) can be used as a reference for development. <br />
**Note:** This report is connected to a cached datasource using import mode. <br />
**Note:** As this report is not connected to a Microsoft Dataverse database using Direct Query, it will not support writeback functionality.
2. The Power BI template [ContosoSalesDemo.pbit](ContosoSalesDemo/PowerBIReport/) can be used as a reference for development. <br />
**Note:** When you open this file, you would be prompted for Server and Database information. Please enter the corresponding details for your own D365 environment created in the previous step.<br />
**Note:** This report uses "June Smith" as the salesperson in the definition of the Roles "Anonymous" and "Salesperson". Update the definition of these roles with the user who has the writeback permissions (i.e. corresponding to the Service Principal you are using for writeback).
## Architecture