EBS 第一个项目 学习总结 ---- 发运模块

EBS 组织架构:

(一)业务组(BG)

(二)法律实体(LE)

(三)业务实体(OU)

(四)库存组织(INV)

(五)公司成本中心(Cost Center)

(六)HR组织

(七)多组织接入控制

Sale Order 销售订单  的  Ship Confirm 发运功能模块:

在做状态变化时候要记得对WHO字段进行状态的修改。

必要表的信息:

oe_order_headers_all 订单头信息表

oe_order_lines_all

--header_id=oe_order_headers_all.header_id

--订单行信息表

这里面有一个概念:

比如

ORDER_NUMBER  订单编号  为 101852

这里有两个订单头。

HEADER_ID:A                          HEADER_ID:B

而LINE_NUMBER的概念就是在这两个订单里,属于同一行的 如下:

HEADER_ID:                        A                      B

LINE_NUMBER:1           LINE_ID:A1          LINE_ID:B1

LINE_NUMBER:2           LINE_ID:A2          LINE_ID:B2

LINE_NUMBER:3           LINE_ID:A3          LINE_ID:B3

销售订单是这样一种逻辑关系。

oe_order_headers_all 中的重要字段:

HEADER_ID                  订单头id

REQUEST_ID 并发请求的id

ORG_ID 业务实体的id

SHIP_TO_ORG_ID 收货方组织id

SHIP_FROM_ORG_ID 发货方组织id

oe_order_lines_all中的重要字段

HEADER_ID 订单头id

REQUEST_ID 并发请求的id

ORG_ID 组织的id

LINE_ID 订单行id

LINE_NUMBER 订单行number

SHIP_TO_ORG_ID 收货方组织id

SHIP_FROM_ORG_ID 发货方组织id

wsh_delivery_details

--source_header_id=oe_order_headers_all.header_id

--source_line_id=oe_order_lines_all.line_id

物料发运明细信息表

DELIVERY_DETAIL_ID 物料单的id

SOURCE_HEADER_ID 订单头id

SOURCE_LINE_ID 订单行id

CUSTOMER_ID 客户id

INVENTORY_ITEM_ID 对应物料表的物料id

ORGANAZATION_ID 库存组织的id

REQUESTED_QUANTITY 请求的数量

SHIPPED_QUANTITY 发运的数量

SUBINVENTORY 子库存的名称

RELEASED_STATUS 当前物料的状态

ORG_ID 业务实体的id

REQUEST_ID 并发请求的id

LOCATOR_ID 库存中货位号

LOT_NUMBER 物料的批号

wsh_delivery_assignments

--delivery_detail_id=wsh_delivery_details.delivery_detail_id

--连接wsh_delivery_details和wsh_new_deliveries的信息表

--此阶段连接wsh_delivery_details

DELIVERY_ID 发货号

DELIVERY_DETAIL_ID 物料id

mtl_serial_numbers

记录物料序列号的当前状态的信息表

INVENTORY_ITEM_ID 物料id

SERIAL_NUMBER 序列号

mtl_serial_numbers_temp

序列号和物料单的对应表

由transaction_temp_id进行关联

发运模块,可以理解为将保留库中的物料拿出来进行发货,发运确认完成则代表这物权的转移。发运中的延交情况很多,比如当你要发货的物品数量不足以满足买方的数量,则可以延迟交货,等到数量满足了一起交货。

做发运模块主要是当物料挑库完成后,得到一堆物料单,然后为每一个物料单生成物料号,物料号是为了让发运时知道,该发运哪些物料,物料号的生成有多种情况。

发运模块的界面操作:

登录,找一个具有订单管理职责。进入到 事务处理中。

可以根据ORDER NUMBER 销售订单的号码进行查询。

这里的每一条都对应一个物料单。

Detail是物料编号

Item Name是物料的名称。

Delivery是物料的发货号

Line Status 是 物料的当前状态,状态是Staged/Pick Confirm状态是要进行发运的。

Next Step 是 物料的下一个状态

Order 是订单编号

Requested Qty 是 需要的数量

Shipped Qty 是 要发运的数量

BackOrdered Qty 是要延交的数量

Serial Number 是序列号 序列号不是必须的,如果物料启动了序列号控制才会有,Org Code 是当前的库存组织, subinventory 子库存

如果想要发运的话 必须要分配物料号,

在这里选择操作,当前自己知道的就是只有 :

Split Line 分行,当启动序列号的时候,分行规则暂时不了解,但是会自动给分出来的行分配之前有的序列号。

Lauch Pick Release 自动挑库,这个操作可以对Backordered或 Ready to Release 的进行挑库,这个时候会自动为这个物料单进行挑库,并且分配发货号。

挑库,可以理解为,将自己库存中的物料发放到保留库中,保留库中的物料是以后不能被动的,以为他们已经都分配完了,等待发运。而库存中的物料是还可以分配的。

Auto-create Deliveries 自动分配物料发货号

对于图中蓝字那行的,这个时候可以进行发运,进入Delivery界面,

点击Ship Confirm,进行发运。

这里要进行一些说明,

ShipConfirm Rule 里的是当前系统已经定义好的发运规则,

这里的 点击Ship Entered Quantities ,在右面选择你要对未知的数量的物料的发运方式,

例如 Requested Qty = 10 shipped qty = 5 backordered qty = 3 ,那么未知数量就是2

如果选择ship,则对未知的数量2的进行发运操作,就是发运7个,延交3个

如果选择Backorder,则对未知的数量2进行延交操作,就是发运5延交5

如果选择Stage,则对未知的数量归回到Staged/Pick Confirm状态。这个配合下面的

如果勾选,则对于回到Staged/Pick Confirm状态的自动分配发货号。

如果选择Cyclecount ,则对未知数量的物料回归到Staged/Pick Confirm状态,并且shipped Qty数量为空。

Ship All就是将所有的物料都发运。其他的也一样意思。

这里要注意,发运后的物料单还要做一个 Trip Stop 停靠站操作,才算发运成功,这个业务暂时还不清楚是什么意思。

代码实现上远远比界面复杂的多,首先要介绍几个用到的API。

wsh_deliveries_pub.delivery_action(p_api_version_number => 1.0,
                                       p_init_msg_list      => fnd_api.g_true,
                                       x_return_status      => lv_return_status,
                                       x_msg_count          => ln_msg_count,
                                       x_msg_data           => lv_msg_data,
                                       p_action_code        => 'CONFIRM',
                                       p_delivery_id        => 104483,
                                       p_delivery_name      => 104483,
                                       p_sc_action_flag     => 'C',
                                       p_sc_close_trip_flag => 'Y',
                                       x_trip_id            => ln_trip_id,
                                       x_trip_name          => lv_trip_name);

这里的传入参数,可以有:

P_action_code 有很多值:

'PLAN','UNPLAN','PACK','CONFIRM',
'RE-OPEN','IN-TRANSIT','CLOSE', 'ASSIGN-TRIP','UNASSIGN-TRIP','AUTOCREATE-TRIP', 'WT-VOL', 'PICK-RELEASE', 'DELETE'

我知道的只有,

--RE-OPEN   让status处于重新打开状态

--DELETE    删除物料号

--CONFIRM 进行Ship Confirm操作 其实对应的是下图的Ship confirm,和Actions内的操作:

p_sc_action_flag  : ship confirm option - 'S', 'B', 'T', 'A', 'C'
这个就相当于

S 是 Ship    B是backorder   T是stag   C是CycleCount A是Ship All

而其他参数如   :

p_sc_intransit_flag : 是 图上的 Set Delivery In-transit 是否勾选, Y 是 N 否

p_sc_close_trip_flag:是 图上的 Close Trip是否勾选, Y 是 N 否

p_sc_stage_del_flag:是 图上的 Create Delivery for Staged Quan..是否勾选, Y 是 N 否

p_sc_trip_ship_method:是 图上的 Ship Method 输入的varchar2 类型,可以为null

p_sc_actual_dep_date: 是图上Actual Departure Date ,null 则自动赋值为当前时间

p_sc_defer_interface_flag:图上 Defer Interface是否勾选,Y 是 N 否

其他API将单开文章讲解。如果有不对的地方希望大家评论给予建议,谢谢。

时间: 2024-08-04 11:58:04

EBS 第一个项目 学习总结 ---- 发运模块的相关文章

网上图书商城项目学习笔记-012BOOK模块查询2

一.分析 > 按图名查询(模糊)(分页)> 按作者查询(分页)> 按出版社查询(分页)> 按id查询> 多条件组合查询(分页) 二.代码 1.view层 (1)gj.jsp等 1 <form action="<c:url value='/BookServlet'/>" method="get"> 2 <input type="hidden" name="method"

自我总结(六)---(学习j2ee+j2ee第一阶段项目)

自我完善的过程就是在不断的自我总结不断的改进. 学习了Struts2 Spring Hibernate. 十天前结束了这个课程.也考试了.这次考试老师说机试考的还不错.其实就是一个简单的用户登录,进行一个增删改的功能.因为实在元旦过后来就考试嘛!我是在元旦期间的时候也做了增删改的一个作业.所以在考试的时候也就快一些.但是在考试的时候也遇到一个问题,由于少导入了一个包,我的验证就不行了.我把这样写的运用到我后面的项目区就完全不行了.这是我最搞不明白的事.笔试题刚刚及格.课程结束了. 但是对于ssh

Cocos2dx 学习笔记整理----第一个项目

接上一节, 进入新建的项目下面的proj.win32下面,找到项目名.sln文件(我的是game001.sln),双击会通过VS2010打开.(当然,你装了VS什么版本就是什么版本) 将你的项目设为启动项目, 切换到解决方案视图, 然后邮件点击解决方案, 选择生成解决方案. 第一次生成根据个人机器性能会消耗大概1-3分钟,呵呵. 但是以后会快很多的. 生成成功的话会在输出窗口显示如下: 一般都会生成成功,但是我生成的时候失败了很多次,后来发现是这个问题:http://www.cnblogs.co

VB的第一个项目(一)

 前言-----本人也是刚刚接触VB,企业的VB代码基本能看的懂,但是自己开发,只能呵呵.一般在刚学习一门新的语言时,很容易发生一些自己相当然的认识错误,so,记下并分享开发学习的过程,望指正.-----------世界因分享而精彩,安卓因开源更强大.  不知道是否有人和我一样,看不下去那些VB的书籍,既然这样,不如就在项目中学习,我在学习java的时候做的第一个项目就是---fuck的学生信息管理系统,屁话说了一大堆,直接开始. 首先对这个little的project进行一下分析,就很不正式的

【3】Django创建第一个项目

天地所以能长且久者,以其不自生,故能长生. --老子<道德经> 写在前面:Django在学习的过程中,我们会参考官方文档,从两部分进行讲解,第一部分主要是一个入门项目的搭建开发,第二部分是核心的讲解.过程中可能会有一些配置或者技术点不会明确的讲解,入门项目要求是能写出代码.能跟着文档写出项目,能了解项目即可.其余的后续章节中会有详细介绍,此时~不用恐惧不用害怕不用担心,某些细节问题我们暂时可以不求甚解! 本节内容 项目结构了解 创建第一个项目 运行并访问我们的项目 1. Django创建项目的

Python Flask高级编程之从0到1开发《鱼书》精品项目 学习 教程??

Python Flask高级编程之从0到1开发<鱼书>精品项目 学习教程 一 .安装环境我们使用 flask web框架,并用 sqlalchemy来做数据库映射,并使用 migrate做数据迁移. $ pip install flask $ pip install SQLAlchemy==0.7.9 $ pip install flask-sqlalchemy $ pip install flask-migrate$ pip install sqlalchemy-migrate 二.建立项目

[Asp.net MVC]Asp.net MVC5系列——第一个项目

目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐此不彼.谁让咱喜欢编程呢?之前接触过ASP.NET MVC4,今天在看发现差别还是有的,不管是使用IDE创建方式,还是使用方式有些地方的确不一样了.手上也没有ASP.NET MVC5的教程,只能看着英文网站,一步一步摸索了.其实我是一直想使用mvc,可事与愿违啊,到目前还是使用的webform. 创

&lt;转&gt;从Java转iOS第一个项目总结

从Java转iOS第一个项目总结 阅读目录 0.前言 1.项目介绍 2.项目使用的第三方开源库 3.工具和插件介绍 4.集成友盟 5.即时通讯 6.项目总结 0.前言 本人14年12月份,从网站开发组转到了移动开发组,自己的java两年半工作经验变成了object-c零经验.2015年1月份新启动了一个移动项目,年后因为人事变动,自己从辅助开发变成了"核心"开发,目前项目基本接近尾声,下面进行总结,希望对一些人能有帮助, 另外也希望ios大牛进行指导 回到顶部 1.项目介绍 项目属于一

成长日记--记录在WB的第一个项目。

具体为什么跑去外包,只能说自己太水了,或者太懒了,都不好好投简历,也没入这个坑过,如果有想去外包的,除非钱给到市场价的1.5倍以上,否则别考虑了. 项目是国内第一做通信公司的,从具体的需求说起比较好,不,还是要从一个坑货项目经理说起,说起这个项目经理,不得不服他,测试出身,来带我们这个开发团队,开发团队里很多大牛的,HW的工作5年+三星工作3年的,HW工作10+的,ZX工作8+的,ZX工作10+的,HW工作到退休的,具体就不一一说了,反正团队的能力毋庸置疑,但是这个项目经理完全不懂开发,不知道什