Search Pages Documentation

Search pages are the XML files that contain database query definitions.


What does this section cover?

Attributes

Name
Description
Value
searchcaptionA title which is displayed on the screen.Any
sqltypeThe type of SQL script.SELECT or SELECT DISTINCT
tablesA list of tables to be used in the joins and fields sections.Any table name that exists in the database
joinsA list of elements to join the tables.Join
fieldsThe fields that are used in the select and where clauses.Field Item
wheregroupsA wheregroup groups together where conditions in the search file.Wheregroup
groupbyCollects data across multiple records and groups the results by one or more fields.Any field name
orderbySorts the query result set based on one or more fields.Order By
classnameThe name of the EJB class containing the EJB method that is called to load the search results.Valid EJB class name
methodnameThe EJB method that is called to load the search results.Valid EJB method name
organisationdatabaseIf set to false the SQL query will run against the ecenter table. If set to true the SQL query will run against the organisation table. The default value is true.true, false

Example

 Search Page using SQL query

 

Search Page
<?xml version="1.0" encoding="UTF-8"?>
<dataset xmlns="http://www.crm.com/xmlschema/dataset.rng">
	<searchcaption>key_serch_products</searchcaption>
	<sqltype>Select</sqltype>
	<tables>
		<table><tablename>PRODUCTS</tablename></table>
		<table><tablename>PRODUCTTYPES</tablename></table>
		<table><tablename>PRODUCTBRANDS</tablename></table>
		<table><tablename>PRODUCTFAMILIES</tablename></table>
	</tables>
	<joins>
		<join>
			<indexorder>1</indexorder>
			<outertable>PRODUCTS</outertable>
			<innertable>PRODUCTTYPES</innertable>
			<jointype>RIGHT</jointype>
			<conditions>
				<conditionitem>
					<outerfield>PRODTYPEID</outerfield>
					<condition>=</condition>
					<innerfield>PRODTYPEID</innerfield>
					<andor>AND</andor>
				</conditionitem>
			</conditions>
		</join>
		<join>
			<indexorder>2</indexorder>
			<outertable>PRODUCTS</outertable>
			<innertable>PRODUCTBRANDS</innertable>
			<jointype>LEFT</jointype>
			<conditions>
				<conditionitem>
					<outerfield>PRODBRANDID</outerfield>
					<condition>=</condition>
					<innerfield>PRODBRANDID</innerfield>
					<andor>AND</andor>
				</conditionitem>
			</conditions>
		</join>
		<join>
			<indexorder>3</indexorder>
			<outertable>PRODUCTS</outertable>
			<innertable>PRODUCTFAMILIES</innertable>
			<jointype>LEFT</jointype>
			<conditions>
				<conditionitem>
					<outerfield>PRODFAMILYID</outerfield>
					<condition>=</condition>
					<innerfield>PRODFAMILYID</innerfield>
					<andor>AND</andor>
				</conditionitem>
			</conditions>
		</join>
	</joins>
	<fields>
		<fielditem>
			<field>PRODUCTS.PRODID</field>
			<expression>VALUE</expression>
			<datatype>ftXString</datatype>
			<fieldlen>32</fieldlen>
			<searchcriteria>0</searchcriteria>
			<visible>0</visible>
			<executable>1</executable>
			<indexorder>1</indexorder>
		</fielditem>
		<fielditem>
			<field>PRODUCTS.PRODCODE</field>
			<label>key_product_code</label>
			<expression>VALUE</expression>
			<datatype>ftXString</datatype>
			<fieldlen>32</fieldlen>
			<searchcriteria>1</searchcriteria>
			<visible>1</visible>
			<executable>1</executable>
			<indexorder>2</indexorder>
		</fielditem>
		...
	</fields>
	<wheregroups>
		<wheregroup>
			<wherefields>
				<wherefield>
					<field>PRODUCTS.PRODDELETED</field>
					<alias>Expr001</alias>
					<expression>VALUE</expression>
				</wherefield>
				<wherefield>
					<field>0</field>
					<alias>Expr002</alias>
					<expression>VALUE</expression>
				</wherefield>
			</wherefields>
			<wheremembers>
				<wheremember>
					<lparenth>0</lparenth>
					<lfield>PRODUCTS.PRODDELETED</lfield>
					<expression>=</expression>
					<rfield>0</rfield>
					<rparenth>0</rparenth>
					<andor>AND</andor>
				</wheremember>
			</wheremembers>
		</wheregroup>
	</wheregroups>
	<groupby/>
	<orderby/>
</dataset>
 Search Page using EJB method

 

Search Page
<?xml version="1.0" encoding="UTF-8"?><dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/search.xsd">
	<searchcaption>key_priority_level</searchcaption>
	<classname>ejb/CRMUIServiceRequest</classname>
	<methodname>getPriorityLevels</methodname>
	
	<fields>
	
		<fielditem>
			<field>priorityLevelId</field>
			<expression>VALUE</expression>
			<datatype>ftXString</datatype>
			<fieldlen>32</fieldlen>
			<searchcriteria>0</searchcriteria>
			<visible>0</visible>
			<executable>1</executable>
			<indexorder>10</indexorder>
		</fielditem>
		<fielditem>
			<field>priorityLevelName</field>
			<label>key_priority_level</label>
			<expression>VALUE</expression>
			<datatype>ftXString</datatype>
			<fieldlen>32</fieldlen>
			<searchcriteria>1</searchcriteria>
			<visible>1</visible>
			<executable>1</executable>
			<indexorder>20</indexorder>
		</fielditem>
	</fields>
</dataset>
EJB method
    /**
	 * Loads a list of service request priority levels filter with the input parameter
	 * 
	 * @param filter  - the filter to filter out the service request priority levels does not match
	 * @return            the list of service request priority levels
	 * @throws Exception
	 */
	public ArrayList<ServiceRequestPriotityLevel> getPriorityLevels(String filter) throws Exception {
		
		
		ArrayList<ServiceRequestPriotityLevel> priorityLevels = new ArrayList<ServiceRequestPriotityLevel>();
		CRMDOServiceRequestDefinition serviceRequestDefinition = (CRMDOServiceRequestDefinition)serviceRequestDefinitionBean.loadActiveDefinition();
		ArrayList<CRMDO> definitionPriorities = serviceRequestDefinitionPriorityBean.load(serviceRequestDefinition);
		if (filter!=null)
		{
			filter = filter.replace("%", "");
			filter = filter.replace("_", "");
		}
		if (definitionPriorities!=null && definitionPriorities.size() > 0)
		{
			for (int i=0; i<definitionPriorities.size(); i++)
			{
				CRMDOServiceRequestDefinitionPriority definitionPriority = (CRMDOServiceRequestDefinitionPriority)definitionPriorities.get(i);
				if(definitionPriority.getLabel()!=null)
				{	
					if (filter==null || filter.length() ==0 || definitionPriority.getLabel().toUpperCase().contains(filter.toUpperCase()))
					{
						ServiceRequestPriotityLevel serviceRequestPriotityLevel = new ServiceRequestPriotityLevel();
						serviceRequestPriotityLevel.setPriorityLevelId(definitionPriority.getPriorityCode());
						serviceRequestPriotityLevel.setPriorityLevelName(definitionPriority.getLabel());
						priorityLevels.add(serviceRequestPriotityLevel);
					}
				}
				else
				{	
					if (filter==null || filter.length() ==0 || definitionPriority.getPriorityCode().toString().toUpperCase().contains(filter.toUpperCase()))
					{
						ServiceRequestPriotityLevel serviceRequestPriotityLevel = new ServiceRequestPriotityLevel();
						serviceRequestPriotityLevel.setPriorityLevelId(definitionPriority.getPriorityCode());
						serviceRequestPriotityLevel.setPriorityLevelName(definitionPriority.getPriorityCode().toString());
						priorityLevels.add(serviceRequestPriotityLevel);
					}
				}
			}
		}
		
		return priorityLevels;
	}
Search results Data Object
public class ServiceRequestPriotityLevel extends NotPersistenceObject {
	private static final long serialVersionUID = 1L;
	
	private Integer priorityLevelId;
	private String priorityLevelName;
	
	public Integer getPriorityLevelId() {
		return priorityLevelId;
	}
	public void setPriorityLevelId(Integer priorityLevelId) {
		this.priorityLevelId = priorityLevelId;
	}
	public String getPriorityLevelName() {
		return priorityLevelName;
	}
	public void setPriorityLevelName(String priorityLevelName) {
		this.priorityLevelName = priorityLevelName;
	}
}

Related pages