An origin is a customizable and authorizable pipeline entry point. By default, each newly created pipeline has one origin with the same name of the pipeline.

To help understand the value of an origin, think of a scenario where a data manager distributes a single Excel template file to be filled in by 6 different groups. It’s a single template and a single pipeline is created to process the template file. But each group should not be allowed to upload data for any other group. Using origins, it is possible to display a different button to each group (ie “Load group A data”, “Load group B data”, etc.), and control who can use which button. Futhermore, the pipeline can include a datascope based on the origin prevent one group from modifying another group’s data, even though the data is being loaded into the same target table. Finally, if there are minor variations between the template files of each group, it is possible to indicate that certain pipeline commands are only relevant for certain origins.

An origin provides the following:

  • The origin title and code define the text of the button in the user interface that the end-user sees when uploading.
  • Different origins have different permissions (the LOAD_ORIGIN permission)
  • Apply origin specific transformations for input files that look alike but have differences.
  • Limit the modifiable data to different groups using datascope.

image

Use Origin variables

See Use Variables article.

Origin specific commands

Since xMart v4.12, 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>