I'm not sure if this is expected behavior or not, but I'm having an issue using the [ServiceDefinitionFilter] placeholder in a service Visio that has the same element represented as 2 different child elements, with unique aliases and table row filters. It works as expected when used in the "Parameter" shape data field, but it will reference the last elements filter only when used in a [param:] placeholder or in an extended conditional statement.
To reproduce:
- Create a service, adding the same element twice (With unique Aliases)
- Select a table parameter, using a different row filters for each child element (The parameter values should be unique for each row in order to help illustrate the issue)
- Edit the service's Visio, adding 2 text boxes with the below text for each child element
- [param:Alias,tableParameterID,[serviceDefinitionFilter]]
- Create a shape with the below shape data for each child element.
- SHOW: <A>-A|Element:Alias|Parameter:tableParameterID,[serviceDefinitionFilter]|=(expected value)
- To compare, you may also create a text field of "*" with below shape data for each child element.
- ELEMENT: Alias
- PARAMETER: tableParameterID,[serviceDefinitionFilter]
- Note that the first 2 shapes will display the value of the last child element for BOTH child aliases, whereas the last shape will display unique values cooresponding to the child alias used.
Here is my Visio w/ the 'Shape Data: *' shape data visible.
Note that the ID = PESA601 shape data is:
- SHOW: <A>-A|Element:TX601|Parameter:50001,[serviceDefinitionFilter]|=event/stats/PESA601
Here is how it looks in Cube:
Here is the table data from the service (Note both TX601 & TX602 share the same underlying element):
For reference, here are the current versions of software I'm using:
Server version : 10.4.0.0-15486
Client version : 10.5.2513.2562-25eea5b4
Launcher version : 10.5.2511.1534-cdcb70da
Thanks!
Hi Nick,
Want to start off with nice write up, I was able to configure and test easily.
In my testing the system worked as you expected both services showed the correct corresponding data.
The only question I have, is when creating the service, did you select the Table Name or the individual parameters filtered to desired IDX?
Following is how my service was setup using the parameter selection with IDX selected not the entire table option:
Version wise I am running the following:
Server - 10.4.12.0-15149
Client - 10.5.2513.2144-b95072a6
Launcher - 10.5.2511.1534-cdcb70da
Let us know if you still have any questions.
Thanks,
Steve


Hi Nick, Correct, my example was working with the parameter shape data field not the shape text. In order to function using the [param:] lookup in the shape text, I had to use the actual filter data IDX value in place of the [servicedefinitionfilter] lookup. This appears to be due to the multiple service Alias references pointing to the same physical element, so the first servicefilter reference is being returned for both Alias entries in the shape text. When replacing the [servicedefinitionfilter] reference with the physical IDX value of the desired row, the shape text then populated as desired.
Will one of these methods (parameter shape data filed used or actual IDX in shape text field) work for what you are trying to put in place?

What I'm attempting to do is a bit more complex than this, this was my attempt to highlight the issue in a simplified context.
Essentially I am using a service template for a large number of services and attempting to do an extended conditional statement using a Parameter with the serviceDefinitionFilter placeholder. I can explain in more detail if it would be helpful, but the extended conditional shape is already associated with another element so it is not able to use the Parameter shape data field.
Extended conditionals seem to have the same issue as the [param:..] placeholder, which is why I used that to simplify the issue.

Hi Nick, If you like go ahead and email me the details steve.purcell@skyline.be and current visio being used. From what you are explaining, we might be able to use a custom property value set to the desired filter value at time-of-service creation, which could be called. Or possibly another method depending on the final needs.
Thanks for the response.
I did select the individual parameters with a filter for each child element, like you have in your screenshot.
To confirm, are those parameters you've displayed using the [param:element,id,index] placeholder or just the Parameter shape data? This works for me using the latter but not the former.