пятница, 6 ноября 2020 г.

Очистить значение поля выбор (Power Automate)

В рабочих процессах созданных через дизайнер можно было легко очистить поле типа выбор, но вот в Power Automate с этим возникают сложности.
Если выбрать свое значение и оставить его пустым или заполнить null, то прежнее значение остается без изменения.
Для очистки значения можно воспользоваться следующим способом, передать пустую строку как значение поля.











вторник, 6 октября 2020 г.

Получение всех рабочих процессов WorkFlow 2010 в tenant

 Я упустил новость о том, что WorkFlow 2010 будут отключены и только недавно увидел сообщение

Starting 11/1/2020 6:00:00 AM, SharePoint 2010 workflows will be retired and users will no longer have the ability to run or create 2010 Workflows. 


SharePoint Modernization Scanner  у меня так и не завелся.
возникала аналогичная ошибка https://github.com/pnp/sp-dev-modernization/issues/524 

тогда решил сам найти все активные WorkFlow. Так же выводится информация количестве всех элементов списка, так же созданных и измененых с 1 августа.


#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.WorkflowServices.dll"


$UserName = "adm@company.com"
$Cred= Get-Credential $UserName


$SiteUrl = "https://contoso.sharepoint.com" #tenant

$array = @()  

function GetSubWebs($sWeb){    
            
    $Ctx.Load($sWeb)

    $WorkflowServicesManager = New-Object Microsoft.SharePoint.Client.WorkflowServices.WorkflowServicesManager($Ctx, $sWeb)
    $WorkflowSubscriptionService = $workflowServicesManager.GetWorkflowSubscriptionService()

    $allLists = $sWeb.Lists
    $Ctx.Load($allLists)
    $Ctx.ExecuteQuery()

    $webUrl = $sWeb.Url

    foreach($list in $allLists){
        $list.Title               
       
        $listTitle = $list.Title

        $List = $sWeb.Lists.GetByTitle($listTitle)
        $Ctx.Load($List)
        $WFassociation =  $List.WorkflowAssociations

        $Ctx.Load($WFassociation)
        $Ctx.ExecuteQuery() 

        $wfCount = 0
        foreach($wf in $WFassociation){
            if($wf.Enabled -eq $true){
                $wfCount++

            }
        }


        if($wfCount -gt 0){
            $wfCount

            $allItemCount = $List.ItemCount
            $camlQuery = [Microsoft.SharePoint.Client.CamlQuery]::new();  
            $camlQuery.ViewXml = "2020-07-31T14:48:24Z"

            $addItems = $List.GetItems($camlQuery)
                    

            $camlQuery = [Microsoft.SharePoint.Client.CamlQuery]::new();  
            $camlQuery.ViewXml =  "2020-07-31T14:48:24Z"

            $modyItems = $List.GetItems($camlQuery)                    

                   
            $Ctx.Load($addItems )
            $Ctx.Load($modyItems )


            $Ctx.ExecuteQuery()
                 
            $modyItemsCount = $modyItems.Count
            $addItemsCount = $addItems.Count

            $object = New-Object PSObject

            $object | Add-Member -Name 'Title' -MemberType Noteproperty -Value $listTitle
            $object | Add-Member -Name 'All Items' -MemberType Noteproperty -Value $allItemCount
            $object | Add-Member -Name 'Add Items' -MemberType Noteproperty -Value $addItemsCount 
            $object | Add-Member -Name 'Modified Items' -MemberType NoteProperty -Value  $modyItemsCount
            $object | Add-Member -Name 'WF Count' -MemberType NoteProperty -Value  $wfCount
            $object | Add-Member -Name 'URL' -MemberType NoteProperty -Value $webUrl

                     
            $Global:array += $object
        }
    }

    $webs= $sWeb.Webs
    $Ctx.Load($webs)
    $Ctx.ExecuteQuery()
    if($webs.Count -gt 0)
    {
        Write-Host $aWeb.Url  " - " $aWeb.Webs.Count
         
        foreach($aWeb in $webs)
        {
        
            $Ctx.Load($aWeb)
           
            GetSubWebs $aWeb 
        }
    }

    
}

$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
     

    
$Web = $Ctx.Web
$Ctx.Load($Web)
$webs= $Web.Webs
GetSubWebs($Web)

$array | Format-Table

$array | Export-Csv -NoTypeInformation -Path  C:\Temp\lists.csv  -encoding "utf8" -Delimiter ";"
На выходе таблица и можно экспортировать в csv


вторник, 11 августа 2020 г.

Shared folder для внешних сотрудников с помощью WorkFlow (SharePoin Online)

 

Не так давно появилась задача бизнеса шарить файлы с партнерами и что бы всем партнерам приходили оповещения о изменении файла.

Мы взвесили все за и против и решили, что делится файлами будет удобнее чем заводить внешних пользователей себе, тратить на них лицензию. Да и первый вход внешнего сотрдника через создание новой записи MS, подтверждение не так удобен пользователям.

Если достум через Share link не сложный как для бизнеса так и для внешнего сотрудника, то оповещение внешних пользователей о том, что изменился файл в расшариной папке задача оказалась не совсем простая.

понедельник, 20 апреля 2020 г.

Решение проблем с Multiple lines of text с параметрами Plain text и Append Changes to Existing Text

В одном из списков в поле Многострочный текст используются настройки
"Обычный текст" и "Вносить изменения в существующий текст"

как результат - на форме редактирования история не читается.

понедельник, 23 марта 2020 г.

Вывести ID элемента на форму редактирования/просмотра


Появилась задача вывести ID элемента на форму и эту задачу можно решить несколькими способами.
1. Добавить вычисляемое поле, которое будет брать данные из поля ID.
Минус – на форме редактирования не отображается.
2. Создать поле и писать в него или с помощью РП или JS.
Можно сделать другим способом. Прибегнув к jQuery и написав немного кода.



ссылка на код

вторник, 18 февраля 2020 г.

Создание сайта PWA в новой базе. (PowerShell)

В данной статье я поделюсь скриптом который:
1. Создает управляемый путь
2. Создает базу данных
3. Создает новый сайт PWA
4. Переводит в режим разрешений Project Server.

вторник, 24 декабря 2019 г.

Свои цвета в календаре.


Как возможно вы уже знаете, календари (представления календарей) можно объединять в один и разные календари выделить цветом. Но цветов не много и свои указать нет возможности.