GLCSIGNCACHE

The GLCSIGNCACHE rule is used to cache Global Signs on Account Level for faster calculation in the GLCMAIN cube.

Affected cells

All

Target

[GLDSIGN:'SIGN']

Formula

IF(GETATTR('GLDACCOUNT', !GLDACCOUNT, 1, 'ACCTYPE')='Assets',IF(ISNULL(DB('GSCSIGNDEFINITION','ACC_TYPE_Assets','CUBE')), 1, IF(DB('GSCSIGNDEFINITION', 'ACC_TYPE_Assets', 'REPORT_DISPLAY')=DB('GSCSIGNDEFINITION','ACC_TYPE_Assets','CUBE'),1,-1)),IF(GETATTR('GLDACCOUNT', !GLDACCOUNT, 1, 'ACCTYPE')='Liabilities',IF(ISNULL(DB('GSCSIGNDEFINITION','ACC_TYPE_Liabilities','CUBE')), 1, IF(DB('GSCSIGNDEFINITION', 'ACC_TYPE_Liabilities', 'REPORT_DISPLAY')=DB('GSCSIGNDEFINITION','ACC_TYPE_Liabilities','CUBE'),1,-1)),IF(GETATTR('GLDACCOUNT', !GLDACCOUNT, 1, 'ACCTYPE')='Income',IF(ISNULL(DB('GSCSIGNDEFINITION','ACC_TYPE_Income','CUBE')), 1, IF(DB('GSCSIGNDEFINITION', 'ACC_TYPE_Income', 'REPORT_DISPLAY')=DB('GSCSIGNDEFINITION','ACC_TYPE_Income','CUBE'),1,-1)),IF(GETATTR('GLDACCOUNT', !GLDACCOUNT, 1, 'ACCTYPE')='Expenses',IF(ISNULL(DB('GSCSIGNDEFINITION','ACC_TYPE_Expenses','CUBE')), 1, IF(DB('GSCSIGNDEFINITION', 'ACC_TYPE_Expenses', 'REPORT_DISPLAY')=DB('GSCSIGNDEFINITION','ACC_TYPE_Expenses','CUBE'),1,-1)),IF(GETATTR('GLDACCOUNT', !GLDACCOUNT, 1, 'ACCTYPE')='Equity',IF(ISNULL(DB('GSCSIGNDEFINITION','ACC_TYPE_Equity','CUBE')), 1, IF(DB('GSCSIGNDEFINITION', 'ACC_TYPE_Equity', 'REPORT_DISPLAY')=DB('GSCSIGNDEFINITION','ACC_TYPE_Equity','CUBE'),1,-1)),1)))))
Note: The formula checks the account type (Assets, Liabilities, Income, Expenses, Equity) and applies the appropriate sign based on the GSCSIGNDEFINITION cube settings.