The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT sales_order_id
INTO l_so_id
FROM MTL_SALES_ORDERS
WHERE segment1 = l_segment1
AND segment2 = l_segment2
AND segment3 = l_segment3 ;
SELECT mtl_sales_orders_s.nextval into l_so_id from dual ;
INSERT into MTL_SALES_ORDERS (sales_order_id, segment1, segment2, segment3, last_updated_by,
last_update_date, last_update_login, creation_date, created_by,
summary_flag, enabled_flag) values
(l_so_id, l_segment1, l_segment2, l_segment3, fnd_global.user_id, sysdate,
fnd_global.login_id, sysdate, fnd_global.user_id, 'N', 'Y') ;
SELECT segment1,segment2,segment3
INTO l_order_number, l_order_type, l_order_source
FROM mtl_sales_orders
WHERE sales_order_id = p_salesorder_id ;
SELECT sales_order_id
INTO l_salesorder_id
FROM mtl_sales_orders
WHERE segment1 = to_char(l_order_number)
AND segment2 = l_order_type
AND segment3 = l_order_source ;
| This function, synch_salesorders_with_om, is used to update an existing sales order |
| with new segment values for either order_number and/or order type and/or order source |
| given an original order number and/or order type and/or order source. This API is |
| is provided because in Order Management the order number and order type can be updated |
| even after a sales order has been created. The input parameter "multiple_rows" |
| determines whether it is teh intention of the caller to update multiple rows. |
+----------------------------------------------------------------------------------------*/
function synch_salesorders_with_om(
p_original_order_number IN VARCHAR2,
p_original_order_type IN VARCHAR2,
p_original_source_code IN VARCHAR2,
p_new_order_number IN VARCHAR2,
p_new_order_type IN VARCHAR2,
p_new_order_source IN VARCHAR2,
p_multiple_rows IN VARCHAR2 default 'N') return number IS
BEGIN
-- Bug 2648869: Performance fix. The update statement was changed based on
-- whether thep_multiple_rows is Y or N. If it is N, then all the
-- parameters are passed, so the SQL need not have the NVL.
-- This is will help is utilizing the index
-- and the fetch will be faster.
if (p_multiple_rows <> 'Y' ) THEN
if ( (p_original_order_number IS NULL) OR
(p_original_order_type IS NULL) OR
(p_original_source_code IS NULL) ) then
return 0 ;
UPDATE mtl_sales_orders
SET segment1 = NVL(p_new_order_number,segment1),
segment2 = NVL(p_new_order_type, segment2),
segment3 = NVL(p_new_order_source, segment3)
WHERE segment1 = p_original_order_number
AND segment2 = p_original_order_type
AND segment3 = p_original_source_code;
UPDATE mtl_sales_orders
SET segment1 = NVL(p_new_order_number,segment1),
segment2 = NVL(p_new_order_type, segment2),
segment3 = NVL(p_new_order_source, segment3)
WHERE (p_original_order_number IS NULL OR
segment1 = p_original_order_number)
AND (p_original_order_type IS NULL OR
segment2 = p_original_order_type)
AND (p_original_source_code IS NULL OR
segment3 = p_original_source_code);
Select header_id
into l_header_id
from oe_order_headers_all
where order_number = p_order_number AND
order_type_id IN (select tl.transaction_type_id
from oe_transaction_types_tl tl,
oe_transaction_types_all ta
where ta.transaction_type_id =
tl.transaction_type_id and
tl.name = p_order_type and
ta.transaction_type_code = 'ORDER'
and LANGUAGE = (
select language_code
from fnd_languages
where installed_flag = 'B'));
INSERT INTO MTL_SALES_ORDERS
(sales_order_id,
segment1,
segment2,
segment3,
last_updated_by,
last_update_date,
last_update_login,
creation_date,
created_by,
summary_flag,
enabled_flag)
Values(
mtl_sales_orders_s.nextval,
p_header_rec.order_number(i),
p_header_rec.order_type_name(i),
l_source_code,
fnd_global.user_id,
sysdate,
fnd_global.login_id,
sysdate,
fnd_global.user_id,
'N',
'Y');
PROCEDURE delete_mtl_sales_orders_bulk(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
p_error_rec IN OE_BULK_ORDER_PVT.INVALID_HDR_REC_TYPE,
x_message_data OUT NOCOPY VARCHAR2,
x_message_count OUT NOCOPY NUMBER,
x_return_status OUT NOCOPY VARCHAR2) IS
-- Constants
c_api_version_number CONSTANT NUMBER := 1.0 ;
c_api_name CONSTANT VARCHAR2(50):= 'DELETE_MTL_SALES_ORDERS_BULK';
DELETE from mtl_sales_orders
WHERE (segment1, segment2) IN
(select to_char(a.order_number),b.name
FROM oe_order_headers a,
oe_order_types_v b
WHERE a.header_id = p_error_rec.header_id(i)
AND a.order_type_id = b.order_type_id);
END delete_mtl_sales_orders_bulk;