Articles about European Sharepoint Hosting Service
Posts tagged SharePoint 2013 Hosting belgium
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 :: How To Use PnP React Accordion Control In SPFx?
Feb 18th
Implementation
- Create a list with Title and Description fields as mentioned above.
- Open a command prompt
- Move to the path where you want to create a project
- Create a project directory using:
1 |
md directory-name |
1 |
cd directory-name |
1 |
yo @microsoft/sharepoint |
1 |
code . |
1 2 |
npm install @pnp/sp --save npm install @pnp/spfx-controls-react --save --save-exact |
1 2 3 4 5 6 7 |
import { WebPartContext } from "@microsoft/sp-webpart-base"; export interface IPnpReactAccordionProps { description: string; listName: string; context: WebPartContext; } |
Create a file I{webpartname}State.ts inside src > webparts > webpart > components and create state interface as below,
1 2 3 4 5 6 7 8 9 10 |
interface IListItem { Id?: string; Title: string; Description: string } export interface IPnpReactAccordionState { listItems: IListItem[]; errorMessage: string; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import { WebPartContext } from "@microsoft/sp-webpart-base"; import { sp } from '@pnp/sp/presets/all'; export class SPService { constructor(private context: WebPartContext) { sp.setup({ spfxContext: this.context }); } public async getListItems(listName: string) { try { let listItems: any[] = await sp.web.lists.getByTitle(listName) .items .select("Id,Title,Description") .get(); return listItems; } catch (err) { Promise.reject(err); } } } |
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 |
import * as React from 'react'; import * as ReactDom from 'react-dom'; import { Version } from '@microsoft/sp-core-library'; import { IPropertyPaneConfiguration, PropertyPaneTextField } from '@microsoft/sp-property-pane'; import { BaseClientSideWebPart } from '@microsoft/sp-webpart-base'; import * as strings from 'PnpReactAccordionWebPartStrings'; import PnpReactAccordion from './components/PnpReactAccordion'; import { IPnpReactAccordionProps } from './components/IPnpReactAccordionProps'; export interface IPnpReactAccordionWebPartProps { description: string; listName: string; } export default class PnpReactAccordionWebPart extends BaseClientSideWebPart<IPnpReactAccordionWebPartProps> { public render(): void { const element: React.ReactElement<IPnpReactAccordionProps> = React.createElement( PnpReactAccordion, { description: this.properties.description, listName: this.properties.listName, context: this.context } ); ReactDom.render(element, this.domElement); } protected onDispose(): void { ReactDom.unmountComponentAtNode(this.domElement); } protected get dataVersion(): Version { return Version.parse('1.0'); } protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration { return { pages: [ { header: { description: strings.PropertyPaneDescription }, groups: [ { groupName: strings.BasicGroupName, groupFields: [ PropertyPaneTextField('description', { label: strings.DescriptionFieldLabel }), PropertyPaneTextField('listName', { label: strings.ListNameFieldLabel }) ] } ] } ] }; } } |
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 |
import * as React from 'react'; import styles from './PnpReactAccordion.module.scss'; import { IPnpReactAccordionProps } from './IPnpReactAccordionProps'; import { IPnpReactAccordionState } from './IPnpReactAccordionState'; import { escape } from '@microsoft/sp-lodash-subset'; import { SPService } from '../../../Service/SPService'; import { Accordion } from "@pnp/spfx-controls-react/lib/Accordion"; export default class PnpReactAccordion extends React.Component<IPnpReactAccordionProps, IPnpReactAccordionState> { private _services: SPService = null; constructor(props: IPnpReactAccordionProps) { super(props); this.state = { listItems: [], errorMessage: '' } /** Bind service using current context */ this._services = new SPService(this.props.context); } public componentDidMount() { this.getListItems(); } /** Get items of selected list and set values in state */ private async getListItems() { if (this.props.listName) { let items = await this._services.getListItems(this.props.listName); this.setState({ listItems: items }); } else { this.setState({ errorMessage: 'Please enter the list name in property pane configuration.' }); } } public render(): React.ReactElement<IPnpReactAccordionProps> { return ( <div className={styles.pnpReactAccordion}> { //Map list items and render in accordion (this.state.listItems && this.state.listItems.length) ? this.state.listItems.map((item, index) => ( <Accordion title={item.Title} defaultCollapsed={true} className={"itemCell"} key={index}> <div className={"itemContent"}> <div className={"itemResponse"} dangerouslySetInnerHTML={{ __html: item.Description }}></div> </div> </Accordion> )) : <p>{this.state.errorMessage}</p> } </div> ); } } |
1 |
gulp serve |

SharePoint 2013 Hosting – HostForLIFE :: Managing Site Storage In SharePoint Online
Feb 11th
Overview
Site Storage in SharePoint Online
Site storage configuration
- Automatic
The default. All sites get the storage from a central pool. The global or SharePoint administrator does not have to manage the storage per site. It is handled automatically by SharePoint for them. - Manual
The global or SharePoint administrator can have a fined tuned site storage allocated for each of the SharePoint site collection.
Manage site storage for individual sites
- Navigate to the site settings page.
- Under Site Collection Administration, click Storage Metrics.
PowerShell support
- Set-SPOSite -Identity https://contoso.sharepoint.com -StorageQuota 1500 -StorageQuotaWarningLevel 1400
Summary
How To Fix SharePoint 404 Error After Content Database Migration?
Feb 2nd
Issue Description
- The site might have been deleted, request to the site administrator to check the recycle bin.
- Do the IIS reset.
- Try to access the other layout page like /_layouts/15/settings.aspx(might be default.aspx or home.aspx has some issue).
- Clear the timer job cache….etc
Background of the issue
Example
Solution
SharePoint 2013 Hosting – HostForLIFE :: How To Fix SharePoint Errors In A Few Minutes?
Jan 28th
SharePoint is a flexible server program available for use today. And the main motive of Microsoft for offering SharePoint is to help the organizations build a collaborative environment among the employees. Whenever a number of users work with an application for workflows, the amount of data also increases and demands more storage space to store it. This affects the SharePoint space configuration which eventually will badly affect its overall performance. Apart from this, SharePoint has a very dynamic nature due to which administrators and normal users, both, might face some issues. Therefore, in this blog, let us see how to fix SharePoint errors with ease. Along with this, a third party tool is also discussed for SysTools SharePoint to SharePoint Migration.
Common SharePoint Errors Encountered By Users, With Solutions
This section of the blog will let users know about SharePoint problems and how they can resolve these easily.
Problem #1 – Increase in Database Size
It is clear that the SharePoint database contains lots of documents, images, presentations, videos, etc. And, everybody knows media files are generally large or heavy in size, which increases the total database size also. This will somehow increase the browser timeout and have an adverse effect on the performance of the SharePoint application.
Solution
Now, to avoid this situation, it is always recommended to fix this SharePoint file size error. If there are multiple media files, then it is suggested to save or move them to an external storage device.
Problem #2 – Unnecessary Data Take Space
It is obvious that after some time, the data becomes useless and not required by the user. Therefore, to manage or create storage space for new data, a user has to remove the unnecessary data from time to time. If this is not taken care of at the time, then it will definitely start creating issues in SharePoint application.
Solution
To overcome this storage space issue, a user is advised to Shift + Delete the data that is not necessary to free up the storage space on the cloud for new data.
Problem #3 – Database Stored in SQL Server
SharePoint database is stored in an unstructured form on the SQL Server. However, the data is stored as the BLOB (Binary Large Objects) and in the case of SharePoint, the database becomes large in size. Moreover, it uses a large number of SQL resources and whenever a user works on SharePoint, each process takes lots of time.
Solution
In this case, a user can shuffle BLOB database to the SQL secondary storage such as NAS (Network Attached Storage).
Problem #4 – Missing Site Templates
This is one of the commonly faced errors by the users when they upgrade SharePoint from one version to another. Because sometimes while doing so, site templates get deleted, which generate an error.
Solution
Look for the site definition on the earlier server. After that, simply upgrade it to support the latest version, and install it on the upgraded server.
One Stop Solution to Overcome All Troubles of SharePoint
The above discussed errors are just highlights of the issues related to SharePoint problems whose main reason is storage limit. Now, to stop them from occurring in the future, one needs to look for some SharePoint Issues alternatives. There can be several possible reasons that result in issues in SharePoint and the worst case is data loss.
SharePoint 2013 Hosting – HostForLIFE.eu :: How to Custom Search Script in SharePoint 2013?
Jan 22nd
This article will explain the PowerShell script that searches for files within document libraries in SharePoint (farm level, site collection level, web level etc.) based on the search parameters you provide. It can also be used for searching in SharePoint for any files with specified extension. The results are returned in .CSV format.
Examples of scenarios
Search the entire farm for files that have names like “Training Copy”.
Search the site collection http://sharepoint.mydreambox.com/sites/site1 for all PDF files, RDL files, etc.
Search the web http://sharepoint.mydreambox.com/sites/site1/web1 for the file named “AXL8rt.docx”, etc.
Usage of the Script
Replace the $webApp, $sites, etc. with appropriate values
Replace the $searchKey with the desired search queries or file extension that is to be searched for
Make sure the account that is running these scripts have necessary privileges in SharePoint
Script use cases
The code is presented for four different cases,
Searching for an entire farm
Searching within a web application
Searching within a site collection
Searching within a web
Output
The output will be in the form of a CSV file, as displayed below. It will contain all the file location URLs.
Case I – For searching within the entire farm
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 |
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } $sites = Get-SPSite -Limit All $searchKey = ".rdl" $results = @() foreach ($site in $sites) { foreach ($web in $site.AllWebs) { Write-Host Searching within $web.Url foreach ($list in $web.Lists) { if($list.BaseType -eq "DocumentLibrary") { foreach($item in $list.Items) { if($item.Name.Contains($searchKey)) { $RowDetails = @{ “File Location” = $web.Url + "/" + $item.Url } $results += New-Object PSObject –Property $RowDetails } } } } } } $results | Export-CSV –Path C:\MySearchedFiles.csv -NoTypeInformation Case II - For searching within a Web Application if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } $webApp = "http://sharepoint.dreambox.com" $sites = Get-SPSite -WebApplication $webApp -Limit All $searchKey = "Self Improvement" $results = @() foreach ($site in $sites) { foreach ($web in $site.AllWebs) { Write-Host Searching within $web.Url foreach ($list in $web.Lists) { if($list.BaseType -eq "DocumentLibrary") { foreach($item in $list.Items) { if($item.Name.Contains($searchKey)) { $RowDetails = @{ “File Location” = $web.Url + "/" + $item.Url } $results += New-Object PSObject –Property $RowDetails } } } } } } $results | Export-CSV –Path C:\MySearchedFiles.csv -NoTypeInformation |
Case III – For searching within a Site Collection
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 |
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } $site = Get-SPSite “http://sharepoint.dreambox.com/sites/site1” $searchKey = ".docx" $results = @() foreach ($web in $site.AllWebs) { Write-Host Searching within $web.Url foreach ($list in $web.Lists) { if($list.BaseType -eq "DocumentLibrary") { foreach($item in $list.Items) { if($item.Name.Contains($searchKey)) { $RowDetails = @{ “File Location” = $web.Url + "/" + $item.Url } $results += New-Object PSObject –Property $RowDetails } } } } } $results | Export-CSV –Path C:\MySearchedFiles.csv -NoTypeInformation |
Case IV – For searching within a Web
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 |
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } $web = Get-SPWeb “http://sharepoint.dreambox.com/sites/site1/web1” $searchKey = ".pdf" $results = @() foreach ($list in $web.Lists) { if($list.BaseType -eq "DocumentLibrary") { foreach($item in $list.Items) { if($item.Name.Contains($searchKey)) { $RowDetails = @{ “File Location” = $web.Url + "/" + $item.Url } $results += New-Object PSObject –Property $RowDetails } } } } $results | Export-CSV –Path C:\MySearchedFiles.csv -NoTypeInformation |