您位於此處:
修正流程中的唯讀欄位錯誤
疑難排解嘗試更新執行中使用者沒有編輯權限之欄位的流程。
必要版本
| 檢視支援的版本。 |
如果流程嘗試更新執行中使用者無法編輯的欄位,且您組織的「從流程要求中篩選無法存取的欄位」未啟用,則流程會失敗。如果您的記錄變數包含唯讀欄位,且您無法將這些欄位的「編輯」權限授與您的執行中使用者,請將這些欄位從記錄變數中移除。在「建立記錄」或「更新記錄」元素中個別地設定欄位值,或將可寫入的欄位值複製到新的記錄變數中。
備註 如果記錄變數中的唯讀欄位是由「取得記錄」或「指派」元素填入,請考慮更新這些元素,讓它們完全不會填入該欄位。
在記錄變數之間複製欄位值
記錄變數與記錄集合變數會有為執行中使用者無法編輯的欄位設定的值。但是,您可以使用可寫入的值來透過「建立記錄」或「更新記錄」元素建立或更新記錄。若要這麼做,請將來源記錄變數中的可寫入值對應至新的記錄變數。
必要版本
| 檢視支援的版本。 |
| 需要的使用者權限 | |
|---|---|
| 若要使用 Flow Builder 中所有可用的流程類型、元素和功能 (包括 Einstein 和 Agentforce for Flow) 來開啟、編輯、建立、啟用或停用流程: | 管理流程 |
備註 搭配記錄集合變數使用迴圈,將欄位值對應至新的集合。
- 將「指派」元素新增至您的流程。確定流程會在已填入來源記錄變數後,但在「建立」或「更新」元素前,執行此元素。
-
對於來源記錄變數中的每個可寫入欄位新增一列。
變數—選取 {!recordVar2.field},其中 recordVar2 是新變數的名稱,field 是該變數上的欄位。
運算子—選取 equals。
值—選取 {!recordVar1.field},其中 recordVar1 是原始變數的名稱,field 是該變數上的欄位。
備註 如果您打算參照「更新記錄」元素中的變數,請在新的記錄變數中包含記錄的識別碼。雖然 Id 是唯讀,但流程會使用此值來判斷要更新哪些記錄。
範例
您有一個名為 {!myCaseVar_all} 的個案記錄變數。儲存某些唯讀欄位的值,因此您無法將它用在「更新記錄」元素中。將您想要更新的欄位複製到新的記錄變數:IsEscalated 與 Status。此外,複製識別碼,因為這是更新作業所需。這些指派規則如下所示。
| 變數 | 運算子 | 值 |
|---|---|---|
| {!myCaseVar_final.Id} | 等於 | {!myCaseVar_original.Id} |
| {!myCaseVar_final.IsEscalated} | 等於 | {!myCaseVar_original.IsEscalated} |
| {!myCaseVar_final.Status} | 等於 | {!myCaseVar_original.Status} |
相同範例適用於記錄集合變數。然而,由於您無法直接變更集合變數的值,因此您使用迴圈。流程在逐一查看原始集合中的每個項目後,便會結束迴圈。
- 透過使用「迴圈」元素,流程會將每個項目的值傳送到迴圈變數 ({!myCaseLoopVar_original})。
- 對於每個迭代,「指派」元素會將 Id、IsEscalated 和 Status 欄位從迴圈變數複製到另一個記錄變數 ({!myCaseLoopVar_final})。
- 接著流程會將 {!myCaseLoopVar_final} 的值新增至新的集合。第二個「指派」元素包含此指派規則。
變數 運算子 值 {!myCaseColl_updated} 新增 {!myCaseLoopVar_final}
此文章是否解決您的問題?
請讓我們知道,以便我們改進!

