Customization-tracking tools and patch impact management

What are the tools you use to manage your various customizations (Mongoose Forms, IDOs, Reports; SSRS; SQL SPs, Tables, UETs, etc.)?

And how do you use them to assess patch impact?

I need to find a better way to manage all this and need your recommendations.

So far, I've been describing my customizations in an Excel (Google Sheets) file, in which each tab is a Form (at first) or a Customization (when several Forms/IDOs/SPs/etc. are involved).
This system is becoming messy, being live with CSI for one year already; it's not enough now, since:

  • there are too many tabs
  • the same Form may appear in several tabs
  • there's a second admin/developer now
  • I have a growing list of patches awaiting impact assessment and testing (too time-consuming and messy)
  • we're starting Phase 2, adding Factory Track, Multi-Site, QCS, probably Service, etc.; so new modules, new DBs...new problems!

We're using CSI 9.01.01 on-premise.

I've heard of Form Control; I've seen that Source Control tool can be linked to a User, and that Form Scripts can be automatically opened in Visual Studio (2013/2015).

What are the best options:

  • VisualStudio+GitHub for tracking?
  • FormSync, log-only mode for patches and any diff tool to assess patch impact?
  • Anything else? Where does Form Control come into play in all this?
Parents
  • I'm dealing with this right now & it's making me nuts. Infor hasn't really done much on the "developer side" to make these things easy for us (IMO). There's definitely going to be a bit of "roll your own" involved in any solution you come up with. (Tim's explanation is probably the best I've seen so far). Things I've seen/done/noticed/rambling in no order

    • FormControl by itself is "useless". It does offer you 'version control', just one version. If you tie your CSI configurations to a supported Source Code Control platform (SourceSafe (DONT), Subversion, Team Foundation). You can truly version control your Forms, Objects, etc. The downside is there is no way to track/group change sets. Yes, you're getting versioned copies but there isn't anything that groups them together. Another downside to FormControl is that only "sa" can run it unless you pay for Developer Licenses. Depending on how your environments are set up and the # of devs, this isn't going to work.
    • For SQL Server, we're attempting RedGate source control. It ties version control directly into SSMS and lets you version control your database schemas and/or data. The problem I've found w RedGate is it's only 32 bit & with the size of  Infor's structures it can take a LONG time just to check in/check out. dbForge has a similar issue, but they at least make their own stand-alone 64bit tools as well as 32bit add ons for SSMS.
    • For on-hand tools, this is what I have in my belt:
    • For assessing impact of patches, I use the "log first" option of the patch & read the logs. This way I at least have some idea of what it's going to change. Then using the various tools outlined, I do compares to find out the impact.
    • For Forms issues, I use the Export feature in the FormSync program not the Form. The program will export into XML which is substantially easier to read and/or edit.
      • When editing Forms always use Form --> Definition --> Design and then select the Form to edit. This prevents and "post load" events from firing and "polluting" your Form data.
      • Try to use the Object Explorer on the left hand side of the pane for finding Objects versus clicking on them inside the Form. Sometimes if you breathe wrong on a component, it thinks you changed it. This helps keep it to a minimum
    • The hardest one: Try to do your customizations in 'upgrade friendly' ways. Some suggestions:
      • Place a button to open a 'child form' that holds all your customizations
      • Use a GroupBox to contain all your customizations on a Form
      • If you have to modify Infor FormScripts, try to keep all your customizations in separate methods if possible (almost like an ExtGen) and insert a single method call in the Infor code to call your method.

    Ok, I think that's enough pre-coffee nonsense from me this morning :) If I think of anything useful I'll chime in :)

Reply
  • I'm dealing with this right now & it's making me nuts. Infor hasn't really done much on the "developer side" to make these things easy for us (IMO). There's definitely going to be a bit of "roll your own" involved in any solution you come up with. (Tim's explanation is probably the best I've seen so far). Things I've seen/done/noticed/rambling in no order

    • FormControl by itself is "useless". It does offer you 'version control', just one version. If you tie your CSI configurations to a supported Source Code Control platform (SourceSafe (DONT), Subversion, Team Foundation). You can truly version control your Forms, Objects, etc. The downside is there is no way to track/group change sets. Yes, you're getting versioned copies but there isn't anything that groups them together. Another downside to FormControl is that only "sa" can run it unless you pay for Developer Licenses. Depending on how your environments are set up and the # of devs, this isn't going to work.
    • For SQL Server, we're attempting RedGate source control. It ties version control directly into SSMS and lets you version control your database schemas and/or data. The problem I've found w RedGate is it's only 32 bit & with the size of  Infor's structures it can take a LONG time just to check in/check out. dbForge has a similar issue, but they at least make their own stand-alone 64bit tools as well as 32bit add ons for SSMS.
    • For on-hand tools, this is what I have in my belt:
    • For assessing impact of patches, I use the "log first" option of the patch & read the logs. This way I at least have some idea of what it's going to change. Then using the various tools outlined, I do compares to find out the impact.
    • For Forms issues, I use the Export feature in the FormSync program not the Form. The program will export into XML which is substantially easier to read and/or edit.
      • When editing Forms always use Form --> Definition --> Design and then select the Form to edit. This prevents and "post load" events from firing and "polluting" your Form data.
      • Try to use the Object Explorer on the left hand side of the pane for finding Objects versus clicking on them inside the Form. Sometimes if you breathe wrong on a component, it thinks you changed it. This helps keep it to a minimum
    • The hardest one: Try to do your customizations in 'upgrade friendly' ways. Some suggestions:
      • Place a button to open a 'child form' that holds all your customizations
      • Use a GroupBox to contain all your customizations on a Form
      • If you have to modify Infor FormScripts, try to keep all your customizations in separate methods if possible (almost like an ExtGen) and insert a single method call in the Infor code to call your method.

    Ok, I think that's enough pre-coffee nonsense from me this morning :) If I think of anything useful I'll chime in :)

Children
  • Excellent list Steve and that mirrors my toolbelt for the most part. You have a few more tools available to you because you are on premise. No SQL access in SaaS so RedGate doesn't help there. Depending on what version of CSI you are on, the form versions of Form Sync and App Metadata Transport work fine. They work in 10 at least. I upgraded to Visual Studio 2019 awhile ago because I am doing mobile app work using Xamarin.Forms which requires that version. Works fine with CSI. For form development, the recommendation is to put the added fields in a new tab, where applicable. If the form doesn't have tabs... Well, you know which one is going to break.

    In newer versions of CSI (9.01.10+), the stand-alone utilities have procedure-based alternatives available that would allow scripting via the REST API. Some of us are trying to write our own tool to use with those utilities to automate the process better, but it is still a work in process and none of us really have a lot of time to work on it.

  • I'm there with you. I'm so tempted to write my own tools to help "stream line" the process. Just throw it onthe mountain of work I still have to do :)

  • One other thing I forgot to mention:

    If you can get to 9.01.10/11/12, I believe Infor has implemented the 'upgraded' Extend And Replace for Forms. If it works "as advertised" it will allow you to extend an Infor Form (like a C# class), make changes to the Form but updates/upgrade won't get applied. they will get applied to the Vendor version of the Form. You'll still need to go through and fix your Forms but it might help make things more manageable.

    We're still trying to schedule our upgrades here.

  • Great discussion, if you have a chance look at Visual Studio Code. It's replaced notepad++ as my go-to editor and has a bunch of plugins, including support for GIT/SVN, built in compare/merge capabilities are good too.