Professional Documents
Culture Documents
Service Contracts Public API-1 PDF
Service Contracts Public API-1 PDF
Service Contracts Public API-1 PDF
Reviewers
Document References
Table of Contents
1. Introduction ................................................................................................................. 5
1.1 Abstract ............................................................................................................. 5
1.2 Scope for this Document ................................................................................... 5
1.3 Definitions......................................................................................................... 5
3. Limitations ................................................................................................................. 65
1.3 Definitions
[Unique Term]
[Definition]
fnd_global.apps_initialize
( user_id => p_user_id
,resp_id => p_resp_id
,resp_appl_id => p_resp_appl_id
);
Error Handling:
All the APIs set the FND messages and also the FND debug log if any exception is raised.
Customer can call the following code snippet to get the fnd messages.
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
Customer can capture the fnd debug log while calling the api which helps Oracle Support to analyze the errors
raised during the API call:
a) Set the following fnd profile parameters for the user that will run the api
FND: Debug Log Enabled : Yes
FND: Debug Log Level : Statement
FND: Debug Log Module : %
b) Note the maximum log_sequence number before reproducing the issue.
SELECT max(log_sequence)
FROM FND_LOG_MESSAGES;
c) Call the API
d) Note the maximum log_sequence number after reproducing the issue.
SELECT max(log_sequence)
FROM FND_LOG_MESSAGES;
e) Provide the following output in an Excel sheet:
SELECT *
FROM fnd_log_messages
WHERE log_sequence BETWEEN &max_log_no_step_b AND &max_log_no_step_d
ORDER BY log_sequence;
2.1.1 Description
The create contract header API is used for creating a contract header of Service Agreements,
Subscription Agreements, Warranty and Extended Warranty.
It mainly inserts the data into okc_k_headers_all_b/tl, oks_k_headers_b/tl tables.
It supports contracts with Entered/Active statuses.
If the contract number is not provided, auto numbering setup will be considered.
It doesn’t support to create contracts which are partially billed .
OKS_IMPORT_HEADER_PUB.Create_Contract_Header(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_contract_rec IN Contract_rec_type,
x_Contract_rec OUT NOCOPY Contract_rec_type);
Before calling the procedure, you will need to populate the p_contract_rec record. After the
procedure call, x_Contract_rec will return the details of the created contract header.
Parameter Description:
Data
Parameter Name Type Reqd? Description
ID NUMBER N Unique Contract Id
VARCHAR
contract_number 2 N ContractNumber
VARCHAR
contract_number_modifier 2 N ContractNumber Modifier
VARCHAR
currency_code 2 Y Contract Currency
Identifier of the Operating Unit to which the
authoring_org_id NUMBER Y contract belongs
inv_organization_id NUMBER Y Inventory Org Id
VARCHAR
scs_code 2 Y Contract Category Code
VARCHAR
sts_code 2 Y Status of contract
VARCHAR
renewal_status 2 Y Negotiation Status
start_date DATE Y Start Date of the contract
declare
l_return_status VARCHAR2(1);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
l_contract_rec oks_import_header_pub.Contract_rec_type;
x_Contract_rec oks_import_header_pub.Contract_rec_type;
l_party_role_tbl oks_import_header_pub.chr_party_roles_tbl;
x_party_role_tbl oks_import_header_pub.chr_party_roles_tbl;
l_ctc_in_tbl oks_import_header_pub.ctc_in_tbl ;
x_ctc_tbl oks_import_header_pub.ctcv_tbl_type;
l_oks_grpings oks_import_header_pub.oks_grpings_tbl_type;
x_oks_grpings oks_import_header_pub.oks_grpings_tbl_type;
l_srv_quota oks_import_header_pub.scrv_quota_tbl_type;
x_srv_quota oks_import_header_pub.scrv_quota_tbl_type ;
begin
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
okc_context.set_okc_org_context(204,204);
-- l_contract_rec.ID
l_contract_rec.contract_number :='test_qa_demo_5';
-- l_contract_rec.contract_number_modifier
l_contract_rec.currency_code :='USD' ;
l_contract_rec.authoring_org_id :=204;
l_contract_rec.INV_ORGANIZATION_ID :=204 ;
l_contract_rec.scs_code := 'SERVICE' ;
l_contract_rec.sts_code := 'ENTERED' ;
-- l_contract_rec.renewal_status
l_contract_rec.start_date :='01-JAN-2014' ;
l_contract_rec.end_date :='31-DEC-2014';
l_contract_rec.short_description := 'create CONTRACT qa demo' ;
-- l_contract_rec.cognomen
l_contract_rec.template_yn :='N';
-- l_contract_rec.template_used
l_contract_rec.bill_to_site_use_id := 3729;
l_contract_rec.ship_to_site_use_id := 3730;
-- l_contract_rec.pricing_agreement_id
l_contract_rec.price_list_id :=1000;
l_contract_rec.payment_term_id :=5;
-- l_contract_rec.payment_instruction_type
l_contract_rec.pdf_id :=3;
-- l_contract_rec.IN_PROCESS_YN
-- l_contract_rec.comments
l_contract_rec.description :='Test create contract wrapper api' ;
/* l_contract_rec.attribute_category
l_contract_rec.attribute1
l_contract_rec.attribute2
l_contract_rec.attribute3
l_contract_rec.attribute4
l_contract_rec.attribute5
l_contract_rec.attribute6
l_contract_rec.attribute7
l_contract_rec.attribute8
l_contract_rec.attribute9
l_contract_rec.attribute10
l_contract_rec.attribute11
l_contract_rec.attribute12
l_contract_rec.attribute13
l_contract_rec.attribute14
l_contract_rec.attribute15
l_contract_rec.created_by
l_contract_rec.creation_date
l_contract_rec.last_updated_by
l_contract_rec.last_update_date
l_contract_rec.last_update_login
*/
l_ctc_in_tbl(1).CRO_CODE := 'SALESPERSON';
l_ctc_in_tbl(1).OBJECT1_ID1 :=1001;
l_ctc_in_tbl(1).PARTY_ID :=204;
l_ctc_in_tbl(1).start_date := '01-JAN-2013' ;
l_ctc_in_tbl(1).END_date := '31-DEC-2013';
l_oks_grpings(1).cgp_parent_id:=2 ;
oks_import_header_pub.create_contract_header_wrapper
(
p_api_version => 1.0,
p_init_msg_list => OKC_API.G_TRUE,
x_return_status=>l_return_status,
x_msg_count=>l_msg_count ,
x_msg_data=>l_msg_data ,
p_contract_rec=>l_contract_rec,
x_Contract_rec =>x_Contract_rec,
p_party_role_tbl =>l_party_role_tbl ,
x_party_role_tbl =>x_party_role_tbl ,
p_ctc_in_tbl =>l_ctc_in_tbl ,
x_ctc_tbl =>x_ctc_tbl ,
p_oks_grpings=>l_oks_grpings ,
x_oks_grpings =>x_oks_grpings ,
p_srv_quota => l_srv_quota,
x_srv_quota =>x_srv_quota
);
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line('Contract is created successfully '||x_Contract_rec.contract_number );
COMMIT;
END IF;
Dbms_Output.put_line(l_return_status);
Dbms_Output.put_line(l_msg_count);
Dbms_Output.put_line(l_msg_data);
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END;
2.2.1 Description
The Update contract header API is used for updating contract header
information. It mainly updates the data of okc_k_headers_all_b/tl,
oks_k_headers_b/tl tables.
OKS_IMPORT_HEADER_PUB.Update_Contract_Header(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_contract_rec IN Update_rec_type,
x_Contract_rec OUT NOCOPY Update_rec_type);
Parameter Description:
Data
Parameter Name Type Reqd? Description
Header Summary
Attributes
ID NUMBER Y Unique Contract Id
VARCHAR
contract_number 2 N ContractNumber
VARCHAR
contract_number_modifier 2 N ContractNumber Modifier
VARCHAR
currency_code 2 N Contract Currency
start_date DATE N Start Date of the contract
end_date DATE N End Date of the contract
VARCHAR
short_description 2 N Short Description
Identify the billing address of the customer
account. References
HZ_CUST_ACCT_SITES_ALL.SITE_USE_ID where
bill_to_site_use_id NUMBER N SITE_USE_CODE='BILL_TO'.
Identify the shipping address of the customer
account. References
HZ_CUST_ACCT_SITES_ALL.SITE_USE_ID where
ship_to_site_use_id NUMBER N SITE_USE_CODE='SHIP_TO'.
Pricing/Billing Attributes
pricing_agreement_id NUMBER N Pricing Agreement Id
Identifier of the Price List used for pricing this
Contract. Quickcodes : LIST_HEADER_ID from
price_list_id NUMBER N QP_LIST_HEADERS_B
Flag which decides whether reprice has to
happen when price list/currency is changed.
Holds 'R' -Reprice and 'C' -Cascade and Reprice.
When currency is changed,please pass it as "R"
VARCHAR as it is mandatory to reprice when currency is
pricing_flag 2 N changed.
declare
BEGIN
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
okc_context.set_okc_org_context(204,204);
oks_import_header_pub.update_contract_header
(
p_api_version => 1.0,
p_init_msg_list => OKC_API.G_TRUE,
x_return_status=>l_return_status,
x_msg_count=>l_msg_count ,
x_msg_data=>l_msg_data ,
p_contract_rec=>l_contract_rec,
x_Contract_rec =>x_Contract_rec
);
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line('Contract Header is updated successfully '||x_Contract_rec.contract_number );
COMMIT;
END IF;
FOR i IN 1 .. fnd_msg_pub.count_msg
LOOP
fnd_msg_pub.get (p_msg_index => i,
p_encoded => 'T',
p_data => l_msg_data,
p_msg_index_out => l_msg_index_out
);
fnd_message.set_encoded (l_msg_data);
l_msg_data := fnd_message.get;
dbms_output.put_line(l_msg_data);
END LOOP;
END;
2.3.1 Description
The create template from contract API is used for creating a template contract from any
contract.
OKS_IMPORT_HEADER_PUB.Create_Template_from_contract(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT
OKC_API.G_FALSE,
Parameter Description:
DECLARE
l_return_status VARCHAR2(1);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
l_contract_id NUMBER;
BEGIN
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
okc_context.set_okc_org_context(204,204);
oks_import_header_pub.Create_Template_from_contract
(
p_api_version => 1.0,
p_init_msg_list => OKC_API.G_TRUE,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data ,
p_source_contract_id => 202111 ,
p_template_name => 'test_temp_qa_demo' ,
x_Contract_id => l_contract_id
) ;
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status<>'S' THEN
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.4.1 Description
The create contract from template API is used for creating a contract from a template.
OKS_IMPORT_HEADER_PUB.Create_Contract_from_Template(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT
OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_template_rec IN templ_rec_type,
x_Contract_id OUT NOCOPY NUMBER);
Parameter Description:
DECLARE
l_return_status VARCHAR2(1);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
l_contract_id NUMBER;
l_template_rec oks_import_header_pub.templ_rec_type;
BEGIN
begin
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
okc_context.set_okc_org_context(204,204);
END;
l_template_rec.template_name := 'test_temp_qa_demo' ;
l_template_rec.template_modifier :=NULL;
l_template_rec.start_date := '01-jan-2015';
l_template_rec.end_date := '31-dec-2015';
oks_import_header_pub.Create_Contract_from_Template
(
p_api_version => 1.0,
p_init_msg_list => OKC_API.G_TRUE,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data ,
p_template_rec => l_template_rec ,
x_Contract_id => l_contract_id
) ;
Dbms_Output.put_line('l_contract_id '||l_contract_id);
IF l_return_status='S' THEN
Dbms_Output.put_line(' Template created from contract ' );
COMMIT;
IF l_return_status<>'S' THEN
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.5.1 Description
The create contract line is used for creating contract lines of type Service, Usage, Extended
Warranty and Subscription.
OKS_IMPORT_LINE_PUB.Create_Contract_Line
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 default OKC_API.G_TRUE,
p_line_tbl IN line_tbl_type,
x_line_tbl OUT NOCOPY line_tbl_type,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2
);
Parameter Description:
Data
Parameter Name Type Reqd Description
contract_id Number Yes Contract Id
contract_line_id Number No (Derived in the API) Contract Line Id
contract_line_number Varchar2 No (Derived in the API) Contract Line Number
DECLARE
l_return_status VARCHAR2(200);
l_msg_count NUMBER;
l_msg_data VARCHAR2(200);
l_msg_index_out NUMBER;
l_data VARCHAR2(2000);
lp_line_tbl OKS_IMPORT_LINE_PUB.line_tbl_type;
lx_line_tbl OKS_IMPORT_LINE_PUB.line_tbl_type;
l_ctc_tbl OKS_IMPORT_LINE_PUB.ctc_line_in_tbl;
BEGIN
--set the org context
okc_context.set_okc_org_context(204,204);
FND_GLOBAL.apps_initialize(1000200,21708,515);
lp_line_tbl(1).contract_id := 202111;
lp_line_tbl(1).Line_Type := 'SERVICE';
lp_line_tbl(1).Inventory_Item_id := 474 ;
lp_line_tbl(1).invoice_text:= 'createline from api' ;
lp_line_tbl(2).contract_id := 202111;
lp_line_tbl(2).Line_Type := 'SERVICE';
lp_line_tbl(2).Inventory_Item_id := 474 ;
OKS_IMPORT_LINE_PUB.CREATE_CONTRACT_LINE
( p_api_version =>1.0,
p_init_msg_list =>OKC_API.G_FALSE,
x_return_status =>l_return_status,
x_msg_count =>l_msg_count,
x_msg_data =>l_msg_data,
p_line_tbl =>lp_line_tbl,
X_LINE_TBL => lx_line_tbl);
dbms_output.put_line(l_msg_count);
dbms_output.put_line(l_return_status);
IF l_return_status<>'S' then
FOR i IN 1 .. fnd_msg_pub.count_msg
END IF;
END;
2.6.1 Description
The update contract line is used for updating contract lines of type Service, Usage, Extended
Warranty and Subscription.
OKS_IMPORT_LINE_PUB.Update_Contract_Line
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 default OKC_API.G_TRUE,
p_line_tbl IN line_tbl_type,
x_line_tbl OUT NOCOPY line_tbl_type,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2
);
Parameter Description:
Data
Parameter Name Type Reqd Description
contract_id Number Yes Contract Id
DECLARE
l_return_status VARCHAR2(200);
l_msg_count NUMBER;
l_msg_data VARCHAR2(200);
l_msg_index_out NUMBER;
l_data VARCHAR2(2000);
lp_line_tbl OKS_IMPORT_LINE_PUB.line_tbl_type;
i NUMBER :=1;
BEGIN
--set the org context
okc_context.set_okc_org_context(204,204);
FND_GLOBAL.apps_initialize(1000200,21708,515);
lp_line_tbl(1).contract_line_id :=
371685909989288577372718868168293172903;
lp_line_tbl(1).LINE_RENEWAL_TYPE_code := 'DNR';
OKS_IMPORT_LINE_PUB.update_CONTRACT_LINE
( p_api_version =>1.0,
p_init_msg_list =>OKC_API.G_true,
x_return_status =>l_return_status,
x_msg_count =>l_msg_count,
x_msg_data =>l_msg_data,
p_line_tbl =>lp_line_tbl,
X_LINE_TBL => lx_line_tbl);
dbms_output.put_line(l_msg_count);
dbms_output.put_line(l_return_status);
dbms_output.put_line('Processing status'||lx_line_tbl(1).processing_status);
dbms_output.put_line('Message '||lx_line_tbl(1).status_msg);
FOR i IN 1 .. fnd_msg_pub.count_msg
LOOP
END;
2.7.1 Description
The generate_bill_schedules API is used for generating the billing schedules.
OKS_IMPORT_LINE_PUB.generate_bill_schedules
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 default OKC_API.G_FALSE,
p_id IN NUMBER ,
p_level IN VARCHAR2,
p_sll_tbl IN strem_level_tbl ,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
);
Parameter Description:
Data
Parameter Name Type Reqd? Description
p_id Number Y
l_return_status VARCHAR2(1);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
l_id NUMBER;
l_level VARCHAR2(1);
BEGIN
okc_context.set_okc_org_context(204,204);
l_id:= 325615642872142512110346544268840703818;
l_level:= 'E';
l_sll_tbl(1).seq_no := 1;
l_sll_tbl(1).start_date := '01-JAN-2014';
l_sll_tbl(1).end_date := '31-DEC-2014';
l_sll_tbl(1).no_of_periods := 12;
l_sll_tbl(1).Duration := 1;
l_sll_tbl(1).uom_code := 'MTH';
oks_import_line_pub.generate_bill_schedules
(
p_api_version => 1.0,
p_init_msg_list => OKC_API.G_TRUE,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data ,
p_id => l_id ,
p_level => l_level ,
p_sll_tbl => l_sll_tbl
) ;
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line('Contract line billing schedules are created successfully ' );
--COMMIT;
END IF;
IF l_return_status<>'S' THEN
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.8.1 Description
The create subline API is used for creating a subline/covered level under a service/usage or
extended warranty line.
OKS_IMPORT_SUBLINE_PUB.create_subline( p_api_version IN
NUMBER,
p_init_msg_list IN VARCHAR2 default OKC_API.G_TRUE,
p_subline_tbl IN OUT NOCOPY l_subline_inrec_tbl,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2
);
Parameter Description:
Data
Parameter Name Type Reqd? Description
top_line_id NUMBER Y Unique Parent Contract Line Id
cov_level VARCHA
R2 Y
item_id NUMBER N Inventory Item Id
Customer_id NUMBER N Customer Id
System_id NUMBER N System Id
Party_id NUMBER N Party Id
Product_id NUMBER N Product Id
serial_number NUMBER N Serial Number
subline_status_CODE VARCHA
R2 N Status of new subline
subline_ref VARCHA
R2 N Negotiation Status
start_date DATE Y Start Date of the Subline
end_date DATE Y End Date of the Subline
invoice_text VARCHA
R2 N Invoice Text
Quantity NUMBER Y Quantity
uom VARCHA
R2 N Quantity UOM
price_uom VARCHA
R2
Y Price UOM
price_subtotal NUMBER Y Subtotal
renewal_type VARCHA
R2 N Renewal Type Code
instance_id NUMBER
N Instance Id
inv_print_flag VARCHA
R2
N Invoice Print Flag ‘Y’ or ‘N’.
attribute_category VARCHA N Descriptive Flexfield
N
attribute3 VARCHA Descriptive Flexfield Segments
R2 N
attribute4 VARCHA Descriptive Flexfield Segments
R2 N
attribute5 VARCHA Descriptive Flexfield Segments
R2 N
attribute6 VARCHA Descriptive Flexfield Segments
R2
N
attribute7 VARCHA Descriptive Flexfield Segments
R2
N
attribute8 VARCHA Descriptive Flexfield Segments
R2 N
attribute9 VARCHA Descriptive Flexfield Segments
R2 N
attribute10 VARCHA Descriptive Flexfield Segments
R2 N
attribute11 VARCHA Descriptive Flexfield Segments
R2 Y
attribute12 VARCHA Descriptive Flexfield Segments
R2
Y
attribute13 VARCHA Descriptive Flexfield Segments
R2
N
attribute14 VARCHA Descriptive Flexfield Segments
R2
N
attribute15 VARCHA Descriptive Flexfield Segments
R2
N
Usage Items
usage_estimation_defa NUMBER
ult N Estimation Default
usage_min NUMBER
N Period
usage_break_uom NUMBER N Break Up UOM
usage_prorate NUMBER
N Prorate
BEGIN
okc_context.set_okc_org_context(204,204);
l_api_version := 1.0;
--i:=1;
LOOP
l_subline_tbl(i).top_line_id :=
373300712291761735194527620190905246688;
l_subline_tbl(i).cov_level := 'COVER_ITEM';
l_subline_tbl(i).item_id := '149';
--l_subline_tbl(i).party_id :=
--l_subline_tbl(i).product_id
--l_subline_tbl(i).site_id
--l_subline_tbl(i).system_id
--l_subline_tbl(i).customer_id
l_subline_tbl(i).subline_ref := 'Test';
l_subline_tbl(i).start_date := '10-JAN-2014';
l_subline_tbl(i).end_date := '04-NOV-2014';
l_subline_tbl(i).invoice_text := 'Text';
l_subline_tbl(i).qty := 1;
l_subline_tbl(i).uom := 'EA';
l_subline_tbl(i).price_uom := 'YR';
--l_subline_tbl(i).price_subtotal
l_subline_tbl(i).renewal_type := 'FUL';
--l_subline_tbl(i).instance_id :=
l_subline_tbl(i).inv_print_flag := 'Y';
l_subline_tbl(i).attribute_category := 'Test';
l_subline_tbl(i).attribute1 := 'Test1';
l_subline_tbl(i).attribute2 := 'Test2';
l_subline_tbl(i).attribute3 := 'Test3';
l_subline_tbl(i).attribute4 := 'Test4';
l_subline_tbl(i).attribute5 := 'Test5';
l_subline_tbl(i).attribute6 := 'Test6';
l_subline_tbl(i).attribute7 := 'Test7';
l_subline_tbl(i).attribute8 := 'Test8';
COMMIT;
END;
--------------------------------------------------------------
SampleScript2: Create Usage subline
DECLARE
l_api_version NUMBER;
l_init_msg_list VARCHAR2(20) := 'T';
SUBTYPE subline_tbl IS oks_import_subline_pub.l_subline_inrec_tbl;
l_subline_tbl subline_tbl;
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
l_msg_data VARCHAR2(2000);
x_return_status VARCHAR2(1);
l_number_of_records NUMBER;
i NUMBER := 1;
BEGIN
okc_context.set_okc_org_context(204,204);
l_api_version := 1.0;
l_number_of_records := 1;
l_subline_tbl.DELETE;
l_subline_tbl(i).top_line_id :=
373300712291849986779359488120658797536;
l_subline_tbl(i).cov_level := 'INST_CTR';
l_subline_tbl(i).item_id := '6564';
--l_subline_tbl(i).party_id :=
--l_subline_tbl(i).product_id
--l_subline_tbl(i).site_id
--l_subline_tbl(i).system_id
--l_subline_tbl(i).customer_id
l_subline_tbl(i).subline_ref := 'Test';
l_subline_tbl(i).start_date := '10-JAN-2014';
l_subline_tbl(i).end_date := '04-NOV-2014';
l_subline_tbl(i).invoice_text := 'Text';
l_subline_tbl(i).qty := 1;
l_subline_tbl(i).uom := 'EA';
l_subline_tbl(i).price_uom := 'YR';
-- l_subline_tbl(i).price_subtotal := 100 ;
l_subline_tbl(i).renewal_type := 'FUL';
--l_subline_tbl(i).instance_id :=
l_subline_tbl(i).inv_print_flag := 'Y';
l_subline_tbl(i).attribute_category := 'Test';
l_subline_tbl(i).attribute1 := 'Test1';
l_subline_tbl(i).attribute2 := 'Test2';
l_subline_tbl(i).attribute3 := 'Test3';
l_subline_tbl(i).attribute4 := 'Test4';
l_subline_tbl(i).attribute5 := 'Test5';
l_subline_tbl(i).attribute6 := 'Test6';
l_subline_tbl(i).attribute7 := 'Test7';
l_subline_tbl(i).attribute8 := 'Test8';
l_subline_tbl(i).attribute9 := 'Test9';
l_subline_tbl(i).attribute10 := 'Test10';
l_subline_tbl(i).attribute11 := 'Test11';
l_subline_tbl(i).attribute12 := 'Test12';
l_subline_tbl(i).attribute13 := 'Test13';
COMMIT;
END;
2.9.1 Description
The update contract subline API is used for updating contract subline.
OKS_IMPORT_SUBLINE_PUB.update_subline( p_api_version IN
NUMBER,
p_init_msg_list IN VARCHAR2 default OKC_API.G_TRUE,
p_subline_tbl IN OUT NOCOPY l_subline_updrec_tbl,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2
);
Parameter Description:
Re
qd
Parameter Name Data Type ? Description
Subline_id NUMBER Y Unique Subline Id to be updated
subline_ref VARCHAR
2 N Negotiation Status
start_date DATE N Start Date of the Subline
end_date DATE N End Date of the Subline
invoice_text VARCHAR N
2 Invoice Text
Quantity NUMBER N Quantity
uom VARCHAR N
2 Quantity UOM
price_uom VARCHAR N
2
Price UOM
price_subtotal NUMBER N Subtotal
renewal_type VARCHAR N
2 Renewal Type Code
inv_print_flag VARCHAR N
2
Invoice Print Flag ‘Y’ or ‘N’.
attribute_category VARCHAR N
2 Descriptive Flexfield
attribute1 VARCHAR N Descriptive Flexfield Segments
2
attribute2 VARCHAR N Descriptive Flexfield Segments
2
Period
usage_break_uom NUMBER N Break Up UOM
usage_prorate NUMBER N
Prorate
BEGIN
okc_context.set_okc_org_context(204,204);
l_api_version := 1;
l_number_of_records := 1;
i:=1;
LOOP
l_subline_updrec_tbl(i).subline_id:=37168596476783824608226582464130628
1685;
l_subline_updrec_tbl(i).qty:=20;
COMMIT;
END IF;
/*
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('sqlerrm : '||sqlerrm);
*/
END;
2.10.1 Description
Contract Status Change API is used to change the contract status from Entered to Cancelled,
Cancelled to Entered and also to different statuses within the same status type.
OKS_STATUS_CHANGE_PUB.change_status(p_contract_id in varchar2,
p_line_id in varchar2,
p_subline_id in varchar2,
p_reason_code in varchar2,
p_comments in varchar2,
p_new_status_code IN VARCHAR2,
x_msg_data OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_return_status out nocopy
varchar2);
Parameter Description:
Data
Parameter Name Type Reqd? Description
p_contract_id NUMBER Y Unique Contract Id
Required if line/subline status has to be
p_line_id NUMBER changed Contract Number
VARCHAR Contract Number
p_subline_id 2 Required if subline status has to be changed Modifier
VARCHAR Status Change
p_reason_code 2 Y Reason Code
Additional
VARCHAR Comments to
p_comments 2 N change status
New Status to
which
p_new_status_cod VARCHAR contract/line/subli
e 2 Y ne to be modified
declare
l_return_status VARCHAR2(20);
l_msg_data VARCHAR2(1000);
l_msg_count NUMBER;
begin
oks_status_change_pub.change_status(p_contract_id =>447068,
p_line_id =>NULL,
p_subline_id =>NULL,
p_reason_code =>'EXPIRED',
p_comments =>NULL,
p_new_status_code =>'NEW',
x_msg_data =>l_msg_data,
x_msg_count => l_msg_count,
x_return_status => l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line(‘Status Change Action on contract occurred with return_status : '|| l_return_status );
COMMIT;
END IF;
IF l_return_status<>'S' then
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.11.1 Description
Cascade Attributes API is used to cascade attributes like dates and price list from headers to
lines and from lines to sublines.
OKS_CASCADE_ATTRIBUTES_PUB. OKS_CASCADE_ATTRIBUTES (
p_contract_id IN NUMBER
,header_lines_tbl IN cas_header_lines_tbl_type
,lines_sublines_tbl IN cas_lines_sublines_tbl_type
,X_return_status OUT NOCOPY Varchar2
,x_msg_tbl IN OUT NOCOPY OKS_ATTR_DEFAULTS_PVT.attr_msg_tbl_type
,x_line_msg_tbl IN OUT NOCOPY OKS_ATTR_DEFAULTS_PVT.attr_msg_tbl_type);
Parameter Description:
declare
l_header_lines_tbl oks_Cascade_attributes_pub.cas_header_lines_tbl_type;
l_lines_sublines_tbl oks_Cascade_attributes_pub.cas_lines_sublines_tbl_type;
i NUMBER;
l_contract_id NUMBER;
l_id NUMBER;
l_return_status VARCHAR2(100);
l_msg_tbl OKS_ATTR_DEFAULTS_PVT.attr_msg_tbl_type;
l_line_msg_tbl OKS_ATTR_DEFAULTS_PVT.attr_msg_tbl_type;
G_EXCEPTION_HALT_VALIDATION EXCEPTION;
begin
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
l_contract_id :=200068;
okc_context.set_okc_org_context(p_chr_id =>l_contract_id);
i :=1;
OPEN get_lines_csr(l_contract_id);
LOOP
FETCH get_lines_csr INTO l_id;
EXIT WHEN get_lines_csr%NOTFOUND;
i :=i+1;
END LOOP;
oks_cascade_attributes_pub.OKS_CASCADE_ATTRIBUTES(
p_contract_id => l_contract_id
,header_lines_tbl => l_header_lines_tbl
,lines_sublines_tbl => l_lines_sublines_tbl
,X_return_status => l_return_status
,x_msg_tbl => l_msg_tbl
,x_line_msg_tbl => l_line_msg_tbl );
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line(‘Cascade Attributes Action is completed successfully ‘);
COMMIT;
END IF;
IF l_return_status<>'S' then
FOR i IN 1..l_msg_tbl.count
LOOP
l_msg_data := l_msg_tbl(i).description
Dbms_Output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.12.1 Description
Terminate API is used to terminate a contract/line/subline with various options like suppress
credit, full credit or with some override amount.
Parameter Description:
Data
Parameter Name Type Reqd? Description
declare
l_return_status VARCHAR2(100);
l_date_term DATE;
L_MSG_DATA VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_index_out NUMBER;
BEGIN
fnd_global.apps_initialize
( user_id => 1000200
okc_context.set_okc_org_context(p_chr_id =>361068);
Dbms_Output.put_line('l_return_status - '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line('Party Contact Id : '||x_ctcv_rec_type.id ||' is created ');
COMMIT;
END IF;
IF l_return_status<>'S' then
FOR i IN 1 .. fnd_msg_pub.count_msg
LOOP
fnd_msg_pub.get (p_msg_index => i,
p_encoded => 'T',
p_data => l_msg_data,
p_msg_index_out => l_msg_index_out
);
fnd_message.set_encoded (l_msg_data);
l_msg_data := fnd_message.get;
dbms_output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.13.1 Description
Parameter Description:
Data
Parameter Name Type Reqd? Description
p_contract_id Number Y Contract Header Id
Indicates if the contract
has to be submitted for
p_submit_for_approval_yn Varchar2 N approval
Indicates if QA
warnings can be
ignored when
p_ignore_warning_yn Varchar2 N submitting for approval
Declare
l_return_status VARCHAR2(1000);
l_msg_tbl okc_qa_check_pub.msg_tbl_type;
L_MSG_DATA VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_index_out NUMBER;
begin
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line('Contract QA check is performed and submitted for approval’);
COMMIT;
END IF;
IF l_return_status<>'S' then
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.14.1 Description
This API is used to renew a contract.
p_new_uomcode Period
Yes
declare
l_ctr_id NUMBER;
l_ret_sts VARCHAR2(100);
L_MSG_DATA VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_index_out NUMBER;
begin
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
oks_renew_contractapi_pub.renew_contract(p_contract_id =>451070
,p_new_Contract_number =>NULL
,p_new_contract_modifier =>NULL
,p_new_startdate =>NULL
,p_new_enddate =>NULL
,p_newduration =>1
,p_new_uomcode =>'YR'
,p_ignore_warning_yn =>’Y’
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line(‘Contract is renewed successfully ' );
COMMIT;
END IF;
IF l_return_status<>'S' then
FOR i IN 1..l_msg_count
LOOP
l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END IF;
END;
2.15.1 Description
This API is used to delete contract/line/subline.
OKS_DELETE_CONTRACT_PUB.DELETE_CONTRACT(p_contract_id IN NUMBER
,p_line_id IN NUMBER
,p_subline_id IN NUMBER
,x_msg_count OUT NOCOPY
NUMBER
,x_msg_data OUT NOCOPY
VARCHAR2
,x_return_status OUT NOCOPY
VARCHAR2);
Parameter Description:
declare
l_return_status VARCHAR2(100);
l_msg_count VARCHAR2(1000);
l_msg_data VARCHAR2(1000);
l_msg_index_out NUMBER;
begin
fnd_global.apps_initialize
( user_id => 1000200
,resp_id => 21708
,resp_appl_id => 515
);
okc_context.set_okc_org_context(p_chr_id=>451069);
oks_delete_contract_pub.DELETE_CONTRACT(p_contract_id =>451070
,p_line_id =>371800622146928394901908716247989042342
,p_subline_id =>371800622146939275234285247910561397926
,x_msg_data => l_msg_data
,x_msg_count => l_msg_count
,x_return_status =>l_return_status);
Dbms_Output.put_line('l_return_status '||l_return_status);
IF l_return_status='S' THEN
Dbms_Output.put_line(‘Delete Action Performed successfully ');
COMMIT;
END IF;
Dbms_Output.put_line(l_return_status);
FOR i IN 1..l_msg_count
LOOP l_msg_data := FND_MSG_PUB.Get(i, p_encoded => FND_API.G_FALSE);
Dbms_Output.put_line(l_msg_data);
END LOOP;
END;