Skip to content

Commit 60018ab

Browse files
authored
Merge branch 'live' into patch-3
2 parents fc00ca5 + deca355 commit 60018ab

File tree

114 files changed

+369
-300
lines changed

Some content is hidden

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

114 files changed

+369
-300
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "powerapps-docs/user/use-custom-model-driven-app-on-mobile.md",
5+
"redirect_url": "../mobile/use-custom-model-driven-app-on-mobile",
6+
"redirect_document_id": "false"
7+
},
38
{
49
"source_path": "powerapps-docs/maker/troubleshooting-startup-issues.md",
510
"redirect_url": "../troubleshooting-startup-issues",

powerapps-docs/developer/common-data-service/auditing-overview.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ ms.date: 10/31/2018
66
ms.reviewer: "pehecke"
77
ms.service: powerapps
88
ms.topic: "article"
9-
author: "paulliew" # GitHub ID
10-
ms.author: "jdaly" # MSFT alias of Microsoft employees only
11-
manager: "ryjones" # MSFT alias of manager or PM counterpart
9+
author: "Bluebear73" # GitHub ID
10+
ms.author: "munzinge" # MSFT alias of Microsoft employees only
11+
manager: "mayadu" # MSFT alias of manager or PM counterpart
1212
search.audienceType:
1313
- developer
1414
search.app:

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/common-data-service/retrieve-and-delete-the-history-of-audited-data-changes.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
title: "Retrieve and delete the history of audited data changes (Common Data Service) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
33
description: "Programmatically retrieve the audit change history or delete audit records." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
5-
ms.date: 10/31/2018
5+
ms.date: 10/14/2020
66
ms.reviewer: "pehecke"
77
ms.service: powerapps
88
ms.topic: "article"
9-
author: "paulliew" # GitHub ID
10-
ms.author: "jdaly" # MSFT alias of Microsoft employees only
11-
manager: "ryjones" # MSFT alias of manager or PM counterpart
9+
author: "Bluebear73" # GitHub ID
10+
ms.author: "munzinge" # MSFT alias of Microsoft employees only
11+
manager: "mayadu" # MSFT alias of manager or PM counterpart
1212
search.audienceType:
1313
- developer
1414
search.app:
@@ -19,12 +19,17 @@ search.app:
1919

2020
After auditing is enabled and data changes are made to those entities and attributes being audited, you can proceed to obtain the data change history. Optionally, you can delete the audit records after you review the change history. Follow the sample code link at the end of this topic for more information.
2121

22-
## Retrieve the change history
23-
22+
## Retrieve the change history
23+
2424
There are several messages requests that can be used to retrieve the audit change history. These requests are differentiated by the nature of what they retrieve.
2525
<!-- Bug 696490 should make the Audit entity public again: Refer to the topic [Audit Entity](entities/audit.md) for a list of message requests related to auditing. -->
2626
Refer to the sample link at the end of this topic for sample code that demonstrates some of these change history message requests.
2727

28+
> [!IMPORTANT]
29+
> Large attribute values, such as [Email.Description](reference/entities/email.md#BKMK_Description) or [Annotation](reference/entities/annotation.md) are limited (capped) to 5KB or ~5,000 characters in length. A capped attribute value can be recognized by three dots at the end of the text, for example “lorem ipsum, lorem ip…”.
30+
>
31+
> Going forward, [Audit](reference/entities/audit.md) entity records will be stored in Common Data Service’s log storage. Linking audit records with other entity records using FetchXML will no longer be possible.
32+
2833
## Delete the change history for a record
2934

3035
Use the <xref:Microsoft.Crm.Sdk.Messages.DeleteRecordChangeHistoryRequest> message to delete all the audit change history records for a particular record. This lets you delete the audit change history for a record instead of deleting all the audit records for a date range, which is covered in the next section. To delete the audit change history for a record, you must have a security role with the **prvDeleteRecordChangeHistory** privilege or be a System Administrator.

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/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/TOC.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
items:
3030
- name: In a browser
3131
href: ../user/run-app-browser.md
32-
- name: On a phone
32+
- name: On a mobile device
3333
href: ../user/run-canvas-and-model-apps-on-mobile.md
3434
- name: On a SharePoint Online page (canvas apps)
3535
href: ../user/powerapps-web-part.md
@@ -165,9 +165,7 @@
165165
href: ../user/work-with-business-processes.md
166166
- name: Use flows
167167
href: ../user/use-flows.md
168-
- name: Use model-driven apps on mobile
169-
href: ../user/use-custom-model-driven-app-on-mobile.md
170-
- name: 'Use Dynamics 365 App for Outlook'
168+
- name: Use Dynamics 365 App for Outlook
171169
href: ../user/use-outlook-app.md
172170
- name: Create apps
173171
items:
@@ -1267,6 +1265,13 @@
12671265
href: ../developer/model-driven-apps/overview.md
12681266
# href: ../developer/model-driven-apps/TOC.yml For authoring I find having developer content buried so deep is awkward
12691267

1268+
- name: Power Apps mobile
1269+
items:
1270+
- name: Run apps on Power Apps mobile
1271+
href: ../mobile/run-powerapps-on-mobile.md
1272+
- name: Use model-driven apps on mobile
1273+
href: ../mobile/use-custom-model-driven-app-on-mobile.md
1274+
12701275
- name: Portals
12711276
items:
12721277
- name: Portals

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

0 commit comments

Comments
 (0)