Database first approach with automated deployment for DB changes

I am looking for the following functionality either in a plugin or a standalone client. I do see there is a deployment 

manager client and I am not quite sure if it would help me all the way for the functionality I am looking for. I am looking for

this application to accommodate database first development more gracefully. The following are the ones I am thinking of.

1) Write Java ORM classes with some annotations using guidelines for annotations published by Appian.

2) Create relevant XML's and create CDTs for individual objects and collections. If they are already exist, create new versions of them

    for changes in Java class.

3) Replace the changes for attribute annotations in SAIL, write to Data store entities, parameters, etc., in automated fashion.

I think deployment manager may do all of this but would like to ask the forum for confirmation on this functionality.

 

Regards,

Sudhakra

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    Appian supports CDTs created in Java and defined within plugins (docs.appian.com/.../Custom_Data_Types_from_Java_Object.html). I haven't worked with these in quite awhile, so there are likely some nuances to this that need to be dealt with, though I think the product has made this easier since I last worked with them.

    Deployment Manager handles import of SQL scripts and application packages. It doesn't handle plug-in deployment to my knowledge.

    Regardless, a few points of caution assuming I'm interpreting your approach correctly:

    • A fully Java-based data mapping is an atypical implementation, and seems pretty complex to me. Question I have: Why not just manage CDTs in Appian Design? What advantage do you get for writing classes in Java? There are a lot of tools in the UI that make generating data structures from the database easy, and most updates and dependency analysis in the UI are pretty trivial. Plug-in development and deployment, is decidedly less so, particularly if you are on Appian Cloud.
    • Appian does not support the full breadth of JPA annotations so certain things you might want to do in Java may not work as you may like.
    • For your 3rd point, are you asking if there is a tool that syncs data structure field changes to actual usage in SAIL? Changes to the entity will generally seamlessly update for things like Data Stores, but any individual field usage (i.e. pv!myEntity.myField) needs to be updated manually if a field is renamed or removed or something like that.
  • Thanks Justin. Link you pasted is not working for some reason. I think I was not clear on my intention.
    I am trying to formalize gathering of business requirement and there by streamline the applications development using Appian, primarily, in the ability to model the data structure while the requirements being gathered along with metadata for engineering the systems more effectively.
    SAIL being more functional may provide some leeway for scaffolding as a wrapper, to thus defined data collections, providing pathway for pseudo code SAIL.
    My intention is to just auto generate functional requirement in a more engineered precise manner which may result in firm data structure, metadata for configuration & automation, and artifacts such as CDT in XML and pseudo code SAIL. The proposed utility in my mind should strengthen and make Appian implementations more agile and may gradually approach RAD specifications.

    The artifacts thus generated may provide clear distinction of separation of duties and more control towards development along with version control. Many an implementations are assuming developer as a data modeler, metadata engineer, performance engineer and a DBA which is making them non productive especially if they are bigger implementations and/or implementing associated BI and integration artifacts more effectively. Lot many productivity measures could be realized and confusion could be avoided.

    I get feedback that removing or renaming an attribute is somewhat costly an affair. I am trying to see if this also could be made productive as there are many circumstances you may not be able to avoid doing so. Let me see what I could get help from deployment manager. Also, if you could provide me the working link, I will go through the material.
Reply Children
No Data