Transcript Document

1
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Customization Approaches
and Options for Enterprise
PDM
Ilan Madjar
xLM Solutions
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Overview
• Customizations – What, Why and When
• EPDM Customization Options
• Functions with in Data Cards and tips for designing Cards
• Dispatch
• Advanced customization options
• Add-in
• Standalone Executable
• Tasks
• Debugging and Testing
• ROI Calculation
• Conclusion
2
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Customization
3
What, Why and When
•
Configuration vs. Customization
• Configuration – using out of the box (“OOTB”) tools to design the data model (cards,
workflows, templates, etc.) according to business rules.
• Customization – using programming or dispatch to implement business rules, which are
otherwise not available through OOTB configuration.
•
Why would you need customization
• OOTB Administration tool functions are not comprehensive enough.
•
When
• Mission Critical business requirements or efficiency based needs which justify the effort.
• Clear ROI – normally measured by time saved by using automation.
•
Rule of thumb – avoid implementing customization in early phases, when you are still new to
EPDM, as much as possible even at the cost of a few extra manual steps, unless thorough
analysis and testing was put into EPDM prior to rolling out in production or there is a need to
maintain a mission critical business need (e.g. corporate policies and requirements).
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Customization By Configuring Data Cards
4
• Input formula
• Allows to do simple string/numeric manipulations
• Control Logic
• Hide or Gray out fields
• Tabs – Controlled by Variables
• Dependant Lists (cascade lists)
• Examples…
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Normalizing Data Cards – Tips For Card Design
5
•
Normalization is the process of efficiently organizing data in a database.
• Objectives:
• Eliminating redundant data (for example, storing the same data in more than
one variable on different cards or having two different description variables (description
and description_2).
• Storing data in the right place. For example, project number variable on a drawing card.
What if the same drawing is used in multiple projects?
• Minimizing number of cards (exception would be for example, very large number of
variables, or use case specific consideration such as different groups working on same
vault with little sharing.)
• Goals:
• Efficiently organizing data in a database.
• Reduce search time – users are familiar with less cards
• Less administration
• Maintain data integrity
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Dispatch
6
•
An EPDM Add-In that comes out of the
box
•
Pros:
•
•
•
Cons:
•
•
Provides the ability to add customized
functionality with out
• In depth programming capabilities
• Programming environment such as
Visual Studio
Less effort involved compare to
programming.
Does not have rich functionality as
programming.
Example: Menu command to copy a file
from EPDM to an outside directory and
rename the file
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Advanced Customization Options
7
• EPDM has provided a robust SDK (API)
• Can be developed in different programming languages (VB.Net, C#,
C++)
• Documentation
• C:\Program Files\SolidWorks Enterprise PDM\API_GB.chm
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
“I do not want or need to customize the system”
Myths
•
•
Problems with upgrades (compatibility issues)
•
Increased complexity
•
System becomes unsupported
Facts
•
Many EPDM customers have implemented customizations
• APIs are largely compatible across versions
• e.g., SolidWorks/EPDM add-in are backward compatible
• Properly constructed Add-ins are easy to deploy and maintain
•
•
•
Add-Ins may be disabled to aid in troubleshooting and diagnostics
Add-Ins allow customers to harness the power of EPDM to develop and deploy optimized solutions for their enterprise PLM
needs
Customization may be needed for data migrations, integration with enterprise systems, etc. –
• Examples Smarteam, DBWorks or Adept to EPDM or EPDM to Enovia V6, etc.
Challenge
•
8
Companies are hesitant to customize their EPDM installations for fear of
To balance customization versus out-of-the-box functionalities
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
EPDM Add-ins (1/5)
9
• An Add-In can be added to almost any event
in EPDM
• It is run on the computer performing the
event
• Depending on the event different information
is provided to the Add-In
• For instance the Add File event provides the
following:
• Pre (i) ID of parent Folder, (ii) Local file
path and (iii) local or network path
• Post (i) ID of Parent folder, (ii) ID of file, (iii)
full path to file and (iv) local or network
path
EPDM Events
Menu Command
Lock (Pre / Post)
Card Button
Move File (Pre / Post)
Card Input
Move Folder (Pre / Post)
Card List Source
Rename File (Pre / Post)
Add File (Pre / Post)
Rename Folder (Pre /
Post)
Add Folder (Pre / Post) Share File (Pre / Post)
File Copy (Pre / Post)
Change State (Pre /
Post)
Folder Copy (Pre / Post) Undo Check In (Pre /
Post)
Delete File (Pre / Post) Check In (Pre / Post)
Delete Folder (Pre / Post) Serial No. (Pre / Post)
Get (Pre / Post)
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
EPDM Add-Ins (2/5)
10
To Create an Add-In:
1.
Create a Class Library project
2.
Reference in the respective PDMWorks Enterprise Type Library
•
Add an import statement for the EdmLib library Imports EdmLib
3.
Implement the EdmLib.IEdmAddIn5 Interface: Implements IEdmAddIn5
•
From this interface you need to implement the follow two methods
4.
Make assembly COM-Visible
Public Sub GetAddInInfo(ByRef poInfo As EdmLib.EdmAddInInfo, ByVal poVault As EdmLib.IEdmVault5,
ByVal poCmdMgr As EdmLib.IEdmCmdMgr5) Implements EdmLib.IEdmAddIn5.GetAddInInfo
End Sub
Public Sub OnCmd(ByRef poCmd As EdmLib.EdmCmd, ByRef ppoData As System.Array) Implements
EdmLib.IEdmAddIn5.OnCmd
End Sub
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Add-Ins (3/5) – GetAddInInfo Subroutine
• GetAddInInfo method controls what is seen in the Add-In Properties window and
what to register the command as:
Public Sub GetAddInInfo(ByRef poInfo As EdmAddInInfo, ByVal poVault As
IEdmVault5, ByVal poCmdMgr As IEdmCmdMgr5) Implements IEdmAddIn5.GetAddInInfo
' Name of Add-In
poInfo.mbsAddInName = "VB .Net AddIn"
' Name of company
poInfo.mbsCompany = "My Company“
' Description of Add-In
poInfo.mbsDescription = "Menu AddIn that shows a messagebox“
' Version of Add In
poInfo.mlAddInVersion = 1
' Minimum SolidWorks Enterprise PDM version needed for VB .Net Add-Ins is 6.4
poInfo.mlRequiredVersionMajor = 6
poInfo.mlRequiredVersionMinor = 4
' Registers the type of add it is
poCmdMgr.AddCmd(1, "VB .Net AddIn", EdmMenuFlags.EdmMenu_Nothing)
End Sub
11
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Add-Ins (4/5) – OnCmd Subroutine
12
• OnCmd method gets called when an event is triggered and provides info on the
EPDM system and affected files
Public Sub OnCmd(ByRef poCmd As EdmCmd, ByRef ppoData As System.Array) Implements IEdmAddIn5.OnCmd
' Handle the menu command
If poCmd.meCmdType = EdmCmdType.EdmCmd_Menu Then
If poCmd.mlCmdID = 1 Then
' gets an object that represents the EPDM Vault
Dim v8 as IEdmVault8
V8 = poCmd.mpoVault
' display an message to the user
msgbox(v8.GetWin32Window(poCmd.mlParentWnd), "VB .Net AddIn")
End If
End If
End Sub
•
poCmd – is the object that contains information of the EPDM system as a whole
and the event type
•
ppoData – is an array that has information about one or more file in the system
(this is dependent on the command type)
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Add-Ins (5/5) Tips
13
• Everything that works for replication would work for local machine (DB location),
but the opposite is not always true.
• Declare, initiate variables and call commands when you need them.
• Use batch api when possible.
• Beware of integrated application (i.e office – MS-Project, MS-VISIO)
• Build .Net Dlls as any cpu (unless you reference a 32bit application such as
office).
• Example – ECO generation along with linking drawing by automation
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Tasks (1/2) – Configuration & Customization
14
• The Tasks feature in the Administration tool lets you configure, run, and monitor
tasks that you perform frequently on Enterprise PDM files.
• Tasks are defined by add-ins created using the Enterprise PDM APIs.
• Tasks can be queued up and run on a separate computer / batch server
• There are out of the box tasks to print / create PDF/EDRW, check design for Solid
Works files
• Customized tasks can be created to handle other customer specific tasks that
should not run on the individual computer
• Print / PDF based on Job ID (attribute in Data Card)
• Watermark files
• Print / PDF non SolidWorks type files
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Tasks (2/2)
15
• All aspects of the Task can be configured:
• Setup
• Configuration GUI Properties
• On close of the configuration window
of the Task
• Initialization
• menu bring up a GUI
• On close of the Task Initiates
• Execution
• The performing of the task
• Task Details
•
The Details GUI of a the task
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Standalone Executables
16
• Standalone Executables are used to perform operations out side of the EPDM Vault or
not related to an event
• Batch operations – legacy bulk loading, automated reporting, etc.
• To create an Standalone Executable:
1.
Create a Windows Application Project in VB.NET
2.
Reference in the PDMWorks Enterprise Library
3.
Connect to the vault:
Dim vault As EdmVault5
vault = New EdmVault5
4.
Login into the Vault (different login apis)
vault.LoginAuto("MyVaultName", Me.Handle.ToInt32)
5.
Do some work
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Debugging and Testing
• Debugging Add-in
• The ability to add an add-in as a debug-addin
• Add explorer.exe to the Debug start external
program property:
• Step through the code
• Testing
• It is very important to test functionality
• Write down various scenarios and test them all
• Develop and Test in test environment before
rolling out to production
• Very large applications may need code unit testing
• Test across multiple sites if replication is set
17
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Add-In Implementation Considerations
• Should you implement an Add-In?
• Are users repeatedly making the same mistakes?
• Are certain processes tedious?
• Do you need to integrate with third party system or bulk mass amount of data?
• Define the functional criteria for the Add-In
• Define test cases
• Build an environment for testing
• To ensure script will not adversely affect production
• It is recommended to use separate hardware, but if not at least create
dedicated test vault mimicking production data model (.cex).
• Request source code or insure a way for maintaining the script
18
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
ROI for a Simple Script
19
Can we justify the investment?
• Script development cost = $5000.00
• What are the time and cost savings of an automation solution versus developing a script?
• 10 engineers
• Engineer cost per hour = $62.50
• 10 minutes saving per engineer per day
• 200 days in the year
• Savings per engineer per day ($62.5 x 1/6) = $10.42
• Savings per engineer per year ($10.42 x 200) = $2,083.33
• Saving for 10 engineers per year = $20,833.33
•
ROI in year 1 = $15,833.33 or a 316.67% return
•
Expand this to year 2, 3, 4, 5, …
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
ROI Calculator
20
Script Cost
$
Engineer Cost per Hour
Engineer Time per Hour
Script Savings per Day
$
Number of Days in the year
Number of Engineers
$
8,000.00
62.50
0.17
10.42
200
10
Script Saving per Engineer per Year
Script Saving for All Engineers per Year
$ 2,083.33
$ 20,833.33
Savings per Year
ROI
$ 12,833.33
160.42%
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
Conclusions
21
• Customizations is a powerful and economical
approach to expand and customize EPDM for
enterprise PLM needs
• Various options of customizations are available
• The cost savings and ROI can be significant
(even for a 10-min process)
3DS.COM/SOLIDWORKS © Dassault Systèmes | Confidential Information | 7/16/2015 | ref.: 3DS_Document_2012
22
Thank You!
Questions
To obtain a copy of the Add-in example shown go to http://www.xlmsolutions.com/contact-us/
or email me.
Ilan Madjar
xLM Solutions, LLC.
516-792.6974
[email protected]