Loading...
Loading...
Building full SASjs applications — project structure, sasjsconfig.json, services/jobs/macros folders, multi-target (SAS 9 / Viya / SASjs server) configuration, streaming frontends, mocks and tests. Use when creating or modifying a SASjs app, editing sasjsconfig.json, writing backend services that return JSON to a web frontend, or structuring a project like Data Controller.
npx skill4agent add sasjs/skills sasjs-framework@sasjs/cli@sasjs/adapter_weboutsasjs/
sasjsconfig.json # project + target configuration
macros/ # project-specific macros (macroFolders)
services/ # web services called from the frontend
jobs/ # jobs (scheduled / flow / long-running)
programs/ # plain programs (initProgram, termProgram, utilities)
db/ # DDL + static data per library (sasjs db)
tests/ # tests run by `sasjs test`
mocks/ # mock responses for offline frontend dev (syncFolder)
doxy/ # extra doxygen content for `sasjs doc`targets[]macroFoldersbinaryFoldersserviceConfig.serviceFoldersinitProgramjobConfig.jobFoldersprogramFoldersstreamConfigstreamWeb: truewebSourcePathsyncFoldertestConfigsasjs testtargets[]serverUrlserverTypeSAS9SASVIYASASJSappLoc/Public/app/myapptargets/viya/macros_viyahttpsAgentOptionsdeployConfigsasjsconfig-schema.json"$schema": "https://cli.sasjs.io/sasjsconfig-schema.json"services/<folder>/<name>initProgram_webout/**
@file
@brief Example service returning data
<h4> SAS Macros </h4>
@li mp_jsonout.sas
@li mp_abort.sas
**/
/* validation / logic here */
%mp_jsonout(OPEN)
%mp_jsonout(OBJ,results,dslabel=results)
%mp_jsonout(CLOSE)%mp_abort(...)mf_abort%mp_abort%if/%elseiftrue=%mp_abort(iftrue= (%mf_existds(work.results)=0)
,mac=&_program
,msg=%str(No results found)
)%include_webout%mp_abort(mode=INCLUDE)work.mp_abort_errdstargets/<name>/macros_*mm_*mv_*ms_*sasjs lint.sas/* ... */sasjs/testssasjs testsasjs/mockssasjsconfig.jsondcdwp_frsplato