Appboard/2.4/builder/data processing scripts: Difference between revisions
imported>Mike.berman (create page for AppBoard 2.4) |
imported>Mike.berman No edit summary |
||
| Line 10: | Line 10: | ||
#Configure the Data Processing Script | #Configure the Data Processing Script | ||
##Input the path name of the 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) | ##Set the priority (default 10) | ||
## | ##*Priority is only important if you have multiple scripts active | ||
##Set script to run on "Response" or "Refresh" | ##Set script to run on "Response" or "Refresh" | ||
###Response (called every time the client requests) | ###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) | ###Refresh (called only when data is fetched from source) | ||
### | ###*Example when to use: substringing a value | ||
#Click through the wizard to finish | #Click through the wizard to finish | ||
#View the appropriate data collection (re-query if necessary) to see if data is being updated | #View the appropriate data collection (re-query if necessary) to see if data is being updated | ||
Revision as of 04:11, 3 September 2013
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());
}
}
}