Skip to content

单号生成器

getDocumentNo

通过后台配置的业务单号生成规则生成单据编号。

语法:

js
getDocumentNo(payload, options, callBack)

参数:

参数名类型必填说明
payloadObject业务参数
optionsObject扩展配置参数
callBackFunction回调集合

payload 参数说明:

参数名类型必填说明
config_codestring单号配置标识 KEY
biz_datestring单据业务日期
at_idstring账套 ID

options 参数说明:

参数名类型必填默认值说明
retrynumber3失败重试次数;设为 0 则不重试
alert_titlestring系统繁忙内置弹窗标题
alert_textstring系统繁忙,请稍候重试内置弹窗提示文案
alert_offbooleanfalse是否关闭内置弹窗;true = 不弹窗

callBack 参数说明:

参数名类型必填说明
getDataFunction获取回调数据
successFunction成功回调(需自行处理返回数据)
errorFunction失败回调
completeFunction完成回调

示例:

基础用法
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_nostring最终生成单据编号
config_codestring单号配置 KEY
biz_datestring传入的单据日期
at_idstring传入的账套 ID

注意事项

  1. config_code 需要提前在后台系统完成配置,否则无法生成单号;
  2. biz_date 推荐统一使用 yyyy-MM-dd 标准日期格式;
  3. at_id 为账套标识,一般取自当前登录环境账套信息;
  4. 默认失败自动重试 3 次,可根据业务场景调整 retry 参数;
  5. 设置 alert_off:true 可关闭系统内置弹窗,由开发者自定义异常提示;
  6. 业务保存前建议判断单号是否存在,避免重复调用生成接口。

基于 MIT 许可发布