Showing ideas with label Foundation.
Show all ideas
SASware Ballot becomes SAS Product Suggestions
We have reformulated and renamed the communities-based board where you can enter your suggestions to improve SAS products. Read all about this change in the announcement -- and keep those great suggestions coming!
The program editor in Studio under Analytics Pro is missing key features that are present in 9.4. This request is to add two features in the "Open" window, as follows: 1. display file size, file type, and date modified. Allow sorting on any of these fields by clicking at the top of the respective column.
2. display the last X files that were opened. The number of displayed files should be configurable, and double-clicking on a file name should open it.
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
11-17-2024
07:39 PM
Submitted by
Patrick
on
11-17-2024
07:39 PM

Provide a SAS Studio Step (or Custom Step on git) to allow for parallel processing of sub flows (similar functionality to DIS Fork transformation).
Such a step should allow to address requirements as raised in forum discussion Launch asynchronous SAS program within SAS Studio in Viya4
@MMar @JuanS_OCS
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
07-15-2024
04:11 PM
Submitted by
Kurt_Bremser
on
07-15-2024
04:11 PM

Expand the DNUM and DREAD functions with an additional "modifier" parameter, so hidden files (where the name starts with a dot) are included in the count and can be found.
Such files can be listed by using the -a parameter of the ls command, so their "hidden" status is relative, and the additional parameter of the functions would avoid the need to use external commands (which, in turn, forces SAS admins to enable XCMD).
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
11-12-2024
12:52 PM
Submitted by
PaulShannon
on
11-12-2024
12:52 PM

Working on multiple concurrent studies in SAS Studio (using v3.8) causes a risk of confusion as each repository is shown using only the directory name of the local repository. In our example this is always the name "programs" as part of a standard folder structure, no matter the client or study. When registering a Git Repository in SAS Studio or Enterprise Guide, it would be valuable to have an additional input field for a user to specify a friendly name or label to be shown in the client application. The friendly name would be shown instead of the directory name when one is provided. I have attached a mock-up showing the issue and a UI screen of my envisaged solution.
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
05-27-2022
05:54 PM
Submitted by
yabwon
on
05-27-2022
05:54 PM

Hi SAS Community!
The idea for this ballot is to include SAS Packages Framework macros (https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/SPFinit.md) into Base SAS and Viya.
Mature open source communities (e.g. R, Python, or TeX groups) allow users to share code (even complex one) in an easy "transportable" form of packages. I believe that the SAS Community is also one that could use such form of "code exchange". The SAS Packages Framework is a set of macros which allow you to build SAS Packages. (The framework is open source and MIT licensed)
To build or use a package macros from the framework need to be available in the SAS session. So now it requires additional effort for both developers and users who want to work with SAS Packages - the framework has to be downloaded and included for a SAS session. Why no add the framework macros to the SAS deployment so both developers and users could focus on making and using SAS Packages rather than on setting up "environment" to do so?
Articles describing the idea are here and here
Video introduction to the idea can be found here and here.
All the best
Bart
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
06-04-2024
09:19 AM
Submitted by
miclar
on
06-04-2024
09:19 AM

Starting with SAS Viya version Stable 2024.05, PROC PRINT will now display an empty table in the Results window if the source data set has 0 rows. This is a change from previous versions going back to SAS 9. Prior to this change, running PROC PRINT from a data set with 0 rows sent no output to the Results window.
Some users generate "check" data sets in their code that create rows of data and display results only if something unexpected has happened. This recent change in SAS Viya 2024.05 now causes "false alarms" to go off in previously stable code, as results are now generated from empty data sets.
Although this new behavior can be avoided by adding extra code to check the number of rows in the data set prior to running PROC PRINT, end-users' code would be less impacted if an option was added to allow the user to decide if results should or should not be generated when the source data set has 0 rows. Please consider adding such an option. Thanks!
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
10-09-2024
08:05 AM
Submitted by
_dusan
on
10-09-2024
08:05 AM

SAS Studio currently (Viya 2024.08) uses the same icon for SAS Program nodes in flows regardless whether it is embedded code or referenced external file. Looking at a flow, there is no way to distinguish between those two types. If you want to know, you need to click on every single node and look to Code or Node tabs. It would be very beneficial SAS Studio can use different icons for SAS Program nodes based on whether it is embedded code or referenced external file. The same holds for Python Program node. I believe it takes just a little effort with the great impact on usability. Here are just two examples: 1. Embedded code (as there is no path shown at the top of Code tab) Embedded code 2. Code referenced externally (the path to the external file is shown at the top of Code tab) Code referenced externally
... View more
See more ideas labeled with:
-
Foundation
Status:
Suggestion Under Review
Submitted on
08-21-2024
01:46 PM
Submitted by
Simo_Salehy
on
08-21-2024
01:46 PM

Prometheus currently only tracks active jobs, with no visibility into completed ones. Once jobs finish, their status information from the Workload Orchestrator is not available to prometheus, limiting post-completion monitoring and analysis. It would be beneficial to externalize this data to Prometheus for better job status tracking.
... View more
See more ideas labeled with:
-
Analytics
-
Foundation
Status:
New Suggestion
Submitted on
11-10-2022
10:04 AM
Submitted by
Quentin
on
11-10-2022
10:04 AM

While PROC COMPARE technically supports ODS OUTPUT, the actual data output is basically just lines of text, which would need to be parsed in order to extract values from the text. Suggest to have PROC COMPARE produce useful ODS OUTPUT datasets with values stored in meaningful variables.
This code:
data class ;
set sashelp.class(drop=weight) ;
if name='Mary' then height=33 ;
run ;
ods trace on ;
ods output CompareDatasets=CompareDatasets CompareSummary=CompareSummary CompareDifferences=CompareDifferences ;
proc compare base=sashelp.class compare=class ;
run ;
ods output close ;
ods trace off ;
produces three output datasets, all of them just free text:
CompareDatasets
Obs type batch
1 h The COMPARE Procedure
2 h Comparison of SASHELP.CLASS with WORK.CLASS
3 h (Method=EXACT)
4 h
5 h Data Set Summary
6 h
7 h Dataset Created Modified NVar NObs Label
8 d
9 d SASHELP.CLASS 05AUG20:21:16:10 05AUG20:21:16:10 5 19 Student Data
10 d WORK.CLASS 05NOV22:18:58:12 05NOV22:18:58:12 4 19
11 d
12 d
13 h Variables Summary
14 h
15 d Number of Variables in Common: 4.
16 d Number of Variables in SASHELP.CLASS but not in WORK.CLASS: 1.
CompareSummary
Obs type batch
1 d
2 d
3 h Observation Summary
4 h
5 h Observation Base Compare
6 d
7 d First Obs 1 1
8 d First Unequal 14 14
9 d Last Unequal 14 14
10 d Last Obs 19 19
11 d
12 d Number of Observations in Common: 19.
13 d Total Number of Observations Read from SASHELP.CLASS: 19.
14 d Total Number of Observations Read from WORK.CLASS: 19.
15 d
16 d Number of Observations with Some Compared Variables Unequal: 1.
17 d Number of Observations with All Compared Variables Equal: 18.
18 d
19 d
20 h Values Comparison Summary
21 h
22 d Number of Variables Compared with All Observations Equal: 3.
23 d Number of Variables Compared with Some Observations Unequal: 1.
24 d Total Number of Values which Compare Unequal: 1.
25 d Maximum Difference: 33.5.
26 d
27 h The COMPARE Procedure
28 h Comparison of SASHELP.CLASS with WORK.CLASS
29 h (Method=EXACT)
30 h
31 h Variables with Unequal Values
32 h
33 h Variable Type Len Ndif MaxDif
34 d
35 d Height NUM 8 1 33.500
36 d
CompareDifferences
Obs type batch
1 d
2 d
3 h Value Comparison Results for Variables
4 h
5 d __________________________________________________________
6 d || Base Compare
7 h Obs || Height Height Diff. % Diff
8 d ________ || _________ _________ _________ _________
9 d ||
10 d 14 || 66.5000 33.0000 -33.5000 -50.3759
11 d __________________________________________________________
Consider the CompareDifferences table. This would be much for useful it had variables Obs, Variable, BaseValue, CompareValue, Difference.
The current output tables are basically as cumbersome as the pre-ODS approach to reading values from output, where you had to use PROC PRINTTO to send the results to a .lst file, and then input that .lst file as data and parse out the values you want.
PROC COMPARE is one of my favorite PROCS, but the lack of useful output datasets is a big weakness.
(Yes, I realize PROC COMPARE has an out= option, but I don't love that format either : )
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
06-01-2021
01:17 AM
Submitted by
mkeintz
on
06-01-2021
01:17 AM

Frequently a SAS programmer needs to both sort and divide a dataset. Typically these tasks are satisfied via a two stage program: (1) divide the dataset, (2) sort the parts. Something like:
data _asia (where=(origin='Asia')) cars_europe (where=(origin='Europe'))
cars_usa (where=(origin='USA')) /view=_asia;
set sashelp.cars;
run;
proc sort data=_asia out=cars_asia;
by msrp;
run;
proc sort data=cars_europe;
by msrp;
run;
proc sort data=cars_usa;
by msrp;
run;
Enabling proc sort to do both of these tasks (with syntax such as below) would often significantly reduce input/output activity, and offer a bit of code simplification:
proc sort data=sashelp.cars
out=cars_asia (where=(origin='Asia'))
cars_europe (where=(origin='Europe'))
cars_usa (where=(origin='USA')) ;
by msrp;
run;
Of course, the multiple output datasets need not be mutually exclusive like the example above.
... View more
See more ideas labeled with:
-
Foundation
Status:
Suggestion Under Review
Submitted on
06-18-2024
05:25 AM
Submitted by
bqu
on
06-18-2024
05:25 AM

PRX-functions (prxmatch(), prxparse(), etc) that deals with regular expressions still cannot process multi-byte character sets like UTF-8 in the SAS 9.4 releases. It is an essential feature that would facilitate a lot a migration to a MBCS context.
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
09-25-2024
02:03 AM
Submitted by
LinusH
on
09-25-2024
02:03 AM

According to this usage note, there's an old defect for CONNECT USING together with OLEDB access:
48877 - A pass-through connection invokes the Data Link Properties dialog box even though an assigned OLEDB libref is also present (sas.com)
CONNECT USING was imoplemnted because it's conventient to avoid keeping connection information in many places. Also, this especially nice when you want to generete the connections dynamically in PROC SQL.
... View more
See more ideas labeled with:
-
Data Management
-
Foundation
Status:
Suggestion Under Review
Submitted on
02-23-2023
06:15 AM
Submitted by
Ollie539
on
02-23-2023
06:15 AM

We would like the ability to save/export a Studio flow as a .sas external file. To be able to specify the path and filename.
We are migrating from Enterprise Guide and this is a critical feature that is used extensively by many users to export process flows and execute the resulting .sas in a batch environment. We intend to follow the same way of working in SAS Viya/Studio.
... View more
See more ideas labeled with:
-
Foundation
Status:
Suggestion Closed
Submitted on
02-09-2022
08:33 PM
Submitted by
b_clow
on
02-09-2022
08:33 PM

EG should update the program icon (highlighted below) at the same time the process flow program icon is updated. Using example in screen shot, blue circle should changed to a red X at the same time the process flow program icon changes. The Log Summary is also not updated while a program is running. Both features are incredibly helpful due to the notification of errors/warnings prior to completion, and were present in EG 7.
... View more
See more ideas labeled with:
-
Foundation
Status:
Suggestion Closed
Submitted on
05-03-2024
11:12 AM
Submitted by
Patrick
on
05-03-2024
11:12 AM

There have been quite a few spam questions over the past few months where it took sometimes days until they got removed.
Proposal
Implement an automated process that moves questions from the visible list to some hidden queue for investigation if marked by multiple users an inappropriate content.
To avoid that this process can get misused: Only include users that marked the question if they are not New Users but already on a certain level (to exclude fake users).
And just thinking:
Eventually request from New Users for their first few post some additional identification step when posting a question to make it a bit harder to automate posting such questions.
... View more
See more ideas labeled with:
-
Foundation
Status:
Suggestion Closed
Submitted on
04-23-2024
04:31 AM
Submitted by
rsmith1
on
04-23-2024
04:31 AM

Sometimes when a SAS program fails you only want to run from the failing point, it would be nice if there was the functionality in SAS EG to run from where the cursor is to the end of the program. At the moment you have to select the bottom half of the code which is a bit of a faff in a big program.
... View more
See more ideas labeled with:
-
Foundation
Status:
New Suggestion
Submitted on
01-27-2023
11:08 AM
Submitted by
mtnbikerjoshua
on
01-27-2023
11:08 AM

By default, PROC REPORT suppresses repeated values of group variables. This is very handy most of the time, but it would be really nice to have an option to display the value of the group variable on every row. There is a simple workaround, but when you have many group variables you can easily end up with four or five compute blocks and a slew of duplicate variables.
Example Data:
data example;
input chargrp $ numgrp chargrp2 $ value;
datalines;
grpa 1 grpx 5
grpa 2 grpx 23
grpa 1 grpy 15
grpa 2 grpy 2
grpb 1 grpx 13
grpb 1 grpy 11
grpb 2 grpy 12
grpb 2 grpy 34
;
run;
Default Functionality:
proc report data=example;
column chargrp numgrp chargrp2 value;
define chargrp / group;
define numgrp / group;
define chargrp2 / group;
define value / sum;
run;
Current Workaround:
proc report data=example;
column chargrp numgrp disp_numgrp chargrp2 value;
define chargrp / group;
define numgrp / group noprint;
define disp_numgrp / "NUMGRP" computed;
define chargrp2 / group;
define value / sum;
compute chargrp;
if not missing(chargrp) then hold_chargrp = chargrp;
else chargrp = hold_chargrp;
endcomp;
compute disp_numgrp;
if not missing(numgrp) then hold_numgrp = numgrp;
disp_numgrp = hold_numgrp;
endcomp;
run;
Desired Functionality:
proc report data=example repeatgroupval;
column chargrp numgrp chargrp2 value;
define chargrp / group;
define numgrp / group;
define chargrp2 / group;
define value / sum;
run;
/* or */
proc report data=example;
column chargrp numgrp chargrp2 value;
define chargrp / group repeatval;
define numgrp / group repeatval;
define chargrp2 / group;
define value / sum;
run;
P.S. I'm surprised this hasn't been suggested already, but I couldn't find it anywhere. If it has already been suggested, feel free direct me to that post and mark this as a duplicate.
... View more
See more ideas labeled with:
-
Foundation
Status:
Suggestion Implemented
Submitted on
02-28-2020
11:10 PM
Submitted by
jbaggs62
on
02-28-2020
11:10 PM

I think having an extension for visual studio code would be amazing. It would add another avenue for SAS Users to integrate their code into repo like github and gitlab, which in turns allows better versioning control for teams and pipelines.
Features
Highlight incorrect syntax such as ';' missing
autocomplete feature for procs and commonly used syntax
color coding for specific things like proc and such.
suggestive typing
This would function similar
https://blogs.sas.com/content/sasdummy/2017/08/25/npp-with-sas/ but for visual studio code.
Someone has started (https://marketplace.visualstudio.com/items?itemName=77qingliu.sas-syntax) but it still missing a lot of support and it something that SAS could help with.
-Regards
Jake
... View more
See more ideas labeled with:
-
Foundation
Status:
Suggestion Under Review
Submitted on
09-16-2023
12:04 AM
Submitted by
Patrick
on
09-16-2023
12:04 AM

When running below code more than once in a session I'm getting a warning that I can't suppress.
proc fcmp outlib=work.funcs.demo;
function demo(in);
out=in+1;
return (out);
endsub;
run;
option CMPLIB=work.funcs;
data _null_;
xx=demo(5);
run;
WARNING: Function 'demo' was defined in a previous package. Function 'demo' as defined in the current program will be used as
default when the package is not specified.
What I would like as an extension to PROC FCMP are two new options: NOWARN: Suppress above warning and write a NOTE instead.
NOREPLACE: To not replace the already compiled function. Write a NOTE that the function already exists and won't be replaced.
... View more
See more ideas labeled with:
-
Foundation
PROC IMPORT uses n GUESSINGROWS ( default 20, can be set to whatever ) from the DATAFILE to determine if the OUT dataset columns should be numeric or character. Many numeric account numbers ( e.g. credit cards ) are 16 digits in length which exceed the max value for an 8 byte numeric column of 9,007,199,254,740,992. As a result the large numbers are not imported accurately. Since the DATEFILE is being parsed to GUESSINGROWS depth in any case, the max value could be known from the rows examined. If the max value is > 9,007,199,254,740,992 PROC IMPORT could set the data type in the column to character to ensure all digits are retained.
... View more
See more ideas labeled with:
-
Foundation