Make distinction between //data informant// and //target informant// - refer to overview article.
There's amost always a mapping required; whether it's done in a TOOL script, a view or in the model.
Name data informants appropropriately (to indicate their strong data dependence) as opposed to target informats which tend to be more generic. E.g. use "_data" suffix for name, "_d" for index.
I usually tackle moderately complex imports in a stand alone TOOL script (not a view) kept alongside the source data, which produces a whatIf-friendly output (TOOL or text), along with informants.
===== Case 1 - Data informant used in model diagram =====
Some situations in which this occurs:
* Data informant and target informant are common (no mapping required). If the informant is defined in the diagram then the source data can be imported immediately; otherwise, the informant must be defined.
* Data informant and target informant are different, therefore mapping occurs in diagram.
===== Case 2 - Data informant mapped to target informant in script/view =====
Write and run script with this format:
Get informants from file
Export informants
Inspect informants, and create mappings. Grow script to:
Get informants from file
!Export informants (now optional)
Define mappings (from parameters or from external file)
Create/import data with data informants
Apply mappings
Export data