SharePoint Online: PowerShell kullanarak Hesaplanan Sütunu Listeye Ekleme
Gereksinim: Hesaplanan Sütunu SharePoint Çevrimiçi Listesine ekleyin.
Hesaplanan Sütun SharePoint Çevrimiçi Listesine Nasıl Eklenir?
SharePoint Online'da hesaplanan sütunlar, liste öğesindeki diğer sütunları değiştirmek için kullanılır. Bu alan değerleri, kullanıcı tarafından girilmek yerine formüle göre otomatik olarak hesaplanır. Hesaplanan alanlar Yeni Form veya Düzenleme formlarında görünmez ancak Formları Görüntüle ve SharePoint görünümlerinde görünür. Hesaplanan bir sütunu SharePoint Online listesine eklemek için aşağıdakileri yapın:
- SharePoint Online sitenize göz atın ve hesaplanmış sütun oluşturmak istediğiniz hedef listeye gidin.
- Liste sekmesinin altında şeritteki “Sütun Oluştur” düğmesine tıklayın.
Yeni sütununuza Ad verin, türünü “Hesaplanan (diğer sütunlara göre hesaplama)” olarak belirtin.
- Hesaplanan sütununuza ait Formülü “Formül” alanına girin ve verilerin dönüş türünü belirtin.
- Aşağı kaydırın, ondalık basamaklar ve veri formatı gibi parametreleri ayarlayın ve SharePoint Online listesinde hesaplanan bir alan oluşturmak için "Tamam"ı tıklayın.
SharePoint Online'da Listelenecek Hesaplanmış Sütun Oluşturmak için PowerShell
Hesaplanan bir sütunu listeye eklemek için SharePoint Online PowerShell'i kullanabilirsiniz:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
#Custom function to add column to list
Function Add-CalculatedColumnToList()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $ListName,
[Parameter(Mandatory=$true)] [string] $Name,
[Parameter(Mandatory=$true)] [string] $DisplayName,
[Parameter(Mandatory=$false)] [string] $Description=[string]::Empty,
[Parameter(Mandatory=$true)] [string] $FieldsReferenced,
[Parameter(Mandatory=$true)] [string] $Formula,
[Parameter(Mandatory=$true)] [string] $ResultType
)
#Generate new GUID for Field ID
$FieldID = New-Guid
Try {
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the List
$List = $Ctx.Web.Lists.GetByTitle($ListName)
$Ctx.Load($List)
$Ctx.ExecuteQuery()
#Check if the column exists in list already
$Fields = $List.Fields
$Ctx.Load($Fields)
$Ctx.executeQuery()
$NewField = $Fields | where { ($_.Internalname -eq $Name) -or ($_.Title -eq $DisplayName) }
if($NewField -ne $NULL)
{
Write-host "Column $Name already exists in the List!" -f Yellow
}
else
{
#Frame FieldRef Field
$FieldRefXML=[string]::Empty
$FieldRefs = $FieldsReferenced.Split(",")
foreach ($Ref in $FieldRefs)
{
$FieldRefXML = $FieldRefXML + "<FieldRef Name='$Ref' />"
}
#Create Column in the list
$FieldSchema = "<Field Type='Calculated' ID='{$FieldID}' DisplayName='$DisplayName' Name='$Name' Description='$Description' ResultType='$ResultType' ReadOnly='TRUE'><Formula>$Formula</Formula><FieldRefs>$FieldRefXML</FieldRefs></Field>"
$FieldSchema
$NewField = $List.Fields.AddFieldAsXml($FieldSchema,$True,[Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$Ctx.ExecuteQuery()
Write-host "New Column Added to the List Successfully!" -ForegroundColor Green
}
}
Catch {
write-host -f Red "Error Adding Column to List!" $_.Exception.Message
}
}
#Set parameter values
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
$Name="TotalInvestmentBuffer"
$DisplayName="Total Investment Buffer"
$Description="5 Percentage in Total Investment"
$Formula = "=([Total Investment]*5)/100"
$ResultType="Currency"
$FieldsReferenced="[Total Investment]" #Fields Names participating in Formula. Should be Comma (,) Separated
#Call the function to add column to list
Add-CalculatedColumnToList -SiteURL $SiteURL -ListName $ListName -Name $Name -DisplayName $DisplayName -Description $Description -Formula $Formula -ResultType $ResultType -FieldsReferenced $FieldsReferenced
PnP PowerShell, SharePoint Online'da Listeye Hesaplanmış Bir Sütun Eklemek İçin
PnP PowerShell kullanarak bir listeye hesaplanmış bir sütunun nasıl ekleneceği aşağıda açıklanmıştır:
#Parameter
$SiteURL = "https://crescent.sharepoint.com/sites/pmo"
$ListName= "Projects"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Add a calculated column to list
Add-PnPField -List $ListName -Type Calculated -InternalName "Buffer" -DisplayName "Buffer" -Formula "=[Budget]*0.10"
