【SharePoint Online】タスクリストをスクリプトから承認/却下する【Javascript】
こんにちは。
今回は、企業では意外と使われている(嘘)
タスクリストのアイテムを承認/却下するためのコードを記事にしていきます。
アイテムのEdit Formからしか承認/却下ができないので、
Disp Formから承認できるように実装していきましょう。
ソース
まずはURLのクエリからIDを取得するための関数を定義しておきましょう。
function GetItemId(){
var arg = new Object;
var pair=location.search.substring(1).split('&');
for(var i=0;pair[i];i++) {
var kv = pair[i].split('=');
arg[kv[0]]=kv[1];
}
return arg['ID'];
}
location.search.substring(1)としているのは、先頭の「?」が不要なためです。
それでは続いて承認するための関数を定義します。
function approveTask(listTitle,itemId){
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var item = list.getItemById(itemId);
item.set_item('Completed',true);
item.set_item('PercentComplete',1);
item.set_item('Status','完了');
item.set_item('WorkflowOutcome','承認');
item.update();
ctx.executeQueryAsync(
function() {
console.log("Success");
},
function(sender, args) {
console.log("Failed");
console.log(args);
}
)
}
WorkflowOutcomeに関しては、環境によって”承認済み”だったりするので環境を確認しましょう。
関数自体はこれだけで正しく稼働するはずです。
続いて却下ですが、これはプロパティを変更してあげるだけです。
// 却下
function rejectTask(listTitle,itemId){
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var item = list.getItemById(itemId);
item.set_item('Completed',true);
item.set_item('PercentComplete',1);
item.set_item('Status','完了');
item.set_item('WorkflowOutcome','却下');
item.update();
ctx.executeQueryAsync(
function() {
console.log("Success");
},
function(sender, args) {
console.log("Failed");
console.log(args);
}
)
}
リボンメニューにスクリプトを仕込む
さて、あとは以前書いた「【SharePoint Online】リボンメニューにJavascriptを仕込む【SharePoint Designer】」を利用してリボンに仕込むだけです。
簡単ですね。
終わりに
今回は簡単ですが以上となります。
リボン以外にも、All Itemで選択したアイテムを承認するなんかも便利かもしれませんね。
それではまた。
Discussion
New Comments
No comments yet. Be the first one!