Forums: Define.xml
Hi Leonid,
Is it possible that you have an ItemDef element with OID "SUPPAE.QNAM"? If so, I guess that may cause the issue as OID should be unique within MetaDataVersion element.
Although there is no required naming convention for OIDs, the approach used in Define-XML 2.0 specification is a good one and can help to avoid issues. If it was used, the ItemDef OID for QVAL would be "IT.SUPPAE.QVAL" and ValueListDef OID for it would be "VL.SUPPAE.QVAL".
Hi Leonid,
Your sample code is not enough for diagnostics.
While defining Value Level Metadata you need to have 4 diffrent sections.
Here is an example:
(1)
<def:ValueListDef OID="VL.SUPPAE.QVAL">
<ItemRef ItemOID="IT.SUPPAE.QVAL.SUPPAE.QNAM.AETRTEM" OrderNumber="1" Mandatory="No" MethodOID="MT.AETRTEM">
<def:WhereClauseRef WhereClauseOID="WC.SUPPAE.QNAM.AETRTEM"/>
</ItemRef>
....
</def:ValueListDef>
.....
(2)
<def:WhereClauseDef OID="WC.SUPPAE.QNAM.AETRTEM">
<RangeCheck SoftHard="Soft" def:ItemOID="IT.SUPPAE.QNAM" Comparator="EQ">
<CheckValue>AETRTEM</CheckValue>
</RangeCheck>
</def:WhereClauseDef>
.....
(3)
<ItemDef OID="IT.SUPPAE.QVAL" Name="QVAL" DataType="text" Length="60" SASFieldName="QVAL">
<Description>
<TranslatedText xml:lang="en">Data Value</TranslatedText>
</Description>
<def:ValueListRef ValueListOID="VL.SUPPAE.QVAL"/>
</ItemDef>
.....
(4)
<ItemDef OID="IT.SUPPAE.QVAL.SUPPAE.QNAM.AETRTEM" Name="SUPPAE.QNAM.AETRTEM" DataType="text" Length="1" SASFieldName="QVAL">
<CodeListRef CodeListOID="CL.NY"/>
<def:Origin Type="Derived"/>
</ItemDef>
....
Regards,
Sergiy
High risk of Truncated value SD1096
Even when the variable is precisely 200 in length, this error persists. Could Pinnacle read supplementary variables in case truncation doesn't occur?
Presumably "false positive" ...
I think that the algorithm (falsely) assumes that when the 200th byte is a non-blank, there should come more ...
And "High risk" is a stupid message ... How can such an algorithm even try to quantify a risk ...
Time to get rid of 40-year old SAS-XPT anyway ...
Dear all,
I am validating define.xml 2.0 and getting this issue, "Missing Value Level metadata for QVAL in Dataset <dataset>" for all my SUPPQUAL datasets, and I cannot figure out why. Here's the definition of SUPPAE.QVAL:
<ItemDef OID="SUPPAE.QVAL" Name="QVAL" DataType="text" Length="7" SASFieldName="QVAL">
<Description>
<TranslatedText>Data Value</TranslatedText>
</Description>
<def:ValueListRef ValueListOID="SUPPAE.QNAM"/>
</ItemDef>
It does reference the value list with ID "SUPPAE.QNAM". This value list is defined too:
<def:ValueListDef OID="SUPPAE.QNAM">
<ItemRef ItemOID="SUPPAE.QNAM.AEENRF" OrderNumber="1" Mandatory="No" Role="Timing">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEENRF"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT1" OrderNumber="2" Mandatory="No" Role="Record Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT1"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT3" OrderNumber="3" Mandatory="No" Role="Record Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT3"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT4" OrderNumber="4" Mandatory="No" Role="Record Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT4"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT5" OrderNumber="5" Mandatory="No" Role="Record Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT5"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT6" OrderNumber="6" Mandatory="No" Role="Record Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT6"/>
</ItemRef>
</def:ValueListDef>
What could be the problem?
Thanks a lot!
Leonid