# Groovy: List and Map

**URL:** <https://community.ofelia.com/t/groovy-list-and-map/4030>\
**Category:** Q&A\
**Created:** [17 December 2013 18:46 UTC](https://community.ofelia.com/t/groovy-list-and-map/4030 "2013-12-17T18:46:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rafael.vianna](https://avatars.discourse-cdn.com/v4/letter/r/8e7dd6/32.png) [@rafael.vianna](https://community.ofelia.com/u/rafael.vianna)\
**Post date:** [17 December 2013 18:46 UTC](https://community.ofelia.com/t/groovy-list-and-map/4030/1 "2013-12-17T18:46:54Z")

</div>

Hi everyone,

I'm trying to do something that seems really simple, but I just can't see what I'm missing. :(

I have the following groovy script to get some data from a database (oracle) and set it into a field table on my form.

> import groovy.sql.Sql
> 
> def mapData=[:];
> 
> Sql sql = BonitaSql.newInstance("jdbc:oracle:thin:@192.168.0.18:1521:instance", "DATABASE", "password",new oracle.jdbc.OracleDriver())
> 
> def query = "select F1, F2 from VSITUACAODEMANDA WHERE F1 = 3";
> 
> sql.eachRow(query,{row-\> mapData.put(row.F1, row.F2)});
> 
> sql.close()
> 
> mapData

It works just fine on the groovy validator.

However, when I go to my form the data is empty. No values at all.

I've found this old topic about that: http://community.ofelia.com/groups/usage-operation-5x/resolved-listbox-data-database-table

But I just can't understand how to change my map into a list or even if it's needed in my BOS version (6.1.1).

Thanks in advance for any tip and best regards.

---

<div class="post-metadata">

**Author:** ![rafael.vianna](https://avatars.discourse-cdn.com/v4/letter/r/8e7dd6/32.png) [@rafael.vianna](https://community.ofelia.com/u/rafael.vianna)\
**Post date:** [18 December 2013 11:11 UTC](https://community.ofelia.com/t/groovy-list-and-map/4030/2 "2013-12-18T11:11:59Z")

</div>

Hi everyone,

So I just made something more simple to deal with. It was just supposed to list one columm at my screen.

But I'm getting this error:

Dez 18, 2013 9:07:16 AM org.bonitasoft.forms.server.FormsServlet getFormFirstPage  
Grave: Error while getting the first page for application Solicitação--1.6.5--Lista de pendências$entry  
java.lang.IllegalArgumentException  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.forms.server.api.impl.util.FormFieldValuesUtil.getAvailableValues(FormFieldValuesUtil.java:294)  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.forms.server.api.impl.util.FormFieldValuesUtil.getTableAvailableValues(FormFieldValuesUtil.java:314)  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.forms.server.api.impl.util.FormFieldValuesUtil.setFormWidgetAvailableValues(FormFieldValuesUtil.java:657)  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.forms.server.api.impl.util.FormFieldValuesUtil.setFormWidgetValues(FormFieldValuesUtil.java:612)  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.forms.server.api.impl.util.FormFieldValuesUtil.setFormWidgetsValues(FormFieldValuesUtil.java:883)  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.forms.server.FormsServlet.getFormFirstPage(FormsServlet.java:218)  
&nbsp;&nbsp; &nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
&nbsp;&nbsp; &nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
&nbsp;&nbsp; &nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
&nbsp;&nbsp; &nbsp;at java.lang.reflect.Method.invoke(Unknown Source)  
&nbsp;&nbsp; &nbsp;at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)  
&nbsp;&nbsp; &nbsp;at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.forms.server.FormsServlet.processCall(FormsServlet.java:130)  
&nbsp;&nbsp; &nbsp;at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)  
&nbsp;&nbsp; &nbsp;at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)  
&nbsp;&nbsp; &nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)  
&nbsp;&nbsp; &nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)  
&nbsp;&nbsp; &nbsp;at org.bonitasoft.console.security.SessionFixationValve.invoke(SessionFixationValve.java:77)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  
&nbsp;&nbsp; &nbsp;at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)  
&nbsp;&nbsp; &nbsp;at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)  
&nbsp;&nbsp; &nbsp;at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)  
&nbsp;&nbsp; &nbsp;at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)  
&nbsp;&nbsp; &nbsp;at java.lang.Thread.run(Unknown Source)

And I'm using this script

> import groovy.sql.Sql
> 
> List list1 =[]
> 
> Sql sql = BonitaSql.newInstance("jdbc:oracle:thin:@192.168.0.18:1521:orcl1", "owner", "password",new oracle.jdbc.OracleDriver())
> 
> sql.eachRow "SELECT CODIGO\_DEMANDA FROM DEMANDA WHERE CODIGO\_DEMANDA \> 30", {list1 += it.CODIGO\_DEMANDA.toString()}
> 
> sql.close()
> 
> list1

&nbsp;

So, any clue?

---

<div class="post-metadata">

**Author:** ![rafael.vianna](https://avatars.discourse-cdn.com/v4/letter/r/8e7dd6/32.png) [@rafael.vianna](https://community.ofelia.com/u/rafael.vianna)\
**Post date:** [18 December 2013 12:02 UTC](https://community.ofelia.com/t/groovy-list-and-map/4030/3 "2013-12-18T12:02:12Z")

</div>

Easy pie.

I was making it harder then it should be.

Create a connector (oracle for me) with your select. In the sweet new pane of Bonita, just select N row x N columms. Set the result into a text variable with the attribute 'multiple' set. Use your variable in your table field. Works just FINE.

My only 'issue' now is how to set the first row as the name of the collums. I tried with the properties of the field table but it keep getting error on load, not sure why yet. But I'll tell when I figure it out. =D

Hope it can helps anyone&nbsp; who needs such a thing. =D
