跳至主要內容
修改單筆資料 API
一個月前已更新

簡介

API 簡介

透過修改單筆資料 API,可以對指定的單筆資料進行修改。

附註

使用 API 新增資料時,會觸發的事件有新資料送出通知、彙總表計算&校驗、資料操作日誌、資料量統計。也可以透過請求參數來控制是否發起流程。但是不會觸發重複值校驗、必填校驗。

另外,系統欄位和以下所列舉的欄位不支援新增和修改資料:

  • 分割線

  • 手寫簽名

  • 選擇資料、查詢

  • 流水號(送出後系統生成)

API 調用

按照指定資料 ID 修改表單中的資料。

請求頻率:20 次/秒

請求方式:POST

請求參數

參數

類型

必需

說明

預設

app_id

String

應用 ID

/

entry_id

String

表單 ID

/

data_id

String

資料 ID

/

data

JSON

資料內容,其他同新建單筆資料 API,子表單需要註明子表單資料 ID

/

is_start_trigger

Bool

是否觸發智慧助手

false

transaction_id

String

事務 ID;transaction_id 用於綁定一批上傳的文件,若資料中包含附件或圖片控件,則 transaction_id 必須與“取得文件上傳憑證和上傳地址API”中的 transaction_id 參數相同。

/

請求範例

{    "app_id": "604eb6eea71d720006e1336e",    "entry_id": "604ecfca8e2ade077c72453a",   "transaction_id": "87cd7d71-c6df-4281-9927-469094395677",   //事務ID     "data_id": "6052e8072315c0075001d65e",     "data": {         "_widget_1615777739654": {             "value": "張三"         },         "_widget_1615777739673": {             "value": [                 {                         "_widget_1615777739744": {   // 未傳子表單資料ID                         "value": "張三"                     }                 },                 {                     "_id": {                         "value": "606290aba392ca00076da000"   // 錯誤的子表單資料ID                     },                     "_widget_1615777739744": {                         "value": "李四"                     }                 },                 {                     "_id": {                         "value": "606290aba392ca00076da0a9"     // 正確的子表單shujuID                     },                     "_widget_1615777739744": {                         "value": "王五"                     }                 }             ]         }     },     "is_start_trigger": true }

回應內容

參數

類型

說明

data

JSON

返回修改後的新資料,內容同查詢單筆資料 API

回應範例

{     "data": {         "creator": {             "name": "Jodoo",             "username": "Jodoo",             "status": 1,             "type": 0,             "departments": [1, 3],         },         "updater": {             "name": "小簡",             "username": "xiaojian",             "status": 1,             "type": 0,             "departments": [1, 3],         },         "deleter": null,         "createTime": "2021-03-18T05:41:27.760Z",         "updateTime": "2021-03-30T02:46:21.563Z",         "deleteTime": null,         "_widget_1615777739654": "張三",         "_widget_1616052516346": "",         "_widget_1615777739673": [             {                 "_id": "606290fd0094210006e97551",   // 未傳子表單資料ID則新建                 "_widget_1615777739744": "張三"             },             {                 "_id": "606290fd0094210006e97552",   // 傳入錯誤的子表單資料ID則新建                 "_widget_1615777739744": "李四"             },             {                 "_id": "606290aba392ca00076da0a9",   // 傳入正確的子表單資料ID則保持                 "_widget_1615777739744": "王五"             }         ],         "_id": "6052e8072315c0075001d65e",         "appId": "604eb6eea71d720006e1336e",         "entryId": "604ecfca8e2ade077c72453a",     } }

注意事項

1. 如果調用修改單筆資料 API 時未傳遞“子表單資料 ID”或者傳遞了錯誤的“子表單資料 ID”,每次調用會清空請求的那筆資料中原本的子表單資料,填入新請求的子表單資料,並給未傳遞“子表單資料 ID”或傳遞“子表單資料 ID”錯誤的子表單資料生成新的子表單資料 ID,傳遞正確的則維持原本的“子表單資料ID”不變(即重置未傳遞或傳遞錯誤的“子表單資料 ID”,調用一次重置一次),同時,還會導致在資料管理的資料日誌中記錄“子表單變更”,即使子表單內容沒有發生過任何變化。

2. 修改單筆資料 API 仍然不支援按照“子表單資料 ID”只修改子表單對應行的資料,必須整體請求和修改(如子表單中原本有三筆資料,請求參數中只寫了兩筆資料,即使這兩筆的“子表單行 ID”傳遞正確,修改後的子表單資料也只有兩筆)

如果不能理解第一條注意事項,可以參考下方範例

原本的子表單中有三行資料,結構如下:

{     "_id": "605b5f68255d4845a73d3c0a",  // <= 資料 ID     "_widget_1616600963783": "單行文字",     "_widget_1616600980550": [{         "_id": "605b5fa6255d4845a73d3c0b", // <= 子表單資料ID         "_widget_1616601008197": "子表單內的單行文字欄位值1"     }, {         "_id": "605b5fdc255d4845a73d3c0c", // <= 子表單資料ID         "_widget_1616601008197": "子表單內的單行文字欄位值2"     }, {         "_id": "605b5fdc255d4845a73d3c0d", // <= 子表單資料ID         "_widget_1616601008197": "子表單內的單行文字欄位值3"     }] }

假設在調用修改單筆資料 API 的過程中有一個子表單資料 ID 傳遞錯誤,有一個未傳遞,有一個傳遞正確,請求參數如下:

{     "data_id": "605b5f68255d4845a73d3c0a", // <= 資料 ID     "data": {         "_widget_1616600963783": {             "value": "單行文字修改"         },         "_widget_1616600980550": {             "value": [{                                                             // <= 未傳遞子表單資料ID                 "_widget_1616601008197": {                     "value": "子表單內的單行文字欄位值1修改"                 }             }, {                 "_id": {                     "value": "jodoo" // <= 傳遞了錯誤的子表單資料ID                 },                 "_widget_1616601008197": {                     "value": "子表單內的單行文字欄位值2修改"                 }             }, {                 "_id": {                     "value": "605b5fdc255d4845a73d3c0d" // <= 傳遞了正確的子表單資料ID                 },                 "_widget_1616601008197": {                     "value": "子表單內的單行文字欄位值3修改"                 }             }]         },     //... 其餘參數     }     }

那麼修改之後的資料結構如下,子表單中原本的第一、二行的資料 ID 發生變化:

{     "_id": "605b5f68255d4845a73d3c0a",  // <= 資料 ID     "_widget_1616600963783": "單行文字",     "_widget_1616600980550": [{         "_id": "605b5fa6255d4845a73d3c0e", // <= 新的子表單資料ID         "_widget_1616601008197": "子表單內的單行文字欄位值1修改"     }, {         "_id": "605b5fdc255d4845a73d3c0f", // <= 新的子表單資料ID         "_widget_1616601008197": "子表單內的單行文字欄位值2修改"     }, {         "_id": "605b5fdc255d4845a73d3c0d", // <= 子表單資料ID不變         "_widget_1616601008197": "子表單內的單行文字欄位值3修改"     }] }

是否回答了您的問題?