Versions Compared

Key

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

...

  1. Create a new data object class extending com.crm.dataobject.ViewObject class.
  2. Create five new summary pages.
  3. Create a new data entry page.
  4. Create a new user interface class extending com.crm.process.processrun.CRMUIProcessRunDefinitionBean class.
  5. Create a new class extending com.crm.businessobject.processrun.ProcessRunDefinitionXMLUtilBean class, to save and load any criteria, action inputs and/or scheduling settings.
  6. Define the process in modules metadata file.

...

1. Create Data Object Class

The new data object class must extend com.crm.dataobject.ViewObject class and must implement both getViewMandatoryFields() and getAssociatedObjects() methods. The associated objects will be used by setMandatoryFields() method of com.crm.dataobject.ViewObject for mandatory field calculation. This method calculates the associated objects' mandatory fields and along with the ones defined in getViewMandatoryFields() method it constructs the new data object's defaultMandatoryFields linked hash map.

...

Code Block
themeEclipse
languagejava
titleRewardSettlementRunDefinition.java
linenumberstrue
collapsetrue
public class RewardSettlementRunDefinition extends ViewObject {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private CRMDOProcessRunDefinition processRunDefinition;
	private SchedulerTask schedulerTask;
	//input settings
	private RewardSettlementType rewardSettlementType;
	//criteria
	private Set<RewardSchemeCriterion> schemeCriteria;
	private Integer daysAgo;

	public CRMDOProcessRunDefinition getProcessRunDefinition() {
		return processRunDefinition;
	}
	public void setProcessRunDefinition(CRMDOProcessRunDefinition processRunDefinition) {
		this.processRunDefinition = processRunDefinition;
	}
	public SchedulerTask getSchedulerTask() {
		return schedulerTask;
	}
	public void setSchedulerTask(SchedulerTask schedulerTask) {
		this.schedulerTask = schedulerTask;
	}
	public RewardSettlementType getRewardSettlementType() {
		return rewardSettlementType;
	}
	public void setRewardSettlementType(RewardSettlementType rewardSettlementType) {
		this.rewardSettlementType = rewardSettlementType;
	}
	public Set<RewardSchemeCriterion> getSchemeCriteria() {
		return schemeCriteria;
	}
	public void setSchemeCriteria(Set<RewardSchemeCriterion> schemeCriteria) {
		this.schemeCriteria = schemeCriteria;
	}
	public Integer getDaysAgo() {
		return daysAgo;
	}
	public void setDaysAgo(Integer daysAgo) {
		this.daysAgo = daysAgo;
	}
	
	@Override
	protected LinkedHashMap<String, CRMDO> getAssociatedDataObjects() {
		LinkedHashMap<String, CRMDO> dataObjects=new LinkedHashMap<String, CRMDO>();
		
		dataObjects.put("processRunDefinition", getProcessRunDefinition());
		
		return dataObjects;
	}
	@Override
	public LinkedHashMap<String, String> getViewMandatoryFields() {
		LinkedHashMap<String, String> viewMandatoryFields = new LinkedHashMap<String, String>();
		
		viewMandatoryFields.put( "rewardSettlementType", "key_reward_settlement_type");
		return viewMandatoryFields;
	}

2. Create Summary Pages

Five new summary pages need to be implemented in order to give the user all the necessary information about the process run definition, its runs, and their results.

2.a. Process Run Definition Summary Page

The first summary page to create is the process run definition summary page, which is the main summary page that will display all the process run definition records.

...

As you can see, two drill-down summary pages must be created and included in the main summary page: process runs and previous version pages.

2.a.i. Process Runs Drilldown Summary Page

Process runs summary page shows all the process runs created by a specific process run definition.

...

As you can see, two drill-down summary pages must be created and included in process runs summary page: processed successfully and processed with errors pages.

2.a.i.1. Processed Successfully Summary Page

Processed successfully summary page shows all the entities that were processed successfully by a specific process run.

Ui expand
titleRewards Settlement Run Entities Processed Successfully Summary Page
Code Block
languagexml
titlesettlementProcessRuns_sucessfulentries.xml
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8"?><summary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/summary.xsd">
	<title>key_process_results_/_errors</title>
	<sql>FROM PROCESSRUNENTITYLOG
		LEFT JOIN USERS CREATEDBY ON CREATEDBY.USERID = PROCESSRUNENTITYLOG.PROCRUNENTITYCREATEDBYUSERID
		LEFT JOIN USERS UPDATEDBY ON UPDATEDBY.USERID = PROCESSRUNENTITYLOG.PROCRUNENTITYUPDATEDBYUSERID
		LEFT JOIN OUUNITS CREATEDBYUNIT ON CREATEDBYUNIT.OUUID = PROCESSRUNENTITYLOG.PROCRUNENTITYCREATEDBYOUUID
		LEFT JOIN OUUNITS UPDATEDBYUNIT ON UPDATEDBYUNIT.OUUID = PROCESSRUNENTITYLOG.PROCRUNENTITYUPDATEDBYOUUID

		WHERE PROCESSRUNENTITYLOGDELETED = 0 AND PROCESSRUNENTITYSTATUS = 'COMPLETED'
	</sql>
	<rowsperpage>20</rowsperpage>
	<primaryfield>PROCESSRUNENTITYLOG.PROCESSRUNENTITYLOGID</primaryfield>
	<mainlinkfield>PROCESSRUNENTITYLOG.PROCESSRUNENTITYLOGID</mainlinkfield>
	<orderbyfields>PROCESSRUNENTITYLOG.ENTITYPKID DESC</orderbyfields>
	<hidefindbutton>true</hidefindbutton>
	<module>REWARDS</module>
	
	<fieldlist>
		<!-- external filters -->
		<field>
			<fieldname>PROCESSRUNENTITYLOG.PROCESSRUNLOGID</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<!-- fields -->
		
	   	<field>
	    	<fieldname>Dummy1</fieldname>
	    	<fieldfunction>''</fieldfunction>
	    	<caption>key_entity</caption>
	    	<summary>true</summary>
	    	<fieldtype>label</fieldtype>
	    	<label>key_entity</label>
		<link>drilldown:
			'((PROCESSRUNENTITYLOG.ENTITYID))'=='ACCOUNTSRECEIVABLE'~~accounts/accountsReceivable;hidefilters~true~ACCOUNTSRECEIVABLE.ACCRECID~((PROCESSRUNENTITYLOG.ENTITYPKID))|||
                        '((PROCESSRUNENTITYLOG.ENTITYID))'=='INVOICES'~~financialtransactions/financialTransactions;hidefilters~true~FINTRANSACTIONS.FINTRXNID~((PROCESSRUNENTITYLOG.ENTITYPKID))|||
                        '((PROCESSRUNENTITYLOG.ENTITYID))'=='CREDITNOTES'~~financialtransactions/financialTransactions;hidefilters~true~FINTRANSACTIONS.FINTRXNID~((PROCESSRUNENTITYLOG.ENTITYPKID))
		</link> 
	   	</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.ENTITYID</fieldname>
			<caption>key_entity_name</caption>
			<summary>true</summary>
			<fieldtype>string</fieldtype>
	    	        <fixedlookup>ACCOUNTSRECEIVABLE|key_accounts_receivable|INVOICES|key_invoice|CREDITNOTES|key_credit_note</fixedlookup>
		</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.ENTITYPKID</fieldname>
			<caption>key_entity_pk_id</caption>
			<summary>false</summary>
			<fieldtype>string</fieldtype>
		</field>

		<field>
			<fieldname>PROCESSRUNENTITYSTATUS</fieldname>
			<fieldfunction>PROCESSRUNENTITYLOG.PROCESSRUNENTITYSTATUS</fieldfunction>
			<caption>key_status</caption>
			<summary>true</summary>
			<fixedlookup>ejb/CRMUIProcessRunLog.getEntityStatusOptions:key_n/a</fixedlookup>
		</field>
		<!-- Expand Fields -->

		<field>
			<fieldname>CREATEDBYUSERNAME</fieldname>
			<fieldfunction>CREATEDBY.USERNAME</fieldfunction>
			<caption>key_created_by_user</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>UPDATEDBYUSERNAME</fieldname>
			<fieldfunction>UPDATEDBY.USERNAME</fieldfunction>
			<caption>key_updated_by_user</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>CREATEDBYUNITOUUNAME</fieldname>
			<fieldfunction>CREATEDBYUNIT.OUUNAME</fieldfunction>
			<caption>key_created_by_unit</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>UPDATEDBYUNITOUUNAME</fieldname>
			<fieldfunction>UPDATEDBYUNIT.OUUNAME</fieldfunction>
			<caption>key_updated_by_unit</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.PROCRUNENTITYCREATEDDATE</fieldname>
			<caption>key_date_created</caption>
			<expand>true</expand>
			<filter>true</filter>
			<fieldtype>date</fieldtype>
			<filtertextoption>range</filtertextoption>
			<filteronexpand>true</filteronexpand>
		</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.PROCRUNENTITYUPDATEDDATE</fieldname>
			<caption>key_date_updated</caption>
			<expand>true</expand>
			<filter>true</filter>
			<fieldtype>date</fieldtype>
			<filtertextoption>range</filtertextoption>
			<filteronexpand>true</filteronexpand>
		</field>
	</fieldlist>
</summary>

2.a.i.2. Processed with Errors Summary Page

Processed with errors summary page shows all the entities that their processing, by a specific process run, failed.

Ui expand
titleRewards Settlement Entities Processed with Errors Summary Page
Code Block
languagexml
titlesettlementProcessRuns_failedentries.xml
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8"?><summary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/summary.xsd">
	<title>key_process_results_/_errors</title>
	<sql>FROM PROCESSRUNENTITYLOG
		LEFT JOIN USERS CREATEDBY ON CREATEDBY.USERID = PROCESSRUNENTITYLOG.PROCRUNENTITYCREATEDBYUSERID
		LEFT JOIN USERS UPDATEDBY ON UPDATEDBY.USERID = PROCESSRUNENTITYLOG.PROCRUNENTITYUPDATEDBYUSERID
		LEFT JOIN OUUNITS CREATEDBYUNIT ON CREATEDBYUNIT.OUUID = PROCESSRUNENTITYLOG.PROCRUNENTITYCREATEDBYOUUID
		LEFT JOIN OUUNITS UPDATEDBYUNIT ON UPDATEDBYUNIT.OUUID = PROCESSRUNENTITYLOG.PROCRUNENTITYUPDATEDBYOUUID

		WHERE PROCESSRUNENTITYLOGDELETED = 0  AND PROCESSRUNENTITYSTATUS = 'FAILED'
	</sql>
	<rowsperpage>20</rowsperpage>
	<primaryfield>PROCESSRUNENTITYLOG.PROCESSRUNENTITYLOGID</primaryfield>
	<mainlinkfield>PROCESSRUNENTITYLOG.PROCESSRUNENTITYLOGID</mainlinkfield>
	<orderbyfields>PROCESSRUNENTITYLOG.ENTITYPKID DESC</orderbyfields>
	<hidefindbutton>true</hidefindbutton>
	<module>REWARDS</module>
	
	<fieldlist>
		<!-- external filters -->
		<field>
			<fieldname>PROCESSRUNENTITYLOG.PROCESSRUNLOGID</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<!-- fields -->
		
	   	<field>
	    	<fieldname>Dummy1</fieldname>
	    	<fieldfunction>''</fieldfunction>
	    	<caption>key_entity</caption>
	    	<summary>true</summary>
	    	<fieldtype>label</fieldtype>
	    	<label>key_entity</label>
		<link>drilldown:
			'((PROCESSRUNENTITYLOG.ENTITYID))'=='ACCOUNTSRECEIVABLE'~~accounts/accountsReceivable;hidefilters~true~ACCOUNTSRECEIVABLE.ACCRECID~((PROCESSRUNENTITYLOG.ENTITYPKID))|||
                        '((PROCESSRUNENTITYLOG.ENTITYID))'=='INVOICES'~~financialtransactions/financialTransactions;hidefilters~true~FINTRANSACTIONS.FINTRXNID~((PROCESSRUNENTITYLOG.ENTITYPKID))|||
                        '((PROCESSRUNENTITYLOG.ENTITYID))'=='CREDITNOTES'~~financialtransactions/financialTransactions;hidefilters~true~FINTRANSACTIONS.FINTRXNID~((PROCESSRUNENTITYLOG.ENTITYPKID))
		</link> 
	   	</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.ENTITYID</fieldname>
			<caption>key_entity_name</caption>
			<summary>true</summary>
			<fieldtype>string</fieldtype>
	    	<fixedlookup>ACCOUNTSRECEIVABLE|key_accounts_receivable|INVOICES|key_invoice|CREDITNOTES|key_credit_note</fixedlookup>
		</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.ENTITYPKID</fieldname>
			<caption>key_entity_pk_id</caption>
			<summary>false</summary>
			<fieldtype>string</fieldtype>
		</field>

		<field>
			<fieldname>PROCESSRUNENTITYSTATUS</fieldname>
			<fieldfunction>PROCESSRUNENTITYLOG.PROCESSRUNENTITYSTATUS</fieldfunction>
			<caption>key_status</caption>
			<summary>true</summary>
			<fixedlookup>ejb/CRMUIProcessRunLog.getEntityStatusOptions:key_n/a</fixedlookup>
		</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.PROCESSRUNLOGERRORCODE</fieldname>
			<caption>key_error_code</caption>
			<summary>true</summary>
		</field>
		<!-- Expand Fields -->

		<field>
			<fieldname>CREATEDBYUSERNAME</fieldname>
			<fieldfunction>CREATEDBY.USERNAME</fieldfunction>
			<caption>key_created_by_user</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>UPDATEDBYUSERNAME</fieldname>
			<fieldfunction>UPDATEDBY.USERNAME</fieldfunction>
			<caption>key_updated_by_user</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>CREATEDBYUNITOUUNAME</fieldname>
			<fieldfunction>CREATEDBYUNIT.OUUNAME</fieldfunction>
			<caption>key_created_by_unit</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>UPDATEDBYUNITOUUNAME</fieldname>
			<fieldfunction>UPDATEDBYUNIT.OUUNAME</fieldfunction>
			<caption>key_updated_by_unit</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.PROCRUNENTITYCREATEDDATE</fieldname>
			<caption>key_date_created</caption>
			<expand>true</expand>
			<filter>true</filter>
			<fieldtype>date</fieldtype>
			<filtertextoption>range</filtertextoption>
			<filteronexpand>true</filteronexpand>
		</field>
		<field>
			<fieldname>PROCESSRUNENTITYLOG.PROCRUNENTITYUPDATEDDATE</fieldname>
			<caption>key_date_updated</caption>
			<expand>true</expand>
			<filter>true</filter>
			<fieldtype>date</fieldtype>
			<filtertextoption>range</filtertextoption>
			<filteronexpand>true</filteronexpand>
		</field>
		<field>
			<fieldfunction>PROCESSRUNENTITYLOG.PROCESSRUNLOGERRORDESC</fieldfunction>
			<fieldname>PROCESSRUNLOGERRORDESC</fieldname>
			<caption>key_error_description</caption>
			<expand>true</expand>
		</field>
	</fieldlist>
</summary>

2.a.ii. Previous Version Summary Page

Previous version summary page shows the previous version of a specific process run.

Ui expand
titleRewards Settlement Run Previous Version Summary Page
Code Block
languagexml
titlesettlementProcessRunDefinitionsVersions.xml
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8"?><summary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/summary.xsd">
	<title>key_process_run_definitions</title>
	<sql>FROM PROCESSRUNDEFINITIONS
		LEFT JOIN USERS CREATEDBY ON CREATEDBY.USERID = PROCESSRUNDEFINITIONS.PROCESSRUNDEFCREATEDBYUSERID
		LEFT JOIN USERS UPDATEDBY ON UPDATEDBY.USERID = PROCESSRUNDEFINITIONS.PROCESSRUNDEFUPDATEDBYUSERID
		LEFT JOIN OUUNITS CREATEDBYUNIT ON CREATEDBYUNIT.OUUID = PROCESSRUNDEFINITIONS.PROCESSRUNDEFCREATEDBYOUUID
		LEFT JOIN OUUNITS UPDATEDBYUNIT ON UPDATEDBYUNIT.OUUID = PROCESSRUNDEFINITIONS.PROCESSRUNDEFUPDATEDBYOUUID
		WHERE PROCESSRUNDEFINITIONS.PROCESSRUNDEFDELETED = 0 
		AND PROCESSRUNDEFINITIONS.PROCESSID = 'REWARD_SETTLEMENT_PROCESSING' AND PROCESSRUNDEFINITIONS.MODULEID = 'REWARDS' 
	</sql>
	<rowsperpage>20</rowsperpage>
	<primaryfield>PROCESSRUNDEFINITIONS.PROCESSRUNDEFID</primaryfield>
	<mainlinkfield>PROCESSRUNDEFINITIONS.PROCESSRUNDEFNAME</mainlinkfield>
	<autosearch>true</autosearch>
	<allownocriteria>true</allownocriteria>
	<module>REWARDS</module>
	<fieldlist>
		<!-- external filters -->
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFID</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<!-- basic search -->
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE</fieldname>
			<caption>key_unified_code</caption>
			<filter>true</filter>
			<filtercaseinsensitive>true</filtercaseinsensitive>
			<filtersearchonchange>true</filtersearchonchange>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFNAME</fieldname>
			<caption>key_name</caption>
			<filter>true</filter>
			<filtercaseinsensitive>true</filtercaseinsensitive>
			<filtersearchonchange>true</filtersearchonchange>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFALTCODE</fieldname>
			<caption>key_alternative_code</caption>
			<filter>true</filter>
			<filtercaseinsensitive>true</filtercaseinsensitive>
			<filtersearchonchange>true</filtersearchonchange>
		</field>
		<field>
			<fieldname>PROCESS_RUN_FILTER</fieldname>
			<fieldfunction>PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE</fieldfunction>
			<caption>key_process_run_number</caption>
			<filter>true</filter>
			<filtercondition> 
			PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE IN (
				SELECT PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE FROM PROCESSRUNDEFINITIONS
				WHERE PROCESSRUNDEFINITIONS.PROCESSRUNDEFID IN (
					SELECT PROCESSRUNLOG.PROCESSRUNDEFID FROM PROCESSRUNLOG
					WHERE PROCESSRUNLOG.PROCESSRUNLOGNUM = '#1' 
					AND PROCESSRUNLOG.PROCESSRUNLOGDELETED = 0
				)
			)
			</filtercondition>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.LIFECYCLESTATE</fieldname>
			<caption>key_life_cycle_state</caption>
			<filter>true</filter>
			<fixedlookup>ejb/CRMUISubscriptionProcessRunDefinition.getLifeCycleStateOptions:key_all</fixedlookup>
		</field>
		<!-- advanced search -->
		<field>
			<fieldname>CREATEDBYUSER_FILTER</fieldname>
			<fieldfunction>CREATEDBY.USERID</fieldfunction>
			<caption>key_created_by_user</caption>
			<filter>true</filter>
			<filteronexpand>true</filteronexpand>
			<filterlookupname>dataset;users.load;userid;username:name</filterlookupname>
		</field>
		<field>
			<fieldname>CREATEDBYUNIT_FILTER</fieldname>
			<fieldfunction>CREATEDBYUNIT.OUUID</fieldfunction>
			<caption>key_created_by_unit</caption>
			<filter>true</filter>
			<filteronexpand>true</filteronexpand>
			<filterlookupname>dataset;networkmanagement.loadunits;ouuid;ouuname:ougname:oucname</filterlookupname>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFCREATEDDATE_FILTER</fieldname>
			<fieldfunction>PROCESSRUNDEFINITIONS.PROCESSRUNDEFCREATEDDATE</fieldfunction>
			<fieldtype>date</fieldtype>
			<caption>key_date_created</caption>
			<filter>true</filter>
			<filteronexpand>true</filteronexpand>
			<filtertextoption>range</filtertextoption>
		</field>
		<field>
			<fieldname>UPDATEDBYUSER_FILTER</fieldname>
			<fieldfunction>UPDATEDBY.USERID</fieldfunction>
			<caption>key_updated_by_user</caption>
			<filter>true</filter>
			<filteronexpand>true</filteronexpand>
			<filterlookupname>dataset;users.load;userid;username:name</filterlookupname>
		</field>
		<field>
			<fieldname>UPDATEDBYUNIT_FILTER</fieldname>
			<fieldfunction>UPDATEDBYUNIT.OUUID</fieldfunction>
			<caption>key_updated_by_unit</caption>
			<filter>true</filter>
			<filteronexpand>true</filteronexpand>
			<filterlookupname>dataset;networkmanagement.loadunits;ouuid;ouuname:ougname:oucname</filterlookupname>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFUPDATEDDATE_FILTER</fieldname>
			<fieldfunction>PROCESSRUNDEFINITIONS.PROCESSRUNDEFUPDATEDDATE</fieldfunction>
			<fieldtype>date</fieldtype>
			<caption>key_date_updated</caption>
			<filter>true</filter>
			<filteronexpand>true</filteronexpand>
			<filtertextoption>range</filtertextoption>
		</field>
		<!-- fields -->
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE</fieldname>
			<caption>key_unified_code</caption>
			<summary>true</summary>
			<link>page.do?xml=rewards/settlementProcessRunDefinition&amp;act=itm&amp;jndi=ejb/CRMUIRewardSettlementRunDefinition&amp;fc=loadForm&amp;pv0=((PROCESSRUNDEFINITIONS.PROCESSRUNDEFID))&amp;pvc=1</link>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFNAME</fieldname>
			<caption>key_name</caption>
			<summary>true</summary>
			<link>page.do?xml=rewards/settlementProcessRunDefinition&amp;act=itm&amp;jndi=ejb/CRMUIRewardSettlementRunDefinition&amp;fc=loadForm&amp;pv0=((PROCESSRUNDEFINITIONS.PROCESSRUNDEFID))&amp;pvc=1</link>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFALTCODE</fieldname>
			<caption>key_alternative_code</caption>
			<summary>true</summary>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFDESC</fieldname>
			<caption>key_description</caption>
			<summary>true</summary>
			<mouseover>true</mouseover>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFVERSION</fieldname>
			<caption>key_version</caption>
			<summary>true</summary>
		</field>
		<field>
			<fieldname>CREATEDBYUSERNAME</fieldname>
			<fieldfunction>CREATEDBY.USERNAME</fieldfunction>
			<caption>key_created_by_user</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>UPDATEDBYUSERNAME</fieldname>
			<fieldfunction>UPDATEDBY.USERNAME</fieldfunction>
			<caption>key_updated_by_user</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>CREATEDBYUNITOUUNAME</fieldname>
			<fieldfunction>CREATEDBYUNIT.OUUNAME</fieldfunction>
			<caption>key_created_by_unit</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>UPDATEDBYUNITOUUNAME</fieldname>
			<fieldfunction>UPDATEDBYUNIT.OUUNAME</fieldfunction>
			<caption>key_updated_by_unit</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFCREATEDDATE</fieldname>
			<fieldtype>date</fieldtype>
			<caption>key_date_created</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFUPDATEDDATE</fieldname>
			<fieldtype>date</fieldtype>
			<caption>key_date_updated</caption>
			<expand>true</expand>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFSCHEDULEDDATE</fieldname>
			<fieldtype>date</fieldtype>
			<caption>key_scheduled_date</caption>
			<expand>true</expand>
		</field>
		<!-- drilldowns -->
		<field>
			<fieldname>PROCESSRUNS_DD</fieldname>
			<fieldfunction>''</fieldfunction>
			<caption>key_process_runs</caption>
			<summary>true</summary>
			<fieldtype>label</fieldtype>
			<label>key_process_runs</label>
			<link>drilldown:rewards/settlementProcessRuns;hidefilters~true~PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE~((PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE))</link>
		</field>
	</fieldlist>
</summary>

3. Create Data Entry Page

A new data entry page must be implemented to give the user to create, view, modify, delete or apply other operations on a process run definition. 

Ui expand
titleRewards Settlement Run Definition Data Entry Page
Code Block
languagexml
titlesettlementProcessRunDefinition.xml
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8"?><page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/dataEntry.xsd">
	<id>rewards/processRunDefinition</id>
	<name>key_reward_settlement_run_definition</name>
        <datapath>processRunDefinition/code</datapath>
	<module>REWARDS</module>
	<functioncall>
		<functions>
			<function>
			</function>
		</functions>
	</functioncall>
	<datasources>
		<datasource>
			<key>form</key>
			<classname>com.crm.web.generator.datasource.DTODatasource</classname>
		</datasource>
	</datasources>
	<mainmenu>
		<components> 
			<component>
				<id>cmpHome</id>
				<name>key_home</name>
				<visiblemodes>read</visiblemodes>
				<elements>
					<button>
						<id>btnHome</id>
						<name>key_home</name>
						<setmode>read</setmode>
						<refresh>page</refresh>
						<url>page.do?act=summary&amp;xml=rewards/settlementProcessRunDefinitions</url>
					</button>
				</elements>
			</component>
			<component>
				<id>cmpNew</id>
				<name>key_new</name>
				<visiblemodes>read</visiblemodes>
				<elements>
					<button>
						<id>btnNew</id>
						<name>key_new</name>
						<setmode>new</setmode>
						<refresh>page</refresh>
						<functioncall>
							<functions>
								<function>
									<type>ejb</type>
									<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
									<functionname>createButton</functionname>
									<resultaction>replace</resultaction>
									<datatype>root</datatype>
								</function>
							</functions>
						</functioncall>
					</button>
				</elements>
			</component>
			<component>
				<id>cmpEdit</id>
				<name>key_edit</name>
				<visiblemodes>read</visiblemodes>
				<elements>
					<button>
						<id>btnEdit</id>
						<name>key_edit</name>
						<visibilityconditions>
						'[[getValue,java.lang.String,isEditable]]'!='0' &amp;&amp; 
						'[[getAlias,java.lang.String,IS_PROCESS_RUN_DEF_LATEST_VERSION]]'!='0'
						</visibilityconditions>
						<setmode>edit</setmode>
						<refresh>page</refresh>
						<disableonclick>true</disableonclick>
						<functioncall>
							<functions>
								<function>
									<type>ejb</type>
									<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
									<functionname>editButton</functionname>
									<resultaction>replace</resultaction>
									<datatype>root</datatype>
									<parameters>
										<parameter>
											<value>[[getDTO]]</value>
											<datatype>java.lang.Object</datatype>
										</parameter>
									</parameters>
								</function>
							</functions>
						</functioncall>
					</button>
					<button>
						<id>btnEdit</id>
						<name>key_edit</name>
						<visibilityconditions>
						'[[getValue,java.lang.String,isEditable]]'=='0' || 
						'[[getAlias,java.lang.String,IS_PROCESS_RUN_DEF_LATEST_VERSION]]'=='0'
						</visibilityconditions>
						<style>TopToolbarItemsDisabled</style>
					</button>
				</elements>
			</component>
			<component>
				<id>cmpDelete</id>
				<name>key_delete</name>
				<visiblemodes>read</visiblemodes>
				<elements>
					<button>
						<id>btnDelete</id>
						<name>key_delete</name>
						<visibilityconditions>
						'[[getValue,java.lang.String,isDeletable]]'!='0' &amp;&amp; 
						'[[getAlias,java.lang.String,IS_PROCESS_RUN_DEF_LATEST_VERSION]]'!='0'
						</visibilityconditions>
						<setmode>read</setmode>
						<refresh>page</refresh>
						<url>page.do?act=summary&amp;xml=processrun/processRunDefinitions</url>
						<functioncall>
							<functions>
								<function>
									<type>ejb</type>
									<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
									<functionname>deleteButton</functionname>
									<datatype>root</datatype>
									<parameters>
										<parameter>
											<value>[[getDTO]]</value>
											<datatype>java.lang.Object</datatype>
										</parameter>
									</parameters>
								</function>
							</functions>
						</functioncall>
					</button>
					<button>
						<id>btnDelete</id>
						<name>key_delete</name>
						<visibilityconditions>
						'[[getValue,java.lang.String,isDeletable]]'=='0' || 
						'[[getAlias,java.lang.String,IS_PROCESS_RUN_DEF_LATEST_VERSION]]'=='0'
						</visibilityconditions>
						<style>TopToolbarItemsDisabled</style>
					</button>
				</elements>
			</component>
			<component>
				<id>cmpSave</id>
				<name>key_save</name>
				<visiblemodes>edit,new</visiblemodes>
				<elements>
					<button>
						<id>btnSave</id>
						<name>key_save</name>
						<setmode>read</setmode>
						<refresh>page</refresh>
						<functioncall>
							<functions>
								<function>
									<type>ejb</type>
									<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
									<functionname>saveButton</functionname>
									<resultaction>replace</resultaction>
									<datatype>root</datatype>
									<parameters>
										<parameter>
											<value>[[getDTO]]</value>
											<datatype>java.lang.Object</datatype>
										</parameter>
									</parameters>
								</function>
							</functions>
						</functioncall>
					</button>
				</elements>
			</component>
			<component>
				<id>cmpCancel</id>
				<name>key_cancel</name>
				<visiblemodes>edit,new</visiblemodes>
				<elements>
					<button>
						<id>btnCancel</id>
						<name>key_cancel</name>
						<setmode>read</setmode>
						<refresh>cancel,page.do?act=summary&amp;xml=rewards/settlementProcessRunDefinitions</refresh>
					</button>
				</elements>
			</component>
			<component>
				<id>cmpActions</id>
				<name>key_actions</name>
				<visiblemodes>read</visiblemodes>
				<elements>
					<menu>
						<id>menuActions</id>
						<name>key_actions</name>
						<visiblemodes>read</visiblemodes>
						<menuitems> 
							<button>
								<id>btnSubmit</id>
								<name>key_submit</name>
								<setmode>read</setmode>
								<visibilityconditions>
								'[[getValue,java.lang.String,processRunDefinition/lifeCycleState]]'=='EFFECTIVE'
								</visibilityconditions>
								<refresh>page</refresh>
								<buttonlook>true</buttonlook> 
								<visiblemodes>read</visiblemodes>
								<functioncall>
									<functions>
										<function>
											<type>ejb</type>
											<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
											<functionname>submitButton</functionname>
											<resultaction>replace</resultaction>
											<datatype>root</datatype>
											<parameters>
												<parameter>
													<value>[[getDTO]]</value>
													<datatype>java.lang.Object</datatype>
												</parameter>
											</parameters>
										</function>
									</functions>
								</functioncall>
							</button>
							<button>
								<id>btnSetAsEffective</id>
								<name>key_set_as_effective</name>
								<setmode>read</setmode>
								<visibilityconditions>
								'[[getValue,java.lang.String,processRunDefinition/lifeCycleState]]'=='NOT_EFFECTIVE'
								</visibilityconditions>
								<refresh>page</refresh>
								<visiblemodes>read</visiblemodes>
								<functioncall>
									<functions>
										<function>
											<type>ejb</type>
											<classname>ejb/CRMUIProcessRunDefinition</classname>
											<functionname>setAsEffective</functionname>
											<resultaction>fieldreplace</resultaction>
											<datapath>processRunDefinition</datapath>
											<parameters>
												<parameter>
													<value>[[getValue,java.lang.String,processRunDefinition]]</value>
													<datatype>java.lang.Object</datatype>
												</parameter>
											</parameters>
										</function>
									</functions>
								</functioncall>
							</button>
							<button>
								<id>btnSetAsNotEffective</id>
								<name>key_set_as_not_effective</name>
								<setmode>read</setmode>
								<visibilityconditions>
								'[[getValue,java.lang.String,processRunDefinition/lifeCycleState]]'=='EFFECTIVE'
								&amp;&amp;
								'[[getAlias,java.lang.String,processRunDefinition/setAsNotEffective]]'!='1'
								
								</visibilityconditions>
								<refresh>page</refresh>
								<visiblemodes>read</visiblemodes>
								<functioncall>
									<functions>
										<function>
											<type>ejb</type>
											<classname>ejb/CRMUIProcessRunDefinition</classname>
											<functionname>setAsNotEffective</functionname>
											<resultaction>fieldreplace</resultaction>
											<datapath>processRunDefinition</datapath>
											<parameters>
												<parameter>
													<value>[[getValue,java.lang.String,processRunDefinition]]</value>
													<datatype>java.lang.Object</datatype>
												</parameter>
											</parameters>
										</function>
									</functions>
								</functioncall>
							</button>
						</menuitems>
					</menu>
				</elements>
			</component>
		</components>
	</mainmenu>
	<main>
		<components>
		
			<component>
				<id>cmpRewardSettlementType</id>
				<name>key_reward_settlement_type</name>
				<elements>
					<selectbox>
						<id>slbRewardSettlementType</id>
						<label>key_reward_settlement_type</label>
						<lookuptype>ejb</lookuptype>
						<datapath>rewardSettlementType</datapath>
						<classname>com.crm.dataobject.rewards.RewardSettlementType</classname>
						<datatype>enum</datatype>
						<reload>true</reload>
						<refresh>page</refresh>
						<onload>
							<type>ejb</type>
							<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
							<functionname>getRewardSettlementTypeOptions</functionname>
						</onload>
						<onchange>
							<functions>
								<function>
									<type>ejb</type>
									<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
									<functionname>resetInputSettings</functionname>
									<resultaction>replace</resultaction>
									<datatype>root</datatype>
									<parameters>
										<parameter>
											<value>[[getDTO]]</value>
											<datatype>java.lang.Object</datatype>
										</parameter>
									</parameters>
								</function>
							</functions>
						</onchange>
						<width>49%</width>
					</selectbox>
				</elements>
			</component>
		
			<component>
				<id>cmpDays</id>
				<name/>
				<elements>
					<textbox>
						<id>txtAmount</id>
						<label>key_customer_event_performed_x_days_ago</label>
						<datapath>daysAgo</datapath>
						<datatype>java.lang.Integer</datatype>
						<width>30%</width>
					</textbox>
				</elements>
			</component>
			
			<component>
				<id>cmpPreviousVersions</id>
				<name>key_view_previous_versions</name>
				<elements>
					<modal>
						<id>mdlPreviousVersions</id>
						<label/> 
						<name>key_view_previous_versions</name>
						<visiblemodes>read</visiblemodes>
						<type>search</type> 
						<refresh>page</refresh>
						<datasetname>processrun.loaddefinitions</datasetname>
						<datasetreturnhiddenfield>PROCESSRUNDEFID</datasetreturnhiddenfield>
						<datatype>alias</datatype>
						<datapath>runDefID</datapath>
						<alwayseditable>true</alwayseditable>
						<filter>
						PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE = '[[getValue,java.lang.String,processRunDefinition/code]]'
						AND PROCESSRUNDEFINITIONS.PROCESSRUNDEFVERSION &lt; [[getValue,java.lang.String,processRunDefinition/version]]
						AND PROCESSRUNDEFINITIONS.PROCESSRUNDEFDELETED = 0
						</filter>
						<assignments>
							<assignment>
								<datapath>runDefID</datapath>
								<value>id</value>
								<datatype>alias</datatype>
							</assignment>
						</assignments>
						<onclosefunction>
							<functions>
								<function>
									<type>ejb</type>
									<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
									<functionname>loadForm</functionname>
									<resultaction>replace</resultaction>
									<datatype>root</datatype>
									<parameters>
										<parameter>
											<value>[[getAlias,java.lang.String,runDefID]]</value>
											<datatype>java.lang.String</datatype>
										</parameter>
									</parameters>
								</function>
							</functions>
						</onclosefunction>
					</modal>
				</elements>
			</component>
			<component>
				<id>cmpCurrentVersion</id>
				<name>key_current_version</name>
				<visibilityconditions>'[[getAlias,java.lang.String,IS_PROCESS_RUN_DEF_LATEST_VERSION]]'=='0'</visibilityconditions>
				<elements>
					<button>
						<id>mdlPreviousVersions</id>
						<label/> 
						<name>key_current_version</name>
						<refresh>page</refresh>
						<functioncall>
							<functions>
								<function>
									<type>ejb</type>
									<classname>ejb/CRMUIRewardSettlementRunDefinition</classname>
									<functionname>loadForm</functionname>
									<resultaction>replace</resultaction>
									<datatype>root</datatype>
									<parameters>
										<parameter>
											<value>[[getAlias,java.lang.String,LATEST_PROCESS_RUN_DEF_ID]]</value>
											<datatype>java.lang.String</datatype>
										</parameter>
									</parameters>
								</function>
							</functions>
						</functioncall>
					</button>
				</elements>
			</component>
			
			<component>
				<id>cmpEmptyLine3</id>
				<visibilityconditions>'[[getAlias,java.lang.String,IS_PROCESS_RUN_DEF_LATEST_VERSION]]'=='1'</visibilityconditions>
				<name>key_empty_line</name>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpEmptyLine4</id>
				<name>key_empty_line</name>
				<visiblemodes>new</visiblemodes>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpSchemesDrilldown</id>
				<name>key_reward_schemes</name>
				<elements>
					<drilldown>
						<id>ddSchemes</id>
						<tabid>tabSchemes</tabid>
					</drilldown>
				</elements>
			</component>
			<component> 
				<id>cmpRewardSettlementRun</id>
				<name>key_reward_settlement_runs</name>
				<elements>
					<summary>
						<id>sumRewardSettlementRun</id>
						<name>key_reward_settlement_runs</name>
						<hidefilters>true</hidefilters>
						<openlinksinmodal>true</openlinksinmodal>
						<autosearch>true</autosearch>
						<showactions>true</showactions>
						<value>rewards/settlementProcessRuns?PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE~[[getValue,java.lang.String,processRunDefinition/code]]</value>
					</summary>
				</elements>
			</component>
			<component>
				<id>cmpSchedulingSettingsSummary</id>
				<name/>
				<elements>
				</elements>
			</component>
			<component>
				<id>cmpEmptyLineRunOn</id>
				<name>key_empty_line</name>
				<visibilityconditions>'[[getValue,java.lang.String,schedulerTask/runmode]]' == '1'</visibilityconditions>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpEmptyLineRepeatDates</id>
				<name>key_empty_line</name>
				<visibilityconditions>'[[getValue,java.lang.String,schedulerTask/runmode]]' == '3'</visibilityconditions>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpEmptyLineRepeatOptions</id>
				<name>key_empty_line</name>
				<visibilityconditions>'[[getValue,java.lang.String,schedulerTask/runmode]]' == '3'</visibilityconditions>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpEmptyLineRepeatEndProcess</id>
				<name>key_empty_line</name>
				<visibilityconditions>'[[getValue,java.lang.String,schedulerTask/runmode]]' == '3'</visibilityconditions>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpEmptyLineRecurrenceStartProcess</id>
				<name>key_empty_line</name>
				<visibilityconditions>'[[getValue,java.lang.String,schedulerTask/runmode]]' == '2'</visibilityconditions>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpEmptyLineRecurrenceRepeatProcess</id>
				<name>key_empty_line</name>
				<visibilityconditions>'[[getValue,java.lang.String,schedulerTask/runmode]]' == '2'</visibilityconditions>
				<elements>
					<emptyline>
					</emptyline>
				</elements>
			</component>
			<component>
				<id>cmpScheduledDate</id>
				<name>key_scheduled_date</name>
				<elements>
					<textbox>
						<id>txtScheduledDate</id>
						<label>key_scheduled_date</label>
						<datapath>processRunDefinition/scheduledDate</datapath>
						<datatype>java.util.Date</datatype>
						<readonly>true</readonly>
					</textbox>
				</elements>
			</component>
		</components>
	</main>
	<details>
		<tabs>
			<tab>
				<id>tabSchemes</id>
				<name>key_reward_schemes</name>
				<datasourcesetkey>schemeCriteria</datasourcesetkey>
				<tabmenu>
					<components>
						<component>
							<visibilityconditions>
							'[[getAlias,java.lang.String,PROCESS_RUN_LOG_ENTRIES_EXIST]]'!='1'
							</visibilityconditions>
							<id>cmpAdd</id>
							<name>key_add</name>
							<visiblemodes>edit,new</visiblemodes>
							<elements>
								<modal>
									<id>mdlAdd</id>
									<name>key_add</name>
									<type>search</type>
									<refresh>tab,tabSchemes</refresh>
									<datasetname>rewards.loadschemes</datasetname>
									<datasetreturnhiddenfield>REWSCHID</datasetreturnhiddenfield>
									<assignments>
										<assignment>
											<datapath>modal</datapath>
											<datatype>alias</datatype>
										</assignment>
									</assignments>
									<onclosefunction>
										<functions>
											<function>
												<type>ejb</type>
												<classname>ejb/CRMUIRewardRunDefinition</classname>
												<functionname>addRewardSchemeCriterionButton</functionname>
												<resultaction>setappend</resultaction>
												<datapath>schemeCriteria</datapath>
												<datasourcesetkey>schemeCriteria</datasourcesetkey>
												<parameters>
													<parameter>
														<value>[[getAlias,java.lang.String,modal]]</value>
														<datatype>java.util.ArrayList</datatype>
													</parameter>
												</parameters>
											</function>
										</functions>
									</onclosefunction>
								</modal>
							</elements>
						</component>
						<component>
							<visibilityconditions>
							'[[getAlias,java.lang.String,PROCESS_RUN_LOG_ENTRIES_EXIST]]'!='1'
							</visibilityconditions>
							<id>cmpRemove</id>
							<name>key_remove</name>
							<visiblemodes>edit,new</visiblemodes>
							<elements>
								<button>
									<id>btnRemove</id>
									<name>key_remove</name>
									<refresh>tab,tabSchemes</refresh>
									<functioncall>
										<functions>
											<function>
												<type>ejb</type>
												<classname>ejb/CRMUIRewardRunDefinition</classname>
												<functionname>removeRewardSchemeCriterionButton</functionname>
												<datasourcesetkey>schemeCriteria</datasourcesetkey>
												<resultaction>setdelete</resultaction>
												<parameters>
													<parameter>
														<value>[[getSelectedDTOs,java.lang.String,schemeCriteria]]</value>
														<datatype>java.lang.Object</datatype>
													</parameter>
												</parameters>
											</function>
										</functions>
									</functioncall>
								</button>
							</elements>
						</component>
					</components>
				</tabmenu>
				<components>
					<component>
						<id>cmpSelect</id>
						<name/>
						<elements>
							<rowselector>
								<id>rowID</id>
								<datapath>id</datapath>
							</rowselector>
						</elements>
					</component>
					<component>
						<id>cmpName</id>
						<name>key_name</name>
						<elements>
							<textbox>
								<id>txtName</id>
								<datapath>scheme/name</datapath>
								<datatype>java.lang.String</datatype>
								<readonly>true</readonly>
							</textbox>
						</elements>
					</component>
					<component>
						<id>cmpAltCode</id>
						<name>key_alternative_code</name>
						<elements>
							<textbox>
								<id>txtAltCode</id>
								<datapath>scheme/altCode</datapath>
								<datatype>java.lang.String</datatype>
								<readonly>true</readonly>
							</textbox>
						</elements>
					</component>
					<component>
						<id>cmpDesc</id>
						<name>key_description</name>
						<elements>
							<textbox>
								<id>txtDesc</id>
								<datapath>scheme/description</datapath>
								<datatype>java.lang.String</datatype>
								<readonly>true</readonly>
							</textbox>
						</elements>
					</component>
				</components>
			</tab>
		</tabs>
	</details>
</page>
Code Block
languagexml
titlesettlementProcessRunDefinitionlayout.xml
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8"?><page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/dataEntryLayout.xsd">
	<mainmenu>
		<components>
			<component><id>cmpHome</id></component>
			<component><id>cmpNew</id></component>
			<component><id>cmpEdit</id></component>
			<component><id>cmpDelete</id></component>
			<component><id>cmpSave</id></component>
			<component><id>cmpCancel</id></component>
			<component><id>cmpActions</id></component>
		</components> 
	</mainmenu>
	<main>
		<view>
			<type>areas</type>
			<screenareas>
				<screenarea>
					<leftscreenarea>
						<sections>
							<section><id>secMainInformation</id></section>
							<section><id>secCriteria</id></section>
							<section><id>secInputSettings</id></section>
							<section><id>secSchedulingSettings</id></section>
							<section><id>secProcessRuns</id></section>
							<section><id>secLogInformation</id></section> 
						</sections>
					</leftscreenarea>
				</screenarea>
			</screenareas>
		</view>
		<sections>
			<section>
				<id>secMainInformation</id>
				<name>key_main_information</name>
				<instruction>key_instruction_rewards_settlement_process_run_definition_sec_main_information</instruction>
				<left>
					<columns>8</columns>
					<components>
						<component>
							<id>file:processrun/name.xml</id>
							<colspan>4</colspan>
						</component>
						<component>
							<id>file:processrun/version.xml</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>cmpPreviousVersions</id>
							<colspan>1</colspan>
						</component>
						<component>
							<id>cmpCurrentVersion</id>
							<colspan>1</colspan>
						</component>
						<component>
							<id>cmpEmptyLine4</id>
							<colspan>1</colspan>
						</component>
						<component>
							<id>cmpEmptyLine3</id>
							<colspan>1</colspan>
						</component>
						<component>
							<id>file:processrun/altCode.xml</id>
							<colspan>4</colspan>
						</component>
						<component>
							<id>file:processrun/description.xml</id>
							<colspan>4</colspan>
							<rowspan>2</rowspan>
						</component>
						<component>
							<id>file:processrun/lifeCycleState.xml</id>
							<colspan>4</colspan>
						</component>
						<component>
							<id>cmpScheduledDate</id>
							<newrow>true</newrow>
							<colspan>4</colspan>
						</component>
					</components>
				</left>
			</section>
			<section>
				<id>secCriteria</id>
				<name>key_criteria</name>
				<subsections>
					<id>secCustomerEvents</id>
					<id>secRewardSchemes</id>
				</subsections>
			</section>
			
			
			<section>
				<id>secCustomerEvents</id>
				<name>key_customer_events</name>	
				<instruction>key_instruction_rewards_settlement_process_run_definition_sec_customer_events</instruction>			
				<left>
					<components>
						<component><id>cmpDays</id></component>
					</components>
				</left>
			</section>
			
			<section>
				<id>secRewardSchemes</id>
				<name>key_reward_schemes</name>	
				<instruction>key_instruction_rewards_settlement_process_run_definition_sec_reward_schemes</instruction>			
				<left>
					<components>
						<component><id>cmpSchemesDrilldown</id></component>
					</components>
				</left>
			</section>
			
			<section>
				<id>secInputSettings</id>
				<name>key_input_settings</name>
				<instruction>key_instruction_rewards_settlement_process_run_definition_sec_input_settings</instruction>
				<left>
					<columns>2</columns>
					<components>
						<component><id>cmpRewardSettlementType</id><colspan>2</colspan></component>
					</components>
				</left>
			</section>
			
			<section>
				<id>secSchedulingSettings</id>
				<name>key_scheduling_settings</name>
				<disable>false</disable>
				<instruction>key_instruction_rewards_settlement_process_run_definition_sec_scheduling_settings</instruction>
				<left>
					<columns>4</columns>
					<components>
						<component>
							<id>file:processrun/schedulerSettings/runMode.xml</id>
							<colspan>4</colspan>
						</component>
						<component>
							<id>cmpSchedulingSettingsSummary</id>
							<colspan>4</colspan>
						</component>
						<component>
							<id>file:processrun/schedulerSettings/runOn.xml</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>cmpEmptyLineRunOn</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>file:processrun/schedulerSettings/repeatStartProcess.xml</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>cmpEmptyLineRepeatDates</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>file:processrun/schedulerSettings/repeatRepeatProcess.xml</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>cmpEmptyLineRepeatOptions</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>file:processrun/schedulerSettings/repeatEndProcess.xml</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>cmpEmptyLineRepeatEndProcess</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>file:processrun/schedulerSettings/recurrenceStartProcess.xml</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>cmpEmptyLineRecurrenceStartProcess</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>file:processrun/schedulerSettings/recurrenceRepeatProcess.xml</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>cmpEmptyLineRecurrenceRepeatProcess</id>
							<colspan>2</colspan>
						</component>
						<component>
							<id>file:processrun/schedulerSettings/recurrenceEndProcess.xml</id>
							<colspan>2</colspan>
						</component>
					</components>
				</left>
			</section>
			<section>
				<id>secProcessRuns</id>
				<name>key_process_runs</name>
				<disable>false</disable>
				<instruction>key_instruction_rewards_settlement_process_run_definition_sec_process_runs</instruction>
				<left>
					<components>
						<component><id>cmpRewardSettlementRun</id></component>
					</components>
				</left>
			</section>
			<section>
				<id>secLogInformation</id>
				<name>key_log_information</name>
				<left>
					<components>
						<component><id>file:processrun/definitionLogInfoGroup.xml</id></component>
					</components>
				</left>
			</section>
		</sections>
	</main>
	<details>
		<tabs>
			<tab>
				<id>tabSchemes</id>
				<preload>true</preload>
				<disable>true</disable>
				<showheader>false</showheader>
				<components>
					<component><id>cmpSelect</id></component>
					<component><id>cmpName</id></component>
					<component><id>cmpAltCode</id></component>
					<component><id>cmpDesc</id></component>
				</components>
			</tab>
		</tabs>
	</details>
</page>

 

 

4. Create User Interface Class

The new user interface class must extend com.crm.process.processrun.CRMUIProcessRunDefinitionBean class.

...