When I create a PO Line for a “part on the fly” item and assign a Part Class to that part, Epicor ignores the GL Account set on the Part Class and proceeds to suggest the default Suspense account GL.
Users can manually change the suggested account on PO line/rel entry, but that is inefficient if the default on the Part Class is the correct GL Account in the first place.
Is this standard, or is this a bug in my version-10.1.500.45? It seems to me that the transaction would use the Part ClassID’s GL setting, whether the Part is on the fly or not…
That’s exactly what I thought it should do. When I click “get default“, nothing happens. I am not sure if it is because it is a part on the fly or because I am creating a PO to “Other”. So it must be something with My version…
There’s a generic Expense account context in the “Inventory and COS” GLC Type, which should be applied in Company Config.
This is what would be used for a Pur for Other - assuming no other GLC applies.
Note that GL field on the PO Release sheet doesn’t automatically display a value. When it’s blank, the release will use the GLC derived acct. The Get Default button is really used to restore using the default, after manually entering some other account.
Just curious, can you manually select the acct specified on the Part Class GLC?
This is even bigger: it turns out that none of the Part Classes drop their default Inv GL account in. Most Part Classes result in a greyed out GL section under the PO Rel sheet. You can’t set the GGL at all. Our buyers have just lived with this, and never questioned it. Yikes.
Thanks Calvin.
-While digging deeper I see that the main company has GL settings in place. I look in the sites and only two entries in each site: Division and Tax. I wonder if for each site the Inventory COS and WIP GL settings and others need to be specified? Is that how you are set up?
You can use below BPM in Post-Processing of adding new PO line to populate the GL account.
var ttPODetailRow = (from ttPODetail_Row in ttPODetail
where string.Compare(ttPODetail_Row.Company, Session.CompanyID, true) == 0 orderby ttPODetail_Row.POLine descending
select ttPODetail_Row).FirstOrDefault();
if (ttPODetailRow != null)
{
var bo = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.POSvcContract>(this.Db);
if (bo == null)
{
throw new Ice.Common.EpicorServerException(“Can’t resolve instance of ‘Erp.PO’ service.”);
}
This is by design. The system won’t know the G/L account until the WIP/Recon report/capture runs the posting rules. Epicor is a multi-book system so one account number on the PORel doesn’t make sense because it could be as many account numbers to use as there are books in the system. The only exception would be Misc/Expense POs. Here you should be able to set the account number while the PO is not approved and no other activity like receipts have occurred.
Are you using Misc/Expense POs or Inventory/Job Matl/Subcontract?
FWIW - Here’s the a trace (changes only) what happens when I change a PO line (of type Pur to Other) from having no Part Class, to one with a GLC. And then saving that PO.
Not entirely true. The TranGLC table holds the GL account to be used for the transaction. At least for PO Receipts. The TranGLC entry is created when the PO Rel is saved.
I made a PO with an OTF Part using a Part Class that specifies Acct 6160-00-01 for Inv/Exp. This created the Tran GLC entry:
How would Epicor post to a different account in a another Book? Would it create a second, third, etc. TranGLC record at receipt?
Even with the Receipt, wouldn’t Epicor need to do a “mini-posting rule” run to get the account number?
It’s doesn’t seem safe to set the account number on the PORel except for Other/Misc/Expense POs. It’s as a bad as people abusing the Write-Off command.
I assume this is what happens when the Release is saved, updating TranGLC.
The PartTran table no longer holds the GL Accts that the transaction uses. So the Posting engine must read the TranGLC table as part of its processing.
edit
Also, I don’t think the GLAcct is stored with the PORelease. It’s only on TranGLC. The only field related to the GL Acct is the bit field PORel.ExpOverride. Which is only set when a GL acct is manually entered.
We use all three types of PO. The Misc PO allows me to set the GL, but it doesn’t use the Part CLassID default GL as its initial suggestion. (Which is what I want)