GL Transactions with AA Details
Hi all
Today I decided to post a simple SQL code to fetch GL Transaction Details along with dimension codes from the Analytical Accounting module.
SELECT A.aaGLHdrID, A.JRNENTRY, A.RCTRXSEQ, A.YEAR1, A.GLPOSTDT, B.INTERID, B.ACTINDX, F.ACTNUMST, B.CURNCYID, C.DEBITAMT, C.CRDTAMNT, C.ORDBTAMT, C.ORCRDAMT, E.aaTrxDimCode, E.aaTrxDimCodeDescr, 'Open Year' AS YEARSTATUS, B.SEQNUMBR, ( SELECT TOP 1 F.SOURCDOC FROM dbo.GL20000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS SOURCDOC, ( SELECT TOP 1 F.REFRENCE FROM dbo.GL20000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS REFERENCE, ( SELECT TOP 1 F.USWHPSTD FROM dbo.GL20000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS USERPOSTED, ( SELECT TOP 1 F.TRXSORCE FROM dbo.GL20000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS AUDITTRAIL, ( SELECT TOP 1 F.DSCRIPTN FROM dbo.GL20000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS TRXDESC FROM dbo.AAG30000 A INNER JOIN dbo.AAG30001 B ON A.aaGLHdrID = B.aaGLHdrID INNER JOIN dbo.AAG30002 C ON B.aaGLHdrID = C.aaGLHdrID AND B.aaGLDistID = C.aaGLDistID INNER JOIN dbo.AAG30003 D ON C.aaGLHdrID = D.aaGLHdrID AND C.aaGLDistID = D.aaGLDistID AND C.aaGLAssignID = D.aaGLAssignID INNER JOIN dbo.AAG00401 E ON D.aaTrxDimID = E.aaTrxDimID AND D.aaTrxCodeID = E.aaTrxDimCodeID INNER JOIN dbo.GL00105 F ON B.ACTINDX = F.ACTINDX UNION ALL SELECT A.aaGLHdrID, A.JRNENTRY, A.RCTRXSEQ, A.YEAR1, A.GLPOSTDT, B.INTERID, B.ACTINDX, F.ACTNUMST, B.CURNCYID, C.DEBITAMT, C.CRDTAMNT, C.ORDBTAMT, C.ORCRDAMT, E.aaTrxDimCode, E.aaTrxDimCodeDescr, 'Historical Year' AS YEARSTATUS, B.SEQNUMBR, ( SELECT TOP 1 F.SOURCDOC FROM dbo.GL30000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS SOURCDOC, ( SELECT TOP 1 F.REFRENCE FROM dbo.GL30000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS REFERENCE, ( SELECT TOP 1 F.USWHPSTD FROM dbo.GL30000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS USERPOSTED, ( SELECT TOP 1 F.TRXSORCE FROM dbo.GL30000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS AUDITTRAIL, ( SELECT TOP 1 F.DSCRIPTN FROM dbo.GL30000 F WHERE F.JRNENTRY = A.JRNENTRY AND F.RCTRXSEQ = A.RCTRXSEQ ) AS TRXDESC FROM dbo.AAG40000 A INNER JOIN dbo.AAG40001 B ON A.aaGLHdrID = B.aaGLHdrID INNER JOIN dbo.AAG40002 C ON B.aaGLHdrID = C.aaGLHdrID AND B.aaGLDistID = C.aaGLDistID INNER JOIN dbo.AAG40003 D ON C.aaGLHdrID = D.aaGLHdrID AND C.aaGLDistID = D.aaGLDistID AND C.aaGLAssignID = D.aaGLAssignID INNER JOIN dbo.AAG00401 E ON D.aaTrxDimID = E.aaTrxDimID AND D.aaTrxCodeID = E.aaTrxDimCodeID INNER JOIN dbo.GL00105 F ON B.ACTINDX = F.ACTINDX |
The reason why I have used sub queries to fetch data from the GL tables instead of using joins is because of the following pitfall in the AA module.
Its not easy to link the GL and AA tables together using the journal entry number and line item sequence, since the line item sequence in AA tables does not match with the GL tables in the following instances.
- When a back-out of a journal entry happens in GL.
- During the year end process, all lines populated in the BBF entry in the AA tables have a line item sequence of 0, which does not tie back with the line item sequence in the GL tables.
I realized that the first issue has been resolved in GP v10 SP5, but not sure of the second issue. So I have decided to stick to this query till that issue has been resolved, since this is more fool proof.
Hope this helps you all…
Until next post…
GL Transactions with AA Details,Category: Analytical Accounting, Dynamics, General Ledger, Great Plains, SQL Server 2005, SQL Server 2008




Pingback: DynamicAccounting.net