Skip to content

Commit 3e18444

Browse files
VesaJuvonenjansenbeJoanneHendricksonandrewconnell
authored
* Cleanup throttling docs * cleanup the throttling sample code * Update migration-api-overview.md resubmitting updates from previous PR March 29th that didn't go live. Adding section Entering user identifiers in UseGroup.xml * fix markdown errors & update doc timestamp - updated doc timestamp to show when doc updated - fixed incorrect indentation of code blocks in bullet lists - removed empty lines before/after code blocks - closed unclosed fenced code * Plugging the Microsoft 365 Assessment tool for workflow scanning * Create migration-api-whats-new (SharePoint#7966) * Create migration-api-whats-new creation of new what's new file in response to ISV requests. * fix date format Co-authored-by: Andrew Connell <[email protected]> * Update toc.yml (SharePoint#7967) * Update toc.yml update toc to include What's new in MigrationAPI * Update toc.yml corrected path (left off the extension) to What's new article line 2013: apis/migraton-api-whats-new.md * remove relative URL references fixing automated checks Co-authored-by: Andrew Connell <[email protected]> * Workflow 2013 modernization and assessment updates Co-authored-by: Bert Jansen <[email protected]> Co-authored-by: JoanneHendrickson <[email protected]> Co-authored-by: Andrew Connell <[email protected]>
1 parent 404b4c0 commit 3e18444

10 files changed

+128
-74
lines changed

docs/apis/migration-api-overview.md

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
title: "SharePoint Online Import Migration API"
33
ms.prod: sharepoint
4-
ms.date: 04/19/2022
4+
5+
ms.date: 05/19/2022
56
ms.author: jhendr
67
author: JoanneHendrickson
78
manager: serdars
@@ -17,12 +18,12 @@ The following API description is based upon use of the SharePoint Client Side Ob
1718

1819
You can find latest version of the SharePoint Online Client Side Object Model (CSOM) package from the [NuGet gallery](https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/). Use the ID `Microsoft.SharePointOnline.CSOM`.
1920

20-
>[!Important]
21+
> [!Important]
2122
> Files larger than 15 GB must now create the required checksum using [QuickXorHash](/onedrive/developer/code-snippets/quickxorhash). We have provided an example [here](#what-is-stored-in-those-azure-blob-containers).
2223
>
23-
>The QuickXorHash/Checksum has to be computed for the original file **before** encryption (if the file is being encrypted). This is different from the MD5hash requirement.
24+
> The QuickXorHash/Checksum has to be computed for the original file **before** encryption (if the file is being encrypted). This is different from the MD5hash requirement.
2425
>
25-
>The previous method of MD5Hash is still required for files smaller than 2 GB; however this requirement will be removed at some point in the future.
26+
> The previous method of MD5Hash is still required for files smaller than 2 GB; however this requirement will be removed at some point in the future.
2627
2728

2829
## Methods
@@ -452,8 +453,8 @@ Even if the API support 15GB files, we recommend package sizes of up to 250 MB O
452453

453454
### File size
454455

455-
>[!Note]
456-
>The Migration API supports individual files over **15 GB**. The maximum size is current to that set by SharePoint Online.
456+
> [!Note]
457+
> The Migration API supports individual files over **15 GB**. The maximum size is current to that set by SharePoint Online.
457458
458459
### Only un-compressed packages are supported
459460

@@ -492,6 +493,51 @@ The import pipeline is using Azure Blob Storage security model as is. This means
492493
### Events and event handlers
493494

494495
The import pipeline allows event handlers to be referenced on list items but doesn’t allow defining event handlers at the list level at this time. The import pipeline does not fire events as items are imported, so existing event handlers will not fire due to the import event.
496+
### Entering user identifiers in UserGroup.XML
497+
498+
Follow these guidelines when generating the **UserGroup.XML** in the submitted package:
499+
500+
- A person can be identified only once in a single package
501+
- The 'login' attribute of the user identifier requires a UPN. **Do not** enter a non-UPN email address.
502+
503+
504+
> [!Important]
505+
> As of March 2, 2022, the Migration API now validates and enforces a maximum of one identifier per user in a single package.
506+
>
507+
> While using a non-UPN email won't result in a failed job, it may bring unexpected results in SharePoint Online.
508+
509+
**Examples**
510+
511+
The following examples show the correct and incorrect ways of entering the user identifier in UserGroup.XML.
512+
513+
In this case, the user has the following identifiers:
514+
515+
516+
- **Email**: [email protected].
517+
518+
519+
**Correct**
520+
521+
- In this example, the user is entered only once, using a UPN email address.
522+
523+
```xml
524+
<User Id="1" Login="i:0#.f|membership|[email protected]" …/>
525+
```
526+
527+
**Incorrect**
528+
529+
- **Example 1:** This example uses a non-UPN email address and incorrectly includes more than identifier for a single user.
530+
531+
```xml
532+
<User Id="1" Login="i:0#.f|membership|[email protected]" …/>
533+
<User Id="2" Login="i:0#.f|membership|[email protected]" …/>
534+
```
535+
536+
- **Example 2:** This example incorrectly uses a non-UPN email address.
537+
538+
```xml
539+
<User Id="2" Login="i:0#.f|membership|[email protected]" …/>
540+
```
495541

496542
### Resolving Users
497543

@@ -500,7 +546,7 @@ If the Migration API was unable to resolve a user using the login provided in th
500546
1. This user will be replaced by “System Account” in the associated metadata within the package ( author, editor etc.).
501547
1. A warning will be reported in the ImportLogs – “Failed to ensure user '[email protected]'”
502548

503-
If the migration API was unable to resolve a user using the login provided in the UserGroup.xml and the System ID is provided (which is the SID for the user in the on-premises AD), then:
549+
If the migration API was unable to resolve a user using the login provided in the UserGroup.xml and the System ID is provided (which is the SID for the user in the on-premises AD), then:
504550

505551
1. A new deleted user with the provided login and SystemId is created and is used in the associated metadata within the package.
506552
1. A warning will be reported in the ImportLogs- “Failed to retrieve user '[email protected]' attributes from the SiteUsers; falling back to passed in values”

docs/apis/migration-api-whats-new

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: "Migration API What's new"
3+
ms.reviewer: jhendr
4+
author: JoanneHendrickson
5+
ms.author: jhendr
6+
manager: serdars
7+
ms.date: 05/17/2022
8+
audience: ITPro
9+
ms.topic: article
10+
ms.prod: sharepoint
11+
localization_priority: Priority
12+
ms.custom: admindeeplinkSPO
13+
description: "Learn about the new features and updates to the Migration API."
14+
---
15+
# What's new in the Migration API
16+
17+
Check here to see what features or updates have been added to the Migration API. Here's a summary of what's included.
18+
19+
## Fixes
20+
21+
- **Changes to how Import API handles users**. As a response to issues arising from broken OneDrive scenarios when importing duplicate users, the API now blocks and detect duplicate user entries in UserGroup.xml. For details see: [Entering user identifiers in UserGroup.xml](/sharepoint/dev/apis/migration-api-overview#entering-user-identifiers-in-usergroup.xml)

docs/business-apps/power-automate/guidance/migrate-from-classic-workflows-to-power-automate-flows.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Guidance - Migrate from classic workflows to Power Automate flows in SharePoint
33
description: This article specifically provides guidance about how to plan for transitioning from classic SharePoint Workflows to Power Automate flows.
4-
ms.date: 07/20/2021
4+
ms.date: 05/25/2022
55
search.app:
66
- Flow
77
search.appverid: met150
@@ -23,7 +23,7 @@ This article specifically provides guidance about how to plan for transitioning
2323

2424
Classic workflows in SharePoint constitutes two workflow systems namely
2525

26-
- SharePoint 2010 workflow
26+
- SharePoint 2010 workflow ([deprecated in November 2020](https://support.microsoft.com/en-us/office/sharepoint-2010-workflow-retirement-1ca3fff8-9985-410a-85aa-8120f626965f))
2727
- SharePoint 2013 workflow
2828

2929
While both workflow systems allow users to build and publish workflows in SharePoint, see the following key differences:
@@ -33,6 +33,9 @@ While both workflow systems allow users to build and publish workflows in ShareP
3333

3434
Users primarily use SharePoint Designer to author and publish workflows in SharePoint, while professional developers, looking to extend and build workflows, use Visual Studio to build and publish workflows in SharePoint.
3535

36+
> [!Important]
37+
> After August 1, 2020, new Microsoft 365 customers can use SharePoint 2013 workflows or Power Automate. However, SharePoint 2013 workflows will follow a similar retirement path in the future, so it's highly recommended to use Power Automate or other supported solutions. If you want to learn more about the SharePoint 2013 workflow usage inside your tenant you can use the [Workflow 2013 Assessment tool](https://aka.ms/microsoft365assessmenttool). This tool will assess your tenant on SharePoint 2013 workflow usage and generates a Power BI report with the findings.
38+
3639
## Modern workflows with Power Automate flows
3740

3841
Since the release of classic workflows, SharePoint and Microsoft 365 apps have evolved to provide compelling, flexible and more performant experiences. Modern experiences in SharePoint integrate with rest of the Microsoft 365 apps and services driving security, productivity, and collaboration.

docs/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online.md

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Avoid getting throttled or blocked in SharePoint Online
33
description: Find out about throttling in SharePoint Online, and learn how to avoid being throttled or blocked. Includes sample client-side object model (CSOM) and REST code you can use to make your task easier.
4-
ms.date: 07/07/2021
4+
ms.date: 05/11/2022
55
ms.prod: sharepoint
66
ms.assetid: 33ed8106-d850-42b1-8d7f-5ba83901149c
77
ms.localizationpriority: high
@@ -183,17 +183,16 @@ HttpWebResponse endpointResponse = (HttpWebResponse)endpointRequest.GetResponse(
183183
Add this extension method in a static class and use `ExecuteQueryWithIncrementalRetry` instead of `ExecuteQuery` to make your code handle throttling requests.
184184

185185
```csharp
186-
public static void ExecuteQueryWithIncrementalRetry(this ClientContext clientContext, int retryCount, int delay)
186+
public static void ExecuteQueryWithIncrementalRetry(this ClientContext clientContext, int retryCount)
187187
{
188188
int retryAttempts = 0;
189-
int backoffInterval = delay;
190189
int retryAfterInterval = 0;
191190
bool retry = false;
192191
ClientRequestWrapper wrapper = null;
193192
if (retryCount <= 0)
193+
{
194194
throw new ArgumentException("Provide a retry count greater than zero.");
195-
if (delay <= 0)
196-
throw new ArgumentException("Provide a delay greater than zero.");
195+
}
197196

198197
// Do while retry attempt is less than retry count
199198
while (retryAttempts < retryCount)
@@ -234,25 +233,11 @@ public static void ExecuteQueryWithIncrementalRetry(this ClientContext clientCon
234233
wrapper = (ClientRequestWrapper)ex.Data["ClientRequest"];
235234
retry = true;
236235

237-
// Determine the retry after value - use the `Retry-After` header when available
238-
string retryAfterHeader = response.GetResponseHeader("Retry-After");
239-
if (!string.IsNullOrEmpty(retryAfterHeader))
240-
{
241-
if (!Int32.TryParse(retryAfterHeader, out retryAfterInterval))
242-
{
243-
retryAfterInterval = backoffInterval;
244-
}
245-
}
246-
else
247-
{
248-
retryAfterInterval = backoffInterval;
249-
}
236+
// Determine the retry after value - use the `Retry-After` header
237+
retryAfterInterval = Int32.Parse(response.GetResponseHeader("Retry-After"));
250238

251239
// Delay for the requested seconds
252240
Thread.Sleep(retryAfterInterval * 1000);
253-
254-
// Increase counters
255-
backoffInterval = backoffInterval * 2;
256241
}
257242
else
258243
{

docs/solution-guidance/Handle-SharePoint-Online-throttling-by-using-exponential-back-off.md

Lines changed: 0 additions & 31 deletions
This file was deleted.

docs/toc.yml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@
344344
- name: Deploy web parts to Azure CDN
345345
href: spfx/web-parts/get-started/deploy-web-part-to-cdn.md
346346
- name: Deployment options for SPFx solutions & Microsoft Teams
347-
href: https://docs.microsoft.com/sharepoint/dev/spfx/deployment-spfx-teams-solutions
347+
href: /sharepoint/dev/spfx/deployment-spfx-teams-solutions
348348
- name: Custom build tasks
349349
href: spfx/toolchain/integrate-gulp-tasks-in-build-pipeline.md
350350
- name: Extend Webpack
@@ -451,9 +451,9 @@
451451
- name: SharePoint 2016 support
452452
href: spfx/sharepoint-2016-support.md
453453
- name: Microsoft Teams
454-
href: https://docs.microsoft.com/sharepoint/dev/spfx/build-for-teams-overview
454+
href: /sharepoint/dev/spfx/build-for-teams-overview
455455
- name: Microsoft Viva Connections
456-
href: https://docs.microsoft.com/sharepoint/dev/spfx/viva/overview-viva-connections
456+
href: /sharepoint/dev/spfx/viva/overview-viva-connections
457457
- name: Release notes & roadmap
458458
items:
459459
- name: Overview
@@ -1637,6 +1637,8 @@
16371637
href: transform/modernize-customizations.md
16381638
- name: Modernize site branding
16391639
href: transform/modernize-branding.md
1640+
- name: Modernize SharePoint 2013 workflow
1641+
href: transform/modernize-workflows.md
16401642
- name: Connect to a Microsoft 365 group
16411643
items:
16421644
- name: Overview
@@ -1821,8 +1823,6 @@
18211823
href: solution-guidance/Extending-SharePoint-Online-for-Germany-China-USGovernment-environments.md
18221824
- name: Avoid getting throttled or blocked in SharePoint Online
18231825
href: general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online.md
1824-
- name: Handle SharePoint Online throttling
1825-
href: solution-guidance/Handle-SharePoint-Online-throttling-by-using-exponential-back-off.md
18261826
- name: Set up app-only access to SharePoint
18271827
href: solution-guidance/security-apponly.md
18281828
items:
@@ -2055,6 +2055,8 @@
20552055
href: apis/spod-copy-move-api.md
20562056
- name: SharePoint Migration Guidance
20572057
items:
2058+
- name: What's new in Migration API
2059+
href: apis/migration-api-whats-new.md
20582060
- name: Migration Guidance for ISVs
20592061
href: apis/migration-isv-guidance.md
20602062
- name: Migration permission guidance
@@ -2103,9 +2105,9 @@
21032105
- name: Create folder classification request
21042106
href: apis/syntex/rest-createfolderclassificationrequest.md
21052107
- name: PnP Sites Core API reference
2106-
href: https://docs.microsoft.com/dotnet/api/?term=Officedevpnp
2108+
href: /dotnet/api/?term=Officedevpnp
21072109
- name: PnP Sites Core API reference - Extension methods
2108-
href: https://docs.microsoft.com/dotnet/api/?term=microsoft.sharepoint
2110+
href: /dotnet/api/?term=microsoft.sharepoint
21092111
- name: SharePoint schema reference
21102112
href: schema/schema-reference-for-sharepoint.md
21112113
items:
@@ -5289,4 +5291,4 @@
52895291
- name: Tutorials
52905292
href: training/training.md
52915293
- name: SharePoint Framework API reference
5292-
href: https://docs.microsoft.com/javascript/api/overview/sharepoint
5294+
href: /javascript/api/overview/sharepoint

docs/transform/modernize-scanner-reports-workflow.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ ms.localizationpriority: high
88

99
# SharePoint Modernization scanner reports: Workflow reports
1010

11+
> [!Note]
12+
> Assessing your workflow 2013 usage should be done using the [Microsoft 365 Assessment tool](https://aka.ms/microsoft365assessmenttool)
13+
1114
## Excel dashboard
1215

1316
![Workflow dashboard](media/modernize/excel_workflowusage.png)

docs/transform/modernize-scanner-reports.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ ms.localizationpriority: high
1010

1111
The output of a SharePoint Modernization Scanner run is a series of reports (CSV files and Excel dashboards). Using these outputs you can better understand what classic usage there is in your tenant, assess whether it's still relevant for you and get informed on potential remediation's needed before you can modernize. You would typically use the Microsoft Excel based dashboards to inspect the data and build up an understanding of the scan results. If you later on want to modernize sites, lists, etc you can use the CSV files as input for (PowerShell based) automation.
1212

13+
> [!Note]
14+
> Assessing your workflow 2013 usage should be done using the [Microsoft 365 Assessment tool](https://aka.ms/microsoft365assessmenttool)
15+
1316
## Overview of the scanner output
1417

1518
The output you'll depends on the chosen scan mode. Below table lists the available scan modes:

0 commit comments

Comments
 (0)