Acumatica API调用AP开票按钮报错:Entity AP301000 not found
解决Acumatica API采购订单开票报错及替代方案
错误原因分析
{"message": "Entity AP301000 not found"} 报错通常源于以下几种情况:
- AP301000(账单与调整)实体未在你的实例的Default端点中启用
- 调用的
ReleaseFrom动作并非用于从采购订单生成账单的正确动作 - 当前登录用户无AP301000实体的访问权限
替代实现方案
方案1:调用采购订单屏幕的“开票”动作
采购订单的“开票”操作对应PO301000屏幕的Invoice动作,而非直接操作AP301000。使用以下API调用:
- 请求方法:POST
- 端点路径:
/entity/Default/20.200.001/PO301000/actions/Invoice - 请求体示例:
{ "entity": { "OrderType": {"value": "PO"}, "OrderNbr": {"value": "PO000123"} } }
该动作会直接从指定采购订单生成对应的AP账单,并自动关联到账单与调整模块。
方案2:直接创建关联采购订单的AP账单
如果上述动作不可用,可直接构造AP账单实体并关联采购订单行:
- 请求方法:POST
- 端点路径:
/entity/Default/20.200.001/AP301000 - 请求体示例:
{ "VendorID": {"value": "V0001"}, "DocType": {"value": "Bill"}, "DocDate": {"value": "2024-05-20"}, "Details": [ { "POOrderNbr": {"value": "PO000123"}, "POLineNbr": {"value": "1"}, "Amount": {"value": 100.00} } ] }
提交后会生成关联指定采购订单的账单,完成开票流程。
原错误排查建议
- 登录Acumatica后台,进入端点屏幕(SM207060),检查Default端点中是否启用了AP301000实体,若未启用则添加后重试
- 确认当前API用户拥有**采购订单(PO301000)和账单与调整(AP301000)**的操作权限
- 注意
ReleaseFrom动作的用途:该动作一般用于释放已创建的AP账单,而非从采购订单生成账单,因此不适合你的场景
内容的提问来源于stack exchange,提问作者Yaseen Latiff
相关产品推荐
相关产品推荐

