community
cancel
Showing results for 
Search instead for 
Did you mean: 

alteryx server Discussions

Find answers, ask questions, and share expertise about Alteryx Server.

Accessing Gallery workflows systematically

Hi, I've done a bit of digging around and this is a rare case where I couldn't find my question answered in a thread already.  My question lies around accessing all the workflows that have been saved up to our Gallery.

 

For context:  Our organization uses Salesforce heavily, it's one of our major enterprise systems.  We have Alteryx workflows that pull in data from Salesforce and our DBs, blend the info together, then post to Tableau or other places.  Our Salesforce instance is about to go through a major overhaul and we'd like to find all workflows that refer to particular Salesforce objects and/or fields, so we can anticipate downstream impacts more systematically than just making analysts review every workflow they own.

 

So, I know that Alteryx workflows are built in XML and you can see that XML in Designer.  You can "Open as.." a workflow as a text file and you can see it that way, too.  If we were able to open all of our Gallery workflows, scan their XML through some wildcard searches, and determine which ones would be impacted and why, that would be a big win for our Salesforce team.

 

I have access to our server, I can sign into our box and access whatever I need on the server itself.  I also have read access to the MongoDB, so I can pull data via the standard Mongo tools.  I'm also a Curator in the Gallery.  So, access shouldn't be an issue for me, I just don't know where the files live and how I might do this systematically.  

 

Thanks for any input you can provide!

@Matt_Curtis  I would highly recommend the Alteryx Gallery Admin API for a job like this. I have a blog post about it here. Be sure to read the comments as well as the latest version of my macro is linked there. You would basically hit the /workflows endpoint to generate a list of workflows and then use all the appID's with the /package endpoint to download a yxzp of all the workflows. You would then need to unzip all of these and then you can search through the xml to your heart's content. I have a workflow around here somewhere where I've basically done this exact exercise. I would just need to clean it up and delete my keys.

 

The hardest part of the API is the authorization, and hopefully my macro makes that part easier. 

@patrick_digan Excellent!

 

Really nice blog post, thanks for providing these resources.  I have to read through it all and see if I can get myself set up, but this looks to be just what I need!  If you feel comfortable / if it's not too much trouble, it'd be great to see your examples.  Thanks!

@patrick_digan 

 

I think I'm doing everything correctly and am a bit confused....offended even(!)...that it thinks I'm trying to use Microsoft Edge to complete this task.  Chrome is my default browser...

<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="author" content="Alteryx, Inc.">
	<meta name="description" content="Cloud-based analytics from Alteryx, Inc.">
	<meta name="keywords" content="alteryx, cloud, analytics, business, intelligence, bi">
	<meta name="fragment" content="!">
    <meta http-equiv=X-UA-Compatible content="IE=Edge">
	<title>Analytics Gallery</title>
	<script src="lib/modernizr/modernizr.js"></script>
	<link rel="stylesheet" href="./css/user-generated.css?v=12345" />
	<link rel="stylesheet" href="./css/cloud.css?v=12345" />
	<link rel="stylesheet" href="./css/cloud.header.css?v=12345" />
	<link rel="stylesheet" href="./css/cloud.footer.css?v=12345" />
	<link rel="stylesheet" href="./JSMap/css/production.css?v=12345" />
    <link rel="stylesheet" href="./js/ReactComponents/output/styles.css" />	
	<!--[if lte IE 8]>
		<style>
			.alteryx_links,
			#main {
				display: none;
			}
		</style>
	<![endif]-->
	<script>document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');</script>
	<script src="./JSMap/js/production.js"></script>
	<style>
	    #jsRequired{display:none;}
	    .no-js #jsRequired{background:#fff;border:1px solid #cbcbcb;display:block;}
	    .no-js .alteryx_links, .no-js .page{display:none;}
	</style>
</head>
<body class="initializing">
	<svg xmlns="<a href="http://www.w3.org/2000/svg" target="_blank">http://www.w3.org/2000/svg</a>" style="display:none">
		<symbol id="icon-lock" viewBox="0 0 1024 1024">
		<title>lock</title>
		<path class="path1" d="M808.96 409.6h-92.16v-122.88c0-148.326-68.352-235.52-204.8-235.52-136.499 0-204.8 87.194-204.8 235.52v122.88h-102.4c-28.314 0-51.2 33.075-51.2 61.389v399.411c0 28.109 21.914 58.317 48.691 66.918l61.286 19.814c26.829 8.55 71.782 15.667 99.942 15.667h296.96c28.109 0 73.114-7.117 99.891-15.718l61.235-19.814c26.829-8.55 48.794-38.758 48.794-66.867v-399.411c0-28.314-33.178-61.389-61.44-61.389zM614.4 409.6h-204.8v-143.411c0-73.984 40.806-112.589 102.4-112.589s102.4 38.605 102.4 112.589v143.411z"></path>
		</symbol>
	</svg>
	<div id="jsRequired" role="alert">
        <h2>JavaScript Required</h2>
        <p>It appears that JavaScript is either disabled in your browser, or is blocked by a plugin (such as NoScript). Please enable JavaScript on this site to continue.</p>
	</div>
    <header role="banner" class="group cloud_includes_header">
        <h1><b class="analytics-gallery-text">Analytics Gallery</b></h1>
    </header>
	<div id="site-search-container"></div>
    <div class="page group">
        <!--[if lte IE 8]>
		<div id="browserUnsupported">
			<h2>Unsupported Browser</h2>
			<p>The browser you are currently using is not supported. Portions of our website will not display or function properly when used with your current browser.</p>
			<p>We recommend using the most recent version of one of these supported browsers when visiting the Alteryx Analytics Gallery:</p>
			<ul>
				<li><a href="<a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie">Internet" target="_blank">http://windows.microsoft.com/en-US/internet-explorer/downloads/ie">Internet</a> Explorer</a></li>
				<li><a href="<a href="http://www.mozilla.org/en-US/firefox/fx/#desktop">Firefox</a></li" target="_blank">http://www.mozilla.org/en-US/firefox/fx/#desktop">Firefox</a></li</a>>
				<li><a href="<a href="https://www.google.com/intl/en/chrome/">Google" target="_blank">https://www.google.com/intl/en/chrome/">Google</a> Chrome</a></li>
				<li><a href="<a href="http://www.apple.com/safari/">Safari</a></li" target="_blank">http://www.apple.com/safari/">Safari</a></li</a>>
			</ul>
		</div>
		<![endif]-->
        <aside role="complementary"></aside>
        <div id="main" role="main" class="group">
			<div class="loading center-xy">Loading...</div>
		</div>
        <footer role="contentinfo" class="group"></footer>
    </div>
    <script type="text/javascript" src="./js/ReactComponents/output/commons.bundle.js"></script>	
    <!--<script src="steal/steal.js?js/boot.dev.js"></script>-->
    <script src="steal/steal.production.js?production/production.js?v=12345"></script>
</body>
</html>

 

Any idea what might be causing this?

 

@Matt_Curtis  That is offensive! :) What url are you trying to access? That looks like the frontend gallery as opposed to any of the API endpoints.

Alright, I see what you meant.  I left the "/gallery/#" in my base URL by accident.  I've fixed that and now am facing a separate issue.

 

I'm getting an 401 Unauthorized error now.  My Admin API is turned on, I've copied my key and secret directly, but it's returning the error "The provided signature(oauth_signature) is invalid."