PI Developer Technologies

Welcome to the PI Developer Technologies feedback page!  

This forum covers the PI AF SDK, PI Web API, PI OPC DA and HDA Servers, and the PI SQL family. We created this forum to hear your ideas, feature suggestions and feedback. Please suggest your most important features and design change ideas on this site, and vote for your favorite ideas.

Please note that your ideas and comments posted here are visible to all other users.

  • For bugs, please open a case with OSIsoft Tech Support through myOSIsoft Customer Portal  (https://my.osisoft.com) instead of sharing them on this site.
  • For documentation feedback and bugs, please report to documentation@osisoft.com instead of sharing them on this site.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Return row number from PI SQL Client calls

    It would be useful to be able to access a specific row from a PI SQL Client call. For example if I query muiltiple attributes indicating some KPI ordered from highest to lowest returning 1000 rows, I might want to show only the top 10. The TOP function is supported in SQL Client, but the Table Lookup DR in AF only allows you to find the first row.

    It would be useful if either the row number, 1..n, was returned or the table lookup DR would allow you to pick a specific row. This would then allow you to show…

    2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI SQL Client  ·  Flag idea as inappropriate…  ·  Admin →
  2. Allow editing of the PI OPC DA Server ItemID

    The ItemID of PI tags retrieved using the PI OPC DA Server has a backslash. In order to maintain consistency with browsing for OPC tags on their client, is there a way to remove or replace the backslash in the ItemID? For example, <servername>.sinusoid instead of <servername>/sinusoid

    2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  OPC DA & HDA Servers  ·  Flag idea as inappropriate…  ·  Admin →
  3. Expose Event Frame Extended Properties in PI SQL Framework

    As a PI SQL Framework end user, I need to be able to distinguish between event frames generated by PI Batch Interfaces from different sites or data sources by filtering my query on the name of an event frame extended property.
    PI Batch Interfaces store the unique ID of the data source as the name of an extended property in the event frames they generate. When multiple PI Batch Interfaces write to the same AF Database, the extended property name can be used to distinguish between event frames from different data sources or sites.

    2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
  4. "Create or Update Data Reference" through OSIsoft.Powershell

    It is already possible to create an instance of an existing AF Element Template by using the powershell cmdlet Add-AFElement with the -AFElementTemplate option. The element is then created in the AF tree, however if there are tag creation rules defined in the template, the tags are not created until you manually perform an "Create or Update Data Reference" using the PI System Explorer. It should be possible to trigger "Create or Update Data Reference" via Powershell as well, either by an additional option of the Add-AFElement cmdlet or by a separate cmdlet.

    2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  5. PI SQL Commander Lite 2018 R2, view edition impacted by limited number of characters

    When you alter a view with many attributes, there is a characters number limitation that prevents you from seeing the total content of the view, so basically you cannot edit it because it's kind of "corrupt".

    2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Bugs *PLEASE SEND TO TECH SUPPORT*  ·  Flag idea as inappropriate…  ·  Admin →
  6. Drop support for TLS 1.0 and TLS 1.1

    The blog post linked below urges customers to disable TLS 1.0 and TLS 1.1 but also mentions that PI Web API supports them.
    https://pisquare.osisoft.com/s/Blog-Detail/a8r1I000000GvqGQAS/tls-best-practices-for-pi-web-api

    Please drop support for TLS 1.0 and TLS 1.1 from PI Web API to force customers to use a secure configuration.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI Web API  ·  Flag idea as inappropriate…  ·  Admin →
  7. PowerShell Add-PIValue and annotations

    Really need to be able to send annotations to PI Tag Values through PowerShell.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  8. Writing to AF Table through PI Web API

    Currently PI WebAPI provides only the method UpdateData /Put Tables (https://techsupport.osisoft.com/Documentation/PI-Web-API/help/controllers/table/actions/updatedata.html) to insert data into an AF table and this method requires the entire table data to be sent in the request and it is not currently possible to simply append new rows. It is inconvenient to update the entire table content always as you have GET the current data from the table, add in new content and then use the UpdateData / Put method to save the entire table. As the AF tables get larger, this would cause more network traffic and more error prone. We would…

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI Web API  ·  Flag idea as inappropriate…  ·  Admin →
  9. Add support for local variables in PI SQL (RTQP)

    The current version of PI DAS (RTQP Engine) does not support local variables. It causes rather clumsy constructs in some instances.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI SQL Client  ·  Flag idea as inappropriate…  ·  Admin →
  10. Add RTQP PI SQL support for default value of function parameter

    The current version of PI DAS (RTQP Engine) does not support the definition of default values for table-valued function parameters. This is a rather bleak omission, in my view. For example, the following will fail to create the table-valued function:

    CREATE FUNCTION [MOMS].[fact].[getInstrumentOperationalDataSummaries]
    (
    @StartTime DateTime,
    @EndTime DateTime,
    @TimeStep TimePeriod,
    @TimeType String = 'MostRecentValue'
    )
    AS
    SELECT i.*
    ,s.Value

    FROM MOMS.dim.InstrumentsBase i

    CROSS APPLY [MOMS].[fact].[Instrument Base Template_GetSummaries]
    (
    i.ElementID, --Element ID
    @StartTime, --Start Time
    @EndTime, --End Time
    @TimeStep, --Time Step
    @TimeType --Time Type
    ) s

    It should not. It is most reasonable to wish to provide a default value for…

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI SQL Client  ·  Flag idea as inappropriate…  ·  Admin →
  11. Add RTQP PI SQL support for parameter type cast

    PI DAS (RTQP Engine) 2018 SP3 Patch 1 lacks support for type casting input parameters of a table valued function. For example. this simple example fails to create a table valued function:

    CREATE FUNCTION [MOMS].[fact].[getInstrumentOperationalDataStringOverload]
    (
    @StartTimeIn String,
    @EndTimeIn String,
    @TimeStepIn String
    )
    AS
    SELECT * FROM MOMS.fact.getInstrumentOperationalData(
    CAST(@StartTimeIn As DateTime)
    ,CAST(@EndTimeIn As DateTime)
    ,CAST(@TimeStepIn As TimePeriod)
    )

    The following example fails in similar fashion:

    CREATE FUNCTION [MOMS].[fact].[getInstrumentOperationalDataStringOverload]
    (
    @StartTimeIn String,
    @EndTimeIn String,
    @TimeStepIn String
    )
    AS
    SELECT * FROM MOMS.fact.getInstrumentOperationalData(
    DateTime(@StartTime)
    DateTime(@EndTime)
    TimePeriod(@TimeStep)
    )

    Error message: The table-valued function definition is not supported.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI SQL Client  ·  Flag idea as inappropriate…  ·  Admin →
  12. Add support for unit conversion

    Please add a "Canonical UOM Per UOM" or "UOM Per Canonical UOM" column (not necessarily with those exact names) to the UnitOfMeasure table. This column would contain the conversion factor needed to convert between the UOM and the canonical UOM, similar to the "Canonical" column in PI System Explorer when you are viewing a UOM class.

    With this in place, a user can easily convert a value to any unit by first converting from the value's default UOM to the canonical UOM of the value's UOM class, and then convert from the canonical UOM to the desired UOM. This would…

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI SQL Client  ·  Flag idea as inappropriate…  ·  Admin →
  13. Allow adding one AFEnumerationSet to a different PIServer

    If you run

    pIServer.StateSets.Add(aFEnumerationSet);
    afEnumerationSet.CheckIn();

    The set will not be checked in if the PIServer of the AFEnumerationSet is not the same as the PIServer you are checking into.

    Instead you have to do:

    AFEnumerationSet newSet = new AFEnumerationSet(setToCopy.Name);
    foreach (AFEnumerationValue aFEnumerationValue in setToCopy) newSet.Add(aFEnumerationValue); destinationSets.Add(newSet);
    setToCopy.CheckIn();

    Please automate that functionality.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI AF SDK  ·  Flag idea as inappropriate…  ·  Admin →
  14. Implement Attribute Trait filtering for AFSearch

    I would like to perform AF Searches that return results based on Attribute trait filtering. More specifically, I would like to search for Elements that contain Location trait Attributes, so I can query more easily for assets that have a Location trait. I currently rely on Element Categories or Element Template filtering, but those filters do not always match the search results I am looking for.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI AF SDK  ·  Flag idea as inappropriate…  ·  Admin →
  15. Allow to change Connection Default Preference for all AF SDK applications

    If the user wants his custom applications running on a particular client machine to connect to the secondary server of a collective, he could of course hard-code that. But that becomes impractical if there are a lot of custom programs or they are deployed on several client machines, some of which he might prefer to connect to the primary. It would be more flexible if there was some global setting to control this.

    The first thing to do is to change priorities for the primary and secondary by assigning the former a bigger number. This can already be done in…

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI AF SDK  ·  Flag idea as inappropriate…  ·  Admin →
  16. 1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  17. Improve error logging when PI Web API fails to load attributes that are not marked as configuration items

    As a PI Web API administrator, I would like to see errors logged when PI Web API fails to load any attributes because they are not marked as configuration items. This will decrease required troubleshooting for these issues.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI Web API  ·  Flag idea as inappropriate…  ·  Admin →
  18. Sort list of tags returned by AF SDK's FindPIPoints() method

    Add a method that can be used to sort the IEnumerable<PIPoints> returned by AFSDK's FindPIPoints() method. This method should allow the option of sorting on any desired PI Point Attribute.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI AF SDK  ·  Flag idea as inappropriate…  ·  Admin →
  19. PI Web API Joined should use a format which can be used in PowerBI

    Currently the PI Web Api Joined, delivers the data in a json format which is not really "Power BI" friendly , it would be helpful to have a format where all the datavalues from the subordinated are in the same json object of the base.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI Web API  ·  Flag idea as inappropriate…  ·  Admin →
  20. Enable PI Web API to retrieve previous AF Tables versions

    Internal AF table has been updated using AF versioning system, however retrieving it whole with PI Web API only works for current version: GetData method from Table controller (GET tables/{webId}/data) does not accept a time parameter.
    Workarounds involve creating Table Lookup Data Reference attributes or joining all table versions adding columns for time range to be later filtered out.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PI Web API  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base

Posted ideas will have one of the following statuses.
Full definition of these statuses can be found on the Home Page.
No status
TELL US MORE
EVALUATING
PLANNED
IN DEVELOPMENT
COMPLETED
DECLINED