We’re experiencing workflow failures when importing project expenses via EIB in batches. The approval workflow works fine for manually entered expenses, but batch imports via EIB result in approval workflow errors with “Invalid account code” messages.
The issue appears to be related to account code validation and how the workflow handles errors during batch processing. When a single expense in a 100-line batch has an invalid account code, the entire batch workflow fails rather than processing valid lines and flagging exceptions.
This is causing significant delays in expense approvals for our project managers. We need the workflow to handle EIB validation errors more gracefully. How have others configured workflows to process batch imports with validation exceptions?
Create a validation rule in Workday for project account codes:
Navigate to Configure Business Object > Expense Line
Add validation rule: “Account must be active and project-eligible”
Set validation timing: “Before workflow initiation”
Update your chart of accounts to include project eligibility flags
Modify the expense line business object to check:
Account exists in chart of accounts
Account status = Active
Account type allows project expenses
Account is not restricted for the specific project
Add a pre-workflow validation step that executes these checks before triggering approval
Workflow Error Handling:
Reconfigure your approval workflow for batch resilience:
Go to Configure Business Process > Project Expense Approval
Add a new first step: “Validate Expense Data”
This step runs validation rules before approval routing
Configure it to evaluate each expense line independently
Add conditional branching:
IF validation passes → Route to appropriate approver
IF validation fails → Route to Exception Work Queue
Create an exception queue for invalid expenses:
Name: “Project Expense Validation Exceptions”
Assignees: Project accounting team
Include validation error details in work item
Modify workflow to process line-by-line:
Change trigger from “Batch Import Complete” to “Expense Line Created”
This ensures each line flows through workflow independently
Valid lines proceed to approval while invalid lines go to exceptions
Implementation Steps:
Update EIB template with validation mapping (implement first)
Test import with mixed valid/invalid data to confirm error handling
Modify workflow to add validation step and exception routing
Create and configure exception work queue
Train project accounting team on exception processing
Run parallel testing: import same batch file before and after changes
The key is separating validation from workflow execution. Validate early (in EIB), validate thoroughly (before workflow), and handle failures gracefully (exception routing). This approach allows valid expenses to flow through approval while flagging problematic ones for correction without blocking the entire batch.
This draft is based on general Workday knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.
The problem is that your EIB mapping isn’t validating account codes before triggering the workflow. Add a validation step in your EIB template that checks account code validity against your chart of accounts. You can use a VLOOKUP or reference field validation to ensure only valid codes are imported. This prevents invalid data from reaching the workflow in the first place.
Your workflow needs error handling logic for batch scenarios. Configure the workflow to process expenses individually rather than as a single batch transaction. This way, if one expense line fails validation, the others can still proceed through approval. Add a conditional step that routes invalid expenses to an exception queue while allowing valid ones to continue. We implemented this by adding a validation step before the approval routing step, with separate paths for valid and invalid expenses.
Thanks for the suggestions. I can add validation to the EIB template, but I’m concerned that will just reject the entire file if any line has an error. Ideally, we want to import what’s valid and flag what’s not. The workflow error handling approach sounds better, but I’m not sure how to configure the workflow to process line-by-line instead of batch-level.
Tested this on Workday 2023R2 and adding the ISVALID account code validation column in the EIB template with ‘Continue Processing’ error handling eliminated our batch import failures.
You need to modify your EIB process to use “Continue on Error” mode. This allows the import to process valid lines while logging errors for invalid ones. Then your workflow can be triggered per expense line rather than per batch. Check the EIB template configuration for error handling options - there should be a setting that controls whether the import stops on first error or continues processing.
Have you considered pre-validating your expense data before importing to EIB? We built a staging process that validates account codes against a reference table before the EIB load. This catches errors earlier and gives users a chance to correct data before it enters Workday. It’s an extra step, but it prevents workflow failures and reduces exception handling downstream.
The account validation is probably failing because your chart of accounts has restrictions that aren’t being checked during import. Some account codes might be valid in structure but inactive or restricted for project use. Your workflow should validate not just the format but also the account status and eligibility for project expenses.