Point Resolve

The user can learn how to know what a binding of a point resolves to by doing the below. This is one of the top things to check when comes to debugging point issues in Graphics Builder. For example if the point is displaying incorrect values, not updating, or point degrades then they would do this. This would be to check if the point exists or if multiple points are being returned, which would display the incorrect value.

Point Bindings

First the user needs to get the point bindings of the points having the issue.

To get the point binding, they can right click on a point in the Virtual Points panel and select "Edit". 

They will then see the point binding there.

Below are few examples we have cover by tags, by navName, and by absolute (hardcoded id). This is how they are configured when first creating the graphic and choosing to add points by one of those options.

  1. Point 1 (by tags) - equipRef==$id and air and discharge and flow and sensor and point

  2. Point 2 (by navName) - equipRef==$id and navName=="AirFlow"

  3. Point 3 (by absolute) - id==@1eeaff9e-a14e5d23

Once the user has the point binding info, they will also need the target id for options that have "equipRef==$id". For now copy the binding and paste on a note pad. Then look at next step to get target id. IF the point binding is an id, then no need to get the target id, that can be skipped. Go to the Folio Query Check section.

Target ID

The user will need to get the target id for bindings that contain "equipRef==$id". The target id would be the id of the parent equip of those points.

All of our graphics have a target point that gets generated by default and this is what is used to grab the id of current target context on the navigation tree. Hence why we recommend to navigate to the corresponding level to create/edit a graphic. Unless target isn't necessary for changes.

Once the graphic is open, we can get the target id a few different ways. Either from the target virtual point binding, browser url, or DB Builder.

In our example, we navigated to Vav-01 and opened our graphic. Below are the example of ways to get the target id.

  1. Target Virtual Point Binding - in the Virtual Point panel you'll see a target point labeled as the target name. In our case since we navigated to Vav-01 and opened the graphic. Our target point name is called "Vav-01" since that is the name of the equip. We can then right click on that to select Edit and copy this portion of the id "@1eeaff69-30d84ee5".

  2. Browser Url - once the graphic is opened, in the browser url, the user will see "targetRef==@id_of_target". They can then copy the id from there. The "@1eeaff69-30d84ee5" part.

  3. DB Builder - the user can also get the id from the target through DB Builder. The user would open a new tab and go to DB Builder. Then navigate to the Vav-01 equip based on our example. Then go to the 'i' icon to get the id.

Once the user copies the id, paste it in the note pad.

Folio Query Check

Now that the user has both the point binding(s) and target id, they will need to merge that id into the point bindings that have "equipRef==$id" in them. Basically we are replacing "$id" with the target id to return a valid query to use in folio.

Based on our previous point examples above, the below is what they would look like after merging the target id for #1 and #2. For #3 it is not needed since its an id that will map whichever record that belongs to. The other two can return different results.

  1. Query 1 - equipRef==@1eeaff69-30d84ee5 and air and discharge and flow and sensor and point

  2. Query 2 - equipRef==@1eeaff69-30d84ee5 and navName=="AirFlow"

  3. Query 3 - id==@1eeaff9e-a14e5d23

The user will then run these queries in folio depending on what they have and see what is returned. Below are a few example scenarios of what can be returned and what it would mean.

No Records Returned

If the user enters any of the above queries and nothing is returned and no error occurs, then it means those point records don't exist or match the tags being used to query for them.

What to do: Open DB Builder and navigate to the equip where that point(s) should exist and confirm if it does.

  • IF yes, then make sure tags, navName, or id match. If they don't, update the point binding in Graphics Builder to reflect that.

  • IF no, then just confirmed they don't exist so it won't return anything and what you are seeing in the graphic are just stale points and/or point degrades. You would either remove the points from the graphic or update point binding to make sure it resolves to the point you want.

There are times when a user would delete equips and re-add them, which they forget to update the tags, navName, or id of the point binding depending on what they are using.

Multiple Records Returned

If the user enters any of the above queries with the "equipRef", and multiple records are returned, then it means more than one point has the same tags and/or navName (rare for navName).

If multiple records are returned, the bindings will always use the first result in the list of records returned. You would have to check the tags in DB Builder and see if they are correct. If they are, but still returns multiple and first result isn't what you are looking for. You can either add a new tag to make it unique compared to the other point(s) or append/replace with navName. 

  • Append navName to tag based query: equipRef==@1eeaff69-30d84ee5 and air and discharge and flow and sensor and point and navName=="AirFlow"

  • Replace tags with navName: equipRef==@1eeaff69-30d84ee5 and navName=="AirFlow"