Hi all,
In a protocol, a user found a table with an ArrayOptions tag different than 0:
When creating a service using parameters from that table using the primary key as index, the parameters never show at the service:
Is it possible that a wrong definition in the table triggers this miss behavior?
Also, this DMA version is 10.1 CU4, the user still has 9.0 where it is working.
Thanks.
Hi Edson,
Looking at the latest development guide I found this:
Primary keys
A table must always contain a column that has a unique value for every row in the table and which is used to refer to a row unambiguously. This is typically referred to as the primary key. The index attribute of the ArrayOptions tag defines the column index of the column that holds the primary keys.
Please keep the following guidelines in mind for primary keys:
- The first column of a table should hold the primary keys (index = 0).
- The column that holds the primary keys must be of type "string".
- The primary key does not have to be user-friendly and should be as small as possible.
- A primary key must not have leading or trailing whitespace.
- Semicolons (“;”), question marks (“?”) and asterisks (“*”) must be avoided in primary keys as these characters have a special meaning in the dynamic table filter syntax and could therefore cause table filter queries to be interpreted incorrectly. (Refer to the "Dynamic Table Filter Syntax" section in the DataMiner help for more information on the filter syntax.)
I think in the most recent versions of dataminer that behavior is now expected as default.
Hi Edson,
As far as I know, it is surely possible to use an ArrayOptions tag with an index different from 0. The index attribute defines which column contains the primary key. The column containing the primary keys must be of type 'String'.
More info can be found on DataMiner Development Library
I would expect the service to work if you specifically choose for the primary key instead of the display key in the service. A possibility would be to check the service.xml file also, to see if you find the IncludedParameter with an index including the ^pk^, as that indicates the reference to the primary key.
Hi Leander,
In both cases the service.xml file looks good:
****Working****
Arrayoptions in table = 0
IncludedParameter id=”404″ index=”^pk^Interface_3″ included=”1″
****Not working****
Arrayoptions in table = 3
IncludedParameter id=”404″ index=”^pk^Interface_5″ included=”1″
Hi Arturo,
Definitely, the ArrayOptions different to 0 is breaking the service, the best option will be to follow the development guidelines to avoid any issue.