The following lines contain the word 'select', 'insert', 'update' or 'delete':
6) A new block has been introduced around the SELECT that fetches the WI details, catching NO_DATA_FOUND.
Exception OTHERS will be caught by the calling API (overloaded public API Add_WI_To_Line).
******************************************/
Function Add_WI_toLine(
p_line_item_id IN NUMBER,
p_workitem_name IN VARCHAR2,
-- p_workitem_version IN VARCHAR2 DEFAULT NULL, --defaulting removed to fix bug 4083708
p_workitem_version IN VARCHAR2,
p_provisioning_date IN Date DEFAULT null,
p_priority IN number Default 100,
p_provisioning_seq IN Number Default 0,
p_due_date IN Date Default NULL,
p_customer_required_date IN DATE Default NULL,
p_oa_added_flag IN VARCHAR2 DEFAULT 'Y')
RETURN NUMBER
IS
lv_instance_id NUMBER;
select wpr2.parameter_name,
-- parameter_value,
nvl(parameter_value, wpr2.default_value) parameter_value, --modified to fix 4083708
parameter_reference_value,
wpr2.evaluation_seq
from (select parameter_name,
default_value, -- added to fix 4083708
evaluation_seq
from xdp_wi_parameters wpr
where wpr.workitem_id = l_wi_id
) wpr2,
XDP_ORDER_LINEITEM_DETS oll
where wpr2.parameter_name = oll.line_parameter_name(+) and
oll.line_item_id(+) = l_line_id
order by wpr2.evaluation_seq;
select workitem_id
from xdp_workitems
where workitem_name = p_workitem_name;
select XDP_FULFILL_WORKLIST_S.nextval
into lv_instance_id
from dual;
select order_id,
line_number
into lv_order_id,
lv_line_number
from xdp_order_line_items
where line_item_id = p_line_item_id;
SELECT workitem_id,
workitem_name,
Validation_procedure,
validation_enabled_flag
INTO lv_wi_id,
g_Workitem_Name,
g_Validation_Procedure,
g_Validation_Enabled_Flag
FROM xdp_workitems
WHERE workitem_name = p_workitem_name
AND version = p_workitem_version;
select provisioning_date into lv_prov_date
from xdp_order_line_items
where line_item_id = p_line_item_id;
insert into XDP_FULFILL_WORKLIST
(workitem_instance_id,
line_item_id,
order_id,
line_number,
workitem_id,
status_code,
provisioning_date,
priority,
wi_sequence,
due_date,
customer_required_date,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
values
(lv_instance_id,
p_line_item_id,
lv_order_id,
lv_line_number,
lv_wi_id,
'STANDBY',
lv_prov_date,
p_priority,
p_provisioning_seq ,
p_due_date,
p_customer_required_date,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
select wpr2.parameter_name,
parameter_value,
parameter_reference_value,
wpr2.evaluation_seq
from
(select parameter_name,
evaluation_seq
from xdp_wi_parameters wpr
where wpr.workitem_id = l_wi_id --and
) wpr2,
XDP_ORDER_LINEITEM_DETS oll
where
wpr2.parameter_name = oll.line_parameter_name(+) and
oll.line_item_id(+) = l_line_id
order by wpr2.evaluation_seq;
select XDP_FULFILL_WORKLIST_S.nextval
into lv_instance_id
from dual;
select order_id,line_number into lv_order_id,lv_line_number
from xdp_order_line_items
where line_item_id = p_line_item_id;
select workitem_id,workitem_name,validation_procedure,
validation_enabled_flag
into lv_wi_id,g_Workitem_Name,g_Validation_Procedure,
g_Validation_Enabled_Flag
from xdp_workitems
where workitem_id = p_workitem_id;
select provisioning_date into lv_prov_date
from xdp_order_line_items
where line_item_id = p_line_item_id;
insert into XDP_FULFILL_WORKLIST
(workitem_instance_id,
line_item_id,
order_id,
line_number,
workitem_id,
status_code,
provisioning_date,
priority,
wi_sequence,
due_date,
customer_required_date,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
values
(lv_instance_id,
p_line_item_id,
lv_order_id,
lv_line_number,
lv_wi_id,
'PENDING',
lv_prov_date,
p_priority,
p_provisioning_seq ,
p_due_date,
p_customer_required_date,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
select order_id into lv_tmp
from xdp_pre_order_queue
where order_id = p_sdp_order_id
for update NOWAIT;
select order_id into lv_tmp from xdp_pending_order_queue
where order_id = p_sdp_order_id
for update NOWAIT;
select order_id into lv_tmp from XDP_ORDER_PROC_QUEUE
where order_id = p_sdp_order_id
for update NOWAIT;
select status_code into lv_state
from xdp_order_line_items
where line_item_id = p_line_item_id and
order_id = p_sdp_order_id;
update xdp_order_line_items
set last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
status_code = 'CANCELED'
where line_item_id = p_line_item_id;
select status_code into lv_state
from XDP_FULFILL_WORKLIST
where workitem_instance_id = p_workitem_instance_id and
order_id = p_sdp_order_id;
update XDP_FULFILL_WORKLIST
set last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
status_code = 'CANCELED'
where workitem_instance_id = p_workitem_instance_id;
update XDP_FULFILL_WORKLIST
set last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
status_code = 'CANCELED'
where workitem_instance_id = p_workitem_instance_id;
select status_code into lv_curr_state
from xdp_order_headers
where order_id = p_curr_sdp_order_id;
select status_code into lv_rel_state
from xdp_order_headers
where order_id = p_related_sdp_order_id;
select 'Y' into lv_exists
from dual
where EXISTS(
select 'x' from xdp_order_relationships
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id);
INSERT INTO XDP_ORDER_RELATIONSHIPS
(ORDER_ID,
RELATED_ORDER_ID,
ORDER_RELATIONSHIP,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
VALUES
(p_curr_sdp_order_id,
p_related_sdp_order_id,
lv_relation,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
UPDATE XDP_ORDER_RELATIONSHIPS
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
ORDER_RELATIONSHIP = lv_relation
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
select 'Y' into lv_exists
from dual
where EXISTS(
select 'x' from xdp_order_relationships
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id);
INSERT INTO XDP_ORDER_RELATIONSHIPS
(ORDER_ID,
RELATED_ORDER_ID,
ORDER_RELATIONSHIP,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
VALUES
(p_curr_sdp_order_id,
p_related_sdp_order_id,
lv_relation,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
UPDATE XDP_ORDER_RELATIONSHIPS
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
ORDER_RELATIONSHIP = lv_relation
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
select 'Y' into lv_exists
from dual
where EXISTS(
select 'x' from xdp_order_relationships
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id);
INSERT INTO XDP_ORDER_RELATIONSHIPS
(ORDER_ID,
RELATED_ORDER_ID,
ORDER_RELATIONSHIP,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
VALUES
(p_curr_sdp_order_id,
p_related_sdp_order_id,
lv_relation,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
UPDATE XDP_ORDER_RELATIONSHIPS
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
ORDER_RELATIONSHIP = lv_relation
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
select 'Y' into lv_exists
from dual
where EXISTS(
select 'x' from xdp_order_relationships
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id);
INSERT INTO XDP_ORDER_RELATIONSHIPS
(ORDER_ID,
RELATED_ORDER_ID,
ORDER_RELATIONSHIP,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
VALUES
(p_curr_sdp_order_id,
p_related_sdp_order_id,
lv_relation,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
UPDATE XDP_ORDER_RELATIONSHIPS
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
ORDER_RELATIONSHIP = lv_relation
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
previous_order_id = p_related_sdp_order_id
where order_id = p_curr_sdp_order_id;
update xdp_order_headers
set
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
next_order_id = p_curr_sdp_order_id
where order_id = p_related_sdp_order_id;
select 'Y' into lv_exists
from dual
where EXISTS(
select 'x' from xdp_order_relationships
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id);
INSERT INTO XDP_ORDER_RELATIONSHIPS
(ORDER_ID,
RELATED_ORDER_ID,
ORDER_RELATIONSHIP,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
VALUES
(p_curr_sdp_order_id,
p_related_sdp_order_id,
lv_relation,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
UPDATE XDP_ORDER_RELATIONSHIPS
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
ORDER_RELATIONSHIP = lv_relation
where order_id = p_curr_sdp_order_id AND
related_order_id = p_related_sdp_order_id;
select status_code,order_id
into lv_curr_state,lv_curr_order_id
from XDP_FULFILL_WORKLIST
where workitem_instance_id = p_curr_wi_instance_id;
select status_code ,order_id
into lv_rel_state,lv_rel_order_id
from XDP_FULFILL_WORKLIST
where workitem_instance_id = p_related_wi_instance_id;
select 'Y' into lv_exists
from dual
where EXISTS(
select 'x' from xdp_wi_relationships
where workitem_instance_id = p_curr_wi_instance_id AND
related_wi_instance_id = p_related_wi_instance_id);
INSERT INTO XDP_WI_RELATIONSHIPS
(Workitem_instance_id,
RELATED_wi_instance_id,
wi_RELATIONSHIP,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login
)
VALUES
(p_curr_wi_instance_id ,
p_related_wi_instance_id,
lv_relation,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.USER_ID,
sysdate,
FND_GLOBAL.LOGIN_ID
);
UPDATE XDP_FULFILL_WORKLIST
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
status_code = 'MERGED'
-- state = 'MERGERD'
where workitem_instance_id = p_related_wi_instance_id;
UPDATE XDP_WI_RELATIONSHIPS
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
WI_RELATIONSHIP = lv_relation
where workitem_instance_id = p_curr_wi_instance_id AND
related_wi_instance_id = p_related_wi_instance_id;
UPDATE XDP_FULFILL_WORKLIST
SET
last_updated_by = FND_GLOBAL.USER_ID,
last_update_date = sysdate,
last_update_login = FND_GLOBAL.LOGIN_ID,
status_code = 'MERGERD'
-- state = 'MERGERD'
where workitem_instance_id = p_related_wi_instance_id;
select
order_id,
external_order_number,
status_code,
provisioning_date,
actual_provisioning_date,
completion_date,
due_date,
customer_required_date,
external_order_version,
--order_action, -- remove for R11.5.6
order_source,
customer_id,
customer_name,
org_id,
--service_provider_id,-- remove for R11.5.6
telephone_number,
priority,
related_order_id,
order_type,
previous_order_id,
next_order_id
into
lv_header.sdp_order_id,
lv_header.order_number ,
lv_header.order_status,
lv_header.provisioning_date,
lv_header.actual_provisioning_date,
lv_header.completion_date,
lv_header.due_date,
lv_header.customer_required_date ,
lv_header.order_version,
--lv_header.order_action ,-- remove for R11.5.6
lv_header.order_source ,
lv_header.customer_id ,
lv_header.customer_name,
lv_header.org_id ,
--lv_header.service_provider_id ,-- remove for R11.5.6
lv_header.telephone_number,
lv_header.priority ,
lv_header.related_order_id ,
lv_header.order_type,
lv_header.previous_order_id,
lv_header.next_order_id
from
xdp_order_headers
where
order_id = p_sdp_order_id;
select *
from xdp_order_line_items
where order_id = p_sdp_order_id and
is_virtual_line_flag = 'N';
select *
from xdp_order_line_items
where line_item_id = p_line_item_id;
select
workitem_instance_id,
fwt.workitem_id,
wim.workitem_name,
fwt.line_number,
fwt.line_item_id,
wi_sequence,
priority,
status_code
from
XDP_FULFILL_WORKLIST fwt,
xdp_workitems wim
where
fwt.workitem_instance_id = p_wi_instance_id and
fwt.workitem_id = wim.workitem_id
order by fwt.line_item_id;
select
workitem_instance_id,
fwt.workitem_id,
wim.workitem_name,
fwt.line_number,
fwt.line_item_id,
wi_sequence,
priority,
status_code
from
XDP_FULFILL_WORKLIST fwt,
xdp_workitems wim
where
fwt.order_id = p_sdp_order_id and
fwt.workitem_id = wim.workitem_id
order by fwt.line_item_id;
lv_plsql := 'SELECT DISTINCT OHR.ORDER_ID FROM '||
'XDP_ORDER_HEADERS OHR, XDP_ORDER_LINE_ITEMS OLM '||
' WHERE OHR.ORDER_ID = OLM.ORDER_ID AND '||
p_where;
lv_plsql := 'SELECT DISTINCT OHR.ORDER_ID FROM '||
'XDP_ORDER_HEADERS OHR '||
' WHERE '||
p_where;
lv_plsql := 'SELECT DISTINCT OLM.ORDER_ID FROM '||
' XDP_ORDER_LINE_ITEMS OLM '||
' WHERE '||
p_where;
lv_plsql := 'SELECT DISTINCT OLM.LINE_ITEM_ID FROM '||
' XDP_ORDER_LINE_ITEMS OLM '||
' WHERE OLM.ORDER_ID = '||
p_sdp_order_id ||
' AND ' ||
p_where;
lv_plsql := 'SELECT DISTINCT FWT.WORKITEM_INSTANCE_ID FROM '||
' XDP_FULFILL_WORKLIST FWT '||
' WHERE FWT.ORDER_ID = '||
p_sdp_order_id ||
' AND ' ||
p_where;
select * from
xdp_order_line_items
where line_item_id = p_src_line_item_id;
select * from
XDP_ORDER_LINEITEM_DETS
where line_item_id = p_src_line_item_id;
p_order_line_list.DELETE;
p_line_parameter_list.DELETE;