As a SharePoint administrator you need to sometimes restart services that are crashed due to a lot of potential reasons, such as : distributed cache, excel calculation services (if you display excel in sharepoint pages), user profile synchronization, user profile etc.
This script allows to restart a service on two servers by powershell. No more manual action on X servers.
How to restart a SharePoint 2007 / 2010 / 2013 / 2016 / 2019 service programmatically ?
SharePoint Framework, what about on-premise people ?
This is my two cents journey from switching my mind away from on-premise development methods to Office 365 SharePoint Developer.
Back in 2015, when I saw all those tutorials about SharePointFramework, the so-called modernway of developing new apps inside SharePoint, I told myself: “my customers are mostly on premise (in France) so this is not of my concern”.
Then SharePoint 2016 feature pack 2 rolled out with SPFX support, and soon SharePoint 2019 will go RTM (end of the year).
YET, most of my customers are on SP2013 or SP2016 RTM. So I thought there are no ways to switch to modern development.
How to be able to catch those trends driven by PNPcommunity? Every week there are new components built in Typescript, React, MaterialUI, VueJS, Angular etc….
So I tried SPFX on office 365 tenant while my daily work life is still on-premise. Using contenteditor or scripteditor, I am able to do some javascript but this is not really suitable for big project. Javascript does not give pre-compiling errors etc.
Some GitHub boilerplate to the rescue
Then, I discovered some boilerplates github repository to be able to program using the trending technologies such as :
The first one, under Microsoft Repo has not been updated in a while so react version is outdated and the generated code referencing javascript is not versioned, so this is pretty limited for production environment, where a user would have to CTRL + F5 To see a new version of it. Also, the deployment is manual…
The second one has been done by Andrew Koltyakov, a MVP. A lot of modern ways to deploy has been added to this project such as :
gulp watch to deploy JS / CSS etc to SharePoint whenever you save
live reload to reload the page automatically
PNP to enjoy coding faster than lucky luke
The concept of SPPP is imitating SPFX except that you reference it in a content editor web part and voila.
Plus coding in typescript will prepare a potential code migration to SPFX during a Office 365 migration.
SPFX Continues to get updates by the community
Ok, you will tell me that Microsoft recommends app model on-premise or upgrading to more recent SharePoint version… To me, that is the dream and we have reality: technologies shift, modern ways to develop components on the shelve, why shall we stay in a heavy model such as apps model? There are some cases where app model is useful such as run with elevated privileges etc… for other cases components could be developed using such boilerplate.
A lot of VS code Extensions came to life to make the process easier to package and deploy to Office 365.
Wrap up
SharePoint framework is the way to go if you develop on premise on SP2016 feature pack 2 or SharePoint 2019. For other environments you can still program in typescript etc using boiler plates.
And you which way you develop your components on premise when SPFX is not available?
This sample is intended to be used in combination with the Employee Onboarding list template. The format restores the intended alternating rows but also adds a Tiles view that provides a more step based approach.
This sample is intended to be used in combination with the Issue Tracker list template. The format keeps the row highlighting for blocked issues but also adds a Tiles view that provides a Microsoft Planner look and feel.
This sample formats your SharePoint list view to look like message chat bubbles! If the Author is the current user, the message will be displayed on the right.
Display on the homepage of your SharePoint intranet a continually updated feed of London Underground line statuses using the publicly available Transport for London (TFL) API.
The results are retrieved using Power Automate, then written to a SharePoint list, and the list view is styled (using view formatting) so it looks like the familiar TFL tube status board with correct line colours. Any line not currently in Good service can be clicked and a hovercard will show with further information i.e. delays/suspension/closure etc.
Technologies Used
SharePoint
List (used to store the latest TFL line status data)
View Formatting (JSON used to style the list into the familiar TFL Status board)
Power Automate (used for both creating the Tube Status SharePoint list using the SharePoint REST API and then, on a scheduled basis, retrieving the latest TFL tube statuses)
Azure Logic Apps (OPTIONAL – used for retrieving the latest TFL tube statuses using Azure Logic Apps instead of Power Automate.)
Prerequisites
You must be licenced and able to create Power Automate flows
If Azure Logic Apps option is chosen you must be able to create or have a Logic app created for you.
You must have a valid SharePoint Online license and permission to create lists.
You must have a modern SharePoint site where you can store the data for the app.
This sample creates a link in bio card for users. A “Link in bio” is important for people to have because it provides a centralized location where they can direct their followers or potential customers to access more information about them, their products, or their services.
This sample demonstrates showing a default hover card in a document library. On hover in a formatted view on a file a file card is displayed. On hover in a formatted view on a person column a profile card is displayed.
This example uses the rowFormatter element, which totally overrides the rendering of a list view row. The rowFormatter in this example creates a bounding <div /> box for every list view row. Inside this bounding box, the $Title and $Feedback fields are displayed on separate lines. Under those fields, a button element is displayed that, when clicked, does the same thing as clicking the list row in an uncustomized view, which is opening the property form for the item. This button is displayed conditionally, when the value of the $Assigned_x0020_To field (assumed to be a person/group field) matches the current signed-in user.
A status column is evaluated to provide colors corresponding to status. This format uses the values Red, Yellow, Green, and Amber but you could easily extend this to fit your own color-coded system by adding or removing nested conditions.
A number column is evaluated against tiers of values to provide colors corresponding to score ranges.
Range
Color
value >= 16
Red
16 > value >= 12
OrangeLighter
12 > value >= 8
Yellow
value < 8
Green
You can easily adjust the values/colors to provide your own ranges. You can also add or remove nested conditions to increase or decrease the number of ranges needed.
This sample uses tileProps element to format the tile layout for document libraries.
This format takes advantage of the tileProps property to format tiles in doclib to have metadata. To see the tiles, switch your layout to the Tiles layout after you’ve added the JSON.
SharePoint lists are excellent places to store information. This example demonstrates how to use a custom SharePoint list to implement a marketing resources catalog. This sample defines a custom view to bring focus to the status of items in the resource catalog. It also provides a better visual experience by displaying all the data in an easy to read format by using icons, colors, and profile pictures.
SharePoint lists are excellent places to store information. This example demonstrates how to use a custom SharePoint list to manage retail stores. This sample defines a custom view to bring focus to the status of store locations. It also provides a better visual experience by displaying all the data in an easy to read format by using icons, colors, and Bing maps.
Provides an example of customizing your format based on the item’s content type. When an item’s ContentType is Apple and the apple type is “Green” then green is used in the format. If it’s Apple with a different type, red is used. Otherwise, orange is used.
The rowFormatter property is used to fully customize the display of rows to create a simple view of list items while easily allowing users to click on the item for additional details. The colors used for each item are applied using the Office UI Fabric color classes for themes. These classes are then applied conditionally based on an item’s content type.
Both ContentType and ContentTypeId are always available (even when not explicitly part of your view) and can be referenced. However, ContentTypeId is the List ContentType’s Id and will be specific to the list and will require updating this value to apply the format to other sites/lists.
ContentType is available as long as it is NOT part of the view. This is a known limitation in List Formatting.
Highlights the entire row for any list items assigned to the current user (the user viewing the list view, not the author of the format). You can easily adjust this to use a different column like Author or Editor by changing the [$AssignedTo] portion of the expression.
By using the Office UI Fabric color classes for themes, we can ensure our format looks good in all themes including both light and dark as well as custom themes.
Highlights the entire row for any list items where one of the assigned to users is the current user (the user viewing the list view, not the author of the format). You can easily adjust this to use a different person column by changing the [$AssignedTo] portion of the expression.
By using the Office UI Fabric color classes for themes, we can ensure our format looks good in all themes including both light and dark as well as custom themes.
Formats Task List Items in a Planner Inspired Card View. Uses OfficeUIFabric Icons to designate “In Progress”, “Completed” and “Delayed” Statuses. Automatically strikes out text for “Completed” items.
The budget tracker sample demonstrates how to use view formatting to format lists and display views of the lists inside connected web parts. This provides the ability to view the budget items associated with individual projects on a single page.
The product catalog sample demonstrates how to use view formatting to format lists and display views of the lists inside web parts. It also demonstrates how to create links to download documents from SharePoint Document libraries.
Demonstrates applying a class to rows where a value equals the current year. Can easily be updated to compare other portions of the date such as the month, hour, minute etc. by using the other date-part operators.
Sometimes it is necessary to remove the standard headers. In those cases, you may still want to show a custom header. This sample demonstrates creating a custom header and only showing it on the first row. The key to this technique is setting the display style attribute to none (hidden) whenever the @rowIndex is not 0 (first row).
Creating a custom header removes the standard features such as menus, sorting, moving, resizing, etc. In addition, the sticky header feature is now gone. So an additional sample, custom-header-repeating-format.json is provided that demonstrates drawing the custom header every 30 rows.
If you upload video files to a SharePoint document library, there currently isn’t a way for an end user to easily get the iFrame embed code for the video file other than using the Microsoft Graph Preview item API. This document library view formatting example composes the iFrame embed code automatically for any video files in the library so users could easily copy and paste it.
This is a template for testimonials (Business Statements), it has nice features such as directional messages, styles, utilizes the current theme colours, image persona hover card, overflow logic and even has some SVG Magic! 🙌
Format a list view into a chart that shows a comparison between two entities against various attributes. This sample can be used for all sorts of things but is demonstrated below using sports teams as the entities and stats for the teams as individual rows.
Template for Project health statuses; features such as Risk scoring, Severity of the project, Schedule timing, Hover effects that provide the latest project updates, Theme Colors, Project Team members, and the cost of the project.
Rendering multiple links with a list view format cannot be achieved by using a rich text column. This sample solves that problem (rendering multiple links) using a multi choice column.
This sample is derived from the birthdays sample. This sample shows how to format a list to show sessions associated with a speaker. It features the following:
Responsive layout through flexbox.
Shows links to multiple sessions associated with a speaker (The sessions are stored as choices in a multi choice column).
Use of theme color classes to ensure the format displays as intended regardless of theme (light, dark, custom, etc.)
This sample provides multiple formats illustrating different ways multi-person field display and inline editing can occur. The field is rendered multiple times to show different options.
This sample demonstrates how to change the background color of a row depending on the number of likes. In this case, the background color of the row changes when the number of likes is 2 or more.
This sample illustrates some advanced techniques for applying theme colors to SVG elements, box-shadows, and borders. It also demonstrates using custom hover cards on complex elements (elements with children). Details for each technique can be found below.
This sample demonstrates a honeycomb structure of links. The hexagons are displayed using SVG, so that five hexagons are displayed per line. This sample uses the Icons from the Fluent UI. The name of the icon is referenced through an Icon field.
This is a sample of customizing the group header when grouping by user column. Display the user’s picture as well as the user’s name in the group header.
This is a sample of customizing the group header when grouping by a Status column. This format displays a different color and icon according to the Status.
Also changes labeling according to being only one item or more:
1 item is ‘Status’
X items are ‘Status’
This format only affects the group header, the Assign column in the screenshot above is using out of the box display.
If you upload video files to a SharePoint document library, there currently isn’t a way for an end user to easily get the iFrame embed code for the video file other than using the Microsoft Graph Preview item API. This document library view formatting example composes the iFrame embed code automatically for any video files in the library so users could easily copy and paste it.
Provides an example of comparing numeric values across time periods. In this example, we are using grades for students across 4 quarters, though the principle can be applied to any repetitive numeric values.
The View Formatting definition calculates the average of the current and prior quarters numeric grades. The current quarter numeric grade and the average of the previous quarters is displayed. (Example: Quarter 3 calculates the average of quarter 1, 2 & 3)
In addition to the numeric average calculation displayed within each quarter, this example also illustrates how the average value in each quarter can be used to assign additional labels, such as the Student Grade. (Example: A,B,C,D,F)
This sample demonstrates applying view formatting to an Events list to imitate the modern events webpart. The format is implemented using the Tiles view and there is a format included that only includes this portion to make customization easier (events-tiles-only). The primary sample demonstrates using a single format to provide both a list and tile view as well as demonstrating implementing a custom hover card with default person hover cards as well.
This sample demonstrates a link collection using Emoji and is a customization of the Gallery layout. Additionally, this sample combines group customization with a tile format.
This sample demonstrates how to change the background color of a row based on Average Rating. In this case, the background color of the row is changed when the Average Rating is 4 or higher.
This sample transforms your list into a discussion board with title, desription, tags, and votes are available. Additionally, users can react, comment, and perform inline edits!
This sample allow users to manage card order in Board Views and also enables expanding and collapsing images. This sample has the option “Move to Top” that allows users to move cards to the top of the board view as a way to rearrange card positions.
This sample shows text from the most recent items by showing them in decresing sizes as they get older. This is very helpful for a quick summary view of a list and is great for adding directly to a page.
This sample demonstrates utilizing layering to draw all rows on top of each other and then the z-index is set to a randomized value to determine which row to draw on the very top.
The trick is that the z-index is set using the @now parameter with a modulo operator against the total number of items (7). This number should be updated to match the number of items in the list you are trying to display. However, it can also be dynamic by setting this to a relatively high number.
This sample includes a Metro tiles style menu with additional features such us configuration of tiles using size and color, option to favorite a tile using setValue, and also includes customCardProps to show a custom hover card with the description of a tile.
This sample has been inspired by menu-link-tiles by André Lage. It includes a Button style menu similar to Quick Links Button style with additional features such as using width , height, color and fontColor, and also includes customCardProps to show a custom hover card with the description of a tile.
This sample demonstrates formatting items differently based on the current day of the week. As there is no default “WEEKDAY” function in list formatting, we use the date stamp and some math to calculate the day of the week manually.
This sample demonstrates creating a layered dynamic SVG image in a view format. States are highlighted when they have list items that correspond to them. They get darker the more times a state is mentioned.
Theming
This format utilizes theme colors and will adjust correctly as themes change (even dark themes!):
This sample demonstrates the use of dynamic connections in the list webpart while using a custom format. The format is applied to a list of YouTube videos with each item containing the shortcode for the video. On a page, the list webpart with the custom view is used. The embed webpart is configured to accept it as a connection. This results in a custom video selection application that changes the embeded video on the page.
This is a silly sample that shows tombstones for items. It demonstrates custom date formatting, custom tiles (gallery) layout, and safe local image referencing.
A flashcards view of a SharePoint list. Flashcard is a card bearing information on both sides, which is intended to be used as an aid in memorization. Each flashcard bears a question on one side and an answer on the other. Flashcards are often used to memorize vocabulary, historical dates, formulas or any subject matter that can be learned via a question-and-answer format..
This sample uses standard group rendering to provide a list of expandable questions. By default, when grouping by a column the column name and the count of grouped items will be included in the group name. This format provides some small tweaks to the group header to only show the value (question in this case). By also hiding the column header and item selection, this format acts like a mini application and could easily be added to a page using the list web part.
This sample provides Event registration with different capabilities such us Start and End dates, Category, Attendees, All Day option, Location, Team URL, and favoriting.
This sample demonstrates reacting with an emoji. Who reacted and the total counts per reaction are stored with the list item.
Two versions are provided. The first, emoji-reactions.json, displays the reactions of the current user and allows them to react. The section, emoji-reactions-count.json, displays reactions from all users and the count of each reaction type.
emoji-reactions-count.json
Below provides how the counting board is organized by users.
Demonstrates applying a class to rows where a value equals the current year. Can easily be updated to compare other portions of the date such as the month, hour, minute etc. by using the other date-part operators.
This tutorial will help you create a basic internal CV through JSON view formatting. Thanks to JSON formatting, it’s possible to create a large custom card to be used as a form itself, by taking advantage of the inline editing feature. Let others know more about you, what you’re good at, and what you’re working on right now. Add projects, skills, and education history to your profile to help others find you when they’re looking for people with a certain expertise.
This sample demonstrates the use of the id attribute to create linkable anchors. The list is intended to have 2 views (Content and Links) using the 2 view formats supplied. Each view can be added to a page as a separate list webpart. No connections are required. Clicking on an item in the links view webpart will navigate to the item in the content view webpart. Additionally, previous and next buttons are included in the content view for internal navigation.
The Automate button in the CommandBar provides access to Rules as well as associated Power Automate flows for our list/library. However, there are times when we don’t want the associated flows to be shown because we are providing flow launch buttons. Maybe we’re conditionally picking which flow should run based on properties of an individual item or were customizing the flow run panel and the inclusion of these menu options would undermine that.
This sample only hides the Automate button when an item or items are selected. This ensures the Rules option remains available but prevents users from launching flows for a selected item using this menu.
Below you can see the flows being offered in the Automate menu when an item is selected. With the format applied that Automate menu no longer shows up on item selection:
This sample pre defined palettes of colors by Microsoft documentation color enumeration in Power Apps that can be used in solutions as color picker. It’s also include 2 additional colors palettes such us “12 sections” and “Basic” that can be used as color picker.
The Automate button in the CommandBar provides access to Rules as well as associated Power Automate flows for our list/library. However, there are times when we don’t want the associated flows to be shown because we are providing flow launch buttons. Maybe we’re conditionally picking which flow should run based on properties of an individual item or were customizing the flow run panel and the inclusion of these menu options would undermine that.
This sample only hides the Automate button when an item or items are selected. This ensures the Rules option remains available but prevents users from launching flows for a selected item using this menu.
Below you can see the flows being offered in the Automate menu when an item is selected. With the format applied that Automate menu no longer shows up on item selection:
This sample display formatted card in board that allow tag definition, date of card and menu option to define card position in category, share link and include Flag for focus color on card, associate assigned user, minimize/expand Card and order by top.
This sample displays a formatted card in a board view that enables tagging, updating card dates, menu options to reorder cards within their category, sharing links, flaging (focus colors), assigning a user, and minimizing/expanding the card.
This sample displays a bar with multiple options. When an option on the bar is clicked, the Value column is updated to the corresponding value (0-4) using setValue.
The value is shown in an icon on the left and the progress bar color is based on the value.
Progress color and option appear in Bar and icon appears in left.
This sample formats your view to look like a Announcements card with a similiar style to Viva Connection Cards when on a SharePoint Page. In Microsoft Lists it will also show an image that you can connect with the Announcement.
This sample demonstrates an advent calendar where you can click on the present box of the day to see the presents. The present box cannot be opened if the value in the Date column is later than today.
This sample demonstrates an advent calendar where you can click on the present box of the day to see the presents. The present box cannot be opened if the value in the Date column is later than today.
This sample creates a whiteboard-styled sticky notes that displays information. The sticky notes have two sides, so when clicked they show another piece of information.
This sample combines a couple of lists and a few formats to demonstrate creating an application using view formatting. The end result is a configurable poll that end users can submit their choices too and view grouped results.
An optional Power Automate flow is also presented below to ensure that as Team Members are added to the Office 365 Group a response list item is configured automatically for them.
![screenshot of the sample](./assets/screenshot.png
This sample demonstrates creating a Rota Shifts table using CSS Table layout by using rowFormatter to customise the entire display of a row. The aim is to demonstrate the following concepts:
This sample demonstrates displaying links to the search page. When you open the search page, it displays the search results where the query registered in the Query column of the item has been executed. Also, there are two types of links, each with a different search scope. One is for the entire tenant, and the other is for within the site.
Displays images in a grid layout with customisable height and width. The sample was inspired by the chevron-shape-format by André Lage. On click of each post, the link specified by the URL is opened. On hover on each image the description of the image is shown. Optionally an icon is displayed on the top right of the image.
Often in certain schools, a system of corporate marking exists where multiple teachers teaching a particular cohort (e.g. Mathematics Extension 1) will mark a section of each student’s paper to ensure consistency.
When this occurs, often bundles of papers are divided by class, and each teacher takes a bundle out of a cupboard, but it can be hard to track:
Who has possession of a particular bundle
Whether I have marked a particular bundle or not (without having to hunt down and check through every bundle!)
This sample transforms your list into an Exam Bundle Tracker which answers the two questions above.
Thanks to JSON formatting, this templates package will allow you to quickly create 6 different types of charts, which you can organize into collections, share, and publish on SharePoint pages. Microsoft 365 offers many options and ways to share and publish information in the form of charts. In particular, people involved in internal communications have now an extra tool available: Microsoft Lists charts.
This tutorial will show you how to install SharePoint 2019. It is for SharePoint administrators. Disclaimer : It is not following best practices to design a farm, it is just to test the preview version ! (Example : the mysite host should be in a separated web application)
It assumes :
you have the windows virtual machine ready with 16GB ram and 4CPU
you have installed SQLServer separately with a dedicated SQL Instance
What you will see :
The configuration that is needed to be done to get the SharePointHomepage, communicationsites, teamsites and onedrive. I found this missing from the Microsoft documentation.
It will not show you how to configure hybrid scenario such as search, power apps or flow.
It shall take you 2hours to set this up with this tutorial.
Prequisite – Download the Installation binaries (iso)
Configuration done for Windows Server 2016 : SharePoint 2019 Pre requisites
Run the prerequisite.exe from the .iso
To install the pre-requisite ensure you have internet Access or you’ll have to download manually each pre requisites files (IIS modules, sql modules, .NET framework etc)
Reboot and restart the pre requisite.exe
Run install.exe
Database server : \
Username : domain\
Run as admin the app from start menu
I faced this error during the wizard
Microsoft.SharePoint.SPException: The value provided for instanceId is not a valid GUID.
at Microsoft.SharePoint.Administration.SPAdminConfigUtil.GetConfigData(Page page)
at Microsoft.SharePoint.ApplicationPages.AdminConfigServices.BtnOk_Click(Object sender, EventArgs args)
at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Decided to create the services one by one Go to service application
Create managed metadata
Create App Management Service Application
Create secure store service
Create search service, note there is a way to connect to O365 Search
Create User Profile Service, note there is a way to integrate with yammer directly
Create my site host, to have SharePoint home page and one drive
Create it on the :80 web application as root
Navigating to the http://xxxx url will show the mysite, if you allow self site creation, it enables one drive and redirect them to one drive.
Click on the APP LAUNCHER and click sharepoint to view sharepoint landing page.
The search must run a full crawl to show the web site on this page.
Allow end user to create sites (team site / comm site) from SharePoint landing page & use ONE DRIVE
Central Admin > select the web application > Self site service creation.
You can choose under which site collection path or web apps those site shall be created
Your user will then see Create Site Under the SharePoint landing page
Navigating to one drive still shows this page
Enable One drive site creation (mysites)
Central admin > click the web application 80 > Permission policy > create a new one with Create subsites permission
Central admin > click the web application 80 > Userpolicy > Add everyone Create subsites permissions
Central admin > Web application > Click the web application 80 > Create the explicit managed path “personal”
With a user, go to your profile, edit your profile
Then go to one drive, it shall display the documents
Open your one drive and synch
Click synch to have one drive synch to your computer. It will trigger an error, because you need to install those keys to registry. Create a .reg file on your desktop, add these values and run it :
In this way, you can test the security of your office 365 tenant and evaluate how your users will respond to a fake office 365 log-in page (phishing attack) or ensure your users have set a complex password (brute force attack) different than “password” or their birthdate.
Security is an important topic of an office 365 tenant, users shall be aware of those : don’t hesitate to communicate around those threats within your organization often.
Many companies around me got their users giving their password or IBAN Bank account to third party pretending they are from the company (example they use an email such as gogle.com instead of google.com).
1/2 Conduct a phishing attack on your office 365 users
This attack method aim is to check how many users will be tricked by a login page looking like Office 365 sign-in page or by any other login page you would like to “phish”. To achieve so : Create a phishing attack campaign from the Threat Management / Attack simulator menu in your office 365 admin menu.
You will be invited to select the users you want to target for this campaign.
Up to 500 users.
Once you have given a name you can select a phishing attack template :
Once the setup is completed, the user will get such email in his mailbox :
And a page that really looks like Office 365 sign-in page. If they key in their login, it will lead to a 404 page and the administrator review which users got POWNED !
Review user that got powned :
2/2 Test a brute force attack
When you configure a brute force campaign, you are invited to select the users as well as the phishing attack. Then you will enter the password that the test will enter for you.
Code review (if you have a developer that creates custom codes for your tenant).
Make sure you think about security in your roadmap… It is as important as planning features.
Tests shall be conducted often to prevent your security to be comprised. What are the security best practices ? Many more in this article from goptg.com (Data Loss Prevention etc).
Securing your apps is as a travel insurance, only boring and useless until you need it….
So assess the risks, define actions against those password being stolen, phishing attacks etc.
Announced during Microsoft Ignite 2017, Hub Site is a special type of site in SharePoint Online promoting other site’s news, content and activities.
Once part of the hub site collection, every site gets a commonnavigation. Then it is up to the administrator to add other site’s content on the hub site home page.
This facilitates navigation, content broadcasting, breaking silos, reorganize content in your digital workplace.
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok