ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Running multiple SAS jobs using VB (https://www.excelbanter.com/excel-programming/396789-running-multiple-sas-jobs-using-vbulletin.html)

fullers

Running multiple SAS jobs using VB
 
I have the following code which opens and runs a couple of SAS jobs. The
problem is it submits the SAS jobs one after the other without waiting for
the first to complete. This means a message box appears in SAS that says:

Note: is currently executing. All subsewuently submitted statements will not
begin executing until its completion.

What I need VB to do is wait until the first job has finished and then
submit the second. I could make VB wait for a defined length of time but due
to server speeds it is hard to say how long that will take. I don't want to
make it a long time as that will defeat the purpose of automating it.

Is there a way to let VB know when the first job has completed? Code below:

Sub macro1()

Dim OleSAS As Object

Set OleSAS = CreateObject("SAS.Application")

OleSAS.Visible = True

ExePath = "%include
'\\Appsl2021\RISKDATA2\Reporting\AutoExec\Reportin gAutoExec.sas';"
OleSAS.submit (ExePath)

ExePath = "%include '\\Appsl2021\RISKDATA2\Reporting\Programs\Daily
Production\005. Daily Recoveries Analysis\Daily Jobs - Wasis Checks\PL New
Daily Wasis.sas';"
OleSAS.submit (ExePath)

ExePath = "%include '\\Appsl2021\RISKDATA2\Reporting\Programs\Daily
Production\005. Daily Recoveries Analysis\Daily Jobs - Wasis Checks\PL New
Daily Colls Wasis.sas;"
OleSAS.submit (ExePath)

End Sub

Tim Williams

Running multiple SAS jobs using VB
 
Have you tried using the SAS "wait" command ?

http://www.google.com/search?source=...q=sas+ole+wait

Tim



"fullers" wrote in message
...
I have the following code which opens and runs a couple of SAS jobs. The
problem is it submits the SAS jobs one after the other without waiting for
the first to complete. This means a message box appears in SAS that says:

Note: is currently executing. All subsewuently submitted statements will
not
begin executing until its completion.

What I need VB to do is wait until the first job has finished and then
submit the second. I could make VB wait for a defined length of time but
due
to server speeds it is hard to say how long that will take. I don't want
to
make it a long time as that will defeat the purpose of automating it.

Is there a way to let VB know when the first job has completed? Code
below:

Sub macro1()

Dim OleSAS As Object

Set OleSAS = CreateObject("SAS.Application")

OleSAS.Visible = True

ExePath = "%include
'\\Appsl2021\RISKDATA2\Reporting\AutoExec\Reportin gAutoExec.sas';"
OleSAS.submit (ExePath)

ExePath = "%include '\\Appsl2021\RISKDATA2\Reporting\Programs\Daily
Production\005. Daily Recoveries Analysis\Daily Jobs - Wasis Checks\PL New
Daily Wasis.sas';"
OleSAS.submit (ExePath)

ExePath = "%include '\\Appsl2021\RISKDATA2\Reporting\Programs\Daily
Production\005. Daily Recoveries Analysis\Daily Jobs - Wasis Checks\PL New
Daily Colls Wasis.sas;"
OleSAS.submit (ExePath)

End Sub





All times are GMT +1. The time now is 12:56 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com