修改單筆資料 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修改"
    }]
}

這項資訊有幫助嗎?
需要更多協助嗎?聯繋技術支援。