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
tutorial:hybrid_model [2020/12/31 03:02]
admin [Generate Test Cases]
tutorial:hybrid_model [2021/01/05 03:00] (current)
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 163:
 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//. 
  
-Save the changes and run the model again, and examine //Script Log// by clicking on the script log button in //RESULT// tab:+The "log" scripts above prints the current row of the data set and "Payment Type" and "CardNum" to //Script Log//.
  
-{{wiki:overview:tut_DataSet_ScriptLogBtn.png?200}}+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):
  
 Below is the first few lines from the script log: Below is the first few lines from the script log:
Line 215: Line 221:
 ==== 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.