- If you transfer a table that has a sub-table (a related table), you can add the sub-table as a SubTransfer to the main Transfer.
- A typical example of this is transferring Invoice (-header) and invoice-lines. Linking the invoice-lines transfer to the main transfer like this has the advantage that both header and lines are transferred in one transaction; This ensures that either both header and lines are transferred or none at all. In this way you don't risk having a header without lines or vice versa.
- Using a sub-transfer also implies that filtering is done on the header level. You filter what Invoices you want transferred, for example based on the invoice date; and you don't need that field for the filtering on the invoice lines.
- The Invoice head and the lines are linked together by using the "Source Link Filter" and "Destination Link Filter" on the sub-transfer. When the transfer runs and a new record is created in the destination sub-table (the invoice lines table), the value of the invoice id or number from the invoice head is automatically inserted on the sub-table (the invoice lines) using the "Destination Link Filter".
- When the transfer is running, then for each record in the main table, a filter will be set on the sub-table and all records within that filter will be transferred (typically that would be all the lines belonging to one specific invoice). This is considerably slower than just transferring all records in one table, but given the advantages, it is normally acceptable and the preferred way of doing this.
- To create a new SubTransfer, you select the Transfer where you want to have a SubTransfer.
- From the Transfer you can select "SubTransfers". If a SubTransfer has already been created you can choose it here or you can create a new.
- The SubTransfer is setup much like a normal transfer; with the only addition being the specification of the "Source Link Filter" and the "Destination Link Filter".
- In the Field List on the SubTransfer, you can use the formula GETFIELDVALUE to get the value of one of the fields in the main record if needed.