Skip to end of metadata
-
Created by Former user, last modified by Former user on Nov 08, 2017
Go to start of metadata
Search pages are the XML files that contain database query definitions.
What does this section cover?
Attributes
| | |
---|
searchcaption | A title which is displayed on the screen. | Any |
sqltype | The type of SQL script. | SELECT or SELECT DISTINCT |
tables | A list of tables to be used in the joins and fields sections. | Any table name that exists in the database |
joins | A list of elements to join the tables. | Join |
fields | The fields that are used in the select and where clauses. | Field Item |
wheregroups | A wheregroup groups together where conditions in the search file. | Wheregroup |
groupby | Collects data across multiple records and groups the results by one or more fields. | Any field name |
orderby | Sorts the query result set based on one or more fields. | Order By |
classname | The name of the EJB class containing the EJB method that is called to load the search results. | Valid EJB class name |
methodname | The EJB method that is called to load the search results. | Valid EJB method name |
organisationdatabase | If 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
<?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
<?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>
/**
* 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;
}
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;
}
}