物品貸出プロセス,貸出リスト閲覧 20220812
物品貸出申請を受け付けるワークフローです。貸出申請時、検索ボタン押下で、指定した物品の貸出状況がリスト表示されます。貸出状況は、貸出中/予約中の申請から期間・利用者が取得され、記載されます。(物品貸出プロセス,QRコード利用 https://support.questetra.com/ja/templates/items-lending-management-by-qrcode-20220711/ をベースに作成されています)
作業担当者 (スイムレーンの数:3)
- 申請者
- 総務部 物品貸出担当
- 上長
仕事の流れ (ワークフロー図の複雑度:23)
- 1 1.貸出申請
- 社員は、物品の貸出を申請します。
- 4 1x.再申請
- 社員は、物品の貸出を却下理由を元に再申請します。却下理由に依っては、申請を取下げます。
- 2 2.承認
- 申請者の上長は、貸出申請を承認します。
- 8 3.貸出受付
- 総務部 貸出担当は、QRコードから申請内容を確認し、物品貸出日時を登録します。
- 12 4.返却受付
- 総務部 貸出担当は、QRコードから申請内容を確認し、物品返却日時を登録します。
- 5 x1.件名セット
- ワークフロー基盤は、件名をセットします。
- 6 x2.受付証QRコード発行
- ワークフロー基盤は、貸出・返却受付用の QR コード(PNG画像)を生成します。
- 18 x3.件名セット
- ワークフロー基盤は、件名をセットします。
- 22 督促日時 更新
- ワークフロー基盤は、督促日時を2時間後に更新します。
- 23 貸出Status キャンセル
- ワークフロー基盤は、貸出ステータスを”キャンセル”に変更します。
- 21 貸出Status 予約済
- ワークフロー基盤は、貸出ステータスを”予約済”に変更します。
- 19 貸出Status 貸出中
- ワークフロー基盤は、貸出ステータスを”貸出中”に変更します。
- 20 貸出Status 返却済
- ワークフロー基盤は、貸出ステータスを”返却済”に変更します。
ワークフロー図 (クリックして開く)

- BPMN Icons
- 開始イベント
- 終了イベント
- 結合ゲートウェイ
- メッセージ送信中間イベント(メール)
- タイマー中間イベント
- ヒューマンタスク
- データ更新
- Image-Charts: QR Code, 生成
受け渡しされるビジネスプロセス変数 (データ項目の数:19)
- ◆申請
10
- 貸出物品カテゴリ q_item_category
4
*- 貸出物品のカテゴリが格納されます。
- 貸出物品 q_item
5
*- 貸出物品が格納されます。
- ◆貸出物品状況の確認
17
- 指定された貸出物品の貸出/予約状況を検索し、動的に表示します。
- 貸出予定日時 q_lending_schedule_datetime
0
*- 申請時、貸出予定日時が格納されます。
- 返却予定日時 q_return_schedule_datetime
1
*- 申請時、返却予定日時が格納されます。
- 貸出目的 q_description
6
- 申請時、物品の貸出理由が格納されます。
- ◆貸出/返却
11
- 貸出管理番号 q_management_number
15
- 貸出案件毎にユニークな管理番号が格納されます。
- L#{#sformat(‘%06d’, processInstanceId)}
- 物品利用者 q_quser
7
- 貸出申請者が格納されます。
- ${processInstance.initQuserId}
- 物品利用承認者 q_leader
8
- 貸出申請の承認者が格納されます。
- ${processInstance.initQuserId}
- 貸出完了日時 q_lending_datetime
2
*- 物品を貸出した日時が格納されます。
- 返却完了日時 q_return_datetime
3
*- 物品を返却された日時が格納されます。
- 貸出時:メモ q_lending_note
12
- 貸出時の注意事項(物品の取扱・状態等)が格納されます。
- 返却時:メモ q_return_note
13
- 返却時の物品の状態等が格納されます。
- 通信欄 q_communication
9
- 申請時の注意事項、承認時のコメント等が格納されます。
- QRコード画像ファイル q_QRCode_file
16
- 本案件のプロセス詳細 URL を示すQRコードの画像ファイルが格納されます。
- 貸出ステータス q_status
14
- 物品の貸出ステータスが格納されます。
- applying
- 督促日時 q_remind_datetime
19
- 返却督促日時が格納されます。
フィールド名, Num
, 初期値
Download
- items-lending-management-with-lending-list-20220812-ja.qar
- items-lending-management-with-lending-list-20220812-ja.csv (データ項目定義インポート用)
This archive contains the BPMN icon, which is only available in the Professional edition.
Notes
- インポート時に組織構造に合わせて、処理担当者設定の関連付けを行います
- “申請者”スイムレーンの割当ユーザの権限
- アプリ設定 > アプリ詳細 > 権限の編集 ”データ閲覧権限”を付与してください。
- 予約キャンセルの運用
- 貸出申請後、貸出不要となった場合、総務担当者に”予約キャンセル”の操作を依頼してください。
Arrangement Tips
「1.貸出申請」工程 貸出状況検索 デコレーション Script (click to open)
<button onclick="user_getHistory()" type="button" class="user_Search">貸出中/予約中 確認</button>
<br>貸出中/予約中の場合は、利用者と相談の上、申請してください。
<div style="padding: 0.5em 1em; margin: 2em 0; font-weight: bold; color: #6091d3; background: #FFFFF; border: solid 3px #6091d3; border-radius: 10px; width:80%;">
<div id="user_Result"></div>
</div>
<script type="text/javascript">
document.addEventListener("click", function (e) {
console.log( " DocumentElement clicked: " + e.target.textContent );
if (e.target.classList.contains("user_Appender")) {
qbpms.form.set( "q_Transaction_Title", e.target.value ); ///EDIT///
}
});
function user_getHistory() {
let numTARGET_ITEM_ID = 5; ///No Need Editing///
let numTARGET_STATUS_ID = 14; ///No Need Editing///
let numTARGET_STARTDATETIME_ID = 0; ///No Need Editing///
let numTARGET_ENDDATETIME_ID = 1; ///No Need Editing///
let numLIMITSIZE = 10; ///Need Editing (According to frequency of use)///
let numWORKFLOWAPPID = ***; ///Need Editing(This WorkFlow Application ID)///
let strSearchItemId = "";
let strSearchItemName = "";
let array = qbpms.form.get( "q_item" );
let elResultDiv = document.querySelector("#user_Result"); ///EDIT///
console.log("array: " + array.length);
if (array.length !== 0){
console.log( "q_item is not empty or null.");
strSearchItemName = array[0].display;
strSearchItemId = array[0].value;
}else{
elResultDiv.innerHTML = ""; // clear
return;
}
let objCriteria = {}; // JSON criteria: (BPMS v13.3~)
// https://questetra.zendesk.com/hc/ja/articles/4415341995289
// https://questetra.zendesk.com/hc/en-us/articles/4415341995289
objCriteria.processModelInfoId = numWORKFLOWAPPID;
objCriteria.processInstanceState = [];
objCriteria.processInstanceState[0] = "STARTED";
objCriteria.data = [];
objCriteria.data[0] = {};
objCriteria.data[0].type = "select";
objCriteria.data[0].number = numTARGET_ITEM_ID;
objCriteria.data[0].method = "selected";
objCriteria.data[0].value = strSearchItemId;
objCriteria.fields = [];
objCriteria.fields[0] = {};
objCriteria.fields[0].type = "select";
objCriteria.fields[0].number = numTARGET_ITEM_ID;
objCriteria.fields[1] = {};
objCriteria.fields[1].type = "datetime";
objCriteria.fields[1].number = numTARGET_STARTDATETIME_ID;
objCriteria.fields[2] = {};
objCriteria.fields[2].type = "datetime";
objCriteria.fields[2].number = numTARGET_ENDDATETIME_ID;
objCriteria.fields[3] = {};
objCriteria.fields[3].type = "select";
objCriteria.fields[3].number = numTARGET_STATUS_ID;
let xhr = new XMLHttpRequest();
xhr.open( "GET", "/API/OR/ProcessInstance/list?limit=" + numLIMITSIZE +
"&criteria=" + encodeURIComponent(JSON.stringify(objCriteria)) );
xhr.responseType = 'json';
xhr.send();
xhr.onload = function() {
if (xhr.status != 200) {
console.error(`Error ${xhr.status}: ${xhr.statusText}`); // e.g. "404: Not Found"
} else { // show the result
let objResponse = xhr.response;
if (objResponse.count === 0){
elResultDiv.innerHTML = "いつでも貸出可能"; // clear
return;
}
console.log( " Decoration XHR: Found PastData " + objResponse.processInstances.length +
"/" + objResponse.count );
elResultDiv.innerHTML = ""; // clear
let list = Array.from(new Array(objResponse.processInstances.length), () => new Array(6).fill(""));
for (let i=0; i < objResponse.processInstances.length; i++){
console.log("STATUS:" + objResponse.processInstances[i].data[numTARGET_STATUS_ID].value[0].value);
list[i][1] = "【" + objResponse.processInstances[i].data[numTARGET_STATUS_ID].value[0].display +"】" + " ";
list[i][2] = "/OR/ProcessInstance/view?processInstanceId=" + objResponse.processInstances[i].processInstanceId;
list[i][3] = "_blank";
if (objResponse.processInstances[i].data[numTARGET_STARTDATETIME_ID].value !== null){
list[i][0] = objResponse.processInstances[i].data[numTARGET_STARTDATETIME_ID].value;
list[i][4] = objResponse.processInstances[i].data[numTARGET_STARTDATETIME_ID].value + " - ";
}else{
list[i][4] = "未定 - ";
}
if (objResponse.processInstances[i].data[numTARGET_ENDDATETIME_ID].value !== null){
list[i][5] = objResponse.processInstances[i].data[numTARGET_ENDDATETIME_ID].value + " ";
}else{
list[i][5] = "未定 ";
}
list[i][6] = objResponse.processInstances[i].processInstanceInitQuserName;
}
console.log(JSON.stringify(list));
createHtml(list,elResultDiv);
}
console.log( " Decoration XHR: finished " );
};
xhr.onerror = function() {
alert("Request failed");
};
function createHtml(list,elResultDiv){
list.sort(function(a, b){
return (a > b ? 1 : -1);
});
console.log("sorted: " + JSON.stringify(list));
for (let i=0; i < list.length; i++){
console.log(list[i][1]);
let elNewAnchor = document.createElement("a");
elNewAnchor.href = list[i][2];
elNewAnchor.target = list[i][3];
elNewAnchor.innerText += list[i][4];
elNewAnchor.innerText += list[i][5];
elNewAnchor.innerText += list[i][6];
elResultDiv.append( list[i][1], elNewAnchor );
elResultDiv.innerHTML += "<br>";
}
}
}
</script>
Capture


