{{ transformations:SkipOnConditionAction.png}}
====== SKIP ACTIONS ON CONDITION ======
Category: Workflow / Internal \\

\\ 
=====Description=====
This action skips the next action or the rest of the actions in the table if the specified condition is not fulfilled.\\

\\
=====Use cases=====
Provides a simpler way to arrange conditional workflows by avoiding unnecessary actions based on a condition.

\\ 
=====Action settings=====
^Setting^Description^
|Skip mode|Choose which subsequent actions are skipped.  Options: //Skip the rest of the actions in the table// or //Skip only the next action//.|
|Skip the actions if|Select the condition under which the remaining actions in the table are skipped.  See table below.\\  Options:  //Skip if table is empty//, //Skip if table is NOT empty//, //Skip if the condition is true for EVERY row//, or\\ //Skip if the condition is true for ANY row//.|
|If actions are skipped,\\ the final dataset is|In cases when actions are skipped, select what to use for the final dataset.  Options:  //The output of the\\ last calculated action// or //Empty//.|
\\
====Skip modes====
^Mode ^Description ^
|Skip the rest of the actions in the table|The rest of the actions in the table, after the //Skip...// action, are skipped.|
|Skip only the next action|Only the next action after the //Skip...// action is skipped.|
\\ 
====Skip conditions====
^Condition ^Description ^
|The table is empty|This option skips the remaining actions in the table if the dataset is empty at the point of the Skip action.|
|The table is NOT empty|This option skips the remaining actions in the table if the dataset is NOT empty at the point of the Skip action.|
|The condition is true for EVERY row|This option skips the remaining actions in the table if the entered condition evaluates to TRUE for every row in the dataset at the time of the Skip action.|
|The condition is true for ANY row|This option skips the remaining actions in the table if the entered condition evaluates to TRUE for any row in the dataset at the time of the Skip action.|

For either of the last two "The condition is true..." options, select how EasyMorph will react //if the condition refers to a field, but the table has no rows// (e.g. data) at the time of the Skip action.  Options:  //Skip anyway// or //Do NOT skip//.\\

\\ 
=====Examples=====
In the table below, with the Skip mode set to //Skip the rest of the actions in the table//, the condition of the //Skip on condition// action is not fulfilled (evaluates to FALSE), therefore the following actions have been executed and their pictograms look usual.\\
{{https://community.easymorph.com/uploads/default/original/2X/f/f8a71586752280bf4e2b0e52b9ee3c1ae4178c5f.png  }}
\\ \\ \\ \\ \\ \\ \\ \\ \\ 
\\ 
Using the same table and mode, but this time the condition is fulfilled (evaluates to TRUE). The actions after the //Skip on condition// action are skipped.\\
\\ 
{{https://community.easymorph.com/uploads/default/original/2X/e/e46c6d229aeb1049cb0c359bc4f9afb0452c3f4f.png  }}
\\ \\ \\ \\ \\ \\ \\ \\ \\ 
\\ 
Notice 2 things:
  * The small “fast forward” icon over the skipped actions’ pictograms.
  * The icon of the “Skip actions on condition” action looks different when the condition is fulfilled.

In the examples above, if the mode had been set to //Skip only the next action//, only the //Either table// action would have been skipped, and the last two actions would have continued normally.

\\ 
=====Community examples=====
  * [[https://community.easymorph.com/t//1221/2|Optional calculations with columns]] ([[https://community.easymorph.com/uploads/short-url/xdMJcC4iCkM1HopeOv5m0VqEuvh.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Optional calculation//; Action position: //2//)
  * [[https://community.easymorph.com/t//2306/7|Ideas for generating random password strings?]] ([[https://community.easymorph.com/uploads/short-url/lJo9Cm9I7zuTvfLiw9pMHmwoUHs.morph|Project]]; Module: //Main//; Group: //Group 1//; Table: //Latin characters//; Action position: //1//)
  * [[https://community.easymorph.com/t//2421/8|“Merge another table” action - merge all columns (independently of the column name)]] ([[https://community.easymorph.com/uploads/short-url/jHsMLkfW9YZVmGYNYtayhOt1VkJ.morph|Project]]; Module: //Merge//; Group: //Merge//;\\ Table: //Merge tables//; Action position: //4//)
  * [[https://community.easymorph.com/t//2667/1|Run a task only when free RAM is above threshold]] ([[https://community.easymorph.com/uploads/short-url/aU83eid5IQaSt2mJk8hybsitpw3.morph|Project]]; Module: //MemInfo//; Group: //Tab 1//; Table: //Table 1//; Action position: //5//)

\\ 
=====See also=====
  * [[transformations:halt|Halt/Warn on condition]]
  * [[transformations:haltontypemismatch|Halt on data type mismatch]]
  * [[transformations:skipifunchanged|Skip if unchanged]]
  * [[transformations:skiponconditioninanothertable|Skip on condition in another table]]