Обновление поля списка SharePoint с использованием powershell на основе сравнения дат - PullRequest
0 голосов
/ 03 октября 2019

В настоящее время я пытаюсь обновить поле SharePoint (раскрывающееся поле называется Просрочено до Да, если поле dateFormat равно или меньше текущей даты. На данном этапе оно не меняет значение. Есть что-то, что я пропустил. Пожалуйста, обратитеськод, который я имею ниже. Спасибо

if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
    Add-PSSnapin Microsoft.SharePoint.PowerShell;
}

$SPWeb = Get-SPWeb "http://contoso/sites/test";
$List = $SPWeb.Lists["Catalog"];
$currentDate = Get-Date (Get-Date) -format dd/MM/yyyy;
$items = $List.Items;
foreach ($item in $items) {

    $deadline = $item["TA Deadline"];
    $dateFormat = Get-Date $deadline -format dd/MM/yyyy;
    #if date Format is less or equal than current date then update the Overdue drop down field to yes
    if($dateFormat -le $currentDate)
    {

        $item["Overdue"]  = "YES"
        $item.Update()

    }
}
$SPWeb.Dispose();

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Я думаю, вам нужно указать индекс / числовое значение для выбора. Смотрите сообщение в блоге здесь .

Как уже упоминалось, вы можете сделать:

$item["Overdue"] = 0; #assuming 0 == YES

Или

$item["Overdue"] = $list.Fields["Overdue"].GetFieldValue("YES");

Новый код длялогика даты и времени

if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
    Add-PSSnapin Microsoft.SharePoint.PowerShell;
}

$SPWeb = Get-SPWeb "http://contoso/sites/test";
$List = $SPWeb.Lists["Catalog"];
$currentDate = Get-Date;
$items = $List.Items;
foreach ($item in $items) {

    $deadline = $item["TA Deadline"];
    $dateFormat = [datetime]$deadline
    #if date Format is less or equal than current date then update the Overdue drop down field to yes
    if($dateFormat -le $currentDate)
    {

        $item["Overdue"]  = "YES"
        Write-Debug $item["Overdue"]
        $item.Update()

    }
}
$SPWeb.Dispose();
0 голосов
/ 03 октября 2019

, если столбец «Просрочено» является полем «да / нет» (булево) Я думаю, вы можете сделать то, что предложено Дана V, так:


    $item["Overdue"] = 0

или


    $item["Overdue"] = $true

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...