Opened 8 years ago

Last modified 6 years ago

#123 new Issue

IBIS-Q Issue with Blank Custom User Defined Groups

Reported by: Garth Braithwaite Owned by:
Priority: Unknown Milestone: Needs Analysis
Component: IBIS-Q Version: Unknown
Severity: Unknown Keywords: query builder
Cc:

Description

For a query builder UI page, if you select "enter a custom year group" (probably any custom group) and do NOT enter anything then submit it the backend IBIS-Q has 2 issues:

1) It returns an error 55 - SAS error. NOTE: The SAS System stopped processing this step because of errors.

and

2) The resulting XML is malformed. The ibisph-view error message is:

The element type "RECORDS" must be terminated by the matching end-tag "</RECORDS>". Nested exception: The element type "RECORDS" must be terminated by the matching end-tag "</RECORDS>". Upon looking at it a little closer there's actually 2 xml issues. "<RECORDS>" is missing an end RECORD, and "</DEBUGS>" is missing the start <DEBUG>.

The resulting IBIS-Q XML is:

<?xml version="1.0" encoding="UTF-8"?> <IBISQ_QUERY_RESULT>

<PARAMETERS>

<PARAMETER>

<NAME>pop_where</NAME> <VALUE>1989&lt;=year&lt;=2009</VALUE>

</PARAMETER> <PARAMETER>

<NAME>data_where</NAME> <VALUE>bbthyear&gt;=1989</VALUE>

</PARAMETER> <PARAMETER>

<NAME>percent_cond</NAME> <VALUE>gagegrp1&gt;=0</VALUE>

</PARAMETER> <PARAMETER>

<NAME>spvar1</NAME> <VALUE>none</VALUE>

</PARAMETER> <PARAMETER>

<NAME>form</NAME> <VALUE>22</VALUE>

</PARAMETER> <PARAMETER>

<NAME>output</NAME> <VALUE>xml</VALUE>

</PARAMETER> <PARAMETER>

<NAME>func</NAME> <VALUE>Count_cv.def</VALUE>

</PARAMETER> <PARAMETER>

<NAME>cross1</NAME> <VALUE>YearProxy?</VALUE>

</PARAMETER> <PARAMETER>

<NAME>cross2</NAME> <VALUE>none</VALUE>

</PARAMETER> <PARAMETER>

<NAME>sas</NAME> <VALUE>0</VALUE>

</PARAMETER> <PARAMETER>

<NAME>test</NAME> <VALUE>0</VALUE>

</PARAMETER> <PARAMETER>

<NAME>config</NAME> <VALUE>/srv/ibis-q/modules/birth/Birth_CV.cfg</VALUE>

</PARAMETER> <PARAMETER>

<NAME>YearProxy?</NAME> <VALUE>Year9</VALUE>

</PARAMETER> <PARAMETER>

<NAME>AgeGrpProxy?</NAME> <VALUE>MomAgeGrp?</VALUE>

</PARAMETER> <PARAMETER>

<NAME>EdProxy?</NAME> <VALUE>MomEdu_09</VALUE>

</PARAMETER> <PARAMETER>

<NAME>TriProxy?</NAME> <VALUE>SysTriPNCBegan_09</VALUE>

</PARAMETER> <PARAMETER>

<NAME>KotelProxy?</NAME> <VALUE>SysPNCKotel_09</VALUE>

</PARAMETER> <PARAMETER>

<NAME>MethodProxy?</NAME> <VALUE>SysBirthMethod_09</VALUE>

</PARAMETER> <PARAMETER>

<NAME>BthAttProxy?</NAME> <VALUE>SysTypeBirthAttend_09</VALUE>

</PARAMETER> <PARAMETER>

<NAME>BirthOccurProxy?</NAME> <VALUE>BirthOccurRes?</VALUE>

</PARAMETER> <PARAMETER>

<NAME>BirthOccurRes?</NAME> <VALUE>1</VALUE>

</PARAMETER> <PARAMETER>

<NAME>GeoProxy?</NAME> <VALUE>GeoLHD</VALUE>

</PARAMETER>

</PARAMETERS> <RECORDS> </DEBUGS> <ERROR ID='55'> <CODE>55</CODE> <DESCRIPTION>

SAS error. NOTE: The SAS System stopped processing this step because of errors.

</DESCRIPTION> </ERROR> </IBISQ_QUERY_RESULT> The element type "RECORDS" must be terminated by the matching end-tag "</RECORDS>". Nested exception: The element type "RECORDS" must be terminated by the matching end-tag "</RECORDS>". Upon looking at it a little closer there's actually 2 xml issues. "<RECORDS>" is missing an end RECORD, and "</DEBUGS>" is missing the start <DEBUG>.

Change History (5)

comment:1 Changed 8 years ago by Lois Haggard

Priority: LowUnknown
Severity: Major

comment:2 Changed 7 years ago by Garth Braithwaite

Milestone: Unassigned

comment:3 Changed 7 years ago by Eleanor Howell

Keywords: query builder added

comment:4 Changed 6 years ago by Garth Braithwaite

Severity: Major EffortUnknown
Type: DefectEnhancement

Blank custom groups work except when no grouping is defined and the result is to be grouped by custom group.

So we have some options: 1) Do some javascript validation that checks if custom groups are defined and are being used for group by. + immediate feedback

  • Not a 100% solution as there will be cases the slip through this

type of check.

  • Does not help non IBIS-PH front end type query requests.

2) Have something in the middle layer that catches the issue and returns a meaningful error. + little better control of checking

  • not as clear for the user
  • Does not help non IBIS-PH front end type query requests.

3) Have the CGI catch the issue and return a meaningful error. + control of checking + Does work for non IBIS-PH front end type query requests.

  • not as clear for the user but at least the message could provide

some insight to the problem. 4) Leave as is and let the user figure out that the RECORDS message really means fill in the custom group values if you're going to group by. + no changes/work - especially since this is a seldom used feature

  • No meaningful users feedback - they simply don't know what the issue is.

5) Implement a better ajax type validation mechanism + immediate feedback + can be coded to be 100% correct.

  • development time.
  • Does not help non IBIS-PH front end type query requests.

6) Implement a control type element in the query module that states that this dimension should be the default dimension if grouping and nothing is specified. + Should be an easy enhancement on the java code side + doesn't impact the CGI code,

  • Does not help non IBIS-PH front end type query requests.
  • all query module dimension files would need to be updated.

We believe that this is a rarely used feature and not an huge issue. However, Lois and Garth would like the default behavior to be no filtering. If not much effort it would be nice to at least have a better error message from IBIS-Q.

comment:5 Changed 6 years ago by Garth Braithwaite

Milestone: UnassignedNeeds Analysis
Owner: zw deleted
Type: EnhancementIssue
Version: 1.0Unknown

See tickets #230 and #231.

Note: See TracTickets for help on using tickets.