200 likes | 494 Views
EB2 SP8 to QAD 2008 SE What the Vendors Didn’t Tell Us March 23, 2009. Project Objectives. QAD 2008 Standard Edition Released May 2008 Equivalent to EB2.1 service pack 7 All QAD fixes through February 21, 2008 NetUI 2.7.1 – installed and tested internally but not pushed
E N D
EB2 SP8 to QAD 2008 SE What the Vendors Didn’t Tell Us March 23, 2009
Project Objectives • QAD 2008 Standard Edition Released May 2008 • Equivalent to EB2.1 service pack 7 • All QAD fixes through February 21, 2008 • NetUI 2.7.1 – installed and tested internally but not pushed • QAD Standard Accounting • Upgrade from Progress 9.1e (32 bit) to OpenEdge 10.1B (64 bit) • Multi-domain/single database • Maintain China as separate database • No process changes as part of project • 5 Production QAD Databases • (US, China, Mexico, Canada, Consolidated Financial) • 17 Test/Training databases
Project Metrics as of May 1st 2008 • 10,861 QAD programs • 974 In-house programs • 3395 QAD transactions (we use 536) • 452 in-house transactions • 1249 Security groups • 259 Process flow modifications (Tailor Pro hooks) • 784 QAD tables • 165 In-house tables added • 3 QAD Bolt-ons (CSS, Configurator, Chinese Accounting) • 6 Third party bolt-ons • ( CGI Cash Application, Eagle Scanning, Credit Card, • ProMonitor, Archive Delete Utility, Pro Dump & Load) • 12 Interfaces to other applications • ( Aceva, Salesforce.com, Trendset, Metals, ESB, Pull/Sizing Die Shop, Invoice Imaging, EDI, I-Trax, Essbase, EIS/S&OP)
EGI Application Overview 2008 Aceva SQL Server 2000 Gentran Salesforce.com I-Trax Progress 9.1E Trendset(Freight) In-House SQL Server 2005 Metals Essbase Eagle ESB CGI Credit Card QAD EB2 SP8 Open Insight Shop Floor SQL Server 2005 Pull/Sizing Die Shop Access EIS/S&OP Progress 9.1E Invoice Imaging Optio CSS Autosys Best FA Pitney Bowes Configurator ADP CyberQuery Sybase
General Approach • Install an QAD 2008 SE Reference System - Complete • No Essex modifications • No Tailor-Pro hooks • Have QAD convert code - Complete • QAD will return code that compiles (untested & no functional mods) • Insures we are using “domains” according to their standard • QAD will covert code a 2nd time if we require • Install a QAD 2008 SE development sandbox - Complete • Use a fully converted database & converted code • Convert\test limited in-house sample code set • Validate development estimates • Revise/Create Test Plans– In-Progress • QAD Business Team to lead effort • BSA’s available to assist Business Team • Business Team will develop System Test schedule
General Approach • Convert and Unit Test - In-Progress • Use module/menu approach • Developers complete “F1” testing of each menu • Unit test each of the bolt-ons and interfaces • System Test – In-Planning • Complete system test one time for all environments • System test areas are production ready • Business Team will lead testing effort • BSA’s will track and oversee documentation (for audits) • All modules/Interfaces/Bolt-ons tested and reviewed • Review results with Internal Audit • Implementation – In-Planning • Will consist of data conversion into System Test environment • Convert China • Stabilize China (one month) • Convert North America
Things We Learned Along the Way - QAD • Security • Groups names are now a maximum of 8 characters • Wrote our own pre-conversion process • Menu groups not populated (menu security is wide open after conversion) • Wrote our own extract and cim generator • Only groups on menus are converted (no site security groups converted) • Added all non-menu groups to unused 36 menus • No way to by-pass “Must Change Password” flag • Developing code to clear the flag • Cannot have user and group with same name • search and change groups
Things We Learned Along the Way - QAD • QAD Code conversion • 76% successful compiles after conversion (was quoted 100%) • Manually corrected code that would not compile • Not all compiled code runs • Tighter syntax rules for Progress 10 • Architecture changes in tables not converted • “F1” testing and manual changes as needed • Only simple “For Each” statements converted correctly • Search and change missed “For Each” • NetUI • Cannot use Progress Alert-boxes • Frame overlays must disable underlying fields • Cannot use progress browse/query • Cannot use Progress selection-list • Modify code
Things We Learned Along the Way - QAD • Browses and Lookups • Not converted • Conversion instructions are to manually re-enter • KB41077 has details on how to move between environments • KB article missing one additional table that needs copied • System Messages • QAD expanded the index from 4 numeric to 5 numeric characters • Existing “open” spaces were used by QAD for new message • Moved in house messages to new range – changed code
Things We Learned Along the Way - QAD • Data Conversion • Need min free DASD of 3x largest DB for conversion activity • (200GB DB required 80GB sort work and 30GB of BI) • Acquired additional storage • Conversion instructions incorrect • developed our own conversion documentation • EDI conversion uses unnecessary steps and is inefficient • (9M records in ADMPROD takes 24 hours to convert) • Working with QAD to resolve • Domain Merge Utility • Not all functions run as documented • Is not restartableas documented • developed our own merge documentation
Things We Learned Along the Way - Eagle • New version for QAD 2008 SE • Code compiled but failed on execution • 2nd version from Eagle resolved errors
Things We Learned Along the Way - Tailor-Pro • New version for QAD 2008 SE • Adds a layer of security based on QAD users and groups • initialized security table to “*” • Domain Conversion • Marriage tables need domain added to join • manually added domain to marriage table join statements • .NETUI • Events do not fire at the same time as in telnet • re-anchor and test as needed
Things We Learned Along the Way – CyberQuery • New version for Progress 10 and 64 bit • Repeatedly sent us versions that would not execute • trial and error until run-able version received • New dictionary for QAD 2008 SE • Dictionary changes are not migrated • migration completed with CQ utilities • Access method changed to use SQL92 engine(instead of native Progress) • security defined for all tables within the SQL92 engine • Field lengths defined in the CQ dictionary do not always match “real” data • updated field definitions within CQ dictionary • OID field is numeric and generates error when summed • unselect OID field from field lists • Will handle multi-domain without major query changes • Setup CQ database definitions with domain specified in parameters • Collections require changes for domains • Queries that use ”DEFINE FILE” have to have domain added • Manually add domain where required
Final Thoughts for vendors • You may try hard but you don’t live in the trenches • Toolsets are not developed for do-it-yourself maintenance • Not all customers want or can afford ”services” • Data conversions are not one-time events • All conversion activity must be re-executable • All data must be converted • Even non-intrusive “tools” have a cost at upgrade time • All tools must be reviewed and tested • Documentation needs to be accurate and summarized • Technical highlights would be very useful • User customizations are a fact of life • Develop tools and documentation to assist with customizations
Final Thoughts for Other QAD users • Minimize Business Process changes bundled with upgrades • Complete the business process change after stabilization • Rollout NETUI after stabilization • Plan to execute multiple data conversions • Data conversions are not evil – just part of the process • Document your own conversion process • As you uncover items, you will need to make adjustments and re-convert • Customizations are Evil (but maybe necessary) • If you can, jettison customizations • Even non-intrusive “tools” have a cost at upgrade time • Run at least one parallel conversion early on • Some things only became apparent after a full conversion • Test your core business processes repeatedly
Final Thoughts for Other QAD users • Purge and Archive • Volume of data will significantly affect your conversion • Not all Purge and Archives are created equal • Consider running a dump and load • Before conversion to reduce conversion run time • After conversion if you used an in-place conversion • Expect the unexpected • Vendors don’t know your implementation and cannot tell you what to expect • Be flexible and willing to take a step back and rethink what you are doing • The longer it has been since your last upgrade, • the more unexpected items you will have