SlideShare a Scribd company logo
1 of 16
5th CA 2E/Plex Worldwide Developer Conference
Darryl Millington, HawkBridge Pty Ltd
June 2, 2011
Session 6B
CA 2E Data Model Cleanup
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Session Abstract
2 Jun 2011 26B - CA 2E Data Model Cleanup
> There are many reasons for 2E data model cleanup, yet many developers
often are unaware how to go about it
> The complexity of the inter-relationships of the 2E objects sometimes makes
it difficult to understand where to begin:
> Should fields be deleted first or unreferenced functions?
> What if an object is used outside of 2E in a 3GL application?
> Coupled with the reduction in the size of development teams and the need to
enhance applications faster - redundant objects in the data model actually
increase the time to perform the necessary changes to applications
> This session will provide some technical tips and techniques on accomplishing
this in order to ensure performance and consistency for your generated 2E
applications
> These tips and techniques come from our extensive experience in data model
cleanups as part of the migration from CA 2E to CA Plex using the
Freedom/Plex and ADC tools
> HawkBridge have developed an automated data model cleanup process
whereby models are submitted by ADC via a web interface for processing and
delivered back to ADC via a web interface
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Speaker Bio
2 Jun 2011 36B - CA 2E Data Model Cleanup
> Darryl has worked as a CA
2E developer since 1988
travelling extensively as an
independent consultant
throughout Australia, New
Zealand, USA, UK and Asia
> He is a regular speaker at
CA conferences and has
been speaking on CA 2E-
related topics since 1991
> Darryl.Millington@HawkBridge.com.au
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Session Agenda
46B - CA 2E Data Model Cleanup
> Why Cleanup
> Benefits for a Cleanup
> What do you Cleanup
> How do you Cleanup
> Measuring Cleanup Success
> Questions
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Why Cleanup
56B - CA 2E Data Model Cleanup
> 10+ years of development in a single data model by many
people
> Data models contain large numbers of redundant, retired and
superceded objects
> Longer timeframes and higher costs to maintain objects no
longer required and used
> Size of data model impacts performance of developers and
increases generation times
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Why Cleanup
66B - CA 2E Data Model Cleanup2 Jun 2011
> Last model cleanup removed 15% of 94,000+ model objects
> 17% of 8,506 access paths
> 31% of 87 arrays
> 22% of 17,397 conditions
> 1% of 1,491 files
> 19% of 33,273 fields
> 3% of 27,337 functions
> 32% of 6,047 messages
> Another model cleanup removed 30% of 66,000+ model objects
> 5% of 5,334 access paths
> 18% of 255 arrays
> 9% of 9,211 conditions
> 2% of 1,216 files
> 4% of 14,606 fields
> 54% of 31,494 functions
> 16% of 4,555 messages
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Benefits for a Cleanup
76B - CA 2E Data Model Cleanup
> Data model size will be greatly reduced
> Lower ongoing project costs and timeframes
> Better quality documentation and understanding of
development environment
> More accurate impact assessments and development
estimates
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
What do you Cleanup
86B - CA 2E Data Model Cleanup
> Job Lists
> Model Object Lists
> Fields
> Conditions
> Files
> Access Paths
> Functions
> Action Diagrams
> Arrays
> Messages
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
How do you Cleanup
96B - CA 2E Data Model Cleanup
> Step 1: Save a copy of the data model before cleanup so that
you can recover from deleting incorrect objects
> Step 2: Rebuild *ALLOBJ model object list using:
> WARNING: Do not perform this on Change Control Models
> CLRPFM YMDLOBJRFP
> CALL YLODOBJH1I
> Step 3: Rebuild data model *USRSPC object(s) using:
> YDLTOBJTBL
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
How do you Cleanup
106B - CA 2E Data Model Cleanup
> Step 4: Remove data model inconsistencies:
> YCHKMDL in *UPDATE mode
> Step 5: Verify and fix data model consistency:
> YCHKMDL in *ANALYZE mode
> Step 6: Remove unwanted Job Lists:
> RMVM on all the YJOBLST* files in the data model
> Step 7: Remove unwanted Model Object Lists:
> YWRKMDLLST and option 4
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
How do you Cleanup
116B - CA 2E Data Model Cleanup
> Step 8: Remove ALL commented-out action diagram code
> HawkBridge have a custom program for this
> Step 9: Delete all unreferenced fields
> Y2 USER(*DSNR) OPNACC(*NO)
> F7, F11 and Option D
> Step 10: Delete all unreferenced internal functions:
> YDOCURF OBJTYP(*FUN) OUTLST(MYLST)
> YFLTMDLLST MDLLST(MYLST) GENATR(*INTFUN)
> YEXCMDLLST MDLLST(MYLST) ERRLVL(*NOMAX)
RQSDTA('YDLTMDLVSN OBJSGT(&Y@)')
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
How do you Cleanup
126B - CA 2E Data Model Cleanup
> Step 11: Delete all unreferenced non-current versions:
> YBLDMDLLST OBJNAM((*ALL *ALL *FUN)) MDLLST(MYLST)
CUROBJ(*NO)
> YFLTMDLLST MDLLST(MYLST) CUROBJ(*NO)
> YEXCMDLLST MDLLST(MYLST) ERRLVL(*NOMAX)
RQSDTA('YDLTMDLVSN OBJSGT(&Y@)')
> Step 12: Loop back to Step 9 until no objects deleted
> Step 13: Delete all unreferenced access paths:
> YDOCURF OBJTYP(*ACP) OUTLST(MYLST)
> YWRKMDLLST and option 24
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
How do you Cleanup
136B - CA 2E Data Model Cleanup
> Step 14: Delete all unreferenced conditions:
> YDOCURF OBJTYP(*CND) OUTLST(MYLST)
> YFLTMDLLST FILTER(*OMIT) MDLLST(MYLST) OBJNAM((*ALL *ALL
*CND)) OBJATR(VAL)
> YFLTMDLLST FILTER(*OMIT) MDLLST(MYLST) OBJNAM((*ALL '*ALL
values' *CND)) OBJATR(LST)
> YWRKMDLLST and option 24
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
How do you Cleanup
146B - CA 2E Data Model Cleanup
> Step 15: Delete unused files:
> SELECT T01.OBJATR, T01.FIL FROM YFILDTARFP T01 WHERE
T01.@@FIL NOT IN (SELECT T02.@@OBJ FROM YRELDTARFP T02
WHERE T02.RELCDE <> '005') AND T01.@@FIL NOT IN (SELECT
T03.@@FIL FROM YMSGDTARFP T03)
> Y2 USER(*DSNR) OPNACC(*NO)
> ’Rel Lvl’ = ’DFN’
> Search for file defined as relation and use Option D
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Measuring Cleanup Success
156B - CA 2E Data Model Cleanup
> Run the measures before and after cleanup
> Summarise Model Objects
> SELECT OBJTYP, OBJATR, COUNT(*) FROM YMDLOBJRFP GROUP BY
OBJTYP, OBJATR ORDER BY OBJTYP, OBJATR
> Summarise Function Complexity
> SELECT COUNT(*) FROM YMSGACTRFP ACT WHERE ACT.ELMTYP =
'CND‘ AND ACT.@@ELM >= 1000000 AND ACT.@@SUB2 >= 0
> Summarise Model Library Size
> WRKLIBPDM and F14
2 Jun 2011
Copyright © 2011 HawkBridge Pty Ltd. All rights reserved
Questions
166B - CA 2E Data Model Cleanup2 Jun 2011

More Related Content

What's hot

Data Structures and Algorithm - Module 1.pptx
Data Structures and Algorithm - Module 1.pptxData Structures and Algorithm - Module 1.pptx
Data Structures and Algorithm - Module 1.pptxEllenGrace9
 
Architecture of-dbms-and-data-independence
Architecture of-dbms-and-data-independenceArchitecture of-dbms-and-data-independence
Architecture of-dbms-and-data-independenceAnuj Modi
 
The Basics of MongoDB
The Basics of MongoDBThe Basics of MongoDB
The Basics of MongoDBvaluebound
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremRahul Jain
 
Database management system1
Database management system1Database management system1
Database management system1jamwal85
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and AlgorithmDhaval Kaneria
 
Different type of databases
Different type of databasesDifferent type of databases
Different type of databasesShwe Yee
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithmsiqbalphy1
 
Message authentication
Message authenticationMessage authentication
Message authenticationCAS
 
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10sumitbardhan
 

What's hot (20)

Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Data Structures and Algorithm - Module 1.pptx
Data Structures and Algorithm - Module 1.pptxData Structures and Algorithm - Module 1.pptx
Data Structures and Algorithm - Module 1.pptx
 
RDBMS concepts
RDBMS conceptsRDBMS concepts
RDBMS concepts
 
Architecture of-dbms-and-data-independence
Architecture of-dbms-and-data-independenceArchitecture of-dbms-and-data-independence
Architecture of-dbms-and-data-independence
 
The Basics of MongoDB
The Basics of MongoDBThe Basics of MongoDB
The Basics of MongoDB
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP Theorem
 
DATABASE MANAGEMENT SYSTEM
DATABASE MANAGEMENT SYSTEMDATABASE MANAGEMENT SYSTEM
DATABASE MANAGEMENT SYSTEM
 
Dbms
DbmsDbms
Dbms
 
Database concepts
Database conceptsDatabase concepts
Database concepts
 
Database management system1
Database management system1Database management system1
Database management system1
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and Algorithm
 
Different type of databases
Different type of databasesDifferent type of databases
Different type of databases
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithms
 
Different data models
Different data modelsDifferent data models
Different data models
 
Rdbms
RdbmsRdbms
Rdbms
 
INTRODUCTION TO DATABASE
INTRODUCTION TO DATABASEINTRODUCTION TO DATABASE
INTRODUCTION TO DATABASE
 
Message authentication
Message authenticationMessage authentication
Message authentication
 
Lecture2 oracle ppt
Lecture2 oracle pptLecture2 oracle ppt
Lecture2 oracle ppt
 
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10
 
Oracle DBA
Oracle DBAOracle DBA
Oracle DBA
 

Similar to HawkBridge - CA 2E Data Model Cleanup v3

Less04 instance
Less04 instanceLess04 instance
Less04 instanceImran Ali
 
Oracle forms les02
Oracle forms  les02Oracle forms  les02
Oracle forms les02Abed Othman
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2Alex Zaballa
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2Alex Zaballa
 
Mod03 linking and accelerating
Mod03 linking and acceleratingMod03 linking and accelerating
Mod03 linking and acceleratingPeter Haase
 
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationIOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationBobby Curtis
 
Oracle forms les21
Oracle forms  les21Oracle forms  les21
Oracle forms les21Abed Othman
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under controlMarcin Przepiórowski
 
ENEL Electricity Topology Network on Neo4j Graph DB
ENEL Electricity Topology Network on Neo4j Graph DBENEL Electricity Topology Network on Neo4j Graph DB
ENEL Electricity Topology Network on Neo4j Graph DBNeo4j
 
A PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATEA PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATETushar Choudhary
 
Raiser's Edge Database Cleanup Tips
Raiser's Edge Database Cleanup TipsRaiser's Edge Database Cleanup Tips
Raiser's Edge Database Cleanup TipsBlackbaud
 
Preparing forr12-140703020001-phpapp02
Preparing forr12-140703020001-phpapp02Preparing forr12-140703020001-phpapp02
Preparing forr12-140703020001-phpapp02shubham gupta
 
Preparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-fullPreparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-fullBerry Clemens
 
Kettleetltool 090522005630-phpapp01
Kettleetltool 090522005630-phpapp01Kettleetltool 090522005630-phpapp01
Kettleetltool 090522005630-phpapp01jade_22
 
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Peter Martin
 
Less08 managing data and concurrency
Less08 managing data and concurrencyLess08 managing data and concurrency
Less08 managing data and concurrencyImran Ali
 
AML4DT: A Model-Driven Framework for Developing and Maintaining Digital Twin...
AML4DT: A Model-Driven Framework for Developing  and Maintaining Digital Twin...AML4DT: A Model-Driven Framework for Developing  and Maintaining Digital Twin...
AML4DT: A Model-Driven Framework for Developing and Maintaining Digital Twin...Daniel Lehner
 

Similar to HawkBridge - CA 2E Data Model Cleanup v3 (20)

Less04 instance
Less04 instanceLess04 instance
Less04 instance
 
Oracle forms les02
Oracle forms  les02Oracle forms  les02
Oracle forms les02
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2DBA Commands and Concepts That Every Developer Should Know - Part 2
DBA Commands and Concepts That Every Developer Should Know - Part 2
 
Mod03 linking and accelerating
Mod03 linking and acceleratingMod03 linking and accelerating
Mod03 linking and accelerating
 
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationIOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
 
Oracle forms les21
Oracle forms  les21Oracle forms  les21
Oracle forms les21
 
Reporting 201
Reporting 201Reporting 201
Reporting 201
 
Les 10 fl1
Les 10 fl1Les 10 fl1
Les 10 fl1
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under control
 
ENEL Electricity Topology Network on Neo4j Graph DB
ENEL Electricity Topology Network on Neo4j Graph DBENEL Electricity Topology Network on Neo4j Graph DB
ENEL Electricity Topology Network on Neo4j Graph DB
 
A PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATEA PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATE
 
Raiser's Edge Database Cleanup Tips
Raiser's Edge Database Cleanup TipsRaiser's Edge Database Cleanup Tips
Raiser's Edge Database Cleanup Tips
 
Preparing forr12-140703020001-phpapp02
Preparing forr12-140703020001-phpapp02Preparing forr12-140703020001-phpapp02
Preparing forr12-140703020001-phpapp02
 
Preparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-fullPreparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-full
 
Kettleetltool 090522005630-phpapp01
Kettleetltool 090522005630-phpapp01Kettleetltool 090522005630-phpapp01
Kettleetltool 090522005630-phpapp01
 
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
 
Less08 managing data and concurrency
Less08 managing data and concurrencyLess08 managing data and concurrency
Less08 managing data and concurrency
 
audit_blog.ppt
audit_blog.pptaudit_blog.ppt
audit_blog.ppt
 
AML4DT: A Model-Driven Framework for Developing and Maintaining Digital Twin...
AML4DT: A Model-Driven Framework for Developing  and Maintaining Digital Twin...AML4DT: A Model-Driven Framework for Developing  and Maintaining Digital Twin...
AML4DT: A Model-Driven Framework for Developing and Maintaining Digital Twin...
 

HawkBridge - CA 2E Data Model Cleanup v3

  • 1. 5th CA 2E/Plex Worldwide Developer Conference Darryl Millington, HawkBridge Pty Ltd June 2, 2011 Session 6B CA 2E Data Model Cleanup
  • 2. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Session Abstract 2 Jun 2011 26B - CA 2E Data Model Cleanup > There are many reasons for 2E data model cleanup, yet many developers often are unaware how to go about it > The complexity of the inter-relationships of the 2E objects sometimes makes it difficult to understand where to begin: > Should fields be deleted first or unreferenced functions? > What if an object is used outside of 2E in a 3GL application? > Coupled with the reduction in the size of development teams and the need to enhance applications faster - redundant objects in the data model actually increase the time to perform the necessary changes to applications > This session will provide some technical tips and techniques on accomplishing this in order to ensure performance and consistency for your generated 2E applications > These tips and techniques come from our extensive experience in data model cleanups as part of the migration from CA 2E to CA Plex using the Freedom/Plex and ADC tools > HawkBridge have developed an automated data model cleanup process whereby models are submitted by ADC via a web interface for processing and delivered back to ADC via a web interface
  • 3. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Speaker Bio 2 Jun 2011 36B - CA 2E Data Model Cleanup > Darryl has worked as a CA 2E developer since 1988 travelling extensively as an independent consultant throughout Australia, New Zealand, USA, UK and Asia > He is a regular speaker at CA conferences and has been speaking on CA 2E- related topics since 1991 > Darryl.Millington@HawkBridge.com.au
  • 4. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Session Agenda 46B - CA 2E Data Model Cleanup > Why Cleanup > Benefits for a Cleanup > What do you Cleanup > How do you Cleanup > Measuring Cleanup Success > Questions 2 Jun 2011
  • 5. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Why Cleanup 56B - CA 2E Data Model Cleanup > 10+ years of development in a single data model by many people > Data models contain large numbers of redundant, retired and superceded objects > Longer timeframes and higher costs to maintain objects no longer required and used > Size of data model impacts performance of developers and increases generation times 2 Jun 2011
  • 6. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Why Cleanup 66B - CA 2E Data Model Cleanup2 Jun 2011 > Last model cleanup removed 15% of 94,000+ model objects > 17% of 8,506 access paths > 31% of 87 arrays > 22% of 17,397 conditions > 1% of 1,491 files > 19% of 33,273 fields > 3% of 27,337 functions > 32% of 6,047 messages > Another model cleanup removed 30% of 66,000+ model objects > 5% of 5,334 access paths > 18% of 255 arrays > 9% of 9,211 conditions > 2% of 1,216 files > 4% of 14,606 fields > 54% of 31,494 functions > 16% of 4,555 messages
  • 7. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Benefits for a Cleanup 76B - CA 2E Data Model Cleanup > Data model size will be greatly reduced > Lower ongoing project costs and timeframes > Better quality documentation and understanding of development environment > More accurate impact assessments and development estimates 2 Jun 2011
  • 8. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved What do you Cleanup 86B - CA 2E Data Model Cleanup > Job Lists > Model Object Lists > Fields > Conditions > Files > Access Paths > Functions > Action Diagrams > Arrays > Messages 2 Jun 2011
  • 9. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved How do you Cleanup 96B - CA 2E Data Model Cleanup > Step 1: Save a copy of the data model before cleanup so that you can recover from deleting incorrect objects > Step 2: Rebuild *ALLOBJ model object list using: > WARNING: Do not perform this on Change Control Models > CLRPFM YMDLOBJRFP > CALL YLODOBJH1I > Step 3: Rebuild data model *USRSPC object(s) using: > YDLTOBJTBL 2 Jun 2011
  • 10. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved How do you Cleanup 106B - CA 2E Data Model Cleanup > Step 4: Remove data model inconsistencies: > YCHKMDL in *UPDATE mode > Step 5: Verify and fix data model consistency: > YCHKMDL in *ANALYZE mode > Step 6: Remove unwanted Job Lists: > RMVM on all the YJOBLST* files in the data model > Step 7: Remove unwanted Model Object Lists: > YWRKMDLLST and option 4 2 Jun 2011
  • 11. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved How do you Cleanup 116B - CA 2E Data Model Cleanup > Step 8: Remove ALL commented-out action diagram code > HawkBridge have a custom program for this > Step 9: Delete all unreferenced fields > Y2 USER(*DSNR) OPNACC(*NO) > F7, F11 and Option D > Step 10: Delete all unreferenced internal functions: > YDOCURF OBJTYP(*FUN) OUTLST(MYLST) > YFLTMDLLST MDLLST(MYLST) GENATR(*INTFUN) > YEXCMDLLST MDLLST(MYLST) ERRLVL(*NOMAX) RQSDTA('YDLTMDLVSN OBJSGT(&Y@)') 2 Jun 2011
  • 12. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved How do you Cleanup 126B - CA 2E Data Model Cleanup > Step 11: Delete all unreferenced non-current versions: > YBLDMDLLST OBJNAM((*ALL *ALL *FUN)) MDLLST(MYLST) CUROBJ(*NO) > YFLTMDLLST MDLLST(MYLST) CUROBJ(*NO) > YEXCMDLLST MDLLST(MYLST) ERRLVL(*NOMAX) RQSDTA('YDLTMDLVSN OBJSGT(&Y@)') > Step 12: Loop back to Step 9 until no objects deleted > Step 13: Delete all unreferenced access paths: > YDOCURF OBJTYP(*ACP) OUTLST(MYLST) > YWRKMDLLST and option 24 2 Jun 2011
  • 13. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved How do you Cleanup 136B - CA 2E Data Model Cleanup > Step 14: Delete all unreferenced conditions: > YDOCURF OBJTYP(*CND) OUTLST(MYLST) > YFLTMDLLST FILTER(*OMIT) MDLLST(MYLST) OBJNAM((*ALL *ALL *CND)) OBJATR(VAL) > YFLTMDLLST FILTER(*OMIT) MDLLST(MYLST) OBJNAM((*ALL '*ALL values' *CND)) OBJATR(LST) > YWRKMDLLST and option 24 2 Jun 2011
  • 14. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved How do you Cleanup 146B - CA 2E Data Model Cleanup > Step 15: Delete unused files: > SELECT T01.OBJATR, T01.FIL FROM YFILDTARFP T01 WHERE T01.@@FIL NOT IN (SELECT T02.@@OBJ FROM YRELDTARFP T02 WHERE T02.RELCDE <> '005') AND T01.@@FIL NOT IN (SELECT T03.@@FIL FROM YMSGDTARFP T03) > Y2 USER(*DSNR) OPNACC(*NO) > ’Rel Lvl’ = ’DFN’ > Search for file defined as relation and use Option D 2 Jun 2011
  • 15. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Measuring Cleanup Success 156B - CA 2E Data Model Cleanup > Run the measures before and after cleanup > Summarise Model Objects > SELECT OBJTYP, OBJATR, COUNT(*) FROM YMDLOBJRFP GROUP BY OBJTYP, OBJATR ORDER BY OBJTYP, OBJATR > Summarise Function Complexity > SELECT COUNT(*) FROM YMSGACTRFP ACT WHERE ACT.ELMTYP = 'CND‘ AND ACT.@@ELM >= 1000000 AND ACT.@@SUB2 >= 0 > Summarise Model Library Size > WRKLIBPDM and F14 2 Jun 2011
  • 16. Copyright © 2011 HawkBridge Pty Ltd. All rights reserved Questions 166B - CA 2E Data Model Cleanup2 Jun 2011