跳至主要内容

工作流節點 — 獲取單條數據


節點功能

  • 1、通過此節點獲取到1條記錄,然後纔可以更新記錄的內容或刪除這條記錄,或者供後續節點使用這條記錄的內容。

  • 2、獲取的1條數據可以隨機獲取1條,也可以按序獲取到第一條。

獲取數據的幾種方式

直接從工作錶查詢記錄

  • 1. 查詢並更新記錄

    從工作錶中通過篩選條件和排序規則查找符閤條件的唯一數據,在獲取的同時對記錄進行更新,並支持返迴更新前的記錄數據。不支持隨機獲取一行記錄。

  • 2. 查詢並刪除記錄

    從工作錶中通過篩選條件和排序規則直接刪除符閤條件的唯一數據,不支持隨機獲取一行記錄。刪除記錄時支持直接徹底刪除,不進入迴收站(無法再恢復)。

  • 3. 查詢工作錶

    從工作錶中查詢一行記錄,僅作查詢不做操作,供後續節點使用。支持隨機獲取一行記錄。

通過其他對象查詢一行記錄

  • 4. 從多條數據中獲取

    • 流程中如果有“獲取多條數據”節點,那麼可以通過此節點再從多條數據中獲取其中1行數據。
  • 5. 獲取關聯記錄

    • 通過關聯關係,獲取關聯的記錄。例如從【關聯錶】、【子錶】中獲取一行記錄
  • 6. 從記錄鏈接獲取

    • 通過解析文本字段存儲的分享的記錄鏈接來獲取對應的記錄對象,供流程中的其他節點使用

查詢工作錶

場景舉例

當【綫索管理】中增加一條新綫索,通過手機號從【聯係人】錶中查詢是否已經有此客戶的記錄。

  • 如果查詢到有記錄,則將該條記錄中的“客戶狀態”字段  更改為“潛在客戶” 。
  • 如果沒有查詢到記錄,則嚮【聯係人】錶中自動新增一條記錄。

1、選擇獲取單條數據節點

由於是直接從《聯係人》錶中查找,因此選擇從工作錶獲取的方式

2、配置節點 

A、選擇從哪張錶中查找數據

B、設置查找的條件

  • 單個條件的條件值可以是手動輸入的固定值,也可以從前麵的節點對象中選擇動態值。
  • 支持條件組,且或結閤。

C、條件異常時忽略

如果篩選條件中條件選擇瞭動態字段,則會顯示此設置,條件中的字段被刪除時,就會查詢異常中止流程,如下圖。

  • 勾選 條件異常時忽略

    將忽略錯誤,跳過查詢,繼續執行後麵的節點。

  • 不勾選 條件異常時忽略

    節點報錯並中止,並通知流程通知人。

D、值為空時忽略

當傳入的條件值為空時,這個查詢條件忽略,隻執行其他篩選條件。 例如: 查詢節點的篩選條件有兩個:

  • 手機號=A記錄的手機號
  • 狀態等於“正常”

如果勾選瞭“值為空時忽略”,當A記錄的手機號為空時,那麼就隻查詢狀態等於"正常"的記錄。

E、設置排序規則

如果符閤條件的記錄有多條,那麼會根據設置的排序規則,獲取第一條記錄。

F、不排序,隨機獲取

勾選後則忽略排序規則,隨機獲取符閤條件的1條數據。

G、未獲取到數據時的執行方式

當工作錶中沒有記錄,或沒有符閤條件的記錄時,需要選擇流程接下來怎麼走。有3條路:

  • 1) 繼續執行

    如果從錶中找不到記錄,繼續執行後麵的節點,如果有用到此節點對象或字段的內容,則會跳過或返迴空。跳過還是返迴空點此查看詳情介紹

  • 2) 在工作錶中新增記錄後繼續執行

    如果從錶中找不到記錄,則可以直接嚮錶(圖中是聯係人錶)中新增一行記錄,後續節點使用此節點內容時也是使用的新建記錄的內容。

  • 3) 中止流程,或繼續執行查找結果分支

    如果此節點後麵緊跟按查找結果分支,則執行無數據的分支流程。如果後麵緊跟的是其他節點則中止流程。

示例中我們使用瞭新增,嚮【聯係人】錶中添加一條新紀錄,並返迴這條記錄對象。

3、更新獲取到的記錄

獲取到記錄後,通過【更新記錄】節點,更改用戶狀態的值。

示例中,更新對象選擇的查找節點中定位到的錶記錄;要修改的字段選擇【客戶狀態】,字段的值設為“潛在客戶”

4、與分支節點的結閤

有時,如果獲取不到數據,且並不需要直接新增記錄,而需要進行其他流程操作。

則可以在節點後麵添加 分支節點 —— 選擇查找結果分支。根據不同的結果設置不同的分支流程操作。

5、與定時觸發流程的結閤使用 

定時觸發的流程的觸發與否和工作錶數據無關係,流程觸發後,流程中並沒有一個節點指嚮工作錶的數據。如果需要修改某個錶中某條記錄,則需要先通過【獲取單條記錄】節點或【獲取多條數據】節點,先在流程中獲取到需要的記錄,然後再去更新、刪除它,或者使用它的記錄值。

查詢並更新

這種方式在查詢到數據時可以同時更新記錄內容,而無需另外添加更新記錄節點,並支持輸齣更新前的值,用於留存方便追溯。

場景:庫存扣減為負數時,改迴庫存進行鎖定

某商品確定齣庫時,根據編號查詢庫存記錄,並直接扣減掉齣庫量。 然後可以對比更新前的值是否小於齣庫的數量,如果小於則恢復到原庫存。

第一步:查詢庫存並更新

1、從庫存錶中查詢記錄

2、通過物料編碼進行篩選查詢唯一的記錄

3、查詢到就直接更新記錄,減少庫存數量

通過這3步可以實現庫存的直接更新,如果需要對比更新前的庫存,還需要選擇輸齣的值。

第二步:對比更新前的庫存和齣庫數量,如果小於齣庫量,則迴滾數據

我們先瞭解下更新數據後,如何輸齣記錄的值。

被之後節點使用時
  • 使用記錄更新前的數據

    如果選擇此項,流程會保存本次操作前的值,後續節點使用記錄數據時,都是更改前的數據。

  • 使用記錄的最新數據

    如果選擇此項,後續節點使用此節點的記錄數據時,會實時查詢當前記錄的最新值。屆時記錄的值可能並非本次更改後的值,也可能是其他流程更改後的值。

1、此場景應該選擇:“使用記錄更新前的數據”

2、通過分支節點,對比更前的庫存是否小於齣庫數量

3、如果小於庫存數量,則因將庫存改迴修改前的庫存量

從多條數據中獲取

獲取多條數據節點可以從工作錶中獲取的多行記錄,也可以從Webhook節點或代碼塊節點中獲取的數組(多行數據), 因此此方式獲取到的也可能是一行錶記錄,也可能是一行數據。

場景舉例

會簽的審批人有多個,想要獲取最晚處理的審批信息。先通過【獲取多條數據】節點獲取到審批節點的所有審批人的信息,再通過【獲取單條數據】節點按照處理時間排序,最終獲取到最晚的處理信息。

使用方法

如下圖:審批節點通過的分支下,先通過獲取多條數據(從人工節點獲取)節點獲取多個審批人的審批信息,然後再通過獲取單條數據節點,從上個多條數據節點中獲取1條數據。

查找數據時的篩選、排序、隨機獲取以及為獲取到數據時的執行方式和方式1(從工作錶中獲取)相同,不再贅述。

從關聯字段獲取

場景舉例

如下圖:新創建一個齣庫明細記錄,並關聯瞭要齣庫的是哪一個商品記錄。當齣庫記錄提交後,需要更新商品記錄的庫存,在齣庫明細記錄中並沒有商品的庫存信息,這時就需要獲取到關聯的商品記錄,然後纔能更新這條記錄中庫存量的值。

1、添加“獲取單條數據”節點 

添加獲取單條數據節點,並選擇從關聯字段獲取的方式。

2、設置節點

A:選擇通過哪條記錄獲取:即觸發流程的那條齣庫明細

B:選擇“關聯字段”,根據記錄中的哪個關聯錶字段來獲取,我們選擇的是“商品”。錶示:從觸發流程的齣庫記錄中,根據關聯的商品字段,獲取到要齣庫的商品記錄。

C:如果關聯瞭多條,可以通過篩選進一步縮小待查詢的記錄的範圍。

D: 如果有多條關聯記錄都符閤條件,可以根據排序規則排序後,獲取排在第一行的那條記錄。

E:如果沒有關聯的記錄,則獲取結果是空,然後有兩條路可以走。

  • 1)繼續執行
    繼續執行後續的節點,如果使用到此節點則跳過執行或數據為空。

  • 2)中止流程,或繼續執行查找結果分支
    如果此節點後麵緊跟查找結果分支,則繼續執行無數據的分支流程。如果緊跟的是其他節點,則中止流程。

3、使用或處理獲取到的記錄內容

此節點僅僅錶示在流程中獲取定位到一條記錄,但是並沒有進行任何實際的"操作", 可以通過更新節點修改此記錄的值,或運算節點使用此記錄的值,或刪除節點刪除此記錄。

通過"更新記錄"節點,修改商品的庫存

將現有的庫存直接減去齣庫的數量,就是新的庫存量。

一個訂單中,可能關聯瞭多個訂單明細,此節點隻獲取到1條訂單明細的記錄。 如果需要獲取到所有的關聯記錄,請使用獲取多條數據節點。

TIPS:

此獲取方式可以使用“從工作錶獲取”的方式來替代,而且查詢速度更快,在經常批量執行的工作流中建議使用“從工作錶獲取”的方式,

如本示例中,通過齣庫明細記錄的關聯字段(商品),獲取其關聯的商品記錄。改為:直接從商品錶中查詢,查詢條件為關聯字段(齣庫記錄)關聯此當前齣庫記錄的記錄ID。

從記錄鏈接獲取記錄

此節點可以通過工作錶中文本字段存儲的記錄鏈接,來直接獲取到相應的記錄, 並將獲取的記錄給到後麵的節點進行使用。

場景示例

在【采購明細錶】通過文本存儲的鏈接,來匹配【采購單】,進行自動關聯

使用方法

如下圖,根據【采購明細錶】,文本字段(描述)所存放的鏈接,在【采購單】裏麵找到相應的記錄, 進行匹配關聯, 使用更新記錄節點,將獲取到的【采購單】更新給【采購明細錶】裏麵的關聯記錄。

支持識彆的鏈接:

  • 對內:記錄分享二維碼鏈接

  • 對外:記錄分享二維碼鏈接(係統打印)、word打印二維碼鏈接

未獲取到數據時,後續節點如何處理

當“獲取單條數據”節點沒有獲取到記錄或數據時,而後續的節點需要使用到這個節點,那怎麼處理呢。

我們先把“獲取單條數據”記作節點A, 後續使用它的節點記作B。 基本上是兩個原則:

1、如果把節點A當作一個對象處理時(更新、刪除),由於節點A沒有任何記錄,節點B無法操作,則節點B直接跳過。

2、當節點B使用節點A的某個字段的值時,則返迴空,節點B繼續執行。

詳情見錶格


文檔問題反饋

文檔中是否有錯彆字、內容過期、難以理解等問題? 點此給我們反饋吧