Articles about European Sharepoint Hosting Service
Posts tagged cheap europe sharepoint 2013 hosting
SharePoint Hosting – Custom RSS SPFx Feed WebPart In Modern UI
Feb 25th
Challenge
-
This web part is available only for Office 365 Group Enabled team sites.
-
Users should have Outlook account and it has to be manually added to the Office 365 group.
-
Only supports 2500 users.
-
No options were available to alter the format in which information is displayed.
-
spfx-40-fantastics – RSS Feed Reader webpart
URL – https://github.com/OlivierCC/spfx-40-fantastics/wiki/Rss-Reader
This webpart solution is not working at the moment.
Reference – https://github.com/OlivierCC/spfx-40-fantastics/issues/97 -
Direct – This has an issue with CORS policy
-
3rd party solutions like https://feed2json.org or https://rss2json.com.
https://feed2json.org is open source but has limitations as below
-
It has to be hosted on a separate server
-
It does not support CORS.
https://rss2json.com free version has limitations as below
-
It takes 1 hour to display the updates.
-
Supports a maximum of only 10,000 requests per day.
-
Maximum of 25 feeds were allocated per account
Solution
-
Recurrence – specifies the schedule of execution of flow. We had scheduled it to execute the flow every 30 minutes.
-
Initialize variable – This initializes a variable to save the RSS url.
-
Get Item – This reads the RSS Feed url from a SharePoint List (We used a predefined SharePoint List to store the RSS Url. This also provides the facility to the end user to change the RSS Feed URL if needed).
-
Apply to each – Assigns the RSS url variable with the value for RSS Feed url from the previous step.
-
HTTP -Make a HTTP call with GET Method to read the text from RSS Feed XML.
-
Update Item –Updates a SharePoint List multi-line text column with the output of HTTP call made in the previous step.
React SharePoint Framework Web part
- Now, we are not depending on any third party webparts and third-party API to read RSS feed data, hence we don’t face any request and feed limits.
- Resolved CORS issue by directly accessing feed data from already-stored feed using MS Flow.
- We can customize the display format for RSS as well with our custom web part solution.
SharePoint 2013 Hosting – HostForLIFE :: Downloading A File From SharePoint Online Site Using The SharePoint App
Jan 14th
- tenantID – You can find tenant id from https://portal.azure.com – Azure Active Directory à Properties
- strAppID – This is the App Guid which will be created at https://<sitename>.sharepoint.com/_layouts/15/appregnew.aspx
- strAppSecret – App secret
- strOrgDomain – Your organization domain will be used in “{organisationdomain}.sharepoint.com”;
SharePoint 2013 Hosting – HostForLIFE :: How to Copy Item Attachments To SharePoint Library Using PnP PowerShell?
Jan 7th
In this blog, we are going to learn how to copy the attachments from a single list item to SharePoint library using PnP PowerShell. The following snippet helps, you to get the attachments from a list item and uploads to the shared Documents library in a current context site.
1 2 3 4 5 6 7 |
$cred = Get-Credential Connect-PnPOnline -Url https://ktskumartenant.sharepoint.com/sites/dev -Credential $cred $listitem = Get-PnPListItem -List Employee -Id 2 $attachments = ForEach-Object{Get-PnPProperty -ClientObject $listitem -Property "AttachmentFiles"} $attachments | ForEach-Object { Copy-PnPFile -SourceUrl $_.ServerRelativeUrl –TargetUrl “Shared Documents/$($_.FileName)” |
After running the powershell command, it asks us to confirm the sourceurl and target url. If the file already exists in the targeturl, we have to add -OverwriteIfAlreadyExists $true to avoid the file already exists error.
Below is the example copies the two attachments from the single list item to the folder within a SharePoint library.

SharePoint Hosting – Add, Retrieve And Remove The Navigation Node Using JSOM
Dec 23rd
1 |
For add="Add Navigation"(Function Name->addNavNode() )-> |
1 |
For retrieve="Show Navigations Names"(Function Name->checkNavNames())-> |
1 |
For remove="Remove Navigation"(FunctionName->removeNavNode())-> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
< script type = "text/javascript" language = "javascript" > var navNodes = [{ Name: "TeamSiteNavigation", url: "/sites/TeamSite", fromExternal: false }, { Name: "TopNavigation", url: "http://www.google.com", fromExternal: true }]; var oNavNodeColl = null; var nodeCreationInfo = null; function addNavNode() { var ctx = new SP.ClientContext.get_current(); if (ctx != undefined && ctx != null) { var oWeb = ctx.get_web(); this.oNavNodeColl = oWeb.get_navigation().get_topNavigationBar(); for (var i = 0; i < navNodes.length; i++) { var navObj = navNodes[i]; var nodeTitle = navObj.Name; var navNodeUrl = navObj.url; var navFromExternal = navObj.fromExternal; this.nodeCreationInfo = new SP.NavigationNodeCreationInformation(); nodeCreationInfo.set_title(nodeTitle); nodeCreationInfo.set_url(navNodeUrl); nodeCreationInfo.set_isExternal(navFromExternal); nodeCreationInfo.set_asLastNode(true); this.oNavNodeColl.add(nodeCreationInfo); } ctx.load(this.oNavNodeColl); ctx.executeQueryAsync(function() { alert("successfully added") }, function(sender, args) { alert('Request failed. ' + args.get_messege() + '\n' + args.get_stackTrace()); }); } } function checkNavNames() { var ctx = SP.ClientContext.get_current(); var oWeb = ctx.get_web(); var oNavNodeColl = oWeb.get_navigation(); var nodeColl = oNavNodeColl.get_topNavigationBar(); ctx.load(oNavNodeColl); ctx.load(nodeColl, 'Include(Title,Children.Include(Title,Children))'); ctx.executeQueryAsync(function() { var navNodeEnumerator = nodeColl.getEnumerator(); var nodeNames = ""; while (navNodeEnumerator.moveNext()) { var oNavNode = navNodeEnumerator.get_current(); nodeNames = nodeNames + '\n' + oNavNode.get_title(); } alert(nodeNames); }, function(sender, args) { alert('Request failed. ' + args.get_messege() + '\n' + args.get_stackTrace()); }); } function removeNavNode() { var navName = document.getElementById("Textbox").value; var ctx = SP.ClientContext.get_current(); var oWeb = ctx.get_web(); var oNavNodeColl = oWeb.get_navigation(); var nodeColl = oNavNodeColl.get_topNavigationBar(); ctx.load(oNavNodeColl); ctx.load(nodeColl, 'Include(Title,Children.Include(Title,Children))'); ctx.executeQueryAsync(function() { var navNodeEnumerator = nodeColl.getEnumerator(); var nodeNames = ""; while (navNodeEnumerator.moveNext()) { var oNavNode = navNodeEnumerator.get_current(); nodeNames = oNavNode.get_title(); if (nodeNames == navName) { oNavNode.deleteObject(); ctx.executeQueryAsync(function() { alert("successfully deleted"); }, function(sender, args) { alert('Request failed. ' + args.get_messege() + '\n' + args.get_stackTrace()); }); } } }, function(sender, args) { alert('Request failed. ' + args.get_messege() + '\n' + args.get_stackTrace()); }); } < /script> < input id = "addButton" type = "button" value = "Add Navigation" onclick = "addNavNode()" / >< br / >< div style = "marginTop:20px;" > & nbsp < /div>< input id = "checkButton" type = "button" value = "Show Navigations Names" onclick = "checkNavNames()" / >< br / >< div style = "marginTop:20px;" > & nbsp < /div>< label > Enter navigation name to delete < /label>< input id = "Textbox" type = "text" / >< input id = "removeButton" type = "button" value = "Remove Navigation" onclick = "removeNavNode()" > |

SharePoint Hosting – Change SharePoint Online List Or Library Internal Name
Dec 17th
Solution
Approach 1 – Using SharePoint Designer 2013
- In SharePoint Designer, Open your site.
- Navigate to All Files navigation node (not List and Libraries node),
Note
you will need “Site Collection Administrator” permission in the site collection to see “All Files” option. - Find your list there
- Right-click list
- Rename.
Approach 2 – Using PNP PowerShell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#Set Parameters $<span class="attribute">SiteURL</span> = <span class="attribute-value">"Site URL"</span> $<span class="attribute">ListName</span> = <span class="attribute-value">"Library Internal Name"</span> $<span class="attribute">NewListURL</span> = <span class="attribute-value">"New Library Name"</span> #Connect to PNP Online Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential) #this will change URL #Get the List $<span class="attribute">List</span>= <span class="attribute-value">Get</span>-PnPList -Identity $ListName -Includes RootFolder #sharepoint online powershell change list url $List.Rootfolder.MoveTo($NewListURL) Invoke-PnPQuery #this will change library title Set-PnPList -Identity $ListName -Title $NewListURL |
PowerShell to change List Name
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#Set Parameters $<span class="attribute">SiteURL</span> = <span class="attribute-value">"Site URL"</span> $<span class="attribute">ListName</span> = <span class="attribute-value">"Library Internal Name"</span> $<span class="attribute">NewListURL</span> = <span class="attribute-value">"New Library Name"</span> #Connect to PNP Online Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential) Set-PnPList -Identity $ListName -Title $NewListURL |
SharePoint 2013 Hosting – HostForLIFE.eu :: File Server Migration To SharePoint Online Using SPMT PowerShell
Dec 10th

Issue
- The documentation for this is not that accurate or in single place. We need to search here and there for things.
- SPMT tool migrates file server child items directly but when you use PowerShell, it migrates parent folder. Due to the curse of first point, it took some time for us to find the hidden solution. Go through this post to see that hidden gem.
- The last but not least is permission migration. SPMT has all this functionality but as I said earlier it is not documented well.
Solution
- Do not include a header row in your CSV file.
- Remember to account for all six columns in the file, even if you are not needing a value for a given field.
- If you use the standard out-of-the-box Document library (“Shared Documents”), you must use the Display name “Documents” as the placeholder value for the Target Document Library in your CSV file. If you enter “Shared Documents” in that column, you will receive an “invalid document library” error.
1 |
Source,SourceDocLib,SourceSubFolder,TargetWeb,TargetDocLib,TargetSubFolder |