In a Visio drawing, I'm trying to create a list of values from 2 tables (8900 and 9600 in Techex MWCore Protocol). They are not connected directly, but both tables reference a common index in a third table (8700) that I'm able to use to connect them. However since the relationships are both technically many (8900/9600) to one (8700), even though in my case all of them are one-to-one, I'm unable to simply connect using a chain of foreign keys.
Basically I have ROW Children with a ChildrenSource of */8900, and for each child group I was trying to get the parameter 9671 using:
- Element: *
- Parameter: 9671
- ParameterSubscriptionFilter: VALUE=9623 == [param:*,8908,[tableIndex]]
- Note that 8908 and 9623 are the Foreign Key parameters from each table that reference the same index on table 8700
However after some testing, it's looking to me like that the [param:...] placeholder is not resolving correctly. Since it works when I paste an index value directly into the ParameterSubscriptionFilter, and the [param:...] placeholder works when just pasted into the text field.
Is there a limitation in using placeholders in ParameterSubscriptionFilter? If so is there an option/workaround to get around the limitation?
Thanks!
The children shapes are showing up, and if I just use “[param:*,8908,[tableIndex]]” as the shape’s text it correctly resolves to the Foreign Key, however when entered into the ParameterSubscriptionFilter and the shape’s text is changed to “*” no text appears.
Added a new comment so I can share an image.
Hi
After some digging I found the reason why it did not work with parametersubscriptionfilter, when using this option within childrenshapes, it will try to index using the childrenshape index. This results in the wrong index being used.
By adding the option AllowCustomIndex on the shapes, this can be prevented: https://docs.dataminer.services/user-guide/Basic_Functionality/Visio/generating_shapes/Generating_shapes_based_on_table_rows.html#making-a-shape-use-a-different-index-than-that-of-the-original-row
This should also solve the issue with the actual value being shown compared to the display value. When using subscriptionfilter it will only index on the values.
Hope this fully solves the issue
Yes, thank you this fixed it!
Adding this as an answer to share some images, to help visualize.
Here is what it looks like now. I've replaced the * on the text field in question with <Textfield> to help visualize it (When it is a * the field is empty).
In Visio, here is the outer group's shape data:
The inner group:
And the text that I'm having the issue with:
There are a few notes about this specific situation:
- This is using the Techex MWCore v1.0.3.36 Protocol
- The tables being used are all Partial tables (So I tried adding ";FORCEFULLTABLE=TRUE" to the end of the filter but it didn't seem to make a difference)
- The [tableIndex] consists of 2 UUIDs separated by a "/" character
Hi,
Would it be possible to try and use a Subscriptionfilter instead of parametersubscriptionfilter: https://docs.dataminer.services/user-guide/Basic_Functionality/Visio/linking_shapes/Linking_a_shape_to_an_element_parameter.html#retrieving-and-showing-the-value-of-a-table-parameter-using-a-subscription-filter ?
Parametersubscriptionfilters can sometimes not work correctly and this could be a solution
In your case, this switch would be switching parameter to [param:*,9671] and the parametersubscriptionfilter option to subscriptionfilter
Great, it looks like this worked! The only strange thing is it using the integer values instead of the text descriptors for the Enum-like parameters. Is there a way to translate those?
Hi,
There should be no limitation in using placeholders in ParameterSubscriptionFilters.
I was able to recreate the setup using simple tables and it seems to work (a childrenshape with the shapes from the first table with text containing data from the second table, linked by a column with the same values.)
What exactly is not working in your setup. Is there no data showing up in the children shapes or are the shapes themselves not showing?