In SAS/AF the list box is not populated with the xls files in a given folder. If works fine in our current Virtual Desktop Interface (VDI) , the files are listed as expected but not in the Azure Virtual Desktop (AVD) which we are moving to. It is likely an excel versioning issue but simply converting to XLSX does not resolve the bug.
Any thoughts?
Since pretty much any SAS/AF code is custom you are likely going to have to examine the code called to populate list and is likely to be in the initialize method for that particular list box widget.
I am going to make a guess that it will have something to do with how/when the connection to Azure desktop is made in relationship to the SAS/AF application initializing.
Typically a problem with Excel versioning would appear when an attempt to use a file is made, not just listing the names in a location.
Can't point to any specific thing to look for as the last time I actually wrote any SAS/AF code Azure did not exist along with most other "cloud" type data connections.
Thank you for your quick response.
One item I did not mention was that our VDI environment is SAS 9.4 M6 and the Azure environment is SAS 9.4 M7. Are you at all familiar with M6/M7 differences as they pertain to excel features or to SAS A/F?
I suggest you open a Tech Support track on this. SAS/AF is pretty much a legacy SAS product these days and is not widely used so TS is your best bet.
@SarahCath wrote:
Thank you for your quick response.
One item I did not mention was that our VDI environment is SAS 9.4 M6 and the Azure environment is SAS 9.4 M7. Are you at all familiar with M6/M7 differences as they pertain to excel features or to SAS A/F?
When I worked with SAS/AF it was SAS 6 and XLSX weren't created yet.
List boxes in AF must be provided a list of items to display. So there is initialization code to populate a list that is displayed. That code has to talk to the Operating system (been long enough I don't remember all the syntax but it is somewhat similar to the SAS functions DOPEN (directory open), DREAD (directory read) and related external file I/O functions. If the SAS/AF is started before the Azure connection then, depending on how the original coder(s) wrote the application then the links to the Azure may not be open, or need to be restarted. If a directory is read for a list of files before the file is in the location then the list box has to be reinitialized to see the new files. This is why I was guessing about a possible timing issue involved.
Also, if the AF code is looking for a DRIVE letter to start paths and the Azure connection does not have one there may be a serious rewrite needed.
If the AF code is old enough not to even consider XLSX, or was restricted to only populate the list with files of a certain type(s) and does not include XLS or XLSX then the list population code needs to be re-written to accept additional file types.
There are many places that things like this. So if you don't have any of the folks that wrote the AF either spend some time with tech support or prepare to spend a lot of time tracing code and dependencies. At which point I would ask how comfortable are you with the idea of List as data type. The SCL uses lists to maintain stuff in AF related to app behavior.
As hinted, SAS/AF is really really old... but
This is a problem with AF being able to read the names of the files in a directory, and use that list to populate a selection list, right? So AF isn't really trying to open the excel files, it's just trying to get the file names, right? If you put other files in the directory (.txt, .csv, .pdf, etc) can they be seen in the selection list?
It could be that whatever command AF is sending to windows to get the list of files in the directory simply is not working. Is there SCL code that does the actual work? If so, you might be able to debug the SCL code to see what it returns.
Thank you for your reply. Exactly. This is a problem with AF being able to read the names of the files in a directory. Other file extension do not show up either (txt, csv, xlsm, xlsx). We are debugging the SCL code as speak. Not obvious and debugging SCL is horrific.
Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.
Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.