BookmarkSubscribeRSS Feed
gkopanidis
Calcite | Level 5

Hello,

 

There is a strange error I receive when I execute a loop with parallel processing into Data Integration Studio 4.906.

 

Specifically, I have an If Condition to specify the tables' technology among SQL, Oracle and DB2. After the successful execution of the If Condition, there are three different jobs, one for each technology, that manipulate properly the tables. Inside each job there is a loop node in which each table is transformed with some code. Here comes the error. When I try to execute this loop node giving as loop options the execution iteration in parallel with number 4, I receive the following error:   "ERROR 180-322: Statement is not valid or it is used out of proper order". But when I run the loop with no execution iteration in parallel then it runs successfully.

 

Is there anything that I can change in the loop options that is responsible for this error?error.png

5 REPLIES 5
JosvanderVelden
SAS Super FREQ
Are there iterations that are dependent on results (tables/views) or macro variables set in previous iterations?
gkopanidis
Calcite | Level 5

Hello,

 

I read a txt file and I write it in a work table. The work table contains only one column with distinct tables' names that I want to manipulate later. Then I execute the loop in which I create sample Data Sets based on the context of the previous work table. The parallel processing takes each time 4 rows from the work table. SAS code receives as parameter the name of each table.

capture.png

Patrick
Opal | Level 21

It's been a while that I've used DIS but from memory the main difference in the generated code when using parallel execution is that the code in the inner node (your Create Sample Data Sets) gets executed in an rsubmit block. 

 

My first test would be to set the number of parallel jobs to 1 and see what happens.

Patrick_0-1692411689848.png

If this still fails (what I'd expect) then my next test would be to replace your code in the inner node with a simple hello world program. 

This lets you test if there is something going wrong with creating the rsubmit block with parameter passing or if it's with your actual code.

 

If it's the parameter passing then you would need to look into your parameter table if there is something that potentially could break the generated code (like unbalance quotes, or macro tokens). 

If the hello world program works then you would need to dig into the log to actually understand what exactly creates the error message - like if your program uses some macro variable that gets created in the parent process but doesn't get passed to the child process.

gkopanidis
Calcite | Level 5

Hello,

 

Thank you for your answer.

 

The first test ( parallel jobs to 1) failed. Second test (hello world program) also failed.

 

Let me remind you that if I disable the parallel execution, the job will run successfully.

 

How can I check what's going wrong with the rsubmit block?

Patrick
Opal | Level 21

@gkopanidis wrote:

Hello,

....

How can I check what's going wrong with the rsubmit block?


You need to look into the DIS generated code and log. 

You can also grab the generated code for the whole job and run it out of SAS EG/SAS Studio. Make sure that set options mprint mlogic symbolgen to get sufficient log messaging.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 792 views
  • 1 like
  • 3 in conversation