Odd Kettle Behaviour.
I've been tinkering with the Kettle ETL loader for the last few weeks, and I think I am noticing some odd behaviour , replication is difficult but I think its consistent
I created a transform to load patients...including a row to transfor the Date of Birth,
For some reason this transform would fail the etl process with the error
Failed to Validate Patient Age:value does not exist. ( I think) for each line
Frustrated..I x checked my DOB format. to ensure it was a date formate dd/MM/yyyy
Anyhow after I still repeatedly got the same error despite my changes I elected to split things up and removed most of the transformed data leaving only Name, Species, and Breed.
running the transform same error.....but I wasnt even loading any dates.
So I thinking thats just dumb, "age" has a min cardinality of 0 so who cares if there is no value.
Anyway I decided to try 1 more thing...I closed kettle and reopened it and ran the stripped back transform...
it ran with no errors
This could easily be a kettle not a loader error, but I thought Id bring it up here
Interestingly I subsequently ran an additional loader to load the data i removed using a ref ID and the DOB went in fine in the format I had setup at the start....
Anyhow...
Re: Odd Kettle Behaviour.
Can you post the error? It should appear in an etl.log file in your kettle install.
-Tim
Re: Odd Kettle Behaviour.
I dont have that log file in my kettle install ....I did find the kettle temp logs in the temp directory and extracted the following
2012/03/08 09:44:07 - Final Select.0 - Wrote row to next step: [Jess], [Feline], [DSH], [02/03/2012], [Y], [2626], [Tortoise Shell], [Female], [true], [01/01/2005]
(thats the row info being parsed to the OPVPMS loader (actually its the last row of 1127)
but all the rows fail with the same error
clarifying the last value is the Dateofbirth
So the problem is if I changed things about in either database Kettle was not updating the info...not that it should have mattered it wasnt like I was making database changes to fix a transform...
I did at one point remove the derived value from the patient archetype to remove the validation...but i didnt reload kettle so it wouldnt have updated the archetypes
I have the above option checked. or did have.
Re: Odd Kettle Behaviour.
The "Failed to validate Age of Patient(Pet): Failed to get value" indicates that it cannot evaluate the "party:getPatientAge()" expression for the age node:
The party:getPatientAge() function was introduced in 1.5 - if you have an older version of the OpenVPMS kettle plugin installed, it won't be able to evaluate the expression.
-Tim
Re: Odd Kettle Behaviour.
I'll check my version tomorrow, but that doesnt explain why it failed on a transformation before a kettle reload but worked on the same transform (with the same version of kettle plugin).
Anyhow ...the data loaded in the end ..
Thanks Tim :)
Re: Odd Kettle Behaviour.
Each release of OpenVPMS includes the version numbers in the jar names.
If you've followed the instructions in https://openvpms.atlassian.net/browse/ETL-11 to update Kettle 3.2 to work with OpenVPMS, then you might have multiple releases of OpenVPMS jars in the libext/spring directory. These all get loaded by Kettle - it might use an old release or a new release, or a mixture of both - it cannot be determined which.
Make sure you remove old jars before installating a new version.
-Tim
Re: Odd Kettle Behaviour.
I was dead sure that it was a fresh 3.2 install when I setup this test unit. I checked the plugin directory and it was as per the 1.5 zip as was libext.
I am data dumping everything I have transformed later today and restarting anyway so I can reproduce the error then I will let you know. Otherwise close this out.