I have developed a tool that does file to file compares for character delimited files (such as .csv) and has two parts (chained app). The first asks the user for their new and old file and what types of delimiter the files use and analyzes the two files to find which field names they share and saves off the information in an yxdb file.
The 2nd part has the user select their "Key fields" via a list box which controls how the data between the two files are merged together and which rows from each file are compared.
While running this in designer I have used things like [Engine.WorkflowDirectory] or %Engine.WorkflowDirectory% to store and read in my intermediate files However, I'm working on trying to get my tool ready for gallery and this [Engine.WorkflowDirectory] seems to change from run to run when its ran in on the gallery and I've been told that I can't do chained apps on the Gallery, which means the user will need to submit each separate app in sequence manually and the %Engine.WorkflowDirectory% can change from tool to tool.
My biggest hurdle right now is how to track this intermediate data when running on the server and I was hoping to possibly use __cloud:UserId to somehow control the filename that is used for each individual user. However, I can't seem to find a way to use this value within the list box.
I tried using the text input tool to capture the __cloud:UserId and then have that override a Input Data tool's filename and then have that used in the list box interface but the issue is that the list box only see's the value that is listed within the workflow and doesn't actually show the "updated" file name info because of the order of how things are ran in alteryx (initial values within the workflow --> Interface Tools --> Updated values within the workflow) and therefore the interface list box never see's the updated file path.
I've also been told not to use the file browser interface tool within gallery because it stores the data of that file in the gallery and for our organization that doesn't fit within our security protocols.
Is there any way to use __cloud:UserId within a file name used in a List Box when selecting "External Source - Must contain Name && Value fields"? I tried something like this
UNC Folder path/%Question.__cloud:UserId%.yxdb
(where UNC Folder path was actually a folder path the I have access too)
but it doesn't seem like I can reference Interface Questions like that.
Anyone have any ideas on how to make this work?
Hi @AdamSt
Do you try to use relative path for temporary file?
Please note that you have to upload the gallery with temporary file.
I think it will work well.
Hi @AdamSt
You said in your original post "I've been told that I can't do chained apps on the Gallery". Is this a limitation imposed by your IT department? This certainly isn't an Alteryx imposed limitation.
To get around the "file copied to server by interface tools" limitation, you could use 2 text boxes where the user can paste the two paths. Not ideal, but it will be compliant. This workaround is dependent on using chained apps in your gallery, of course.
Dan
Hi @danilang
Thank you for your response.
"I've been told that I can't do chained apps on the Gallery" is a limitation imposed by my IT department. They don't want us to used chained apps because we don't want any possible sensitive information stored on the virtual machine due to our security protocols.
As to using text boxes to have the user enter the UNC location of their two files, that is already the plan for getting the initial data. The issue really comes down to not being able to dynamically determine a list box contents without asking the user to provide the intermediate data in a file browse tool (which I can't use due to the same reason as above). If I ask the user to provide that intermediate file location in a text box the text box tool is not able to update the list box's file location like the file browse tool can.
Thanks for your response.
I have used the temporary files and relative path before when I use Designer and its not running on on the Gallery. However, I cannot use temporary files on the Gallery because I'm not allowed to store possible sensitive data on the Galleries Virtual machines because it goes against our security protocols (even if the data is stored just during the running of the app).
Oh, I see that it is prohibited by security.
If you can use database, you will solve the problem.
Can you use DB?