FlexDeploy allows configuration of FlexFields for deployment requests. Main features are
- Each FlexField can be setup as specific data type like Boolean, Integer, Double, Float, Long, String. Request form will display input component accrodingly. You can configure List values to render drop down input component.
- Value of FlexField on deploy request form can be defaulted using Groovy script code.
- Supported validations are Required check, Range validation for Number types, Length validation for String data type.
- Custom validation can be done using Groovy script code.
In this example below, I have configured “Change Number” as String type FlexField When you submit deployment request, you will now see Change Number along with other request parameters.
Let’s assume we have some additional requirements for validation of Change Number FlexField. 1) We want to make sure requester provides Change Number for deployment request to Production environment. 2) Change number must be valid in external change management system.
We will rely on Groovy script code to setup these additional validations. Groovy code can return false to indicate validation failure and setup ValidationMessage in script code for display to user. Required check is easy to do in Groovy script code, but for validating against external change management system, we will write Java code which can either make SOAP / REST call or even run database query. Here is Java API code that i have used for simulation of validation failure.
Now let’s prepare Validation Groovy Script to accomplish our requirements.
Let’s try to submit deployment request to Production environment without entering Change Number. As per our Groovy script code, this should cause validation failure.
Now try to submit deployment request to Production environment with Change Number that starts with CR. As per Java API and Groovy script code, this should also cause validation failure.
FlexFields values are also reported on various reports similar to other values associated with deployment workflow executions.