Analytics Catalog/Oracle Fusion ERP/General Ledger/Italian Journal Book Report
Explore the catalogReportsModulesEnterprise modelOTBI subject areasBICC PVOs
Oracle Fusion · General Ledger

Italian Journal Book Report

General Ledger

The Italian statutory journal book (Libro Giornale) — all accounting entries in strict chronological, sequentially-numbered order, in the format Italian law requires for the bound book of original entry.

Run note · BIP run  High-volume GL extracts can exceed BI Publisher's online output limit and time out. Run it as a scheduled process (ESS) with output bursted to file or email rather than online preview, and bound it by ledger and period.

Run note · Performance  The subledger (XLA) join — especially Projects-to-XLA — is a known BI Publisher performance trap on large ledgers. Pre-join it in the warehouse, or apply tight ledger, period, and source filters before running online.

Sample build of the Italian Journal Book Report — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.

Italian Journal Book Report
Sample build · illustrative
Filters
Mm
Sample
From Period
FEB-26
Sum By Acc
Sample
To Period
FEB-26
52,000
Entries
no gaps
Sequential
4
Out of date order
SequenceJournal DateAccountDescriptionDebitCredit
Sample2026-04-301000-2100-000Sample$1,240,500.00$1,240,500.00
2026-03-311000-5400-000$842,150.75$842,150.75
Sample2026-02-281000-1410-000Sample$96,400.00$96,400.00
2026-01-312000-2100-000$1,005,233.10$1,005,233.10
Sample2025-12-311000-6300-000Sample$58,720.40$58,720.40
Sample2026-04-301000-2100-000Sample$1,240,500.00$1,240,500.00
AI Analyst · active
reading

The report lists entries in legal sequence with chronological ordering, per the Libro Giornale rules.

flag

Four entries post out of date order relative to their sequence number — Italian law requires sequence to follow date, which breaks the book's legal validity.

root cause & next step

Re-sequence the four entries to chronological order before binding; sequence-vs-date breaks are the classic Libro Giornale defect.

Illustrative data. The live interactive version — drill-through, filters, export, and the AI Analyst — runs on your warehouse. See it live →

This is the report's BI Publisher data model — the SQL data set BI Publisher runs against Oracle tables to produce the output. The same SQL becomes a dbt model in your warehouse, so one definition drives both the formatted report and the analytics layer.

Data sources

How it interconnects: this data set reads the physical tables above. Those same tables surface in OTBI as subject areas and in BICC as PVOs — three lenses on one source. Open any table to trace its subject areas and View Objects.
SQL data set · genericized · parameterized · no hardcoded segments
Show / hide SQL
SELECT 
	 HEADER_PERIOD_NAME
	,TRANSACTION_NUMBER
	,LEGAL_ENTITY_NAME
	,LE_ADDRESS
	,SYSDATE1
	,FISCAL_YEAR
	,TAXPAYER_ID
	,ENDING_BALANCE_CR
	,ENDING_BALANCE_DR
	,BEGIN_BALANCE_CR
	,BEGIN_BALANCE_DR
	,REPORTING_SEQ_NUMBER
	,ACC_SEQ_NAME
	,JOURNAL_DESC
	,JE_HEADER_ID
	,TRX_NUM
	,ACC_DATE
	,LEDGER_ID
	,CONVERSION_DATE
	,ACCOUNTING_DATE
	,INTERNAL_REF
	,INTERNAL_REF1
        ,DR_CR_SEPERATE
	,ACCOUNT_NUMBER
	,ACCOUNT_DESCRIPTION
	,THIRD_PARTY_NUMBER
	,THIRD_PARTY_NAME
	,JRNL_LINE_DR
	,JRNL_LINE_CR
	,LEDGER_NAME
	,NAME
	,PERIOD_NAME
	,TAX_REG_NUM
	,CURRENCY_CONVERSION_DATE
	,CURRENCY
	,transaction_id
	FROM (
	SELECT 
	NVL(XAH.CLOSE_ACCT_SEQ_VALUE,GJH.CLOSE_ACCT_SEQ_VALUE ) REPORTING_SEQ_NUMBER
	,XTH.TRANSACTION_NUMBER
	,NVL(GJH.NAME,XTH.TRANSACTION_NUMBER) TRX_NUM
	,gjl.EFFECTIVE_DATE ACC_DATE
	,GJH.LEDGER_ID
	,nvl(TO_CHAR(GJH.CURRENCY_CONVERSION_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN'),TO_CHAR(gjl.EFFECTIVE_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN')) CONVERSION_DATE
	,nvl(GJH.CURRENCY_CONVERSION_DATE,gjl.EFFECTIVE_DATE)  CURRENCY_CONVERSION_DATE
	,TO_CHAR(GJH.DEFAULT_EFFECTIVE_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN') ACCOUNTING_DATE
	--,(CASE WHEN  FAT.APPLICATION_ID IN (200,222) THEN (FDS.NAME||' - '||TO_CHAR(XAH.DOC_SEQUENCE_VALUE)) else TO_CHAR(GJH.JE_HEADER_ID) end)  ACC_SEQ_NAME
	,(CASE WHEN  FAT.APPLICATION_ID IN (200,222) AND GJCV.JE_CATEGORY_NAME <> 'Receipts' THEN (FDS.NAME||' - '||TO_CHAR(XAH.DOC_SEQUENCE_VALUE))
		   WHEN  FAT.APPLICATION_ID IN (200,222) AND GJCV.JE_CATEGORY_NAME = 'Receipts' Then TO_CHAR(ent.TRANSACTION_NUMBER)
		else TO_CHAR(GJH.JE_HEADER_ID) end) ACC_SEQ_NAME
	,TO_CHAR(SYSDATE,'DD-MM-YYYY HH:MM') SYSDATE1
	--,NVL(GJH.DESCRIPTION,XETT.NAME) JOURNAL_DESC
	,(CASE WHEN GJCV.JE_CATEGORY_NAME IN('Manual','Global Intercompany') THEN NVL(GJH.DESCRIPTION,XETT.NAME)
		   ELSE GJCV.USER_JE_CATEGORY_NAME END) JOURNAL_DESC

	--,NVL(GJH.NAME,XTH.TRANSACTION_NUMBER)
	 , (CASE WHEN  FAT.APPLICATION_ID IN (200,222) THEN (ent.TRANSACTION_NUMBER||', Data:'||TO_CHAR(XEV.TRANSACTION_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN')) when GJCV.USER_JE_CATEGORY_NAME = 'BALANCE CNV SL ONLY' THEN GJL.DESCRIPTION else GJH.NAME end) INTERNAL_REF1
	 ,NVL(ent.transaction_number,GJH.NAME ) INTERNAL_REF
	, GCC.SEGMENT1||'.'||GCC.SEGMENT2||'.'||GCC.SEGMENT3||'.'||GCC.SEGMENT4||'.'||GCC.SEGMENT5||'.'||GCC.SEGMENT6||'.'||GCC.SEGMENT7||'.'||GCC.SEGMENT8||'.'||GCC.SEGMENT9 ACCOUNT_NUMBER
	,FFVV.DESCRIPTION ACCOUNT_DESCRIPTION
	,NVL(PS.SEGMENT1,(SELECT DISTINCT HCA.ACCOUNT_NUMBER FROM hz_parties HP, hz_cust_accounts HCA WHERE XAL.party_id = HCA.cust_account_id AND HCA.party_id =HP.party_id)) THIRD_PARTY_NUMBER
	,NVL(PSV.VENDOR_NAME,(SELECT DISTINCT party_name FROM hz_parties HP, hz_cust_accounts HCA WHERE XAL.party_id = HCA.cust_account_id AND HCA.party_id =HP.party_id)) THIRD_PARTY_NAME
	,COALESCE(XAL.ACCOUNTED_DR,GJL.ACCOUNTED_DR,0)   JRNL_LINE_DR
	, COALESCE(XAL.ACCOUNTED_CR,GJL.ACCOUNTED_CR,0)   JRNL_LINE_CR
        , (CASE WHEN COALESCE(XAL.ACCOUNTED_DR,GJL.ACCOUNTED_DR,0) <> 0 THEN 'DEBIT'
	       ELSE 'CREDIT' END) DR_CR_SEPERATE	

	/*, NVL((SELECT NVL(SUM(XAL1.ACCOUNTED_CR),0)
							 FROM XLA_AE_LINES XAL1
							 WHERE XAL1.APPLICATION_ID=XAL.APPLICATION_ID
							 AND XAL1.AE_HEADER_ID=XAL.AE_HEADER_ID
							 AND XAL1.AE_LINE_NUM=XAL.AE_LINE_NUM
							 AND XAL1.CODE_COMBINATION_ID=XAL.CODE_COMBINATION_ID
							 AND XAL1.APPLICATION_ID IN (200,222)
							 GROUP BY GCC.SEGMENT1,GCC.SEGMENT2,GCC.SEGMENT3,GCC.SEGMENT5,GCC.SEGMENT6,GCC.SEGMENT7,GCC.SEGMENT8,GCC.SEGMENT9), NVL(GJL.ACCOUNTED_CR,0)) JRNL_LINE_CR*/
	,REG.REGISTRATION_NUMBER TAXPAYER_ID
	,GL.NAME LEDGER_NAME 
	,le.NAME LEGAL_ENTITY_NAME 
	,(hrloc.ADDRESS1||', '||hrloc.CITY||'- '||hrloc.POSTAL_CODE||', '||hrloc.COUNTRY) LE_ADDRESS
	,GJH.NAME
	,GJH.period_name HEADER_PERIOD_NAME
	,(SELECT GP.PERIOD_NAME
	  from GL_PERIODS gp 
	  where gp.period_name = :P_FROM_PERIOD 
	  AND GP.PERIOD_SET_NAME=GL.PERIOD_SET_NAME) AS PERIOD_NAME
	,TO_CHAR(gjl.EFFECTIVE_DATE,'YY') FISCAL_YEAR
	,NVL(SUBSTR(reg.REGISTRATION_NUMBER , 0, INSTR(reg.REGISTRATION_NUMBER , '/')-1), reg.REGISTRATION_NUMBER) AS TAX_REG_NUM
	,BAL.ENDING_BALANCE_CR
	,BAL.ENDING_BALANCE_DR
	,BAL.BEGIN_BALANCE_CR
	,BAL.BEGIN_BALANCE_DR
	, GJH.JE_HEADER_ID
	,GL.CURRENCY_CODE CURRENCY
	,NVL(ent.SOURCE_ID_INT_1,GJH.JE_HEADER_ID ) as transaction_id
	FROM 
	GL_JE_BATCHES GJB
	,GL_JE_HEADERS GJH
	,GL_JE_LINES GJL
	,gl_je_categories_tl GJCV
	,GL_LEDGERS GL 
	--,GL_BALANCES GB
	,GL_IMPORT_REFERENCES GIR
	,GL_CODE_COMBINATIONS GCC
	,XLA_AE_HEADERS XAH
	,XLA_AE_LINES XAL

	,XLA_EVENTS XEV
	,XLA_EVENT_TYPES_TL XETT
	,xla_transaction_entities ent
	,XLA_SUBLEDGERS_TL FAT 
	,XLA_TRANSACTION_HEADERS XTH
	--,FUN_SEQ_VERSIONS FSV 
	--,fnd_flex_values_vl FFVV
	,fnd_flex_values FFB
	,fnd_flex_values_tl FFVV

	,POZ_SUPPLIERS ps
	,POZ_SUPPLIERS_V psv
	--,hz_parties hp

	,GL_LEDGER_CONFIG_DETAILS GLCD
	,GL_LEDGER_RELATIONSHIPS GLR 
	,GL_LEDGER_CONFIGURATIONS cfg
	,GL_LEDGER_CONFIG_DETAILS cfgDet
	,XLE_ENTITY_PROFILES le
	,XLE_REGISTRATIONS reg
	,hz_locations hrloc
	,FND_DOCUMENT_SEQUENCES FDS
	,(
	WITH period_activity AS (
		SELECT 
			GLB.ledger_id,
			GLB.period_name,
			GLB.period_num,
			GLB.period_year,
			NVL(SUM(GLB.period_net_dr),0) AS period_activity_debit,
			NVL(SUM(GLB.period_net_cr),0) AS period_activity_credit
		FROM GL_BALANCES GLB,
			GL_CODE_COMBINATIONS GCC 
	WHERE GLB.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID(+)
	AND LEDGER_ID=(SELECT  LEDGER_ID FROM GL_LEDGERS WHERE NAME ='SL ITALY EUR LOCAL' AND ROWNUM=1)
	AND GLB.period_year = (SELECT gp2.period_year 
								FROM gl_periods gp2 
								WHERE gp2.period_name = :P_FROM_PERIOD
								  AND PERIOD_SET_NAME='Common Calendar')
		GROUP BY GLB.ledger_id, GLB.period_name, GLB.period_num, GLB.period_year
	)
	SELECT  pa.period_name,ledger_id
		,CASE 
			WHEN pa.period_num = 1 THEN 0 
			ELSE (
				SELECT SUM(pa2.period_activity_debit) 
				FROM period_activity pa2 
				WHERE pa2.period_num < pa.period_num
			)    END AS BEGIN_BALANCE_DR,
		CASE 
			WHEN pa.period_num = 1 THEN 0  
			ELSE (
				SELECT SUM(pa2.period_activity_credit) 
				FROM period_activity pa2 
				WHERE pa2.period_num < pa.period_num
			)    END AS BEGIN_BALANCE_CR
	, (  SELECT SUM(pa2.period_activity_credit) 
		   FROM period_activity pa2 
		  WHERE pa2.period_num <=(SELECT gp2.period_num 
								FROM gl_periods gp2 
								WHERE gp2.period_name = :P_TO_PERIOD
								  AND PERIOD_SET_NAME='Common Calendar')
			)   ENDING_BALANCE_CR
	,(SELECT SUM(pa2.period_activity_debit) 
				FROM period_activity pa2 
				WHERE pa2.period_num <=(SELECT gp2.period_num 
								FROM gl_periods gp2 
								WHERE gp2.period_name = :P_TO_PERIOD
								  AND PERIOD_SET_NAME='Common Calendar')
			)  ENDING_BALANCE_DR
	FROM period_activity pa
	) BAL

	WHERE 1=1
	AND :P_SUM_BY_ACC = 'NO'
	AND GL.NAME ='SL ITALY EUR LOCAL'
	--AND GJH.NAME IN ('Test Journal 062024 2 J')
	--AND GJH.JE_HEADER_ID='33087'
	AND GJB.JE_BATCH_ID         =GJH.JE_BATCH_ID
	AND GJH.JE_HEADER_ID 	    = GJL.JE_HEADER_ID
	AND GJH.JE_CATEGORY	    = GJCV.JE_CATEGORY_NAME
	AND GJCV.LANGUAGE='I'
	AND GJH.LEDGER_ID   	    = GL.LEDGER_ID
	AND GCC.CODE_COMBINATION_ID	= GJL.CODE_COMBINATION_ID
	--AND GL.LEDGER_ID 		= GB.LEDGER_ID
	AND GL.LEDGER_ID		= XAH.LEDGER_ID(+)
	AND GJL.JE_LINE_NUM             = GIR.JE_LINE_NUM(+)
	AND GJL.JE_HEADER_ID 		    = GIR.JE_HEADER_ID(+)
	AND GIR.GL_SL_LINK_ID           = XAL.GL_SL_LINK_ID(+)
	AND GIR.GL_SL_LINK_TABLE        = XAL.GL_SL_LINK_TABLE(+)
	AND XAL.AE_HEADER_ID            = XAH.AE_HEADER_ID(+)
	AND GJB.STATUS='P'
	AND XEV.EVENT_ID(+)=XAH.EVENT_ID
	AND XTH.EVENT_ID(+)=XAH.EVENT_ID
	AND XEV.EVENT_TYPE_CODE=XETT.EVENT_TYPE_CODE(+)
	AND XETT.LANGUAGE(+) = USERENV('LANG')

	AND XAH.application_id = ent.application_id(+)
	AND XAH.APPLICATION_ID = FAT.APPLICATION_ID(+)

	AND XAH.APPLICATION_ID = FAT.APPLICATION_ID(+)
	AND FAT.LANGUAGE(+) = USERENV('LANG')
	AND XAH.entity_id = ent.entity_id(+)
	--AND XAH.ledger_id = ent.ledger_id(+)  

	--AND FSV.SEQ_VERSION_ID(+) =GJH.CLOSE_ACCT_SEQ_VERSION_ID
	AND FFVV.FLEX_VALUE_ID=FFB.FLEX_VALUE_ID
	AND FFB.flex_value = GCC.segment4
	AND FFVV.LANGUAGE='I'
	AND FFB.VALUE_CATEGORY = 'ACCOUNT VALUE SET'

	AND XAL.PARTY_ID = ps.VENDOR_ID (+)
	AND ps.VENDOR_ID = psv.VENDOR_ID (+)
	--AND ps.VENDOR_ID = hp.PARTY_ID (+)

	AND BAL.LEDGER_ID(+)=GL.LEDGER_ID
	AND BAL.PERIOD_NAME(+)=GJH.PERIOD_NAME
	AND FDS.DOC_SEQUENCE_ID(+)=XAH.DOC_SEQUENCE_ID
	AND GLR.application_id = 101
	AND ( (GLR.target_ledger_category_code = 'SECONDARY'
	AND GLR.relationship_type_code <> 'NONE' ) OR (GLR.target_ledger_category_code = 'PRIMARY'
	AND GLR.relationship_type_code = 'NONE' ) OR (GLR.target_ledger_category_code = 'ALC'
	AND GLR.relationship_type_code IN ('JOURNAL', 'SUBLEDGER') ) )
	AND GL.ledger_id = GLR.target_ledger_id
	AND GL.ledger_category_code = GLR.target_ledger_category_code
	AND nvl(GL.complete_flag, 'Y') = 'Y'
	AND GLCD.object_id = GLR.primary_ledger_id
	AND GLCD.object_type_code = 'PRIMARY'
	AND GLCD.setup_step_code = 'NONE'
	AND cfg.configuration_id = GLCD.configuration_id
	AND cfgDet.configuration_id (+) = cfg.configuration_id
	AND cfgDet.object_type_code (+) = 'LEGAL_ENTITY'
	AND cfgDet.setup_step_code (+) = 'NONE'
	AND le.legal_entity_id (+) = cfgDet.object_id
	AND reg.source_id (+) = cfgDet.object_id
	AND reg.source_table (+) = 'XLE_ENTITY_PROFILES'
	AND reg.identifying_flag (+) = 'Y'
	AND hrloc.location_id (+) = reg.location_id
	AND  UPPER(GL.NAME) like '%ITALY%'
	--AND REG.LOCATION_ID='300000009449272'
	--AND GJH.NAME='01-25 Purchase Invoices 3281'
	AND gjl.EFFECTIVE_DATE >=nvl((select distinct START_DATE from GL_PERIODS gp where gp.period_name = :P_FROM_PERIOD AND GP.PERIOD_SET_NAME=GL.PERIOD_SET_NAME),gjl.EFFECTIVE_DATE ) 
	AND gjl.EFFECTIVE_DATE <=nvl((select distinct END_DATE from GL_PERIODS gp2 where gp2.period_name = :P_TO_PERIOD AND GP2.PERIOD_SET_NAME=GL.PERIOD_SET_NAME),gjl.EFFECTIVE_DATE )

	)
	---where REPORTING_SEQ_NUMBER in ('3768','3183')
	UNION all

	SELECT 
	 HEADER_PERIOD_NAME
	,TRANSACTION_NUMBER
	,LEGAL_ENTITY_NAME
	,LE_ADDRESS
	,SYSDATE1
	,FISCAL_YEAR
	,TAXPAYER_ID
	,ENDING_BALANCE_CR
	,ENDING_BALANCE_DR
	,BEGIN_BALANCE_CR
	,BEGIN_BALANCE_DR
	,REPORTING_SEQ_NUMBER
	,ACC_SEQ_NAME
	,JOURNAL_DESC
	,JE_HEADER_ID
	,TRX_NUM
	,ACC_DATE
	,LEDGER_ID
	,CONVERSION_DATE
	,ACCOUNTING_DATE
	,INTERNAL_REF
	,INTERNAL_REF1
        ,DR_CR_SEPERATE
	,ACCOUNT_NUMBER
	,ACCOUNT_DESCRIPTION
	,THIRD_PARTY_NUMBER
	,THIRD_PARTY_NAME
	,SUM(JRNL_LINE_DR) JRNL_LINE_DR
	,SUM(JRNL_LINE_CR) JRNL_LINE_CR
	,LEDGER_NAME
	,NAME
	,PERIOD_NAME
	,TAX_REG_NUM
	,CURRENCY_CONVERSION_DATE
	,CURRENCY
	,transaction_id
	FROM (

	SELECT 
	NVL(XAH.CLOSE_ACCT_SEQ_VALUE,GJH.CLOSE_ACCT_SEQ_VALUE ) REPORTING_SEQ_NUMBER
	,XTH.TRANSACTION_NUMBER
	  ,NVL(GJH.NAME,XTH.TRANSACTION_NUMBER) TRX_NUM
	,gjl.EFFECTIVE_DATE ACC_DATE
	,GJH.LEDGER_ID
	,nvl(TO_CHAR(GJH.CURRENCY_CONVERSION_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN'),TO_CHAR(gjl.EFFECTIVE_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN')) CONVERSION_DATE
	,nvl(GJH.CURRENCY_CONVERSION_DATE,gjl.EFFECTIVE_DATE)  CURRENCY_CONVERSION_DATE
	,TO_CHAR(GJH.DEFAULT_EFFECTIVE_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN') ACCOUNTING_DATE
	--,(CASE WHEN  FAT.APPLICATION_ID IN (200,222) THEN (FDS.NAME||' - '||TO_CHAR(XAH.DOC_SEQUENCE_VALUE)) else TO_CHAR(GJH.JE_HEADER_ID) end)   ACC_SEQ_NAME
	,(CASE WHEN  FAT.APPLICATION_ID IN (200,222) AND GJCV.JE_CATEGORY_NAME <> 'Receipts' THEN (FDS.NAME||' - '||TO_CHAR(XAH.DOC_SEQUENCE_VALUE))
		   WHEN  FAT.APPLICATION_ID IN (200,222) AND GJCV.JE_CATEGORY_NAME = 'Receipts' Then TO_CHAR(ent.TRANSACTION_NUMBER)
		else TO_CHAR(GJH.JE_HEADER_ID) end) ACC_SEQ_NAME
	,TO_CHAR(SYSDATE,'DD-MM-YYYY HH:MM') SYSDATE1
	--,NVL(GJH.DESCRIPTION,XETT.NAME) JOURNAL_DESC
	,(CASE WHEN GJCV.JE_CATEGORY_NAME IN('Manual','Global Intercompany') THEN NVL(GJH.DESCRIPTION,XETT.NAME)
		   ELSE GJCV.USER_JE_CATEGORY_NAME END) JOURNAL_DESC

	--,NVL(GJH.NAME,XTH.TRANSACTION_NUMBER)
	 , (CASE WHEN  FAT.APPLICATION_ID IN (200,222) THEN (ent.TRANSACTION_NUMBER||', Data:'||TO_CHAR(XEV.TRANSACTION_DATE,'DD MON YY', 'NLS_DATE_LANGUAGE = ITALIAN')) when GJCV.USER_JE_CATEGORY_NAME = 'BALANCE CNV SL ONLY' THEN GJL.DESCRIPTION else GJH.NAME end) INTERNAL_REF1
	  ,NVL(ent.transaction_number,GJH.NAME) INTERNAL_REF
	, GCC.SEGMENT4 ACCOUNT_NUMBER
	,FFVV.DESCRIPTION ACCOUNT_DESCRIPTION
	,NVL(PS.SEGMENT1,(SELECT DISTINCT HCA.ACCOUNT_NUMBER FROM hz_parties HP, hz_cust_accounts HCA WHERE XAL.party_id = HCA.cust_account_id AND HCA.party_id =HP.party_id)) THIRD_PARTY_NUMBER
	,NVL(PSV.VENDOR_NAME,(SELECT DISTINCT party_name FROM hz_parties HP, hz_cust_accounts HCA WHERE XAL.party_id = HCA.cust_account_id AND HCA.party_id =HP.party_id)) THIRD_PARTY_NAME
	, COALESCE(XAL.ACCOUNTED_DR,GJL.ACCOUNTED_DR, 0)   JRNL_LINE_DR
	, COALESCE(XAL.ACCOUNTED_CR,GJL.ACCOUNTED_CR,0)   JRNL_LINE_CR
        ,  (CASE WHEN COALESCE(XAL.ACCOUNTED_DR,GJL.ACCOUNTED_DR,0) <> 0 THEN 'DEBIT'
	       ELSE 'CREDIT' END) DR_CR_SEPERATE
	,REG.REGISTRATION_NUMBER TAXPAYER_ID
	,GL.NAME LEDGER_NAME 
	,le.NAME LEGAL_ENTITY_NAME 
	,(hrloc.ADDRESS1||', '||hrloc.CITY||'- '||hrloc.POSTAL_CODE||', '||hrloc.COUNTRY) LE_ADDRESS
	,GJH.NAME
	,GJH.period_name HEADER_PERIOD_NAME
	,(SELECT GP.PERIOD_NAME
	  from GL_PERIODS gp 
	  where gp.period_name = :P_FROM_PERIOD 
	  AND GP.PERIOD_SET_NAME=GL.PERIOD_SET_NAME) AS PERIOD_NAME
	,TO_CHAR(gjl.EFFECTIVE_DATE,'YY') FISCAL_YEAR
	,NVL(SUBSTR(reg.REGISTRATION_NUMBER , 0, INSTR(reg.REGISTRATION_NUMBER , '/')-1), reg.REGISTRATION_NUMBER) AS TAX_REG_NUM
	,BAL.ENDING_BALANCE_CR
	,BAL.ENDING_BALANCE_DR
	,BAL.BEGIN_BALANCE_CR
	,BAL.BEGIN_BALANCE_DR
	,GJH.JE_HEADER_ID
	,gl.CURRENCY_CODE CURRENCY
	,NVL(ent.SOURCE_ID_INT_1,GJH.JE_HEADER_ID ) as transaction_id
	FROM 
	GL_JE_BATCHES GJB
	,GL_JE_HEADERS GJH
	,GL_JE_LINES GJL
	,gl_je_categories_tl GJCV
	,GL_LEDGERS GL 
	--,GL_BALANCES GB
	,GL_IMPORT_REFERENCES GIR
	,GL_CODE_COMBINATIONS GCC
	,XLA_AE_HEADERS XAH
	,XLA_AE_LINES XAL

	,XLA_EVENTS XEV
	,XLA_EVENT_TYPES_TL XETT
	,xla_transaction_entities ent
	,XLA_SUBLEDGERS_TL FAT 
	,XLA_TRANSACTION_HEADERS XTH
	--,FUN_SEQ_VERSIONS FSV 
	,FND_DOCUMENT_SEQUENCES FDS
	--,fnd_flex_values_vl FFVV
	,fnd_flex_values FFB
	,fnd_flex_values_tl FFVV

	,POZ_SUPPLIERS ps
	,POZ_SUPPLIERS_V psv
	--,hz_parties hp

	,GL_LEDGER_CONFIG_DETAILS GLCD
	,GL_LEDGER_RELATIONSHIPS GLR 
	,GL_LEDGER_CONFIGURATIONS cfg
	,GL_LEDGER_CONFIG_DETAILS cfgDet
	,XLE_ENTITY_PROFILES le
	,XLE_REGISTRATIONS reg
	,hz_locations hrloc

	,(
	WITH period_activity AS (
		SELECT 
			GLB.ledger_id,
			GLB.period_name,
			GLB.period_num,
			GLB.period_year,
			NVL(SUM(GLB.period_net_dr),0) AS period_activity_debit,
			NVL(SUM(GLB.period_net_cr),0) AS period_activity_credit
		FROM GL_BALANCES GLB,
			GL_CODE_COMBINATIONS GCC 
	WHERE GLB.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID(+)
	AND LEDGER_ID=(SELECT  LEDGER_ID FROM GL_LEDGERS WHERE NAME ='SL ITALY EUR LOCAL' AND ROWNUM=1)
	AND GLB.period_year = (SELECT gp2.period_year 
								FROM gl_periods gp2 
								WHERE gp2.period_name = :P_FROM_PERIOD
								  AND PERIOD_SET_NAME='Common Calendar')
		GROUP BY GLB.ledger_id, GLB.period_name, GLB.period_num, GLB.period_year
	)
	SELECT  pa.period_name,ledger_id
		,CASE 
			WHEN pa.period_num = 1 THEN 0 
			ELSE (
				SELECT SUM(pa2.period_activity_debit) 
				FROM period_activity pa2 
				WHERE pa2.period_num < pa.period_num
			)    END AS BEGIN_BALANCE_DR,
		CASE 
			WHEN pa.period_num = 1 THEN 0  
			ELSE (
				SELECT SUM(pa2.period_activity_credit) 
				FROM period_activity pa2 
				WHERE pa2.period_num < pa.period_num
			)    END AS BEGIN_BALANCE_CR
	,(SELECT SUM(pa2.period_activity_credit) 
				FROM period_activity pa2 
				WHERE pa2.period_num <=(SELECT gp2.period_num 
								FROM gl_periods gp2 
								WHERE gp2.period_name = :P_TO_PERIOD
								  AND PERIOD_SET_NAME='Common Calendar')
			) ENDING_BALANCE_CR
	,(SELECT SUM(pa2.period_activity_debit) 
				FROM period_activity pa2 
				WHERE pa2.period_num <=(SELECT gp2.period_num 
								FROM gl_periods gp2 
								WHERE gp2.period_name = :P_TO_PERIOD
								  AND PERIOD_SET_NAME='Common Calendar')
			)  ENDING_BALANCE_DR
	FROM period_activity pa
	) BAL

	WHERE 1=1
	AND :P_SUM_BY_ACC = 'YES'
	AND GL.NAME ='SL ITALY EUR LOCAL'
	AND GJB.JE_BATCH_ID         =GJH.JE_BATCH_ID
	AND GJH.JE_HEADER_ID 	    = GJL.JE_HEADER_ID
	AND GJH.JE_CATEGORY	    = GJCV.JE_CATEGORY_NAME
	AND GJCV.LANGUAGE='I'
	AND GJH.LEDGER_ID   	    = GL.LEDGER_ID
	AND GCC.CODE_COMBINATION_ID	= GJL.CODE_COMBINATION_ID
	--AND GL.LEDGER_ID 		= GB.LEDGER_ID
	AND GL.LEDGER_ID		= XAH.LEDGER_ID(+)

	AND GJL.JE_LINE_NUM             = GIR.JE_LINE_NUM(+)
	AND GJL.JE_HEADER_ID 		    = GIR.JE_HEADER_ID(+)
	AND GIR.GL_SL_LINK_ID           = XAL.GL_SL_LINK_ID(+)
	AND GIR.GL_SL_LINK_TABLE        = XAL.GL_SL_LINK_TABLE(+)
	AND XAL.AE_HEADER_ID            = XAH.AE_HEADER_ID(+)
	AND GJB.STATUS='P'
	AND XEV.EVENT_ID(+)=XAH.EVENT_ID
	AND XTH.EVENT_ID(+)=XAH.EVENT_ID
	AND XEV.EVENT_TYPE_CODE=XETT.EVENT_TYPE_CODE(+)
	AND XETT.LANGUAGE(+) = USERENV('LANG')

	AND XAH.application_id = ent.application_id(+)
	AND XAH.APPLICATION_ID = FAT.APPLICATION_ID(+)

	AND XAH.APPLICATION_ID = FAT.APPLICATION_ID(+)
	AND FAT.LANGUAGE(+) = USERENV('LANG')
	AND XAH.entity_id = ent.entity_id(+)
	--AND XAH.ledger_id = ent.ledger_id(+)  

	--AND FSV.SEQ_VERSION_ID(+) =GJH.CLOSE_ACCT_SEQ_VERSION_ID
	AND FDS.DOC_SEQUENCE_ID(+)=XAH.DOC_SEQUENCE_ID
	AND FFVV.FLEX_VALUE_ID=FFB.FLEX_VALUE_ID
	AND FFB.flex_value = GCC.segment4
	AND FFVV.LANGUAGE='I'
	AND FFB.VALUE_CATEGORY = 'ACCOUNT VALUE SET'

	AND XAL.PARTY_ID = ps.VENDOR_ID (+)
	AND ps.VENDOR_ID = psv.VENDOR_ID (+)
	--AND ps.VENDOR_ID = hp.PARTY_ID (+)

	AND BAL.LEDGER_ID(+)=GL.LEDGER_ID
	AND BAL.PERIOD_NAME(+)=GJH.PERIOD_NAME

	AND GLR.application_id = 101
	AND ( (GLR.target_ledger_category_code = 'SECONDARY'
	AND GLR.relationship_type_code <> 'NONE' ) OR (GLR.target_ledger_category_code = 'PRIMARY'
	AND GLR.relationship_type_code = 'NONE' ) OR (GLR.target_ledger_category_code = 'ALC'
	AND GLR.relationship_type_code IN ('JOURNAL', 'SUBLEDGER') ) )
	AND GL.ledger_id = GLR.target_ledger_id
	AND GL.ledger_category_code = GLR.target_ledger_category_code
	AND nvl(GL.complete_flag, 'Y') = 'Y'
	AND GLCD.object_id = GLR.primary_ledger_id
	AND GLCD.object_type_code = 'PRIMARY'
	AND GLCD.setup_step_code = 'NONE'
	AND cfg.configuration_id = GLCD.configuration_id
	AND cfgDet.configuration_id (+) = cfg.configuration_id
	AND cfgDet.object_type_code (+) = 'LEGAL_ENTITY'
	AND cfgDet.setup_step_code (+) = 'NONE'
	AND le.legal_entity_id (+) = cfgDet.object_id
	AND reg.source_id (+) = cfgDet.object_id
	AND reg.source_table (+) = 'XLE_ENTITY_PROFILES'
	AND reg.identifying_flag (+) = 'Y'
	AND hrloc.location_id (+) = reg.location_id
	AND  UPPER(GL.NAME) like '%ITALY%'
        --AND  (NVL(XAL.ACCOUNTING_CLASS_CODE,GJCV.JE_CATEGORY_NAME)  <> 'ROUNDING' AND (COALESCE(XAL.ACCOUNTED_DR,GJL.ACCOUNTED_DR, 0) + COALESCE(XAL.ACCOUNTED_CR,GJL.ACCOUNTED_CR, 0)) <> 0)
	--AND REG.LOCATION_ID='300000009449272'
	--AND GJH.NAME='02-25 Sales Invoices 3281'

	AND gjl.EFFECTIVE_DATE >=nvl((select distinct START_DATE from GL_PERIODS gp where gp.period_name = :P_FROM_PERIOD AND GP.PERIOD_SET_NAME=GL.PERIOD_SET_NAME),gjl.EFFECTIVE_DATE ) 
	AND gjl.EFFECTIVE_DATE <=nvl((select distinct END_DATE from GL_PERIODS gp2 where gp2.period_name = :P_TO_PERIOD AND GP2.PERIOD_SET_NAME=GL.PERIOD_SET_NAME),gjl.EFFECTIVE_DATE )
	--and GJH.JE_HEADER_ID='125128'
	)

	----where REPORTING_SEQ_NUMBER in ('3768','3183')

	GROUP BY 
	  HEADER_PERIOD_NAME
	,TRANSACTION_NUMBER
	,LEGAL_ENTITY_NAME
	,LE_ADDRESS
	,SYSDATE1
	,FISCAL_YEAR
	,TAXPAYER_ID
	,ENDING_BALANCE_CR
	,ENDING_BALANCE_DR
	,BEGIN_BALANCE_CR
	,BEGIN_BALANCE_DR
	,REPORTING_SEQ_NUMBER
	,ACC_SEQ_NAME
	,JOURNAL_DESC
	,JE_HEADER_ID
	,DR_CR_SEPERATE
	,TRX_NUM
	,ACC_DATE
	,LEDGER_ID
	,CONVERSION_DATE
	,ACCOUNTING_DATE
	,INTERNAL_REF
	,INTERNAL_REF1
	,ACCOUNT_NUMBER
	,ACCOUNT_DESCRIPTION
	,THIRD_PARTY_NUMBER
	,THIRD_PARTY_NAME
	,LEDGER_NAME
	,NAME
	,PERIOD_NAME
	,TAX_REG_NUM
	,CURRENCY_CONVERSION_DATE
	,CURRENCY
	,transaction_id
	ORDER BY REPORTING_SEQ_NUMBER, transaction_id, CONVERSION_DATE,ACCOUNT_NUMBER
:MM :P_FROM_PERIOD :P_SUM_BY_ACC :P_TO_PERIOD

The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per source transaction.

GL_JE_LINESdimensionGL_JE_BATCHESdimensionGL_PERIODSdimensionXLA_AE_LINESdimensionGL_JE_HEADERSfact · one row per source transactionDebit · Credit
●— fact → dimension join
ElementTypeDefinition
GL_JE_LINESdimensiondimension
GL_JE_BATCHESdimensiondimension
GL_PERIODSdimensiondimension
XLA_AE_LINESdimensiondimension
Debitmeasuremeasure
Creditmeasuremeasure
Runs on your cloud warehouse — Snowflake, BigQuery, Redshift, or Synapse on AWS, Google Cloud, Azure, or any provider. Reconciled to the source control total — 0% variance by design. You own the code, the model, and the data.
How the data gets here: a BICC bulk extract of the source tables above, on the same pattern for every report. See the extraction pattern & data flow →
See the complete model
How this report's fact and dimensions fit the full picture, via conformed keys.
General Ledger data model →Enterprise model →

Every source object behind this report. Each linked table has its own page with full column descriptions, drawn from the Oracle BICC lineage and articulated for practitioners.

TableReporting columnsSubject areas
GL_JE_HEADERS342
GL_JE_LINES262
GL_JE_BATCHES142
GL_PERIODSSetup / configuration table — joined for reference, not exposed for analytics
XLA_AE_LINES2317
Reporting columns = fields the report selects that are exposed as analytics attributes; subject areas = the OTBI subject areas the table appears in. Setup and configuration tables (master data, ledger and book setup, lookups) are referenced by the report's joins but aren't exposed as analytics columns or subject areas — that's expected, not a gap.