Two distinct design philosophies currently define how autonomous intelligent systems engage with the world: AI agents and agentic AI. The terms are similar, but they represent technologies with different attributes. The purpose of this introductory post is to distinguish between AI agents and agentic AI, introduce use cases from business and academia, and explore just a few of the ethical and practical consequences of implementing agentic systems. At the end I'll leave you with lots of resources that I am finding helpful in navigating this topic.
Hello
I want to check if string contain substring.
I do it with Find function.
What is the reason that example 1 is working 100% but example 2 is not working well?
30000 exist in 40000,80000,30000
data example1_find;
string = "40000,80000,30000";
substring=30000;
char_substring=compress(put(substring,best.));
pos1 = find(string,char_substring);
IF POS1>0 then ind=1;else ind=0;
run;
data example2_find;
string = "I Love- Banana";
substring='Banana';
pos1 = find(string,substring);
IF POS1>0 then ind=1;else ind=0;
run;
... View more
I am trying to write Json data back to the SAS server. The code creates a temp file but it is empty and in the response.json() I get an error something went wrong: Unexpected token '<' ,",html> <t"... is not valid JSON. I am including both the JavaScript and the server side code. JavaScript Code: const jsonData = { "name": "value", "id": 123 }; fetch('YOUR_SAS_SERVER_ENDPOINT_URL', { /* The url is a stored process the code is listed in the method: 'POST', // Specify the method headers: { 'Content-Type': 'application/json', // Inform the server the data type 'Accept': 'application/json' // Indicate expected response type (optional) }, body: JSON.stringify(jsonData) // Convert the JS object to a JSON string }) .then(response => response.json()) // Process the response (this is where I get the error) .then(data => console.log('Success:', data)) .catch((error) => { console.error('Error:', error); }); Server Side Code; /* Reference the uploaded/posted JSON data from the input stream */ filename indata temp; /* The file gets created but 0 size and no data*/ /* Use the JSON engine to provide read-only sequential access to JSON data */ libname myjson json fileref=indata; /* Process the data (e.g., copy to a work dataset and print) */ proc copy inlib=myjson outlib=work; select alldata; /* 'alldata' is a common default table name created by the JSON engine */ run; title 'Data Received from JavaScript POST'; proc print data=work.alldata; run; /* Clear the libname reference */ libname myjson clear; /* Optionally, write a JSON response back to the client */ data _null_; file _webout type='application/json'; put '{ "status": "Data successfully received and processed by SAS" }'; run; To create the table I am using code similar to: data _null_; file _webout; put '<html>'; put '<head>'; I have tried everything specially on the server side. The Temp file is always 0 size.
... View more
This month's SAS Viya Release Highlights Show features the launch of Code Assistance and Model Development capabilities in SAS Viya Copilot (available 2025.12), in addition to an overview of Model Context Protocol.
We will also be covering updates from the latest SAS Viya releases (2025.10 and 2025.11), including SAS Settings in Microsoft 365, Specific Python Version, and Compare Data Step in SAS Studio.
... View more
Hello SAS Community, I'm experiencing a bizarre issue with Enterprise Guide 8.3.6.200 "Copy Files" task. The macro variable resolves perfectly in the SAS log, but the task's "Resolved Macro Values" window shows only the filename instead of the full UNC path. **Environment:** - SAS Enterprise Guide 8.3.6.200 - SAS Server: Linux - Client: Windows 10 %global DATA_ANNO_MESE DT_VERSION_DIR DT_FILE DEST_PATH
DIN_DIR_SRC ANNO4 ANNO2 MESE TRIM_NUM
DIN_FILE_ESTERI DIN_SRC_FILE FILE_DIN;
/* Parameters */
%let DATA_ANNO_MESE=202512;
%let DT_VERSION_DIR=20251017;
%let DT_FILE=20102025;
%let DEST_PATH=/sas/prod/Projects/myproject/14298;
/* Derived values */
%let ANNO4=%substr(&DATA_ANNO_MESE,1,4);
%let ANNO2=%substr(&ANNO4,3,2);
%let MESE=%substr(&DATA_ANNO_MESE,5,2);
%let TRIM_NUM=%eval((&MESE-1)/3);
/* UNC source folder */
%let DIN_DIR_src=\\fileserver\share\Reports\&DATA_ANNO_MESE.\Received\&DT_VERSION_DIR.;
/* Filename with degree symbol */
%let DIN_FILE_ESTERI=Report &TRIM_NUM.° quarter &ANNO2. data_&DT_FILE..xlsx;
/* Complete paths */
%let DIN_SRC_FILE=&DIN_DIR_SRC.\&DIN_FILE_ESTERI;
%let FILE_DIN=&DEST_PATH./&DIN_FILE_ESTERI;
%put NOTE: DIN_SRC_FILE=&DIN_SRC_FILE;
%put NOTE: FILE_DIN=&FILE_DIN; NOTE: DIN_SRC_FILE=\\fileserver\share\Reports\202512\Received\20251017\Report 3° quarter 25 data_20102025.xlsx NOTE: FILE_DIN=/sas/prod/Projects/myproject/14298/Report 3° quarter 25 data_20102025.xlsx Copy Files Task Settings: Source: &DIN_SRC_FILE Target: /sas/prod/Projects/myproject/14298 ✓ "Resolve SAS macro variable references in file paths" is checked "Test Macro Values" Window Shows: Source: "20102025.xlsx" ← TRUNCATED! Target: /sas/prod/Projects/myproject/14298 ERROR: file 20102025.xlsx does not exist on CLIENT_PC What I've Tried: Removing degree symbol (°) from filename - still truncated Using %nrstr(°) - no change Quoting with %sysfunc(quote()) - still truncated Hard-coding the full path directly in task field (not using macro) - works, but defeats automation Verified macro is %GLOBAL and program runs before Copy Files task in process flow Used %put _GLOBAL_; to confirm all macros are visible and resolve correctly Important Note: I have OTHER programs in the same EG project using the EXACT same pattern with UNC paths and macro variables, and they work perfectly. The only difference appears to be in the filename content or structure. Questions: Why does the "Copy Files" task truncate &DIN_SRC_FILE during resolution, even though the SAS log shows the complete correct path? Is there a character limit or special character issue in the task's macro resolution that differs from normal SAS macro processing? Is this a known bug in EG 8.3.6.200? This is blocking an automated monthly process. Any workarounds or solutions would be greatly appreciated! Thank you!
... View more
The holidays just got a little brighter! SAS Viya Copilot is now officially live, delivering next-generation AI assistance to make your analytics journey faster, smarter, and more intuitive.
... View more
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss. Register now and lock in 2025 pricing—just $495!