Sharing Data
A powerful feature of SyncroSim is its ability to share Datafeed values between Scenarios. SyncroSim does this by allowing users to express various forms of dependencies between Scenarios, which in turn allows Scenarios to share (i.e. inherit) Datafeed values in various ways.
Important
For two Scenarios to share Datafeed values, one Scenario must have a dependency on another. For example if Scenario 1 has a dependency on Scenario 2, at runtime Scenario 1 (which we refer to as the Target Scenario) will then inherit Datafeed values from Scenario 2 (which we refer to as the Source Scenario).
Note
Dependencies between Scenarios in SyncroSim can be managed using either the Library Explorer, the Command Line Console, the SyncroSim R Package, or the SyncroSim Python Package. This article describes how to manage Dependencies using the Library Explorer.
Creating Dependencies
To create a dependency between two Scenarios, in the Library Explorer use the mouse to drag the Source Scenario onto the Target Scenario. The Target Scenario will then inherit Datafeed values from the Source Scenario.
The image above shows the Library Explorer after an empty Scenario (called New Scenario) has been created and then the existing Expected future sales - past trends continue Scenario has been dragged onto it in order to make the New Scenario dependent on the existing Expected future sales - past trends continue Scenario. A new Dependencies subfolder is then added to the New Scenario to show this dependency.
As shown above, opening the New Scenario shows that the *New Scenario - even though it was previously empty - has now inherited all of the Datafeed values from the existing Expected future sales - past trends continue Scenario.
Important
Datafeed values will not be inherited from the Source Scenario for those Datafeeds for which data already exists in the Target Scenario.
Tip
While inherited Datafeed values are displayed in the Target Scenario, they cannot be edited directly in the Target Scenario; rather the values only appear in the Target Scenario in read-only format. You can, however, copy the data from a Source Scenario directly into the Target Scenario by unchecking the Inherit values from... control at the bottom of each Datafeed's screen for the Target Scenario.
Prioritizing Dependencies
Each Target Scenario can have dependencies on multiple Source Scenarios. When a Target Scenario has multiple dependencies, the Source Scenarios are prioritized - that is, the higher the Source Scenario in the list of Dependencies for the Target Scenario, the higher the priority. By default when two or more Source Scenarios have values for the same Datafeed, the values for that Datafeed will only be inherited from the Source Scenario with the highest priority.
In the image above, the New Scenario now has two Dependencies: one on the Expected future sales - past trends continue Scenario and one on Expected future sales - increased demand for electric Scenario. Because the Expected future sales - increased demand for electric is at the top of the Dependencies list, it has the highest priority.
You can change the priority of a Source Scenario by dragging it with your mouse to a new position in the Dependencies subfolder.
Tip
You can create and prioritize Dependencies in a single step by dragging Scenarios directly into the desired position in the Dependencies list.
Merging Dependencies
As mentioned above, by default the Source Scenario with the highest priority will override any Datafeed values provided by lower priority Source Scenarios.
This behaviour can be modified, however, such that the values of all Source Scenarios are merged - regardless of priority - rather than overriden. To enable merging of all Source Scenarios, turn on the Merge Dependencies option under the Target Scenario's Summary Property.
Note
Not all Datafeeds support dependency merging. For example, single row Datafeeds and Datafeeds with unique constraints are not considered when merging dependencies. Consult the Package vendor for information about which Datafeeds support dependency merging.
Removing Dependencies
To remove a Dependency from a Target Scenario, select one or more Source Scenarios in the Dependencies list for the Target Scenario, then right-click and select Remove.
Tip
You can remove all Dependencies by selecting the Dependencies folder and choosing Remove.
Data Sources Tab
If you open a Scenario, the last tab - called Data Sources - summarizes information regarding all of the Scenario's dependencies.
Tip
If the Source Scenario is inherited then the name of the Source Scenario will be bolded on the Data Sources Tab.