pnp / pnp/pnpframework

$ prevent transformation

Open
#699 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
259
Forks
161
Avg merge
10h 33m
Merged PRs (30d)
1

Description

I have a classic (SharePoint Online) site. I used PnP.powershell 1.11.0 to transform pages to Modern site. In some pages, I have $ and it prevent transformation. I have to remove them manually to transform the pages.

This is the log:

`# Modernization Summary Report

Date Duration Source Page Target Page Url Status
2022-07-21 9:34:48 AM 00:00:38 /en-ca/Pages//-****-Rewards.aspx A issue prevented successful transformation

Critical Errors during transformation

2022-07-21 9:35:26 AM - /en-ca/Pages//-****-Rewards.aspx

Exception of type 'System.OutOfMemoryException' was thrown. at System.Text.StringBuilder.ToString()
at System.Text.RegularExpressions.Regex.Replace(String input, String replacement)
at PnP.Framework.Modernization.Transform.TokenParser.ReplaceTokens(String input, WebPartEntity webPartData)
at PnP.Framework.Modernization.Transform.ContentTransformator.Transform(List`1 webParts)
at PnP.Framework.Modernization.Publishing.PublishingPageTransformator.Transform(PublishingPageTransformationInformation publishingPageTransformationInformation)

Individual Page details

Transformation Details: /en-ca/Pages//-****-Rewards.aspx

  • Report date: 2022-07-21 9:34:48 AM
  • Transform duration: 00:00:38
  • Transforming from site: https://.sharepoint.com/sites//en-ca
  • Cross-Site transfer mode to site: https://.sharepoint.com/sites/
  • Transforming page: /sites//en-ca/Pages//--Rewards.aspx
  • Source SharePoint version: Online (16.0.0.22706)
  • Mode: Publishing Page Transformation Mode
  • An referenced asset was found and copied to: /sites//SiteAssets/SitePages/----Rewards/AC_icons_ loyalty wings_white on blue@4x.png
  • An referenced asset was found and copied to: /sites//SiteAssets/SitePages/----Rewards/AC_icons_ loyalty wings_white on blue@4x.png
  • An referenced asset was found and copied to: /sites//SiteAssets/SitePages/---****-Rewards/1.png
  • An referenced asset was found and copied to: /sites//SiteAssets/SitePages/---****-Rewards/2.png
  • An referenced asset was found and copied to: /sites//SiteAssets/SitePages/---****-Rewards/3.png
  • An referenced asset was found and copied to: /sites//SiteAssets/SitePages/---****-Rewards/4.png
  • An referenced asset was found and copied to: /sites//SiteAssets/SitePages/---****-Rewards/noblur.PNG
  • A critical error occurred - transformation did not complete
Page Transformation Settings
Property Setting
Engine version 1.10.2.0
Overwrite True
Target Page Name
Target Page Folder
Target Page Folder Overrides Default Folder False
Keep Page Specific Permissions True
Remove Empty Sections And Columns True
Handle Wiki Images And Videos True
Add Table List Image As Image Web Part True
Keep Page Creation Modification Information True
Publish Created Page True
Post As News False
Disable Page Comments False
Skip Url Rewrite False
Skip Default Url Rewrite False
Url Mapping File
Skip Hidden Web Parts False
Term Mapping File C:\Users\TP051659\Documents****\Prod\TermMapping\term_mapping_Prod.csv
Skip Term Store Mapping False
Skip User Mapping False
User Mapping File
L D A P Connection String
Skip Telemetry False
Transformation Operation Details
Date Operation Actions Performed
2022-07-21 9:34:48 AM Input Validation Validation checks complete
2022-07-21 9:34:48 AM SharePoint Connection Loading client context objects
2022-07-21 9:34:48 AM SharePoint Connection Loading target client context object
2022-07-21 9:34:49 AM Page Creation Detect if the page is living inside a folder
2022-07-21 9:34:49 AM Page Creation The transform page is located in a folder
2022-07-21 9:34:49 AM Page Creation In Cross-Site transform mode the original source file name is used
2022-07-21 9:34:49 AM Page Creation Just try to load the page in the fastest possible manner, we only want to see if the page exists or not
2022-07-21 9:34:49 AM Page Creation The page already exists in target location
2022-07-21 9:34:50 AM Page Creation Modern page created
2022-07-21 9:34:50 AM Article page handling Transforming source page as Article page
2022-07-21 9:34:50 AM Article page handling Recognized source page as a Publishing Page - Analyzing web parts and page layouts
2022-07-21 9:34:50 AM Page Layout Manager Page uses ****documentlayout as page layout, mapping that will be used is ****documentlayout
2022-07-21 9:34:50 AM Article page handling Splitting images and videos from wiki text - as modern text web part does not support embedded images and videos
2022-07-21 9:34:50 AM Set Page Title Setting the modern page title: **** - **** Rewards
2022-07-21 9:34:50 AM Article page handling Preparing content transformation
2022-07-21 9:34:50 AM Article page handling Transforming content
2022-07-21 9:34:50 AM Content Transform Transforming web parts
2022-07-21 9:34:50 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:34:50 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:50 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:50 AM Adding Web Parts to Target Page Added 'Client Side Text Web Part' to target page
2022-07-21 9:34:50 AM Web Part Mapping Web Part:'Image in wiki text' of type 'SharePointPnP.Modernization.WikiImagePart' is being transformed
2022-07-21 9:34:50 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:51 AM EsureAssetContextIfRequired Source Context Switched
2022-07-21 9:34:51 AM Asset Transfer Uploading AC_icons_**** loyalty wings_white on blue@4x.png
2022-07-21 9:34:52 AM Asset Transfer Upload AC_icons_**** loyalty wings_white on blue@4x.png complete
2022-07-21 9:34:52 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:52 AM Adding Web Parts to Target Page Using 'Image' modern web part
2022-07-21 9:34:52 AM Adding Web Parts to Target Page Added 'Image' Client Side Web Part to target page
2022-07-21 9:34:52 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:34:52 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:52 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:52 AM Adding Web Parts to Target Page Added 'Client Side Text Web Part' to target page
2022-07-21 9:34:52 AM Web Part Mapping Web Part:'Image in wiki text' of type 'SharePointPnP.Modernization.WikiImagePart' is being transformed
2022-07-21 9:34:52 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:52 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:52 AM Adding Web Parts to Target Page Using 'Image' modern web part
2022-07-21 9:34:52 AM Adding Web Parts to Target Page Added 'Image' Client Side Web Part to target page
2022-07-21 9:34:52 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:34:52 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:52 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:52 AM Adding Web Parts to Target Page Added 'Client Side Text Web Part' to target page
2022-07-21 9:34:52 AM Web Part Mapping Web Part:'Image in wiki text' of type 'SharePointPnP.Modernization.WikiImagePart' is being transformed
2022-07-21 9:34:52 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:53 AM EsureAssetContextIfRequired Source Context Switched
2022-07-21 9:34:53 AM Asset Transfer Uploading 1.png
2022-07-21 9:34:54 AM Asset Transfer Upload 1.png complete
2022-07-21 9:34:54 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:54 AM Adding Web Parts to Target Page Using 'Image' modern web part
2022-07-21 9:34:54 AM Adding Web Parts to Target Page Added 'Image' Client Side Web Part to target page
2022-07-21 9:34:54 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:34:54 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:54 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:54 AM Adding Web Parts to Target Page Added 'Client Side Text Web Part' to target page
2022-07-21 9:34:54 AM Web Part Mapping Web Part:'Image in wiki text' of type 'SharePointPnP.Modernization.WikiImagePart' is being transformed
2022-07-21 9:34:54 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:55 AM EsureAssetContextIfRequired Source Context Switched
2022-07-21 9:34:55 AM Asset Transfer Uploading 2.png
2022-07-21 9:34:55 AM Asset Transfer Upload 2.png complete
2022-07-21 9:34:56 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:56 AM Adding Web Parts to Target Page Using 'Image' modern web part
2022-07-21 9:34:56 AM Adding Web Parts to Target Page Added 'Image' Client Side Web Part to target page
2022-07-21 9:34:56 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:34:56 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:56 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:56 AM Adding Web Parts to Target Page Added 'Client Side Text Web Part' to target page
2022-07-21 9:34:56 AM Web Part Mapping Web Part:'Image in wiki text' of type 'SharePointPnP.Modernization.WikiImagePart' is being transformed
2022-07-21 9:34:56 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:56 AM EsureAssetContextIfRequired Source Context Switched
2022-07-21 9:34:57 AM Asset Transfer Uploading 3.png
2022-07-21 9:34:57 AM Asset Transfer Upload 3.png complete
2022-07-21 9:34:57 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:57 AM Adding Web Parts to Target Page Using 'Image' modern web part
2022-07-21 9:34:57 AM Adding Web Parts to Target Page Added 'Image' Client Side Web Part to target page
2022-07-21 9:34:57 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:34:57 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:57 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:57 AM Adding Web Parts to Target Page Added 'Client Side Text Web Part' to target page
2022-07-21 9:34:57 AM Web Part Mapping Web Part:'Image in wiki text' of type 'SharePointPnP.Modernization.WikiImagePart' is being transformed
2022-07-21 9:34:57 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:58 AM EsureAssetContextIfRequired Source Context Switched
2022-07-21 9:34:59 AM Asset Transfer Uploading 4.png
2022-07-21 9:34:59 AM Asset Transfer Upload 4.png complete
2022-07-21 9:34:59 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:59 AM Adding Web Parts to Target Page Using 'Image' modern web part
2022-07-21 9:34:59 AM Adding Web Parts to Target Page Added 'Image' Client Side Web Part to target page
2022-07-21 9:34:59 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:34:59 AM Web Part Mapping Processing selector functions
2022-07-21 9:34:59 AM Web Part Mapping Combining mapping data
2022-07-21 9:34:59 AM Adding Web Parts to Target Page Added 'Client Side Text Web Part' to target page
2022-07-21 9:34:59 AM Web Part Mapping Web Part:'Image in wiki text' of type 'SharePointPnP.Modernization.WikiImagePart' is being transformed
2022-07-21 9:34:59 AM Web Part Mapping Processing selector functions
2022-07-21 9:35:00 AM EsureAssetContextIfRequired Source Context Switched
2022-07-21 9:35:00 AM Asset Transfer Uploading noblur.PNG
2022-07-21 9:35:01 AM Asset Transfer Upload noblur.PNG complete
2022-07-21 9:35:01 AM Web Part Mapping Combining mapping data
2022-07-21 9:35:01 AM Adding Web Parts to Target Page Using 'Image' modern web part
2022-07-21 9:35:01 AM Adding Web Parts to Target Page Added 'Image' Client Side Web Part to target page
2022-07-21 9:35:01 AM Web Part Mapping Web Part:'Wiki text' of type 'SharePointPnP.Modernization.WikiTextPart' is being transformed
2022-07-21 9:35:01 AM Web Part Mapping Processing selector functions
2022-07-21 9:35:01 AM Web Part Mapping Combining mapping data

`

do you guys have any ideas about this issue?

@jansenbe @erwinvanhunen @pkbullock

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with PnP.Framework.Modernization.Transform.TokenParser.ReplaceTokens and follow the call path through ContentTransformator.Transform and PublishingPageTransformator.Transform. Reproduce the reported page transformation using content containing a dollar sign, then verify that transformation completes without the OutOfMemoryException reported at Regex.Replace and StringBuilder.ToString().

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.