Usage Notes for Iterative Jobs

About Usage Notes for Iterative Jobs

These notes apply iterative jobs, which are jobs with a control loop in which one or more processes are executed multiple times.

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. 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 would expand to a string that included slashes and the job would fail.
To enable the job to run, you could 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 would handle special characters, and the path would no longer cause an error.