Versions Compared

Key

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

...

Code Block
themeEclipse
languagejava
titleRewardSettlementRunDefinition.java
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;
	}

Create Summary Pages

In the following steps, five Five new summary pages need to be implemented in order to have a complete image of a give the user all the necessary information about the process run definition screen, thus the image below illustrates the run definition summary page. The main summary page includes other four, starting from the first , its runs, and their results.

Process Run Definition Summary Page

The first summary page to create is the process run definition summary page, which is shown in the process runs drill-own. This drill-down also includes another two summary pages for successful and failed entries accordingly and lastly one summary page for the previous versions, as we can see. 

 

...

titleSummary Page

...

the main summary page that will display all the process run definition records.

Ui expand
titleRewards Settlements Process Run Definition Summary Page
Code Block
languagexml
titlesettlementProcessRunDefinitions.xml
<?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'
		AND PROCESSRUNDEFINITIONS.PROCESSRUNDEFVERSION = (
			SELECT MAX(PRD.PROCESSRUNDEFVERSION) FROM PROCESSRUNDEFINITIONS PRD
			WHERE PRD.PROCESSRUNDEFUNIFIEDCODE = PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE
		)
	</sql>
	<rowsperpage>20</rowsperpage>
	<primaryfield>PROCESSRUNDEFINITIONS.PROCESSRUNDEFID</primaryfield>
	<mainlinkfield>PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE</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>PROCRUNDEFCREATEDDATE_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>PROCRUNDEFUPDATEDDATE_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>
		<field>
			<fieldname>PREVIOUSVERSION_DD</fieldname>
			<fieldfunction>''</fieldfunction>
			<caption>key_previous_version</caption>
			<summary>true</summary>
			<fieldtype>label</fieldtype>
			<label>key_previous_version</label>
			<link>drilldown:rewards/settlementProcessRunDefinitionsVersions;hidefilters~true~PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE~((PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE))~PROCESSRUNDEFINITIONS.PROCESSRUNDEFID~((PROCESSRUNDEFINITIONS.PROCESSRUNDEFID))</link>
		</field>
	</fieldlist>
	<actions>
		<action>
			<caption>key_new</caption>
			<topmenu>true</topmenu>
			<link>page.do?xml=rewards/settlementProcessRunDefinition&amp;act=new&amp;jndi=ejb/CRMUIRewardSettlementRunDefinition&amp;fc=createButton</link>
		</action>
	</actions>
</summary>

Image Added

 

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.

Process Runs Drilldown Summary Page

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

Ui expand
titleRewards Settlements Process Runs Summary Page
Code Block
languagexml
titlesettlementProcessRuns.xml
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_reward_settlement_process_runs</title>
	<sql>	
		FROM PROCESSRUNLOG
		INNER JOIN PROCESSRUNDEFINITIONS ON PROCESSRUNDEFINITIONS.PROCESSRUNDEFID = PROCESSRUNLOG.PROCESSRUNDEFID
		LEFT JOIN USERS CREATEDBY ON CREATEDBY.USERID = PROCESSRUNLOG.PROCESSRUNLOGCREATEDBYUSERID
		LEFT JOIN USERS UPDATEDBY ON UPDATEDBY.USERID = PROCESSRUNLOG.PROCESSRUNLOGUPDATEDBYUSERID
		LEFT JOIN OUUNITS CREATEDBYUNIT ON CREATEDBYUNIT.OUUID = PROCESSRUNLOG.PROCESSRUNLOGCREATEDBYOUUID
		LEFT JOIN OUUNITS UPDATEDBYUNIT ON UPDATEDBYUNIT.OUUID = PROCESSRUNLOG.PROCESSRUNLOGUPDATEDBYOUUID
		WHERE   PROCESSRUNLOGDELETED = 0 
	</sql>
	<rowsperpage>20</rowsperpage>
	<primaryfield>PROCESSRUNLOG.PROCESSRUNLOGID</primaryfield>
	<mainlinkfield>PROCESSRUNLOG.PROCESSRUNLOGNUM</mainlinkfield>
	<orderbyfields>PROCESSRUNLOG.PROCESSRUNLOGSTARTDATE DESC</orderbyfields>
	<multiselect>true</multiselect>
	<module>REWARDS</module>
	
	<fieldlist>
		<!-- external filters -->
		<field>
			<fieldname>PROCESSRUNLOG.PROCESSRUNLOGID</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<field>
			<fieldname>PROCESSRUNDEFINITIONS.PROCESSRUNDEFUNIFIEDCODE</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<field>
			<fieldname>PROCESSRUNLOG.PROCESSRUNDEFID</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<field>
			<fieldname>PROCESSRUNLOG.MODULEID</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<field>
			<fieldname>PROCESSRUNLOG.PROCESSID</fieldname>
			<filtertextoption>equal</filtertextoption>
		</field>
		<!-- fields -->
		<field>
			<fieldname>PROCESSRUNLOG.PROCESSRUNLOGNUM</fieldname>
			<caption>key_number</caption>
			<summary>true</summary>
		</field>
		<field>
			<fieldname>PROCESS_DEF_VER</fieldname>
			<fieldfunction>PROCESSRUNDEFINITIONS.PROCESSRUNDEFVERSION</fieldfunction>
			<caption>key_version</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>PROCESSRUNLOGSTATUS</fieldname>
			<fieldfunction>PROCESSRUNLOG.PROCESSRUNLOGSTATUS</fieldfunction>
			<caption>key_life_cycle_state</caption>
			<summary>true</summary>
			<fixedlookup>ejb/CRMUIProcessRunLog.getStatusOptions:key_n/a</fixedlookup>
		</field>
		
		<field>
			<fieldname>PROCESSRUNLOG.PROCESSRUNLOGSTARTDATE</fieldname>
			<caption>key_start_date</caption>
			<summary>true</summary>
            <fieldtype>date</fieldtype>
		</field>
		<field>
			<fieldname>PROCESSRUNLOG.PROCESSRUNLOGENDDATE</fieldname>
			<caption>key_end_date</caption>
			<summary>true</summary>
			<fieldtype>date</fieldtype>
		</field>
		<field>
			<fieldname>PROCESSRUNLOGSTATUS_FILTER</fieldname>
			<fieldfunction>PROCESSRUNLOG.PROCESSRUNLOGSTATUS</fieldfunction>
			<caption>key_status</caption>
			<filter>true</filter>
			<fixedlookup>ejb/CRMUIProcessRunLog.getStatusOptions:key_all</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>PROCESSRUNLOG.PROCESSRUNLOGCREATEDDATE</fieldname>
			<caption>key_date_created</caption>
			<expand>true</expand>
			<fieldtype>date</fieldtype>
		</field>
		<field>
			<fieldname>PROCESSRUNLOG.PROCESSRUNLOGUPDATEDDATE</fieldname>
			<caption>key_date_updated</caption>
			<expand>true</expand>
			<fieldtype>date</fieldtype>
		</field>
		
		<!-- drilldowns -->
		<field>
			<fieldname>PROCESSSUCCESSFULLY_DD</fieldname>
			<fieldfunction>''</fieldfunction>
			<caption>key_process_successfully</caption>
			<summary>true</summary>
			<fieldtype>label</fieldtype>
			<label>key_view</label>
			<link>drilldown:rewards/settlementProcessRuns_successfulentries;hidefilters~true~PROCESSRUNENTITYLOG.PROCESSRUNLOGID~((PROCESSRUNLOG.PROCESSRUNLOGID))</link>
		</field>
		<field>
			<fieldname>PROCESSWITHERRORS_DD</fieldname>
			<fieldfunction>''</fieldfunction>
			<caption>key_processed_with_errors</caption>
			<summary>true</summary>
			<fieldtype>label</fieldtype>
			<label>key_view</label>
			<link>drilldown:rewards/settlementProcessRuns_failedentries;hidefilters~true~PROCESSRUNENTITYLOG.PROCESSRUNLOGID~((PROCESSRUNLOG.PROCESSRUNLOGID))~PROCESSRUNENTITYSTATUS~FAILED</link>
		</field>
	</fieldlist>
	<actions>
		<action>
			<caption>key_delete</caption>
			<modal>true</modal>
			<link>javascript:displayModalCreateAndRefreshWhenDone(
				'processrun/deleteProcessRunLogForm',
				'ejb/CRMUIProcessRunLog',
				'loadDeleteProcessRunLogForm',
				'java.util.ArrayList@[[SummaryComponent_((component))]]',
				'edit',
				null,
				'processrun/processRunLogs',
				getPageId()
			)</link>
		</action>
	</actions>
</summary>

Image Added

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.

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
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>

Image Added

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
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>

Image Added

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
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>

Image Added

 

 

In this case, a UI class have to implement as well, extending the CRMUIProcessRunDefinitionBean. Also, module id and process id, must be defined in the UI as they declared in the module.xml file. To implement the basic functionality, we will need to create the following methods: createButton, loadForm, editButton, saveButton, submitButton, deleteButton and amendButton, as demonstrated below:

...