2 Replies Latest reply on Jul 4, 2012 7:17 AM by jrapin

    PI Notifications - Delivery End Point periodic call




      I am working on PI Notifications and try to get a Web Service to iterate through the all the existing Notifications and activate them or not based a several business-related conditions.


      To achieve that, my primary idea is to create a Delivery End Point and trigger it on a regular basis, in order to call the Web Service periodically. Is it the right way to do what I want ? If so, how can I get a delivery End Point to be triggered periodically ?


      If not, what would be the best way ? I also though of calling the Web Service directly from the Windows scheduled tasks but it doesn't seem to be the most appropriate way.


      Thank you in advance for your answers.

        • Re: PI Notifications - Delivery End Point periodic call

          @Jean: Yes this is a good way to do this. If you think of a use case where you would like to periodically pass operation information to a MES, an ERP or a CBM system, you could use this method to update their internal asset database with PI System data.


          For example, you can configure a notification on one or many assets (pumps) that check the operation hours of each and "push" the information back to a CBM system via a Web Service delivery channel. You can schedule this transfer of information once a day at 00:01. For so, you would configure the notification to use a periodic time rule and you would add a subscriber referring to your Web Service delivery channel.


          The option you mentioned of using the Windows Scheduler engine would work but would not benefit from high availability and buffering capabilities offered by PI Notifications.

            • Re: PI Notifications - Delivery End Point periodic call

              The use case I'm thinking of is a little more tricky than the one you mentionned: the Web Service called is iterating through the disabled notifications and re-enable them automatically if a date and time (stored in an external relational database) is reached.
              This check has to be performed around once every 5 minutes.


              A good method to achieve what was needed has been suggested by the OSIsoft Techsupport:
              - Set up a notification


              - Configure a trigger that is always true (e.g. a performance equation trigger with '*' > '*-1m').
              - Set the time rule for the notification to periodic and specify your desired frequency.
              - Under the "Subscriptions" tab, add the Web Service Delivery Endpoint.
              - Uncheck the "Notify only on change in status" option
              - Set the "Non Repetition Interval" to 0.


              This appears to work pretty well. I hope this can help someone else in the future.


              Thank you for your help. Best Regards