We have a GIS system that is using our AF hierarchy. It would be great to be able to notify that system when our AF structure changes so that they stay in sync with each other. Is there a way to do this from AF?
How is your GIS platform getting data from AF? Is it using a custom AF SDK code? Is it using the PI Integrator for Esri? Depending on how this is integration currently works, I can suggest different ways to do this.
Let me re-phrase,
I need to know if PI can broadcast a change in the AF structure in a way for any system to try and pick it up. A message, a notification, a service or something along those lines that we can use for any system, not just our GIS one.
For the record we are using the ESRI connector to PI.
Thank you for the reply.
Just adding to Mike's comment, if FindChangedItems is not enough for you, you could implement a service that keeps comparing the structure in a way that fits your need. Keep in mind that graph isomorphism is a computational overload (good article, good implementation), so you may consider flatten your tree before processing it.
No. There's no way in which changes are pushed out to subscribers in general. Notifications does this for a very specific scenario -- event frames. If you've got something using AFSDK already, you can poll for changes with FindChangedItems.
Yeah, there is no direct way to achieve.
Maybe SQL Server it self have this feature, (I did not test it by myself though)
Track Data Changes (SQL Server) | Microsoft Docs
But since OSIsoft does not recommend us to connect SQL PIFD Database directory, as Mike suggested, I think AFSDK findchangedItems is a good way to go.
I just wanted to add something to Kenji's comment. We don't support direct reads or writes from or to the back end AF database (default name of PIFD). The reason is that the database schema changes from one version to another. Consequently, a custom built application that is reading directly from the SQL database may not work in a future version of AF. For custom built applications, we recommend using one of our developer tools such as the AF SDK, PI OLEDB Enterprise or PI Web API. Using the FindChangedItems AF SDK should work for your use case as suggested by Mike and Rafael.
For reference: https://techsupport.osisoft.com/Troubleshooting/KB/KB01254/
Retrieving data ...