tags: Bonita BPM
COMMON 基礎知識
-
針對前端的部分
-
Business Data Model資料結構
Fig.1 -
第1層資料表 >> 第2層資料表 >> 第3層資料表
- 第1層資料表:CallCenterOrder
- 第2層資料表:CCOrderCallIn,資料表於第1層的名稱:callInInfo
- 第3層資料表:CCOrderCustomer,資料表於第2層的名稱:customerInfo
取得第2層資料表的資料
Name | Value | Type |
---|---|---|
taskId | id | URL parameter |
context | …/API/bpm/userTask/{{taskId}}/context | External API |
callInInfo | …/{{context.‘第1層 Business Data Model 資料表名稱’_ref.link}}/‘第2層 Business Data Model 資料表名稱’ | External API |
- 透過上面table的callInInfo,可以取得第2層 Business Data Model裡的資料
- 例子:
callInInfo.answerDuration
,取得通話時間
在第2層資料表找第3層資料表
-
透過Network觀察封包
callInInfo
取出來的資料及資料結構
Fig.2 -
根據Fig.2,第3層的Business Data Model在封包中,會變成
links:[,...]
,
但在Fig.1,第3層資料表於第2層的名稱為customerInfo -
links:[,...]
中包含了:- 以Array的方式儲存每一個第3層的資料表的資料
- rel:第3層Business Data Model的資料表名稱
- href:第3層Business Data Model的資料表的資料儲存位置
取得第3層資料表的資料
-
透過第2層資料表的變數 callInInfo,比對第3層資料表的 rel,
取得第3層資料表的 href,也就是第3層資料表的儲存位置 -
利用API取得第3層資料表的資料
-
Example1:只有一個第3層資料表
步驟1
- Name:customerInfoLink
- Type:Javascript expression
- Value:
return $data.callInInfo.links[0].href;
步驟2
- Name:customerInfo
- Type:External API
- Value:
..{{customerInfoLink}}
-
Example2:多個第3層資料表
步驟1
- Name:customerInfoLink
- Type:Javascript expression
- Value:
for(var i=0; i<$data.callInInfo.links.length; i++) { if($data.callInInfo.links[i].rel === "customerInfo") return $data.callInInfo.links[i].href; } return;
步驟2
- Name:customerInfo
- Type:External API
- Value:
..{{customerInfoLink}}
沒有留言:
張貼留言