I was forced to move to the 2021 version of Alteryx from a 2019 version and in both the 2021 and 2022 versions of Alteryx I cannot perform multiple output functions during one workflow run. I am outputting to 4 sheets in one Excel file then to two other separate Excel files as well as updating 2 Sharepoint pages, for the Sharepoint outputs I am adding new records to one of the pages as well as updating other records, on the second page the workflow is only updating records, as well as sending an email out to the concerned team.
In the 2019 version I was able to do all of those functions in one run of the workflow with no issues with a processing time of about 2 minutes. In both the 2021 and 2022 versions of Alteryx I have to run the workflow 6 times with a processing time of around 5 minutes each which is not sustainable. I have Block Until Done tools before all output tools whether that is an Excel or Sharepoint output.
Is there any way to fix this issue so that I can perform all functions at one time in the newer versions of Alteryx?
@MattR79 can you post your original workflow, or at least an image, when able? Quite a bit to unpack here, but happy to help where I can.
I can't post the workflow as it contains quite a bit of proprietary data and the workflow itself is fairly complex so I'm not sure a pic will help, but I will do that. My main issue is that it worked perfectly in 2019 and now no longer works in 2021 or 2022, which is an issue that I have seen raised a few times online.
@MattR79 no worries on not being able to post the original workflow. As one who works with proprietary data myself, I completely understand. The picture helps out surprisingly :)
The usage of the number of BUD tools, and the sequential stringing of BUD tools, is perplexing. A typical use case for a BUD tool would be if you are populating the two outputs to the same destination, but the records are on different tabs or locations within the output. In this workflow, it appears that there are BUD tools with singular outputs. I would recommend utilizing the Throttle tool (Developer palette) to simplify the back end of your workflow and get the desired end state of slowing your workflow down if that is what you would like to do. Otherwise, the BUD tools do not serve a purpose - your workflow will generate errors on the back end, but at a slower pace since they are passing through a network of BUD tools. For example:
In this section (above), there is not a reason why the tool sequence should be structured in this way. The BUD tools do not serve any purpose in the workflow but to slow down your output creation. In order to improve performance of your workflow, I would suggest restructuring this section so that it is Select > BUD > Bud Anchor 1 to Sort to Output 1; BUD Anchor 2 to Sharepoint Output.
If you are outputting to multiple Excel files entirely, I would recommend creating a dynamic file path associated to the data passing to said output. At this point, I would utilize the Engine.WorkflowDirectory variable (can be found in the Formula tool). Some simple syntax that concatenates the WorkflowDirectory variable with another field in your data set would assist the workflow in passing the right records to the correct output. Below is an example.
In the above example, I am calling the file path where the workflow is saved (Engine.WorkflowDirecotry), then renaming the Excel file (first instance of the Name field), then attaching the current date (DateTimeFormat formula), telling Alteryx how I want the file saved (.xlsx piece), then telling Alteryx what I want the sheet to be named (second instance of the Name field). Structuring your outputs like this will ensure you do not have to utilize a BUD tool, unless there are multiple components of your workflow that are attempting to write to the same worksheet. From here, you just need to reference that Output path that you created your outputs. To do that, you need to structure your Output tool like so:
If you are taking an output and the publishing it in two destinations (e.g. Excel on a shared drive directory, and a SharePoint), I would recommend creating two separate Output path-related fields, one for each output. From here, it would make sense then to incorporate a BUD tool, then a Select tool after each anchor to drop any unwanted fields, then your Output tool. That way, your workflow will output all records to your Excel file first. Then, upon completion, your workflow will write the records to your Sharepoint destination.
Hopefully that all made sense for you. Feel free to ask any questions you need to help get this workflow going for you. :)
So the BUD tools in sequence were honestly just because I forgot the earlier ones were there, and I have changed the output connections of the ones that are updating the SP pages, to come from one BUD tool. However, I'm not sure if this will solve my problem of being able to write new records to a SP page at the same time that I am trying to update records that are currently there since they don't share an output tool. In the attached image, the two outputs highlighted are trying to write to the same page, the SP File Upload is attempting to add new records to the page while Container 429 is updating data on records that already exist. Is there a way to allow those to happen simultaneously? Also, are there new rules in the 2021 and 2022 Alteryx versions that are causing these issues? I trying to understand why I'm having these issues now when I did not previously.
However, I'm not sure if this will solve my problem of being able to write new records to a SP page [...] since they don't share an output tool: They don't need to share the same Output tool. In these instances, you would have your data set, followed by your BUD, then multiple Formula tools (one for each output path you are needing to write to), then your respective Output/SP Output tools ("traditional" output attached to your Formula tool from Anchor 1, SP output to the Formula tool from output Anchor 2).
Is there a way to allow those to happen simultaneously?: Not really. However, I think with some tweaking of the workflow (see below), I think we can get it to work. First layer will be the changing the records you wish to change. Second layer will be the records you are appending to the data set. Third layer is the Output that is not dependent on the others.
In later versions of Alteryx, there is the introduction of Control Containers which will allow you to run processes in sequence (e.g. all actions for container 1 and its outputs, then all actions for container 2 and its outputs, etc.). If you have the ability to upgrade to the latest version of Alteryx, it may be worth exploring. It will almost replace entirely the need for Block Until Done tools in your workflow.
Also, are there new rules in the 2021 and 2022 Alteryx versions that are causing these issues? I trying to understand why I'm having these issues now when I did not previously.: is the workflow now an AMP engine supported workflow. That's the only thing that comes to mind given the timeframe.