Managing Your Development Environment: Tips - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Managing Your Development Environment: Tips

Description:

Appetizers. 3. Lower costs. Increased user satisfaction. All MFG/PRO versions. All Progress versions ... 3rd-party tools. Quick & Easy method = DIY ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 33
Provided by: tammylo6
Category:

less

Transcript and Presenter's Notes

Title: Managing Your Development Environment: Tips


1
Managing Your Development Environment Tips
Tricks
  • Tammy Lonsberry
  • Sr. Programmer/Analyst
  • Sungate Solutions, Inc.

2
Todays Menu
  • Appetizers
  • Main Course
  • Meat
  • Potatoes
  • Pasta
  • Desert
  • Doggie Bag

3
Appetizers
  • Lower costs
  • Increased user satisfaction
  • All MFG/PRO versions
  • All Progress versions
  • All UIs

4
Main Course
  • Meat
  • Databases, Directories Environments
  • Potatoes
  • Promotion
  • Pasta
  • Programming

5
Meat Databases
  • DB sets
  • Min 2
  • Ex Train, Prod
  • Better 3
  • Ex Test, Train, Prod
  • Best 4
  • Ex Devel, Test, Train, Sandbox, Prod, etc.
  • Its all about the data-base
  • Different purposes, audiences, refresh timing
  • Needs vary with business cycle, software phase

6
Meat Directories
  • Code sets
  • Custom Customized
  • 3rd Party
  • Patches
  • QAD
  • Code versions
  • Devel
  • Test
  • Prod

7
Meat Directories
  • You gotta keep em separated
  • Create directory structure which allows separate
    locations for each code set and each code version
  • ltmfgprogt/test
  • /test/src
  • /test/us/aa
  • /test/us/bb
  • ltmfgprogt/prod
  • /prod/src
  • /prod/us/aa
  • /prod/us/bb

8
Meat Directories
  • Files used for EDI, Interfaces, Automated
    Processes, Batch Jobs, Scripts, etc.
  • Provide ability to develop test changes,
    support production, without impacting production
  • ltdatagt/test/archive
  • /test/export
  • /test/ftp
  • /test/import
  • ltdatagt/prod/archive
  • /prod/import
  • /prod/ftp
  • /prod/export

9
Meat Environments
  • Environment Marriage of Database Code
  • Mix-and-match
  • Database set
  • Code Set
  • Code Version
  • Manage your Propath, manage your .pf, manage your
    environment
  • Source vs. r-code
  • Source belongs in development Propath only
  • All other environments run compiled code

10
Meat Environments
  • Sample Propath for Production users (no source)
  • .
  • /apps/mfgpro/apm gt Advanced Pricing Module
  • /apps/mfgpro/eb21/prod gt Custom Production
  • /apps/mfgpro/eb21 gt QAD
  • /apps/mfgpro/eb21/bbi
  • Sample Propath for Test/Training users (no
    source)
  • .
  • /apps/mfgpro/apm
  • /apps/mfgpro/eb21/test gt Custom Test
  • /apps/mfgpro/eb21/prod
  • /apps/mfgpro/eb21
  • /apps/mfgpro/eb21/bbi

11
Meat Environments
  • Sample Propath for Development (includes source)
  • .
  • /apps/mfgpro/apm gt APM object code (.rs)
  • /apps/mfgpro/apm/us/xrc gt APM source (encrypted)
  • /apps/mfgpro/eb21/test gt Custom Test object code
    (.rs)
  • /apps/mfgpro/eb21/test/src gt Custom Test source
  • /apps/mfgpro/eb21/prod gt Custom Prod object code
    (.rs)
  • /apps/mfgpro/eb21/prod/src gt Custom Prod source
  • /apps/mfgpro/eb21 gt QAD object code (.rs)
  • /apps/mfgpro/eb21/src gt QAD source
  • /apps/mfgpro/eb21/xrc gt QAD source (encrypted)
  • /apps/mfgpro/eb21/bbi gt QAD (misc. include
    files)

12
Meat Databases, Directories Environments
  • Benefits of good database, directory
    environment management
  • Helps with troubleshooting and support
  • Can easily peel away the layers to determine
    root cause
  • Insulates data from code
  • Eliminates redundant code sets
  • Eliminates out-of-sync code sets

13
Potatoes Promotion
  • Version Control
  • 3rd-party tools
  • Quick Easy method DIY
  • Use a simple technique for archiving your custom
    source
  • Create save directory
  • Prior to overwriting Custom Production source,
    copy the current version into /save.
  • Add a file extension indicating date
  • Ex Copy from ltprodgt/src/abc.p
  • to ltprodgt/src/save/abc.p.YYMMDD
  • Source object gt dont create orphans
  • Always move .is, .ps, .rs together same time
    same place

14
Potatoes Promotion
  • Know the difference
  • Use a file compare tool (diff, guiffy)
  • Promote no more, no less than you intend
  • Beyond the code its data, too
  • Ex Menu Items, Messages, Gen Codes, Labels,
    Look-ups, Views, Browses, etc.
  • Include these in your code promotion process
  • Create once, then dump load
  • To avoid collisions, avoid the shortcuts
  • Never add to Prod db first

15
Potatoes Promotion
  • Benefits of good promotion practices
  • Not just for the auditors or big brother
  • Quick roll-back
  • Enhanced trouble-shooting
  • Reduce human-error
  • Stable environments

16
Pasta Programming
  • Spaghetti code
  • Standards
  • Suggestions
  • Shortcuts
  • Performance

17
Programming Standards
  • When in Rome (support.qad.com)
  • Consistent UI
  • Lower Maintenance Cost
  • Lower TCO
  • 3 basic program models
  • Inquiry
  • Report
  • Maintenance

18
Programming Suggestions
  • Plan ahead - there will be a next time
  • Keep it simple, readable, consistent
  • Prepare for quick-scan speed-reading
  • Use indents
  • Quick visual line up of loops, blocks, etc.
  • Use white space
  • Creates visual columns
  • Just say No!
  • Tabs
  • Uppercase in variables, field, table names
  • Abbreviated key words

19
Programming Suggestions
  • /Comments/ - Use them for
  • Message Text
  • /ITEM DOES NOT EXIST/
  • mfmsg.i 7179 3
  • End statements
  • loop1
  • repeat
  • ltsome code heregt
  • end. /loop1/
  • End procedures
  • procedure p_GetData
  • ltsome code heregt
  • end procdure. /p_GetData/

20
Programming Suggestions
  • Put dots within the comments
  • /REV01 BEGIN COMMENT
  • . for each pt_mstr fields (pt_desc1
    pt_desc2)
  • . where pt_part part
  • . no-lock
  • . display
  • . pt_desc1
  • . pt_desc2
  • . with frame b.
  • . end. /for each pt_mstr/
  • .REV01 END COMMENT /

21
Programming Suggestions
  • Type the end first, the middle second
  • Step 1
  • for each pt_mstr
  • no-lock
  • end. /for each pt_mstr/
  • Step 2 fill in the middle
  • Walk the screen use same field order for
  • Variable Definitions
  • Assigning initial values
  • hi_char, low_char
  • Update, prompt-for
  • mfquoter.i

22
Programming Suggestions
  • Naming conventions - moving beyond xx
  • Applies to code, tables, fields
  • 1st character alpha
  • 2nd character numeric
  • Ex a1, b2, p1pt
  • Sample program name a1apvdrp.p
  • Sample table name p1pt_mstr

23
Programming Shortcuts
  • Variable names Benefit from smart choices
  • Why acc is different than acct
  • QAD has already done the work for you
  • Get look-up browses for free
  • Get field help for free
  • Watch the from/to
  • Use part/part1, not part1/part2, part_s/part_e,
    etc.

24
Programming Shortcuts
  • Need a new message?
  • findmsg.p
  • Havent I done this before?
  • findltxxxgt.p
  • Remember the 3 models plagiarism is good ?

25
Programming Shortcuts
  • Reports Give them more than they ask for
  • Improved selection criteria
  • Faster testing faster enhancements
  • Reuse and recycle
  • Use includes (.is), called procedures (.ps)
  • Eliminate redundant code
  • Eliminate out-of-sync code segments
  • Reduced development time
  • Reduced test-case scenarios
  • Faster enhancements

26
Programming Performance
  • Use can-find to determine whether record exists
  • SLOW
  • find bom_mstr where bom_parent temp-bom
  • no-lock no-error.
  • if not available bom_mstr then do
  • / ltdo something heregt /
  • end.
  • FAST
  • if not can-find(first bom_mstr where
    bom_parent temp-bom) then
  • do
  • / ltdo something heregt /
  • end.

27
Programming Performance
  • Use Fields phrase to retrieve just what you need
    (v.8)
  • SLOW
  • find pt_mstr where pt_part temp-part no-lock
    no-error.
  • if available pt_mstr then
  • display
  • pt_desc1
  • pt_desc2
  • with frame b.
  • FAST
  • for first pt_mstr fields (pt_desc1 pt_desc2)
  • where pt_part temp-part no-lock
  • display
  • pt_desc1
  • pt_desc2
  • with frame b.
  • end.

28
Programming Performance
  • 2-step reporting
  • Step 1 Gather data into temp table(s)
  • Ignore desired report sort options
  • Structure where clauses to maximize index
    performance
  • Dont use use-index, Progress is smarter than
    you
  • Step 2 Display report from temp table(s)
  • Do sorting here
  • Much smaller data set
  • You control the indexes

29
Programming Performance
  • Managing multiple sort options
  • More options should not mean more code
  • Code the report only once, regardless of the
    number of sort options
  • Use the 2-step reporting method
  • Use include files and parameters
  • Can provide the same report sorted multiple ways
  • Bonus feature Can provide flexible column layout
    with 1 include and creative parameters

30
Desert Sweet Rewards
  • Lower costs
  • Development
  • Troubleshooting Support
  • Enhancement Change Requests
  • Higher user satisfaction
  • Consistent UI leads to
  • Same look-and-feel
  • Same navigation keys
  • Less training
  • Quick response resolution
  • Increased labor efficiencies

31
  • Questions?

32
Doggie Bag
  • For further information or a copy of this
    presentation
  • Tammy Lonsberry
  • (847) 628-4796
  • tlonsberry_at_sungate-solutions.com
Write a Comment
User Comments (0)
About PowerShow.com