模拟发放销售订单界面进行发放操作

PROCEDURE insert_row(x_batch_id OUT NUMBER) IS
l_autopack_flag VARCHAR2(1 );
l_autopack_level NUMBER;
l_release_method VARCHAR2(1 );
l_release_online VARCHAR2(240 ) := fnd_profile.value('SHP_PICK_RELEASE_ONLINE' ); --bugfix 11830201 added cursor
CURSOR enable_prop(org_id NUMBER) IS
SELECT nvl(MAX (project_reference_enabled), 'N')
FROM pjm_org_parameters
WHERE organization_id = org_id; l_enable_flag VARCHAR2(1 ) := 'N';
l_return_code BOOLEAN DEFAULT TRUE; CURSOR cur_data(p_organization_id IN NUMBER ) IS
SELECT wsh.picking_rule_name,
wsh.backorders_only_flag,
wsh.backorders,
wsh.shipment_priority,
wsh.shipment_priority_code,
wsh.organization_id,
wsh.org_id,
wsh.warehouse_id_lov,
wsh.warehouse,
wsh.warehouse_code,
wsh.reservation_star,
wsh.existing_rsvs_only_flag,
wsh.ship_method_code,
wsh.from_scheduled_ship_date,
wsh.to_scheduled_ship_date,
wsh.from_requested_date,
wsh.to_requested_date,
wsh.order_type,
wsh.order_type_id,
wsh.order_number,
wsh.order_header_id,
wsh.ship_set_number,
wsh.inventory_item_id,
wsh.item_description,
wsh.customer_name,
wsh.old_customer_name,
wsh.customer_id,
wsh.ship_to_location,
wsh.ship_to_location_id,
wsh.include_planned_lines,
wsh.autocreate_delivery_flag,
wsh.pick_grouping_rule_name,
wsh.pick_seq_rule_name,
wsh.task_id,
wsh.project_id,
wsh.autodetail_pr_flag,
wsh.auto_pick_confirm_flag,
wsh.ship_set_number ship_set_id,
wsh.ship_from_location,
wsh.ship_from_location_id,
wsh.document_set_id,
wsh.doc_name,
wsh.pick_from_subinventory,
wsh.pick_from_locator_id,
wsh.pick_from_locator,
wsh.default_stage_subinventory,
wsh.default_stage_locator_id,
wsh.default_stage_locator,
wsh.ship_method_meaning,
wsh.autopack_flag,
wsh.autopack_level,
wsh.ship_confirm_rule_id,
wsh.ship_confirm_rule_name,
wsh.task_planning_flag,
wsh.region_id,
wsh.zone_id,
wsh.ac_delivery_criteria,
wsh.rel_subinventory,
wsh.category_set_id,
wsh.category_id,
wsh.sch_start_days,
wsh.sch_end_days,
wsh.sch_start_hours,
wsh.sch_end_hours,
wsh.req_start_days,
wsh.req_end_days,
wsh.req_start_hours,
wsh.req_end_hours,
wsh.append_flag,
wsh.task_priority,
wsh.allocation_method,
wsh.crossdock_criteria_id,
wsh.dynamic_replenishment_flag,
wsh.client_id,
wsh.client_name
FROM (SELECT wpr.name picking_rule_name,
wpr.backorders_only_flag,
decode(s2.meaning,
'Exclude',
'Unreleased',
'Include',
'All',
'Only',
'Backordered') backorders,
s1.meaning shipment_priority,
wpr.shipment_priority_code,
wpr.organization_id,
wpr.organization_id org_id,
wpr.organization_id warehouse_id_lov,
h_org_tl.name warehouse,
org.organization_code warehouse_code,
decode(wpr.existing_rsvs_only_flag, 'Y', '*' , NULL) reservation_star,
wpr.existing_rsvs_only_flag,
wpr.ship_method_code,
wpr.from_scheduled_ship_date,
wpr.to_scheduled_ship_date,
wpr.from_requested_date,
wpr.to_requested_date,
ott.name order_type,
wpr.order_type_id,
to_char(h.order_number) order_number,
wpr.order_header_id,
os.set_name ship_set_number,
wpr.inventory_item_id,
msi.description item_description,
substrb(party.party_name, 1, 50 ) customer_name,
substrb(party.party_name, 1, 50 ) old_customer_name,
wpr.customer_id,
whzl.ui_location_code ship_to_location,
wpr.ship_to_location_id,
wpr.include_planned_lines,
wpr.autocreate_delivery_flag,
pgr.name pick_grouping_rule_name,
rsqr.name pick_seq_rule_name,
wpr.task_id,
wpr.project_id,
wpr.autodetail_pr_flag,
wpr.auto_pick_confirm_flag,
wpr.ship_set_number ship_set_id,
whrl.ui_location_code ship_from_location,
wpr.ship_from_location_id,
wpr.document_set_id,
wrs.name doc_name,
wpr.pick_from_subinventory,
wpr.pick_from_locator_id,
NULL pick_from_locator,
wpr.default_stage_subinventory,
wpr.default_stage_locator_id,
NULL default_stage_locator,
sm.meaning ship_method_meaning,
wpr.autopack_flag,
wpr.autopack_level,
wpr.ship_confirm_rule_id,
wscr.name ship_confirm_rule_name,
wpr.task_planning_flag,
wpr.region_id,
wpr.zone_id,
wpr.ac_delivery_criteria,
wpr.rel_subinventory,
wpr.category_set_id,
wpr.category_id,
wpr.sch_start_days,
wpr.sch_end_days,
wpr.sch_start_hours,
wpr.sch_end_hours,
wpr.req_start_days,
wpr.req_end_days,
wpr.req_start_hours,
wpr.req_end_hours,
wpr.append_flag,
wpr.task_priority,
wpr.allocation_method,
wpr.crossdock_criteria_id,
wpr.dynamic_replenishment_flag,
wpr.client_id client_id,
mcpv.client_name client_name
FROM wsh_picking_rules wpr,
mtl_parameters org,
hr_all_organization_units_tl h_org_tl,
hz_parties party,
hz_cust_accounts cust_acct,
fnd_lookup_values s1,
fnd_lookup_values s2,
oe_sets os,
wsh_pick_grouping_rules pgr,
wsh_pick_sequence_rules rsqr,
oe_transaction_types_tl ott,
oe_transaction_types_all otb,
oe_order_headers_all h,
wsh_locations whrl,
wsh_locations whzl,
wsh_report_sets wrs,
wsh_ship_confirm_rules wscr,
mtl_system_items_b msi,
fnd_lookup_values sm,
mtl_client_parameters_v mcpv
WHERE org.organization_id(+) = wpr.organization_id
AND h_org_tl.organization_id(+) = wpr.organization_id
AND cust_acct.cust_account_id(+) = wpr.customer_id
AND cust_acct.party_id = party.party_id(+)
AND h_org_tl.language(+) = userenv('LANG' )
AND pgr.pick_grouping_rule_id(+) = wpr.pick_grouping_rule_id
AND rsqr.pick_sequence_rule_id(+) = wpr.pick_sequence_rule_id
AND wpr.ship_confirm_rule_id = wscr.ship_confirm_rule_id(+)
AND s1.lookup_code(+) = wpr.shipment_priority_code
AND s1.lookup_type(+) = 'SHIPMENT_PRIORITY'
AND s1.language(+) = userenv('LANG' )
AND s1.view_application_id(+) = 660
AND s1.security_group_id(+) = 0
AND s2.lookup_code = wpr.backorders_only_flag
AND s2.lookup_type = 'PICK_RELEASE_OPTIONS'
AND s2.language(+) = userenv('LANG' )
AND s2.view_application_id(+) = 660
AND s2.security_group_id(+) = 0
AND otb.transaction_type_id(+) = nvl(wpr.order_type_id, -1)
AND otb.transaction_type_code(+) = 'ORDER'
AND otb.transaction_type_id = ott.transaction_type_id(+)
AND ott.language(+) = userenv('LANG' )
AND whzl.wsh_location_id(+) =
nvl(wpr.ship_to_location_id, - 1)
AND whrl.wsh_location_id(+) =
nvl(wpr.ship_from_location_id, - 1)
AND wrs.report_set_id(+) = wpr.document_set_id
AND os.set_id(+) = nvl(wpr.ship_set_number, -1)
AND h.header_id(+) = nvl(wpr.order_header_id, -1)
AND msi.inventory_item_id(+) = wpr.inventory_item_id
AND msi.organization_id(+) = p_organization_id
AND trunc(SYSDATE ) BETWEEN
nvl(wpr.start_date_active, trunc( SYSDATE)) AND
nvl(wpr.end_date_active, trunc( SYSDATE) + 1 )
AND sm.lookup_type(+) = 'SHIP_METHOD'
AND sm.lookup_code(+) = wpr.ship_method_code
AND sm.view_application_id(+) = 3
AND sm.language(+) = userenv('LANG' )
AND mcpv.client_id(+) = wpr.client_id) wsh
WHERE picking_rule_name = :control.pick_rule
ORDER BY wsh.picking_rule_name;
l_document_set_id NUMBER;
l_append_flag VARCHAR2(1 );
l_row_id VARCHAR2(50 );
l_order_header_id NUMBER;
l_order_type VARCHAR2(240 );
l_customer_name VARCHAR2(240 );
l_order_type_id NUMBER;
l_customer_id NUMBER;
l_batch_name VARCHAR2(240 );
l_organization_id NUMBER;
l_request_id NUMBER;
l_org_id NUMBER;
BEGIN
BEGIN
SELECT DISTINCT otl.name,
substrb(party.party_name, 1, 50 ) customer_name,
wdd.source_header_type_id,
cust_acct.cust_account_id customer_id,
wdd.organization_id,
wdd.org_id
INTO l_order_type,
l_customer_name,
l_order_type_id,
l_customer_id,
l_organization_id,
l_org_id
FROM wsh_delivery_details wdd,
hz_parties party,
hz_cust_accounts cust_acct,
oe_transaction_types_tl otl
WHERE wdd.customer_id = cust_acct.cust_account_id /*customer id*/
AND cust_acct.party_id = party.party_id
AND otl.language = userenv('LANG' )
AND otl.transaction_type_id = wdd.source_header_type_id
AND wdd.source_header_id = :query_find.header_id
AND wdd.source_code = 'OE'
AND wdd.released_status IN ('B', 'R', 'X' );
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
FOR rec_data IN cur_data(l_organization_id) LOOP
IF l_release_method IS NULL THEN
-- Commit from save instead of buttons ( user chose Save from the menu )
IF ((nvl(l_release_online, 'N' ) = 'Y') AND
(:query_find.header_id IS NOT NULL)) THEN
l_release_method := 'O';
ELSE
l_release_method := 'C';
END IF ;
END IF ; IF l_release_method = 'O' THEN
NULL;
ELSE
IF rec_data.document_set_id IS NULL AND rec_data.doc_name IS NOT NULL THEN
l_document_set_id := fnd_profile.value('OE_PICKING_DOCUMENT_SET_DEFAULT' );
END IF ;
END IF ; IF rec_data.organization_id IS NULL THEN
l_append_flag := 'N';
ELSE
--bugfix 11830201 added cursor
OPEN enable_prop(rec_data.organization_id);
FETCH enable_prop
INTO l_enable_flag;
CLOSE enable_prop;
END IF ;
--
IF l_enable_flag = 'Y' THEN l_return_code := pjm_project_locator.check_project_references(p_organization_id => rec_data.organization_id,
p_locator_id => rec_data.default_stage_locator_id,
p_validation_mode => 'SPECIFIC' ,
p_required_flag => 'N' ,
p_project_id => rec_data.project_id,
p_task_id => rec_data.task_id);
IF (l_return_code = FALSE ) THEN
fnd_message.retrieve;
fnd_message.error;
RAISE form_trigger_failure;
END IF ;
END IF ;
--
IF (l_return_code = TRUE ) THEN wsh_picking_batches_pkg.insert_row(x_rowid => l_row_id,
x_batch_id => x_batch_id,
p_creation_date => SYSDATE,
p_created_by => fnd_global.user_id,
p_last_update_date => SYSDATE,
p_last_updated_by => fnd_global.user_id,
p_last_update_login => fnd_global.login_id,
x_name => l_batch_name,
p_backorders_only_flag => rec_data.backorders_only_flag,
p_document_set_id => l_document_set_id,
p_existing_rsvs_only_flag => rec_data.existing_rsvs_only_flag,
p_shipment_priority_code => rec_data.shipment_priority_code,
p_ship_method_code => rec_data.ship_method_code,
p_customer_id => l_customer_id,
p_order_header_id => :query_find.header_id,
p_ship_set_number => rec_data.ship_set_id,
p_inventory_item_id => rec_data.inventory_item_id,
p_order_type_id => l_order_type_id,
p_from_requested_date => to_date(to_char(rec_data.from_requested_date,
'DD-MON-YYYY HH24:MI:SS' ),
'DD-MON-YYYY HH24:MI:SS' ),
p_to_requested_date => to_date(to_char(rec_data.to_requested_date,
'DD-MON-YYYY HH24:MI:SS' ),
'DD-MON-YYYY HH24:MI:SS' ),
p_from_scheduled_ship_date => to_date(to_char(rec_data.from_scheduled_ship_date,
'DD-MON-YYYY HH24:MI:SS' ),
'DD-MON-YYYY HH24:MI:SS' ),
p_to_scheduled_ship_date => to_date(to_char(rec_data.to_scheduled_ship_date,
'DD-MON-YYYY HH24:MI:SS' ),
'DD-MON-YYYY HH24:MI:SS' ),
p_ship_to_location_id => rec_data.ship_to_location_id,
p_ship_from_location_id => rec_data.ship_from_location_id,
p_trip_id => NULL,
p_delivery_id => NULL,
p_include_planned_lines => rec_data.include_planned_lines,
p_pick_grouping_rule_id => NULL,
p_pick_sequence_rule_id => NULL,
p_autocreate_delivery_flag => rec_data.autocreate_delivery_flag,
p_attribute_category => NULL,
p_attribute1 => NULL,
p_attribute2 => NULL,
p_attribute3 => NULL,
p_attribute4 => NULL,
p_attribute5 => NULL,
p_attribute6 => NULL,
p_attribute7 => NULL,
p_attribute8 => NULL,
p_attribute9 => NULL,
p_attribute10 => NULL,
p_attribute11 => NULL,
p_attribute12 => NULL,
p_attribute13 => NULL,
p_attribute14 => NULL,
p_attribute15 => NULL,
p_autodetail_pr_flag => rec_data.autodetail_pr_flag,
p_carrier_id => NULL,
p_trip_stop_id => NULL,
p_default_stage_subinventory => rec_data.default_stage_subinventory,
p_default_stage_locator_id => rec_data.default_stage_locator_id,
p_pick_from_subinventory => rec_data.pick_from_subinventory,
p_pick_from_locator_id => rec_data.pick_from_locator_id,
p_auto_pick_confirm_flag => rec_data.auto_pick_confirm_flag,
p_delivery_detail_id => NULL,
p_project_id => rec_data.project_id,
p_task_id => rec_data.task_id,
p_organization_id => rec_data.organization_id,
p_ship_confirm_rule_id => rec_data.ship_confirm_rule_id,
p_autopack_flag => rec_data.autopack_flag,
p_autopack_level => rec_data.autopack_level,
p_task_planning_flag => rec_data.task_planning_flag,
p_dynamic_replenishment_flag => rec_data.dynamic_replenishment_flag, --bug# 6689448 (replenishment project)
-- rlanka : Pack J
p_regionid => rec_data.region_id,
p_zoneid => rec_data.zone_id,
p_categoryid => rec_data.category_id,
p_categorysetid => rec_data.category_set_id,
p_acdelivcriteria => rec_data.ac_delivery_criteria,
p_relsubinventory => rec_data.rel_subinventory,
p_append_flag => l_append_flag,
p_task_priority => rec_data.task_priority,
p_actual_departure_date => NULL,
-- X-dock
p_allocation_method => rec_data.allocation_method,
p_crossdock_criteria_id => rec_data.crossdock_criteria_id,
p_client_id => rec_data.client_id --Modified R12.1.1 LSP PROJECT
);
END IF ;
END LOOP;
--调用请求
l_request_id := fnd_request.submit_request(application => 'CUX',
program => 'CUXOMLPKP' ,
description => NULL,
start_time => SYSDATE ,
sub_request => FALSE ,
argument1 => x_batch_id,
argument2 => l_org_id,
argument3 => :query_find.header_id);
IF l_request_id IS NULL OR l_request_id = 0 THEN
fnd_message.set_string( '提交挑库选择列表生成请求出错.' );
fnd_message.error;
RAISE form_trigger_failure;
ELSE
forms_ddl( 'COMMIT');
fnd_message.debug( '挑库发放成功,请查看请求.' );
END IF;
END insert_row;

--调用请求
CUXOMLPKP请求调用例如以下:
l_request_id := wsh_picking_batches_pkg.submit_release_request(p_batch_id => p_batch_id,
p_log_level => 0 ,
p_num_workers => nvl(fnd_profile.value('WSH_PR_NUM_WORKERS' ),
1));
IF l_request_id IS NULL OR l_request_id = 0 THEN
errbuf := '提交挑库选择列表生成请求出错.' ;
retcode := '2';
RETURN;
END IF ;


Oracle EBS发放销售订单的更多相关文章

  1. Oracle EBS OM 保留订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  2. Oracle EBS OM 登记订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  3. Oracle EBS OM 取消订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  4. Oracle EBS OM 创建订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  5. Oracle EBS PO采购订单更新

    DECLARE l_result NUMBER; l_progress NUMBER; l_errors PO_API_ERRORS_REC_TYPE; l_chg PO_CHANGES_REC_TY ...

  6. Oracle EBS R12经验谈(二)

    作者: jianping.ni    时间: 2009-2-13 12:52     标题: Oracle EBS R12经验谈(二) OAF页面:银行帐户开户人LOV值列表无值    在输入 应付超 ...

  7. ORACLE EBS常用表

    http://www.cnblogs.com/quanweiru/archive/2012/09/26/2704628.html call fnd_global.APPS_INITIALIZE(131 ...

  8. Oracle EBS Model Function Technical

    ♡.Oracle EBS(ERP)Oracle 是公司名字,这个我估计大家都知道.EBS是E-Business Suite的缩写,简单的说,就是Oracle做的一个企业级的信息化软件或者系统,里面包含 ...

  9. Oracle EBS应用笔记整理 (转自IT++ flyingkite)

    ***************************************************** Author: Flyingkite Blog:   http://space.itpub. ...

随机推荐

  1. Oracle学习总结(7)—— 常用的数据库索引优化语句总结

    不管是用C/C++/Java等代码编写的程序,还是SQL编写的数据库脚本,都存在一个持续优化的过程.也就是说,代码优化对于程序员来说,是一个永恒的话题. 近期,我们对之前编写的数据库脚本进行了全面的自 ...

  2. Jedis无法连接centOS7上的redis

    通过查看资料无法连接基本是两个原因: 1)redis.conf中的bind配置,bind的默认是 127.0.0.1 只可本机访问,我们改为 bind 0.0.0.0 即所有地址均可访问. 2)cen ...

  3. max带来的冲突

    题目要求: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名:sum123.cpp * 作 者:林海云 * 完毕日期:20 ...

  4. XUtils3框架的基本用法(一)

    本文为作者原创,转载请指明出处: http://blog.csdn.net/a1002450926/article/details/50341173 今天给大家带来XUtils3的基本介绍.本文章的案 ...

  5. [Webpack + React] Import CSS Modules with TypeScript and webpack

    If you try to use CSS Modules in TypeScript the same way you would use them in JavaScript, with webp ...

  6. XMPP添加删除好友

    在现阶段的通信服务中.各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互 ...

  7. Linux 经常使用快捷键

    桌面下: Alt+F5   取消最大化窗体 Alt+F9   最小化窗体  Alt+F10  最大化窗体  Alt+空格 打开窗体的控制菜单 (点击窗体左上角图标出现的菜单)     ctl+r   ...

  8. 自己封装js组件 - 中级中高级

    接着做关于alert组件的笔记 怎么又出来个中高级呢 对没错 就是出一个中高级来刷流量呵呵呵,但是中高级也不是白叫的 这次主要是增加了widget类,增加了自己绑定的事件和触发事件的方法!这么做是为什 ...

  9. bzoj1029: [JSOI2007]建筑抢修(堆+贪心)

    1029: [JSOI2007]建筑抢修 题目:传送门 题解: 一道以前就做过的水题(找个水题签个到嘛...) 很明显就是一道贪心题,这里我们用一个堆来维护 具体看代码吧,很容易YY所以不讲 代码: ...

  10. 图像几何变换(geometric transformation)

    1. imwarp B = imwarp(A,tform) demo I = imread('cameraman.tif'); tform = affine2d([1 0 0; .5 1 0; 0 0 ...