Appearance
单号生成器
getDocumentNo
通过后台配置的业务单号生成规则生成单据编号。
语法:
js
getDocumentNo(payload, options, callBack)参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| payload | Object | 是 | 业务参数 |
| options | Object | 否 | 扩展配置参数 |
| callBack | Function | 是 | 回调集合 |
payload 参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| config_code | string | 是 | 单号配置标识 KEY |
| biz_date | string | 是 | 单据业务日期 |
| at_id | string | 是 | 账套 ID |
options 参数说明:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| retry | number | 否 | 3 | 失败重试次数;设为 0 则不重试 |
| alert_title | string | 否 | 系统繁忙 | 内置弹窗标题 |
| alert_text | string | 否 | 系统繁忙,请稍候重试 | 内置弹窗提示文案 |
| alert_off | boolean | 否 | false | 是否关闭内置弹窗;true = 不弹窗 |
callBack 参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| getData | Function | 否 | 获取回调数据 |
| success | Function | 否 | 成功回调(需自行处理返回数据) |
| error | Function | 否 | 失败回调 |
| complete | Function | 否 | 完成回调 |
示例:
基础用法
js
// 业务参数
var payload = {
config_code: "SALES_ORDER", // 单号配置标识
biz_date: "2025-02-02", // 单据业务日期
at_id: "1001" // 账套 ID
};
// 回调方法
var callBack = {
getData: (res) => console.log("单号生成成功:", res),
error: (e) => console.log("失败", e),
complete: (e) => console.log("完成", e)
};
// 调用生成单号
var orderCode = getDocumentNo(payload, {}, callBack);
console.log("生成的单号:", orderCode);自定义重试次数
js
var payload = {
config_code: "PURCHASE_ORDER",
biz_date: "2025-02-02",
at_id: "1001"
};
var options = {
retry: 5,
alert_title: "生成单号失败",
alert_text: "单号生成失败,正在重试...",
alert_off: false
};
var callBack = {
success: (data) => console.log("单号生成成功:", data)
};
getDocumentNo(payload, options, callBack);静默模式(关闭内置弹窗,自行处理异常提示)
js
var payload = {
config_code: "INVENTORY_CHECK",
biz_date: "2025-02-02",
at_id: "1001"
};
var options = {
retry: 0,
alert_off: true
};
var callBack = {
success: (data) => console.log("单号生成成功:", data),
error: (error) => console.log("单号生成失败:", error)
};
getDocumentNo(payload, options, callBack);表单保存场景(不存在单号则自动生成)
js
var document_no = getValueById("document_no");
if (!document_no) {
var payload = {
config_code: "SALES_ORDER",
biz_date: getDateVal("biz_date", "yyyy-MM-dd"),
at_id: getValueById("at_id")
};
var options = {
retry: 3,
alert_off: false
};
var call_back = {
success: (data) => act_saveData(),
error: (error) => console.log("单号生成失败:", error)
};
getDocumentNo(payload, options, call_back);
} else {
// 已有单号,直接执行保存
act_saveData();
}
// 执行单据保存
function act_saveData() {
var saveData = {
document_no: getValueById("document_no"),
customer_id: getValueById("customer_id"),
total_amount: getValueById("total_amount")
};
runCommand(getPageId(), "SAVE_SALES_ORDER", saveData, {}, {}, {
getData: () => console.log("保存成功"),
error: (error) => console.log("保存失败:", error),
complete: () => console.log("保存完成")
});
}返回值说明
成功回调 data 对象字段:
| 属性名 | 类型 | 说明 |
|---|---|---|
| document_no | string | 最终生成单据编号 |
| config_code | string | 单号配置 KEY |
| biz_date | string | 传入的单据日期 |
| at_id | string | 传入的账套 ID |
注意事项
config_code需要提前在后台系统完成配置,否则无法生成单号;biz_date推荐统一使用yyyy-MM-dd标准日期格式;at_id为账套标识,一般取自当前登录环境账套信息;- 默认失败自动重试 3 次,可根据业务场景调整
retry参数; - 设置
alert_off:true可关闭系统内置弹窗,由开发者自定义异常提示; - 业务保存前建议判断单号是否存在,避免重复调用生成接口。