GLJrnDtl, TranGLC - who created the record?

During an audit we’ve found that while Epicor records who posted the journal, it does not record who entered the journal. The Entry person is recorded in the header file GLJrnHed which gets deleted at posting!

Is the person who created the journal line recorded anywhere? I tried looking in TranGLC and found nothing - even pulling all fields into the query.

I have found epicor very non audit friendly. The journal files have create date but not the user. One of the labour files has approved date, approved status but no approval user (which was also asked about during the audit).

Any help greatly appreciated.

I can create a ChangeLog BPM - except not on the table GLJrnDtl which is the one that I need- the icon is there for any other table that I use except for that one.

From out standpoint it looks like Epicor was designed to not be financially audit friendly at all.

I get that we could add a UD field and populate it when the record is created but that is after the fact and requires a developer. Shouldn’t there be in the box functionality to do this?

Somehow saying I am sorry I do not know who did all of the financial transactions for our company is not comforting.

If it is an automatic process creating the record, Epicor should know who ran the process right?

For the record physically deleting data is a bad practice. Epicor deletes Journal Headers, Journal groups and Invoice Groups during posting operations. A few times when dealing with Epicor support they recommended fixes that would have deleted PartTran records.

Not sure how they come up with these things but this information has not been well received when I share it.

I’m not sure what you mean by deleting the journals. They aren’t visible in the Journal Entry screen after you post them, but they’re not deleted. Have a look at Journal Tracker and Journal Detail Tracker. Also, there is a field EnteredBy in the GLJrnHed table which shows you who added it and there’s one called PostedBy in the GLJrnDtl table which tells you who posted it.

1 Like

To clarify (which is in the post) GLJrnHed is deleted when you post the jouurnal.
Also I know who posted it - I need to know who created it to prove that they are different people.

From Epicor

GLJrnHed : General Ledger Journal Entry Header. This is Parent file to the GLJrnDtl. These records are only created/used by the G/L journal entry programs. They are deleted during the posting process.

Journal Tracker is great but it does not show who created the entry. That field does not exist in the GlJrnDtl table.

I see PostedBy in GLJrnDtl. It may not be exposed, but I can see dates and usernames in a BAQ:

Mine are not. GLJrnHed should not be deleted ever. I dont think Epicors definition is accurate.

1 Like

As of 10.2.700.26, GLJrnHed is not deleted when posted. We currently have journals dating back to 2011 when we initially went live on Epicor 9 . Unless this changed with E11/Kinetic, it should still be present.

Note that GLJrnGrp is deleted when the group is posted, however.

1 Like

I still have Journals from 2019 when we were on 10.2.300. They must have fixed this a long time ago. That must have been some old description from like Vantage.

I think this is only for Journal Entry in GL. If I remember correctly, the GlJrnHed remains for the subledger postings. I think if you check the Source you’ll see that GL ones are deleted. I’ve seen this since 10.0.700.

@tsmith is correct, I have this :peach: backwards.

I think it’s the other way around: We currently only have GLJrnHed records for our general/manual journal entries and no records for subledger entries. In fact, does Epicor even create GLJrnHed records for subledger journals created by the Posting Engine?



1 Like

The automatic entries are definitely getting deleted. The manual ones are not.
Unfortunately we are getting audit on both.

Per the original post - I can see the posted user, I need the create user.

1 Like

For the automated entries, the “entry” user for the journal will be the same as the user who posted the transactions. To actually dig down into who created the transactions you will need to look at the subledger entries: PartTran, InvcHed, APInvHed, CheckHed, CashHead, etc. For a case-by-case basis you can use Chart Tracker to dig into the original subledger transactions that are the source for each journal entry, but in order to pull this en masse, you would need to create a BAQ that links GLJrnDtl to each subledger that can create an automatic journal.

Edit to clarify my first sentence: There is no GLJrnDtl record for subledger transactions until the posting process begins. At that point the posting engine creates the GLJrnDtl record, so the person running the posting process is the person creating the GLJrnDtl record.

1 Like

Tyler is spot on. I worked for a US public company with SOX auditing requirements, which appeared after Epicor was written, so it’s not as easily audited as I would have liked, but it is still possible.

If the auditors want the entry persons for the subledger, then they will have to go to the subledger because there is an option to summarize before posting and multiple entry-people will be summarized in that GL posting.

1 Like

Dare I hope?

How do I get to that information The auditors do not use Epicor so would have no idea how to do this.

We always let the auditors lead. Tell us what you want and we’ll get it for you as well as a description on how/where we got it.

Our auditors have asked for that information. You mentioned having to go to the subledger.

How do I get to that information to find the entry people in Epicor?

Chart Tracker will give you the details behind each transaction:

Select the Period:

Select the transaction you want to drill into:

Use the Cost Transaction tab to see the actual subledger transactions causing the financial transaction:

Chart tracker is great! It did not have the created by but is a fabulous took for troubleshooting.

After working with Epicor Support I did resolve our problem in a good enough fashion.

  1. If the GlJrnDtl record has a bank transaction number link to Banktran and use the entered by
  2. If it has a check number - same with CheckHed
  3. If it has an AR Invoice number - InvcHead
  4. If it has an AP invoice number - APInvHed
  5. If it is a manual entry it links to GLJrnHed (deleted for automatic entries)
  6. If it is an asset - Source Module is FA there is no link but hopefully you can find it in the FARevalue table by date and amount - lucky for us the description had the asset number - the GLJrnDtl table does not have an asset noumber (why?)

For future ease of auditing I am going to add a UD field to GLJrnDtl, GLJrnDtlMnl and TranGLC to hold the created by user and fill it in when the record is created. Then I can just do a simple query.

Thanks everyone.

1 Like

Just throwing this out there in hopes it might help someone. Necro mode activated.

SubLedgerTransaction.ExternalSysRowID will link to the SysRowID of the related record. CheckHed, CashHead, etc

Appreciate this. This table has never come up when I talked to Epicor or our Epicor partners about tracking GL so glad you spoke up.

Epicor makes things way too complicated. Since they store lots of redundant information anyway wouldn’t it have just been easier to keep the header records and not delete them?

Digging into it our Subledger transaction file only has records from 2023 which would not have applied to the 2022 Audit. We’ve been live recording all of our Financial transactions since 2020 so this table must be new.

Frustrating - This is similar to my other question to Epicor trying to connect Journals to PartTrans - it doesn’t always record the journal number. You have to do a lookup to TranGLC with PartTran.TranNum to Key3 of TranGLC.

Who designed these databases?

Appreciate everyone’s help. If it were not for the forums the Epicor product would be an unusable mess.