DATA Step, Macro, Functions and more

Adding checkpoints and Restart from checkpoints

Reply
Occasional Contributor
Posts: 19

Adding checkpoints and Restart from checkpoints


Hello,

I need to add checkpoints at each stage and a restart from checkpoint to the code below.  I will be running this code monthly and if it fails at any point, I will need to restart it at the point in which it failed, instead of rerunning the entire program again.  I would like to be notified as well if there is an error.  Would anyone be able to assist me with this?

PROC SQL;
CREATE TABLE work.mobpp1 AS
SELECT DISTINCT soc, feature_code, rate,
    datepart(effective_date)format=mmddyy10. AS effective_date,
    datepart(sys_creation_date)format=mmddyy10. AS sys_creation_date,
    datepart(expiration_date)format=mmddyy10. AS expiration_date,
    "&sysdate"d as Extract_Date format= MONYY7.
FROM bmlrwork.pp_rc_rate
WHERE feature_code NOT IN ('PNETRM');
QUIT;


PROC SQL;
CREATE TABLE work.mobpp2 AS
SELECT DISTINCT soc, soc_description, product_type, service_provider
FROM bmlrwork.soc;
QUIT;


PROC SQL;
CREATE TABLE work.mobpp3 AS
SELECT DISTINCT t1.soc, t1.feature_code, t1.rate, t1.effective_date, t1.sys_creation_date, t1.expiration_date,
    t2.soc_description, t2.product_type, t2.service_provider, t1.Extract_Date
FROM work.mobpp1 AS t1
LEFT JOIN work.mobpp2 AS t2
ON t1.soc = t2.soc;
QUIT;

PROC SORT data=work.mobpp3;
BY soc DESCENDING effective_date;
RUN;


DATA work.mobpp4;
SET work.mobpp3;
BY soc DESCENDING effective_date;
IF first.soc THEN OUTPUT;
RUN;


DATA RASHARE.GF_TEMP_MOBILITY_RC_JAN13 RASHARE.GF_TEMP_IPBB_RC_JAN13;
set work.mobpp4;
IF service_provider in ('ALL','MOBL')THEN OUTPUT RASHARE.GF_TEMP_MOBILITY_RC_JAN13;
ELSE OUTPUT RASHARE.GF_TEMP_IPBB_RC_JAN13;
RUN;

Super Contributor
Super Contributor
Posts: 3,174

Re: Adding checkpoints and Restart from checkpoints

One technique is to have a permanent SAS control/progress tracking member which you would update after each key processing point, and then convert your SAS program to execute as a macro with %IF / %THEN %DO; %* your code goes here; %END; (condition code-piece execution) within the macro.  And at the end, a successful completion would again update the SAS control/progress tracking member accordingly.

Scott Barry

SBBWorks, Inc.

Occasional Contributor
Posts: 8

Re: Adding checkpoints and Restart from checkpoints

There are options in SAS Batch programming to assign as part of command line that you can use to add checkpoints.

You need to run your programs in modes- Checkpoint mode and restart mode to help ease of operations.

Here are the options that you can use:

stepchkpt

steprestart

noworkinit

noworkterm

errorcheck

errorabend

Ask a Question
Discussion stats
  • 2 replies
  • 296 views
  • 0 likes
  • 3 in conversation