Merhaba arkadaşlar bugün sizlere sharepoint designer 2013 workflow kullanarak var olan listeye ya da aynı web üzerinde başka bir listeye nasıl rest api isteği atabileceğinizden bahsedeceğim.
Daha önceden SharePoint Designer Workflow Kullanarak Rest Api ile Bir Site Collectiondan Başka Bir Site Collectiondaki Listeye Veri Ekleme ile ilgili bir yazı paylaştım orada farklı site olduğu için ekstra yetkilendirme yapılması gerekmektedir.
İlk olarak işlem yapacağımız liste üzerinde bir tane 2013 workflow oluşturuyoruz.
Daha sonra workflowumuzun “Local Variables” kısmına aşağıdaki tablodaki deişkenleri belirtilen tiplerde ekliyoruz.
Name | Type |
requestHeader | Dictionary |
responseContent | Dictionary |
listItems | Dictionary |
responseCode | String |
count | Integer |
Daha sonra workflowumuza “Action” menüsünden bir tane “Build Dictionary” ekliyoruz ve “Output” kısmına az önce variable olarak eklediğimiz “requestHeader” ekleyip içerisine de aşağıdaki tablo da yer aalan değişken tanımlarımızı ekliyoruz.
Name | Type | Value |
accept | String | application/json;odata=verbose |
content-type | String | application/json;odata=verbose |
Daha sonra tekrardan “Action” menüsüne gelerek oradan istek atmamız için “Call HTTP Web Service” ekliyoruz.
Bu istekte ayarlamalarımızı yapabilmek için istek kısmının sonun da yer alan ok işaretine tıklayarak menüden “Properties…” tıklıyoruz ve özellik popup açıyoruz.
Burada “Address” kısmını ben var olan listemdeki öğe sayısını çekeceğim için ona göre bir rest api call ekliyorum. Burada siz istediğiniz işleme göre apinizi ekleyebilirsiniz. Dinamik bir yapı olması amacı ile site adresini ve liste adını “Workflow Context” üzerinden alıyorum.
[%Workflow Context:Current Site URL%]_api/web/lists/getbytitle(‘[%Workflow Context:List Name%]’)/items
Yukarıdaki istek adresini ekliyorum. Daha sonrada “RequestHeader”, “ResponseContent” ve “ResponseStatusCode” kısımlarına ilk başta oluşturduğum variablelarımızı tanımlıyoruz.
Daha sonra da bu isteğimizden gelen sonucu okuyabilmemiz için yine “Action” kısmından “Get an item from a Dictionary” seçerek workflowumuza ekliyoruz.
Burada “item by name or parh” kısmına isteğimizin sonucunu “Feedler” veya benzeri bir rest api görüntüleyici de baktığınızda göreceğiniz gibi “d/results” olarak vermemiz gerekiyor. “From” kısmında yer alan dictionary kısmına da isteğimizin properties ayarladığımız ve sonucumuzu kaydettiğimiz “responseContent” variable tanımlıyoruz. Bu işlem sonunda da çıkan filtreli sonucumuz içinde parantez içerisinde yer alan “Output to item” kısmında da listemizdeki verileri çekerek setlemek için “listItems” variable değerimizi tanımlıyoruz.
Daha sonra listedeki öğelerimizin sayılarını alabilmek için “Action” kısmında yer alan “Count items in a Dictionary” ekliyoruz.
Burada da dictionay kısmına az önce değer atadığımız “listItems” variable tanımlıyoruz ve output çıktısına da sayımızı atayacağımız “count” variable değerimizi ekliyoruz.
Şimdi de bu değerimizi görebilmek için bu sayımızı workflow history yazdırıp workflowumuzu sonlandırıyoruz.
Son durumda workflowumuzun bitmiş hali yukarıdaki gibi olacaktır.
Workflow çalıştırdığımız zaman yukarıdaki gibi sonucu görebiliyoruz.
İlk Yorumu Siz Yapın