Sage X3中修改SPEPTR脚本以包含全类别码头位置的方法
修改Sage X3 SPEPTR脚本,实现全类别码头位置选择
1. 定位位置过滤的核心代码块
打开SPEPTR脚本,找到控制**码头位置(emplacement quai)**选择的代码段——通常会出现在这几个地方:
- 调用位置选择弹窗的
SEL函数附近 - 查询库存位置表
LOCSTK的SQL语句里 - 定义位置筛选范围的变量赋值部分
2. 针对性修改过滤条件
情况1:SQL语句中的类别过滤
原代码大概率会包含类似的WHERE子句(FAMLOC是位置类别字段,RECEIVE为“待入库”类别的标识,以你系统实际值为准):
SELECT LOCCOD FROM LOCSTK WHERE FAMLOC = 'RECEIVE' AND ...
直接删除FAMLOC = 'RECEIVE'这个过滤条件,修改后:
SELECT LOCCOD FROM LOCSTK WHERE ...
情况2:SEL选择器函数中的过滤
如果是通过SEL函数调用位置选择弹窗,原代码可能是:
SEL LOCSTK WHERE FAMLOC = 'RECEIVE'
去掉后面的WHERE FAMLOC = 'RECEIVE'限制,修改为:
SEL LOCSTK
若有其他必要的筛选条件,保留即可,只移除类别限制。
情况3:变量控制的过滤范围
如果脚本通过变量预先定义了位置类别范围,比如:
LET v_famloc = 'RECEIVE'
直接将变量值改为空字符串,取消类别限制:
LET v_famloc = ''
Sage X3中空值会匹配所有类别的位置记录,确保后续使用该变量的逻辑不会报错。
3. 测试验证修改效果
保存脚本后,在对应业务界面(比如收货单、入库单)测试:
- 点击码头位置选择按钮,确认是否显示所有类别的位置
- 选择不同类别的位置并保存,验证后续业务流程无异常
注意事项
- 修改前务必备份原SPEPTR脚本,避免出错无法回滚
- 若脚本后续有依赖“待入库”类别的逻辑(如库存状态校验),需同步检查调整,防止出现业务异常
内容的提问来源于stack exchange,提问作者lina mehdioui
相关产品推荐
相关产品推荐

