Microsoft Flow: Send customized email when new item added to SharePoint list - Part1


In this article, you will learn how to send customized email, when new item added to SharePoint list.

Step1:- Navigate to O365 SharePoint Site e.g.


Step2:- Navigate to Site Content and create a custom list named “Experience-Flow”.

By default, New Experience is enabled and Flow is enabled for Modern List. If new experience enables, you can switch the using this article:-


Modern List with Flow & Power App Options:-




Step3:- Click a create flow as highlighted above

Right-hand side option will appear. Select and click “Send a customized email when a new 
SharePoint list item added”.



Step 4:- You will be redirected to template page, where you can send the customized email to O365 account.



Step 5:- Verify the O365 account or you can switch to other accounts also and click continue.



Step6:- This template has pre-defined three section
  1. Select the Site & List and associate the flow.
  2. Select the user profile.
  3. Select the email template using pre-defined fields



Step7:- Click edit and select the SharePoint site and list name.



Step8:- Click edit a send an email and modify the template as per requirement.



Email Template can be customized using advanced option:-



Step9:- Give the name and create flow



Step 10:- Create Item in the SharePoint List



Step 11:- Navigate to see your flow










Step 12:- Navigate to Outlook and you will get a mail on new item creation.




How to Switch List experience view in SharePoint Online

Introduction

In this article, you will learn, how to change the list or library experience in SharePoint Online.


  1. New experience
  2. Classic experience



New Experience set as default experience in SharePoint online, Site owner can easily switch with Classic experience.

How to Change the List Experience

  1. Navigate to SharePoint Online site
  2. Navigate to SharePoint Site List or Library for which you want to change the experience or view.

New Experience (Click List Settings)




In General Settings -> Select Advance Settings



In the List experience section, select the experience you want to use for the list



Classic Experience



Summary: Thus, in this article, you have seen how to change the list or library experience in SharePoint Online.

SharePoint Online Manual Migration

I worked with a couple of SharePoint Migration Project i.e.  On-Premises to On-Premises & On-Premises to Online using 

           Manual Approach ( Content DB Attach)
           ShareGate Tool 
           ShareGate Tool based PowerShell scripts.
           Manual Approach

In this article, I am going to articulate approach and scenario, where we used SharePoint Online Manual Migration approach.

Scenario: -
Migrate small size of content i.e. List & Library ~ 4-5 GB to SharePoint Online.

Why I chose manual approach?
Tool is really required if we have >25GB of content and another factor like:-
  • changes in Application Architecture (Restructure the Content DB).
  • Changes in Information Architecture or Schema.
  • Version History needs to maintain.
  • Metadata need to maintain i.e. Created By, Created, Modified and Modified
  • Easy to get Pre & Post Migration reports & Verification.
  • Incremental is just configuration away etc.
  • Content Size is huge, Easy to schedule a day-night jobs.


Note: - Migration Tool use Content Migration API, which need cloud storage account. It also come up with extra cost along with Tool.

IF all above factors are not so important, we can easily use manual migration instead of tools.



How Manual Migration Done

Save Site as Template is not really possible using below factors:-
·         Publishing Site Template.
·         Publishing Feature activated in the site.
·         Sometime Managed Metadata Column and weightage of list column

2.       Save List as Template

This is one of easiest way to backup and restore the content. Even it support lookup column, 
If List backup and restoration configured in proper order i.e. First Parent then Child list.

Browse the List -> List Settings -> Save as Template. It will create and store the .STP file in the catalog library.



Another approach to create the STP file is PowerShell.

Both way, we can create the .STP file using Content or without Content.

Copy Data via Access:-

In some case, you have to use Access to move the content to Cloud. 
Select Open with Access






Specify the Path with filename or List Name, which create the access database (.accdb)
Two option available:-
  • Link to Data on the SharePoint Site
  • Export a copy of data


Once you download access database, Open the Database and select the list and Select SharePoint under Move Data Ribbon group. It prompts for destination list.



Once you complete above activity, you content will reside in the SharePoint Online List. It successfully support lookup column also.

Limitation: - If you have lots of view, It doesn’t maintain the sequence of column. Need to do again manually or using PowerShell script.

Copy Data via Excel:-

Use Export to excel, It export all list data into excel.







Below is the example of exports data.


Navigate to SharePoint Online List and click Quick Edit – It allow to copy paste the data from excel to list.


After copy the content, Its look like, At the one time, you can copy paste 500+ items also.


Click on Done and Job Finished.

Library Files:-

File Explorer View or Drag & Drop.  But it doesn’t allow more than 100 files at the same time.
Access allows you to copy list over to the cloud. But you can't use it for Libraries.
To copy files, use "Open with Explorer"




You still can copy these files by dragging and dropping directly in the document library:



When Manual Approach doesn’t suit (i.e. .STP file)

It doesn’t support two level below i.e. Moss2007 or SP2010 to O365. It is possible from SP2013 to O365.

How to set read-only

Once you transferred the data from source to destination, you must make sure that source data will not change. Manual Migration is tedious job and do the incremental is more tedious.
This can be achieved using Break permission inheritance and change to Read. Prioritize the list & library which are not updated frequently also help to avoid incremental for all.
Note:- Version History, All minor version should be published as major or discard.

Summary

If you have customization, you need to think, Can we convert to JS-Framework using REST or Search API, List form level customization using JS-Link.
If left behind customization, up to 4-5 GB content migration, we achieved in 8-12 hours jobs to avoid the incremental approach. To analyze and prepare the scripts and order of list took 2 weeks of time.




Know Your SharePoint Multi Server FARM Network Structure

This article describes the SharePoint Multi Server communication within the SharePoint farm.
Physical architecture relates to capacity planning and sizing depends on the multiple factors. I took a very simple example and try to explain, Is SharePoint Farm follow the Network Layer Architecture or Not.

Physical Network Layer Architecture (Normal Flow)




How to know the actual Server Communication within the SharePoint Farm

Browse the Central Administration
Central Administration -> System Settings -> Manage Server in FARM



Microsoft SharePoint Foundation Web Application Service is responsible to communicate with Database Server.
IF Microsoft SharePoint Foundation Web Application Service activated on Web Server, Then Web Server by-pass the network layer architecture and directly communicate with Database Server.
As depict above farm information, Now SharePoint FARM Network layer architecture look like


How WSP deploy to Multi Server FARM


Microsoft SharePoint Foundation Web Application Service is responsible to move the WSP solution to another server, wherever Microsoft SharePoint Foundation Web Application Service activated. Service automatically deploy the solution in other servers.




Handle Multiple Domain during SharePoint Migration

This blog describes the problem statement and resolution i.e. How to handle multi-domain issue during SharePoint Migration.
This is quite interesting & common scenario, which we face in almost all migration project i.e. On-Premises to On-Premises or On- Premises to Online.
SharePoint Migration project easily enters into escalation mode due to multi domain users after entire application migration.
Somehow application team tries to convince the business user to adapt or change the User Name with a NEW domain. This is something no business user ready to accept.
Scenario illustrated in below diagram:-


Problem Statement:-
Before Migration, Project was using Domain OLD.com and application URL like https://sharepoint.old.com where the user also have their login id like <<Domian>>\<<USerName>> old\user etc.
Business wants to migrate the application to different domain i.e. On Premises or Online.
New Domain like NEW.com and application URL like https://sharepoint.new.com
Users, who are part of the NEW domain can easily recognize by control and start using the application but some users are still part of the old domain.
As our new migrated application hosted into new domain so old domain user doesn’t recognize into new domain application.
 Below are the ways to resolve the issue:-
Option 1:-
If both domains have  TWO WAY TRUST. No configuration required. the user can be added as <<OLDDomain>>\<UserID>; instead of only user name.
 Option 2:-
If both domains have ONE WAY TRUST. Only people picker control configuration need to do using PowerShell. It will help control and application to recognize the user.
Option 3:-
 If both domains don't have TRUST process. User Profile Synchronization needs to perform. It will help control and application to recognize the user.


Ref :- https://collab365.community/sharepoint-2013-people-picker-problem-with-2-way-trusted-domains/

Estimate The Time Frame To Migrate Content To SharePoint Online

This article focuses on the actual content migration effort which is separate from planning, redesign, fixes, deployment, and configuration.

It's a very common question during the analysis phase of a SharePoint migration project. - How much time a "Tool or Migration API" will take to migrate the actual content from the source to the destination?

I found a couple proposals where people simply say 5GB per hour but it's not really practical.

It depends on multiple factors. I am not going to dive deep into how the below factors impact this. Just take the estimation based on content.
  • Network bandwidth
  • Type of content & file format i.e. List Item, Document, and Video etc.
  • Check In / out files & Versions
  • User base, Custom Permission & Groups
  • Workflow (OOTB, Design. Custom, Nintex)
  • Customization
  • Asp.Net Forms, InfoPath Forms
  • Threshold limit (Items, Lookup, Unique permission)
High-level content migration estimation view 


 List Item size is very low and associates with the large metadata, Workflows, Events etc.
  • Library item size quite big (files size like MBs) associated with versioning, large metadata, workflow, events etc.
  • File Share – No metadata, No Versioning
  • Video – Big size files.

How Migration API (Most of the tools use) works





How does version impact the estimation (which we usually miss)  






Conceptual View To Enrich SharePoint Enterprise Search

Search is one of the key features of the SharePoint Platform. It really helps business to grow and make their regular operations cost effective.
It really is vital to show the right content to the right people. I believe it’s big from asking customers and really feasible using the below pillars at least 70 percent of the time.

 
Information Architecture
  1. The organization has a rich profile of employees as compared to Google. It’s quite possible to get rich user profile properties with this data.
  2. Application defined schema and structure for storing & categorization of content.
  3. Integration with a different source like LOB, SAP, One drive Google drive, drop box etc.

     
Contextual Search
  1. Organizations have rich user profile attributes which can be derived from multiple sources 
  2. The content has logical categories within Site Collection, Subsites, List & Libraries
  3. Segment filters the content based on user region, locale etc.

     
Usability
  1. User experience is very crucial to catch the audience and meaningful UI.
  2. Re-configure the template as per department & area.
  3. Display trending results on the top (first page) i.e. most viewed, liked, comments & shared etc.

     
Metadata
  1. Rich and appropriate tags help to find the content. It’s really possible with automation jobs to find the matching content from taxonomy & defined weight-age of text.
  2. Metadata is required around schema like Sites, Folder, List & Library i.e. Static or Dynamic. It really helps to drill down the results.
  3. It really helps to build query suggestions. 

     

Mixed Data Type in Excel

Myth around MS-Excel as Data source using .Net (C#)
Recently, I observed in the couple of projects, people use MS-Excel as data source using
1.       Interop – (Without knowing the pre-requisites in production environment i.e. MS-Office not allowed in production environment)
2.       Third party tool (free & open source) – Use unsupported.Net Framework.
This article emphasis, known issue to use MS-Excel as data source using .Net (C#).
Problem Statement
Excel column decide the datatype based on a certain number of rows i.e. 8. If we are using excel with mixed datatype i.e. alphanumeric value where First 8 as the number and 9 as a string -> which return null as below source.

Excel Behavior
This is the default behavior of excel. It decides the column datatype based on first 8 rows.
Alternative Approach
1.       Read data using  Excel –cell range
2.       Third party open source tool having supported framework i.e. 4.6 onwards.
Best Approach (Recommended)
1.       Always use CSV file instead of Excel. Easy to traverse using file stream object.
2.       Registry Changes - If business allowed.
Excel file  as .xls
(Registry Key)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows
Excel file is .xlsx
Registry Key Excel 2007:

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel\TypeGuessRows

Excel file is .xlsx
Registry Key Excel 2010:

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel\TypeGuessRows
Excel file is .xlsx
Registry Key Excel 2013:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel\TypeGuessRows


Note: - Value should be 0 instead of 8.




IIS Binding and Registry Entry in IAAS Server


Configure DNS setting  Configure Internet facing SSL SharePoint Site using IAAS


IIS Binding and Registry Entry in IAAS Server

Step1:- Open IIS right click on the web application and “Edit Binding”











































Step 2:- On the “Site Binding” screen, click on Edit

























Step 3:- Select the certificate created in previous step and save the changes:


























Step 4:- Registry Entry in the Server

Create & Set DisableLoopBackCheck property =1