修改單筆資料 API調試
簡介
API 簡介
透過修改單筆資料 API,可以對指定的單筆資料進行修改。
附註:
使用 API 新增資料時,會觸發的事件有新資料送出通知、彙總表計算&校驗、資料操作日誌、資料量統計。也可以透過請求參數來控制是否發起流程。但是不會觸發重複值校驗、必填校驗。
另外,系統欄位和以下所列舉的欄位不支援新增和修改資料:
- 分割線
- 手寫簽名
- 選擇資料、查詢
- 流水號(送出後系統生成)
API 調用
按照指定資料 ID 修改表單中的資料。
請求地址:https://api.jodoo.com/api/v5/app/entry/data/update
請求頻率: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修改"
}]
}