EBS 学习笔记 发运模块代码编写的思路

我们的项目是利用了一个stag2表,存放一些必要的物料信息,然后再APEX平台直接显示一批数据的信息,然后一起发运。

表的信息为:

object_version_number   NUMBER NOT NULL,  
  batch_id                NUMBER NOT NULL,
  ridx                    NUMBER NOT NULL,
--
  cust_po_number          VARCHAR2(240) NOT NULL,
  oe_header_id            NUMBER NOT NULL,
  oe_line_id              NUMBER NOT NULL,
  oe_line_number          NUMBER NOT NULL,
  item_id                 NUMBER NOT NULL,
  organization_id         NUMBER NOT NULL,  
  requested_quantity      NUMBER NOT NULL,
  shipped_quantity        NUMBER NOT NULL,
  subinventory_code       VARCHAR2(10),
  ship_options            VARCHAR2(20),
  location_id             NUMBER,
  lot_number              VARCHAR2(80),
  serial_number           VARCHAR2(30),
  ship_method_code        VARCHAR2(30),
  actual_departure_date   DATE DEFAULT SYSDATE NOT NULL ,
--
  created_by              NUMBER NOT NULL,
  creation_date           DATE   NOT NULL,
  last_updated_by         NUMBER NOT NULL,
  last_update_date        DATE   NOT NULL,
  last_update_login       NUMBER,
  request_id              NUMBER,
--
  process_code            VARCHAR2(30) DEFAULT 'PENDING' NOT NULL,
  error_message           VARCHAR2(2000)

而要发运的数据,有几种情况,一种是用货位号,批号控制的数据,另一种是由序列号控制的。

这个时候就要分成两种情况考虑。

第一种情况:

首先要根据stag2表的信息,在物料单中找出满足条件的物料单,循环:

                  对当前物料单的requested_qty 和  stag2表的shipped_quantity进行比较,如果小于,则将这个物料编号信息放到一个内存表中,

                 大于的话,在判断shipped_qty是否等于shipped_quantity,不等就要更新一下物料单的发运数量。存入内存表。

                如果正好等于的话,直接存入内存表

循环结束;

然后就是进行发货号的生成和分配,然后发运即可。

第二种情况:

根据header_id和line_id等信息找出满足条件的物料单,循环:

                    然后查出当前的物料单的序列号表,循环:

                              如果要发运的序列号在表中,将该条物料单放入到内存表。

                              跳出所有循环

                   循环结束;

                   如果这个物料单是要发运的物料单,则对其进行,首先将序列号清空,这里是为了之后的分行,不带有序列号,我是将物料单的发运数量=0,ordered数量=requested数量。

                   接下来分出一行来,然后对一行数据进行分配序列号,这一行就是stag2表的要发运的序列号,然后在将剩下的序列号和物料单的信息存储下来。

循环结束;

在外面做的是发运操作,但是再发运之前要为分行后的物料单分配多个序列号(如果是需要多个的话),然后再发运。


以上是我的代码逻辑,看不懂的地方请见谅,由于还有任务,不能写的太详细了。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值