Advent of Code is back! Unwrap daily challenges to sharpen your Alteryx skills and earn badges along the way! Learn more now.
Free Trial

Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Only allow partial data output

Tienemientje
8 - Asteroid

Hi all,

 

I was wondering if anyone has any ideas on how to solve this.  I have a flow that writes several outputs in excel, one excel file per country.

I've added this flow to the server, so the country specific contacts can run it for their country.  So they have a dropdown, select their country and get the excel file as output file.

 

This works, but I want to make it better.  I want someone either to only be able to select their own country in the list or to get no output file (an error message if possible) if they select a different country.

 

I found a way here on the community to get the login from the users and I can make a list for which country each login/user is responsible.

 

How would you handle this?

 

Kind regards, Tienemientje

4 REPLIES 4
danilang
19 - Altair
19 - Altair

Hi @Tienemientje 

 

If you can read the user name and convert this to a country, you can remove the country interface tool completely.  Just get the login name, join to a user/country table to get the country and then use the country as a filter in your workflow

 

Dan

Tienemientje
8 - Asteroid

Hi @danilang , thank you for your comment.

 

Yes, I also thought of that one, but I have a few people that are responsible for more than 1 country.  I could group those, but it would be nicer if they could somehow still choose for exactly which country they would like to run the flow.

 

Other flow where I would like to add the same principle is one that should only be ran by one or two people.  If you are not in the user list, and you run it, you should not get an output or even better a sort of error message.  

 

Kind regards, Tienemientje

pedrodrfaria
13 - Pulsar

Hi @Tienemientje 

 

You can add a reference table to the workflow and join them to match with the correct username/country.

 

So the user selects the country and writes their username and password or some kind of code. Then the workflow compares this username/password and the country to the info on the embedded reference table, if it matches, the join will work, if it does not, the J output will be blank and then you set up a logic to give you an error message afterwards if there are no joins.

 

 

danilang
19 - Altair
19 - Altair

Hi @Tienemientje 

 

It's tricky to do if you want some people to be able to select only one of multiple countries.  One way you could try is to build a chained app.  The 1st app gets the user name and then writes a .yxdb with the list of allowed countries for that user.  The second app populates the country drop down from the .xydb.

 

You can use the same principle for your second requirement as well.  In the 1st app add a Message tool that is set to error if the user is not in the approved list with a security violation message.  Configure the 1st app to Cancel Running Workflow on Error in its Runtime config.  If you have Alteryx Server you can just put the workflow in collection and restrict access to the collection.

 

Of course all the methods can be circumvented if the user has Designer and can open the workflow.  In this case you might want to consider encrypting the workflow which makes it run only with no ability to edit it.  Make sure you save a copy because the encryption is one way.  You can't unencrypt it yourself to make changes 

 

Dan

 

Labels
Top Solution Authors