如何通过SuiteScript/RESTlet创建不关联账单的供应商预付账款记录?
如何用SuiteScript或RESTlet创建无关联账单的供应商预付账款记录
可以通过SuiteScript或RESTlet实现创建不关联账单的供应商预付账款(Payment on Account)记录,具体实现方式如下:
SuiteScript 实现(以2.x为例)
使用record.create()方法创建供应商付款记录,核心是不设置apply子列表数据,仅填写供应商、付款账户、金额等必填字段即可生成无关联账单的预付账款。
示例代码:
/** * @NApiVersion 2.x * @NScriptType UserEventScript */ define(['N/record'], function(record) { function createVendorPrepayment() { try { var vendorPaymentRec = record.create({ type: record.Type.VENDOR_PAYMENT, isDynamic: false }); // 设置供应商ID vendorPaymentRec.setValue({ fieldId: 'entity', value: 123 // 替换为实际供应商内部ID }); // 设置付款账户(如银行账户) vendorPaymentRec.setValue({ fieldId: 'account', value: 456 // 替换为实际账户内部ID }); // 设置付款金额 vendorPaymentRec.setValue({ fieldId: 'payment', value: 1000.00 }); // 设置备注(可选) vendorPaymentRec.setValue({ fieldId: 'memo', value: '无关联账单的供应商预付账款' }); // 保存记录 var recId = vendorPaymentRec.save({ enableSourcing: true, ignoreMandatoryFields: false }); log.debug('预付账款创建成功', '记录ID: ' + recId); return recId; } catch (e) { log.error('创建预付账款失败', e.message); throw e; } } return { // 可根据需求绑定到对应事件,或作为独立函数调用 afterSubmit: createVendorPrepayment }; });
RESTlet 实现
通过REST API的POST请求创建供应商付款记录,同样不包含apply字段即可生成无关联账单的预付账款。
请求示例(JSON格式):
POST /services/rest/record/v1/vendorpayment Headers: Content-Type: application/json { "entity": 123, // 供应商内部ID "account": 456, // 付款账户内部ID "payment": 1000.00, "memo": "无关联账单的供应商预付账款" }
注意事项:
- 确保脚本或API调用拥有
vendorpayment记录的创建权限 - 替换示例中的内部ID为系统实际存在的供应商、账户ID
- 若需处理多币种,需额外设置
currency等相关字段
内容的提问来源于stack exchange,提问作者Curious Explorer
相关产品推荐
相关产品推荐

