Appboard/2.4/builder/data processing scripts
Revision as of 04:11, 3 September 2013 by imported>Mike.berman
Data Processing Script is a tool for customizing Data Sources in AppBoard to meet specific needs of a customer solution. By inserting Groovy script into the data processing, AppBoard can process the data according to a set of coded instructions. This allows data to be manipulated or pre-processed while passing between the raw back-end data source and AppBoard.
Applying a Data Processing Script
- Open the AppBoard Builder and click on "Data Sources"
- Select the data source to be affected and click the "Edit" button
- Advance through the data source wizard to the "explore" stage
- Select the table you want to transform and then click the "Advanced" button
- Configure the Data Processing Script
- Input the path name of the script
- Typically Data Processing Script are kept in the following directory: ${appboard_server}/webapps/enportal/WEB-INF/groovy-script
- Set the priority (default 10)
- Priority is only important if you have multiple scripts active
- Set script to run on "Response" or "Refresh"
- Response (called every time the client requests)
- Example when to use: performing a join or status determination by requesting data from another dataset
- Refresh (called only when data is fetched from source)
- Example when to use: substringing a value
- Response (called every time the client requests)
- Input the path name of the script
- Click through the wizard to finish
- View the appropriate data collection (re-query if necessary) to see if data is being updated
Data Processing Script Example
TrimSiteCode.groovy
import com.edgetech.services.ServiceRequestFacade import com.edgetech.services.ServiceResponseFacade import com.edgetech.services.GenericRecord import com.edgetech.services.Association import com.edgetech.services.impl.ServiceRequestHelper import java.util.Collection; import java.util.List; import java.util.ArrayList; import java.util.Iterator; // trim extra whitespace and concatenate two fields into a new one ServiceResponseFacade serviceResponse = responseFacade; ServiceRequestFacade serviceRequest = requestFacade; Collection recordsToClean = serviceResponse.getOrderedGenericRecords(); if ( ( recordsToClean != null ) && !recordsToClean.isEmpty() ) { for ( GenericRecord recordToClean:recordsToClean ) { String siteCode = recordToClean.getAttributeValueAsString("SITE_CODE"); if ( siteCode != null ) { recordToClean.setAttributeValue("SITE_CODE", siteCode.trim()); String stateCode = recordToClean.getAttributeValueAsString("STATE"); if ( stateCode != null ) { recordToClean.setAttributeValue("SITE_CODE2", siteCode.trim() + stateCode.trim()); } } String region = recordToClean.getAttributeValueAsString("REGION"); if ( region != null ) { recordToClean.setAttributeValue("REGION", region.trim()); } } }