Date: Tue, 3 Feb 2004 12:53:39 +0100
Reply-To: Marcin Sroka <sroka@SAWAN.COM.PL>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Marcin Sroka <sroka@SAWAN.COM.PL>
Organization: tp.internet - http://www.tpi.pl/
Subject: Re: [summary] How to compile a SCL model programmatically ?
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Thank you very much !
I knew I could compile a SCL model automatically with compile='Y'
parameter in _setSource method. But I didn't know that you can do it not
only from the FRAME you use in your application but from any SCL source
which creates a proper environment for the model (e.g. proper table). I
couldn't use compile='Y' in the FRAME because sometimes users don't have
write access to codes' folder.
So I've decided to use a solution suggested by Richard A. DeVenezia. To
include compiling SCL models in my compile mechanism I do:
- create an entry compiling SCL models (e.g. _compile_models.scl):
init:
declare sashelp.classes.sasdataset_c data
= _new_ sashelp.classes.sasdataset_c();
/* prepare a proper env for a model:
e.g.
data.table = 'sashelp.class';
*/
data._setSource('myLibrary.myCatalog.myModel.scl', 'Y');
data._term();
/* and so on for other models in this SAS catalog */
return;
- put a command running above entry in a source compiling all entries in
SAS catalog:
/* include macros needed for compilation */
filename m CATALOG 'myLibrary.myCatalog._compile_macros.source';
%include m;
filename m;
/* compiling 'ordinary' entries */
proc build catalog = myLibrary.myCatalog batch;
compile et=frame;
compile select = (
SCLs (but not SCL models)
)
;
quit;
/* compiling models */
dm 'afa c=myLibrary.myCatalog._compile_models.scl';
In my SAS 8.2 application I have an old FRAME with a SAS 6.12 Data Table
Viewer with a SCL model attached to it. I compile the model with above
mechanism and it works well.
Marcin J. Sroka