ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

Not sure where to start...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Not sure where to start...

    We are beginning a new project to manage a warehouse process involving compliance shipments (i.e. Wal-Mart, Target, Amazon, etc.). We're running a legacy ERP system that works just fine for Order Entry and Shipping, etc. We have the source code and have been building on top of that for quite some time.

    Currently this process is "managed" manually via two spreadsheets (used by way too many people and corrupted way too often). Most of the information in the spreadsheets can be derived from our current database. Huge amounts of time is spent updating the sheet, or looking for the person who has it open.

    This project is going to require some new files (tables) etc. to replace the spreadsheets. Most of the data can be programmatically created/driven from our ERP data, while some of it must be entered/updated. While I could design and write this application using the standard green screen approach, I'd rather not. We use a lot of radio frequency devices (including ipads) to do other things on the i.

    So I'm looking for some suggestions...

    1. Should I search out a "canned" application? I'd rather it run on DB2/400
    2. Should I just create the tables necessary and try to learn PHP or something to serve this as an HTTP application?
    3. Should I just create the thing using the 20-year-old green screen approach?

    I welcome all opinions.

    Thanks,
    Greg

  • #2
    Re: Not sure where to start...

    Originally posted by gwilburn
    1. Should I search out a "canned" application? I'd rather it run on DB2/400
    Ahem... please call it "DB2 for i". It's been more than 15 years since it was called "DB2/400". I know I'll catch flak for saying this, but... it really bothers me when people still refer to this stuff using the old names. We want to sound modern and avoid the impression that we are out of date... but yet we use terms for things from the 1990s... how can that work?!

    Anyway... whether you use a canned package or build your own additions is something you have to decide based on your situation. In many (maybe even "most") cases, people's custom-written software can provide a huge competitive advantage over canned software. It gives you something that works exactly the way your company does business, etc. On the other hand, if your custom software is really out of date and it's no longer meeting your needs (just in general I mean, not talking about this specific spreadsheet situation) then maybe there's not much value in it? This is something your organization needs to determine -- or at least someone much more familiar with your situation than I am :-)

    If your software is really good, but just needs a few additions, or better screens, etc, then I'd just make the improvements and keep the competitive advantage you're getting from it.

    If your current software is really bad and isn't meeting your needs and it'd be hard to keep going with it, then I'd consider replacing it.

    Originally posted by gwilburn
    2. Should I just create the tables necessary and try to learn PHP or something to serve this as an HTTP application?
    There are about a zillion approaches to this. I'm not a huge fan of PHP as a language, I think it's terrible for business rules and generally a clumsy language (albeit, pretty easy to learn.) I am a big fan of all the free (or, I should say, open source) software that it makes available on our platform, however, I personally would not use it for writing my own software.

    Of course, PHP is only one of many options if you want to rewrite everything in a different language. Ruby, Python, Node.js, Java, C/C++ are now all fully supported on IBM i. I've also heard of people using Perl and Lua on IBM i (although these aren't officially supported by IBM). These are especially good options if you want to write code in a way that it can also run on other platforms, since all of these languages are available on just about every platform out there.

    On the other hand, I personally think RPG is the best and most elegant language for writing business applications. RPG is more than capable of writing web applications. Free tools like CGIDEV2 can give you all the same capabilities that PHP has -- though, it's not as mainstream, so it's harder to find examples on the web.

    Performance-wise, RPG and the other ILE languages (Cobol, C, C++, CL) will outperform the other languages (PHP, Perl, Python, Lua, Ruby -- though they all outperform Java by a mile, unless you want to invest in faster hardware, which of course IBM would love) They also give you a more native solution. Personally I like being able to use stuff like job logs for troubleshooting, having SQL and native database I/O integrated deeply into the language, etc.

    The other side of the argument is that the other languages (PHP, Ruby, Java, Python, Node.js) are more mainstream, so it's easier to find help on the web, easier to find kids coming out of college who already know the language, and much easier to move off of the platform onto Windows or Unix.

    Personally, I'm a big believer in this platform, and what makes it unique over Windows/Linux environments, so I prefer to stay with ILE languages. Plus, then you can keep your existing investment in this environment (i.e. don't need to switch to a canned package) if you still think there's value in your custom software.

    Originally posted by gwilburn
    3. Should I just create the thing using the 20-year-old green screen approach?
    Wow, you must be using really modern green-screen techniques if it's only 20 years old! The 5250 environment began in the 1980s (so 30+ years old) but is based on much older technology than that (the 3270 environment, which was based on older technology yet, etc). So I tend to think of this as much more than 20 years old... more like 60 years old.

    I would definitely look into newer approaches. The easiest and fastest development (that makes for the easiest way to keep your existing code, but modernize it) today is with vendor tools. So instead of rewriting everything in a new language (Java, PHP, Python, Ruby, Node.js, etc) or instead of essentially rewriting everything in RPG (to use a web paradigm with CGIDEV2, etc will pretty much require rewriting everything just because the environment is so different) I would suggest looking at what you can do with a vendor solution. These can be a bit pricey, but will make a huge difference in productivity, etc.

    And as expensive as they may be, it's NOTHING compared to the cost of switching everything to a new canned software package.

    This is why, when I decided to change jobs a few years ago, I decided to go work for one of these modernization vendors. I work for Profound Logic today because I think they are the best of the bunch. If you're interested in that, we could show you a demo (using Goto Meeting over the web or similar) of how our software works and how you can use it to modernize what you have, and also develop new GUI applications that work on PC and mobile. So please consider that alternative as well.

    Here are some of the vendors (my apologies if I forget any):
    • Profound Logic (my company): http://www.profoundlogic.com, sales@profoundlogic.com
    • BCD Software (recently bought by Quadrant)
    • lookSoftware (recently bought by Freshe Legacy)
    • CNX (leans more towards rewriting vs. converting. Uses Sencha products)
    • ASNA (leans more towards converting to run on Windows)
    • LANSA (using their 4GL)


    There are others, but honestly, I don't hear about them very often... these ones above are the big players.

    Comment


    • #3
      Re: Not sure where to start...

      Scott - thank you for the recommendation. BTW - I try really hard to call it DB2 for i (System i Navigator, etc.). But every editor wants to change the "i" to "I", and I get tired of backspacing to change it

      I am familiar with the modernization packages - particularly Profound Logic and BCD... and I too prefer using native RPG with SQL on our platform (because that's what i know). The thought of replacing our existing software has been on my mind (we are a small shop), but I think about all of the ways we've integrated it with other applications and customized it for our use - then I think about something else.

      I see this project as more of a standalone application that pulls data from our existing database... So my "real" question lies more around the user interface. I would like to use this as an opportunity to write something (in RPG) using native & SQL record access, but with a modern UI. Something that doesn't require an emulator, and could be used by a PC or mobile (WiFi in our building) device.

      My assumption was that the "modernization" software is designed more for existing applications rather than new development. But if they also provide a good path for new application development, then I would definitely need to consider those.

      Comment


      • #4
        Re: Not sure where to start...

        I hate to even jump in as you have the expert already watching but profound offers solutions for both converting/modernizing existing applications and for creating new applications using traditional rpg programming but output into a modern output. So your new application could be written using it to apply the modern UI while still coding in RPG and SQL. I have no experience with either but have been keeping an eye on it.

        Learn the five steps to a digitally transformed business, with an Agile Modernization approach.

        Comment


        • #5
          Re: Not sure where to start...

          I have the CNX product that Scott references. CNX Valence is a great tool for creating new browser-based apps with RPG and embedded SQL on the backend. Scott is right that it's more for new apps than modernizing existing green screen appllications.

          We have the enterprise edition and it is relatively inexpensive compared to many other options. The good news is that the community edition is free, so you can download it, create some apps with it, and see what you think. But with the enterprise edition you also get a license for Sencha Architect which makes things even quicker/easier. https://www.cnxcorp.com/store/

          Comment


          • #6
            Re: Not sure where to start...

            I would look for something that meets your way forward. If you think you will be modernizing a lot more applications in the future spending the money on one of the modernization products could be a worthwhile investment. If however you feel that this is a one off and your company is more than happy with the existing applications why bite off more than you need to. I would certainly develop something that would provide a non-5250 output in this instance so HTTP based output is probably a good option. Scott's reluctance on PHP is a personal one so if its a language you can pick up quickly and be efficient I would not rule it out. We are developing a quote system for a client where they are currently using a spreadsheet which has some of the similar traits to yours, we are developing it in PHP and Java Script for the rules content (they need to be prompted with options as they select a particular product etc). This is not something that is going to be used outside the company and the number of users will not reach the 100's so a HTTP/PHP using DB2/SQL interface is more than fast enough and flexible enough. Learning one of the Open Source languages mentioned by Scott should always be a good investment regardless of which one you choose.

            Chris...

            Comment


            • #7
              Re: Not sure where to start...

              If you choose to go browser-based, but want to continue using RPG, you might also want to look at WOPiXX from Toolmaker.
              It's also free (at the moment).
              Regards

              Kit
              http://www.ecofitonline.com
              DeskfIT - ChangefIT - XrefIT
              ___________________________________
              There are only 3 kinds of people -
              Those that can count and those that can't.

              Comment


              • #8
                Re: Not sure where to start...

                Originally posted by gwilburn View Post
                My assumption was that the "modernization" software is designed more for existing applications rather than new development. But if they also provide a good path for new application development, then I would definitely need to consider those.
                I definitely disagree with this... We provide tools for both sides (both new development and updating existing things). The term "modernization" implies that you are updating your existing programs to a newer environment. But we sell tools for new development as well as modernization.

                Comment


                • #9
                  Re: Not sure where to start...

                  Originally posted by Scott Klement View Post
                  I definitely disagree with this... We provide tools for both sides (both new development and updating existing things). The term "modernization" implies that you are updating your existing programs to a newer environment. But we sell tools for new development as well as modernization.
                  Agreed - that's what I'm finding.

                  Comment


                  • #10
                    If you're going to use CNX Valence or Profound UI, you should get familiar with ExtJS itself. You can always fire up your HTTP server and use pure ExtJS and then YAJL in your RPG program. It's not going to convert any DDS for you, but you probably shouldn't want that anyway.
                    Your friends list is empty!

                    Comment


                    • #11
                      If it were me I would use embedded SQL within the PGM to create the Qtemp tables I need.
                      As for the interface I would suggest the .net ASNA.
                      Great fro web apps and browser based programs.

                      It's also really RPG friendly

                      Comment

                      Working...
                      X