2017-04-06 11:31 AM
I'm wondering if anyone could provide advice or get me pointed in the right direction. I want to have a CIFS Share created on an existing volume that is chosen based on user choices. For example....
I want the user to select location, application, and environment using dropdown menus, like this:
Select location: Hawaii...Ohio.... Texas
Select application: app1...app2....app3.....app4
Select environment: Prod....Test
Then, based on choices, a CIFS share is created. For example, if Ohio, app1, and Test are selected, the share would be created on VolumeX. Other choice combinations would indicate VolumeY or VolumeZ would be used.
I'm not familiar with how to give the user choices from a dropdown menu in WFA. I'm also not sure how to use the combination of choices to determine the volume where the CIFS share would be created.
Anyone worked on an example like this before?
Solved! See The Solution
2017-04-06 01:42 PM
WFA supports two types of dropdown user inputs:
- ENUM - where the wfa-programmer codes a comma separated list of dropdown choice values (Hawaii, Ohio, etc)
- QUERY - where the wfa-programmer provides SQL code to present row-values from a WFA Cache DB dictionary/table (table: location with rows for Hawaii, Ohio, etc)
The first is easist to implement. However, it's not extensible by non-wfa-programmers and once you get a catalog of several workflows that may need this construct you've got to edit each workflow's ENUM choices.
Look into EDM-Pack at the automationstore.netapp.com (or in this forum at: http://nt-ap.com/2nhZ2nl with a UserGuide). It lets you build those sorts of tables (for the UI QUERY fields) by just setting them up as tables in Microsoft Excel. Then in WFA the SQL would be something like "SELECT name,description FROM mycompanies.location" and the dropdown is your table of locations.
How to determine which volume the share points to? ... that could be based on other information in your tables, and/or MVEL expressions like: ( from your example exactly )
( $location == 'Ohio' && $application == 'app1' && $environment == 'test' ) ?VolumeX :VolumeY
Where "( ) ? :" is a WFA MVEL IF-THEN-ELSE construct (== is 'equal test ... && is 'and' ... || is 'or' ... ? is THEN ... : is ELSE). This is a pretty painful way to do it. It would work better if you can embed info (other table columns) in your tables to make it easier to determine the volume but I don't know enough about your business-logic needs to offer more.