In xMart, data can be loaded from many different sources. These sources are called Origins in xMart.
Imagine a scenario where a data manager distributes a single Excel template file to be filled in by different countries. Each Excel may be in a different language so the column names may be different.
An pipeline origin can be set so that it will know that the Excel files are in different languages and can deal with it accordingly. So column names, date formats etc. can be managed. This is done in the pipeline by filtering the commands using origin specific commands (see below).
Different origins can have different LOAD_ORIGIN permissions so it is possible to display a different button for each language and control who can use which button so French users will only be given the option to load French language Excel files, Spanish users, only Spanish files, English users, only English files and so on.
You can also limit the modifiable data to different groups using datascopes and set variables based on the origin.
Origin specific commands
Commands can be applied to some origins only.
Origins can be specified in all commands that support the Origins
attribute (Getters, Tranforms, LoadTable, …).
The Origins attribute should be filled with a comma separated list of existing origin codes.
Particular origins can be excluded by prefixing codes with !
Example
<Extract>
<GetWebService Url="http://url_for_euro" TableName="data" Origins="MG_AGG_EURO">...</GetWebService>
<GetWebService Url="http://url_for_afro" TableName="data" Origins="MG_AGG_AFRO">...</GetWebService>
</Extract>
<LoadTable SourceTable="data" TargetTable="REF_COLORS" LoadStrategy="MERGE" Origins="MG_AGG_AFRO, MG_AGG_EURO">
<Transform>
<AddColumn Name="Column1" FillWith="applies for all origin" />
<AddColumn Name="Column2" FillWith="only for this one origin" Origins="MG_AGG_AFRO" />
<AddColumn Name="Column3" FillWith="not for this" Origins="!MG_AGG_EURO" />
</Transform>