Hi,
Mapping custom fields between the Vendor Bank Account and ACH Detail tables for EFT generation can be tricky, especially when relying on the Data Exchange Framework. The error you're seeing typically means the field isn’t being populated during the transformation phase, and yes, it often requires AL development to bridge the gap.
Here’s how to approach it:
First, confirm that your custom field (Bank Account Type) exists in both tables with matching field numbers and compatible data types. The Data Exchange Framework uses field number alignment when applying TransferFields, so mismatches will silently fail.
Next, check your Data Exchange Definition and Line Definition setup. If the field is marked as “Optional” in the mapping, it may be skipped unless explicitly populated. If it’s required, and the value is missing, you’ll get the error you described.
To ensure the value flows correctly, you’ll likely need to extend the mapping logic in one of the following codeunits:
Data Exch. Mapping Codeunit (typically Codeunit 1601 or a custom derivative)
ACH US EFT Export logic, if you’re using the standard US EFT format
In your AL code, you can manually assign the value during the transformation phase:
al
ACHDetail."Bank Account Type" := VendorBankAccount."Bank Account Type";
You can place this inside a subscriber to OnBeforeInsertRecord or OnAfterTransferFields depending on your architecture. If you're using a custom Data Exchange Definition, you may also need to update the Field Mapping to include your custom field explicitly.
Helpful references:
Mapping the tables and fields to synchronize – BC
How to setup EFT for payables and generate the ACH file – Crestwood
How to flow/pass custom field values – Dynamics Lab
Data Exchange Definitions – Microsoft Learn
If you find this helpful, feel free to mark this as the suggested or verified answer.
Cheers
Jeffrey