Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Dev Space

Customize and extend the power of Alteryx with SDKs, APIs, custom tools, and more.

Programmatically/Manually Create .yxzp

PWD5032
5 - Atom

Background:

I'm attempting to automatically deploy Alteryx solutions to Alteryx Server via Azure DevOps CICD.  In order to do that in the way I need it, I have to figure out how to take a folder full of yxmc and yxmd files and programmatically turn that into a yxzp.

 

Main:

We know that yxzp files are a compressed binary format.  If you change the extension from yxzp to zip and unpack, you'll find the constituent workflows.  The challenge that I'm hoping the community can assist me with is finding a means of doing the opposite.

 

Unfortunately it doesn't seem as simple as compressing a file or collection of files and changing the extension to zip.

 

Quick nomenclature abbreviations that I'll be using…

p-yxzp: properly created yxzp using the export option in Alteryx

c-yxzp: custom yxzp created by manually compressing one or more workflows/macros then changing the extension to yxzp

 

Here are my observations:

  • Practical loading - loading a yxzp into Alteryx
    • p-yxzp: after unpacking Alteryx knows to open the primary workflow of that yxzp
    • c-yxzp: Alteryx unpacks the file but does not open any of the constituent workflows
  • Xml file differences
    • The primary workflow of the yxzp has additional code added to it (in red) describing encoding and MetaInfo of the outputs of any connectors in the workflow: (See the attached images)
    •  
    • SimpleWorkflow.jpg
    • SimpleWorkflow - XML Compare.jpg
  • When tested with a parent workflow that calls a child workflow, I found that the child workflows and macros are unchanged

 

I tried copying the xml from the resulting primary workflow of the unpacked p-yxzp and using that code in a workflow where I then manually zipped it up and changed the extension but I didn't get the desired result upon opening in Alteryx.

 

Packaging a yxzp using Alteryx must be doing something to indicate what the primary/parent workflow is but I can't tell what the indicator is.  I feel like figuring this part out would crack the problem.

 

So, does anybody have any thoughts?

 

Thank you!

-Patrick

14 REPLIES 14
mutama
Alteryx
Alteryx

@avinashsunchu @manoman29 @surajmthomas I believe you all may find this thread useful 🙂

joeGade
10 - Fireball

Hi Were you able to create a Migration app to migrate workflow from one server to other thru API . ?

joeGade
10 - Fireball

@david  Can you share the Workflow/App that you have for Migrating Workflows from one server to other ? 

David-Carnes
12 - Quasar

@joeGade 
Yes, I can.  I'll need to go through it to eliminate any info about my servers and such.  With my workload, I'll need to wait until this evening.

Best,
David

joeGade
10 - Fireball

Thank you . really appericiate if you can provide that .