Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
tutorial:hybrid_model [2020/12/31 03:02]
admin [Generate Test Cases]
tutorial:hybrid_model [2020/12/31 17:32]
admin [Tutorial: Combined Hybrid Model]
Line 3: Line 3:
 Learning Objectives: Learning Objectives:
   * Differences between state model and combinatorial model   * Differences between state model and combinatorial model
-  * Hybrid model+  * Hybrid model (embedding combinatorial model in state model)
  
  
Line 162: Line 162:
 To write a line of script in TRIGGER for transition "CheckOut", select script context menu for transition "CheckOut": To write a line of script in TRIGGER for transition "CheckOut", select script context menu for transition "CheckOut":
  
-{{wiki:overview:tut_DataSet_menuTransScript.png?200}}+{{wiki:overview:tut_DataSet_menuTransScript.png?250}}
  
 IDE should navigate to //SCRIPT// tab.  Since the TRIGGER for transition "CheckOut" has not been created, you will be prompted to create it: IDE should navigate to //SCRIPT// tab.  Since the TRIGGER for transition "CheckOut" has not been created, you will be prompted to create it:
  
-{{wiki:overview:tut_DataSet_ScriptAddDialog.png?200}}+{{wiki:overview:tut_DataSet_ScriptAddDialog.png?500}}
  
 Click "OK" to create the skeleton TRIGGER script for the transition: Click "OK" to create the skeleton TRIGGER script for the transition:
  
-{{wiki:overview:tut_DataSet_AddTrigger.png?200}}+{{wiki:overview:tut_DataSet_ScriptCheckOut.png?500}} 
 + 
 +Alternatively you can add the skeleton TRIGGER script for the transition by pressing Ctrl-I while your cursor is placed on a blank line in //SCRIPT// tab and select transition "CheckOut": 
 + 
 +{{wiki:overview:tut_DataSet_AddTrigger.png?100}} 
 + 
  
 TRIGGER script is just a //groovy// function, go ahead and add two lines of scripts as show below: TRIGGER script is just a //groovy// function, go ahead and add two lines of scripts as show below:
  
-{{wiki:overview:tut_DataSet_ScriptCheckOut.png?200}}+{{wiki:overview:tut_DataSet_TriggerCheckOut.png?500}} 
  
 The "log" scripts above prints the current row of the data set and "Payment Type" and "CardNum" to //Script Log//. The "log" scripts above prints the current row of the data set and "Payment Type" and "CardNum" to //Script Log//.
  
-Save the changes and run the model again, and examine //Script Log// by clicking on the script log button in //RESULT// tab: +Save the changes and run the model again. Examine //Script Log// (click on the script log button {{wiki:overview:tut_DataSet_ScriptLogBtn.png?50}} in //RESULT// tab):
- +
-{{wiki:overview:tut_DataSet_ScriptLogBtn.png?200}}+
  
 Below is the first few lines from the script log: Below is the first few lines from the script log:
Line 215: Line 220:
 ==== Loop through Data Set ==== ==== Loop through Data Set ====
  
 +The data set can also be looped programmatically by scripting as follows:
 +   dataset = $SYS.getDataSet('PaymentOptions');
 +   
 +   // rewind dataset to first row
 +   dataset.rewind();
 +   
 +   // retrieve data
 +   paymentType = dataset.getData('PaymentType');
 +   
 +   // advance to next row, if rowIdx == 0, all rows exhausted
 +   rowIdx = dataset.nextRow();
  
 +Please note that the data set being looped programmatically as above can not be attached to the transition at the same time.