Hi,
Before deployment of Chrono, below is the required configuration in the site
1/ Check if Chrono config list exists, if not, create it with columns ChronoFieldColumnName and ChronoIncrementValue
2/ Check if target list exists, if not, report error and stop execution
3/ Add the chrono field in target list
4/ populate Chrono config list with details from the target list i.e. add Target list GUID under Title Column, text ‘Chrono’ under ChronoFieldColumnName
5/ Update New form if list, edit form if document library
6/ if doc lib, set sets settings to enforce display of edit form after doc creation
if list make the field mandatory
7/ Add the content editor web part to the list->newform.aspx,editform. aspx, document library->editform.aspx
8/Assign the txt link to the content editor link
// SetChronoField.bat
@ECHO OFF
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\DeploymentScript\ SetChronoFieldScript.ps1'"
PAUSE
// SetChronoFieldInputs.xml
<?xml version="1.0" encoding="utf-8"?>
<Inputs>
<ConnectSPConfigOnline SiteURL="siteurl" UserName=”username" Password="password"></ ConnectSPConfigOnline>
<ConnectSPOnline SiteURL=" siteurl " UserName=" username " Password="password "></ConnectSPOnline>
<ConfigList Title="MC2ChronoConfigList" URL="MC2ChronoConfigList" Template="GenericList" ChronoFieldColumnName=" ChronoFieldColumnName"/>
<ConfigListFields>
<ConfigListField Title="ChronoFieldColumnName" InternalName=" ChronoFieldColumnName" Group="ListGroup" Type="Text"/>
<ConfigListField Title="ChronoIncrementValue" InternalName=" ChronoIncrementValue" Group="ListGroup" Type="Number"/>
</ConfigListFields>
<Lists>
<List Title="QoD RC Align Feedback CIO" URL="Lists/QoD%20RC%20Align% 20Feedback%20CIO" Template="GenericList" ContentType="Item" ListFieldTitle="Chrono" ListFieldInternalName="Chrono" ListFieldGroup="ListGroup" ListFieldType="Number"/>
<List Title="QoD RC Align Feedback CIO" URL="Lists/QoD%20RC%20Align% 20Feedback%20CIO" Template="DocumentLibrary" ContentType="Item" ListFieldTitle="Chrono" ListFieldInternalName="Chrono" ListFieldGroup="ListGroup" ListFieldType="Number"/>
</Lists>
<AddWebParts>
<AddWebPart Title="ChronoFieldWebPart" RelativePageUrl="/sites/ programmequalitedelivery/ client/Lists/QoD%20RC%20Align% 20Feedback%20CIO/NewForm.aspx" WebPartPath="C:\JB\ DeploymentScript\ ChronoDeploymentScript\ ChronoFieldWebPart.webpart" ContentLink="/sites/ programmequalitedelivery/ Style%20Library/js/ PreSaveAction.txt"/>
<AddWebPart Title="ChronoFieldWebPart" RelativePageUrl="/sites/ programmequalitedelivery/ client/Lists/QoD%20RC%20Align% 20Feedback%20CIO/EditForm. aspx" WebPartPath="C:\JB\ DeploymentScript\ ChronoDeploymentScript\ ChronoFieldWebPart.webpart" ContentLink="/sites/ programmequalitedelivery/ Style%20Library/js/ PreSaveAction.txt"/>
</AddWebParts>
</Inputs>
// SetChronoFieldScript.ps1
############################## ############################## ## Logging ############################## ###########
$date= Get-Date -format MMddyyyyHHmmss
start-transcript -path .\Log_$date.doc
############################## ##################### Get input parameters from XML ############################## #
$outItems = New-Object System.Collections.Generic. List[System.Object]
# Get content from XML file
[xml]$xmlData=Get-Content ".\SetChronoFieldInputs.xml"
# ConnectSPOnline node
[System.Xml.XmlElement]$ connectSPOnline = $xmlData.Inputs. ConnectSPOnline
$siteURL=$connectSPOnline. SiteURL
$userName=$connectSPOnline. UserName
$password=$connectSPOnline. Password
# ConnectSPConfigOnline node
[System.Xml.XmlElement]$ connectSPConfigOnline = $xmlData.Inputs. ConnectSPConfigOnline
$siteConfigURL=$ connectSPConfigOnline.SiteURL
$userNameConfig=$ connectSPConfigOnline. UserName
$passwordConfig=$ connectSPConfigOnline. Password
#Get Config list details
[System.Xml.XmlElement]$ configList = $xmlData.Inputs.ConfigList
$configListTitle=$ConfigList. Title
$configListUrl=$ConfigList.URL
$configListTemplate=$ ConfigList.Template
$ configListChronoFieldColumnNam e=$ConfigList. ChronoFieldColumnName
# Target Lists node
[System.Xml.XmlElement]$lists = $xmlData.Inputs.Lists
# Target List Fields node
[System.Xml.XmlElement]$ listfields = $xmlData.Inputs.ListFields
# Target Config List Fields node
[System.Xml.XmlElement]$ Configlistfields = $xmlData.Inputs. ConfigListFields
# Web Parts node
[System.Xml.XmlElement]$ webparts = $xmlData.Inputs.AddWebParts
############################## ############################ Get Credentials ############################## ########
function GetCredentials()
{
try
{
write-host -ForegroundColor Green "Get Credentials and connect to SP Online site: " $siteURL
# Convert password to secure string
$secureStringPwd = ConvertTo-SecureString -AsPlainText $Password -Force
# Get the credentials
$credentials = New-Object -TypeName System.Management.Automation. PSCredential -ArgumentList $userName,$secureStringPwd
# Connect to SP online site
Connect-PnPOnline –Url $siteURL –Credentials $credentials
}
catch{
write-host $_.Exception.Message;
}
}
function GetConfigCredentials()
{
try
{
write-host -ForegroundColor Green "Get Credentials and connect to SP Online site for COnfig: " $siteConfigURL
# Convert password to secure string
$secureConfigStringPwd = ConvertTo-SecureString -AsPlainText $passwordConfig -Force
# Get the credentials
$credentialsConfig = New-Object -TypeName System.Management.Automation. PSCredential -ArgumentList $userNameConfig,$ secureConfigStringPwd
# Connect to SP online site
Connect-PnPOnline –Url $siteConfigURL –Credentials $credentialsConfig
}
catch{
write-host $_.Exception.Message;
}
}
############################## ######################### Create Configuration List########################## ###
function CreateConfigList()
{
try
{
# Check if list exists
if($getConfigList)
{
write-host -ForegroundColor Magenta $listURL " - Config List already exists"
else
{
# Create new list
}
}
catch
{
write-host $_.Exception.Message;
}
}
############################## ############################## #####Create Configuration List Fields######################## #############
function CreateConfigListFields()
{
try
{
}
catch
{
write-host $_.Exception.Message;
}
}
function HideConfiglist()
{
try
{
}
catch
{
write-host $_.Exception.Message;
}
}
############################## ############################## ############################## #######################
############################## ############################## #####Create Target List########################## ###########
function CreateTargetLists()
{
try
{
}
catch
{
write-host $_.Exception.Message;
}
}
function AddListGUIDsToConfigLIst()
{
try
{
}
catch
{
write-host $_.Exception.Message;
}
}
############################## ############################## ############################## #######################
############################## ############################## #####Add the Web Parts ############################## #######
function AddWebPart()
{
try
{
No comments:
Post a Comment