站長留言

  • ✅ 本站維護及更新歷史紀錄,詳情請參考公告
  • ✅ 有任何意見、想法,歡迎留言給Spicy知道喔
  • ✅ 固定於每周一至周五更新Blogger文章,周末不定期
前端程式Bonita BPM

【Bonita BPM】如何取得第3層Business Data Model的資料

tags: Bonita BPM

COMMON 基礎知識

  1. 針對前端的部分

  2. Business Data Model資料結構


    Fig.1

  3. 第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
  1. 透過上面table的callInInfo,可以取得第2層 Business Data Model裡的資料
  2. 例子:callInInfo.answerDuration,取得通話時間

在第2層資料表找第3層資料表

  1. 透過Network觀察封包 callInInfo 取出來的資料及資料結構


    Fig.2

  2. 根據Fig.2,第3層的Business Data Model在封包中,會變成 links:[,...]
    但在Fig.1,第3層資料表於第2層的名稱為customerInfo

  3. links:[,...] 中包含了:

    • 以Array的方式儲存每一個第3層的資料表的資料
    • rel:第3層Business Data Model的資料表名稱
    • href:第3層Business Data Model的資料表的資料儲存位置

取得第3層資料表的資料

  1. 透過第2層資料表的變數 callInInfo,比對第3層資料表的 rel
    取得第3層資料表的 href,也就是第3層資料表的儲存位置

  2. 利用API取得第3層資料表的資料

  3. Example1:只有一個第3層資料表

    步驟1

    • Name:customerInfoLink
    • Type:Javascript expression
    • Value:return $data.callInInfo.links[0].href;

    步驟2

    • Name:customerInfo
    • Type:External API
    • Value:..{{customerInfoLink}}
  4. 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}}

沒有留言:

張貼留言

本網站建議使用電腦或平板瀏覽