Here, we will expose rest Trigger API and post XML request payload to Rest api and get back a response as XML by the rest API.
Request schema used:
Response schema used:
Detailed steps:
Integration view:
Here, we will expose rest Trigger API and post XML request payload to Rest api and get back a response as XML by the rest API.
Request schema used:
Response schema used:
Detailed steps:
Integration view:
In general, count function accepts only one argument and counts the number of rows.
Example table:
Office with 5 employees:
Id name
1 ram
2 sham
3 jadu
4 madhu
5 NULL
>>>>>>>>>>count(*)<<<<<<<<<<
1. Count(*): when * is used as an argument, it simply counts the total number of rows including the NULLs.
Query: Select count(*) as total from office
Output: Total: 5
>>>>>>>>>>count(1)<<<<<<<<<<
2. Count(1): it counts all the rows including NULLs. What count(1) really does is that it replaces all the records we get from the query result with the value 1 and then counts the rows.
Query: Select 1 from office
Output:
1
1
1
1
1
Query: Select count(1) as total from office
Output: total: 5
>>>>>>>>>>count(column_name)<<<<<<<<<<
3. Count(column_name): it counts all the rows but not NULLs.
Query: Select count(id) as total from office
Output: 5
Query: Select count(name) as total from office
Output: 4
Here, we are using a long sql query to fetch all the parameters respect to import callback which we will use to validate later.
Tables used:
How the tables look like:
Xla_events:
Xla_transaction_lines:
Xla_accounting_errors:
How the import callback output looks:
BI report SQL Query:
Select 'Source: '|| LISTAGG(a.event_type_code, ':') within group ( order by a.event_type_code) as column1
From (Select distinct xe.event_type_code from xla_transaction_lines xtl, xla_events xe
Where xtl.event_id = xe.event_id
And xe.data_set_name = 'XLA_LOAD_' || :p_import_request_id
And xe.event_type_code is not null) a
//this code is used to get the event type code for the matched import request id. The event type code can have multiple values so used LISTAGG to make a row of the even types.
Union all
Select 'Total number of transactions reveived' || NVL((select received_rec.received_count
From (select count(1) as received_count from xla_transaction_lines xtl where 1=1 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id and xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) received_rec
Where received_rec.received_count <> 0),0)
As count_rcv from dual
Union all
Select 'Total number of debit transactions reveived' || NVL((select debit_rec.debit_count
From (select count(1) as debit_count from xla_transaction_lines xtl where 1=1 and xtl.number1 >=0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id and xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) debit_rec
Where debit_rec.debit_count <> 0),0)
As debit_count_rcv from dual
Union all
Select 'Total number of credit transactions reveived' || NVL((select credit_rec.credit_count
From (select count(1) as credit_count from xla_transaction_lines xtl where 1=1 and xtl.number1 <0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id and xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) credit_rec
Where credit_rec.credit_count <> 0),0)
As credit_count_rcv from dual
Union all
Select 'Total amount of debit transactions reveived' || NVL((select round(debit_rec.debit_rev_amount,2)
From (select NVL(sum(xtl.number1),0)as debit_rcv_amount from xla_transaction_lines xtl where 1=1 and xtl.number1 > 0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id and xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) debit_rec
Where debit_rec.debit_rcv_amount <> 0),0)
As debit_amount_rcv from dual
Union all
Select 'Total amount of credit transactions reveived' || NVL((select round(credit_rec.credit_rev_amount,2)
From (select NVL(sum(xtl.number1),0)as credit_rcv_amount from xla_transaction_lines xtl where 1=1 and xtl.number1 < 0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id and xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) credit_rec
Where credit_rec.credit_rcv_amount <> 0),0)
As credit_amount_rcv from dual
Union all
Select 'Total No of Transactions Processed' ||
NVL((select process_rec.process_count process_trans
From (select count(1) as process_count
From xla_transaction_lines xtl where 1=1 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id
And xe.event_status_code='P'
And xe.process_status_code='P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) process_rec
Where process_rec.process_count <> 0),0)
As tot_process_count from dual
Union all
Select 'Total No of Debit Transactions Processed' ||
NVL((select debit_rec.debit_count
From (select count(1) as debit_count
From xla_transaction_lines xtl where 1=1 and xtl.number1>=0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id
And xe.event_status_code='P'
And xe.process_status_code='P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) debit_rec
Where debit_rec.debit_count <> 0),0)
As tot_debit_count from dual
Union all
Select 'Total Amount of Debit Transactions Processed' ||
NVL((select round( debit_amt_rec.debit_line_amount,2) debit_line_amount
From (select NVL(SUM(xtl.number1),0) as debit_line_amount
From xla_transaction_lines xtl where 1=1 and xtl.number1>0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id
And xe.event_status_code='P'
And xe.process_status_code='P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) debit_amt_rec
Where debit_amt_rec.debit_line_amount<> 0),0)
As tot_debit_amount from dual
Union all
Select 'Total No of credit Transactions Processed' ||
NVL((select credit_rec.credit_count
From (select count(1) as credit_count
From xla_transaction_lines xtl where 1=1 and xtl.number1<0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id
And xe.event_status_code='P'
And xe.process_status_code='P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) credit_rec
Where credit_rec.credit_count <> 0),0)
As tot_credit_count from dual
Union all
Select 'Total Amount of Credit Transactions Processed' ||
NVL((select round( credit_amt_rec.credit_line_amount,2) credit_line_amount
From (select NVL(SUM(xtl.number1),0) as credit_line_amount
From xla_transaction_lines xtl where 1=1 and xtl.number1<0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id
And xe.event_status_code='P'
And xe.process_status_code='P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) credit_amt_rec
Where credit_amt_rec.credit_line_amount<> 0),0)
As tot_credit_amount from dual
Union all
Select 'Total No of Debit Transactions Not Processed' ||
NVL((select debit_rec.debit_count
From (select count(1) as debit_count
From xla_transaction_lines xtl where 1=1 and xtl.number1>=0 and exists (select 1 from xla_events xe
where xtl.event_id = xe.event_id
And xe.event_status_code<>'P'
And xe.process_status_code<>'P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) debit_rec
Where debit_rec.debit_count <> 0),0)
As tot_debit_count from dual
Union all
Select 'Total Amount of Debit Transactions Not Processed' ||
NVL((select round( debit_amt_rec.debit_line_amount,2) debit_line_amount
From (select NVL(SUM(xtl.number1),0) as debit_line_amount
From xla_transaction_lines xtl where 1=1 and xtl.number1>0 and exists (select 1 from xla_events xe
where xtl.event_id = xe.event_id
And xe.event_status_code<>'P'
And xe.process_status_code<>'P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) debit_amt_rec
Where debit_amt_rec.debit_line_amount<> 0),0)
As tot_debit_amount from dual
Union all
Select 'Total No of credit Transactions Not Processed' ||
NVL((select credit_rec.credit_count
From (select count(1) as credit_count
From xla_transaction_lines xtl where 1=1 and xtl.number1<0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id
And xe.event_status_code<>'P'
And xe.process_status_code<>'P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) credit_rec
Where credit_rec.credit_count <> 0),0)
As tot_credit_count from dual
Union all
Select 'Total Amount of Credit Transactions Not Processed' ||
NVL((select round( credit_amt_rec.credit_line_amount,2) credit_line_amount
From (select NVL(SUM(xtl.number1),0) as credit_line_amount
From xla_transaction_lines xtl where 1=1 and xtl.number1<0 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id
And xe.event_status_code<>'P'
And xe.process_status_code<>'P'
xe.data_set_name='XLA_LOAD_' || :p_import_request_id)) credit_amt_rec
Where credit_amt_rec.credit_line_amount<> 0),0)
As tot_credit_amount from dual
Union all
Select 'Total number of Errored transactions:' || NVL((select error_rec.error_count
From (select count(1) as error_count from xla_transaction_lines xtl where 1=1 and exists (select 1 from xla_events xe where xtl.event_id = xe.event_id and xe.data_set_name='XLA_LOAD_' || :p_import_request_id) and exists (select 1 from xla_accounting_errors xae where xae.event_id=xtl.event_id) ) error_rec
Where error_rec.error_count <> 0),0)
As error_count from dual
Overview:
Business Object:
Data Manager:
Other tools:
Visual Builder benefits:
Navigations:
Here, we will create a ETEXT template using globally provided format and create a BI report.
Highlevel steps:
BI report Query:
Select hp.party_name supplier_name,
poz.segment1 supplier_number,
poz.vendor_id supplier_id,
hp.email_address,
hp.country,
hp.city,
hp.status
from POZ_SUPPLIERS poz, HZ_PARTIES hp where 1=1
And poz.party_id = hp.party_id
And rownum<=10;
Global Template for ETEXT(modify as per requirement): save the format in ms word with .rtf extension.
Delimiter Format Setup:
Format Setup:
Hint: Define formatting options...
<TEMPLATE TYPE> | DELIMITER_BASED |
<OUTPUT CHARACTER SET> | iso-8859-1 |
<CASE CONVERSION> | UPPER |
<NEW RECORD CHARACTER> | Carriage Return |
Hint: Format Data Records Table for DELIMITER_BASED
<LEVEL> | DATA_DS | ||
<MAXIMUMLENGTH> | <FORMAT> | <DATA> | <COMMENTS> |
<NEW RECORD> | InvoiceHeader | ||
250 | Alpha | 'Invoice_id' |
|
<LEVEL> | G_1 | ||
<MAXIMUMLENGTH> | <FORMAT> | <DATA> | <COMMENTS> |
<NEW RECORD> | CLRDAta | ||
250 | Alpha | INVOICE_ID |
|
<END LEVEL> | G_1 |
<END LEVEL> | DATA_DS |
Steps in details(Screenshots):
Here we will download BI publisher desktop tool, install and add Ins to MS word.
Steps to follow:
Step1: Go to the following Oracle link and download 32bit or 64 bit:
https://www.oracle.com/middleware/technologies/analytics-publisher/downloads.html
1. Export 11g OSB code and import in 12c Jdeveloper. Steps to import OSB project in Jdeveloper: File⇾Import⇾Service Bus Resources⇾ Se...