I have recently started working for a wholesale food distribution company of about 120 employees that uses an AS/400 with canned software & a jumble of Windows programs, to run most of their business operations. Apparently, the company that wrote most of their software has repeatedly merged with larger companies, and the quality of their code and support has gone downhill over the years to the point where we need to replace them. The owner wants to get us back to writing all our software in house like we did 40+ years ago.
There's a few problems I'm having and doubt anyone can solve them completely, but I figured I'd write a short description and hope someone can point me in the right direction.
I am one of only two people in our IT department now that the woman training me has retired, my boss also wants to retire as soon as I feel comfortable running everything on my own. She plans on that being about two years from now, so I will be on my own before I can completely create and transition to a new system. Therefore, I need solutions that are easiest to learn and manage yourself, not necessarily what would be the industry standard, most scalable, or most resource efficient.
My background is more in web development, most of what I have used after college is PHP, MySQL, HTML, CSS, & JavaScript, in college I did a lot of C++ console & win API programming, but no experience with mid-range computers. Originally my boss wrote all our software in RPG back when we used punch cards, most of that was carried over when they started using midrange IBM machines, and even now that code had been maintained and modded into the canned software we use. Our system only has RPG and COBOL available for programming languages, as my boss and the woman I replaced are trained in RPG, COBOL, FORTRAN, & ASSMBLER. Currently I've been learning and using COBOL for writing simple things like customer specific file exports, and using the system I navigators SQL interface to export xml files of data I need for more complex reports, importing that to excel, and using its built-in VBA editor.
My boss tells me that the AS/400 can run any languages I want, and just need to let her know what I want and she will get the licenses and have them installed. But I'm not sure what would be the best for me to use. Eventually we want our entire system to be web based. What combinations of languages tend to work best for that on the AS/400?
The software we have now is broken and needs to be replaced ASAP. We have found another software development company that has a better system for a price we are comfortable with, and will be switching to it. But ownership still wants to build our own after that, so we are not paying over $250k a year for the various licenses, support, and modifications needed to keep some very old and broken programs running. Which is the situation we have now. As such anything I write now needs to be able work with each new software solution. Our current system is written on mostly COBOL and some RPG, the next one I'm told is mostly C & RPG.
Right now, there are a lot of reports I need to create, that I want to work regardless of what software solution we implement down the line. I would prefer to only be changing SQL statements, table, & column names. I shouldn't need to push anything to the existing database tables, but will need a few to save my own data in. I really need a good user friendly front end for our customers and employees to run these from so I'm not having to do it all myself. I think MS Access with and ODBC connection to our DB2 system would work well, and should survive the transition from each software system. But it requires the user to have MS access and dose not fulfill my web based requirement. Is it possible for me to set up one of our virtual servers as a web server that I can make a PHP site on that works the same way as I would deal with a MySQL database?
Can I run other databases on the AS/400, and if so do I have to choose just one or can I have them run parallel. I've been considering MEAN stack development and the mongo DB looks attractive to me. Our main item sales history file is 18 million rows for the last year and has over 200 columns. But most items use only 30-50 of those columns. We have all the others for specific reporting requirements that are unique to each of our vendors. That leave 150+ columns filled with spaces, zeros, n/a ect. It seems like a huge waste of space. If I understand mongo correctly I could have objects in the same document with different properties. If we sold and Item without a discount we won?t record it as zero, we would just not have a discount field. When I search for items with a discount, and the object doesn?t have that field I would get some type of error and handle it as it were zero. The new software company we will be going with doesn?t think that saving 50-75% disk space is valuable. As they say storage is cheap and we won't see a improvement in performance from reducing disk space. That may be true for programs running locally with the AS/400 emulator. But I would think that once we are using a web interface and doing more work off site having a smaller amount of data to transmit would be a huge benefit.
Is there any good IDEs like visual studio for the AS/400? I hate coding in the green screen and am wasting a lot of time tracking down logical errors because I must rely on data dumps instead of setting breakpoints and watches.
Currently we have no version control, or documentation, for the programs we do write in house, they just copy the program being modded and rename it slightly, so for one report that I run monthly there?s 10+ versions out there that I have no clue what they do or if we need them anymore. Are there any good version control solutions on the AS/400, is it possible to use Git & GitHub with it?
I know this is a ton of problems I?m dumping out here and really appreciate any bit of I that you have advice for.
There's a few problems I'm having and doubt anyone can solve them completely, but I figured I'd write a short description and hope someone can point me in the right direction.
I am one of only two people in our IT department now that the woman training me has retired, my boss also wants to retire as soon as I feel comfortable running everything on my own. She plans on that being about two years from now, so I will be on my own before I can completely create and transition to a new system. Therefore, I need solutions that are easiest to learn and manage yourself, not necessarily what would be the industry standard, most scalable, or most resource efficient.
My background is more in web development, most of what I have used after college is PHP, MySQL, HTML, CSS, & JavaScript, in college I did a lot of C++ console & win API programming, but no experience with mid-range computers. Originally my boss wrote all our software in RPG back when we used punch cards, most of that was carried over when they started using midrange IBM machines, and even now that code had been maintained and modded into the canned software we use. Our system only has RPG and COBOL available for programming languages, as my boss and the woman I replaced are trained in RPG, COBOL, FORTRAN, & ASSMBLER. Currently I've been learning and using COBOL for writing simple things like customer specific file exports, and using the system I navigators SQL interface to export xml files of data I need for more complex reports, importing that to excel, and using its built-in VBA editor.
My boss tells me that the AS/400 can run any languages I want, and just need to let her know what I want and she will get the licenses and have them installed. But I'm not sure what would be the best for me to use. Eventually we want our entire system to be web based. What combinations of languages tend to work best for that on the AS/400?
The software we have now is broken and needs to be replaced ASAP. We have found another software development company that has a better system for a price we are comfortable with, and will be switching to it. But ownership still wants to build our own after that, so we are not paying over $250k a year for the various licenses, support, and modifications needed to keep some very old and broken programs running. Which is the situation we have now. As such anything I write now needs to be able work with each new software solution. Our current system is written on mostly COBOL and some RPG, the next one I'm told is mostly C & RPG.
Right now, there are a lot of reports I need to create, that I want to work regardless of what software solution we implement down the line. I would prefer to only be changing SQL statements, table, & column names. I shouldn't need to push anything to the existing database tables, but will need a few to save my own data in. I really need a good user friendly front end for our customers and employees to run these from so I'm not having to do it all myself. I think MS Access with and ODBC connection to our DB2 system would work well, and should survive the transition from each software system. But it requires the user to have MS access and dose not fulfill my web based requirement. Is it possible for me to set up one of our virtual servers as a web server that I can make a PHP site on that works the same way as I would deal with a MySQL database?
Can I run other databases on the AS/400, and if so do I have to choose just one or can I have them run parallel. I've been considering MEAN stack development and the mongo DB looks attractive to me. Our main item sales history file is 18 million rows for the last year and has over 200 columns. But most items use only 30-50 of those columns. We have all the others for specific reporting requirements that are unique to each of our vendors. That leave 150+ columns filled with spaces, zeros, n/a ect. It seems like a huge waste of space. If I understand mongo correctly I could have objects in the same document with different properties. If we sold and Item without a discount we won?t record it as zero, we would just not have a discount field. When I search for items with a discount, and the object doesn?t have that field I would get some type of error and handle it as it were zero. The new software company we will be going with doesn?t think that saving 50-75% disk space is valuable. As they say storage is cheap and we won't see a improvement in performance from reducing disk space. That may be true for programs running locally with the AS/400 emulator. But I would think that once we are using a web interface and doing more work off site having a smaller amount of data to transmit would be a huge benefit.
Is there any good IDEs like visual studio for the AS/400? I hate coding in the green screen and am wasting a lot of time tracking down logical errors because I must rely on data dumps instead of setting breakpoints and watches.
Currently we have no version control, or documentation, for the programs we do write in house, they just copy the program being modded and rename it slightly, so for one report that I run monthly there?s 10+ versions out there that I have no clue what they do or if we need them anymore. Are there any good version control solutions on the AS/400, is it possible to use Git & GitHub with it?
I know this is a ton of problems I?m dumping out here and really appreciate any bit of I that you have advice for.
Comment