···
–
Morten
On Thu, Jun 12, 2014 at 1:06 PM, Morten Olav Hansen mortenoh@gmail.com wrote:
Yes, I’m looking into this now, seems like we are using a Set for programStageDataElements some places, and a List other places…
Btw, you are not allowed to have numbers in the start of an ID.
–
Morten
On Thu, Jun 12, 2014 at 12:59 PM, Mansi Singhal msinghal@thoughtworks.com wrote:
Hello Morten,
Program creation is fine.
But ProgramStage and ProgramStageSection creation is failing. See details below.
“Program Stage”:
Input:
{
“programStages”: [{
“programStageDataElements”: [{
“displayInReports”: true,
“dataElement”: {
“id”: “034dcb18fe3”,
“name”: “Age”
},
“allowProvidedElsewhere”: false,
“compulsory”: false,
“allowDateInFuture”: false
}],
“description”: “Desc”,
“program”: {
“id”: “625b2495e79”,
“name”: “Prog1”
},
“id”: “b17f8e7729b”,
“name”: “Stage1”
}]
}
Error:
Problem accessing /api/metadata. Reason:
java.util.HashSet cannot be cast to java.util.List
Caused by:
java.lang.ClassCastException: java.util.HashSet cannot be cast to java.util.List at org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter$NonIdentifiableObjects.extractProgramStageDataElements(DefaultIdentifiableObjectImporter.java:460) at org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter$NonIdentifiableObjects.extract(DefaultIdentifiableObjectImporter.java:174) at org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.newObject(DefaultIdentifiableObjectImporter.java:570) at org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.startImport(DefaultIdentifiableObjectImporter.java:830) at org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.importObjectLocal(DefaultIdentifiableObjectImporter.java:785) at org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.importObjects(DefaultIdentifiableObjectImporter.java:743) at org.hisp.dhis.dxf2.metadata.DefaultImportService.doImport(DefaultImportService.java:261) at org.hisp.dhis.dxf2.metadata.DefaultImportService.importMetaData(DefaultImportService.java:178) at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606)
“Program Stage Section”:
Program stage for this JSON was created using DHIS UI.
Input:
{
“programStageSections”: [{
“programStageDataElements”: [{
“displayInReports”: false,
“dataElement”: {
“id”: “034dcb18fe3”,
“name”: “Age”
},
“allowProvidedElsewhere”: false,
“compulsory”: false,
“allowDateInFuture”: false
}],
“name”: “name”,
“sortOrder”: 1,
“programStage”: {
“id”: “UGl8auROT9M”,
“name”: “Single-Event Stage1”
}
}]
}
Error:
Caused by: org.h2.jdbc.JdbcSQLException: NULL not allowed for column "PROGRAMSTAGEID"; SQL statement: insert into programstage_dataelements (compulsory, allowprovidedelsewhere, sort_order, displayInReports, allowDateInFuture, programstageid, dataelementid) values (?, ?, ?, ?, ?, ?, ?) [23502-173]
On Thu, Jun 12, 2014 at 3:28 PM, Morten Olav Hansen mortenoh@gmail.com wrote:
Hi
There was a few missing pieces to the programStageSection and programDataElements classes. Please try again, but remember that the format has changed, so I would create a new section in dhis and export it… to look at the format.
Also remember that programStage is the “owning” side of that relationship, so to attach it, you would also send a programStage update in the same metadata body.
Regards,
Mansi Singhal
+91 9900246052
–
–
Morten
On Thu, Jun 12, 2014 at 11:34 AM, Morten Olav Hansen mortenoh@gmail.com wrote:
That sounds weird. Abyor or Tran, could you have a look at it?
–
Morten
On Thu, Jun 12, 2014 at 11:26 AM, Mansi Singhal msinghal@thoughtworks.com wrote:
Hey Morten,
Thanks for that.
I just wanted a clarification on one more thing:
We created a Program say “Program1” and then “Program Stage” under it.
This stage has approximately 20 “ProgramStageDataElements”.
On “Event Capture screen”, after selecting relevant fields (“Program1” as program and “orgUnit” as organization Unit), on clicking “Register Event”, I am able to see only few “ProgramStageDataElements” (around 10) and not all of them.
Is it the expected behavior or its a bug?
On Thu, Jun 12, 2014 at 2:28 PM, Morten Olav Hansen mortenoh@gmail.com wrote:
Hi,
The tracker metadata web-api should still be considered wip (it’s new for 2.16). I haven’t tested with programStageSections at all.
I will have a look at it.
Regards,
Mansi Singhal
–
–
Morten
On Thu, Jun 12, 2014 at 10:49 AM, Mansi Singhal msinghal@thoughtworks.com wrote:
Hello All,
We were trying to create “Program”, “Program Stage” and “Program Stage Section” using “/metadata” api.
We are facing issues creating “Program Stage Section”.
Status : 409 Conflict
When we tried debugging the issue, we got some ClassCastExceptions for “List to Set” and “Set to List” in “extractProgramStageDataElements” and “saveProgramStageDataElements” methods in “DefaultIdentifiableObjectImporter” class under “dhis-services-dxf2”.
We tried fixing it, and we got some more exceptions (Constraint Violation Exception)
Input to the api “/metadata”:
{
“programStageSections”: [
{
“name”: “SomeName”,
“programStageDataElements”: [
{
“allowDateInFuture”: false,
“allowProvidedElsewhere”: false,
“compulsory”: false,
“dataElement”: {
“id”: “DataElementId”,
“name”: “DataElementName”
},
“displayInReports”: false
}
],
“sortOrder”: 1
}
]
}
Can you please have a look onto this and fix it if needed.
–
Thanks,
Mansi Singhal