The steptypes.json file, which describes custom job steps,
requires a specific JSON syntax. If a steptypes.json file contains
errors, the errors are logged and the steps are not registered. The system then loads steps
from the steptypes.json
files of other cartridges. A typical error message
for an invalid steptypes.json file is Invalid step [Step1]!
Type with id [custom.MyCustomStep1] is unknown!
.
To check the syntax of your steptypes.json
file, access the
steptypes.schema
file here.
Element | Contained By | Contains | Required or Optional | Notes |
---|---|---|---|---|
@code
|
status
|
Required for status
|
Must not contain leading or trailing white space. | |
@name
|
parameter
|
Required for parameter
|
Must not contain leading or trailing whitespace. | |
@required
|
parameter
|
Optional |
Must have value true or false. Default is true. If true, parameter is required. If false, parameter is optional. |
|
@supports-organization-context
|
pipeline-step ,
chunk-script-module-step , and
script-module-step
|
Optional | Must have value true or false. Default is true. If true, steps of
this type can be used for flows with organization scope. If false, steps
of this type can't be used for flows with organization scope.
@supports-organization-context and
@supports-site-context cannot both have the same
true or false setting. If @supports-site-context is
false, @supports-organization-context must be true and
vice versa. |
|
@supports-parallel-execution
|
pipeline-step ,
chunk-script-module-step , and
script-module-step
|
Optional | Must have value true or false. Default is true. If false, split flows
that contain steps of this type are always executed sequentially and
never in parallel. If true, split flows that contain steps of this type
are executed in parallel, as long as:
|
|
@supports-site-context
|
pipeline-step ,
chunk-script-module-step , and
script-module-step
|
Optional | Must have value true or false. Default is true. If true, steps of
this type can be used for flows with one or more sites as scope. If
false, steps of this type can't be used for flows with one or more sites
as scope. @supports-organization-context and
@supports-site-context cannot both have the same
true or false setting. If @supports-site-context is
false, @supports-organization-context must be true and
vice versa. |
|
@target-type
|
parameter
|
Optional | The type to which the parameter value is converted, either
long or date , after the user
enters a value in Business Manager. Can be present only when
@type is datetime-string ,
date-string , or time-string . If
@target-type is not defined, date
is the default value. |
|
@trim
|
parameter
|
Optional | Specifies whether leading and trailing whitespace for the parameter value entered in Business Manager is removed before the value is validated. Must not contain leading or trailing whitespace. Must have value true or false. Default is true. | |
@type
|
parameter
|
Required |
Indicates the data type of the parameter value. Must not contain
leading or trailing whitespace. Must have value of
|
|
@type-id
|
pipeline-step ,
chunk-script-module-step , and
script-module-step
|
Required | Identifies the step. This is the name that users will see in Business
Manager, so make it descriptive. Must begin with
custom. . Must not contain leading or trailing white
space or more than 100 characters. Must be unique within the job
definition. You can't register multiple steps with the same
@type-id in different cartridges. The
@type-id is validated as unique by parsing the
steptypes.json files from all cartridges on the
cartridge path. If there is a step with the same
@type-id , the step isn't loaded. The
@type-id value can't be the same as any system
step, for example, ExecutePipeline or
IncludeStepsFromJob . |
|
after-chunk-function
|
chunk-script-module-step
|
Optional | References the function of the chunk-oriented script module to be executed after a chunk has finished. If not defined, no after-chunk logic is used. | |
after-step-function
|
chunk-script-module-step
|
Optional | References the function of the chunk-oriented script module to be executed after the step has finshed. If not defined, no after-step logic is used. | |
before-chunk-function
|
chunk-script-module-step
|
Optional | References the function of the chunk-oriented script module to be executed before a chunk begins. If not defined, no before-chunk logic is used. | |
before-step-function
|
chunk-script-module-step
|
Optional | References the function of the chunk-oriented script module to be executed before the step begins. If not defined, no before-step logic is used. | |
chunk-module-script-step
|
step-types
|
|
Required if no pipeline-step or
script-module-step
|
Defines a chunk-oriented step. |
chunk-size
|
chunk-script-module-step
|
Required for status element |
Must be a numeric value. Must not contain leading or trailing white space. | |
default-value
|
parameter
|
Optional | Default when no value is entered for the parameter. Must have a valid
data type value for the parameter (boolean, string, long, double,
datetime-string, date-string, or time-string). If the parameter is
assigned enum-values , the
default-value must match one of the list of enum
values. |
|
description
|
parameter
|
Required |
Must not contain leading or trailing whitespace or more than 256 characters. |
|
description
|
pipeline-step ,
chunk-script-module-step ,
script-module-step , and
status
|
Optional | Description of the step or status code. Not shown in Business Manager. Must not exceed 4000 characters. | |
enum-values
|
parameter
|
value
|
Optional | Allowed values for the parameter. The value entered by the user in Business Manager is validated against this list. Must not contain leading or trailing white spaces. |
function
|
script-module-step
|
Optional | The function of the script module to execute. Must not contain
leading or trailing white space. If not defined, the script module must
export a function named execute . |
|
max-length
|
parameter
|
Optional | Maximum length of a string value for this parameter. String entered
in Business Manager is validated against this restriction. Only
applicable if @type is set to string. Must be at least
1 and greater than or equal tomin-length . If not
defined, string length is not restricted other than by the general
requirement that parameter values cannot exceed 1000 characters. |
|
max-value
|
parameter
|
Optional | Maximum numerical value for the parameter. Only applicable if
@type is long,double, datetime-string, or
time-string. Must be greater than or equal to
min-value . The maximum valid value for a long is
9223372036854775807 and for a double is 1.7976931348623157E308. If you
do not explicitly define a max-value , those values are
considered the max-values for long and double
parameters. For datetime-string or time-string parameters, if not
defined, there are no restrictions other than the general restriction
that parameter values cannot exceed 1000 characters. |
|
min-length
|
parameter
|
Optional | Minimum length of the string value for the parameter. Only applicable
if @type is string. Must be at least 1 and less than
max-length . If not defined, there are no
restrictions other than the general restriction that parameter values
cannot exceed 1000 characters. |
|
min-value
|
parameter
|
Optional | Minimum value for the parameter. Must not exceed the
max-value . The minimum valid value for a long is
-9223372036854775808 and for a double is4.9E-324. If you do not
explicitly define a min-value , those values are
considered the min-values for long and double
parameters. For datetime-string or time-string parameters, if you do not
define a min-value , there are no restrictions other
than the general restriction that parameter values cannot exceed 1000
characters. |
|
module
|
script-module-step and
chunk-script-module-step
|
Required | Path to the script module to be executed. Must not contain leading or trailing white space. | |
parameter
|
parameters
|
|
Required if parameters is present |
A parameter for the step, which the user configures in Business Manager. |
parameters
|
pipeline-step and
script-module-step
|
parameter
|
Required | Parameters for the step, which the user configures in Business
Manager. Contains one or more parameter
elements. |
pattern
|
parameter
|
Optional | Regular expression that defines the allowed values for the parameter.
Applicable only if @type is string. |
|
pipeline
|
pipeline-step
|
Required | Pipeline to execute for the step. Format must be <PipelineName>-<StartNodeName>. For example: Search-Show | |
pipeline-step
|
step-types
|
|
Required if no script-module-step or
chunk-script-module-step
|
Defines a pipeline for the step. |
process-function
|
chunk-module-script-step
|
Optional | Process function of the chunk script. If not defined, script must
export a function named process . |
|
read-function
|
chunk-module-script-step
|
Optional | Read function of the chunk script. If not defined, script must export
a function named read . |
|
script-module-step
|
step-types
|
|
Required if no pipeline-step or
chunk-script-module-step
|
Defines a task-oriented script for the step. |
status
|
status-codes
|
|
Required for status-codes . |
Defines the error codes and descriptions for the step. |
status-codes
|
pipeline-step ,
chunk-script-module-step , and
script-module-step
|
status
|
Optional | Defines the meta data for status codes returned for the step. |
step-types
|
Root object. |
|
Required | |
timeout-in-seconds
|
script-module-step
|
Optional | Must be an integer that sets the timeout in seconds for the script module's function. There is no default timeout, but setting a limit is recommended. | |
total-count-function
|
chunk-script-module-step
|
Optional | References the function to be executed to determine the total number of items. If not defined, no total count is used. | |
transactional
|
script-module-step and
chunk-script-module-step
|
Optional | Indicates if the module requires a database transaction. Must have value true or false. Default is false. If this value is set to true, the job step executes as a single, potentially very large, transaction. To avoid a negative impact on system performance and allow more granular transaction control, keep the default setting of false. Implement transaction handling within the job step using the dw.system.Transaction API. | |
value
|
enum-values
|
Required for enum-values
|
Comma-separated list of values allowed for the parameter | |
write-function
|
chunk-script-module-step
|
Optional | References the write function of the chunk script. If not defined,
script must export a function named write . |
supports-organization-context
and
supports-site-context
elements in the
steptypes.json file.
supports-organization-context | supports-site-context | Status |
---|---|---|
true | true | Invalid configuration. |
true | false | Job is executable only if other steps in the same flow can be executed for the entire organization. |
false | true | Job is executable only if other steps in the same flow can be executed for one or more sites. |
false | false | Invalid configuration. |