Tags being disappeared from the SkySpark


Hi Jonathan:
First of all thanks for all the help so far. I am currently using haystack driver and pushing my entire hierarchy to the skyspark.

My hierarchy basically is the result of this single query level def and the query is hs:hisStatus = “ok” . I have configured the haystack driver to export the histories everyday at 2AM

The problem I am having here is - every-time I tag those points at SkySpark , I loose them the next day.

How can I troubleshoot this?



The Niagara export is designed to be a one way push master set of tags. This requires a little bit of back and forth with SkySpark to correctly merge/add/remove tags for each entity in the export. If you plan on doing tagging in both systems, there are two options.

  1. Use the export as you currently are but make sure to add tag exclusions on the extension. Anything in this list will be ignored during the export for both systems. This would mean anything added in SkySpark would remain as the export would ignore the fact that it doesn’t know about it in Niagara.
  2. Use SkySpark integration into Niagara. If you wanted to switch from a push to a poll scenario, you can then continuously sync tags down from SkySpark into Niagara or only on demand. There is an application note in the documentation on this subject that goes into detail with examples on how to do this in SkySpark.


I prefer the option 1 you suggested, But what do you mean by “add tag exclusions on the extension”.
I have not done this before. Should I just go look on the help menu in niagara.?


There is a property on the export itself called “Exclusion Tags”. There is also a “Global Exclusion Tags” property on the top level exports container. You can add exclusion tags on either of these locations to apply them to a single export or multiple. If you wish to set them at the global level, you will just need to set the “Use Global Exclusion Tags” to true on the export you want to inherit these tags. Setting this to true will use both local and global exclusion tags if present. To add an exclusion tag to either of these lists, there is an action on the exports container and the export called “Add Exclusion Tag”. Just execute this action and type the name of the tag you wish to exclude and it will be added to the list. Similarly you can invoke the “Remove Exclusion Tag” if you mistype a tag or no longer wish to exclude it.


Two methods solved my problem.
A. setting Use Global Exclusion Tags to True. And setting Prepend ID to unknown.
B. setting Use Global Exclusion Tags to True.And setting Prepend ID to Station Name. And addling tags into the facets of Exclusion Tags.

see image below for method B.


I think Method B assumes that I should know all the tags that I am going to use in the skyspark in the future unless I go to the station and keep updating the exclusion list. In my case, remotely logging into the customer’s JACE is not easy. Therefore I do not want to keep going to the JACE/station in the future.

Can I go with option A? what problems I might have down the road if I go with this.


When you tried prepend to unknown, was this always the case or was this a change? I would not expect that option to work in the current version. This I believe is forced to be station name when using skyspark 3 to preserve id uniqueness. Did the export actually succeed with this setting or did it fail? Prepend station name is necessary to account for multiple stations into a project in skyspark as there will be duplicate ids without that setting.

I would not recommend manually editing the facets but using the actions instead to make sure the format is correct.

Use Global Exclusions tags is only necessary if you put the exclusions at that level. If you set them at the individual export level, then this does not need to be true since there are no global exclusions. In either case, this list must be maintained either directly in Niagara or from SkySpark. If you are not able to access Niagara directly on the customers site easily, you can open a Haystack Connection from SkySpark to Niagara and use the Invoke Action Op for the export where you could utilize the add/remove exclusion tag actions. Examples on how to use this feature is in the latest documentation in the section “Appendix B: Additional Ops - Using the Invoke Action Op”. You will need to be at least to use this feature.

If you have questions on using the invoke action technique from within SkySpark, let me know and I can help you determine the correct axon call from within SkySpark.


I played with these methods on haystack driver [v1.0.19.2] that I downloaded today.
Export was successful with no failure.
But I was only exporting from one trial station.

I think, I need to be inside the customer’s network to connect to their Jace via skyspark’s haystack connector. Currently I do not have VPN access and getting it from the customer is another long and difficult process.

This leaves me with the following option i think:
setting Use Global Exclusion Tags to True.And setting Prepend ID to Station Name. And addling tags into Exclusion Tags using actions and not manually.


I’m not sure your exact network configuration but assuming there’s a network path from Niagara to SkySpark, there might already be a way SkySpark can connect back into Niagara but that’s really a question to your customers IT for options there.

As long as you can update the exclusion tags when necessary, then that method should work. You could also add the tags directly on Niagara and they would be pushed on the next export to SkySpark. Really just depends on where you prefer to do your tagging at that point.