Best practice tips for maintaining an Innovator installation!

Hi Community,

I want to use this thread to collect maintenance tips regarding Innovator. What is your experience? What do you think is worth to do on a regular basis to ensure long life stability and performance? See it as preventive health check for our Innovator platform, so we can identify upcoming problems before they occur.

Here are some examples. A lot of these task can already be automated:

  • Check if the latest service packs are worth an update
  • Check for active/inactive users
  • Check if file vault has still enough space
  • Check for failed conversion tasks

Questions:

  • What would would you recommend to check on a regular basis?
  • How do you monitor Innovator, e.g. to find performance consuming events?

Looking forward to hear your ideas! My shown list only shows a small part of my current list. I will share my experience if you share yours (that´s the deal Slight smile )

Best regards
Angela

Parents
  • Hi Angela,

    Interesting topic. Here is my list excluding things that you have already covered

    Regular Checks:

    1. Weekly or bi weekly a DBA runs profiler on ARAS database to identify possible ways to improve performance. DBA does data base tuning, re indexing if required.

    2. As user base increases so is the data and database size. So to improve performance few data heavy reports can be converted from AML to SQL to take advantage of SQL views as a mean of improving performance.

    For performance improvement:

    1. Normally as functionality is built with multiple sprints there is scope for optimization since many times on same event we create multiple methods during different sprints. So we take up short performance improvement project after delivery of particular module, where idea is

      1.1 Aggregate functions on same events

      1.2 Push code to server side method from client side method as much as possible

      1.3 Follow ARAS tips on performance improvement like using attributes select, doGetItem etc ..

  • Hi community,

    I think it's time to give this discussion another spin.

    Chris seemed to be very inspired by this discussion and provided us with an additional blog article with a lot of useful stuff:
    https://community.aras.com/b/english/posts/dos-donts-of-designing-applications

    Many thanks for this one! But all of you so far forgot one important thing: Documentation!

    So here we have the next basic tip: As soon as you implement something new or change default behavior of something write a test case immediately!

    Typical examples:

    You built a custom ItemType with a LifeCycle, Workflow and a couple of Methods. Write down a test case so Aras update team can later reproduce how the whole bunch shall work. Don´t make one big generic test cases that nobody can follow ("My custom change management process shall work"). Better make a lot of steps that exactly describe what to do and what behavior to expect. E.g. "Login as admin. Go to TOC->MyCustomChange. Select a CustomChange item. Click on custom Action xy, confirm that yz happens....".

    Avoid to customize existing Methods. Make a custom copy whenever it´s possible. When it is not possible to work with a copy, always add some comments that indicates that "you" have customized this and also why. And of course - write a test case that describes the changed behavior.

    Most important is the documentation of codetree changes, cause they are often hard to detect for Aras update team. Describe the file you have changed a and add a test case that shows the effect of the codetree change, so Aras is able to reproduce it. Not only Aras, you yourself have some benefit when you write down these details, cause at a certain point you cannot remember anything anymore.

Reply
  • Hi community,

    I think it's time to give this discussion another spin.

    Chris seemed to be very inspired by this discussion and provided us with an additional blog article with a lot of useful stuff:
    https://community.aras.com/b/english/posts/dos-donts-of-designing-applications

    Many thanks for this one! But all of you so far forgot one important thing: Documentation!

    So here we have the next basic tip: As soon as you implement something new or change default behavior of something write a test case immediately!

    Typical examples:

    You built a custom ItemType with a LifeCycle, Workflow and a couple of Methods. Write down a test case so Aras update team can later reproduce how the whole bunch shall work. Don´t make one big generic test cases that nobody can follow ("My custom change management process shall work"). Better make a lot of steps that exactly describe what to do and what behavior to expect. E.g. "Login as admin. Go to TOC->MyCustomChange. Select a CustomChange item. Click on custom Action xy, confirm that yz happens....".

    Avoid to customize existing Methods. Make a custom copy whenever it´s possible. When it is not possible to work with a copy, always add some comments that indicates that "you" have customized this and also why. And of course - write a test case that describes the changed behavior.

    Most important is the documentation of codetree changes, cause they are often hard to detect for Aras update team. Describe the file you have changed a and add a test case that shows the effect of the codetree change, so Aras is able to reproduce it. Not only Aras, you yourself have some benefit when you write down these details, cause at a certain point you cannot remember anything anymore.

Children
  • Excellent points, Angela! My hope was that the blog post wouldn't be a definitive guide but would demonstrate that any good software design principle can be applied in the context of Innovator. 

    You bring up an excellent Innovator-specific tip as well in terms of making a custom copy of any existing Method. In the event that the Method changes in a newer service pack, it not only makes it easier to upgrade, but also to compare with your custom code to find what the updates were.

    For similar reasons, I'd also apply this same tip to codetree changes as well. If you want to make an update to a codetree file, instead create a copy of the file with the same name and rename the original file to filename_old or filename_original. In addition to making it more clear where changes were made, it also helps to have a clean copy to rollback to just in case something breaks in development or testing. You can see that Labs does this in some of its projects like the TOC Searchbar.