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

  • Hi Aitor,

    As Joe mentioned, deploying applications from a later version to an earlier version is not supported.
    Also, modifying application export files to import them into another environment is not supported and can cause issues down the line with these objects and your environment.

    Cali Nelson
    --Appian Support
  • 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.

  • Appian basic rule while deploying: applications developed in a version can only be deployed to higher versions.
  • 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"

         )

       }

     )

    )