UCSD - Retrieval of LOV entries for switching logic

Version 4
    Task Name

    Example on how to retrieve LOV values and use them in a switching logic

    Description

     

    Prerequisites
    1. Tested on 5.5
    CategoryWorkflow
    ComponentsvSphere 5.x
    User Inputse-mail address
    Outpute-mail with counter

    Instructions for Regular Workflow Use:

    1. Download the attached .ZIP file below to your computer. *Remember the location of the saved file on your computer.
    2. Unzip the file on your computer. Should end up with a .WFD file.
    3. Log in to UCS Director as a user that has "system-admin" privileges.
    4. Navigate to "Policies-->Orchestration" and click on "Import".
    5. Click "Browse" and navigate to the location on your computer where the .WFDX file resides. Choose the .WFDX file and click "Open".
    6. Click "Upload" and then "OK" once the file upload is completed. Then click "Next".
    7. Click the "Select" button next to "Import Workflows". Click the "Check All" button to check all checkboxes and then the "Select" button.
    8. Click "Submit".
    9. A new folder should appear in "Policies-->Orchestration" that contains the imported workflow. You will now need to update the included tasks with information about the specific environment

     

    This LOV retrieval does two things:

         1) it retrieves all values of the LOV and returns a comma separated list.

         2) it can retrieve a single entry out of the LOV entries.

     

     

     

    The workflow:

     

    Screen Shot 2016-08-31 at 9.52.13 AM.png

     

    The LOV that is being retrieved:

    Screen Shot 2016-08-31 at 9.52.42 AM.png

     

    The LOV values:

     

    Screen Shot 2016-08-31 at 9.57.39 AM.png

     

    Workflow Run:

     

    Screen Shot 2016-08-31 at 10.01.04 AM.png

    In the log it found it:

     

    Screen Shot 2016-08-31 at 10.09.53 AM.png

     

    The loop is going though all entries:

     

    1st LOV entry is left:

    Screen Shot 2016-08-31 at 10.01.56 AM.png

     

    2nd LOV entry is right:

    Screen Shot 2016-08-31 at 10.02.30 AM.png

     

    3rd LOV entry is center:

    Screen Shot 2016-08-31 at 10.03.30 AM.png

     

    The custom task code:

     

    mportPackage(com.cloupia.service.cIM.inframgr.customactions);

    importPackage(java.util);

    importPackage(java.lang);

     

     

    var lovName = input.LOV_Name;

    var lovEntryFind = input.LOV_Entry_Find;

    logger.addInfo("Looking for LOV entry: "+lovEntryFind);

     

     

    logger.addInfo("LOV input name1: "+lovName);

    lovName = "custom_provider_"+lovName;

    logger.addInfo("LOV input name2: "+lovName);

     

     

     

     

    //var listOfCustomLOV = CustomActionUtil.getWFCustomLovPairs("custom_provider_vmtags");

    var listOfCustomLOV = CustomActionUtil.getWFCustomLovPairs(lovName);

     

     

    var a="";

    var b="";

    //

    //Loop though all lines except the last one

    //

    for(var count = 0;count<listOfCustomLOV.size()-1;count++) {

      logger.addInfo(listOfCustomLOV.get(count).getLovLabel()+":"+listOfCustomLOV.get(count).getLovValue());

      if (listOfCustomLOV.get(count).getLovLabel() == lovEntryFind) {

      logger.addInfo("Found the entry returning this: "+listOfCustomLOV.get(count).getLovValue());

      b=listOfCustomLOV.get(count).getLovValue();

      }

      a=a+listOfCustomLOV.get(count).getLovValue()+",";

     

     

    }

     

     

     

    The workflow run log:

     

    Service Request ID: 7930

    Workflow Inputs:

    - LOVselector

    - LOOPvar

     

     

     

     

    Aug 31, 2016 14:44:23 UTC Request submitted

    Aug 31, 2016 14:44:24 UTC Executing workflow item number 1

    Aug 31, 2016 14:44:24 UTC Completed workflow item number 1, with status Completed

    Aug 31, 2016 14:44:28 UTC Executing workflow item number 2

    Aug 31, 2016 14:44:28 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:44:28 UTC Executing custom action Retrive_LOV_Values_v1 (custom_Retrieve_LOV_Values)

    Aug 31, 2016 14:44:28 UTC Executing custom action Retrive_LOV_Values_v1 (custom_Retrieve_LOV_Values)

    Aug 31, 2016 14:44:28 UTC Executing custom script for Retrieve_LOV_Values

    Aug 31, 2016 14:44:31 UTC Looking for LOV entry: center

    Aug 31, 2016 14:44:31 UTC LOV input name1: K1

    Aug 31, 2016 14:44:31 UTC LOV input name2: custom_provider_K1

    Aug 31, 2016 14:44:31 UTC left:left

    Aug 31, 2016 14:44:31 UTC right:right

    Aug 31, 2016 14:44:31 UTC LOV output list: left,right,center

    Aug 31, 2016 14:44:31 UTC Count: 3

    Aug 31, 2016 14:44:31 UTC Found the entry returning this: center

    Aug 31, 2016 14:44:31 UTC Processing output: LOV_Value

    Aug 31, 2016 14:44:32 UTC Processing output: LOV_Found_Entry_Value

    Aug 31, 2016 14:44:33 UTC Task #2 (Retrive_LOV_Values_v1 (custom_Retrieve_LOV_Values)) completed successfully in 5 seconds

    Aug 31, 2016 14:44:33 UTC Input/Output values for Task #2 (Retrive_LOV_Values_v1 (custom_Retrieve_LOV_Values)):

    Aug 31, 2016 14:44:33 UTC [Local Input: LOV_Name = K1]

    Aug 31, 2016 14:44:33 UTC [Mapped Input: LOV_Entry_Find = center]

    Aug 31, 2016 14:44:33 UTC [Output: LOV_Value = left,right,center]

    Aug 31, 2016 14:44:33 UTC [Output: LOV_Found_Entry_Value = center]

    Aug 31, 2016 14:44:33 UTC Completed workflow item number 2, with status Completed

    Aug 31, 2016 14:44:38 UTC Executing workflow item number 3

    Aug 31, 2016 14:44:38 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:44:38 UTC Executing custom action Retrive_LOV_Values_v1 (Start Loop)

    Aug 31, 2016 14:44:38 UTC Executing custom action Retrive_LOV_Values_v1 (Start Loop)

    Aug 31, 2016 14:44:41 UTC Start While task execution iteration no - 1

    Aug 31, 2016 14:44:44 UTC Task #3 (Retrive_LOV_Values_v1 (Start Loop)) completed successfully in 6 seconds

    Aug 31, 2016 14:44:44 UTC Input/Output values for Task #3 (Retrive_LOV_Values_v1 (Start Loop)):

    Aug 31, 2016 14:44:44 UTC [Local Input: List based iteration = true]

    Aug 31, 2016 14:44:44 UTC [Mapped Input: Input for list based iteration = left,right,center]

    Aug 31, 2016 14:44:44 UTC [Local Input: User Input to assign iterated values = input_1_LOOPvar780]

    Aug 31, 2016 14:44:44 UTC [Local Input: Count based iteration = false]

    Aug 31, 2016 14:44:44 UTC [Local Input: Number of times to loop = ]

    Aug 31, 2016 14:44:44 UTC [Output: START_LOOP_OUTPUT = left]

    Aug 31, 2016 14:44:44 UTC Completed workflow item number 3, with status Completed

    Aug 31, 2016 14:44:44 UTC Executing workflow item number 4

    Aug 31, 2016 14:44:44 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:44:44 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:44:44 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:44:47 UTC Condition evaluated to True; subsequent Task is Wait for Duration

    Aug 31, 2016 14:44:47 UTC Re-evaluting the flow to execute next task based on the condition providedIfElse_12043

    Aug 31, 2016 14:44:47 UTC Completed workflow item number 4, with status Completed

    Aug 31, 2016 14:44:52 UTC Executing workflow item number 5

    Aug 31, 2016 14:44:52 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:44:52 UTC Executing custom action Retrive_LOV_Values_v1 (Wait for Duration)

    Aug 31, 2016 14:44:52 UTC Executing custom action Retrive_LOV_Values_v1 (Wait for Duration)

    Aug 31, 2016 14:44:55 UTC Waiting 10 seconds

    Aug 31, 2016 14:45:05 UTC Completed waiting 10 seconds

    Aug 31, 2016 14:45:05 UTC Task #5 (Retrive_LOV_Values_v1 (Wait for Duration)) completed successfully in 13 seconds

    Aug 31, 2016 14:45:05 UTC Input/Output values for Task #5 (Retrive_LOV_Values_v1 (Wait for Duration)):

    Aug 31, 2016 14:45:05 UTC [Local Input: Duration = 10]

    Aug 31, 2016 14:45:05 UTC Completed workflow item number 5, with status Completed

    Aug 31, 2016 14:45:05 UTC Executing workflow item number 6

    Aug 31, 2016 14:45:05 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:45:05 UTC Executing custom action Retrive_LOV_Values_v1 (End Loop)

    Aug 31, 2016 14:45:05 UTC Executing custom action Retrive_LOV_Values_v1 (End Loop)

    Aug 31, 2016 14:45:08 UTC End While task execution iteration no - 1

    Aug 31, 2016 14:45:09 UTC Task #6 (Retrive_LOV_Values_v1 (End Loop)) completed successfully in 3 seconds

    Aug 31, 2016 14:45:09 UTC Input/Output values for Task #6 (Retrive_LOV_Values_v1 (End Loop)):

    Aug 31, 2016 14:45:09 UTC Completed workflow item number 6, with status Completed

    Aug 31, 2016 14:45:09 UTC Executing workflow item number 3

    Aug 31, 2016 14:45:09 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:45:09 UTC Executing custom action Retrive_LOV_Values_v1 (Start Loop)

    Aug 31, 2016 14:45:09 UTC Executing custom action Retrive_LOV_Values_v1 (Start Loop)

    Aug 31, 2016 14:45:12 UTC Start While task execution iteration no - 2

    Aug 31, 2016 14:45:15 UTC Task #3 (Retrive_LOV_Values_v1 (Start Loop)) completed successfully in 6 seconds

    Aug 31, 2016 14:45:15 UTC Input/Output values for Task #3 (Retrive_LOV_Values_v1 (Start Loop)):

    Aug 31, 2016 14:45:15 UTC [Local Input: List based iteration = true]

    Aug 31, 2016 14:45:15 UTC [Mapped Input: Input for list based iteration = left,right,center]

    Aug 31, 2016 14:45:15 UTC [Local Input: User Input to assign iterated values = input_1_LOOPvar780]

    Aug 31, 2016 14:45:15 UTC [Local Input: Count based iteration = false]

    Aug 31, 2016 14:45:15 UTC [Local Input: Number of times to loop = ]

    Aug 31, 2016 14:45:15 UTC [Output: START_LOOP_OUTPUT = right]

    Aug 31, 2016 14:45:15 UTC Completed workflow item number 3, with status Completed

    Aug 31, 2016 14:45:19 UTC Executing workflow item number 4

    Aug 31, 2016 14:45:19 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:45:19 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:45:19 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:45:22 UTC Condition evaluated to False; subsequent Task is If Else

    Aug 31, 2016 14:45:22 UTC Re-evaluting the flow to execute next task based on the condition providedIfElse_12043

    Aug 31, 2016 14:45:22 UTC Completed workflow item number 4, with status Completed

    Aug 31, 2016 14:45:26 UTC Executing workflow item number 5

    Aug 31, 2016 14:45:26 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:45:26 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:45:26 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:45:29 UTC Condition evaluated to True; subsequent Task is Wait for Duration

    Aug 31, 2016 14:45:29 UTC Re-evaluting the flow to execute next task based on the condition providedIfElse_12045

    Aug 31, 2016 14:45:29 UTC Completed workflow item number 5, with status Completed

    Aug 31, 2016 14:45:33 UTC Executing workflow item number 6

    Aug 31, 2016 14:45:33 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:45:33 UTC Executing custom action Retrive_LOV_Values_v1 (Wait for Duration)

    Aug 31, 2016 14:45:33 UTC Executing custom action Retrive_LOV_Values_v1 (Wait for Duration)

    Aug 31, 2016 14:45:36 UTC Waiting 10 seconds

    Aug 31, 2016 14:45:46 UTC Completed waiting 10 seconds

    Aug 31, 2016 14:45:46 UTC Task #6 (Retrive_LOV_Values_v1 (Wait for Duration)) completed successfully in 13 seconds

    Aug 31, 2016 14:45:46 UTC Input/Output values for Task #6 (Retrive_LOV_Values_v1 (Wait for Duration)):

    Aug 31, 2016 14:45:46 UTC [Local Input: Duration = 10]

    Aug 31, 2016 14:45:46 UTC Completed workflow item number 6, with status Completed

    Aug 31, 2016 14:45:50 UTC Executing workflow item number 7

    Aug 31, 2016 14:45:50 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:45:50 UTC Executing custom action Retrive_LOV_Values_v1 (End Loop)

    Aug 31, 2016 14:45:50 UTC Executing custom action Retrive_LOV_Values_v1 (End Loop)

    Aug 31, 2016 14:45:53 UTC End While task execution iteration no - 2

    Aug 31, 2016 14:45:54 UTC Task #7 (Retrive_LOV_Values_v1 (End Loop)) completed successfully in 3 seconds

    Aug 31, 2016 14:45:54 UTC Input/Output values for Task #7 (Retrive_LOV_Values_v1 (End Loop)):

    Aug 31, 2016 14:45:54 UTC Completed workflow item number 7, with status Completed

    Aug 31, 2016 14:46:00 UTC Executing workflow item number 3

    Aug 31, 2016 14:46:00 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:46:00 UTC Executing custom action Retrive_LOV_Values_v1 (Start Loop)

    Aug 31, 2016 14:46:00 UTC Executing custom action Retrive_LOV_Values_v1 (Start Loop)

    Aug 31, 2016 14:46:03 UTC Start While task execution iteration no - 3

    Aug 31, 2016 14:46:06 UTC Task #3 (Retrive_LOV_Values_v1 (Start Loop)) completed successfully in 6 seconds

    Aug 31, 2016 14:46:06 UTC Input/Output values for Task #3 (Retrive_LOV_Values_v1 (Start Loop)):

    Aug 31, 2016 14:46:06 UTC [Local Input: List based iteration = true]

    Aug 31, 2016 14:46:06 UTC [Mapped Input: Input for list based iteration = left,right,center]

    Aug 31, 2016 14:46:06 UTC [Local Input: User Input to assign iterated values = input_1_LOOPvar780]

    Aug 31, 2016 14:46:06 UTC [Local Input: Count based iteration = false]

    Aug 31, 2016 14:46:06 UTC [Local Input: Number of times to loop = ]

    Aug 31, 2016 14:46:06 UTC [Output: START_LOOP_OUTPUT = center]

    Aug 31, 2016 14:46:06 UTC Completed workflow item number 3, with status Completed

    Aug 31, 2016 14:46:07 UTC Executing workflow item number 4

    Aug 31, 2016 14:46:07 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:46:07 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:46:07 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:46:11 UTC Condition evaluated to False; subsequent Task is If Else

    Aug 31, 2016 14:46:11 UTC Re-evaluting the flow to execute next task based on the condition providedIfElse_12043

    Aug 31, 2016 14:46:11 UTC Completed workflow item number 4, with status Completed

    Aug 31, 2016 14:46:14 UTC Executing workflow item number 5

    Aug 31, 2016 14:46:14 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:46:14 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:46:14 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:46:17 UTC Condition evaluated to False; subsequent Task is If Else

    Aug 31, 2016 14:46:17 UTC Re-evaluting the flow to execute next task based on the condition providedIfElse_12045

    Aug 31, 2016 14:46:17 UTC Completed workflow item number 5, with status Completed

    Aug 31, 2016 14:46:21 UTC Executing workflow item number 6

    Aug 31, 2016 14:46:21 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:46:21 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:46:21 UTC Executing custom action Retrive_LOV_Values_v1 (If Else)

    Aug 31, 2016 14:46:24 UTC Condition evaluated to True; subsequent Task is Wait for Duration

    Aug 31, 2016 14:46:24 UTC Re-evaluting the flow to execute next task based on the condition providedIfElse_12047

    Aug 31, 2016 14:46:24 UTC Completed workflow item number 6, with status Completed

    Aug 31, 2016 14:46:27 UTC Executing workflow item number 7

    Aug 31, 2016 14:46:28 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:46:28 UTC Executing custom action Retrive_LOV_Values_v1 (Wait for Duration)

    Aug 31, 2016 14:46:28 UTC Executing custom action Retrive_LOV_Values_v1 (Wait for Duration)

    Aug 31, 2016 14:46:31 UTC Waiting 10 seconds

    Aug 31, 2016 14:46:41 UTC Completed waiting 10 seconds

    Aug 31, 2016 14:46:41 UTC Task #7 (Retrive_LOV_Values_v1 (Wait for Duration)) completed successfully in 13 seconds

    Aug 31, 2016 14:46:41 UTC Input/Output values for Task #7 (Retrive_LOV_Values_v1 (Wait for Duration)):

    Aug 31, 2016 14:46:41 UTC [Local Input: Duration = 10]

    Aug 31, 2016 14:46:41 UTC Completed workflow item number 7, with status Completed

    Aug 31, 2016 14:46:41 UTC Executing workflow item number 8

    Aug 31, 2016 14:46:41 UTC Trigger context executeWorkFlowStep called

    Aug 31, 2016 14:46:41 UTC Executing custom action Retrive_LOV_Values_v1 (End Loop)

    Aug 31, 2016 14:46:41 UTC Executing custom action Retrive_LOV_Values_v1 (End Loop)

    Aug 31, 2016 14:46:44 UTC End While task execution iteration no - 3

    Aug 31, 2016 14:46:45 UTC Task #8 (Retrive_LOV_Values_v1 (End Loop)) completed successfully in 3 seconds

    Aug 31, 2016 14:46:45 UTC Input/Output values for Task #8 (Retrive_LOV_Values_v1 (End Loop)):

    Aug 31, 2016 14:46:45 UTC Completed workflow item number 8, with status Completed

    Aug 31, 2016 14:46:48 UTC Executing workflow item number 9

    Aug 31, 2016 14:46:48 UTC Completed workflow item number 9, with status Completed

    // handle the last item and the seperator

    a=a+listOfCustomLOV.get(count++).getLovValue();

    logger.addInfo("LOV output list: "+a);

    logger.addInfo("Count: "+count);

    // Count needs to be reduced by one

    count--;

    if (listOfCustomLOV.get(count).getLovLabel() == lovEntryFind) {

      logger.addInfo("Found the entry returning this: "+listOfCustomLOV.get(count).getLovValue());

      b=listOfCustomLOV.get(count).getLovValue();

    }

     

     

    output.LOV_Value = a;

    output.LOV_Found_Entry_Value = b;