ACAW cheat sheet
ACAW · Keep the key ideas within reach.
Data Preparation and Blending
Join types: Inner returns only matched records; Left/Right keep all records from one input; Full Outer keeps unmatched from both; Union appends rows and matches fields by name or position.
Join Multiple requires all join outputs to share a common field set; each additional input adds another Join tool, and Join Multiple can emit unmatched rows per input.
Union mode 'Auto by Name' aligns fields by name and fills missing fields with nulls; 'Auto by Position' aligns by field order and is order-sensitive.
Blend order matters for duplicate field names: the primary input's field is kept and the secondary input's same-named field is renamed with a suffix (e.g., Right_ prefix).
Find Replace has two modes: 'Find Any' replaces on first match, 'Find All' appends all matches; Append Fields creates a Cartesian product of every row pair.
Data Cleansing replaces nulls, removes unwanted characters, modifies case, and trims whitespace; it operates on selected fields in one pass.
Record ID adds a sequential identifier; Multi-Row Formula can reference Row-1/Row+1 for running totals or lag comparisons without sorting first.
Cross-tab pivots rows to columns using a header field, a data field, and a method (Sum, Count, First); Transpose does the inverse, emitting Name/Value pairs.
Workflow Design and Optimization
Tool execution order follows the data dependency graph, not canvas position; containers with 'Disable' prevent downstream tools from running.
The Cache and Run Workflow option persists a tool's output so downstream tools skip re-execution until the source data or upstream config changes.
Block Until Done (Output) enforces sequential execution of its output anchors 1, 2, 3 - useful when a downstream tool must read a file written upstream.
A Macro input requires an Interface layer; a Standard Workflow cannot contain a Macro input/output tool pair without being saved as a macro type.
Detour tools route records around a section based on a control parameter; Detour End marks the merge point and must pair with a Detour.
Tool containers group tools and can be enabled/disabled as a unit; disabled containers still validate but do not execute.
Parallel execution is controlled per-workflow; independent branches may run concurrently, but a Block Until Done forces serialization at its output.
Field metadata propagates forward; a Select tool early in the stream reduces downstream memory by dropping unused fields before joins and sorts.
Advanced Formula and Expression Techniques
IF c THEN a ELSEIF c2 THEN b ELSE d ENDIF is the multi-branch conditional; IIF(c, a, b) is the two-branch function form and evaluates both branches.
Null handling: IsNull(x), IsEmpty(x) (empty string), and Coalesce(a,b,...) returns the first non-null; a null in arithmetic yields null.
String functions: Substring(x, start, length) is 0-indexed; Left/Right, Trim, PadLeft, ReplaceChar, REGEX_Replace(x, pattern, replacement).
REGEX_Match returns -1 (no match), 0 (match), or the capture group number; REGEX_Replace uses $1 for group references.
DateTime functions: DateTimeDiff(dt1, dt2, 'days') returns integer difference; DateTimeParse(x, '%Y-%m-%d') converts string to date with format specifiers.
ToNumber/ToInteger/ToString convert types; a failed conversion yields null, so wrap with a null check or use a conditional.
Multi-Row Formula supports Row-1 and Row+1 references within a group when 'Group By' is set; otherwise it spans the whole stream.
Switch/Choose: Switch(value, default, case1, result1, ...) and Choose(index, v0, v1, ...) select by position or match.
Spatial and Predictive Analytics
Spatial tools require a spatial object field created by Create Points, Make Line, or Make Polygon; Spatial Match joins on spatial predicates (Intersects, Contains, Within).
Distance tool computes distance between spatial points in specified units; Trade Area generates radial or drive-time polygons around points.
Spatial Info returns area, length, and centroid; Spatial Process performs union, intersection, difference, or buffer on spatial objects.
Predictive tools: Linear Regression, Logistic Regression, Decision Tree, Forest Model, and Score produce a model object plus a report; Score applies the model to new data.
A model object is a single record containing the trained parameters; it must be passed through the Score tool (or a macro) to predict new records.
Field types must be numeric for regression predictors; categorical predictors require Create Dummies or a model tool that handles categoricals.
Sampling: Create Samples (Random or Systematic) splits data into Estimation and Validation sets; oversampling adjusts class balance for rare events.
Model comparison uses the report's accuracy, error, and ROC/AUC metrics; the Validation set estimates out-of-sample performance.
Parsing, Transformation, and Advanced Tool Configuration
Text to Columns splits on a delimiter or fixed width; it can output to rows or columns and preserves the original field if 'Keep original' is checked.
Regex tool has modes: Match (filter), Parse (extract groups to fields), Replace, and Tokenize (split on pattern); Parse emits one field per capture group.
XML Parse extracts elements by path; JSON Parse requires a JSON field and flattens nested structures into fields.
DateTime tool converts between string and date formats using a format string; the format must match the input exactly or the result is null.
Multi-Field Formula applies one expression across selected fields; output can overwrite inputs or create new fields with a prefix/suffix.
Dynamic Rename renames fields using the first row of data or a formula; Dynamic Select chooses fields by type, name pattern, or position at runtime.
Imputation fills nulls with a constant, mean, median, or model-based value; Random % Sample and Sample tools select subsets for testing.
The Formula tool cannot change field type in place; use Select or a conversion function to coerce types before downstream numeric operations.
Macros and Application Building
Standard Macro: a workflow saved as .yxmc with Macro Input/Output tools; runs on the main canvas like a normal tool.
Batch Macro: iterates over grouped records; the Control Parameter drives the loop and an Update Input or interface element changes config per iteration.
Iterative Macro: loops until a condition is met; requires a Macro Input, Macro Output, and a loop-back connection with a stopping condition.
Interface tools (Text Box, Drop Down, List Box, Numeric Up Down, File Browse, Date) feed Action tools that update downstream tool configuration.
Action tool types: Update Value, Update Value with Formula, Update Field, Update Select, Update Raw XML, and Update Input/Output.
A Macro Input's 'Text Input' mode lets the macro run standalone for testing; 'Workflow' mode requires upstream data.
The Interface Designer's Test View validates the app UI; the Questions tab controls field order and the Layout tab controls presentation.
Macro errors often stem from a missing Control Parameter connection or an Action tool pointing at a field that does not exist downstream.
Analytic Apps and Interface Design
An Analytic App is a workflow with an Interface layer saved as .yxwz; it prompts the user and runs with the supplied values.
The Interface Designer's Questions tab defines each question's label, type, and default; the Layout tab arranges questions into groups and tabs.
A Condition tool shows or hides downstream questions based on a prior answer; it requires a boolean input and gates the interface branch.
Radio Button and Drop Down use a List Values source (manual, field, or external file); Check Box allows multiple selections and feeds a List Box or Action.
The 'On Success' message and output options (view output, open file) are configured in the Interface Designer's Runtime tab.
Chained Apps pass values between apps via the Interface tool 'Output' option or by writing to a file consumed by the next app.
Error Message tool halts the app and displays a custom message when a validation condition fails.
App values can be injected into a workflow via Action tools; a Text Box with 'Update Value with Formula' can build dynamic SQL or paths.
Performance Tuning and Error Handling
Filter and Select early to reduce record and field counts before joins, sorts, and spatial operations, which are memory-intensive.
Sort is expensive; use it only when required (e.g., before a Multi-Row Formula with a group, or a Join that needs sorted input for a merge join).
The Join tool's 'Join by Name' vs 'Join by Position' affects performance and correctness; name-based joins are safer across schema changes.
Use the Cache and Run Workflow option to avoid re-running unchanged upstream branches during iterative development.
Common errors: 'Parse Error' (malformed expression), 'Field not found' (renamed/dropped upstream), and 'Conversion error' (type mismatch yielding null).
The Message tool with severity Error stops the workflow; Warning and Info log without halting, useful for data-quality gates.
Test with a small sample first; the 'Run' vs 'Run on Server' distinction affects available tools and file path resolution.
Limit Cross-tab and Join Multiple outputs; they can explode row counts and memory; monitor record counts with the Browse tool.
Data Preparation and Blending
Join types: Inner returns only matched records; Left/Right keep all records from one input; Full Outer keeps unmatched from both; Union appends rows and matches fields by name or position.
Join Multiple requires all join outputs to share a common field set; each additional input adds another Join tool, and Join Multiple can emit unmatched rows per input.
Union mode 'Auto by Name' aligns fields by name and fills missing fields with nulls; 'Auto by Position' aligns by field order and is order-sensitive.
Blend order matters for duplicate field names: the primary input's field is kept and the secondary input's same-named field is renamed with a suffix.
Find Replace has two modes: 'Find Any' replaces on first match, 'Find All' appends all matches; Append Fields creates a Cartesian product of every row pair.
Data Cleansing replaces nulls, removes unwanted characters, modifies case, and trims whitespace; it operates on selected fields in one pass.
Record ID adds a sequential identifier; Multi-Row Formula can reference Row-1/Row+1 for running totals or lag comparisons without sorting first.
Cross-tab pivots rows to columns using a header field, a data field, and a method (Sum, Count, First); Transpose does the inverse, emitting Name/Value pairs.
Workflow Design and Optimization
Tool execution order follows the data dependency graph, not canvas position; containers with 'Disable' prevent downstream tools from running.
The Cache and Run Workflow option persists a tool's output so downstream tools skip re-execution until the source data or upstream config changes.
Block Until Done (Output) enforces sequential execution of its output anchors 1, 2, 3 - useful when a downstream tool must read a file written upstream.
A Macro input requires an Interface layer; a Standard Workflow cannot contain a Macro input/output tool pair without being saved as a macro type.
Detour tools route records around a section based on a control parameter; Detour End marks the merge point and must pair with a Detour.
Tool containers group tools and can be enabled/disabled as a unit; disabled containers still validate but do not execute.
Parallel execution is controlled per-workflow; independent branches may run concurrently, but a Block Until Done forces serialization at its output.
Field metadata propagates forward; a Select tool early in the stream reduces downstream memory by dropping unused fields before joins and sorts.
Advanced Formula and Expression Techniques
IF c THEN a ELSEIF c2 THEN b ELSE d ENDIF is the multi-branch conditional; IIF(c, a, b) is the two-branch function form and evaluates both branches.
Null handling: IsNull(x), IsEmpty(x) (empty string), and Coalesce(a,b,...) returns the first non-null; a null in arithmetic yields null.
String functions: Substring(x, start, length) is 0-indexed; Left/Right, Trim, PadLeft, ReplaceChar, REGEX_Replace(x, pattern, replacement).
REGEX_Match returns -1 (no match), 0 (match), or the capture group number; REGEX_Replace uses $1 for group references.
DateTime functions: DateTimeDiff(dt1, dt2, 'days') returns integer difference; DateTimeParse(x, '%Y-%m-%d') converts string to date with format specifiers.
ToNumber/ToInteger/ToString convert types; a failed conversion yields null, so wrap with a null check or use a conditional.
Multi-Row Formula supports Row-1 and Row+1 references within a group when 'Group By' is set; otherwise it spans the whole stream.
Switch/Choose: Switch(value, default, case1, result1, ...) and Choose(index, v0, v1, ...) select by position or match.
Spatial and Predictive Analytics
Spatial tools require a spatial object field created by Create Points, Make Line, or Make Polygon; Spatial Match joins on spatial predicates (Intersects, Contains, Within).
Distance tool computes distance between spatial points in specified units; Trade Area generates radial or drive-time polygons around points.
Spatial Info returns area, length, and centroid; Spatial Process performs union, intersection, difference, or buffer on spatial objects.
Predictive tools: Linear Regression, Logistic Regression, Decision Tree, Forest Model, and Score produce a model object plus a report; Score applies the model to new data.
A model object is a single record containing the trained parameters; it must be passed through the Score tool (or a macro) to predict new records.
Field types must be numeric for regression predictors; categorical predictors require Create Dummies or a model tool that handles categoricals.
Sampling: Create Samples (Random or Systematic) splits data into Estimation and Validation sets; oversampling adjusts class balance for rare events.
Model comparison uses the report's accuracy, error, and ROC/AUC metrics; the Validation set estimates out-of-sample performance.
Parsing, Transformation, and Advanced Tool Configuration
Text to Columns splits on a delimiter or fixed width; it can output to rows or columns and preserves the original field if 'Keep original' is checked.
Regex tool has modes: Match (filter), Parse (extract groups to fields), Replace, and Tokenize (split on pattern); Parse emits one field per capture group.
XML Parse extracts elements by path; JSON Parse requires a JSON field and flattens nested structures into fields.
DateTime tool converts between string and date formats using a format string; the format must match the input exactly or the result is null.
Multi-Field Formula applies one expression across selected fields; output can overwrite inputs or create new fields with a prefix/suffix.
Dynamic Rename renames fields using the first row of data or a formula; Dynamic Select chooses fields by type, name pattern, or position at runtime.
Imputation fills nulls with a constant, mean, median, or model-based value; Random % Sample and Sample tools select subsets for testing.
The Formula tool cannot change field type in place; use Select or a conversion function to coerce types before downstream numeric operations.
Macros and Application Building
Standard Macro: a workflow saved as .yxmc with Macro Input/Output tools; runs on the main canvas like a normal tool.
Batch Macro: iterates over grouped records; the Control Parameter drives the loop and an Update Input or interface element changes config per iteration.
Iterative Macro: loops until a condition is met; requires a Macro Input, Macro Output, and a loop-back connection with a stopping condition.
Interface tools (Text Box, Drop Down, List Box, Numeric Up Down, File Browse, Date) feed Action tools that update downstream tool configuration.
Action tool types: Update Value, Update Value with Formula, Update Field, Update Select, Update Raw XML, and Update Input/Output.
A Macro Input's 'Text Input' mode lets the macro run standalone for testing; 'Workflow' mode requires upstream data.
The Interface Designer's Test View validates the app UI; the Questions tab controls field order and the Layout tab controls presentation.
Macro errors often stem from a missing Control Parameter connection or an Action tool pointing at a field that does not exist downstream.
Analytic Apps and Interface Design
An Analytic App is a workflow with an Interface layer saved as .yxwz; it prompts the user and runs with the supplied values.
The Interface Designer's Questions tab defines each question's label, type, and default; the Layout tab arranges questions into groups and tabs.
A Condition tool shows or hides downstream questions based on a prior answer; it requires a boolean input and gates the interface branch.
Radio Button and Drop Down use a List Values source (manual, field, or external file); Check Box allows multiple selections and feeds a List Box or Action.
The 'On Success' message and output options (view output, open file) are configured in the Interface Designer's Runtime tab.
Chained Apps pass values between apps via the Interface tool 'Output' option or by writing to a file consumed by the next app.
Error Message tool halts the app and displays a custom message when a validation condition fails.
App values can be injected into a workflow via Action tools; a Text Box with 'Update Value with Formula' can build dynamic SQL or paths.
Performance Tuning and Error Handling
Filter and Select early to reduce record and field counts before joins, sorts, and spatial operations, which are memory-intensive.
Sort is expensive; use it only when required (e.g., before a Multi-Row Formula with a group, or a Join that needs sorted input for a merge join).
The Join tool's 'Join by Name' vs 'Join by Position' affects performance and correctness; name-based joins are safer across schema changes.
Use the Cache and Run Workflow option to avoid re-running unchanged upstream branches during iterative development.
Common errors: 'Parse Error' (malformed expression), 'Field not found' (renamed/dropped upstream), and 'Conversion error' (type mismatch yielding null).
The Message tool with severity Error stops the workflow; Warning and Info log without halting, useful for data-quality gates.
Test with a small sample first; the 'Run' vs 'Run on Server' distinction affects available tools and file path resolution.
Limit Cross-tab and Join Multiple outputs; they can explode row counts and memory; monitor record counts with the Browse tool.
Data Preparation and Blending
Join types: Inner returns only matched records; Left/Right keep all records from one input; Full Outer keeps unmatched from both; Union appends rows and matches fields by name or position.
Join Multiple requires all join outputs to share a common field set; each additional input adds another Join tool, and Join Multiple can emit unmatched rows per input.
Union mode 'Auto by Name' aligns fields by name and fills missing fields with nulls; 'Auto by Position' aligns by field order and is order-sensitive.
Blend order matters for duplicate field names: the primary input's field is kept and the secondary input's same-named field is renamed with a suffix.
Find Replace has two modes: 'Find Any' replaces on first match, 'Find All' appends all matches; Append Fields creates a Cartesian product of every row pair.
Data Cleansing replaces nulls, removes unwanted characters, modifies case, and trims whitespace; it operates on selected fields in one pass.
Record ID adds a sequential identifier; Multi-Row Formula can reference Row-1/Row+1 for running totals or lag comparisons without sorting first.
Cross-tab pivots rows to columns using a header field, a data field, and a method (Sum, Count, First); Transpose does the inverse, emitting Name/Value pairs.
Workflow Design and Optimization
Tool execution order follows the data dependency graph, not canvas position; containers with 'Disable' prevent downstream tools from running.
The Cache and Run Workflow option persists a tool's output so downstream tools skip re-execution until the source data or upstream config changes.
Block Until Done (Output) enforces sequential execution of its output anchors 1, 2, 3 - useful when a downstream tool must read a file written upstream.
A Macro input requires an Interface layer; a Standard Workflow cannot contain a Macro input/output tool pair without being saved as a macro type.
Detour tools route records around a section based on a control parameter; Detour End marks the merge point and must pair with a Detour.
Tool containers group tools and can be enabled/disabled as a unit; disabled containers still validate but do not execute.
Parallel execution is controlled per-workflow; independent branches may run concurrently, but a Block Until Done forces serialization at its output.
Field metadata propagates forward; a Select tool early in the stream reduces downstream memory by dropping unused fields before joins and sorts.
Advanced Formula and Expression Techniques
IF c THEN a ELSEIF c2 THEN b ELSE d ENDIF is the multi-branch conditional; IIF(c, a, b) is the two-branch function form and evaluates both branches.
Null handling: IsNull(x), IsEmpty(x) (empty string), and Coalesce(a,b,...) returns the first non-null; a null in arithmetic yields null.
String functions: Substring(x, start, length) is 0-indexed; Left/Right, Trim, PadLeft, ReplaceChar, REGEX_Replace(x, pattern, replacement).
REGEX_Match returns -1 (no match), 0 (match), or the capture group number; REGEX_Replace uses $1 for group references.
DateTime functions: DateTimeDiff(dt1, dt2, 'days') returns integer difference; DateTimeParse(x, '%Y-%m-%d') converts string to date with format specifiers.
ToNumber/ToInteger/ToString convert types; a failed conversion yields null, so wrap with a null check or use a conditional.
Multi-Row Formula supports Row-1 and Row+1 references within a group when 'Group By' is set; otherwise it spans the whole stream.
Switch/Choose: Switch(value, default, case1, result1, ...) and Choose(index, v0, v1, ...) select by position or match.
Spatial and Predictive Analytics
Spatial tools require a spatial object field created by Create Points, Make Line, or Make Polygon; Spatial Match joins on spatial predicates (Intersects, Contains, Within).
Distance tool computes distance between spatial points in specified units; Trade Area generates radial or drive-time polygons around points.
Spatial Info returns area, length, and centroid; Spatial Process performs union, intersection, difference, or buffer on spatial objects.
Predictive tools: Linear Regression, Logistic Regression, Decision Tree, Forest Model, and Score produce a model object plus a report; Score applies the model to new data.
A model object is a single record containing the trained parameters; it must be passed through the Score tool (or a macro) to predict new records.
Field types must be numeric for regression predictors; categorical predictors require Create Dummies or a model tool that handles categoricals.
Sampling: Create Samples (Random or Systematic) splits data into Estimation and Validation sets; oversampling adjusts class balance for rare events.
Model comparison uses the report's accuracy, error, and ROC/AUC metrics; the Validation set estimates out-of-sample performance.
Parsing, Transformation, and Advanced Tool Configuration
Text to Columns splits on a delimiter or fixed width; it can output to rows or columns and preserves the original field if 'Keep original' is checked.
Regex tool has modes: Match (filter), Parse (extract groups to fields), Replace, and Tokenize (split on pattern); Parse emits one field per capture group.
XML Parse extracts elements by path; JSON Parse requires a JSON field and flattens nested structures into fields.
DateTime tool converts between string and date formats using a format string; the format must match the input exactly or the result is null.
Multi-Field Formula applies one expression across selected fields; output can overwrite inputs or create new fields with a prefix/suffix.
Dynamic Rename renames fields using the first row of data or a formula; Dynamic Select chooses fields by type, name pattern, or position at runtime.
Imputation fills nulls with a constant, mean, median, or model-based value; Random % Sample and Sample tools select subsets for testing.
The Formula tool cannot change field type in place; use Select or a conversion function to coerce types before downstream numeric operations.
Macros and Application Building
Standard Macro: a workflow saved as .yxmc with Macro Input/Output tools; runs on the main canvas like a normal tool.
Batch Macro: iterates over grouped records; the Control Parameter drives the loop and an Update Input or interface element changes config per iteration.
Iterative Macro: loops until a condition is met; requires a Macro Input, Macro Output, and a loop-back connection with a stopping condition.
Interface tools (Text Box, Drop Down, List Box, Numeric Up Down, File Browse, Date) feed Action tools that update downstream tool configuration.
Action tool types: Update Value, Update Value with Formula, Update Field, Update Select, Update Raw XML, and Update Input/Output.
A Macro Input's 'Text Input' mode lets the macro run standalone for testing; 'Workflow' mode requires upstream data.
The Interface Designer's Test View validates the app UI; the Questions tab controls field order and the Layout tab controls presentation.
Macro errors often stem from a missing Control Parameter connection or an Action tool pointing at a field that does not exist downstream.
Analytic Apps and Interface Design
An Analytic App is a workflow with an Interface layer saved as .yxwz; it prompts the user and runs with the supplied values.
The Interface Designer's Questions tab defines each question's label, type, and default; the Layout tab arranges questions into groups and tabs.
A Condition tool shows or hides downstream questions based on a prior answer; it requires a boolean input and gates the interface branch.
Radio Button and Drop Down use a List Values source (manual, field, or external file); Check Box allows multiple selections and feeds a List Box or Action.
The 'On Success' message and output options (view output, open file) are configured in the Interface Designer's Runtime tab.
Chained Apps pass values between apps via the Interface tool 'Output' option or by writing to a file consumed by the next app.
Error Message tool halts the app and displays a custom message when a validation condition fails.
App values can be injected into a workflow via Action tools; a Text Box with 'Update Value with Formula' can build dynamic SQL or paths.
Performance Tuning and Error Handling
Filter and Select early to reduce record and field counts before joins, sorts, and spatial operations, which are memory-intensive.
Sort is expensive; use it only when required (e.g., before a Multi-Row Formula with a group, or a Join that needs sorted input for a merge join).
The Join tool's 'Join by Name' vs 'Join by Position' affects performance and correctness; name-based joins are safer across schema changes.
Use the Cache and Run Workflow option to avoid re-running unchanged upstream branches during iterative development.
Common errors: 'Parse Error' (malformed expression), 'Field not found' (renamed/dropped upstream), and 'Conversion error' (type mismatch yielding null).
The Message tool with severity Error stops the workflow; Warning and Info log without halting, useful for data-quality gates.
Test with a small sample first; the 'Run' vs 'Run on Server' distinction affects available tools and file path resolution.
Limit Cross-tab and Join Multiple outputs; they can explode row counts and memory; monitor record counts with the Browse tool.
Data Preparation and Blending
Join types: Inner returns only matched records; Left/Right keep all records from one input; Full Outer keeps unmatched from both; Union appends rows and matches fields by name or position.
Join Multiple requires all join outputs to share a common field set; each additional input adds another Join tool, and Join Multiple can emit unmatched rows per input.
Union mode 'Auto by Name' aligns fields by name and fills missing fields with nulls; 'Auto by Position' aligns by field order and is order-sensitive.
Blend order matters for duplicate field names: the primary input's field is kept and the secondary input's same-named field is renamed with a suffix.
Find Replace has two modes: 'Find Any' replaces on first match, 'Find All' appends all matches; Append Fields creates a Cartesian product of every row pair.
Data Cleansing replaces nulls, removes unwanted characters, modifies case, and trims whitespace; it operates on selected fields in one pass.
Record ID adds a sequential identifier; Multi-Row Formula can reference Row-1/Row+1 for running totals or lag comparisons without sorting first.
Cross-tab pivots rows to columns using a header field, a data field, and a method (Sum, Count, First); Transpose does the inverse, emitting Name/Value pairs.
Workflow Design and Optimization
Tool execution order follows the data dependency graph, not canvas position; containers with 'Disable' prevent downstream tools from running.
The Cache and Run Workflow option persists a tool's output so downstream tools skip re-execution until the source data or upstream config changes.
Block Until Done (Output) enforces sequential execution of its output anchors 1, 2, 3 - useful when a downstream tool must read a file written upstream.
A Macro input requires an Interface layer; a Standard Workflow cannot contain a Macro input/output tool pair without being saved as a macro type.
Detour tools route records around a section based on a control parameter; Detour End marks the merge point and must pair with a Detour.
Tool containers group tools and can be enabled/disabled as a unit; disabled containers still validate but do not execute.
Parallel execution is controlled per-workflow; independent branches may run concurrently, but a Block Until Done forces serialization at its output.
Field metadata propagates forward; a Select tool early in the stream reduces downstream memory by dropping unused fields before joins and sorts.
Advanced Formula and Expression Techniques
IF c THEN a ELSEIF c2 THEN b ELSE d ENDIF is the multi-branch conditional; IIF(c, a, b) is the two-branch function form and evaluates both branches.
Null handling: IsNull(x), IsEmpty(x) (empty string), and Coalesce(a,b,...) returns the first non-null; a null in arithmetic yields null.
String functions: Substring(x, start, length) is 0-indexed; Left/Right, Trim, PadLeft, ReplaceChar, REGEX_Replace(x, pattern, replacement).
REGEX_Match returns -1 (no match), 0 (match), or the capture group number; REGEX_Replace uses $1 for group references.
DateTime functions: DateTimeDiff(dt1, dt2, 'days') returns integer difference; DateTimeParse(x, '%Y-%m-%d') converts string to date with format specifiers.
ToNumber/ToInteger/ToString convert types; a failed conversion yields null, so wrap with a null check or use a conditional.
Multi-Row Formula supports Row-1 and Row+1 references within a group when 'Group By' is set; otherwise it spans the whole stream.
Switch/Choose: Switch(value, default, case1, result1, ...) and Choose(index, v0, v1, ...) select by position or match.
Spatial and Predictive Analytics
Spatial tools require a spatial object field created by Create Points, Make Line, or Make Polygon; Spatial Match joins on spatial predicates (Intersects, Contains, Within).
Distance tool computes distance between spatial points in specified units; Trade Area generates radial or drive-time polygons around points.
Spatial Info returns area, length, and centroid; Spatial Process performs union, intersection, difference, or buffer on spatial objects.
Predictive tools: Linear Regression, Logistic Regression, Decision Tree, Forest Model, and Score produce a model object plus a report; Score applies the model to new data.
A model object is a single record containing the trained parameters; it must be passed through the Score tool (or a macro) to predict new records.
Field types must be numeric for regression predictors; categorical predictors require Create Dummies or a model tool that handles categoricals.
Sampling: Create Samples (Random or Systematic) splits data into Estimation and Validation sets; oversampling adjusts class balance for rare events.
Model comparison uses the report's accuracy, error, and ROC/AUC metrics; the Validation set estimates out-of-sample performance.
Parsing, Transformation, and Advanced Tool Configuration
Text to Columns splits on a delimiter or fixed width; it can output to rows or columns and preserves the original field if 'Keep original' is checked.
Regex tool has modes: Match (filter), Parse (extract groups to fields), Replace, and Tokenize (split on pattern); Parse emits one field per capture group.
XML Parse extracts elements by path; JSON Parse requires a JSON field and flattens nested structures into fields.
DateTime tool converts between string and date formats using a format string; the format must match the input exactly or the result is null.
Multi-Field Formula applies one expression across selected fields; output can overwrite inputs or create new fields with a prefix/suffix.
Dynamic Rename renames fields using the first row of data or a formula; Dynamic Select chooses fields by type, name pattern, or position at runtime.
Imputation fills nulls with a constant, mean, median, or model-based value; Random % Sample and Sample tools select subsets for testing.
The Formula tool cannot change field type in place; use Select or a conversion function to coerce types before downstream numeric operations.
Macros and Application Building
Standard Macro: a workflow saved as .yxmc with Macro Input/Output tools; runs on the main canvas like a normal tool.
Batch Macro: iterates over grouped records; the Control Parameter drives the loop and an Update Input or interface element changes config per iteration.
Iterative Macro: loops until a condition is met; requires a Macro Input, Macro Output, and a loop-back connection with a stopping condition.
Interface tools (Text Box, Drop Down, List Box, Numeric Up Down, File Browse, Date) feed Action tools that update downstream tool configuration.
Action tool types: Update Value, Update Value with Formula, Update Field, Update Select, Update Raw XML, and Update Input/Output.
A Macro Input's 'Text Input' mode lets the macro run standalone for testing; 'Workflow' mode requires upstream data.
The Interface Designer's Test View validates the app UI; the Questions tab controls field order and the Layout tab controls presentation.
Macro errors often stem from a missing Control Parameter connection or an Action tool pointing at a field that does not exist downstream.
Analytic Apps and Interface Design
An Analytic App is a workflow with an Interface layer saved as .yxwz; it prompts the user and runs with the supplied values.
The Interface Designer's Questions tab defines each question's label, type, and default; the Layout tab arranges questions into groups and tabs.
A Condition tool shows or hides downstream questions based on a prior answer; it requires a boolean input and gates the interface branch.
Radio Button and Drop Down use a List Values source (manual, field, or external file); Check Box allows multiple selections and feeds a List Box or Action.
The 'On Success' message and output options (view output, open file) are configured in the Interface Designer's Runtime tab.
Chained Apps pass values between apps via the Interface tool 'Output' option or by writing to a file consumed by the next app.
Error Message tool halts the app and displays a custom message when a validation condition fails.
App values can be injected into a workflow via Action tools; a Text Box with 'Update Value with Formula' can build dynamic SQL or paths.
Performance Tuning and Error Handling
Filter and Select early to reduce record and field counts before joins, sorts, and spatial operations, which are memory-intensive.
Sort is expensive; use it only when required (e.g., before a Multi-Row Formula with a group, or a Join that needs sorted input for a merge join).
The Join tool's 'Join by Name' vs 'Join by Position' affects performance and correctness; name-based joins are safer across schema changes.
Use the Cache and Run Workflow option to avoid re-running unchanged upstream branches during iterative development.
Common errors: 'Parse Error' (malformed expression), 'Field not found' (renamed/dropped upstream), and 'Conversion error' (type mismatch yielding null).
The Message tool with severity Error stops the workflow; Warning and Info log without halting, useful for data-quality gates.
Test with a small sample first; the 'Run' vs 'Run on Server' distinction affects available tools and file path resolution.
Limit Cross-tab and Join Multiple outputs; they can explode row counts and memory; monitor record counts with the Browse tool.