This document discusses customizing the 3DEXPERIENCE platform. It defines configuration vs customization, with configuration using native tools and customization requiring custom code. Customizations can include business processes, additional data capture, adaptability/integration and automation. Users, developers, administrators and sponsors are involved. Schema, commands, attributes and more can be customized. Property files, MQL, thick clients, and JSP files are ways to customize. Customizations should be deployed in development, test, staging and production environments following formal processes.
4. Configuration vs Customization
• Configuration
» Definition: relative arrangement of parts
or elements
» Meaning: use native tools in the system
to change it’s behavior or features
5. Configuration vs Customization
• Customization
» Definition: to change (something) in
order to fit the needs or requirements of
a person, business, etc.
» Meaning: features, extensions, or
modifications of software that require
implementation of custom coding
6. Configuration vs Customization
• Ask yourself - Will this change be impacted by an
upgrade?
» NO: Configuration
» YES: Customization
12. What can be configured?
• Groups
• Roles
• Security Contexts
• User Accounts
• Permissions
• Preferences
• Configuration Files (enovia.ini, web.xml, etc.)
13. • Schema
What can be customized?
Commands
Attributes
Channels
Portals
Policies
Menus
Web Forms Tables
14. What can be customized?
• Schema (cont.)
» Programs
» Java Program Objects (JPOs)
» Relationships
» Types
» Tool Command Language (TCL) Scripts
15. What can be customized?
• Web Stack
» Images
» Java Server Pages (JSPs)
» Property Files
18. How to customize?
• Property Files
» Use your favorite editor to make additions/changes
» Add new entries at the bottom of the file(s)
» Use a prefix to distinguish custom keys
» Add modified entries at the bottom of the file
» Add new/modified entries to each language specific file
25. How to customize?
• Java Program Objects
» Use a prefix when creating new JPOs
» Do not update or add methods to “base” classes
» Copy methods from “base” classes to “non-base” classes,
then make your changes
» Add new methods to new JPOs and “non-base” classes
» Use your favorite editor to make additions/changes
» Compile JPOs to implement the changes
27. How to customize?
• JSP Files
» Configure web.xml to utilize a file prefix (one time set up)
» Make changes by cloning an existing file and adding a
prefix to the file name
- Modified files should be located in ..STAGINGematrix*
» Use a file name prefix when creating new JSP files
- New files are placed in ..STAGINGematrix*
» Run CAS and NoCAS redeployment scripts
- BuildDeploy3DSpace_CAS, BuildDeploy3DSpace_NoCAS
» Remove cached files (../work/Catalina/../org/apache/jsp)
28. How to customize?
• Configure JSP File Prefix (web.xml)
Prefix
Filter Name Folders
31. How to deploy customizations?
• Schema
» Reload Cache or restart TomEE Services
• Web Stack
» Run CAS and NoCAS redeployment scripts
- BuildDeploy3DSpace_CAS, BuildDeploy3DSpace_NoCAS
» Remove cached files
» Restart CAS and NoCAS TomEE Services
- TomEE, TomEENoCAS (actual names may vary)
35. Where are customizations deployed?
• 3DEXPERIENCE Environments
» Development* – Prototyping, development
» Test – Internal functional and release testing
» Staging – End user validation and release testing
» Production* – End user usage
» OOTB – Comparison, no customizations deployed
*Minimum 3DEXPERIENCE environments necessary
37. Helpful Tips
• Always keep future upgrades in mind when
customizing 3DEXPERIENCE
• Learn the 3DEXPERIENCE data model
• Use prefixes for all customizations for easy
identification
38. Helpful Tips
• Use ENOVIA Schema Agent (Spinner) for
schema changes
• Maintain message / field label text in property files
• Clone existing items (JSPs, JPOs, TCL scripts,
etc.) to reduce learning curve
39. Helpful Tips
• Establish formal processes (development, test,
release, source code control)
• Create separate 3DEXPERIENCE environments
for development, testing and training
• Avoid having external programs directly
access the 3DEXPERIENCE database
• Ask for help when needed