如何使用REST API删除自定义网格/表格中的记录?
基于契约的Acumatica REST API删除纯网格自定义记录的方法
核心说明
纯网格结构(无主记录)的自定义表记录,删除操作优先使用DELETE请求,无需特殊语法的PUT(除非DELETE不可用),以下是具体操作步骤及注意事项:
1. 确认契约配置
- 在Acumatica的契约编辑器中,确保自定义表对应的DAC已添加到契约,且勾选了该实体的
Delete操作权限。 - 确保实体的主键字段(如自定义的
RecordID)已包含在契约的字段列表中,Acumatica依赖主键定位要删除的记录。
2. 构造DELETE请求
- URL格式:
https://<你的Acumatica实例地址>/entity/<契约名称>/<契约版本>/<自定义实体名称>/<记录主键值>
示例:若契约名为CustomInventory、版本1.0、实体WarehouseBin,主键值为BIN000123,则URL为:https://acumatica-instance.com/entity/CustomInventory/1.0/WarehouseBin/BIN000123 - 请求方法:
DELETE - 请求头:需包含认证信息(如
Authorization: Bearer <访问令牌>)和Content-Type: application/json
3. 替代方案:用PUT标记删除(当DELETE不可用时)
如果契约未启用DELETE权限,或需要批量处理删除,可以通过PUT请求将记录的系统字段Deleted设为true:
- 请求URL:同DELETE请求的URL
- 请求方法:
PUT - 请求体示例:
{ "RecordID": "BIN000123", "Deleted": true }
4. 常见问题排查
- 检查DAC的主键标记:自定义DAC需用
[PXPrimaryKey]属性标记主键字段,否则Acumatica无法正确识别定位记录。 - 验证权限:API访问用户需拥有自定义屏幕的删除权限,以及对应契约的访问权限。
- 确认主键值匹配:URL中的主键值需与记录的实际主键完全一致,字符串类型主键需注意大小写和特殊字符转义。
内容的提问来源于stack exchange,提问作者pmfith
相关产品推荐
相关产品推荐

