Almost.
I added a "Last Active Day" date field and used a process builder process (for both GL Account and GLAV) to populate it with the last day of the related Accounting Period so I didn't have to look through the accounting period object in my validation rules.
Expand PostRebecca, was the above your final solution?
Expand PostFurther question: Is it possible to put an optional filter on lookups to the GL Account and GLAV variable objects that only shows active options?
Expand PostThe object list for Financial Suite above is incomplete:
Time Card Day should not be on it but the following ones should:
- Accounts Payable(AP Override)
- recurring AP Lines
- recurring billing lines
- Bank Deposit
- Expense Lines
- Project tasks
Expand PostMy solution: I added a lookup to the Accounting Period on the GL Account called "Inactive as of", and added a validation rule that requires that it be populated if active = false. Then on each of the above objects I created a validation rule that checks whether the GL Account is active AND whether the end date of the Accounting period for the transaction is > than the end date of the "Inactive as of" period.
AcctSeed__Expense_GL_Account__r.AcctSeed__Active__c =false && AcctSeed__Account_Payable__r.AcctSeed__Accounting_Period__r.AcctSeed__End_Date__c > AcctSeed__Expense_GL_Account__r.Inactive_as_of__r.AcctSeed__End_Date__c
Edit: I've found this approach to be problematic to use with both the GL Account and the GLAV variables. If there is more than one GL Account ((Like on Billing lines or SRE) just the validation rules max out the 15 object link limit. It's frustrating that the link to each separate GLAV (1-4) counts as a separate object against the limit even though it's 4 separate links to the same object.
Expand PostMy solution: I added a lookup to the Accounting Period on the GL Account called "Inactive as of", and added a validation rule that requires that it be populated if active = false. Then on each of the above objects I created a validation rule that checks whether the GL Account is active AND whether the end date of the Accounting period for the transaction is > than the end date of the "Inactive as of" period.
AcctSeed__Expense_GL_Account__r.AcctSeed__Active__c =false && AcctSeed__Account_Payable__r.AcctSeed__Accounting_Period__r.AcctSeed__End_Date__c > AcctSeed__Expense_GL_Account__r.Inactive_as_of__r.AcctSeed__End_Date__cExpand PostThat formula keeps any record from using inactive GL-accounts, but do you have suggestions or examples of more nuanced validation rules that allow old records to keep their historic GL Account even if it is edited?
Expand Post
Related Articles
GL Account Reporting Groups 606Number of Views Manage Sub Types on GL Accounts 846Number of Views Edit/Delete Skeleton GL Accounts 424Number of Views Create a New GL Account 779Number of Views API Overview 1.14KNumber of Views Design Your Chart of Accounts 1.57KNumber of Views Default GL Accounts 1.26KNumber of Views Step 3. Migrate Open Accounts Payable 552Number of Views Button Permissions 370Number of Views Create an Expense Report 708Number of Views
