Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

datasourcedataconnection

Properties

Name

Type

Required

Description

datasource

ref urn:com.cohga.server.datasource.jdbc#1.0:datasource

yes

reference to the data source that this data definition should use to generate its data

table

string

yes

The name of the table that provides the data

key

string

no

If this data definition is generating data relating to an entity then this is the column name that contains the entities id

prefix

string

no

The prefix value will be inserted into the generated SQL statement immediately after the SELECT, for example DISTINCT

trim

boolean

no

If true the generated SQL will ensure that the id's are compared against a trimmed version of the id stored in the database.
This helps with systems like Pathway, where some tables store padded id's

keytablestringnoAn optional database table that will be used to store entity keys temporarily when performing the required SQL to generate the data for this data connection. If this option isn't set then the SQL used to generate the data will create the data in batches, which can cause issues with sorting, optionally you can create a simple two column table, with an index on the userid column, and set this value to the name of this table, then Weave will insert the entity id's into this table temporarily and use this table in a SQL join when generating the data. This will resolve any sorting issues, and is more important if caching is also disabled for the data connection.
keycolumnstringnoThe column in keytable that contains the entity id, default is key
usercolumnstringnoThe column in keytable that contains the userid, default is userid

Sub-tags

Name

Type

Cardinality

parameter

urn:com.cohga.server.data.database#1.0:parameter

0..n

cache

urn:com.cohga.server.cache#1.0:cache

0..1

fromurn:com.cohga.server.data.database#1.0:from0..n
whereurn:com.cohga.server.data.database#1.0:where0..n
sorturn:com.cohga.server.data.database#1.0:sort0..n
joinurn:com.cohga.server.data.database#1.0:join0..n

Content

None

Notes

  • The cache settings are only used for data source data connections that have a key specified, since it's the key that's used as the cache index
  • If no cache tag is specified then the data will still be cached, but it will use the default cache configuration, to disable caching you need to set disable to true inside the cache definition (see example below).
  • You can completely disable the caching (for all data definitions that don't have cache setting explicitly set) by setting the startup parameter weave.cache.default to true (in startup.cmd, startup.sh and/or weave-service.conf).
  • If no parameters are specified then the server will generate parameters based on the columns in the underlying table, in this case you should also not include any from tags since joins are not currently supported, where tags are ok though.

Anchor
parameter
parameter

parameter

Properties

Name

Type

Required

Description

column

string

yes

The name of the column within the table that this parameter references (can be an sql function also)

type

'string', 'numeric', 'date' or 'url'

no (default 'string')

An indicator of how the data should be displayed on the client

name

string

no (default lowercase value of column)

A unique identifier for the parameter

label

string

no (default 'pretty' value of column)

A user displayable label for the column

text

string

no

Only when type is 'url'. Specifies text to be displayed to the user instead of the actual url contents

textcolumn

string

no

Only when type is 'url'. Specifies the column that contains text to be displayed to the user instead of the actual url contents

Sub-tags

Content

None

Notes

  • If no label is specified then it will be generated by formatting the name, unless no name is supplied, then it will be generated by formatting the column
  • Formatting involves converting any _'s to spaces, converting the first letter and any letter after a space to upper case and converting every other letter to lower case, e.g. "BOMB_DISPOSAL_METHOD" becomes "Bomb Disposal Method"
  • Only one of text or textcolumn should be specified when type is 'url'

Anchor
from
from

from

Properties

Name

Type

Required

Description

table

string

yes

An additional table to include in the generated SQL

Sub-tags

None

Content

None

Anchor
where
where

where

Properties

Name

Type

Required

Description

clause

string

yes

An additional clause to include in the generated SQL

uppercase

boolean

no

If the clause uses parameter substitution should the value be converted to upper-case before being substituted

Sub-tags

None

Content

None

sort

Properties

Name

Type

Required

Description

parameter

string

yes

Name of parameter to sort on

direction

string

no

ASC or DESC, ASC is default

Sub-tags

None

Content

None

join

Only available in 2.5.11 or later

properties

NameTypeRequiredDescription
tablestringyesThe table to join to
onstringyesThe clause used to join the table
typestringnoThe type of join to use

 

 

Examples

Code Block
xml
xml
titleBasic data definition where output is based on columns in the underlying table
linenumberstrue
<data:datadefinition id="roadDetails">
	<datasourcedataconnection datasource="datasource.main" table="ROADS" key="RD_NAME" prefix="DISTINCT"/>
</data:datadefinition>

...

Code Block
xml
xml
linenumberstrue
<data:cache id="test">
	<setting>value</setting>
	<setting>value</setting>
	<setting>value</setting>
</data:cache>

<data:datadefinition id="...">
	<datasourcedataconnection ...>
		...
		<cache id="test"/>
	</datasourcedataconnection>
</data:datadefinition>
Info

Note that prior to Weave 2.5.18 the default cache setting for a datasource data connection was to cache the information forever, as of 2.5.18 the data will only be cached for 5 minutes by default.

Using a temporary table

Code Block
languagexml
titleUsing a temporary table
<data:datadefinition id="roadDetails">
	<datasourcedataconnection datasource="datasource.main" table="ROADS" key="RD_NAME" prefix="DISTINCT" keytable="ROADS_SELECTION" keycolumn="RD_NAME" usercolumn="UID">
		<from table="PLANS"/>
		<where clause="PLANS.ID=ROADS.PLAN_ID"/>
		<parameter name="name" label="Name" column="RD_NAME"/>
		<parameter name="suffix" label="Suffix" column="RD_SUFFIX"/>
		<parameter name="type" label="Type" column="RD_TYPE"/>
		<parameter name="altname" label="Alt. Name" column="ALT_NAME"/>
		<parameter name="altsuffix" label="Alt. Suffix" column="ALT_SUFFIX"/>
		<parameter name="alttype" label="Alt. Type" column="ALT_TYPE"/>
		<parameter type="integer" name="class" label="Class" column="CLASS_CODE"/>
		<parameter type="url" name="plan" label="Plan" column="'http://imgsvr:8080/gis/documents/plan_'||PLANS.PLAN_CODE||'.pdf'" text="Open"/>
		<cache disable="true"/>
	</datasourcedataconnection>
</data:datadefinition>

...