BookmarkSubscribeRSS Feed
asap168rh
Calcite | Level 5

What is the best way to list all programs included in an egp file?

Any tool? or SAS codes to share?

12 REPLIES 12
AlanC
Barite | Level 11

Rename to have a .zip extension. You can see the XML from there. After that, you need to search for the correct task or parse.

 

https://github.com/savian-net
yabwon
Onyx | Level 15

I did a macro for that some time ago:

%macro getSASfilesFromEGP(
  path
 ,libOut
);
%local inZIP inF outF;
%let inZIP = z%sysfunc(datetime(),hex7.);
%let   inF = i%sysfunc(datetime(),hex7.);
%let  outF = o%sysfunc(datetime(),hex7.);
data _null_;
  rc0 = filename("&inZIP.", "&path.", "ZIP", "lrecl=1 recfm=n");
  did = dopen("&inZIP.");

  did = dopen("&inZIP.");
  if not did then
    do;
      put "ERROR- Aborting.";
      stop;
    end;

  do i=1 to dnum(did);
    file = dread(did, i);

    if upcase(scan(file,-1,".")) ne "SAS" then continue;

    rc1 = filename("&inF.", "&path.", "ZIP", "member='" !! strip(file) !! "' lrecl=1 recfm=n");

    rc2 = filename("&outF.", catx("/", dequote(symget("libOut")), translate(file,"_","/")), "DISK", "lrecl=1 recfm=n");
    rc3 = fcopy("&inF.", "&outF.");

    if ^fexist("&outF.") then put "WARNING: UnZIP failed.";
    put "NOTE: FILE " file;
    put "NOTE- " (rc:) (=);

    rcY = filename("&inF.");
    rcZ = filename("&outF.");
  end;

  did = dclose(did);
run;

%mend getSASfilesFromEGP;

%getSASfilesFromEGP(
  C:\Users\bart\Desktop\Project.egp
 ,C:\Users\bart\Desktop\TEST123
)

 

What it does is extraction of *.sas files from EGP to a separate folder, but you can easily adjust it.

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



MdeCuypere
Calcite | Level 5

Thank you, this worked like a charm for me.

Bibishan_Rathod
Calcite | Level 5
I trying to do such thing for converting .ego file to .sas file it gives me warning : UnZip failed, and doesn't gives the output as well How can I do for that.
LinusH
Tourmaline | Level 20

Please share the "complete" log.

Data never sleeps
yabwon
Onyx | Level 15

Log ?

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



Bibishan_Rathod
Calcite | Level 5

Hi Team, I execute the code for conversion of .egp to .sas 

Following is the log. 

Any one can Provide me  the correct code for the following.

 

 

1 The SAS System 03:37 Monday, January 22, 2024

1 ;*';*";*/;quit;run;
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL='Macro_For_converting. EGP to .SAS.sas';
4 %LET _CLIENTPROCESSFLOWNAME='Standalone Not In Project';
5 %LET _CLIENTPROJECTPATH='';
6 %LET _CLIENTPROJECTPATHHOST='';
7 %LET _CLIENTPROJECTNAME='';
8 %LET _SASPROGRAMFILE='C:\Users\XXXXX\LOC Analysis\Macro_For_converting. EGP to .SAS.sas';
9 %LET _SASPROGRAMFILEHOST='xxxx';
10
11 ODS _ALL_ CLOSE;
12 OPTIONS DEV=SVG;
13 GOPTIONS XPIXELS=0 YPIXELS=0;
14 %macro HTML5AccessibleGraphSupported;
15 %if %_SAS_VERCOMP_FV(9,4,4, 0,0,0) >= 0 %then ACCESSIBLE_GRAPH;
16 %mend;
17 FILENAME EGHTML TEMP;
18 ODS HTML5(ID=EGHTML) FILE=EGHTML
19 OPTIONS(BITMAP_MODE='INLINE')
20 %HTML5AccessibleGraphSupported
MLOGIC(HTML5ACCESSIBLEGRAPHSUPPORTED): Beginning execution.
MLOGIC(_SAS_VERCOMP_FV): Beginning execution.
MLOGIC(_SAS_VERCOMP_FV): Parameter FMAJOR has value 9
MLOGIC(_SAS_VERCOMP_FV): Parameter FMINOR has value 4
MLOGIC(_SAS_VERCOMP_FV): Parameter FMAINT has value 4
MLOGIC(_SAS_VERCOMP_FV): Parameter VMAJOR has value 0
MLOGIC(_SAS_VERCOMP_FV): Parameter VMINOR has value 0
MLOGIC(_SAS_VERCOMP_FV): Parameter VMAINT has value 0
MLOGIC(_SAS_VERCOMP_FV): %LOCAL MAJOR
MLOGIC(_SAS_VERCOMP_FV): %LOCAL MINOR
MLOGIC(_SAS_VERCOMP_FV): %LOCAL MAINT
MLOGIC(_SAS_VERCOMP_FV): %LOCAL CURMAJ
MLOGIC(_SAS_VERCOMP_FV): %LOCAL CURMIN
MLOGIC(_SAS_VERCOMP_FV): %LOCAL CURMNT
MLOGIC(_SAS_VERCOMP_FV): %LET (variable name is CURMAJ)
MLOGIC(_SAS_VERCOMP_FV): %IF condition %eval(&CurMaj EQ V) is FALSE
MLOGIC(_SAS_VERCOMP_FV): %LET (variable name is MAJOR)
MLOGIC(_SAS_VERCOMP_FV): %LET (variable name is MINOR)
MLOGIC(_SAS_VERCOMP_FV): %LET (variable name is MAINT)
MLOGIC(_SAS_VERCOMP_FV): %LET (variable name is CURMIN)
MLOGIC(_SAS_VERCOMP_FV): %LET (variable name is CURMNT)
MLOGIC(_SAS_VERCOMP_FV): %IF condition %eval(&major NE &CurMaj) is FALSE
MLOGIC(_SAS_VERCOMP_FV): %IF condition %eval(&minor NE &CurMin) is FALSE
MLOGIC(_SAS_VERCOMP_FV): %IF condition "&maint" = "" is FALSE
MLOGIC(_SAS_VERCOMP_FV): Ending execution.
MLOGIC(HTML5ACCESSIBLEGRAPHSUPPORTED): %IF condition %_SAS_VERCOMP_FV(9,4,4, 0,0,0) >= 0 is TRUE
MPRINT(HTML5ACCESSIBLEGRAPHSUPPORTED): ACCESSIBLE_GRAPH
MLOGIC(HTML5ACCESSIBLEGRAPHSUPPORTED): Ending execution.
21 ENCODING='utf-8'
22 STYLE=HtmlBlue
23 NOGTITLE
24 NOGFOOTNOTE
25 GPATH=&sasworklocation
26 ;
NOTE: Writing HTML5(EGHTML) Body file: EGHTML
27
28 %getSASfilesFromEGP(
MLOGIC(GETSASFILESFROMEGP): Beginning execution.
2 The SAS System 03:37 Monday, January 22, 2024

29 \XXXX\Table Level Info\Choices Public.egp
30 ,\XXXX\Table Level Info\Test_Choices Public.egp.sas
31 )
MLOGIC(GETSASFILESFROMEGP): Parameter PATH has value \XXXXX\Table Level Info\Choices Public.egp
MLOGIC(GETSASFILESFROMEGP): Parameter LIBOUT has value \XXXXX\Table Level Info\Test_Choices
Public.sas
MLOGIC(GETSASFILESFROMEGP): %LOCAL INZIP INF OUTF
MLOGIC(GETSASFILESFROMEGP): %LET (variable name is INZIP)
MLOGIC(GETSASFILESFROMEGP): %LET (variable name is INF)
MLOGIC(GETSASFILESFROMEGP): %LET (variable name is OUTF)
MPRINT(GETSASFILESFROMEGP): data _null_;
MPRINT(GETSASFILESFROMEGP): rc0 = filename("z87E74CF", "\XXXXXX\Table Level Info\Choices Public.egp",
"ZIP", "lrecl=1 recfm=n");
MPRINT(GETSASFILESFROMEGP): did = dopen("z87E74CF");
MPRINT(GETSASFILESFROMEGP): did = dopen("z87E74CF");
MPRINT(GETSASFILESFROMEGP): if not did then do;
MPRINT(GETSASFILESFROMEGP): put "ERROR- Aborting.";
MPRINT(GETSASFILESFROMEGP): stop;
MPRINT(GETSASFILESFROMEGP): end;
MPRINT(GETSASFILESFROMEGP): do i=1 to dnum(did);
MPRINT(GETSASFILESFROMEGP): file = dread(did, i);
MPRINT(GETSASFILESFROMEGP): if upcase(scan(file,-1,".")) ne "SAS" then continue;
MPRINT(GETSASFILESFROMEGP): rc1 = filename("i87E74CF", "\XXXXXX\Table Level Info\Choices Public.egp",
"ZIP", "member='" !! strip(file) !! "' lrecl=1 recfm=n");
MPRINT(GETSASFILESFROMEGP): rc2 = filename("o87E74CF", catx("/", dequote(symget("libOut")), translate(file,"_","/")), "DISK",
"lrecl=1 recfm=n");
MPRINT(GETSASFILESFROMEGP): rc3 = fcopy("i87E74CF", "o87E74CF");
MPRINT(GETSASFILESFROMEGP): if ^fexist("o87E74CF") then put "WARNING: UnZIP failed.";
MPRINT(GETSASFILESFROMEGP): put "NOTE: FILE " file;
MPRINT(GETSASFILESFROMEGP): put "NOTE- " (rc:) (=);
MPRINT(GETSASFILESFROMEGP): rcY = filename("i87E74CF");
MPRINT(GETSASFILESFROMEGP): rcZ = filename("o87E74CF");
MPRINT(GETSASFILESFROMEGP): end;
MPRINT(GETSASFILESFROMEGP): did = dclose(did);
MPRINT(GETSASFILESFROMEGP): run;

WARNING: UnZIP failed.
NOTE: FILE CodeTask-5goL9D7mF1FTZhlZ/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE CodeTask-DQFwzyDm1Ntux9g8/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE CodeTask-F87STkkidBpewqb5/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE CodeTask-fUvpTOcbZKdfbq6b/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE CodeTask-ia9BPlQpWGdc2kxl/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE CodeTask-LGCnRkqxFxDam3DA/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE CodeTask-xkfpnQLUmV1yXA48/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
3 The SAS System 03:37 Monday, January 22, 2024

NOTE: FILE CodeTask-XOjlUsaBApph6gpp/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-5goL9D7mF1FTZhlZ/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-DQFwzyDm1Ntux9g8/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-F87STkkidBpewqb5/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-fUvpTOcbZKdfbq6b/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-ia9BPlQpWGdc2kxl/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-LGCnRkqxFxDam3DA/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-xkfpnQLUmV1yXA48/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
WARNING: UnZIP failed.
NOTE: FILE KsmBlKFT9PBqt3yc/PFD-PyxHeY9lUgLQvPHT/CodeTask-XOjlUsaBApph6gpp/code.sas
rc0=0 rc1=0 rc2=0 rc3=20006
NOTE: DATA statement used (Total process time):
real time 0.34 seconds
cpu time 0.15 seconds

MLOGIC(GETSASFILESFROMEGP): Ending execution.
32
33 %LET _CLIENTTASKLABEL=;
34 %LET _CLIENTPROCESSFLOWNAME=;
35 %LET _CLIENTPROJECTPATH=;
36 %LET _CLIENTPROJECTPATHHOST=;
37 %LET _CLIENTPROJECTNAME=;
38 %LET _SASPROGRAMFILE=;
39 %LET _SASPROGRAMFILEHOST=;
40
41 ;*';*";*/;quit;run;
42 ODS _ALL_ CLOSE;
43
44
45 QUIT; RUN;
46

yabwon
Onyx | Level 15

LibOut should be a directory.

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



Bibishan_Rathod
Calcite | Level 5

Hi team,

I convert the .egp to .sas file and got a list of converted program file, how can I maintain the Process flow as per like in the .egp file, the running sequence as per egp file.

 

If any one can help me on that .I would be helpful for me, Thanks.

yabwon
Onyx | Level 15

If you have a directory, e.g., "C:\ABCD\" and sas code files: stepOne.sas, stepTwo.sas, and stepThree.sas, you can create a new file named "runThemAll.sas" with the following content:

 

filename basePath "C:\ABCD\";

%include basePath(stepOne.sas);
%include basePath(stepTwo.sas);
%include basePath(stepThree.sas);

 

When executed the runThemAll.sas file code will read and execute code from each file one by one, just like the EG flow.

 

But if I were you I would seriously consider creating a SAS Package to do your job. Here is the SAS Packages Framework, here is a tutorial on how to build and use packages, an a video presentation.

 

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



Bibishan_Rathod
Calcite | Level 5

Hi Team, 

Can any provide the sample code for how to combine those multiple .sas file under the following file name.

"runThemAll.sas".

Bibishan_Rathod
Calcite | Level 5

Hi Team, 

We did this conversion but not in proper sequence like EG process flow. If any one know the how to adjust the process flow while running the above script. 

 

Thanks in Advance.

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

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
  • 12 replies
  • 2139 views
  • 6 likes
  • 6 in conversation