Query The Service Contracts Tables For Header, Line, Subline and Billing Information
Query The Service Contracts Tables For Header, Line, Subline and Billing Information
B2. Data taken directly from contract table. (Note that this query may appear to
return duplicate lines, as the query on okc_k_headers_all_b will return more th
an one contract if the contract has been renewed).
SELECT *
FROM okc_k_lines_b
WHERE chr_id IN (SELECT id
FROM okc_k_headers_all_b
WHERE contract_number = '<contract number>');
C. Contract Subline Data
Note: When you add a subline to a contract OKC_K_LINES_B is populated with data,
some of the data created there for each subline is internal data. Use the LSE_I
D to restrict the data returned when querying.
C1. Query for all the sublines on a contract with a Level type that can be seen
when authoring the contract (i.e. restricts to lines which have Level of Product
, Site, Item, System, Customer or Site). Note that this query may appear to retu
rn duplicate lines, as the query on okc_k_headers_all_b will return more than on
e contract if the contract has been renewed.
SELECT id
, line_number
, cle_id
, sts_code
, hidden_ind
, DECODE( lse_id, 8, 'Party', 7, 'Item', 9, 'Product', 10, 'Site', 11,
'System', 35, 'Customer' ) "Level"
, object_version_number
, price_negotiated
, price_level_ind
, price_unit
, price_unit_percent
, price_type
, currency_code
, price_list_id
, price_list_line_id
, item_to_price_yn
, pricing_date
, date_terminated
, start_date
, end_date
FROM okc_k_lines_b
WHERE dnz_chr_id IN (SELECT id
FROM okc_k_headers_all_b
WHERE contract_number = '<contract number>')
AND lse_id IN (8, 7, 9, 10, 11, 35);
C2. Query for contract sublines for a given contract line only. Replace <parent
line number> with the line number of the required contract line (e.g. 1, 2. 3),
taken either from the contract form, or from query B2. (Note that this query may
appear to return duplicate lines, as the query on okc_k_headers_all_b will retu
rn more than one contract if the contract has been renewed).
SELECT id
, line_number
, cle_id
, sts_code
, DECODE( lse_id, 8, 'Party', 7, 'Item', 9, 'Product', 10, 'Site', 11,
'System', 35, 'Customer' ) "Level"
, object_version_number
, price_negotiated
, price_level_ind
, price_unit
, price_unit_percent
, price_type
, currency_code
, price_list_id
, price_list_line_id
, item_to_price_yn
, pricing_date
, date_terminated
, start_date
, end_date
FROM okc_k_lines_b
WHERE dnz_chr_id IN (SELECT id
FROM okc_k_headers_all_b
WHERE contract_number = '<contract number>')
AND cle_id IN (SELECT id
FROM okc_k_lines_b
WHERE chr_id IN (SELECT id
FROM okc_k_headers_all_b
WHERE contract_number = '<contract number>'
)
AND line_number = '<parent line number>')
AND lse_id IN (8, 7, 9, 10, 11, 35);
C3. This query returns the inventory item for a given contract subline where the
Level = Product (i.e. the subline is for a particular install base instance).
SELECT kl.line_number
, ks.name
, i.segment1
FROM okc_k_headers_all_b kh
, okc_k_lines_b kl
, okc_k_items ki
, okc_line_styles_v ks
, csi_item_instances c
, mtl_system_items_b i
WHERE kh.contract_number = '<contract number>'
AND kh.contract_number_modifier IS NULL
--can be populated
AND kh.id = kl.dnz_chr_id
AND kh.id = ki.dnz_chr_id
AND kl.id = ki.cle_id
AND kl.lse_id = ks.id
AND ki.jtot_object1_code IN ('OKX_CUSTPROD')
AND c.last_vld_organization_id = i.organization_id
AND TO_NUMBER( ki.object1_id1 ) = c.instance_id
AND c.inventory_item_id = i.inventory_item_id;
D. Contract Billing Data
D1. This query shows the billing invoice details. Note that -99 will be shown fo
r invoice number if the 'Service Contracts Fetch Receivables Info For Billing' c
oncurrent program has not been run after Autoinvoice has been run.
SELECT DISTINCT d.contract_number
, a.trx_number "Invoice Number"
, TO_CHAR( b.date_billed_from
, 'DD-MON-YYYY HH24-MI' )
"Bill From"
, TO_CHAR( b.date_billed_to
, 'DD-MON-YYYY HH24-MI' )
"Bill To"
, b.amount
FROM oks_bill_transactions a
, oks_bill_txn_lines aa
, oks_bill_cont_lines b
, okc_k_lines_b c
, okc_k_headers_all_b d
WHERE a.id = aa.btn_id
AND aa.bcl_id = b.id
AND b.cle_id = c.cle_id
AND c.dnz_chr_id = d.id
AND d.id = '<contract id from query A>';
D2. This query shows the billing transaction details. The data in this table is
shown in the History tab of the Billing Schedule form in the contract.
For the bill_action, the codes have the following meanings:
Regular Invoice -RI,
Termination Credit - TR,
Averaging - AV,
Settlement Invoice - SRI,
Settlement Credit - STR.
SELECT hdr.contract_number "Contract"
, hdr.contract_number_modifier "Modifier"
, hdr.id
, TO_CHAR( cont.creation_date
, 'DD-MON-YYYY HH24:MI' )
"Creation Date"
, bill_action
, btn_id "Billing Transaction ID"
, amount
, TO_CHAR( date_billed_from
, 'DD-MON-YYYY' )
"Date Billed From"
, TO_CHAR( date_billed_to
, 'DD-MON-YYYY' )
"Date Billed To"
FROM oks_bill_cont_lines cont
, okc_k_lines_b line
, okc_k_headers_all_b hdr
WHERE hdr.id = line.dnz_chr_id
AND cont.cle_id = line.id
AND hdr.id = '<contract id from query A>'
ORDER BY cont.creation_date;
D3. This query returns data about the contract Line ids corresponding to each in
voice as well as invoice details.
SELECT bcl.id
, bcl.cle_id
, bcl.btn_id
, bcl.bill_action
, okl.id "Line id"
, okh.id "Contract id"
, btn.trx_number "Invoice"
, bcl.date_billed_from
, bcl.date_billed_to
FROM oks_bill_cont_lines bcl
, okc_k_lines_b okl
, okc_k_headers_all_b okh
, oks_bill_transactions btn
, oks_bill_txn_lines btl
WHERE okh.contract_number = '<contract number>'
AND okh.id = okl.dnz_chr_id
AND okl.cle_id IS NULL
AND okl.id = bcl.cle_id
AND btn.id = bcl.btn_id
AND btl.btn_id = btn.id
AND btl.bill_instance_number IS NOT NULL;
D4. This query returns information about what the contract billing schedule for
a contract and can be used to investigate amounts expected to be billed in a bil
ling period.
SELECT TO_CHAR( bcl.id )
, TO_CHAR( bsl.id )
, TO_CHAR( lvl.id )
, lvl.date_start
, bsl.date_billed_from
, lvl.date_end
, bsl.date_billed_to
, bcl.date_next_invoice
, lvl.date_transaction
, lvl.date_to_interface
, lvl.date_completed
, TO_CHAR( rul_id )
, TO_CHAR( lvl.parent_cle_id )
, bsl.amount
FROM oks_bill_sub_lines bsl
, oks_bill_cont_lines bcl
, oks_level_elements lvl
, okc_k_lines_b kl
, okc_k_headers_all_b kh
WHERE kh.contract_number = '<contract number>'
AND kl.dnz_chr_id = kh.id
AND lvl.dnz_chr_id = kh.id
AND bcl.cle_id = kl.id
AND bcl.id = bsl.bcl_id
AND lvl.cle_id = bsl.cle_id;
E. Receivables Interface Data
E1. Query to return all the data in the RA interface table for a given service c
ontract. This will return the data populated into the table by Service Contracts
Main Billing. Note that this query will not return any data if Autoinvoice has
been run since the records are deleted from this table once they have been succe
ssfully processed by Autoinvoice.
SELECT *
FROM ra_interface_lines_all
WHERE sales_order = '<contract number>';
F. Subscription Contracts
F1. How to find the install base instance created for the subscription line item
. (Note that when you enter a subscription line, the application automatically c
reates an Oracle Install Base item instance. This is what this query is retrievi
ng).
Note: the last line in the query can be commented out if your contract has no mo
difier.
SELECT osh.instance_id
, okh.contract_number
, okh.contract_number_modifier
, okl.line_number
FROM oks_subscr_header_b osh
, okc_k_headers_all_b okh
, okc_k_lines_b okl
WHERE osh.dnz_chr_id = okh.id
AND osh.cle_id = okl.id
AND okl.chr_id = okh.id
AND okh.contract_number = '<contract number>'
AND NVL( okh.contract_number_modifier, '-' ) = NVL( '<contract_modifier>', '-
' );
F2. Query to find the install base instances created by a Subscription Contract
as a result of subscription fulfillment.
SELECT csi.instance_number
FROM oks_subscr_elements ose
, csi_item_instances csi
WHERE ose.dnz_chr_id IN (SELECT id
FROM okc_k_headers_all_b
WHERE contract_number = '<contract number>'
AND NVL( contract_number_modifier, '-' ) = NVL( '<c
ontract modifier>', '-' ))
AND ose.order_line_id = csi.last_oe_order_line_id;
f3. QUERY TO find which subscription contract line created THE install base INST
ANCE, FOR A s/ubscription fulfillment.
SELECT okh.contract_number
, okh.contract_number_modifier
, okl.line_number
FROM oks_subscr_elements ose
, csi_item_instances csi
, okc_k_headers_all_b okh
, okc_k_lines_b okl
WHERE csi.instance_number = '<Instance Number>'
AND ose.order_line_id = csi.last_oe_order_line_id
AND okh.id = ose.dnz_chr_id
AND okl.chr_id = okh.id
AND okl.id = ose.dnz_cle_id;