Skip to content

Commit 6895f8c

Browse files
authored
Merge branch 'live' into patch-1
2 parents 32ea5e8 + dad1a97 commit 6895f8c

File tree

57 files changed

+118
-77
lines changed

Some content is hidden

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

57 files changed

+118
-77
lines changed

powerapps-docs/developer/common-data-service/cds-sql-query.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@ The following Common Data Service datatypes are not supported with the SQL conne
9696
> group by act.activityid, act.subject
9797
> ```
9898
99+
## Plug-ins
100+
101+
Querying data using SQL does not trigger any plug-ins registered on the <xref:Microsoft.Xrm.Sdk.Messages.RetrieveMultipleRequest> or <xref:Microsoft.Xrm.Sdk.Messages.RetrieveRequest> messages. Any re-writing of the query or results that would normally be performed by such a plug-in will therefore not take effect for a SQL query.
102+
99103
### See also
100104
101105
[Use FetchXML to construct a query](use-fetchxml-construct-query.md)

powerapps-docs/developer/common-data-service/org-service/organizationservicecontext.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ contact.EMailAddress1 = “[email protected]”;
144144

145145
When creating a new entity record, you add the object to the organization service context by using the <xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext.AddObject(Microsoft.Xrm.Sdk.Entity)>. method.
146146

147-
The following sample shows how to instantiate and save a new contact record by using the entity data model. It also demonstrates how tp access a custom attribute.
147+
The following sample shows how to instantiate and save a new contact record by using the entity data model. It also demonstrates how to access a custom attribute.
148148

149149
```csharp
150150
OrganizationServiceContext orgContext =new OrganizationServiceContext(svc);
@@ -198,4 +198,4 @@ To delete an entity record, the organization service context must be tracking th
198198
[LINQ query examples using OrganizationServiceContext with Common Data Service](linq-query-examples.md)<br />
199199
[Generate classes for early-bound programming using the Organization service](generate-early-bound-classes.md)<br />
200200
<xref:Microsoft.Xrm.Sdk.IOrganizationService><br />
201-
<xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext>
201+
<xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext>

powerapps-docs/developer/model-driven-apps/clientapi/client-scripting-best-practices.md

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ search.app:
1717
---
1818
# Best practices: Client scripting in model-driven apps
1919

20-
These are some of the best practice tips you could consider while writing your JavaScript code for model-driven apps.
20+
The following are some of the tips you could consider while writing your JavaScript code for model-driven apps.
2121

2222
## Define unique JavaScript function names
2323

@@ -26,35 +26,33 @@ When you write functions that will be used in JavaScript libraries, your functio
2626
- **Unique function prefix**: Define each of your functions using the standard syntax with a consistent name that includes a unique naming convention, as shown in the following example.
2727
```JavaScript
2828
function MyUniqueName_performMyAction()
29-
{
30-
// Code to perform your action.
31-
}
29+
{
30+
// Code to perform your action.
31+
}
3232
```
3333
- **Namespaced library names**: Associate each of your functions with a JavaScript object to create a kind of namespace to use when you call your functions as shown in the following example.
3434
```JavaScript
35-
//If the MyUniqueName namespace object isn’t defined, create it.
36-
if (typeof (MyUniqueName) == "undefined")
37-
{ MyUniqueName = {}; }
38-
// Create Namespace container for functions in this library;
39-
MyUniqueName.MyFunctions = {
40-
performMyAction: function(){
41-
// Code to perform your action.
42-
//Call another function in your library
43-
this.anotherAction();
44-
},
45-
anotherAction: function(){
46-
// Code in another function
47-
}
48-
};
35+
var Sdk = window.Sdk || {};
36+
(function () {
37+
this.formOnLoad = function () {
38+
// Code to perform your actions.
39+
}
40+
this.attributeOnChange = function () {
41+
// Code to perform your actions.
42+
}
43+
this.formOnSave = function () {
44+
// Display an alert dialog
45+
}
46+
}). call(Sdk);
4947
```
5048

5149
Then when you use your function you can specify the full name. The following example shows this.
5250

5351
```JavaScript
54-
MyUniqueName.MyFunctions.performMyAction();
52+
Sdk.attributeOnChange();
5553
```
5654

57-
If you call a function within another function you can use the this keyword as a shortcut to the object that contains both functions. However, if your function is being used as an event handler, the this keyword will refer to the object that the event is occurring on.
55+
If you call a function within another function, you can use this keyword as a shortcut to the object that contains both functions. However, if your function is being used as an event handler, this keyword will refer to the object that the event is occurring on.
5856

5957
## Avoid using unsupported methods
6058

@@ -73,4 +71,4 @@ If you decide to use the remaining capabilities of jQuery that are useful with m
7371

7472
## Write your code for multiple browsers
7573

76-
Model-driven apps support multiple browsers. You should make sure that any scripts that you use will work with all supported browsers. Most of the significant differences between Internet Explorer and other browser have to do with HTML and XML DOM manipulation. Because HTML DOM manipulation is not supported, if script logic is only performing supported actions and using the [Xrm object model](understand-clientapi-object-model.md), the changes required to support other browsers could be small.
74+
Model-driven apps support multiple browsers. Make sure that any scripts that you use will work with all supported browsers. Most of the significant differences between Internet Explorer and other browser have to do with HTML and XML DOM manipulation. Because HTML DOM manipulation is not supported, if script logic is only performing supported actions and using the [Xrm object model](understand-clientapi-object-model.md), the changes required to support other browsers could be small.

powerapps-docs/developer/model-driven-apps/clientapi/clientapi-form-context.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ reference)](reference/collections.md).
9999
| [attributes](reference/attributes.md) | Two objects contain an attributes collection:<br/><br/>- **formContext.data.attributes** collection provides access to non-entity bound attributes.<br/><br/>- **formContext.data.entity.attributes** collection provides access to each entity attribute that is available on the form. Only those attributes that correspond to fields added to the form are available.|
100100
| [controls](reference/controls.md) | Three objects contain a controls collection:<br/><br/> - **formContext.ui.controls**: Provides access to each control present on the form.<br/><br/>- **formContext.data.entity.attribute.controls**: Because an attribute may have more than one control on the form, this collection provides access to each of them. This collection will contain only one item unless multiple controls for the attribute are added to the form.<br/><br/>- **formContext.ui.tabs.sections.controls**: This collection only contains the controls found in the section.|
101101
|**formContext.data.process.**[stages](reference/formContext-data-process/process/getStages.md) and **formContext.data.process**.[steps](reference/formContext-data-process/stage/getSteps.md)| Provides access to stages and steps collection in a business process flow. These also allow for adding and removing of items from the collection.|
102-
|**formContext.ui.formselector.**[items](reference/formContext-ui-formselector.md)|When multiple forms are provided for an entity, you can associate each form with security roles. When the security roles associated with a user enable them to see more than one form, the **formContext.ui.formSelector.items** collection provides access to each form definition available to that user.|
102+
|**formContext.ui.formSelector.**[items](reference/formContext-ui-formselector.md)|When multiple forms are provided for an entity, you can associate each form with security roles. When the security roles associated with a user enable them to see more than one form, the **formContext.ui.formSelector.items** collection provides access to each form definition available to that user.|
103103
|**formContext.ui.navigation.**[items](reference/formContext-ui-navigation.md)|The **formContext.ui.navigation.items** collection provides access to navigation items that are defined using the navigation area of the form editor. People navigate to these using the command bar.|
104104
| **formContext.ui.**[quickForms](reference/formContext-ui-quickForms.md) | Provides methods to access all the quick view controls and its constituent controls on the Customer Enagagement forms.| **Xrm.Page.ui.tabs** collection provides access to each of these tabs.|
105105
| **formContext.ui.**[tabs](reference/formContext-ui-tabs.md) | You can organize each form by using one or more tabs. This collection provides access to each of these tabs.|

powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Navigation/openForm.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,12 @@ formParameters["jobtitle"] = "Sr. Marketing Manager";
167167
formParameters["donotemail"] = "1";
168168
formParameters["description"] = "Default values for this record were set programmatically.";
169169

170+
// Set lookup field
171+
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
172+
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
173+
formParameters["preferredsystemuseridtype"] = "systemuser"; // Entity name.
174+
// End of set lookup field
175+
170176
// Open the form.
171177
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
172178
function (success) {
@@ -196,6 +202,12 @@ formParameters["jobtitle"] = "Sr. Marketing Manager";
196202
formParameters["donotemail"] = "1";
197203
formParameters["description"] = "Default values for this record were set programmatically.";
198204

205+
// Set lookup field
206+
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
207+
formParameters["preferredsystemuseridname"] = " Admin user"; // Name of the user.
208+
formParameters["preferredsystemuseridtype"] = "systemuser"; // Entity name.
209+
// End of set lookup field
210+
199211
// Open the form.
200212
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
201213
function (success) {
@@ -209,7 +221,3 @@ Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
209221
### Related topics
210222

211223
[Xrm.Navigation](../xrm-navigation.md)
212-
213-
214-
215-

powerapps-docs/developer/model-driven-apps/define-custom-actions-modify-ribbon.md

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Define custom actions to modify the ribbon (model-driven apps) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces"
33
description: "Learn about defining custom actions to modify the ribbon." # 115-145 characters including spaces. This abstract displays in the search result."
44
keywords: ""
5-
ms.date: 10/31/2018
5+
ms.date: 10/13/2020
66
ms.service: powerapps
77
ms.topic: article
88
ms.assetid: 72544b02-4eed-4d70-666e-a0d880f526af
@@ -19,8 +19,6 @@ search.app:
1919

2020
# Define custom actions to modify the ribbon
2121

22-
<!-- https://docs.microsoft.com/dynamics365/customer-engagement/developer/customize-dev/define-custom-actions-modify-ribbon -->
23-
2422
The default, an application command bar or ribbon is defined by Common Data Service metadata. This default data can’t be changed, but you can include definitions of specific actions that will override the default ribbon.
2523

2624
## Types of custom actions
@@ -49,18 +47,36 @@ The default, an application command bar or ribbon is defined by Common Data Serv
4947
### Hide custom actions
5048

5149
A `<HideCustomAction>` is a statement that you use when you want to remove an existing ribbon element so that it is not rendered. This does not hide the ribbon element, it actually removes the ribbon element at runtime so that it doesn’t exist in the ribbon.
50+
51+
The **HideActionId** element provides a unique ID for the action. For consistency and readability, you should follow the same naming convention described for `<CustomAction>` elements. The **Location** attribute must match the Id of the ribbon element you want to remove.
5252

5353
> [!NOTE]
5454
> Because the `HideCustomAction` element removes a specified node from the ribbon, removing ribbon elements in this manner may not be the best option for every situation.
5555
>
5656
> - If you want to remove a button that is associated with a specific privilege, you should adjust the privileges for the entity in the security roles in your implementation. This will allow the default ribbon display and enables rules to hide or disable ribbon elements from users who do not have the necessary privileges to perform those actions.
5757
> - If you want to replace an existing ribbon element with a custom ribbon element, you can overwrite that element by specifying a `CustomAction.Location` value identical to the existing element.
58+
> - To remove the `HideCustomAction` element you need to create a new updated version of the same solution that installed the `HideCustomAction` element. A new patch of the solution cannot remove the `HideCustomAction` element.
59+
60+
The `HideCustomAction` element cannot be removed, once added, except by creating a new updated solution. Instead, ribbon buttons should be hidden using a `DisplayRule` element that always evaluate to false. Having both `Mscrm.HideOnModern` and `Mscrm.ShowOnlyOnModern` would always evaluate to false. For example, to hide a deactivate button:
61+
62+
```xml
63+
<CommandDefinition Id="Mscrm.HomepageGrid.Deactivate">
64+
<EnableRules>
65+
</EnableRules>
66+
<DisplayRules>
67+
<DisplayRule Id="Mscrm.HideOnModern" />
68+
<DisplayRule Id="Mscrm.ShowOnlyOnModern" />
69+
</DisplayRules>
70+
<Actions>
71+
</Actions>
72+
</CommandDefinition>
73+
```
5874

59-
The **HideActionId** element provides a unique ID for the action. For consistency and readability, you should follow the same naming convention described for `<CustomAction>` elements. The **Location** attribute must match the Id of the ribbon element you want to remove.
75+
6076

6177
### See also
6278

63-
[Customize commands and the ribbon](customize-commands-ribbon.md)
64-
[Pass data from a page as a parameter to Ribbon actions](/dynamics365/customerengagement/on-premises/developer/customize-dev/pass-dynamics-365-data-page-parameter-ribbon-actions
79+
[Customize commands and the ribbon](customize-commands-ribbon.md)
80+
[Pass data from a page as a parameter to Ribbon actions](/dynamics365/customerengagement/on-premises/developer/customize-dev/pass-dynamics-365-data-page-parameter-ribbon-actions
6581
)<br/>
66-
[Define scaling for Ribbon elements](define-scaling-ribbon-elements.md)
82+
[Define scaling for Ribbon elements](define-scaling-ribbon-elements.md)

powerapps-docs/maker/canvas-apps/functions/function-ismatch.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ Predefined patterns provide a simple way to match either one of a set of charact
9797
| **Period** |Matches a period or dot ("."). |`\.` |
9898
| **RightParen** |Matches a right parenthesis ")". |`\)` |
9999
| **Space** |Matches a character that adds whitespace. |`\s` |
100+
|**Tab**|Matches a tab character.|`\t`|
100101

101102
For example, the pattern **"A" & MultipleDigits** will match the letter "A" followed by one or more digits.
102103

powerapps-docs/maker/canvas-apps/functions/function-param.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,15 @@ Use the *LaunchTarget* argument to specify the target browser window in which to
9393
9494
| LaunchTarget&nbsp;enum | Description |
9595
| --- | --- |
96-
| **Blank** | The webpage or app is opened in a new window or tab. |
97-
| **Self** | The webpage or app replaces the current window or tab. |
96+
| **New** | The webpage or app is opened in a new window or tab. |
97+
| **Replace** | The webpage or app replaces the current window or tab. |
9898
| *name* | Instead of an enum value, use your own text string to *name* the window or tab. *Self* is an internal only name that is only used by the **Launch** function. It has no impact on nor will it match the title of the window that your users see. If a window or tab with the given *name* already exists, its contents will be replaced. Otherwise, a new window or tab will be created. *name* can't begin with the underscore character "_". |
9999
100-
**Blank** is the default enum when running in a web browser with **Self** and *name* as available options. In a mobile player, **Blank** is the default for webpages with *name* as an available option; while the current canvas app will always be replaced by another canvas app.
100+
**New** is the default enum when running in a web browser with **Replace** and *name* as available options. In a mobile player, **New** is the default for webpages with *name* as an available option; while the current canvas app will always be replaced by another canvas app.
101101
102102
> [!NOTE]
103-
> - Using a *LaunchTarget* with any value other than **Blank** in embedded scenarios (for example, Power BI or SharePoint) is not supported and may result in unexpected behavior. In the future, this behavior may change, or may cause an error.
104-
> - *LaunchTarget* enum names are in transition. You may use **Blank** and **Self** currently, though these names will change in the future. **Self** will go through an intermediate change to **'Self'** as a new **Self** keyword is introduced. To avoid this conflict, the expected names may be **New** and **Replace**. Your app will automatically update when these changes occur. Your formulas won't need an update manually.
103+
> - Using a *LaunchTarget* with any value other than **New** in embedded scenarios (for example, Power BI or SharePoint) is not supported and may result in unexpected behavior. In the future, this behavior may change, or may cause an error.
104+
<!-- *LaunchTarget* enum names are in transition. You may use **Blank** and **Self** currently, though these names will change in the future. **Self** will go through an intermediate change to **'Self'** as a new **Self** keyword is introduced. To avoid this conflict, the expected names may be **New** and **Replace**. Your app will automatically update when these changes occur. Your formulas won't need an update manually.-->
105105
106106
### Security zones
107107

powerapps-docs/maker/canvas-apps/geospatial-overview.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
---
2-
title:
3-
description:
2+
title: Add Geospatial components to apps made with Microsoft Power Apps
3+
description: Geospatial components let you view and manipulate 3D objects and images in the real world, in augmented reality.
44
author: iaanw
55
manager: shellha
66
ms.service: powerapps
77
ms.topic: conceptual
8-
ms.custom: canvas
8+
ms.custom: canvas, ce06122020
99
ms.reviewer: tapanm
1010
ms.date: 6/12/2020
1111
ms.author: iawilt
1212
search.audienceType:
1313
- maker
1414
search.app:
1515
- PowerApps
16-
ms.custom: ce06122020
1716

1817
---
1918

@@ -62,7 +61,9 @@ The geospatial features require additional terms of use that must be reviewed an
6261
![Screenshot of the terms of service](./media/geospatial/ppac-tos.png "Screenshot of the terms of service")
6362

6463
>[!IMPORTANT]
65-
>You must read and agree to the terms of service before you can use geospatial features. The following are the terms of service:
64+
>You must read and agree to the terms of service before you can use geospatial features.
65+
>
66+
>The following are the terms of service:
6667
>
6768
>These features use mapping capabilities that are powered by a third party, TomTom(tm), and operate outside your tenant's geographic region, compliance boundary, or national cloud instance.
6869
>
@@ -73,6 +74,12 @@ The geospatial features require additional terms of use that must be reviewed an
7374
>Additional licensing requirements might be required to enable this feature.
7475
7576
![Screenshot of the geospatial services toggle switch to On](./media/geospatial/ppac-geo-on.png "Screenshot of the geospatial services toggle switch to On")
77+
78+
>[!NOTE]
79+
>Requests sent between TomTom(tm) and the Azure Maps service are not exposed over the public Internet.
80+
>
81+
>Requests between apps you create with the component and the Azure Maps service are sent over HTTPS.
82+
7683

7784
1. Select **Save** at the bottom of the settings page.
7885

Loading

0 commit comments

Comments
 (0)