Bu makalede üzerinden belli bir gün geçmiş herhangi bir statüdeki çağrıların Custom Schedules Function ile otomatik kapatmayı anlatıyor.
Bu çalışma 3 aşamadan oluşuyor bunlar;
-Rapor oluşturma
-Script yazma
-Scripti schedule etme
1-) Rapor Oluşturma
Rapor -> New Query Report ile yeni bir query sayfası açıyoruz.
Aşağıdaki sorguyu yapıştırıp isteğinize göre editliyorsunuz.
SELECT max(wo.helpdeskid) "portalid", wo.WORKORDERID "workorderid"
FROM WorkOrder wo
LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID
LEFT JOIN StatusDefinition std ON wos.STATUSID=std.STATUSID
WHERE (wo.ISPARENT='1')
AND (std.statusname = 'devam edecek'
OR std.statusname = 'geliştirme'
OR std.statusname = 'test in proses open')
AND extract(epoch FROM(now()::TIMESTAMP - to_timestamp(wo.createdtime/1000)::TIMESTAMP))/3600/24 >10 group by wo.WORKORDERID
Bu sorguda kapatmak istediğiniz taleplerin
durumunu aşağıdaki yerden editleyiniz. Eklemek istediğiniz farklı bir durum
için “OR” ile işleme başlayınız.
Daha sonra kaç yaşından fazla çağrılar için otomatik kapatma işlemini yapmak istiyorsanız aşağıdaki sayıyı değiştiriniz.
Editlemekle işiniz bitti şimdi raporu çalıştırıp düzgün sonuç alamadığınızı kontrol edin.
Şimdi ise raporunuza özel bir isim vererek kaydedin.
İsterseniz daha önceden oluşturulmuş bir klasörün altına isterseniz yeni bir klasör oluşturup onun altına raporunuzu koyabilirsiniz.
Tebrikler raporunuzu oluştrdunuz. Şimdi diğer aşamaya geçebilirsiniz.
2-) Script Yazma
Admin tabından “Genel Ayarlar” altında Custom Schedules Function a gidin ve Global Functions tabına girin ve yeni bir fonksiyon oluşturun.
Buraya dikkat, Daha önce böyle bir konfigürsayon yapıldıysa bu adımı atlayabilirsiniz.
Global Function script
configuration = Map();
configuration.put("url","http://WIN-C0ODA52N8T0:8080");
configuration.put("technicianKey","F9615EDE-3F31-4E20-BE02-45730E7CB562");
return configuration;
Function name “configuration” olarak yazın
Sizde Map global_function_5 ( ) olmayabilir bunu Custom Actions tabı altında daha sonra değiştirebiliriz.
URL adresninizi şuradan öğrenebilirsiniz.
technicianKey oluşturmak için ise;
Aşağıdaki gibi kendinize özel bir isim verdikten sonra SDAdmin rolü ile oluşturunuz.
Anahtarı kopyalayıp scripte yapıştırın. Burada işimiz bitti şimdi Custom Actions tabına geçiyoruz ve yeni bir costum function ekliyoruz.
Custom function scritp
configuration = global_function_5();
dataObj = reportObj.get("Wotech");
input_data = {"request": {"resolution": {"content": "Closing request via Custom Schedule"},"status": {"name": "Closed"},"status_change_comments": "Closing Request"}};
success_ids = List();
failure_ids = List();
for each data in dataObj{
response = invokeurl
[
url: configuration.get("url") +"/api/v3/requests/" + data.get("workorderid")
type: PUT
parameters: {"input_data":input_data}
headers:{"authtoken":configuration.get("technicianKey"),"portalid":data.get("portalid")}
];
if(response.get("response_status").get("status_code") == 2000) {
success_ids.add(data.get("workorderid"));
}
else
{
failure_ids.add(data.get("workorderid"));
}
}
//Message to be printed in the schedule result
response_message = "";
if(!success_ids.isEmpty()){
response_message = "Success List: " + success_ids;
}
if(!failure_ids.isEmpty()){
response_message = response_message + " ,Failure List: " + failure_ids;
}
returnObj = Map();
returnObj.insert("result":"success", "message": response_message);
return returnObj;
Şimdi Script üzerinde editleyeceğiniz yerlere bakalım.
Global function sayısını kendinize göre editleryin (Global Functions tabında sizde farklı olabilir diye bahsetmiştim). Ardından oluşturduğumuz raporun ismini yazın.
Burada ise kapalı durumunuzu editleyin.
Son olarak istediğiniz ismi verip kaydedin.
Burada işimiz bitti şimdi son adıma geçebiliriz.
3-) Scripti Schedule Etme
Admin -> “Genel Ayarlar” -> ”Custom Schedules“
Yeni bir tane schedules oluşturup istediğiniz ismi verin
Burada “Executor”: custom function olarak kalsın
Editleiğiniz scripti bulun ve “Arguments” olarak hazırladığımız raporu seçin. Tek seferlik çalıştırmak istiyorsanız “Repeat” : none olarak bırakın.
SAVE…