Best Practice for Deploying Patches

Certified Senior Developer

We have several process models in our Production environment that list an individual user as the process owner. We've changed our practice since they were initially deployed, using only a service account (i.e., Appian.Aministrator) for deployments but the process owner value has not changed even when patches were deployed that modified these process models. Do we need to export the processes using the Appian.Administrator account and then re-import them in order to change the process owner? Please advise. I don't want to risk having these processes fail if the listed process owner account becomes deactivated.

  Discussion posts and replies are publicly visible

Parents
  • Hi Judy, By "Process Owner" you mean the process initiator ??
  • 0
    Certified Senior Developer
    in reply to mohamedt808
    No - I'm referring to the individual who is the owner / creator of the process. The security on the process will dictate who initiates it, which is typically someone other than the person who created the process (i.e., the end user who starts an action). However, if the process is started by the person who created it - then we could have a problem if the creator is a developer or system administrator whose account has been deactivated. I assumed that if we used the Appian.Administrator account to deploy updates - it would change the process owner for the process model, but evidently, it doesn't.
  • 0
    Certified Lead Developer
    in reply to judym598
    I think this is what you are referring to. You can export your app and re-import using this notation in a customization file to force the update of the object owner to match your deployment user:
    docs.appian.com/.../Managing_Import_Customization_Files.html
  • 0
    Certified Senior Developer
    in reply to Tim
    I'm thinking that is the best option Tim - I will have our administrator export the application and then re-import it using the administrator account. We haven't used the customization file in the past but I will look into that as well.

    Thank you all for your suggestions!
  • 0
    Certified Lead Developer
    in reply to judym598
    The deployment guidelines linked previously were for v17.1 and are horribly out of date. I think it was 17.3 that Appian amended the import procedure to not update objects that had not changed by default. Assuming you are cloud then you will have this functionality.
  • 0
    Certified Senior Developer
    in reply to Tim
    I just looked at the 18.2 version and it basically says the same thing:

    "On import, process models are published as a new version.
    If you are reimporting an existing process model, draft versions you may be working on are overwritten when the imported process model is published.
    When importing process models (for the first time) that are linked recursively, the process models are published twice - resulting in two new versions.
    Subsequent imports (updates) publish the recursively linked process models one time per import, creating one new version.

    The user performing an import is listed as the creator of notes and attachments associated with the process model, as well as the owner of the process model."
  • 0
    Certified Lead Developer
    in reply to judym598
    That's true. Hopefully someone from Appian will see this and review.
    If you look at the section around "Reading the Import Log" you will see the "Not Changed" note that links through to the Import Package docs. Here it reads:
    "When you click Import Package, the object's definition will not be updated in the target environment because there are no updates to make. The Last Modified information will remain the same as it was pre-import and no change will be made to the designer of any process models with this status."
  • Please look into a plug-in called "Re-publish process model as user". Running this against any process models where the creator is not listed as your service account will allow you to set whatever user you like as the "last publisher", which in my experience is the main factor in process model security (regardless of whichever user originally imported the process model).

    In one of my projects the service account is a dummy only and developers can't log into it, so deployment is done via personal accounts and then we run a tool I wrote a few years ago that finds all process models not last modified by the service account, and re-publishes them under the authority of the service account.

  • 0
    Certified Senior Developer
    in reply to Mike Schmitt
    Thanks Mike! I think if we just export the application using our service account and then re-import it, we should be okay. I was trying to avoid doing that. I'm also working with the cloud team because I think the 'Owner' column displayed on the Process tab in 18.1 is not correct. The 'Created by' and 'Author' columns displayed elsewhere (i.e., in the /design view) all show the service account name (Appian Administrator). So - perhaps the 'owner' is correct - but Appian has a bug in the Process tab in the /designer view.
  • Yeah - it all gets a bit confusing particularly since Appian uses different terms for these things in different contexts. For instance in /design all we see for process models is "last modified", which is different from a process model's "creator", however when a process is set to "run as designer" (i.e. in a subprocess call) it actually uses the "last modified by" user, not the creator.

    When you say "Owner column", where exactly are you looking? The default view of the Process instances listing in legacy designer lists "Started By" but this isn't really the same as "Owner", though you could be referring to something different that I'm not thinking of.
Reply
  • Yeah - it all gets a bit confusing particularly since Appian uses different terms for these things in different contexts. For instance in /design all we see for process models is "last modified", which is different from a process model's "creator", however when a process is set to "run as designer" (i.e. in a subprocess call) it actually uses the "last modified by" user, not the creator.

    When you say "Owner column", where exactly are you looking? The default view of the Process instances listing in legacy designer lists "Started By" but this isn't really the same as "Owner", though you could be referring to something different that I'm not thinking of.
Children