Usage Notes for Iterative Jobs

Iterative Jobs and Parameterized Jobs Behave as Completely Separate Jobs

Iterative jobs and parameterized jobs are treated as completely separate jobs, even when a parameterized job is nested within an iterative job. This fact has the following implications for check-out, delete, copy and paste, and import and export behaviors:
  • Check-out: A parameterized job is not checked out when the iterative job containing it is checked out. Each job must be checked out individually.
  • Delete: A parameterized job is not deleted when the iterative job containing it is deleted. Each job must be deleted individually.
  • Copy and paste: A parameterized job is not copied or pasted just because the iterative job that contains it is copied or pasted. Instead, the new copy of the iterative job includes an association to the original parameterized job. If you need to preserve the nested relationship between the iterative and the parameterized job, you must copy and paste both jobs. The easiest way to perform this task is to select one job, and then hold down the Ctrl key and click the other job. Next, right-click and select Copy from the Properties menu. You can then paste the copy of the nested jobs.
  • Import and export: A parameterized job is not imported or exported just because the iterative job that contains it is imported or exported. Instead, the new import or export of the iterative job includes an association to the original parameterized job. If you need to preserve the nested relationship between the iterative and the parameterized job, you must import or export both jobs.

Iterative Processing Places Limits on the Number of Nesting Levels and Jobs

At this time, the following nesting scenarios are supported for iterative processing and parallel processing:
One level of nesting: 

Job A 
	Job B

Two levels of nesting: 

Job A 
	Job B 
		Job C
In addition, each looping construction can contain only one job. A looping construction consists of a Loop transformation and a Loop End transformation.

Parameter Values That Include Special Characters Require Special Handling

If table names, physical paths, or other attributes in a job are specified as parameters and those parameters resolve to literal values that contain characters other than letters, numeric digits (such as 0 through 9), or underscores, then code generation for the job might fail.
If code generation for a parameterized job fails, check the log for an error message that says:
NOTE: Special characters encountered; References may require: %unquote(&<name>);
If you see this message, use the %unquote(&<name>); syntax to resolve the parameter value correctly during execution of the generated code. For example, suppose that the metadata for an external file specified its physical path as the parameter &srcpath. When code is generated for the external file, the &srcpath parameter expands to a string that included slashes and the job fails.
To enable the job to run, open the properties window for the external file, go to the field where the &srcpath parameter is specified, and enter the following string:
%unquote(&srcpath);
After this change, the resolution of the parameter value for the generated code can handle special characters, and the path no longer causes an error.

Control Table Jobs Display an Out of Order Warning

If you use a Control Table job, a warning dialog box might be displayed. This warning indicates that the transformations are out of order even though the order is appropriate and the job runs properly with no error or additional warning messages. This warning message does not appear in the logs when the job is executed.
If you encounter this warning, dismiss the dialog box and ignore the warning.

Parallel Processing Runs Sessions in Serial

If a job is set up to run in parallel, and you see sessions not running in parallel, it is probably because of sessions that finish too quickly. In such cases, the overhead of starting up processes outweighs the benefit of parallel processing and causes the sessions to run in serial.
Last updated: January 16, 2018