I just ran a test file through with the following values and it threw this error: *FL = N and *FN != 0. When I change it to FN to 0 or does not throw the error. Even if there are spaces before and after the 0. Can you try running the one record file below and tell me your results ? (remove any carriage returns in the record) The results should be only 1 error for the FASFL/N combo.
The rule in your config file should appear like this
<val:Condition
ID ="AD0011"
Category ="Consistency"
Type ="Error"
When ="%Variables[*FL]% == 'N'"
Test ="%Variable.1%FN == '0'"
Message ="*FL = N and *FN != 0"
Description="When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0"
/>
STUDYID,USUBJID,SUBJID,SITEID,SITEGR1,SITEGR1N,AGE,AGEU,SEX,RACE,RACEGR1,RACEGR1N,FASFL,FASFN,SAFFL,SAFFN,ITTFL,ITTFN,PPROTFL,PPROTFN,COMPLFL,COMPLFN,RANDFL,RANDFN,ENRLFL,ENRLFN,ARM,TRT01P,TRT01PN,TRT01A,TRT01AN,TRTSEQP,TRTSEQPN,TRTSEQA,TRTSEQAN,TR01PG1,TR01PG1N,TR01AG1,TR01AG1N,RANDDT,TRTSDT,TRTSTM,TRTSDTM,TRTSDTF,TRTSTMF,TRTEDT,TRTETM,TRTEDTM,TRTEDTF,TRTETMF,TR01SDT,TR01STM,TR01SDTM,TR01SDTF,TR01STMF,TR01EDT,TR01ETM,TR01EDTM,TR01EDTF,TR01ETMF,AP01SDT,AP01STM,AP01SDTM,AP01SDTF,AP01STMF,AP01EDT,AP01ETM,AP01EDTM,AP01EDTF,AP01ETMF
0822-018,10001,1,1234,,,33,Y,M,WHITE,,,N,1,Y,1,N,0,Y,1,Y,1,Y,1,Y,1,Arm GRP 1,Drug X 5 mg,1,Drug X 5 mg,1,Arm GRP 1,1,Arm GRP 1,1,Mike,29,Mike,29,20090101,20090101,,,,,20090731,,,,,20090101,,,,,20090731,,,,,,,,,,,,,,
So you still have an issue? Can you send me your test file ? Also, are you setting the FL=N and FN=0 ?
I'm not sure why it's not checking SCREENFL/FN and OLFL/FN. The best thing to do is to send me your test .xpt file. We'll need to investigate more thoroughly in our own environment.
mike.digian@pinnacle21.net
Actually, the answer to why SCREENFL/FN OLFL/FN didn't get validated because those variables don't explicity exist in ADaM. For the check to work generically for any user defined FL variable, here is how to fix that. Note this fix will be part of a future official release of the rules.
http://www.opencdisc.org/projects/validator/rules/ad0048#comment-334
add this to ItemDef section <ItemDef OID="*FL" Name="*FL" DataType="text" Length="1" def:Label="Other User Defined Population Flag"/>
add this to ADSL ItemRef:<ItemRef ItemOID="*FL" OrderNumber="71" Mandatory="No" Role="Population Ind" val:Core="Permissible"/>
Hi Karen,
Thanks for contributing to OpenCDISC to identify this issue. Your reward is a temporary solution :). Our resident SME Tim just notified me within the hour of the fix:
This was a bug specifically related to the value 0 in the SasTransportDataSource parser, which I've just fixed for the 1.3 release. A temporary fix is to add the following to the lib/properties/settings.properties file:
Engine.SasRoundingMode = Old
- Tim