Skip to content

Commit 9e3208c

Browse files
authored
Merge pull request MicrosoftDocs#4794 from MicrosoftDocs/master
updating working
2 parents e14ef09 + eceee37 commit 9e3208c

File tree

358 files changed

+1833
-729
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

358 files changed

+1833
-729
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ powerapps-docs/.vs/ProjectSettings.json
1919
powerapps-docs/.vs/slnx.sqlite
2020
powerapps-docs/.vs/VSWorkspaceState.json
2121
/.vs/slnx.sqlite-journal
22+
powerapps-docs/teams/media/milestones-broad-distribution/Thumbs.db

powerapps-docs/developer/data-platform/org-service/discovery-service.md

Lines changed: 6 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -25,146 +25,15 @@ search.app:
2525
2626
[!INCLUDE [cc-discovery-service-description](../includes/cc-discovery-service-description.md)]
2727

28-
To access the Discovery Service using SDK assembly APIs, add a reference to the `Microsoft.Xrm.Sdk.dll` assembly in your Visual Studio project, and then add a `using` statement to access the <xref:Microsoft.Xrm.Sdk.Discovery> namespace.
29-
30-
The <xref:Microsoft.Xrm.Sdk.WebServiceClient.DiscoveryWebProxyClient> implements the <xref:Microsoft.Xrm.Sdk.Discovery.IDiscoveryService> interface.
31-
32-
The <xref:Microsoft.Xrm.Sdk.Discovery.IDiscoveryService> interface provides <xref:Microsoft.Xrm.Sdk.Discovery.IDiscoveryService.Execute(Microsoft.Xrm.Sdk.Discovery.DiscoveryRequest)> method you will use to pass a instance of the abstract <xref:Microsoft.Xrm.Sdk.Discovery.DiscoveryRequest> class.
33-
34-
## Regional Discovery services
35-
36-
When you instantiate the <xref:Microsoft.Xrm.Sdk.WebServiceClient.DiscoveryWebProxyClient> you will need to provide a URL for a regional data center using one of the following values.
37-
38-
[!INCLUDE [regional-discovery-services](../../../includes/regional-discovery-services.md)]
39-
40-
> [!NOTE]
41-
> If you do not know the user's region, you need to loop through the available regions until you get results. A single global Discovery Service is also available. More information: [Discover the URL for your organization](../webapi/discover-url-organization-web-api.md)
42-
43-
## Discovery service messages
44-
45-
There are three messages that you can use which all inherit from the abstract <xref:Microsoft.Xrm.Sdk.Discovery.DiscoveryRequest> class.
46-
47-
The following table lists the messages that are supported with <xref:Microsoft.Xrm.Sdk.Discovery.IDiscoveryService.Execute(Microsoft.Xrm.Sdk.Discovery.DiscoveryRequest)> method.
48-
49-
|Message|Description|
50-
|-------------|-----------------|
51-
|<xref:Microsoft.Xrm.Sdk.Discovery.RetrieveUserIdByExternalIdRequest>|Retrieves the logged-on user's ID in Microsoft Dataverse|
52-
|<xref:Microsoft.Xrm.Sdk.Discovery.RetrieveOrganizationRequest>|Retrieves information about a single organization.|
53-
|<xref:Microsoft.Xrm.Sdk.Discovery.RetrieveOrganizationsRequest>|Retrieves information about all organizations to which the user belongs.|
54-
55-
## Example
56-
57-
The following code for a console application uses the <xref:Microsoft.Xrm.Sdk.Discovery.RetrieveOrganizationsRequest> message to retrieve all the organizations for a user.
58-
59-
```csharp
60-
using System;
61-
using System.Linq;
62-
using Microsoft.Xrm.Sdk.Discovery;
63-
using Microsoft.IdentityModel.Clients.ActiveDirectory;
64-
using Microsoft.Xrm.Sdk.WebServiceClient;
65-
66-
namespace DiscoveryServiceSample
67-
{
68-
class Program
69-
{
70-
//These sample application registration values are available for all online instances.
71-
// this sample requires ADAL.net 5.2 or later
72-
public static string clientId = "51f81489-12ee-4a9e-aaae-a2591f45987d";
73-
74-
static OrganizationDetailCollection GetOrganizationDetails(DiscoveryWebProxyClient svc)
75-
{
76-
77-
var request = new RetrieveOrganizationsRequest()
78-
{
79-
AccessType = EndpointAccessType.Default,
80-
Release = OrganizationRelease.Current
81-
};
82-
try
83-
{
84-
var response = (RetrieveOrganizationsResponse)svc.Execute(request);
85-
return response.Details;
86-
}
87-
catch (Exception)
88-
{
89-
throw;
90-
}
91-
}
92-
static void Main(string[] args)
93-
{
94-
string authority = @"https://login.microsoftonline.com/common";
95-
string northAmericaResourceUrl = "https://disco.crm.dynamics.com";
96-
string discoveryUrl = $"{northAmericaResourceUrl}/XRMServices/2011/Discovery.svc/web";
97-
Uri discoveryUri = new Uri(discoveryUrl);
98-
99-
AuthenticationContext authContext = new AuthenticationContext(authority, false);
100-
string username = "[email protected]";
101-
string password = "yourPassword";
102-
103-
AuthenticationResult authResult = null;
104-
if (username != string.Empty && password != string.Empty)
105-
{
106-
UserPasswordCredential cred = new UserPasswordCredential(username, password);
107-
authResult = authContext.AcquireTokenAsync(northAmericaResourceUrl, clientId, cred).Result;
108-
}
109-
110-
111-
using (var svc = new DiscoveryWebProxyClient(discoveryUri))
112-
{
113-
svc.HeaderToken = authResult.AccessToken;
114-
115-
OrganizationDetailCollection details = GetOrganizationDetails(svc);
116-
117-
details.ToList().ForEach(x =>
118-
{
119-
Console.WriteLine("Organization Name: {0}", x.FriendlyName);
120-
Console.WriteLine("Unique Name: {0}", x.UniqueName);
121-
Console.WriteLine("Endpoints:");
122-
foreach (var endpoint in x.Endpoints)
123-
{
124-
Console.WriteLine(" Name: {0}", endpoint.Key);
125-
Console.WriteLine(" URL: {0}", endpoint.Value);
126-
}
127-
Console.WriteLine();
128-
});
129-
};
130-
Console.ReadLine();
131-
}
132-
}
133-
}
134-
135-
```
136-
137-
The results may look like this for a user with access to two instances:
138-
139-
```
140-
Organization Name: Organization A
141-
Unique Name: orga
142-
Endpoints:
143-
Name: WebApplication
144-
URL: https://orgaservice.crm.dynamics.com/
145-
Name: OrganizationService
146-
URL: https://orgaservice.api.crm.dynamics.com/XRMServices/2011/Organization.svc
147-
Name: OrganizationDataService
148-
URL: https://orgaservice.api.crm.dynamics.com/XRMServices/2011/OrganizationData.svc
149-
150-
Organization Name: Organization B
151-
Unique Name: orgb
152-
Endpoints:
153-
Name: WebApplication
154-
URL: https://orgbservice.crm.dynamics.com/
155-
Name: OrganizationService
156-
URL: https://orgbservice.api.crm.dynamics.com/XRMServices/2011/Organization.svc
157-
Name: OrganizationDataService
158-
URL: https://orgbservice.api.crm.dynamics.com/XRMServices/2011/OrganizationData.svc
159-
```
160-
161-
> [!NOTE]
162-
> The `OrganizationDataService` is the deprecated Organization Data Service, not the Web API. This service does not include a URL for the Web API.
28+
- Regional Discovery Services are no longer avaialble.
29+
- To access Global Discovery functionality with the SDK going fowarded, see [here](/powerapps-docs/developer/data-platform/org-service/samples/access-discovery-service.md)
16330

31+
## Globla Discovery Service Endpoints:
32+
[!INCLUDE [global-discovery-services](../../../includes/global-discovery-services.md)]
16433

16534
### See also
16635

167-
[Discovery Services](../discovery-service.md)<br />
36+
[Global Discovery Service Sample](https://github.com/Microsoft/PowerApps-Samples/tree/master/cds/orgsvc/C%23/DiscoveryService)<br />
16837
[Discover the URL for your organization](../webapi/discover-url-organization-web-api.md)
16938

170-
[!INCLUDE[footer-include](../../../includes/footer-banner.md)]
39+
[!INCLUDE[footer-include](../../../includes/footer-banner.md)]

powerapps-docs/developer/data-platform/org-service/samples/access-discovery-service.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ If you have set and values in the App.config connection strings, it will use t
2929

3030
## What this sample does
3131

32-
This sample uses the SDK Assembly `DiscoveryServiceProxy` to query the discovery service with a user's credentials to determine which environments they can connect with.
32+
This sample uses the SDK Assembly `CrmServiceClient` to query the global discovery service with a user's credentials to determine which environments they can connect with.
3333

3434
If one or more environments are returned, the sample will prompt the user to choose one, and then use a `WhoAmIRequest` to return the `SystemUser.UserId` for that environment.
3535

@@ -43,17 +43,17 @@ This sample requires no special setup except that there are valid user credentia
4343

4444
If you know the regional data center that your environments are in, the sample will run faster if you set this value at line 40 of the SampleProgram.cs file.
4545

46-
In SampleMethods.cs there is a `DataCenter` enumeration for each of the known data centers. Each enumeration member is decorated with a `Description` notation. All of these members except `Unknown` have the URL for the regional discovery service set as the description.
46+
In SampleMethods.cs there is a `Clouds` enumeration for each of the known global discovery centers. Each enumeration member is decorated with a `Description` notation. All of these members except `Unknown` have the URL for the global discovery service set as the description.
4747

4848

4949
### Demonstrate
5050

51-
1. Using the user credentials and the `dataCenter` value, the program uses the `GetAllOrganizations` static method to retrieve all known environments for the user.
52-
1. The `GetAllOrganizations`method detects whether the `dataCenter` value is set to `DataCenter.Unknown`. If it is set to this member, this method will loop through all the other members in the `DataCenter` enum and retrieve any environments that are found using the `GetOrganizationsForDataCenter` static method.
51+
1. Using the user credentials and the `cloud` value, the program uses the `GetAllOrganizations` static method to retrieve all known environments for the user.
52+
1. The `GetAllOrganizations`method detects whether the `cloud` value is set to `Cloud.Unknown`. If it is set to this member, this method will choose the commerical `Cloud` enum and retrieve any environments that are found using the `GetOrganizationsForCloud` static method.
5353

54-
If a specific data center is set, `GetAllOrganizations` will simply call `GetOrganizationsForDataCenter` with those values.
54+
If a specific data center is set, `GetAllOrganizations` will simply call `GetOrganizationsForCloud` with those values.
5555

56-
1. The `GetOrganizationsForDataCenter` method extracts the data center discovery service Url from the member `Description` decoration and uses it together with the user credentials to execute the `RetrieveOrganizationsRequest` discovery service message.
56+
1. The `GetOrganizationsForCloud` method extracts the cloud's discovery service Url from the member `Description` decoration and uses it together with the user credentials to execute the `DiscoverGlobalOrganizations` CrmServiceClient helper message.
5757

5858
A `System.ServiceModel.Security.SecurityAccessDeniedException` is expected when the user has no environments in a specific data center.
5959

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
|Location|Global Discovery Web service URL|
2+
|--------------|-------------------------------|
3+
|Commercial|`https://disco.crm.dynamics.com/XRMServices/2011/Discovery.svc`|
4+
|North America 2 (GCC)|`https://globaldisco.crm9.dynamics.com`|
5+
|US Government L5 (DOD)|`https://globaldisco.crm.appsplatform.us`|
6+
|US Government L4 (USG)|`https://globaldisco.crm.microsoftdynamics.us`|
7+
|China operated by 21Vianet|`https://globaldisco.crm.dynamics.cn`|

powerapps-docs/maker/TOC.yml

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
href: ../user/deactivate-activate-account-contact.md
7878
- name: Work with activities
7979
items:
80-
- name: Add activities to the timeline
80+
- name: Use timeline
8181
href: ../user/add-activities.md
8282
- name: FAQs about activities
8383
href: ../user/faq-for-timeline-and-activity.md
@@ -675,6 +675,8 @@
675675
href: ./canvas-apps/functions/operators.md#in-and-exactin-operators
676676
- name: IsBlank
677677
href: ./canvas-apps/functions/function-isblank-isempty.md
678+
- name: IsBlankOrError
679+
href: ./canvas-apps/functions/function-iferror.md
678680
- name: IsEmpty
679681
href: ./canvas-apps/functions/function-isblank-isempty.md
680682
- name: IsError
@@ -1425,10 +1427,16 @@
14251427
href: ./portals/configure/configure-site-settings.md
14261428
- name: Work with forms and lists in portals
14271429
items:
1428-
- name: Work with basic forms
1429-
href: ./portals/configure/entity-forms.md
14301430
- name: Work with lists
14311431
href: ./portals/configure/entity-lists.md
1432+
- name: Work with basic forms
1433+
items:
1434+
- name: Work with basic forms
1435+
href: ./portals/configure/entity-forms.md
1436+
- name: Configure basic form metadata
1437+
href: ./portals/configure/configure-basic-form-metadata.md
1438+
- name: Configure basic form subgrid
1439+
href: ./portals/configure/configure-basic-form-subgrid.md
14321440
- name: Work with advanced forms
14331441
items:
14341442
- name: Define advanced form properties
@@ -1795,7 +1803,7 @@
17951803
href: ./portals/customer-engagement-apps/integrate-project-service-automation.md
17961804
- name: Integrate Field Service
17971805
href: ./portals/customer-engagement-apps/integrate-field-service.md
1798-
- name: Important upcoming changes and depecations
1806+
- name: Important upcoming changes and deprecations
17991807
href: ./portals/important-changes-deprecations.md
18001808
- name: Supported web browsers
18011809
href: ./portals/supported-web-browsers.md
@@ -2198,8 +2206,14 @@
21982206
items:
21992207
- name: Milestones
22002208
href: ../teams/milestones.md
2201-
- name: Understand Milestones sample app architecture
2202-
href: ../teams/milestones-architecture.md
2209+
- name: Deploy the Milestones app broadly in your organization
2210+
href: ../teams/milestones-broad-distribution.md
2211+
- name: Customize Milestones app
2212+
items:
2213+
- name: Understand Milestones sample app architecture
2214+
href: ../teams/milestones-architecture.md
2215+
- name: Customize Milestones sample app
2216+
href: ../teams/customize-milestones.md
22032217
- name: Perspectives (Preview)
22042218
items:
22052219
- name: Perspectives
@@ -2210,6 +2224,8 @@
22102224
items:
22112225
- name: Use the Profile+ sample app
22122226
href: ../teams/profile-app.md
2227+
- name: Deploy the Profile+ app broadly in your organization
2228+
href: ../teams/deploy-profile-plus-broad-distribution.md
22132229
- name: Customize Profile+ app
22142230
items:
22152231
- name: Understand Profile+ sample app architecture

0 commit comments

Comments
 (0)