Appian 18.3 to 18.2 downgrade

Hi,

Due to client reasons we need to move some code developed in Appian 18.3 (cloud) to another Appian instalation in 18.2 (on premise) . So, we need to downgrade.

We need to know if it works in the same way that the export/import application utility. Is there any problem? 

Thanks a lot

  Discussion posts and replies are publicly visible

Parents
  • We've done this by modifying the xml files in application export to comment out v18 specific "code". I would imagine that you could create script to do the same.
  • 0
    A Score Level 2
    in reply to bryant.st39
    Hi Bryant,
    Could you please give the example you you modified the xml files? suppose if you didnt have 18.3 specific code how will you handle this.
    As far as i Know Appian will read the manifest file that contains the version name to determine from which environment the package was exported. In this case are you sure that the 18.3 packages will be imported to 18.2?
  • I will...when we do this, we only modify the XML for datatypes, interfaces, and expressions,,,we simply add "/*...*/" comments around either unavailable functions/expressions or in some cases comment out the entire expression.  This will allow it to import.  As stated by Appian, this is not recommended and is very risky.  Limiting object types being modified and regression testing can help mitigate the risks but not eliminate them.

  • This is not recommended and is very risk...however, we have had occasions where this was the last resort...below is the XML structure for an interface...in the XML, I added comments (/*, */) around the portion of the interface definition that would affect the import, saved it, and re-zipped all the files.  Before attempting, make backups and test thoroughly.

    XML File:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

    <contentHaul xmlns:a="www.appian.com/.../2009">

    <rule>

    <name>PMT_ActionIsLocked</name>

    <uuid>_a-0000e09d-8cea-8000-daab-640000640000_24919</uuid>

    <description></description>

    <parentUuid>_a-0000dc92-d263-8000-5130-010000010000_15604</parentUuid>

    <visibility>

    <advertise>false</advertise>

    <hierarchy>true</hierarchy>

    <indexable>true</indexable>

    <quota>false</quota>

    <searchable>true</searchable>

    <system>false</system>

    <unlogged>false</unlogged>

    </visibility>

    <definition>= #&quot;SYSTEM_SYSRULES_formLayout&quot;(

    label: &quot;WARNING: Work Products are currently being edited by:&quot;,

    firstColumnContents: {

    /* add in XML

    #&quot;SYSTEM_SYSRULES_textField&quot;(

    label: &quot;Insert Process Report Here&quot;,

    labelPosition: &quot;ABOVE&quot;,

    saveInto: {},

    readOnly: true()

    )

    added in XML */

    },

    buttons: #&quot;SYSTEM_SYSRULES_ButtonLayout&quot;(

    primaryButtons: {

    #&quot;SYSTEM_SYSRULES_ButtonWidgetSubmit&quot;(

    label: &quot;OK&quot;,

    style: &quot;PRIMARY&quot;

    )

    }

    )

    )</definition>

    <preferredEditor>interface</preferredEditor>

    <offlineEnabled>false</offlineEnabled>

    </rule>

    <roleMap public="true">

    <role allowForAll="false" inherit="true" name="readers">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="true" name="authors">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="true" name="administrators">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="false" name="denyReaders">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="false" name="denyAuthors">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="false" name="denyAdministrators">

    <users/>

    <groups/>

    </role>

    </roleMap>

    <typedValue>

    <type>

    <name>RuleTestConfig?list</name>

    <namespace>www.appian.com/.../namespace>

    </type>

    <value>

    <el>

    <a:name/>

    </el>

    </value>

    </typedValue>

    </contentHaul>

     

     

               

    Imported SAIL:

    = a!formLayout(

     label: "WARNING: Work Products are currently being edited by:",

     firstColumnContents: {

    /* add in XML

       #"SYSTEM_SYSRULES_textField"(

         label: "Insert Process Report Here",

         labelPosition: "ABOVE",

         saveInto: {},

         readOnly: true()

       )

    added in XML */

     },

     buttons: a!buttonLayout(

       primaryButtons: {

         a!buttonWidgetSubmit(

           label: "OK",

           style: "PRIMARY"

         )

       }

     )

    )

Reply
  • This is not recommended and is very risk...however, we have had occasions where this was the last resort...below is the XML structure for an interface...in the XML, I added comments (/*, */) around the portion of the interface definition that would affect the import, saved it, and re-zipped all the files.  Before attempting, make backups and test thoroughly.

    XML File:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

    <contentHaul xmlns:a="www.appian.com/.../2009">

    <rule>

    <name>PMT_ActionIsLocked</name>

    <uuid>_a-0000e09d-8cea-8000-daab-640000640000_24919</uuid>

    <description></description>

    <parentUuid>_a-0000dc92-d263-8000-5130-010000010000_15604</parentUuid>

    <visibility>

    <advertise>false</advertise>

    <hierarchy>true</hierarchy>

    <indexable>true</indexable>

    <quota>false</quota>

    <searchable>true</searchable>

    <system>false</system>

    <unlogged>false</unlogged>

    </visibility>

    <definition>= #&quot;SYSTEM_SYSRULES_formLayout&quot;(

    label: &quot;WARNING: Work Products are currently being edited by:&quot;,

    firstColumnContents: {

    /* add in XML

    #&quot;SYSTEM_SYSRULES_textField&quot;(

    label: &quot;Insert Process Report Here&quot;,

    labelPosition: &quot;ABOVE&quot;,

    saveInto: {},

    readOnly: true()

    )

    added in XML */

    },

    buttons: #&quot;SYSTEM_SYSRULES_ButtonLayout&quot;(

    primaryButtons: {

    #&quot;SYSTEM_SYSRULES_ButtonWidgetSubmit&quot;(

    label: &quot;OK&quot;,

    style: &quot;PRIMARY&quot;

    )

    }

    )

    )</definition>

    <preferredEditor>interface</preferredEditor>

    <offlineEnabled>false</offlineEnabled>

    </rule>

    <roleMap public="true">

    <role allowForAll="false" inherit="true" name="readers">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="true" name="authors">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="true" name="administrators">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="false" name="denyReaders">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="false" name="denyAuthors">

    <users/>

    <groups/>

    </role>

    <role allowForAll="false" inherit="false" name="denyAdministrators">

    <users/>

    <groups/>

    </role>

    </roleMap>

    <typedValue>

    <type>

    <name>RuleTestConfig?list</name>

    <namespace>www.appian.com/.../namespace>

    </type>

    <value>

    <el>

    <a:name/>

    </el>

    </value>

    </typedValue>

    </contentHaul>

     

     

               

    Imported SAIL:

    = a!formLayout(

     label: "WARNING: Work Products are currently being edited by:",

     firstColumnContents: {

    /* add in XML

       #"SYSTEM_SYSRULES_textField"(

         label: "Insert Process Report Here",

         labelPosition: "ABOVE",

         saveInto: {},

         readOnly: true()

       )

    added in XML */

     },

     buttons: a!buttonLayout(

       primaryButtons: {

         a!buttonWidgetSubmit(

           label: "OK",

           style: "PRIMARY"

         )

       }

     )

    )

Children
No Data