BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
acordes
Rhodochrosite | Level 12

I think it's a little bit tricky what I try to achieve.

It's not the first time that I raise this question or let me say what's my motivation behind.

I´ll re-frame it.

I want to write user input from VA to a cas table. Job execution is not a valid choice for me because I can pass only few parameters and can submit only single values and not arrays.

Therefore I'm convinced that the DDC is the best choice for me.

So my idea goes like this.

The json output which can be made visible by calling https://github.com/sassoftware/sas-visualanalytics-thirdpartyvisualizations/blob/master/samples/json... under the Data-Driven-Object needs to be written code-wise to a file which then will be used by proc http and the json libray engine https://blogs.sas.com/content/sasdummy/2018/01/23/check-json-and-http/ 

As this should be carried out within the DDC object I suppose that I need to wrap the whole code in the htm file.

Any starting point for me @ChrisHemedinger ?

Am I the only one who sees a huge potential in this approach?

In my company business users might refrain from making a bet on SAS Viya's Visual Analytics because they lack some basic data entry features like writing user input to the underlying cas table.

 

1 ACCEPTED SOLUTION

Accepted Solutions
Renato_sas
SAS Employee

It seems to me that what you want to accomplish can be done with DDC. There is actually a simple write-back example in GitHub called dataUpdate.html that does exactly that:

https://github.com/sassoftware/sas-visualanalytics-thirdpartyvisualizations/tree/master/samples

 

This example does not use SAS Job Execution web app, but it could. Instead, it uses REST API calls.

 

There is no limitation on the number of values a parameter can take. So, if the parameter contains a list of values (or an array like you said), all values can be passed to the DDC and eventually to a SAS Job if needed/wanted:

https://communities.sas.com/t5/SAS-Communities-Library/Using-parameters-with-Data-Driven-Content-in-...

 

The jsonDataViewer.html example that you've mentioned (and that's used in the link above) displays the json message received from VA by formatting/transforming it into html, but once you have that json object in your javascript code, you can simply parse and extract the information you need. You could also save that as a text file on disk (the title on this thread), but you don't really need to do that to implement write-back capability.

 

The DDC example called export2CSV.html takes the data from the json message and downloads it as a CSV file to the client via browser. That's just another way of saving information to a file. In this particular example, you could reformat the data any way you want before downloading it. 

 

In the series of articles that start with the URL below, you will see examples of passing that json message to a SAS Job, which then uses the json libname engine to access the information:

https://communities.sas.com/t5/SAS-Communities-Library/Introduction-to-Integration-of-SAS-Visual-Ana...

 

That are many ways you could implement write-back functionality. From the simple example provided in GitHub to more complex ones via SAS Jobs. I hope the links I've shared are helpful and can get you started.

View solution in original post

4 REPLIES 4
Reeza
Super User

In my company business users might refrain from making a bet on SAS Viya's Visual Analytics because they lack some basic data entry features like writing user input to the underlying cas table.

 

Can you please point me to any BI tool that does have this feature? I'm curious to see how it's implemented.

acordes
Rhodochrosite | Level 12

I cannot Reeza.

But I'm convinced that my target picture makes sense and that's feasible to do it under Visual Analytics.

There are some contributions in our community that point into that direction.

The 3-part blog series https://communities.sas.com/t5/SAS-Communities-Library/Data-Entry-in-SAS-Visual-Analytics-8-3-Part-2... shows the way how this could be achieved.

In my particular case we underpin the Residual Value setting process with analytics and make recommendations. The final decision which values go live (they model the value retention for passenger cars) is taken by a committee. They can overwrite the "scoring" decision from the algorithm. As the insights are shared within a report, the commercial or risk-adverse adjustments can perfectly be handled by input objects and parameters.

Once the committee has taken a decision on one car model, this new state should be saved to file. If not, the parameters apply to the next car model which is discussed.

I've implemented a light version of this behavior with "job execution" in viya.

But it has the downside that you can pass only values and not arrays (like i.e. "increase Golf, Polo and A3 by 2%").

ChrisHemedinger
Community Manager

You might be able to use the Reports API in SAS Visual Analytics to get the report definition, and then find the DDC section in the JSON.  One you have that separated out, you could use the JSON libname engine to process as data.

 

@Renato_sas has written a lot about data-driven content, and might have some ideas for you.

Check out SAS Innovate on-demand content! Watch the main stage sessions, keynotes, and over 20 technical breakout sessions!
Renato_sas
SAS Employee

It seems to me that what you want to accomplish can be done with DDC. There is actually a simple write-back example in GitHub called dataUpdate.html that does exactly that:

https://github.com/sassoftware/sas-visualanalytics-thirdpartyvisualizations/tree/master/samples

 

This example does not use SAS Job Execution web app, but it could. Instead, it uses REST API calls.

 

There is no limitation on the number of values a parameter can take. So, if the parameter contains a list of values (or an array like you said), all values can be passed to the DDC and eventually to a SAS Job if needed/wanted:

https://communities.sas.com/t5/SAS-Communities-Library/Using-parameters-with-Data-Driven-Content-in-...

 

The jsonDataViewer.html example that you've mentioned (and that's used in the link above) displays the json message received from VA by formatting/transforming it into html, but once you have that json object in your javascript code, you can simply parse and extract the information you need. You could also save that as a text file on disk (the title on this thread), but you don't really need to do that to implement write-back capability.

 

The DDC example called export2CSV.html takes the data from the json message and downloads it as a CSV file to the client via browser. That's just another way of saving information to a file. In this particular example, you could reformat the data any way you want before downloading it. 

 

In the series of articles that start with the URL below, you will see examples of passing that json message to a SAS Job, which then uses the json libname engine to access the information:

https://communities.sas.com/t5/SAS-Communities-Library/Introduction-to-Integration-of-SAS-Visual-Ana...

 

That are many ways you could implement write-back functionality. From the simple example provided in GitHub to more complex ones via SAS Jobs. I hope the links I've shared are helpful and can get you started.

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 1571 views
  • 5 likes
  • 4 in conversation