Skip to main content
Version: 1.2.15

How to build a Link Satellite?

This tutorial will guide you through building a complete Link Satellite object YAML definition step-by-step. A Link Satellite holds descriptive attributes for a parent Link and tracks their history, specifically in relation to one of the Link's sources.

We'll build a Link Satellite named LNK_SAT_SAP_OE_SALES_ORDER connected to a parent Link LNK_SALES_ORDER and specifically to one of its sources.

  1. Satellite Name (name): This is the unique identifier for your Link Satellite object.

    name: 'LNK_SAT_SAP_OE_SALES_ORDER' # 1. Satellite Name
  2. Entity Type (entity_type): Specifies that this object is a Link Satellite. For Hub Satellites, you would use hubsat.

    name: 'LNK_SAT_SAP_OE_SALES_ORDER'
    entity_type: 'linksat' # 2. Entity Type
  3. Connected Entity (connected_entity): The name of the parent Link to which this Satellite is attached. This Link must be defined elsewhere in your data vault model.

    name: 'LNK_SAT_SAP_OE_SALES_ORDER'
    entity_type: 'linksat'
    connected_entity: 'LNK_SALES_ORDER' # 3. Connected Entity (Parent Link)
  4. Connected Entity Source Reference (connected_entity_source_ref): This is a crucial property for Link Satellites. It's the URN of the specific source within the parent Link (LNK_SALES_ORDER in this case) from which this Satellite inherites the source attributes. The Link Satellite's attributes are contextual to this particular source of the Link.

    name: 'LNK_SAT_SAP_OE_SALES_ORDER'
    entity_type: 'linksat'
    connected_entity: 'LNK_SALES_ORDER'
    connected_entity_source_ref: 'urn:s2v:link_source:SAP_OE' # 4. URN of the parent Link's source
  5. Enable Refresh (enable_refresh): A boolean flag indicating whether the Satellite receives new data.

    name: 'LNK_SAT_SAP_OE_SALES_ORDER'
    entity_type: 'linksat'
    connected_entity: 'LNK_SALES_ORDER'
    connected_entity_source_ref: 'urn:s2v:link_source:SAP_OE'
    enable_refresh: true # 5. Enable Refresh
  6. Skip Hashdiff Comparison (skip_hashdiff_comparison): A boolean flag. If true, S2V will skip comparing the hashdiff of incoming records.

    name: 'LNK_SAT_SAP_OE_SALES_ORDER'
    entity_type: 'linksat'
    connected_entity: 'LNK_SALES_ORDER'
    connected_entity_source_ref: 'urn:s2v:link_source:SAP_OE'
    enable_refresh: true
    skip_hashdiff_comparison: false # 6. Skip Hashdiff Comparison
  7. Ordering Columns (ordering_columns): A list of column names from the source (defined in the parent Link's referenced source) that determine the sequence of records when multiple changes occur for the same relationship instance at the same load datetime. Can be an empty list [].

    name: 'LNK_SAT_SAP_OE_SALES_ORDER'
    entity_type: 'linksat'
    connected_entity: 'LNK_SALES_ORDER'
    connected_entity_source_ref: 'urn:s2v:link_source:SAP_OE'
    enable_refresh: true
    skip_hashdiff_comparison: false
    ordering_columns: [] # 7. Ordering Columns
  8. Historized Columns (historized_columns): A list of column names from the parent Link's referenced source that contain descriptive attributes whose changes over time should be tracked in this Link Satellite.

    # ... (previous properties)
    historized_columns: # 8. Historized Columns
    - 'ZMENG'
    - 'ZIEME'
    - 'SMENG'
    - 'LFMNG'
  9. Non-Historized Columns (non_historized_columns): A list of column names from the parent Link's referenced source that contain descriptive attributes whose current value should be stored, but whose history is not tracked in this Link Satellite.

    # ... (previous properties)
    non_historized_columns: # 9. Non-Historized Columns
    - 'KUNNR'
    - 'VBELN'
    - 'POSNR'
    - 'MATNR'
    - "PRCTR"
    - 'KOKRS'

Here is the complete YAML definition for our LNK_SAT_SAP_OE_SALES_ORDER Link Satellite:

name: 'LNK_SAT_SAP_OE_SALES_ORDER'
entity_type: 'linksat'
connected_entity: 'LNK_SALES_ORDER' # Name of the parent Link
connected_entity_source_ref: 'urn:s2v:link_source:SAP_OE' # URN of the source within LNK_SALES_ORDER

enable_refresh: true
skip_hashdiff_comparison: false
ordering_columns: [] # Optional: for sequencing records

historized_columns: # Attributes from the Link's source whose history is tracked
- 'ZMENG'
- 'ZIEME'
- 'SMENG'
- 'LFMNG'

non_historized_columns: # Attributes from the Link's source, current value stored
- 'KUNNR'
- 'VBELN'
- 'POSNR'
- 'MATNR'
- "PRCTR"
- 'KOKRS'
info

Remember that the actual source table (SAP_OE, 2LIS_11_VAITM) are defined within the urn:s2v:link_source:SAP_OE source of the LNK_SALES_ORDER Link.