Hi Russell
The way to think about Inaport is like a pipeline:
- read a record from source (Tab 2),
- process in memory (Tabs 3 and 4),
- write to target (Tab 5).
All the actions in Tab 3 (Add Fields) and Tab 4 (Change Data) work on the record in memory - they do not modify the source, unless you do it explicitly using a dbupdate() or dbinsert().
Tab 3 - allows you to add new fields to the incoming record. Again, this does not modify the source data.
Tab 4 - allows you to do conditional tests on the data and modify fields.
As noted in
another post, normally you would be able to use a dbupdate() statement to update your source record, and your approach would be fine. Unfortunately, when the source is Microsoft CRM, Inaport does not support the dbupdate() function because the MSCRM Web Service API does not actually implement SQL.
A work around is to create a connector to a third database, and use the dbupdate() or dbinsert() functions to log information about the CRM source data, then have a second profile that uses this data to actually update CRM.
You might also like to have a look at our
blog post on creating cross reference tables during a run.
This approach offers considerable flexibility, and may be more useful for you than updating the source.