在EBS实施中,经常遇到从外部传进来一个被登记的销售订单,需要通过程序进行销售订单的挑库发放
下面是对SO挑库发放的实现步骤的详细实现:
1. 对销售订单的有效性验证
1)检查销售订单的行是否被完全传回客户化表
2)验证销售订单的关键字段
3)检查子库存是否启用了货位控制,如果启用了货位控制,没有生成货位,则调用API生成货位
4)调用API检查子库存中的某一个物料的现用量和可用量
2. 销售订单发放
调用API进行销售订单发放
发放成功: 返回一个批号,这个批号作为挑库发放的参数
3. 销售订单挑库发放
调用API进行挑库发放
发放前 行状态:准备发放 下一步:挑库发放 判断依据:销售订单发放生成的批号作为挑库发放的参数
发放成功 行状态:已发放至仓库 下一步:处理物料搬运单 判断依据:返回一个批号,这个批号作为挑库发放的参数
发放失败 行状态:已延交 下一步:挑库发放 判断依据:未成功返回一个批号
说明:订单发放是按照整个订单发放的。
4. 处理物料搬运单
处理成功: 行状态:发运 下一步: 判断依据:返回成功的处理状态
处理成失败 行状态: 下一步:处理物料搬运单 判断依据:未返回成功的处理状态
5. 得到销售订单的交货号(delivery_id)
调用API 查看是否产生发运号
成功:返回发运号
失败:未返回发运号
6. 发运确认
处理成功 订单状态为:关闭
说明:如果发运确认已经成功,则会自动调用 连接形成停靠站 接口程序
具体实现代码
1. 对销售订单的有效性验证
调用API验证货位的代码:
调用API验证库存现用量和可用量的代码:
2. 销售订单发放
调用API进行销售订单发放的代码:
销售订单发放生成的批号作为步骤3的参数
4. 处理物料搬运单
调用API处理物料搬运单的代码:
5. 得到销售订单的交货号(delivery_id)
得到交货号的代码:
6. 发运确认
根据步骤5中返回的delivery_id确认是否进行发运确认,
如果delivery_id不为空,并且没有返回错误信息。
调用API进行发运确认的代码:
结果:通过以上步骤,可以成功的将一个外围系统导入的销售订单进行挑库发放,成功处理此销售订单,并将销售订单行的状态变成“关闭”
3. 销售订单挑库发放
调用API进行挑库发放的代码: