11-17-2014 12:56 PM
I am rather new at the program aspect of SAS and I have a program in the middle of my workflow which adds a new column to the data set
AffectedAccounts = dif(NbrOfAccts);
RunningTotal = lag(NbrOfAccts);
However, I always have the issue that when I run the project the program always runs early on.. much earlier than the dataset that it needs to update.
My question is, is there a way to delay or make the program wait or run conditionally after the query that creates the work.finalreport data has run?
Any help would be appreciated..
Running EG 5.1
11-17-2014 01:29 PM
You need to add it in to your process flow at the correct point.
You can right click the program and "draw" the connections to insert the program at the correct point. You may need to "break" your current process flow to get it inserted at the appropriate point.
11-17-2014 01:41 PM
I mean the program itself displays as if it were in the correct location, but it just runs in the beginning of my flow..
See image ("Program"), when I execute the flow, it lights up right away and runs rather quickly way before the "Final Report" query has run
11-17-2014 01:49 PM
"lights up " only means it is in the "active" queue, it still runs follow the flow. If this is your only proof, then you don't have a case here. Have you actually checked the project log and there are signs to support your conclusion?
11-17-2014 01:55 PM
What I meant is that it lights up, then completes early into the process much before the other query completes which results in the following:
By this time, the program has already executed, as you can see much before the Final Report query
Resulting in this:
11-17-2014 02:08 PM
I see. So if you want Query Builder "Final Report" to finish first before launching of the "program", then it should be look like this:
Then after your first run, you may find a table element inserted between the query and your program. Have I understood you correctly?
11-17-2014 02:49 PM
One way to more easily detect errors like this is to not rename the table to have the same name. If you give it a new name and make sure the next process uses the new table name it becomes easier to make sure things are in the right place .