OSP订单拆分详细设计1217docWord格式.docx
- 文档编号:18641597
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:18
- 大小:120.93KB
OSP订单拆分详细设计1217docWord格式.docx
《OSP订单拆分详细设计1217docWord格式.docx》由会员分享,可在线阅读,更多相关《OSP订单拆分详细设计1217docWord格式.docx(18页珍藏版)》请在冰豆网上搜索。
为了区分新旧OSP系统的数据,新系统能兼容老数据,对OSP中以前的订单信息切换前批量手工处理一下,将其拆分订单号,统一为订单号+0000。
制造订单号生成逻辑
1、拆分订单的所有行的发运集、产品编码、局点之一或全部更改,拆分订单号不变,但相关信息(发运集、产品编码、局点)在OSP中变化。
2、拆分订单的部分行的发运集、产品编码、局点之一或全部更改,该拆分订单将再拆分成几部分,如果有些行的发运集、产品编码、局点均没有变化,则这些部分即使能合并到其他定单中去,也不合并,保留定单号不变,其他变化部分按变化多少(发运集、局点、产品变化的个数,非行数),来排序处理,如果能合并到其他不需拆分的订单中去则合并,如过不能合并,则判断能否合并到其他需要拆分的订单中的某部分去,都不能则判断是否已保留过订单号,没有则保留此订单号,否则生成新的订单号。
3、SalesOrder在osp中曾经拆分过,如有新的可执行的行(Releas/Book+NotHold),则能合并到已拆分的订单中去则合并,不能合并的则生成新的拆分订单
4、SalesOrder在osp中未拆分过,对可执行的行(Release/Book+NotHold),按发运集+产品+局点分组,拆分成制造订单,订单号的排序为各制造订单中的最小行(line_number)在前的排在前。
订单行排序与层次
从11I中下载订单行时,按Line_Number+Option_Number+0排序,对KIT项目,则排在它所对应的父项目下(Line_Number+nvl(Option_Number,父项Option_Number)+1,OSP不下载配置项目,ATOOLS使用视图,将任务令挂到生成任务令的原订单行。
订单ITEM的层次:
FLEVEL:
根据COMPONENT_CODE计算,其中OSP中对无COMPONENT_CODE的和KIT项目,加工维护好COMPONENT_CODE,方法是,无层次的行的COMPONENT_CODE的取INVENTORY_ITEM_ID,对于KIT的INCLUDE项目,取INCLUDE所属的KIT项目的COMPONENT_CODE+’-‘+INCLUDE的INVENTORY_ITEM_ID为INCLUDE的COMPONENT_CODE,FLEVEL按COMPONENT_CODE中项目的个数计算层次,无父项为1,有一个父项为2,依次类推。
订单显示层次DISPLAY_LEVEL,11I中的定单行序号,OSP中下载事自动计算,可能与ERP中有误差,但第一位肯定不会错,因为是取LINE_NUMBER:
Flevel为1的:
Line_Number+’.’+序号
Flevel为2的:
Line_Number+’.’+序号+’.’+序号
Flevel>
2的:
Line_Number+’.’+序号+’.’+序号(一直顺序变号)
Config项目的Display_Level为父项的Display_Level.
订单拆分算法:
拆分一个订单处理流程
自动下载可倒入OSP系统的订单
下载时系统根据记录在PROCESS_RECORD表中的一记录,PROCESS_NAME=’SP_GET_SPLIT_ORDER’的LAST_RUN_DATE,作为本次提取到OSP系统的销售订单的时间段起点START_DATE,截至点END_DATE为当前数据库系统时间减30分钟。
即OSP自动处理的销售订单晚为为:
订单行的Release为START_DATE到END_DATE之间的订单号和订单BOOK时间为START_DATE到END_DATE之间的且没有被HOLD的订单号,如果HOLD了,则需要RELEASE.
OSP逐个订单下载判断和拆分。
手工指定订单号下载或通过订单更改下载拆分不受上述时间段的约束,但订单中也须
含有可执行行,订单状态为BOOK,否则拆分不出订单来。
订单下载拆分以销售订单号为单位,一个销售订单有部分行可执行,拆分时是以整个订单为单位,全面下载判断和拆分更新。
拆分与订单拆分更改为同一过程,拆分过程中同时分解订单底层物料需求和取特殊物料:
过程名:
PROCEDURERe_Split_A_Order(P_Header_IdNUMBER)
1、执行过程:
Down_Order_Lines(p_Header_Id)
下载订单行到临时表Order_Lines_All_Tmp
在插入临时表前,对提取的数据进行加工。
加工有:
补充填写ShipSet,产品、包装指令信息,加工11i中显示行号(DisplayLevel),加工COMPONENT_CODE.
因ERP中有关信息不是每一行都有,如产品编码可能只在PTO项目有,所以只能对在下载时加工,加工的原理为,所有挂在同一top_model_line_id(1.12.13.1等顶层项目)下的其他所有子项,继承顶层的发运集、产品编码、包装指令信息。
2、从Order_Lines_All_Tmp提取有关字段信息到差异信息表(Order_Ship_Set_Diff)
Line_id、Item、发运集、产品、数量、备注
本表主要提供拆分处理(与Order_Lines_All_Tmp配合使用)
从制造订单行Order_Lines_all表更新差异信息表中已拆分过的订单信息:
原订单号、发运集、产品、数量,以便比较和更新处理
3、执行过程:
Get_Exec_Order_Lines(p_header_id);
根据可执行订单条件(Release/BookWithoutHold)更新差异信息表订单行可执行标志
4、更新不需拆分但订单产品局点发运集变化的订单头信息
订单行中的shipset、产品、包装指令等不是部分行更改,而是所有行更改,则拆分订单不变,拆分订单行、订单头信息需要更新。
5、对不需要再次拆分的制造订单做标记WO_UPDATED_FLAG='
Y'
对需要再次拆分的制造订单做需要更新标记Wo_Updated_Flag='
N'
6、对订单行的更改纬度计数,(更改纬度是指发运集、产品、局点等三个影响订单号的信息的更改情况,改动一个则为1、改两个为2),对纬度统计是为了便于将原制造订单号保留给更改纬度小的订单行。
7、对每个需要再次拆分的已拆分制造订单进行处理。
(处理逻辑详见流程图)
需要再次拆分的制造订单是指制造订单中部分行的更改纬度变化,导致一些行需要分离出来形成新的订单或合并到其他订单中去。
它与订单中新的可执行行的拆分逻辑有所不同。
其拆分逻辑如下:
7.1对需再次拆分制造订单中的行按发运集、产品、包装指令进行分组,同时按更改纬度+分组中包含的最小订单行号Line_Number排序。
7.2对已排序的各分组进行处理。
7.2.1如果分组没有纬度更改(如果有,排在第一位),则保留原制造订单号给这些行,并更新制造订单头的拆分更新日期。
7.2.2如果分组的更改纬度大于0,则要尽可能地合并到其他制造订单中去。
合并逻辑分两步,先判断能否合并到不需再拆分的制造订单中,能合并则在行的NOTE_UPD中追加“OLD_WO=xxx”字样。
不能则看能否合并到需要再次拆分的制造订单中去,还不能合并则考虑保留订单号或生成新的制造订单。
7.2.3如果订单不能合并,且本制造订单没有被保留给以前的优先分组,则本分组可保留原制造订单号,否则需要生成新的制造订单。
8对新的可执行行进行订单拆分处理
8.1如果能合并到不需再拆分的制造订单中去,则合并,并更新已拆分的订单头信息,
订单行标注为新增行,在行的NOTE_UPD中追加“NEW_LINE=yyyymmddhhmiss”字样。
8.2如果不能合并,则产生新的订单号。
9、更新Order_Lines_All原来下载拆分过的订单行,但已erp中又修改变化
9.1更新SHIP_SET的变化,在行的NOTE_UPD中追加“OLD_SET_ID=xxx”字样。
9.2更新数量的变化,在行的NOTE_UPD中追加“OLD_QTY=xxx”字样。
9.3更新产品的变化,在行的NOTE_UPD中追加“OLD_CP=xxx”字样。
9.4更新局点的变化,在行的NOTE_UPD中追加“OLD_JD=xxx”字样。
9.2更新备注的变化,在行的NOTE_UPD中追加“OLD_NOTE=(略)”字样。
10、根据差异表实际更新Order_Lines_All订单号、原订单号
11、根据Order_Lines_All_Tmp和差异表信息插入新拆分的订单行到Order_Lines_All
12、对PTO定单行备注有变化的拆分订单,更新订单头备注
update_wo_headers_notes(r_Pto_Line_Notes.wo_number);
13、更新有计划时间变化的计划时间Update_Ship_Date(p_Header_id);
14、提取特殊物料Get_Special_Lines(P_Header_Id);
15、更新由于拆分订单号变化,导致任务令与订单号关联不对,纠正过来
Update_Osp_Wo_Number(p_Header_id);
16、对定单行有变化的拆分订单,重新分解地层物料
Re_Extract_Order_Lines(p_Header_id);
17、清除临时表数据:
DELETEFROMOrder_Lines_All_TmpWHEREheader_id=p_Header_Id;
DELETEFROMOrder_Ship_Set_DiffWHEREheader_id=p_Header_Id;
完成拆分
2.附录B数据对象
1)制造订单头表(Order_Headers_All)
名称
名称含义
类型
说明
WO_NUMBER
工作订单号
NUMBER
新增(现主键)
SET_ID
发运集ID
新增
SET_NAME
发运集名称
VARCHAR2(30)
HEADER_ID
订单号ID
原有(原主键)
ORDER_NUMBER
订单号
NOTNULL
DATE_ORDERED
下单日期
DATE
DATE_REQUESTED_CURRENT
要求完成日期
CUSTOMER_ID
客户代码
SALESREP_ID
销售员工号
SHIP_TO_SITE_USE_ID
发货地址代码
PURCHASE_ORDER_NUM
合同号
VARCHAR2(50)
SHIP_METHOD_CODE
货运方式
PACKING_INSTRUCTIONS
包装指令
VARCHAR2(240)
ATTRIBUTE5
原合同号
VARCHAR2(150)
ORDER_ASSEMBLY_DEPT
订单制造部门
PRODUCT_CODE
产品代码
VARCHAR2(20)
ZZ_CCDPWC_DATE
CCDP总装要求完成日期
ZZ_SJWC_DATE
总装实际完成日期
WIP_CCDPFL_DATE
ATO要求开始分料日期
WIP_SJFL_DATE
ATO实际分料日期
WIP_CCDPWC_DATE
ATO要求完成日期
WIP_PROMISE_DATE
ATO承诺完成日期(作业岛)
WIP_SJWC_DATE
总测实际完成日期
WIP_ASSEMBLY_DEPT
作业岛
WIP_OPERATOR
调测员
POC_YL_DATE
POC预留日期
POC_CCDPFL_DATE
POC要求分料日期
POC_SJFL_DATE
POC实际分料日期
HT_WLQT_DATE
合同物料齐套日期(匹配成功
ORDER_CCDPPACK_DATE
要求包装日期
ORDER_PACK_DATE
实际包装日期
ORDER_PROMISE_SHIP_DATE
承诺发货日期DATE4
ORDER_SHIP_DATE
实际发货日期
ZZ_SJJD_DATE
总装实际接单
ZZ_ASSEMBLY_DEPT
总装装配岛
FHQLFLAG
发货欠料标志
VARCHAR2
(1)
HT_SERIAL_NUMBER
合同序号
POC_QT_DATE
POC齐套时间
WIP_CREATE_DATE
任务令创建时间
NOTE
备注
VARCHAR2(4000)
ORDER_TYPE_ID
订单类型ID
ORDER_TYPE_NAME
订单类型
WAREHOUSE_ID
组织
ORDER_PACK_DEPT
包装岛
MEASURE_UNIT
单位
WIP_SJRK_DATE
任务令实际入库时间
DEPT_IN_DATE
调测部门录入日期(录入日期
ORDER_MEMO_ASSEMBLY
制造未及时完成原因
ORDER_MEMO_PICKING
未及时发货原因
REASONS_CODE
订单备货异常代码
VARCHAR2
(2)
IMPT
未用
DEPT_IN_BY
调测日期录入员
VARCHAR2(10)
FLQLFLAG
分料欠料标志(半成品和终端?
?
APPROVE_RK_DATE
批准入库日期
ZZ_MEMO
总装备注
DEPT_IN_GROUP
订单分组
POC_SJRK_DATE
POC实际入库日期
CCDP_CREATE_NAME
CCP计划制订人
WIP_CREATE_BY
任务令创建人
POC_YL_BY
POC预留人
NOTE1
备货中的备注
VARCHAR2(100)
APPROVE_RK_BY
批准人
PLAN_PACK_DATE
计划包装日期
PLAN_SHIP_DATE
计划发运时间
ORDER_SHIP_DEPT
订单发货部门
ORDER_JHLH_DATE
ORDER_JHFH_DATE
QLFLAG
订单欠料标识
POC_PP_BY
POC匹配人
APPROVE_RK_MEMO
审批入库的备注
HW_JHPACK_DATE
HW_FL_NOTE
分料备注
HW_PACK_NOTE
装箱备注
DOWN_DATE
订单下载日期
DATE_FIRST
第一次匹配时间
LAST_UPDATE
最后修改日期
DEAL_BY
发运备注处理人
HW_SHIP_NOTE
发运备注
WIP_JHRK_DATE
任务令计划入库时间
POC_FL_DATE
POC一级库分料日期
ZC_HOUR
总测工时
LH_HOUR
理货工时
HT_PP_DATE
合同最后匹配日期
WIP_TALLY_DATE
任务令作帐时间
ZZ_JHFL_DATE
总装计划分料日期
ZZ_PROMISE_DATE
总装承诺完成日期
ZZ_SJFL_DATE
SPLIT_CREATED_DATE
第一次拆分时间
SPLIT_UPDATE_DATE
最后拆分更改时间
2)Taskorder工作订单行表(Order_Lines_All)
WO_NUMBER
SET_NAME
发运集
TOP_MODEL_LINE_ID
顶层订单行ID
FLEVEL
层次,根据COMPONT_CODE计算,按ITEM所在的层次,无父项为1,有一个父项为2,依次类推
SEQ_NUMBER
序号
SHIP_SET_ID
PACKING_INSTRUCTIONS
局点(包装指令
VARCHAR2(120)
DISPLAY_LEVEL
11I中显示需号层次
新增(1.1
2.12.1.12.1.2
等最多两个点号分隔三个数值的序号)
OPTION_NUMBER
新增(Line_Number+Option_Number+Opteion_Numbe)为订单行排序号
OPTION_NUMBE
同前
WO_NUMBER_OLD
上次的拆分订单号
订单头ID
LINE_ID
订单行ID
PARENT_LINE_ID
订单行父ID
INVENTORY_ITEM_ID
订单行项目ID
组织号
SHIP_SET_NUMBER
ATO_FLAG
ATO标志(Y:
ATO项目)
NN
栏目层次
LINE_NUMBER
栏目行号
QTY
要货数量
ATTRIBUTE1
产品编码
ITEM_TYPE_CODE
项目类型
COMPONENT_CODE
组件码
3)任务令和订单号对应表:
TASKORDER
根据本表可以从一个TaskOrder得到它包含的任务令,反过来可以得到任务令属于哪个TaskOrder.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OSP 订单 拆分 详细 设计 1217 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)