OKS Contract Termination Upload

Description

OKS Contract Termination Upload terminates Oracle Service Contracts from Excel. It works like the Terminate action in the Service Contracts Authoring window. Download the lines of the contracts you want to change, then mark rows to terminate a whole contract, to terminate a single line or subline, or to delete a line from a contract that is still in Entered status. Oracle’s termination process sets the statuses, credits, billing schedules and history, just as it does when you terminate from the form.

When to use it

  • Terminate many service contracts at once, for example when customers cancel or end their agreements.
  • End coverage for individual service lines or covered products (partial termination) and keep the rest of the contract active.
  • Schedule terminations for a future date.
  • Remove unwanted lines from contracts that are still in Entered status, before they are signed.

Before you start

  • Access to the upload in Blitz Report, under a responsibility that has access to the contracts’ operating unit.
  • The contracts are service contracts. Warranty and other contract types are not downloaded or processed.
  • Decide the termination date and termination reason for each contract or line.
  • A termination cannot be reversed by the upload. Check the downloaded rows carefully before you upload.

Step 1 – Set the parameters

Open OKS Contract Termination Upload in Blitz Report and set the parameters:

ParameterMeaning
Upload ModeKeep the default, Create, Update. It downloads the contract lines that match the other parameters.
Operating UnitDownloads only the contracts of this operating unit.
Contract NumberThe service contract(s) to download.
Contract StatusDownloads only contracts in this status, for example Active or Entered.
Line StatusDownloads only lines and sublines in this status.
Blitz Report run screen for OKS Contract Termination Upload with Upload Mode Create, Update, Operating Unit Vision Operations, Contract Number 21987 and Contract Status Active

Step 2 – Run to download the Excel file

Click Run. The Excel file downloads and opens. It has one row for each service line (for example 1) and each subline (for example 1.1) of the selected contracts, with the contract and line status, dates, item and negotiated amount.

Excel file with service line 1 and subline 1.1 of active service contract 21987

Step 3 – Mark the rows to terminate or delete

The contract and line columns are for reference and cannot be changed. On each row, choose one action:

  • Terminate Contract = Yes terminates the whole contract with all its lines. You only need to set it on one row of the contract. If more than one row of the contract has it, the contract is still terminated only once.
  • Terminate Line = Yes terminates only this row’s line or subline. If you terminate a line, its sublines are terminated too.
  • Delete Line = Yes deletes this row’s line. You can delete lines only while the contract is in Entered status.

For a termination, also enter the Termination Date and choose a Termination Reason from the list, for example Mutual Agreement or End of Term. A date on or before today terminates immediately. A future date schedules the termination. Rows with no action are not changed.

Excel file with Terminate Line set to Yes on line 1, termination date 31-Jan-08 and reason Mutual Agreement, marked Update

Step 4 – Validate and Save

Click Validate and Save. This checks for missing required values and saves the file. Correct any rows it flags before uploading.

The marked line shows status Valid after Validate and Save

Step 5 – Upload the file

In Blitz Report click Upload and select the saved file. This submits the upload request, which terminates the marked contracts and lines and deletes the marked lines.

File Upload page with the saved Excel file selected for upload

Step 6 – Review the result report

When the request completes, a result report opens listing every uploaded row with its status and message, for example “Line 1 terminated as of 31-Jan-2008.”, together with the new line status.

Result report showing line 1 of contract 21987 terminated as of 31-Jan-2008 with line status Terminated and status Success

What’s produced

  • Service contracts, lines and sublines terminated as of the termination date, with the termination reason. Oracle Service Contracts calculates the credits and adjusts the billing schedules.
  • Lines deleted from Entered contracts.
  • A result report listing every row with a status (success or error) and a message.

Common questions

Can I undo a termination?
No, the upload cannot reverse it. Test on a few rows first, and check the termination date and reason before you upload.

What is the difference between terminating and deleting a line?
A terminated line stays on the contract with the status Terminated, a termination date and a reason, and Oracle calculates any credit for it. A deleted line is removed from the contract completely. You can only delete lines from contracts in Entered status.

Does terminating a line terminate its sublines?
Yes. If you terminate a service line, its covered products and other sublines are terminated too. To end coverage for only one covered product, set Terminate Line on the subline row, for example line 1.1.

Does terminating all lines terminate the contract?
No. Terminate Line changes only the line. To terminate the contract itself, set Terminate Contract to Yes on one of its rows.

Can I terminate warranty contracts?
No. The upload processes only service contracts.

Can I set more than one action on a row?
No. Choose only one of Terminate Contract, Terminate Line and Delete Line on each row.

Troubleshooting

MessageCauseWhat to do
Termination Date and Termination Reason are required to terminate.Terminate Contract or Terminate Line is Yes, but there is no termination date or reason.Enter the Termination Date and choose a Termination Reason.
Choose only one of Terminate Contract, Terminate Line and Delete Line per row.The row has more than one action.Keep one action on the row.
Lines can only be deleted while the contract is in Entered status.Delete Line is Yes, but the contract is signed or active.Use Terminate Line instead.
Line Number is required to terminate or delete a line.The row has no line number.Use a downloaded row of the line, or enter its Line Number.
Line … not found on contract …The line number does not exist on the contract.Use a top line number (1) or a subline number (1.1) from a new download.
Line … exists more than once on contract …The contract has more than one line with the same number.Terminate or delete the line in the Service Contracts Authoring window.
Contract … not found.The contract number and modifier do not match an existing contract.Download the contract again and use the downloaded row.
Contract … is not a service contract.The contract is a warranty or another contract type.Terminate it in the application that owns that contract type.
You do not have access to the operating unit of contract …Your responsibility has no access to the contract’s operating unit.Upload under a responsibility with access to that operating unit.
Contract terminated by an earlier row of this upload.Terminate Contract was set on more than one row of the same contract. This is not an error.No action needed. The contract was terminated once.
select
to_char(null) action_,
to_char(null) status_,
to_char(null) message_,
null modified_columns_,
haouv.name operating_unit,
okhab.contract_number,
okhab.contract_number_modifier contract_modifier,
osv.meaning contract_status,
okhab.start_date contract_start_date,
okhab.end_date contract_end_date,
nvl2(oklb.cle_id,oklb_p.line_number||'.',null)||oklb.line_number line_number,
olst.name line_type,
(
select
case
when oki.jtot_object1_code in ('OKX_SERVICE','OKX_USAGE') then (select msiv.concatenated_segments from mtl_system_items_vl msiv where to_number(oki.object1_id1)=msiv.inventory_item_id and to_number(oki.object1_id2)=msiv.organization_id)
when oki.jtot_object1_code='OKX_CUSTPROD' then (select cii.instance_number||' '||msiv.concatenated_segments from csi_item_instances cii, mtl_system_items_vl msiv where to_number(oki.object1_id1)=cii.instance_id and cii.inventory_item_id=msiv.inventory_item_id and cii.inv_master_organization_id=msiv.organization_id)
when oki.jtot_object1_code='OKX_COUNTER' then (select cct.name from csi_counters_tl cct where to_number(oki.object1_id1)=cct.counter_id and cct.language=userenv('lang'))
else oki.object1_id1
end
from
okc_k_items oki
where
oklb.id=oki.cle_id and
rownum=1
) item,
osv_l.meaning line_status,
oklb.start_date line_start_date,
oklb.end_date line_end_date,
oklb.price_negotiated negotiated_amount,
to_char(null) terminate_contract,
to_char(null) terminate_line,
to_date(null) termination_date,
to_char(null) termination_reason,
to_char(null) delete_line,
to_char(okhab.id) chr_id,
to_char(oklb.id) cle_id,
null upload_row
from
okc_k_headers_all_b okhab,
hr_all_organization_units_vl haouv,
okc_statuses_v osv,
okc_k_lines_b oklb,
okc_k_lines_b oklb_p,
okc_line_styles_tl olst,
okc_statuses_v osv_l
where
1=1 and
okhab.scs_code='SERVICE' and
okhab.authoring_org_id in (select mgoat.organization_id from mo_glob_org_access_tmp mgoat) and
okhab.authoring_org_id=haouv.organization_id and
okhab.sts_code=osv.code and
okhab.id=oklb.dnz_chr_id and
oklb.lse_id in (1,7,8,9,10,11,12,13,14,35) and
oklb.cle_id=oklb_p.id(+) and
oklb.lse_id=olst.id and
olst.language=userenv('lang') and
oklb.sts_code=osv_l.code
Parameter NameSQL textValidation
Upload Mode
:p_upload_mode like '%' || xxen_upload.action_update
LOV
Operating Unit
haouv.name=:operating_unit
LOV
Contract Number
okhab.contract_number=:contract_number
LOV
Contract Status
okhab.sts_code=:contract_status
LOV
Line Status
oklb.sts_code=:line_status
LOV