Child pages
  • JSRelation

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hiddendiv:style=display:none}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACTAUTO CHANGESUPDATE FROM THE PAGECONTENT ANDTHROUGH MERGETHE THEM BACK INTO SERVOY SOURCE{hiddenDOC GENERATOR{div}
{sub-sectiondiv:id=description|text=}For more information see [Relations]{sub-section{div}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants Summary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#FULL_JOIN]
Constant for the joinType of a Query Builder join.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#INNER_JOIN]
Constant for the joinType of a JSRelation.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#LEFT_OUTER_JOIN]
Constant for the joinType of a JSRelation.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#RIGHT_OUTER_JOIN]
Constant for the joinType of a Query Builder join.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property Summary{th}{tr}{tbody}{tr}{td}[Boolean]{td}{td}[#allowCreationRelatedRecords]
Flag that tells if related records can be created through this relation.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#allowParentDeleteWhenHavingRelatedRecords]
Flag that tells if the parent record can be deleted while it has related records.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#deleteRelatedRecords]
Flag that tells if related records should be deleted or not when a parent record is deleted.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#foreignDataSource]
Qualified name of the foreign data source.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#initialSort]
A String which specified a set of sort options for the initial sorting of data
retrieved through this relation.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#joinType]
The join type that is performed between the primary table and the foreign table.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#name]
The name of the relation.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#primaryDataSource]
Qualified name of the primary data source.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[JSRelationItem]\[]{td}{td}[#getRelationItems]\()
Returns an array of JSRelationItem objects representing the relation criteria defined for this relation.{td}{tr}{tbody}{tbody}{tr}{td}[UUID]{td}{td}[#getUUID]\()
Returns the UUID of the relation object{td}{tr}{tbody}{tbody}{tr}{td}[JSRelationItem]{td}{td}[#newRelationItem]\(dataprovider, operator, foreinColumnName)
Creates a new relation item for this relation.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#removeRelationItem]\(primaryDataProviderID, operator, foreignColumnName)
Removes the desired relation item from the specified relation.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Constants Details{th}{tr}{tbody:id=FULL_JOIN|class=node}{tr:id=name}{td}h6.FULL_JOIN{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:FULL_JOIN_des|trigger=button|text=}{sub-section}{sub-section:FULL_JOIN_des|trigger=none|class=sIndent}Replace with description{sub-section*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:FULL_JOIN_snc|trigger=button|text=}{sub-section}{sub-section:FULL_JOIN_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:FULL_JOIN_prs|trigger=button|text=}{sub-section}{sub-section:FULL_JOIN_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-showdiv:class=sIndent}{code:language=javascript}
/** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.RIGHT_OUTER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INNER_JOIN}{tr:id=name}{td}h6.INNER_JOIN{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:FULL_JOIN_ret|trigger=button|text=}{sub-section}{sub-section:FULL_JOIN_ret|trigger=none|div:class=sIndent}[Number]{sub-sectiondiv}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:FULL_JOIN_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:FULL_JOIN_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:FULL_JOIN_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:FULL_JOIN_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:FULL_JOIN_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:FULL_JOIN_sam|trigger=none}{code:language=javascript}
/** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.RIGHT_OUTERINNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INNERLEFT_OUTER_JOIN|class=node}{tr:id=name}{td}h6.INNERLEFT_OUTER_JOIN{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:INNER_JOIN_des|trigger=button|text=}{sub-section}{sub-section:INNER_JOIN_des|trigger=none|*Returns*\\{div:class=sIndent}Replace with description{sub-section[Number]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{tr:id=sam}{td}*SinceSample*\\{sub-section:INNER_JOIN_snc|trigger=button|text=}{sub-section}{sub-section:INNER_JOIN_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:INNER_JOIN_prs|trigger=button|text=}{sub-section}{sub-section:INNER_JOIN_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:INNER_JOIN_ret|trigger=button|text=}{sub-section}{sub-section:INNER_JOIN_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INNER_JOIN_see|trigger=button|text=}{sub-section}div:class=sIndent}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.INNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=RIGHT_OUTER_JOIN}{tr:id=name}{td}h6.RIGHT_OUTER_JOIN{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section:INNER_JOIN_see|trigger=none}{sub-section}{[Number]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:INNER_JOIN_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:INNER_JOIN_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:INNER_JOIN_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:INNER_JOIN_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', div:class=sIndent}{code:language=javascript}
/** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/parent_table', 'db:/example_data/child_tableorder_details', JSRelation.INNERRIGHT_OUTER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.INNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{sub-section}{div}{, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=allowCreationRelatedRecords}{tr:id=name}{td}h6.allowCreationRelatedRecords{td}{tr}{tr:classid=lastDetailRowret}{td}{td}{tr}{tbody}{tbody:id=LEFT_OUTER_JOIN|class=node*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=namesam}{td}h6.LEFT_OUTER_JOIN*Sample*\\{div:class=sIndent}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.allowCreationRelatedRecords = true;
{code}{div}{td}{tr}{builder-showtr:permissionclass=editlastDetailRow}{tr:id=destd}{td}{sub-section:LEFT_OUTER_JOIN_des|trigger=button|text=}{sub-section}{sub-section:LEFT_OUTER_JOIN_des|trigger=none|class=sIndent}Replace with description{sub-section}tr}{tbody}{tbody:id=allowParentDeleteWhenHavingRelatedRecords}{tr:id=name}{td}h6.allowParentDeleteWhenHavingRelatedRecords{td}{tr}{builder-show}{builder-show:permission=edittr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:LEFT_OUTER_JOIN_snc|trigger=button|text=}{sub-section}{sub-section:LEFT_OUTER_JOIN_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.allowParentDeleteWhenHavingRelatedRecords = false;
{code}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prstr:class=lastDetailRow}{td}{td}*Parameters*\\{sub-section:LEFT_OUTER_JOIN_prs|trigger=button|text=}{sub-section}{sub-section:LEFT_OUTER_JOIN_prs|trigger=none|class=sIndent}{sub-section}{tr}{tbody}{tbody:id=deleteRelatedRecords}{tr:id=name}{td}h6.deleteRelatedRecords{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:LEFT_OUTER_JOIN_ret|trigger=button|text=}{sub-section}{sub-section:LEFT_OUTER_JOIN_ret|trigger=none|classdiv:class=sIndent}[NumberBoolean]{sub-sectiondiv}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:LEFT_OUTER_JOIN_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:LEFT_OUTER_JOIN_see|trigger=none}{sub-sectioncode:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.deleteRelatedRecords = true;
{code}{div}{td}{tr}{tr}{builder-show}{builder-show:permission=edit:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=foreignDataSource}{tr:id=linkname}{td}*External links*\\{sub-section:LEFT_OUTER_JOIN_link|trigger=button|text=}{sub-section}h6.foreignDataSource{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section:LEFT_OUTER_JOIN_link|trigger=none}{sub-section}{[String]{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:LEFT_OUTER_JOIN_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:LEFT_OUTER_JOIN_sam|trigger=none}{code:code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinTypeprimaryDataSource = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/user_data/another_parent_table';
relation.foreignDataSource = 'db:/exampleuser_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.INNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{sub-section}{div}{td}{another_child_table';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=RIGHT_OUTER_JOIN|class=nodeinitialSort}{tr:id=name}{td}h6.RIGHT_OUTER_JOINinitialSort{td}{tr}{builder-show:permission=edit}{tr:tr:id=desret}{td}{sub-section:RIGHT_OUTER_JOIN_des|trigger=button|text=}{sub-section}{sub-section:RIGHT_OUTER_JOIN_des|trigger=none|class=sIndent}Replace with description{sub-section*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:RIGHT_OUTER_JOIN_snc|trigger=button|text=}{sub-section}{sub-section:RIGHT_OUTER_JOIN_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:RIGHT_OUTER_JOIN_prs|trigger=button|text=}{sub-section}{sub-section:RIGHT_OUTER_JOIN_prs|trigger=none|class=sIndent}{sub-section}div:class=sIndent}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.initialSort = 'another_child_table_text asc';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=joinType}{tr:id=name}{td}h6.joinType{td}{tr}{builder-show}{tr:tr:id=ret}{td}*Returns*\\{sub-section:RIGHT_OUTER_JOIN_ret|trigger=button|text=}{sub-section}{sub-section:RIGHT_OUTER_JOIN_ret|trigger=none|div:class=sIndent}[Number]{sub-sectiondiv}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:RIGHT_OUTER_JOIN_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:RIGHT_OUTER_JOIN_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:RIGHT_OUTER_JOIN_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:RIGHT_OUTER_JOIN_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:RIGHT_OUTER_JOIN_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:RIGHT_OUTER_JOIN_sam|trigger=none}{code:language=javascript}
/** @type {QBSelect<db:/example_data/orders>} */
code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.RIGHT_OUTERINNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{tabletbody:id=name}{tr:id=property|class=servoy sDetailname}{colgrouptd}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=allowCreationRelatedRecords|class=node}{tr:id=name}{td}h6.allowCreationRelatedRecords{td}{tr}{builder-show:permission=edith6.name{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=dessam}{td}{sub-section:allowCreationRelatedRecords_des|trigger=button|text=}{sub-section}{sub-section:allowCreationRelatedRecords_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:allowCreationRelatedRecords_snc|trigger=button|text=}{sub-section}{sub-section:allowCreationRelatedRecords_snc|trigger=none|class=sIndent} Replace with version info{sub-section*Sample*\\{div:class=sIndent}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.name = 'anotherName';
var firstTab = tabs.newTab('firstTab', 'Child Form', childForm, relation);
firstTab.relationName = relation.name;
{code}{div}{td}{tr}{builder-show}{builder-show:permission=edittr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=primaryDataSource}{tr:id=prsname}{td}*Parameters*\\{sub-section:allowCreationRelatedRecords_prs|trigger=button|text=}{sub-section}{sub-section:allowCreationRelatedRecords_prs|trigger=none|h6.primaryDataSource{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section[String]{div}{td}{tr}{builder-show}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:allowCreationRelatedRecords_ret|trigger=button|text=}{sub-section}{sub-section:allowCreationRelatedRecords_ret|trigger=none|classdiv:class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:allowCreationRelatedRecords_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:allowCreationRelatedRecords_see|trigger=none}{sub-section{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.primaryDataSource = 'db:/user_data/another_parent_table';
relation.foreignDataSource = 'db:/user_data/another_child_table';
{code}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:allowCreationRelatedRecords_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:allowCreationRelatedRecords_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:allowCreationRelatedRecords_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:allowCreationRelatedRecords_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.allowCreationRelatedRecords = true;
{code}{sub-section}{div}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getRelationItems}{tr:id=name}{td}h6.getRelationItems{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSRelationItem]\[]{span}{span:style=font-weight: bold;}getRelationItems{span}{span}\(){span}{td}{tr}{tr:classid=lastDetailRowret}{td}{td}{tr}{tbody}{tbody:id=allowParentDeleteWhenHavingRelatedRecords|class=node}{tr:id=name}{td}h6.allowParentDeleteWhenHavingRelatedRecords*Returns*\\{div:class=sIndent}[JSRelationItem]\[] -- An array of JSRelationItem instances representing the relation criteria of this relation.{div}{td}{tr}{builder-show:permission=edit}{tr:id=dessam}{td}{sub-section:allowParentDeleteWhenHavingRelatedRecords_des|trigger=button|text=}{sub-section}{sub-section:allowParentDeleteWhenHavingRelatedRecords_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:allowParentDeleteWhenHavingRelatedRecords_snc|trigger=button|text=}{sub-section}{sub-section:allowParentDeleteWhenHavingRelatedRecords_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:allowParentDeleteWhenHavingRelatedRecords_prs|trigger=button|text=}{sub-section}{sub-section:allowParentDeleteWhenHavingRelatedRecords_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:allowParentDeleteWhenHavingRelatedRecords_ret|trigger=button|text=}{sub-section}{sub-section:allowParentDeleteWhenHavingRelatedRecords_ret|trigger=none|class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:allowParentDeleteWhenHavingRelatedRecords_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:allowParentDeleteWhenHavingRelatedRecords_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:allowParentDeleteWhenHavingRelatedRecords_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:allowParentDeleteWhenHavingRelatedRecords_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:allowParentDeleteWhenHavingRelatedRecords_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:allowParentDeleteWhenHavingRelatedRecords_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.allowParentDeleteWhenHavingRelatedRecords = false;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=deleteRelatedRecords|class=node}{tr:id=name}{td}h6.deleteRelatedRecords{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:deleteRelatedRecords_des|trigger=button|text=}{sub-section}{sub-section:deleteRelatedRecords_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:deleteRelatedRecords_snc|trigger=button|text=}{sub-section}{sub-section:deleteRelatedRecords_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:deleteRelatedRecords_prs|trigger=button|text=}{sub-section}{sub-section:deleteRelatedRecords_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:deleteRelatedRecords_ret|trigger=button|text=}{sub-section}{sub-section:deleteRelatedRecords_ret|trigger=none|class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:deleteRelatedRecords_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:deleteRelatedRecords_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:deleteRelatedRecords_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:deleteRelatedRecords_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:deleteRelatedRecords_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:deleteRelatedRecords_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.deleteRelatedRecords = true;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=foreignDataSource|class=node}{tr:id=name}{td}h6.foreignDataSource{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:foreignDataSource_des|trigger=button|text=}{sub-section}{sub-section:foreignDataSource_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:foreignDataSource_snc|trigger=button|text=}{sub-section}{sub-section:foreignDataSource_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:foreignDataSource_prs|trigger=button|text=}{sub-section}{sub-section:foreignDataSource_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:foreignDataSource_ret|trigger=button|text=}{sub-section}{sub-section:foreignDataSource_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:foreignDataSource_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:foreignDataSource_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:foreignDataSource_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:foreignDataSource_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:foreignDataSource_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:foreignDataSource_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.primaryDataSource = 'db:/user_data/another_parent_table';
relation.foreignDataSource = 'db:/user_data/another_child_table';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=initialSort|class=node}{tr:id=name}{td}h6.initialSort{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:initialSort_des|trigger=button|text=}{sub-section}{sub-section:initialSort_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:initialSort_snc|trigger=button|text=}{sub-section}{sub-section:initialSort_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:initialSort_prs|trigger=button|text=}{sub-section}{sub-section:initialSort_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:initialSort_ret|trigger=button|text=}{sub-section}{sub-section:initialSort_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:initialSort_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:initialSort_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:initialSort_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:initialSort_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:initialSort_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:initialSort_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.initialSort = 'another_child_table_text asc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=joinType|class=node}{tr:id=name}{td}h6.joinType{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:joinType_des|trigger=button|text=}{sub-section}{sub-section:joinType_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:joinType_snc|trigger=button|text=}{sub-section}{sub-section:joinType_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:joinType_prs|trigger=button|text=}{sub-section}{sub-section:joinType_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:joinType_ret|trigger=button|text=}{sub-section}{sub-section:joinType_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:joinType_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:joinType_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:joinType_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:joinType_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:joinType_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:joinType_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.INNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=name|class=node}{tr:id=name}{td}h6.name{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:name_des|trigger=button|text=}{sub-section}{sub-section:name_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:name_snc|trigger=button|text=}{sub-section}{sub-section:name_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:name_prs|trigger=button|text=}{sub-section}{sub-section:name_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:name_ret|trigger=button|text=}{sub-section}{sub-section:name_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:name_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:name_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:name_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.name = 'anotherName';
var firstTab = tabs.newTab('firstTab', 'Child Form', childForm, relation);
firstTab.relationName = relation.name;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=primaryDataSource|class=node}{tr:id=name}{td}h6.primaryDataSource{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:primaryDataSource_des|trigger=button|text=}{sub-section}{sub-section:primaryDataSource_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:primaryDataSource_snc|trigger=button|text=}{sub-section}{sub-section:primaryDataSource_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:primaryDataSource_prs|trigger=button|text=}{sub-section}{sub-section:primaryDataSource_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:primaryDataSource_ret|trigger=button|text=}{sub-section}{sub-section:primaryDataSource_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:primaryDataSource_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:primaryDataSource_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:primaryDataSource_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:primaryDataSource_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:primaryDataSource_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:primaryDataSource_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.primaryDataSource = 'db:/user_data/another_parent_table';
relation.foreignDataSource = 'db:/user_data/another_child_table';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getRelationItems|class=node}{tr:id=name}{td}h6.getRelationItems{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSRelationItem]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getRelationItems{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getRelationItems_des|trigger=button|text=}{sub-section}{sub-section:getRelationItems_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getRelationItems_snc|trigger=button|text=}{sub-section}{sub-section:getRelationItems_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getRelationItems_prs|trigger=button|text=}{sub-section}{sub-section:getRelationItems_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getRelationItems_ret|trigger=button|text=}{sub-section}{sub-section:getRelationItems_ret|trigger=none|class=sIndent}[JSRelationItem]\[] -- An array of JSRelationItem instances representing the relation criteria of this relation.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getRelationItems_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getRelationItems_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getRelationItems_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getRelationItems_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getRelationItems_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getRelationItems_sam|trigger=none}{code:language=javascript}
var criteria = relation.getRelationItems();
for (var i=0; i<criteria.length; i++)
{
	var item = criteria[i];
	application.output('relation item no. ' + i);
	application.output('primary column: ' + item.primaryDataProviderID);
	application.output('operator: ' + item.operator);
	application.output('foreign column: ' + item.foreignColumnName);
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUUID|class=node}{tr:id=name}{td}h6.getUUID{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[UUID]{span}{span:id=iets|style=float: left; font-weight: bold;}getUUID{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getUUID_des|trigger=button|text=}{sub-section}{sub-section:getUUID_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getUUID_snc|trigger=button|text=}{sub-section}{sub-section:getUUID_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getUUID_prs|trigger=button|text=}{sub-section}{sub-section:getUUID_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getUUID_ret|trigger=button|text=}{sub-section}{sub-section:getUUID_ret|trigger=none|class=sIndent}[UUID]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getUUID_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUUID_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getUUID_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUUID_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getUUID_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUUID_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
application.output(relation.getUUID().toString())
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newRelationItem-String_String_String|class=node}{tr:id=name}{td}h6.newRelationItem{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSRelationItem]{span}{span:id=iets|style=float: left; font-weight: bold;}newRelationItem{span}{span:id=iets|style=float: left;}\(dataprovider, operator, foreinColumnName){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newRelationItem-String_String_String_des|trigger=button|text=}{sub-section}{sub-section:newRelationItem-String_String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newRelationItem-String_String_String_snc|trigger=button|text=}{sub-section}{sub-section:newRelationItem-String_String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newRelationItem-String_String_String_prs|trigger=button|text=}{sub-section}{sub-section:newRelationItem-String_String_String_prs|trigger=none|class=sIndent}\{[String]} dataprovider -- The name of the primary dataprovider.
\{[String]} operator -- The operator used to relate the primary and the foreign dataproviders.
\{[String]} foreinColumnName -- The name of the foreign dataprovider.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newRelationItem-String_String_String_ret|trigger=button|text=}{sub-section}{sub-section:newRelationItem-String_String_String_ret|trigger=none|class=sIndent}[JSRelationItem] -- A JSRelationItem instance representing the newly added relation item.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newRelationItem-String_String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newRelationItem-String_String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newRelationItem-String_String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newRelationItem-String_String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show*Sample*\\{div:class=sIndent}{code:language=javascript}
var criteria = relation.getRelationItems();
for (var i=0; i<criteria.length; i++)
{
	var item = criteria[i];
	application.output('relation item no. ' + i);
	application.output('primary column: ' + item.primaryDataProviderID);
	application.output('operator: ' + item.operator);
	application.output('foreign column: ' + item.foreignColumnName);
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUUID}{tr:id=name}{td}h6.getUUID{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[UUID]{span}{span:style=font-weight: bold;}getUUID{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[UUID]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{sub-section:newRelationItem-String_String_String_sam|trigger=button|text=}{sub-section}\\{div:class=sIndent}{sub-section:newRelationItem-String_String_String_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
application.output(relation.newRelationItem('another_parent_table_id', '=', 'another_child_table_parent_id');
// for literals use a prefix
relation.newRelationItem(JSRelationItem.LITERAL_PREFIX + "'hello'",'=', 'mytextfield');
{code}{sub-sectiongetUUID().toString())
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeRelationItemnewRelationItem-String_String_String|class=node}{tr:id=name}{td}h6.removeRelationItemnewRelationItem{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void[JSRelationItem]{span}{span:id=iets|style=float: left; font-weight: bold;}removeRelationItemnewRelationItem{span}{span:id=iets|style=float: left;}\(primaryDataProviderIDdataprovider, operator, foreignColumnNameforeinColumnName){span}{td}{tr}{builder-showtr:permissionid=editprs}{tr:id=des}{td}{sub-section:removeRelationItem-String_String_String_des|trigger=button|text=}{sub-section}{sub-section:removeRelationItem-String_String_String_des|trigger=none|class=sIndent}Replace with description{sub-sectiontd}*Parameters*\\{div:class=sIndent}\{[String]} dataprovider -- The name of the primary dataprovider.
\{[String]} operator -- The operator used to relate the primary and the foreign dataproviders.
\{[String]} foreinColumnName -- The name of the foreign dataprovider.
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:removeRelationItem-String_String_String_snc|trigger=button|text=}{sub-section}{sub-section:removeRelationItem-String_String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}[JSRelationItem] -- A JSRelationItem instance representing the newly added relation item.{div}{td}{tr}{builder-show}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:removeRelationItem-String_String_String_prs|trigger=button|text=}{sub-section}{sub-section:removeRelationItem-String_String_String_prs|trigger=none|class=sIndent}\{[String]} primaryDataProviderID -- the primary data provider (column) name
\{[String]} operator -- the operator
\{[String]} foreignColumnName -- the foreign column name
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeRelationItem-String_String_String_ret|trigger=button|text=}{sub-section}{sub-section:removeRelationItem-String_String_String_ret|trigger=none|class=sIndent}void{sub-sectiondiv:class=sIndent}{code:language=javascript}
var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.newRelationItem('another_parent_table_id', '=', 'another_child_table_parent_id');
// for literals use a prefix
relation.newRelationItem(JSRelationItem.LITERAL_PREFIX + "'hello'",'=', 'mytextfield');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:tbody}{tbody:id=removeRelationItem-String_String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeRelationItem-String_String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=name}{td}h6.removeRelationItem{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}removeRelationItem{span}{span}\(primaryDataProviderID, operator, foreignColumnName){span}{td}{tr}{tr:id=linkprs}{td}*External linksParameters*\\{div:class=sIndent}\{sub-section:removeRelationItem-String_String_String_link|trigger=button|text=}{sub-section}[String]} primaryDataProviderID -- the primary data provider (column) name
\{[String]} operator -- the operator
\{[String]} foreignColumnName -- the foreign column name
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section:removeRelationItem-String_String_String_link|trigger=none}{sub-section}{void{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeRelationItem-String_String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeRelationItem-String_String_String_sam|trigger=none}{code:language=javascript}
var relation = solutionModel.newRelation('myRelation', 'db:/myServer/parentTable', 'db:/myServer/childTable', JSRelation.INNER_JOIN);
relation.newRelationItem('someColumn1', '=', 'someColumn2');
relation.newRelationItem('anotherColumn', '=', 'someOtherColumn');
relation.removeRelationItem('someColumn1', '=', 'someColumn2');
var criteria = relation.getRelationItems();
for (var i = 0; i < criteria.length; i++) {
	var item = criteria[i];
	application.output('primary column: ' + item.primaryDataProviderID);
	application.output('operator: ' + item.operator);
	application.output('foreign column: ' + item.foreignColumnName);
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}