View
18
Download
0
Category
Preview:
Citation preview
ENOVIA Collaborative Design – Administrator’s Guide 1
ENOVIA Collaborative Design for Mentor Graphics Expedition Enterprise V6R2013x
Administrator's Guide
2 ENOVIA Collaborative Design – Administrator’s Guide
Copyrights and Trademarks © Dassault Systèmes, 1994 – 2012.
All rights reserved.
PROPRIETARY RIGHTS NOTICE: This documentation is proprietary property of Dassault Systèmes. This
documentation shall be treated as confidential information and may only be used by employees or contractors
with the Customer in accordance with the applicable Software License Agreement.
Adaplet, Compliance Connect, DesignSync, ENOVIA, ProjectSync, Synchronicity, Team Central,
ENOVIA Collaboration Platform, ENOVIA Business Process Services, ENOVIA Platform Server,
ENOVIA Modeling Studio, ENOVIA 3D Live, FCS, AEF, Application Exchange Framework, Application
Development Kit, ENOVIA V6X-BOM Engineering, ENOVIA Library Central, ENOVIA Materials
Compliance Central, ENOVIA Variant Configuration, ENOVIA Program Central, ENOVIA Sourcing
Central, ENOVIA Specification Central, ENOVIA Supplier Central, ENOVIA Collaborative Interference
Management, ENOVIA Semiconductor Accelerator for Team Compliance, ENOVIA Aerospace and Defense
Accelerator for Program Management, ENOVIA Apparel Accelerator for Design and Development,
ENOVIA Automotive Accelerator for Program Management, ENOVIA Medical Device Accelerator for
Regulatory Compliance, ENOVIA X-BOM Cost Analytics, ENOVIA X-BOM Manufacturing,
ENOVIA Synchronicity DesignSync DFII, ENOVIA Synchronicity DesignSync MW,
ENOVIA Synchronicity DesignSync CTS, ENOVIA IP Gear, IconMail, ImageIcon and Star Browser are
either trademarks or registered trademarks of Dassault Systèmes or its subsidiaries in the US and/or other
countries.
Oracle® is a registered trademark of Oracle Corporation, Redwood City, California. DB2, AIX, and WebSphere
are registered trademarks of IBM Corporation. WebLogic is a registered trademark of BEA Systems, Inc.
Solaris, UltraSPARC, Java, JavaServer Pages, JDBC, and J2EE are registered trademarks of Sun Microsystems,
Inc. Windows XP and Internet Explorer are registered trademarks of Microsoft Corp. HP and HP-UX are
registered trademarks of HP. All other product names and services identified throughout this book are
recognized as trademarks, registered trademarks, or service marks of their respective companies.
The documentation that accompanies ENOVIA Synchronicity DesignSync products describes the applications as
delivered by Dassault Systèmes. This documentation includes readme files, online help, user guides, and
administrator guides. If changes are made to an application or to the underlying framework, Dassault Systèmes
cannot ensure the accuracy of this documentation.
NOTE: This manual was generated directly from the online help with minimal reformatting. The PDF version is
optimized for printing and does not contain active cross-reference links or animated use cases. Because the
intent of the help is to be an online guide, there may be shortcomings in its organization and general usability as
a printed document. The PDF version was created before limited changes were made to WebHelp. For the most
current information, see the product’s online help.
Dassault Systèmes ENOVIA
175 Wyman Street,
Waltham, MA 02451
Telephone 781.810.3500
Email: enovia.info@3ds.com
http://www.3ds.com
ENOVIA Collaborative Design – Administrator’s Guide 3
Table of Contents
TABLE OF CONTENTS ........................................................................................................................................ 3
LIST OF FIGURES ............................................................................................................................................... 6
KNOWN LIMITATION ........................................................................................................................................ 8
MIGRATION IN COMPONENT DATA MANAGEMENT ........................................................................................................ 8
SERVER INTEGRATION INSTALLATION .............................................................................................................. 9
EXECUTE SETUP ....................................................................................................................................................... 9 Windows Platforms ......................................................................................................................................... 9 UNIX Platforms ................................................................................................................................................ 9 ENOVIA Products ............................................................................................................................................. 9 Java Environment ............................................................................................................................................ 9
INSTALLATION STEPS ............................................................................................................................................... 10 Installation Error “Java Virtual Machine not found” ..................................................................................... 10 Web based installation .................................................................................................................................. 11 Console mode installation ............................................................................................................................. 16 Assign ECAD Integration in Web Frontend .................................................................................................... 16
CLIENT INTEGRATION INSTALLATION ............................................................................................................. 18
SYSTEM REQUIREMENTS .......................................................................................................................................... 18 Operating System .......................................................................................................................................... 18 Mentor Environment ..................................................................................................................................... 18 Java Environment .......................................................................................................................................... 18 ENOVIA Products ........................................................................................................................................... 18
EXECUTE SETUP ..................................................................................................................................................... 19 Windows Platforms ..................................................................................................................................................... 19
INSTALLATION STEPS ............................................................................................................................................... 20 Installation Error “Java Virtual Machine not found” ..................................................................................... 20 Web based installation .................................................................................................................................. 21
CLIENT SETTINGS ............................................................................................................................................ 26
DERIVED OUTPUT PARAMETER FILE ........................................................................................................................... 27 KEEP SESSION ALIVE ............................................................................................................................................... 29 SAVE USER SETTINGS TO ENOVIA ............................................................................................................................ 30 CHECKIN REVISION BEHAVIOR .................................................................................................................................. 31
FINALIZE / UNDO-FINALIZE ............................................................................................................................. 32
FINALIZE ............................................................................................................................................................... 32 UNDO-FINALIZE ..................................................................................................................................................... 32
BOM DATA MANAGEMENT ............................................................................................................................ 33
UI ELEMENTS ........................................................................................................................................................ 33 Component Search Dialog ............................................................................................................................. 33
Type Search Dialog ...................................................................................................................................................... 33 Policy Search Dialog .................................................................................................................................................... 34
4 ENOVIA Collaborative Design – Administrator’s Guide
State Search Dialog ..................................................................................................................................................... 35 Operator search .......................................................................................................................................................... 36
Webform Element Definition......................................................................................................................... 39 typechooser ................................................................................................................................................................ 39 policychooser .............................................................................................................................................................. 39 statechooser ............................................................................................................................................................... 39 vaultchooser ............................................................................................................................................................... 39 revision ........................................................................................................................................................................ 39 latestrevision ............................................................................................................................................................... 39 textfield ....................................................................................................................................................................... 39 checkbox ..................................................................................................................................................................... 40
Displayable Columns ..................................................................................................................................... 41 UI Element cache refresh .............................................................................................................................. 41
BOM CREATION .................................................................................................................................................... 42 Predefined BOM Creation Webforms ............................................................................................................ 42
MATERIAL EXISTENCE CHECK .................................................................................................................................... 43 Predefined Existence Check Webforms ......................................................................................................... 43
ECAD INTEGRATION USAGE PROPERTY DEFINITION ....................................................................................................... 44 Predefined USAGE definition ......................................................................................................................... 44
Tables .......................................................................................................................................................................... 44 Webforms ................................................................................................................................................................... 44
GLOBAL DEFINITIONS .............................................................................................................................................. 45 BOM CONFIGURATION OBJECT IN ENOVIA ............................................................................................................... 46
General Settings ............................................................................................................................................ 47 BOM Settings .............................................................................................................................................................. 47 Missing Part Strategy .................................................................................................................................................. 48
BOM Editor .................................................................................................................................................... 49 BOM Table Settings ..................................................................................................................................................... 49
CAD Model .................................................................................................................................................... 49 CAD Model Webform Settings .................................................................................................................................... 49
Assembly Settings.......................................................................................................................................... 49 Assembly Form Settings .............................................................................................................................................. 49
Bareboard Settings ........................................................................................................................................ 50 Bareboard Form Settings ............................................................................................................................................ 50 Part Settings ................................................................................................................................................................ 50 Part Filter Settings ....................................................................................................................................................... 50 Part Form settings ....................................................................................................................................................... 51
Search Settings .............................................................................................................................................. 51 Syntax of the attributes in ENOVIA ............................................................................................................... 52
BOM CONFIGURATION EDITOR IN CSE ...................................................................................................................... 53
COMPONENT DATA MANAGEMENT ............................................................................................................... 55
DATA MIGRATION .................................................................................................................................................. 55 DATA MAPPING LAYER ............................................................................................................................................ 55
CDM Setup Wizard Settings Files .................................................................................................................. 55 General Structure of the XML Configuration ................................................................................................. 57 Regular Expressions....................................................................................................................................... 58
PROCESSING INSTRUCTIONS ..................................................................................................................................... 59 pemappings ................................................................................................................................................... 59 import ............................................................................................................................................................ 59 namespace .................................................................................................................................................... 60 define ............................................................................................................................................................ 60 useref ............................................................................................................................................................ 61 alternatives ................................................................................................................................................... 62 break ............................................................................................................................................................. 62 ignore ............................................................................................................................................................ 63 commit .......................................................................................................................................................... 63
TEST INSTRUCTIONS ................................................................................................................................................ 64 test ................................................................................................................................................................ 64 Alias Instructions ........................................................................................................................................... 66
ENOVIA Collaborative Design – Administrator’s Guide 5
attribute ...................................................................................................................................................................... 66 specialAttribute ........................................................................................................................................................... 66 attributeExists ............................................................................................................................................................. 68 class ............................................................................................................................................................................. 68 group ........................................................................................................................................................................... 69 type ............................................................................................................................................................................. 70
OPERATIONS ......................................................................................................................................................... 71 duplicate ........................................................................................................................................................ 71 add ................................................................................................................................................................ 71 modify ........................................................................................................................................................... 71 set .................................................................................................................................................................. 72 setSpecialAttribute ........................................................................................................................................ 73 remove .......................................................................................................................................................... 73 removeSpecialAttribute ................................................................................................................................. 73 concatAttribute ............................................................................................................................................. 74
LIBRARY CENTRAL MAPPING CONFIGURATION ............................................................................................................. 76 Upload of Parts ............................................................................................................................................. 76 Download of Parts ......................................................................................................................................... 76 Multiclassification ......................................................................................................................................... 77
Upload of Parts ........................................................................................................................................................... 77 Download of Parts ....................................................................................................................................................... 78
LOG CONFIGURATION .............................................................................................................................................. 79 BACKGROUND SYNCHRONIZATION ............................................................................................................................. 81
Background Synchronization Setup ............................................................................................................... 81 Connection Settings .................................................................................................................................................... 82
Background Synchronization Execution ........................................................................................................ 83 Publishing Web Services for Background Synchronization ............................................................................ 83
CDM CONFIGURATION OBJECT IN ENOVIA ............................................................................................................... 84 ENOVIA CDM Settings ................................................................................................................................................. 84
Syntax of the attributes in ENOVIA ............................................................................................................... 86 CDM CONFIGURATION EDITOR IN CSE ...................................................................................................................... 87
APPENDIX....................................................................................................................................................... 89
REGULAR EXPRESSIONS ........................................................................................................................................... 89 CDM MAPPING CONFIGURATION EXAMPLE ................................................................................................................ 90 CDM DATA MAPPING LAYER XSD SCHEMA ................................................................................................................ 92
6 ENOVIA Collaborative Design – Administrator’s Guide
List of Figures
FIGURE 1 JAVA ERROR ............................................................................................................................................... 10 FIGURE 1 INSTALL FROM THE WEB ................................................................................................................................. 11 FIGURE 2 INTRODUCTION ............................................................................................................................................ 12 FIGURE 3 CHOOSE THE SERVER FOLDER .......................................................................................................................... 12 FIGURE 4 GET USER INPUT .......................................................................................................................................... 13 FIGURE 5 INPUTS FOR SCHEMA INSTALLATION ................................................................................................................. 14 FIGURE 6 PRE-INSTALLATION SUMMARY ........................................................................................................................ 14 FIGURE 7 SCHEMA INSTALLATION SUMMARY ................................................................................................................... 15 FIGURE 8 FINAL SUMMARY .......................................................................................................................................... 15 FIGURE 9 ASSIGN LICENSING BY PRODUCT ...................................................................................................................... 16 FIGURE 10 ASSIGN ECAD INTEGRATION ROLE ................................................................................................................. 17 FIGURE 11 UPDATE ASSIGNMENTS ................................................................................................................................ 17 FIGURE 13 JAVA ERROR ............................................................................................................................................. 20 FIGURE 12 INSTALLATION FROM THE WEB ...................................................................................................................... 21 FIGURE 13 INTRODUCTION .......................................................................................................................................... 22 FIGURE 14 CHOOSE SHORTCUT FOLDER ......................................................................................................................... 22 FIGURE 15 CHOOSE SHORTCUT FOLDER ......................................................................................................................... 23 FIGURE 16 CHOOSE INSTALL FOLDER ............................................................................................................................ 23 FIGURE 17 CHOOSE JAVA VIRTUAL MACHINE ................................................................................................................. 24 FIGURE 18 PRE-INSTALLATION SUMMARY ...................................................................................................................... 24 FIGURE 19 INSTALL COMPLETE .................................................................................................................................... 25 FIGURE 20 USERHOME DIRECTORY ................................................................................................................................ 26 FIGURE 21 KEEP SESSION ALIVE: GCO ATTRIBUTES ........................................................................................................... 29 FIGURE 22 KEEP SESSION ALIVE: RENEW SESSION ............................................................................................................ 29 FIGURE 23 CHECKIN REVISION BEHAVIOR: GCO ATTRIBUTES .............................................................................................. 31 FIGURE 24 COMPONENT SEARCH DIALOG....................................................................................................................... 33 FIGURE 25 TYPE SEARCH DIALOG .................................................................................................................................. 34 FIGURE 26 VAULT SEARCH DIALOG ............................................................................................................................... 34 FIGURE 27 POLICY SEARCH DIALOG ............................................................................................................................... 35 FIGURE 28 STATE SEARCH DIALOG ................................................................................................................................ 35 FIGURE 29 OPERATOR SEARCH: REAL ............................................................................................................................. 36 FIGURE 30 OPERATOR SEARCH: STRING.......................................................................................................................... 36 FIGURE 31 WEBFORM PART SEARCH CRITERIA ................................................................................................................. 36 FIGURE 32 SPECIFY A NAME ......................................................................................................................................... 37 FIGURE 33 SPECIFY A LABEL ......................................................................................................................................... 37 FIGURE 34 SETTING PROPERTIES ................................................................................................................................... 38 FIGURE 35 ADDING NEW ATTRIBUTE .............................................................................................................................. 38 FIGURE 36 DEFINITION OF DISPLAY COLUMNS IN A TABLE ................................................................................................... 41 FIGURE 37 DISPLAY COLUMN NAMING CONVENTION ......................................................................................................... 41 FIGURE 38 BOM C/O IN ENOVIA ............................................................................................................................... 46 FIGURE 39 BOM CONFIGURATION EDITOR ..................................................................................................................... 53 FIGURE 40 CREATE NEW: EXISTING NAME ...................................................................................................................... 53 FIGURE 41 CREATE NEW: NEW NAME ........................................................................................................................... 54 FIGURE 42 CREATE NEW: SAVE .................................................................................................................................... 54 FIGURE 43 LIBRARY PROJECT DIRECTORY ........................................................................................................................ 56
ENOVIA Collaborative Design – Administrator’s Guide 7
FIGURE 44 PART FAMILIES IN LIBRARY CENTRAL ............................................................................................................... 76 FIGURE 45 ENOVIA WEB SERVICES SETUP .................................................................................................................... 81 FIGURE 46 CDM C/O IN ENOVIA ............................................................................................................................... 84 FIGURE 47 CDM CONFIGURATION EDITOR ..................................................................................................................... 87 FIGURE 48 CREATE NEW: EXISTING NAME ...................................................................................................................... 87 FIGURE 49 CREATE NEW: NEW NAME ........................................................................................................................... 88 FIGURE 50 CREATE NEW: SAVE .................................................................................................................................... 88
8 ENOVIA Collaborative Design – Administrator’s Guide
Known Limitation
Migration in Component Data Management
Old data in the Library Project will not be migrated to the new format. For detail information please read Data
Migration Chapter under Component Data Management.
ENOVIA Collaborative Design – Administrator’s Guide 9
Server Integration Installation
Execute Setup
Login as a user with administrative privileges and follow the instructions. If you have no administrative
privileges, the installation may fail.
Windows Platforms
Navigate to the setup file for the web based setup
./install.htm
and execute the link by double clicking on it.
Navigate to the setup file you have downloaded and double click on it or type
install.exe
into the shell
UNIX Platforms
Open a shell window and navigate to the location of the setup file for web based setup
netscape ./install.htm
Open a shell window and navigate to the location of the setup file you have downloaded and type
sh ./install.bin
into the shell
ENOVIA Products - ENOVIA Designer Central V6R2013x
- ENOVIA Engineering Central V6R2013x
- ENOVIA Library Central V6R2013x
Java Environment - Java 1.7 (see section Installation Error “Java Virtual Machine not found”)
10 ENOVIA Collaborative Design – Administrator’s Guide
Installation Steps
Web based setup only. For downloading the installation files, click on the corresponding link below the
“Available Installers”.
Your preferred browser opens a new browser window with the possible install options. Click on the button for
the recommended installation of your platform or execute the link for installing Integration Server V6R2013x.
Installation Error “Java Virtual Machine not found”
On a server typically only a JAVA JDK is installed, but no JAVA JRE.. The installer only detects 32-Bit JRE’s
but no JDK’s.
If you get the following error, you can override the default JAVA detection through a command line argument
Figure 1 JAVA Error
Execute the installer with the following command:
install.exe LAX_VM [PATH_TO_JDK_JAVA.EXE]
Example:
install.exe LAX_VM %ProgramFiles%\Java\jdk1.7.0_03\bin\java.exe
ENOVIA Collaborative Design – Administrator’s Guide 11
Web based installation
.
Figure 2 Install from the web
12 ENOVIA Collaborative Design – Administrator’s Guide
1. This dialog shows the version of the setup, and additional recommendations for the proper installation of
Integration Server V6R2013x
Figure 3 Introduction
2. Choose the ENOVIA Platform Server Folder
Figure 4 Choose the Server folder
ENOVIA Collaborative Design – Administrator’s Guide 13
3. Get User Input
Figure 5 Get User Input
Here the user has to enter the name and password of the ENOVIA user he wants to use for installing the schema.
Please note, that this ENOVIA must have the correct permissions to install and modify administration objects.
14 ENOVIA Collaborative Design – Administrator’s Guide
4. Inputs for schema installation
Figure 6 Inputs for Schema Installation
Here the user has to select the vault and store for the schema installation. Additionally he has to select if he
wants to overwrite previously installed integration jpo`s or not. In the latter case the new jpo`s will be installed
with a different name and the user has to merge them afterwards manually.
5. Pre-Installation Summary
Figure 7 Pre-Installation Summary
Here the user can review his selections before proceeding for the actual installation.
ENOVIA Collaborative Design – Administrator’s Guide 15
6. Schema installation Summary
Figure 8 Schema installation summary
7. Final Summary
Figure 9 Final summary
16 ENOVIA Collaborative Design – Administrator’s Guide
Console mode installation
On UNIX platforms, the installer when run in GUI mode can rise to problems due to various factors such as
Old legacy machines are never patched to latest OS patches
Old legacy machines are never patched to latest Java patches
Old legacy machines do not have support for X-Windows and hence X-term is not in path
Not having X-term means, inability to support Graphical User Interface (GUI) from the installations.
Not having right Java patches means the AWT components are not displayed properly
In-correct font displays due to non-availability of fonts on Unix machines
In-compatibilities of IA with certain Unix Emulator versions of Exceed, Kea!x and Cygwin can cause
problems.
In order to deal with these problems, the installer also supports a “Console Mode” in which the installation is
done without any using any GUI elements and all the user interaction is from the command line.
In order to launch the installer in console mode, the following command needs to be given:
./install.bin –i console
The flow of the installation is similar to that of the GUI mode.
Assign ECAD Integration in Web Frontend It is necessary to assign the ECAD integration to the user. Otherwise the user cannot login to ENOVIA through
ENOVIAIntegrationExchangeFrameworkClient.
Following steps describes how to assign the ECAD Integration and all necessary settings that the user can use
login to ENOVIA:
1. Be sure that the user have all needed license
a. Open “Assign Licensing by Product” dialog and check it
Figure 10 Assign Licensing by Product
ENOVIA Collaborative Design – Administrator’s Guide 17
2. Search user and assign the ECAD Integration Role
Figure 11 Assign ECAD Integration Role
3. Update Assignment and check if the correct GCO is used
Figure 12 Update Assignments
18 ENOVIA Collaborative Design – Administrator’s Guide
Client Integration Installation
System Requirements
Operating System - Windows 7 SP1 32bit and 64bit
Mentor Environment - Mentor Graphics Expedition Enterprise 7.9.1 update 20
- Mentor Graphics Expedition Enterprise 7.9.2 update 14
- Mentor Graphics Expedition Enterprise 7.9.3 update 6
Java Environment - Java JRE 1.7 32bit (Note: 64 bit Java is not supported!)
- (see section Installation Error “Java Virtual Machine not found”)
ENOVIA Products - ENOVIAIntegrationExchangeFrameworkClient-V6R2013x
- Microsoft .NET Framework 3.5 SP1 is required in windows operating system to connect through the
client executable to the ENOVIA system.
- The path of the %JAVA_HOME%\bin; %JAVA_HOME%\bin\client; %JAVA_HOME%\lib should
be included in the environment variable path setting of the windows operating system.
- Alternatively the used JAVA for the IEC Client can be specified directly in the Integration Client
Preferences under ENOVIA Designer Central Connection Settings. You have to define a 64Bit JRE
on 64Bit Operating Systems and a 32Bit JRE on 32Bit Operating Systems.
ENOVIA Collaborative Design – Administrator’s Guide 19
Execute Setup
Login as a user with administrative privileges and follow the instructions. If you have no administrative
privileges, the installation may fail.
Windows Platforms
Navigate to the setup file for the web based setup
./install.htm
and execute the link by double clicking on it.
Navigate to the setup file you have downloaded and double click on it or type
install.exe
into the shell
20 ENOVIA Collaborative Design – Administrator’s Guide
Installation Steps
Web based setup only. For downloading the installation files, click on the corresponding link below the
“Available Installers”.
Your preferred browser opens a new browser window with the possible install options. Click on the button for
the recommended installation of your platform or execute the link for installing ENOVIA Collaborative Design
for Mentor Graphics Expedition Enterprise Integration V6R2013x.
Installation Error “Java Virtual Machine not found”
The installer only detects 32-Bit JRE’s but no 64-Bit JRE’s. On a 64Bit Operating System you will be able to
also use a 32Bit JRE.
32Bit Operating System
No further installation instructions are required. The installer will automatically detect a Java 7 32-Bit
JRE and use it for the installation
64Bit Operating System:
- No further installation instructions are required if you want to use a 32Bit JRE. The installer will
automatically detect a Java 7 32-Bit JRE and use it for the installation
- You can also manually run the installer with additional arguments.
install.exe LAX_VM [PATH_TO_32BIT_JRE_JAVA.EXE]
Example:
install.exe LAX_VM %ProgramFiles%\jre7\bin\java.exe
If you get the following error, you can override the default JAVA detection through the command line argument
Figure 13 JAVA Error
ENOVIA Collaborative Design – Administrator’s Guide 21
Web based installation
.
Figure 14 Installation from the web
22 ENOVIA Collaborative Design – Administrator’s Guide
1. This dialog shows the version of the setup, and additional recommendations for the proper installation of
ENOVIA Collaborative Design for Mentor Graphics Expedition Enterprise Integration V6R2013x. Click
Next button to continue the installation.
Figure 15 Introduction
2. In this dialog it is possible to choose a shortcut folder of the product icons.
Click Next button to continue the installation.
Figure 16 Choose Shortcut Folder
ENOVIA Collaborative Design – Administrator’s Guide 23
3. Choose the folder where the shortcut of the product icons will be created.
Figure 17 Choose Shortcut Folder
4. Enter the installation directory of the ENOVIA Collaborative Design for Mentor Graphics Expedition
Enterprise Integration and click the Next button to continue the installation.
Figure 18 Choose Install Folder
24 ENOVIA Collaborative Design – Administrator’s Guide
5. Please choose in this dialog a java VM or use the installed java version.
Click Next button to continue the installation.
Figure 19 Choose Java Virtual Machine
6. The dialog shows the summary of the Pre-Installation. Click Next button to install the integration.
Figure 20 Pre-Installation Summary
ENOVIA Collaborative Design – Administrator’s Guide 25
7. ENOVIA Collaborative Design Integration is now successfully installed. Click Done button to complete
the installation and restart the system.
Figure 21 Install Complete
26 ENOVIA Collaborative Design – Administrator’s Guide
Client settings
The client will create some files and directories in the user’s home directory.
Figure 22 Userhome directory
registry folder
Folder containing registry information for the integration.
templatestore folder
Folder containing internal templates used by CSE.
Logs folder
Folder contains ENOVIA.log. Log file containing debug and trace message of CSE.
config.xml
ENOVIA server configuration file.
CSE.log.xml
Log file containing the communication protocol between ENOVIA DESIGNER CENTRAL
and CSE
ENOVIA Collaborative Design – Administrator’s Guide 27
Derived Output Parameter File
The integration supports the download and the execution of so called Derived Output Parameter Files prior to
Derived Output Creation. Derived Output Parameter Files allow the Administrator to provide customized scripts
to the end user. Parameter object could be used to provide additional information to create Derived Outputs
while checkin operation. Once the user has selected a Parameter Object for a specific Derived Output, the
Integration downloads the script and executes it.
There are specific conventions which need to be obeyed:
The content of the parameter object can consist of the following files:
- Mandatory control script
- Additional and optional support scripts
a. The mandatory script needs to have the following Naming convention
<SampleParameterName>-<mappedDerivedOutputName>.js
Example: myParameter-mill.js
b. There can be multiple other files in this object which do not need to follow this naming
convention. These other files can then i.e. be used inside the script file
c. The script needs to be checked into the corresponding Derived Output Format of the Parameter
Object
In order to setup the parameter file for its corresponding derived output, the following setting in the GCO should
be set by the user
Attribute Name Value Description Added to
IEF-
DerivedOutputParameterOb
jTypeMapping
<DerivedOutput
MappedType1>|<Parameter
Objecttype1>
<DerivedOutput
MappedType2>|<Parameter
Objecttype2>….
e.g;
mill|Derived Output
Parameter
Explains, which type of
Parameter object could
be used for specific
derived output
Type –
‘MCADInteg-
GlobalConfig
’
IEF-
DerivedOutputTypeDefaultP
arameterObjectMapping
<DerivedOutput
MappedType1>,<Default
Parameter Object1>
<DerivedOutput
MappedType2>,<Default
Parameter Object1>
….
e.g;
mill|Derived Output
Parameter,DOP-1,A
This attribute contain
default parameter object
for Derived Output type.
Note: This Object is
shown as default in
Derived Output page
while Checkin or This
Value is directly used in
case of checkin no
option.
Type –
‘MCADInteg-
GlobalConfig
’
28 ENOVIA Collaborative Design – Administrator’s Guide
An example script is shown below:
/**
*Script which is showing the default file upload screen to the user. User can select files he wants to upload to
*ENOVIA.
*in this case a
*in this a core method ‘showDefaultManualFileSelection’ from the API is used.
**/
var imports = new JavaImporter(
Packages.java.io.File,
Packages.java.lang.System,
Packages.com.pe_gmbh.pdmappsuite.em1decpdm.Em1DecPdm,
Packages.com.pe_gmbh.pdmappsuite.em1decpdm.tools.UploadFile,
Packages.com.pe_gmbh.pdmappsuite.em1decpdm.pdmpreferences,
Packages.com.pe_gmbh.pdmappsuite.main.AppSuite);
with (imports) {
/**
*@param object , the Derived Output Object to be used.
*@return list of files which have been selected by the user
**/
function execute(object) {
return object.showDefaultManualFileSelection();
}
}
Important note: The format of the Derived Output Parameter (DOP) file checked in to DOP Object
should be of the type “Generic”.
ENOVIA Collaborative Design – Administrator’s Guide 29
Keep Session Alive This feature is very useful if the user carries out CSE functions which do not require direct communication to
Designer Central. In case of prolonged operation, usually a session timeout happens since no communication
takes place between IEFWorkspaceClient and Designer Central. In this case the user needs to re-login which
requires a reload of all settings.
To avoid this scenario, the user can set the session to be kept alive by configuring it in the GCO. Two GCO
attributes are added which controls this behavior.
GCO Attribute
ECADInteg-KeepSessionAlive = [true|false]
o Defines if the integration sends a KeepSessionAlive command
ECADInteg-KeepSessionAliveInterval=[integer value]
o Defines the interval in minutes when the KeepSessionAlive command is send
o The value should be less than the session timout defined for the AppServer (web.xml)
Figure 23 Keep Session alive: GCO attributes
The DEC LoginExCommand is send to keep the server session alive. The command is only sent if the
ECADInte-KeepSessionAliveInteval time exceeds the time of “now-lastCommandSend”. Each command sent to
Integration Exchange Client resets the internal counter. KeepSessionAlive command is always sent if an
integration task is running.
If ECADInteg-KeepSessionAliveInterval is nearly reached or exceeded(e.g. 1 minute before), the user will be
queried with the information that the session is about to expire with the option to accept or to renew the session.
Figure 24 Keep Session alive: Renew Session
Selecting this performs a logout of the integration forcing IEC to shut down.
Selecting this will send the KeepSessionAlive command
If user does not react within the specified time, the session times out automatically.
30 ENOVIA Collaborative Design – Administrator’s Guide
Save User Settings to ENOVIA
The user settings are read during the login to ENOVIA. CSE reads the DEC login response and updates the
setting. The existing CSE settings are overwritten by the ENOVIA settings.
The user can modify these settings at runtime but it lacked saving it back to ENOVIA. Currently this feature
enables the user to save back the user modified settings to ENOVIA.
The settings would be sent to ENOVIA only when the client preferences are committed.
The following user settings from the ENOVIA Options could be saved back to ENOVIA
Attribute Name Corresponding Setting Name in
Integration
MCADInteg-CreateVersionOnCheckin Create Version On Checkin
MCADInteg-LockObjectOnCheckin Retain Lock After Checkin
IEF-DefaultConfigTables Default View
MCADInteg-SelectChildItems Select Children
MCADInteg-LockObjectOnCheckout Lock Objects on Checkout
MCADInteg-CheckOutDirectory Checkout Directory
IEF-DefaultLateralView Default Table View
IEF-SelectedManualDerivedOutputs Manual
MCADInteg-SelectedDerivedOutputs Automatic
Important note: The Settings will not be saved to ENOVIA when the user commits the
modifications done in Options dialog under Checkin and Checkout dialog, also
from the context menu for Derived output selection in Checkin dialog.
ENOVIA Collaborative Design – Administrator’s Guide 31
Checkin Revision Behavior
The Revision behavior in the checkin is now configurable through GCO setting. Three different ways are
supported for controlling the revisioning. Based on the selected setting, the user can create any revision, select
NEXT revision or can be disallowed to create a new revision in the integration.
GCO Attribute
Figure 25 Checkin Revision Behavior: GCO attributes
Attribute
o Name: ECADInteg-CheckRevisionBehaviour
o Type: String
o Ranges:
“Allow Revisioning”
“Disallow Revisioning”
“Manual Revisioning”
o Default: “Allow Revisioning”
References:
o Referenced in Type: ECADInteg-GlobalConfig
ECADInteg-CheckinRevisionBehavior = [AllowRevisioning|DisallowRevisioning|ManualRevisioning]
o Defines the Checkin revision behavior in CSE
Allow Revisioning:
This allows the user to create only NEXT revision. The menu for creating NEXT revision will be available from
the context menu of the design object in the checkin dialog. The user will not be able to create a manual revision.
All the available revisions will be listed. The Revision list box is non-editable.
Disallow revisioning:
This denies revisioning for the user. The user will not be able to create any manual revision nor a NEXT revision
but all the available revisions will be listed. The Revision list box is non-editable.
Manual Revisioning:
This allows the user to create NEXT revision as well specify an own revision. All the available revisions will be
listed. The Revision list box is editable and the user can specify any revision. This user specified input will be
used as a new revision.
Important note: If the design object does not exist in ENOVIA and user does not have the access
for Revisioning, then the user will not be able to create the design object in
ENOVIA.
32 ENOVIA Collaborative Design – Administrator’s Guide
Finalize / Undo-Finalize
Finalize
The finalize step will transfer the data of the minor object (the versioned design) to the major object (the revision
of the design ). If preliminary BOM’s exist, they will be completely disconnected. This complete disconnect of
the EBOM is necessary, to avoid floating EBOM structures within the PLM System.
When running the Finalize step, the attribute “ECAD Mandatory files for finalize” from the
EBOMSynchronization Config Object is evaluated. Only if all requirements are met, this means, if all mandatory
formats are checked in into the corresponding minor object to get finalized, the finalize step will be started.
If the requirements are not met, the minor object is yet not ready to get “promoted” to the major object, an error
message will show the missing formats.
The finalize step will also reset the attribute “EBOM Status” on the minor and major objects, as all preliminary
BOM’s do not exist anymore.
The attribute “BareBoard Names” from the minor object is also transferred to the major object. This assures, that
no different BareBoard ( PCB ) is used for a final EBOM, if a preliminary EBOM was already created.
If the major object is already finalized an additional finalize step is not possible. First an Undo-Finalize step
must be run
Undo-Finalize
Undo-Finalize is used to transfer the data of the major object back to the minor object.
A created EBOM will be completely disconnected.
The Undo-finalize step will also reset the attribute “EBOM Status” on the objects. The attribute “BareBoard
Names” on the major object is also reset.
ENOVIA Collaborative Design – Administrator’s Guide 33
BOM Data Management
The BOM Management provides a client driven User Interface. The User Interface as well as the business logic
can be partially controlled through a definition in ENOVIA. This functionality is provided through the means of
ENOVIA Webforms and ENOVIA tables.
UI Elements
Component Search Dialog
The Component Search Dialog is configurable regarding the criteria shown in the left frame
Figure 26 Component Search Dialog
Type Search Dialog
Important note: The default Component Search webform ‘ECAD-ComponentSearchForm’ can be
used as a reference to create your own Search Webforms.
34 ENOVIA Collaborative Design – Administrator’s Guide
The Type Search Dialog will present the user with an expandable Tree in which the user can make the selection
of exactly one entry.
The Tree displays the type hierarchy based on an input type. By default the first Level of the tree components is
expanded.
Figure 27 Type Search Dialog
Vault Search Dialog
The Vault Search Dialog will present the user with a list of vault entries in which the user can de-/select one or
more entries.
The upper entry field is used to do a fast selection based on some input. This means, if the user is typing some
characters, the possible selection will be highlighted.
Figure 28 Vault Search Dialog
Policy Search Dialog
The Policy Search Dialog will present the user with a list of policy entries in which the user can de-/select one or
more entries.
ENOVIA Collaborative Design – Administrator’s Guide 35
The upper entry field is used to do a fast selection based on some input. This means, if the user is typing some
characters, the possible selection will be highlighted.
Figure 29 Policy Search Dialog
State Search Dialog
The State Search Dialog will present the user with a list of state entries in which the user can de-/select one or
more entries.
The list of available states is defined by the currently selected policies. Only states which are available for the
selected policy will be shown.
The upper entry field is used to do a fast selection based on some input. This means, if the user is typing some
characters, the possible selection will be highlighted.
Figure 30 State Search Dialog
36 ENOVIA Collaborative Design – Administrator’s Guide
Operator search The user has the functionality to search based on additional operators. The operators are shown in a drop down
menu. Based on the type of the attribute different operators are available.
Figure 31 Operator search: Real
Figure 32 Operator search: String
The operators can be configured through ENOVIA Webforms.
The user searches for the Webform responsible for displaying the Part search criteria in the Part search dialog.
Figure 33 Webform Part search criteria
In this example, we will add a new field named “TargetCost” and associate operators for the same.
Click on the Add button to add a new field.
ENOVIA Collaborative Design – Administrator’s Guide 37
Figure 34 Specify a name
A name for the field is specified here. The user needs to set the label to be displayed in the part search dialog by
selecting the next tab “Expression”.
Figure 35 Specify a label
38 ENOVIA Collaborative Design – Administrator’s Guide
The properties needed for enabling the operator search criteria are
typeClass = operatorfield
format = real
This is set in the “settings” tab.as shown below.
Figure 36 Setting properties
The typeClass specifies if the field is an operator field, if so then the user needs to set the format to be used. If
the format is Real then all the operators belonging to this format are displayed in a dropdown menu as shown in
the Figure 31. If the format is String, then the operators in the Figure 32 are shown.
Once the properties are set, the user needs to click on the “Ok” button to add this field to the search criteria.
Figure 37 Adding new attribute
ENOVIA Collaborative Design – Administrator’s Guide 39
Webform Element Definition
The webform element definition used for the OOTB implementation, also defining the must have attributes.
The following Webform elements exist and have a specific implementation:
typechooser The typechooser element will bring up a hierarchical Type chooser. As additional properties the root type has to
be defined, as well as if the root type has to be made visible in the hierarchical tree.
Properties:
typeClass=typechooser
rootType=[AdminType] e.g. “Part”
rootTypeVisible=[true|false]
policychooser The policycooser element will bring up a policy chooser list. Can only be used in combination with a
typechooser and is automatically linked to the selected types in the type chooser.
Properties:
typeClass=policychooser
statechooser The statechooser element will bring up a policy chooser list. Can only be used in combination with a
policychooser and is automatically linked to the selected policies in the policy chooser.
Properties:
typeClass=statechooser
vaultchooser The vaultchooser element will bring up a vault chooser list.
Properties:
typeClass=vaultchooser
revision The revision element is a simple textfield which is mainly used in combination with the “latestrevision” element.
It has to be linked to the revision property of the BusinessObject
Properties:
typeClass=revision
latestrevision The latestrevision element checkbox is directly linked to the revision element. If activated, it makes the revision
element non-editable. The meaning is to always search for the latest revision of the Business Object
Properties:
typeClass=revision
textfield The textfield element will bring up a standard editable textfield.
Properties:
typeClass=textfield
40 ENOVIA Collaborative Design – Administrator’s Guide
checkbox The checkbox element will bring up a standard editable checkbox. An additional property defines if the
checkbox is preselected or not.
Properties:
typeClass=checkbox
typeClassSelected=[true|false]
ENOVIA Collaborative Design – Administrator’s Guide 41
Important note: please note that you should not use the direct attribute name as the name
of a column. E.g. use ‘_name’ instead of ‘name’, ‘_description’ instead
of ‘description’
Displayable Columns
The columns to be displayed in the tables can be configured and modified through ENOVIA Tables.
Standard ENOVIA tables are created to link any available attributes to the display.
Figure 38 Definition of display columns in a table
Figure 39 Display column naming convention
UI Element cache refresh
After doing changes to webforms or tables used by the BOm Management, it is required to refresh this specific
UI cache. To do so please login to the web ui with a user which has business admin access.
Open the web mql console and execute the following command to relead the cache:
exec prog com.pe_gmbh.bommanagement.Dispatcher -method reloadCache
42 ENOVIA Collaborative Design – Administrator’s Guide
BOM Creation For creating the Bill of Material Structure and, if selected, missing parts in ENOVIA also webforms are used.
There are webforms used for creating missing parts as well as webforms used to create relationships between
parts or between parts and their specification document.
For connections between parts, always the usage ‘ebomrelationship’ is used.
For connections between parts and their specification document always the usage ‘ebompartspecrelationship’ is
used.
Please refer to the already used webforms for more technical details on the various settings.
Predefined BOM Creation Webforms
The following webforms are predefined and will be used by the BOM Management existence check function:
ECADBOMRelationshipForm
o Usage Property value: ebomrelationship
ECADBOMPartSpecRelationshipForm
o Usage Property value: ebompartspecrelationship
ECADBOMComponentAutoCreateForm
o Usage Property value: automaterialcreate
ECADAssemblyComponentAutoCreateForm
o Usage Property value: autoassemblycreate
ECADSubAssemblyomponentAutoCreateForm
o Usage Property value: autosubassemblycreate
ECADBareBoardComponentAutoCreateForm
o Usage Property value: autobareboardcreate
ENOVIA Collaborative Design – Administrator’s Guide 43
Material Existence Check
The material existence check feature is a function which checks if the material exists in PDM.
Based on specific rules a query is made to the database.
The command triggers a document search based on specific criteria defined by a webform and returns the
component information based on a given table.
As an input to the criteria the command will provide a list of objects (hence here mainly the part number is
provided).
In general the existencecheck mode is using configurable webforms which can build PDM queries in a generic
way (e.g. pattern matching, stacked searches, etc.).
With this implementation also more complex scenarios like get the latest released object, get objects based on
configured states can be handled.
The integration will send the to-be-used webform which defines specific search criterias for exactly one object.
Predefined Existence Check Webforms
The following webforms are predefined and will be used by the BOM Management existence check function:
ECADComponentExistenceCheckForm
o Usage Property value: componentcheckcriteria
ECADAssemblyExistenceCheckForm
o Usage Property value: assemblycheckcriteria
ECADBareboardExistenceCheckForm
o Usage Property value: bareboardcheckcriteria
ECADDocumentExistenceCheckForm
o Usage Property value:documentcheckcriteria
44 ENOVIA Collaborative Design – Administrator’s Guide
ECAD Integration Usage property definition
The “ECAD Integration Usage” property defines in which scope the corresponding table or webform is used by
the integration. The integration has to evaluate this information according to the currently selected scope. This
means, that e.g. if the usage is defined as “bompanel”, this table is used to display the columns in the bom panel.
Subsequently this means, that if the integration requests component information it has to send this table
information to the PDM to get the proper details back.
Example: in mql:
MQL<1>print form ECAD-Assembly-FindLatestRev;
property ECAD Integration Usage value assemblycheckcriteria
Predefined USAGE definition
Tables BOM Editor Table view: usage=componentdetails
Component Search Table view: usage=componentsearch
Document Search Table view: usage=documentsearch
Webforms
Existence Check Assembly criteria: usage=assemblycheckcriteria
Existence Check Component criteria: usage=componentcheckcriteria
Existence Check Bareboard criteria: usage=bareboardcheckcriteria
Existence Check Documents criteria: usage=documentcheckcriteria
New Auto Material creation: usage=automaterialcreate
New Auto Bareboard creation: usage=autobareboardcreate
New Auto Assembly creation: usage=autoassemblycreate
New Auto Subassembly creation: usage=autosubassemblycreate
Part Search Criteria Dialog: usage=partsearchcriteria
Document Search Criteria Dialog: usage=documentsearchcriteria
ENOVIA Collaborative Design – Administrator’s Guide 45
Global Definitions The Administrator can configure all the global definitions for the integration through the server side JPO
“Definitions_mxJPO”.
public class Definitions_mxJPO
{
/**
* the List of roles which act as BOM Administrators. These roles are able to use the BOM
Configuration Editor to create/modify new BOM Configuration Objects
*/
public final static List<String> bomAdministratorRoles = Arrays.asList("role_IEFAdmin");
/**
* the List of roles which act as BOM Administrators. These roles are able to act as a Power
User for the BOM Management
*/
public final static List<String> bomPowerUserRoles =
Arrays.asList("role_SeniorDesignEngineer", "role_SeniorManufacturingEngineer");
/**
* the list of roles which act as User being able to use Library Central from an ECAD
perspective
*/
public final static List<String> lbcUserRoles = Arrays.asList("role_Librarian",
"role_LibraryUser", "role_SeniorManufacturingEngineer",
"role_SeniorDesignEngineer");
/**
* the list of roles which act as User being able to use Component Data Management Feature
from an ECAD perspective. Access to ENG ComponentDataManagement
* feature is automatically granted
*/
public final static List<String> cdmUserRoles = Arrays.asList("role_SeniorDesignEngineer",
"role_SeniorManufacturingEngineer");
/**
* Name of the property key storing the version about installed library central.
*/
public final static String PROP_NAME_LIBRARY_CENTRAL = "appVersionLibraryCentral";
/**
* the set defining the default part root types which are used in the ENG searches
*/
public final static Set<String> defaultPartRootTypes = new
LinkedHashSet<String>(Arrays.asList("Part"));
}
46 ENOVIA Collaborative Design – Administrator’s Guide
BOM Configuration Object in ENOVIA This feature provides ability to load BOM settings directly from ENOVIA. Configuration of the BOM inside of
ENOVIA allows a general BOM Configuration defined and controlled by an administrator. The user will still be
able to store some of the user settings, but the administrator defines these settings.
The BOM Configuration objects are stored in ENOVIA. The Active BOM C/O (Configuration Object) is defined
trough GCO Attribute (Type|Name|Revision). Also the available BOM C/O are defined trough GCO Attribute
(T|N|R separated by “@”).
There is a support for role based access (available roles: Standard/Power/Admin Users). The BOM settings can
be read-only or modifiable in PDMbridge based on access permission. There is only one active BOM C/O at the
time, defined per GCO but there can be more defined and switched in the GCO.
The BOM C/O is received during the Login Process using a JPO call, where the response in XML returns all
available settings for the current/selected BOM C/O. As this is received at the Login, the changes done directly
on the server take effect on the client after the next Login.
After the BOM C/O is created a BMO template is generated. The values set on the server become the default
values in the template. Then the setting is loaded. If an attribute is modifiable by the user, the value set by the
user is merged into the setting. Now the setting can be requested by a Task or by the Preferences.
Figure 40 BOM C/O in ENOVIA
ENOVIA Collaborative Design – Administrator’s Guide 47
General Settings
BOM Settings Display Name Attribute Name Default Value
Allow Design BOM ECADInteg-BOMConfiguration-
AllowDesignBOM
{DEFAULT}false|true
Create collapsed BOM ECADInteg-BOMConfiguration-
CreateCollapsedBOM
{DEFAULT}true|false
Allow Disabling of EDA Parts ECADInteg-BOMConfiguration-
BOMEditorPartAllowDisableEDAPart
{DEFAULT}false|true
Allow Adding ENOVIA Parts ECADInteg-BOMConfiguration-
BOMEditorPartAllowAddENOVIAPart
{DEFAULT}false|true
Store Parts Added by User ECADInteg-BOMConfiguration-
BOMEditorPartStoreUserPart
{DEFAULT}true|false
Allow Manual assignment of
ENOVIA Parts to EDA Parts
ECADInteg-BOMConfiguration-
BOMEditorPartAllowManualAssignment
{DEFAULT}false|true
Use ENOVIA Background Job
for BOM creation
ECADInteg-BOMConfiguration-
UseBackgroundJob
{DEFAULT}false
Threshold ECADInteg-BOMConfiguration-
UseBackgroundJobThreshold
{ENFORCED}500
Allow Design BOM
Enabling this setting, allows the user to add the BOM from the design scope. This setting enables the Design in
the BOM Editor dialog. This setting allows creating a Bill of Material which reflects all components available in
the Design, irrespective of any Variant Settings. This setting can be used to create a ‘Total BOM’ without having
the need to define an explicit Total Variant Object in the PLM System.
Create Collapsed BOM
If selected then a collapsed BOM is transferred to ENOVIA, otherwise an expanded BOM is transferred.
In either case the BOM Editor will display an expanded BOM.
Allow Disabling of EDA Parts
This setting defines if the user is allowed to disable components coming in automatically from the EDA side
through the BOM extraction process. If this flag is set, all the EDA Components are made optional. If this flag is
unset, all EDA components are made mandatory. The default setting is false.
Allow Adding ENOVIA Parts
Enabling this setting allows the user to add Components from ENOVIA to the BOM structure. The Components
in the ENOVIA can be found using a part search dialog. Added Components are flagged as USER components
and only these Components can be removed. It will not be allowed to remove EDA components.
Store Parts Added by User
This setting allows the user to store the parts added by the user. When the user clicks on the “Store” button in the
BOM management dialog, the user created parts are stored along with the other EDA parts in the local system.
Allow Manual assignment of ENOVIA Parts to EDA Parts
This setting enables the user to change (re-assign) the default part of an EDA component with a new ENOVIA
Part. This enables the “assign/unassign” context menu for EDA Components in the BOM editor dialog.
Use ENOVIA Background Job for BOM creation
Enabling this setting runs the BOM creation as a background job in ENOVIA so the user can proceed with the
other operations during this process.
Threshold
The user can specify the threshold value which states that the background job will be used only when
BOM contains parts more than the specified value. For example, if the specified threshold is 500, then
the background job is carried out if the BOM contains more than 500 parts.
48 ENOVIA Collaborative Design – Administrator’s Guide
Missing Part Strategy This setting defines if the BOM creation can be executed or not if the BOM contains EDA parts which do not
exists in ENOVIA. If the BOM extracted from the EDA side contains parts which have not been created in
ENOVIA / are missing in ENOVIA, various strategies can be applied.
Display Name Attribute Name Default Value
Error | Warning | Ignore ECADInteg-BOMConfiguration-
BOMEditorPartMissingStrategy
DEFAULT}ERROR|WARNING|IGNORE
Create non existing parts in
ENOVIA
ECADInteg-BOMConfiguration-
BOMEditorPartAllowPartCreation
{DEFAULT}false|true
Error
Enabling this setting disables the “Create non existing parts in ENOVIA” checkbox. When the user checks
this radio button, an error message comes up when the BOM contains EDA parts which do not exists in
ENOVIA. The user will not able to proceed with the BOM creation process until he has solved the issues.
Warning
Enabling this setting enables the “Create non existing parts in ENOVIA” checkbox. When the user checks
this radio button, a warning message is shown to the user that the BOM contains EDA parts which do not
exist in ENOVIA. The user is able to proceed with the BOM creation. Depending on the setting of the
“Create non existing parts in ENOVIA” checkbox the missing parts are either skipped or created
Ignore
Enabling this setting enables the “Create non existing parts in ENOVIA” checkbox. When the user checks
this radio button, the BOM is created in ENOVIA and no message is shown to the user regarding the
missing parts.
Depending on the setting of the “Create non existing parts in ENOVIA” checkbox the missing parts are either
skipped or created.
Create non existing parts in ENOVIA
This setting creates all the EDA parts which are missing in ENOVIA during BOM creation. If this flag is set to
false, then the missing parts are removed from the BOM creation process and are not considered for the PDM
BOM. The created part is defined by the scope specific Part Creation Webform – here e.g. Type, Policy etc. are
defined.
Please note that this feature should only be used for testing and prototyping but not in a production environment.
It can result in error message presented by the user if the part is not found in ENOVIA because of e.g. not having
the correct state or not visible to the user, and the integration is trying to create the part.
Example:
The part ‘1234’ exists in state ‘Preliminary’ in ENOVIA
The integration is looking for a part ‘1234’ in state ‘Release’ and therefore flags the part as
non-existent in the BOM Editor.
If the user now wants to create the non-existing part in ENOVIA, an error message will be
returned to the user that the part cannot be created. This behavior in fact is correct, as the part
already existed, but is not ‘visible’ to the user because of search criterias or access permissions.
ENOVIA Collaborative Design – Administrator’s Guide 49
BOM Editor
BOM Table Settings
Display Name Attribute Name Default Value
Table BOM Structure View ECADInteg-BOMConfiguration-
BOMEditorBOMTableEDAView
{ENFORCED}ECADBasicPropertyDetails
Table EDA Part Details ECADInteg-BOMConfiguration-
BOMEditorBOMTablePartView
{ENFORCED}ECADBOMTableDetails
CAD Model
CAD Model Webform Settings
Display Name Attribute Name Default Value
Webform CAD Model
Existence Check
ECADInteg-BOMConfiguration-
BOMEditorCADModelExistenceCheck
{ENFORCED}ECAD-
ExistenceCheckDocumentCriteria
Connect BOM to CAD
Model Revision
ECADInteg-BOMConfiguration-
BOMEditorCADModelConnectToRevisioin
{DEFAULT}false|true
Webform CAD Model Existence Check
It specifies which webform will be used to check the existence of the CAD models in ENOVIA. When the user
brings up the BOM management UI, the existence of the previously added document is checked and queried in
ENOVIA for its existence using the document criteria defined in the webform
Connect BOM to CAD Model Revision
This attribute defines if the BOM is connected to the CAD Model Revision or the CAD Model Version. This is
useful, if the user does not work with versioned objects or wants to see the BOM always on the CAD Model
Revision.
Assembly Settings
Assembly Form Settings
Display Name Attribute Name Default Value
Assembly part
Creation Form
ECADInteg-BOMConfiguration-
BOMEditorAssemblyPartCreationForm
{ENFORCED}ECAD-Part-
AutoCreateForm
Webform Assembly
Part Existence Check
ECADInteg-BOMConfiguration-
BOMEditorAssemblyExistenceCheck
{DEFAULT}ECAD-Assembly-
FindLatestReleasedOrLatestRev|ECAD-
Assembly-FindLatestRev|ECAD-
Assembly-FindLatestReleased
Webform Part
Specification
Relationship
ECADInteg-BOMConfiguration-
BOMEditorBareboardPartSpecRelationship
{ENFORCED}ECAD-BOM-
PartSpecRelationshipForm
Assembly part Creation Form
Defines the webform used to create assembly components if they do not exist in ENOVIA.
Webform Assembly Part Existence Check
Defines the webform used to check if the assembly component exists in ENOVIA. The integration queries
ENOVIA for the existence of the assembly part based on selected webform which specifies the state of the part
for example, when the user selects Latest Released Revision, then it checks for all the assembly parts with the
latest revision in the released state.
50 ENOVIA Collaborative Design – Administrator’s Guide
Webform Part Specification Relationship
Defines the form used to create a Part Specification relationship between the assembly part and the assembly
document.
Bareboard Settings
Display Name Attribute Name Default Value
Reference Designator
Bareboard
ECADInteg-BOMConfiguration-
BOMEditorBareboardReferenceDesignatro
{DEFAULT}PCB
Reference Designator Bareboard:
Defines the Reference Designator used for the bareboard
Bareboard Form Settings
Display Name Attribute Name Default Value
Webform Bareboard
Part Creation
ECADInteg-BOMConfiguration-
BOMEditorBareboardPartCreationForm
{ENFORCED}ECAD-BareBoard-
AutoCreateForm
Webform Bareboard
Part Existence Check
ECADInteg-BOMConfiguration-
BOMEditorBareboardExistenceCheck
{DEFAULT}ECAD-Bareboard-
FindLatestReleasedOrLatestRev|ECAD-
Bareboard-FindLatestRev|ECAD-
Bareboard-FindLatestReleased
Webform Part
Specification
Relationship
ECADInteg-BOMConfiguration-
BOMEditorAssemblyPartSpecRelationship
{ENFORCED}ECAD-BOM-
PartSpecRelationshipForm
Webform Bareboard Part Creation:
Defines the webform used to create bareboard components which are not yet in the ENOVIA.
Webform Bareboard Part Existence Check:
Defines the webform used to check the existence of the bareboard component in ENOVIA. The integration
queries ENOVIA for the existence of the bareboard part based on selected webform which specifies the state of
the part for example, when the user selects Latest Released Revision, then it checks for all the assembly parts
with the latest revision in the released state.
Webform Part Specification Relationship:
Defines the form used to create a Part Specification relationship between the bareboard part and the bareboard
document.
Part Settings
Part Filter Settings
Display Name Attribute Name Default Value
Enable Ignore
Components
ECADInteg-BOMConfiguration-
BOMEditorPartIgnoreEDAPart
{DEFAULT}true|false
Regular
Expression
ECADInteg-BOMConfiguration-
BOMEditorPartIgnoreEDAPartRegExp
{ENFORCED}partNo=^TP.*$;partNo=^TEST
P.*$;partNo=^IGNORE.*$
Enable Ignore Components
The user has the possibility to ignore parts coming in from the EDA BOM extraction process by defining regular
expressions. This might be very useful to ignore part entries like Testpoints, DNI Parts etc. which are required in
the CAD Design itself but have no meaningful representation in the PLM Side.
This setting defines the semicolon separated regular expressions which are used to ignore parts coming from the
EDA side.
ENOVIA Collaborative Design – Administrator’s Guide 51
Example:
partNo=^OA.*$;partNo=^TESTP.*$;partNo=^IGNORE.*$
This expression indicates that, all parts starting with OA, TESTP and IGNORE will be ignored for BOM
creation.
Part Form settings
Display Name Attribute Name Default Value
Part Creation ECADInteg-BOMConfiguration-
BOMEditorPartCreationForm
{ENFORCED}ECAD-Part-
AutoCreateForm
Part Existence check ECADInteg-BOMConfiguration-
BOMEditorExistenceCheck
{DEFAULT}ECAD-Part-
FindLatestReleasedOrLatestRev|ECAD-
Part-FindLatestRev|ECAD-Part-
FindLatestReleased
EBOM Relationship ECADInteg-BOMConfiguration-
BOMEditorPartSpecRelationship
{ENFORCED}ECAD-BOM-
RelationshipForm
Part Creation
Defines the webform used to create missing parts in the ENOVIA.
Part Existence check
Defines the webform used to check the existence of the parts in the ENOVIA. The integration queries ENOVIA
for the existence of the part based on selected webform which specifies the state of the part for example, when
the user selects Latest Released Revision, then it checks for all the assembly parts with the latest revision in the
released state.
EBOM Relationship
Defines the form used to create a relationship between parts i.e.; create an EBOM connection between the
component and its parent component
Search Settings
Display Name Attribute Name Default Value
Webform Part Search
Criteria
ECADInteg-
BOMConfiguration-
PartSearchCriteriaForm
{ENFORCED}ECAD-
ComponentSearchForm
Table Part Search Details ECADInteg-
BOMConfiguration-
PartSearchDetailsTable
{ENFORCED}ECADENGPartSearchDetails
Search limit ECADInteg-
BOMConfiguration-
PartSearchLimit
{DEFAULT}100
Webform Part Search Criteria
Specifies which webform will be used for displaying the part search criteria. When bringing up the Search
Screen for searching Parts in ENOVIA, the used webform defines what kind of search criteria is available to the
user
Table Part Search Details
This defines the table column definition used in the component search details table. When bringing up the part
Search Screen for searching Parts in ENOVIA, the used webform defines what kind of table column details are
available to the user
Search limit
The user can specify the default search limit which limits the number of objects retrieved during search.
52 ENOVIA Collaborative Design – Administrator’s Guide
Syntax of the attributes in ENOVIA Dedicated value prefix to define if the attribute is modifiable in the client side or not
o {ENFORCED}
value is not changeable by the user
UI Component is disabled
modifyAccess attribute == false
o {DEFAULT}
value is changeabe by user
UI component is enabled
modifyAccess attribute == true
If no prefix is defined {DEFAULT} is assumed
ValueClass
o valueClass attribute is used to define the type of attribute
String
Boolean
Integer
Float
o As the Matrix attribute has to be always a string (because of {ENFORCED}/{DEFAULT}
information), the definition of the value class is based on a definition lookup.
o Various Sets defines the class to which the attributes belong to.
o If attribute name is not found in any set, a value class “string” is assumed.
Attribute Values
o The first value will always be the selection (the value which is selected)
o Additional values will be separated by a pipe “|”character
Examples:
o Boolean
{DEFAULT}false|true provide a selectable checkbox which is unchecked
o String
{DEFAULT}table1|table2|table3 provide a drop down box with table1
selected
o Integer/Float (only numbers are allowed)
{DEFAULT}500 provide field with number 500 Modifiable
{ENFORCED}5.0 provide field with number 5.0 NOT Modifiable
ENOVIA Collaborative Design – Administrator’s Guide 53
BOM Configuration Editor In CSE
BOM Configuration Editor is used to create BOM Configuration objects in ENOVIA directly from the
Integration. The BOM settings can be read-only or modifiable in the client based on access permission. Running
the task, opens up the dialog as shown below.
Figure 41 BOM Configuration Editor
The preference dialog shows all the available BOM Configuration Objects in ENOVIA for the current
integration. The user having full access rights can perform the following
Default Selection
Selecting this checkbox makes the available setting as default but the user can modify it at run time in the
preferences.
Enforced
Selecting this checkbox enforces the setting and the user will not be able to modify it from the preferences as
these enforced settings are disabled for modification.
Create a New BOM Configuration Object
The user can create New BOM C/O object by clicking on this button. This brings up a Textfield where the user
needs to specify a configuration name. If the user enters a name which already exists, a warning text at the top
of the textfield is shown stating “Configuration exists already” and the Ok button is disabled
Figure 42 Create New: Existing name
The Administrator needs to grant access to the user in order to run BOM Configuration Editor. This
could be set in the server side JPO “Definitions_mxJPO”
54 ENOVIA Collaborative Design – Administrator’s Guide
Open entering a different name, the warning message goes out and the ok button is enabled. Clicking on the Ok
button, the new BOM configuration object will appear in the tree on the left pane and the corresponding
attributes could be edited from the right pane.
Figure 43 Create New: New name
User needs to click on the Save button to create the BOM Configuration object in ENOVIA. The configuration
object is not created in ENOVIA until the user explicitly clicks on the Save button. The user can edit the BOM
settings anytime but the changes are committed to ENOVIA only if it is saved.
Duplicate and Edit a BOM Configuration Object
This is very similar to Create New but the default settings are set from the BOM Configuration Object
duplicated. This action will bring up a textfield where the user can apply a new name. Upon providing a new
name, the new BOM configuration object will appear in the tree on the left pane and the corresponding attributes
could be edited from the right pane.
Setting any BOM Configuration Object as the default one in ENOVIA
The user can set the created BOM configuration object as the default one in ENOVIA using this option. The
selected BOM configuration object will be used to update the entry in the GCO attribute which defines the
default BOM configuration object. This configuration object will be available for the users and will be set as the
starting point for new BOM configuration objects.
Edit Existing BOM Configuration Object
The user can modify the settings of any existing BOM configuration object directly from the editor. The user can
select the Configuration object from the left pane and modify the corresponding settings and upon Saving it, the
changes are committed to ENOVIA.
Save the changes back to ENOVIA
This save button commits all the modifications done in the BOM configuration object to ENOVIA. The save
button brings up a dialog which shows all the BOM configuration objects which have been modified. The user
needs to select the configuration object by selecting the corresponding checkbox and click Ok button to save the
changes in ENOVIA.
Figure 44 Create New: Save
ENOVIA Collaborative Design – Administrator’s Guide 55
Component Data Management
This chapter describes the data preparation layer of the Component Data Management and provides an overview
of how the layer works and how it can be configured. Regular Expressions gives a brief overview of the regular
expressions used with the data mapping layer.
Data Migration Migration of the old data to the new format will not be done by the integration. The old data is the data created
using the older version of the integration. The integration throws an error that the migration routine is not found,
if the user tries to use a library which has old meta data. If the Library Project contains old data which needs to
be migrated to the new format the user needs to manually delete the old data in order to be used in the
integration.
Data Mapping Layer The Data Mapping Layer provides all necessary functionality to convert ENOVIA parts information to ECAD
parts information and vice versa.
The Data Mapping Layer is configured by a mapping XML file which contains instructions (rules/tests and
definitions/operations) for the part manipulation. The instructions will be applied on the part which is passed
from the source into the mapping layer. After applying all instructions, the modified part is then passed over to
the target for further processing. It is important to mention that the output part is by default the same than the
input part. Only manipulations of part data will occur.
The tests and operations are described in the subsequent sections of this chapter.
The data mapping layer is configured with the use of configuration files. A configuration is structured in a XML
file which consists of instructions and which can import further files with instructions. The format of the
configuration is defined in a XSD file (XML-Schema).
CDM Setup Wizard Settings Files Once the user finished the CDM Setup Wizard task, two XML files are created in the .enoviastore under the
Library project directory as shown in Figure 45. There is a dedicated XML file for all the pre-selections made
and another which stores the path of the mapping file and other CDM setup. The settings made here are used
when the user runs the CDM task. The integration loads all the settings automatically from the XML files into
the CDM synchronization dialog. The user has to run the CDM Setup Wizard task to run the CDM Task and the
background synchronization process.
Important note: The user needs to manually delete the contents of “.enoviastore“shown in
Fehler! Verweisquelle konnte nicht gefunden werden.Figure 45 present in the
library project directory.
56 ENOVIA Collaborative Design – Administrator’s Guide
Figure 45 Library Project Directory
.enoviastore
Library Project Directory
~CDMSetup.ped
~CDM_Preselection_EDA_test.ped
~CDM_Preselection_PARTLIBRARY_test.ped
~CDM_Preselection_EDA_test.ped
ENOVIA Collaborative Design – Administrator’s Guide 57
General Structure of the XML Configuration Following is small example of an XML mapping configuration. The complete structure is defined in the XSD
schema (see Appendix CDM Data Mapping Layer XSD Schema).
<?xml version="1.0" encoding="UTF-8"?>
<pemapping version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../mapping-schema.xsd">
<test>
<operation></operation>
</test>
<operation></operation>
</pemapping>
An example of a detail XML configuration mapping can be found in appendix CDM Mapping Configuration
Example.
58 ENOVIA Collaborative Design – Administrator’s Guide
Regular Expressions Regular expressions are a way to describe a set of strings based on common characteristics shared by each string
in the set. They can be used to search, edit, or manipulate text and data. The Regular Expressions syntax
supported is the JAVA Regular expression syntax.
The integration will also support the concept of Capturing groups; in fact this is one of the essential elements of
the regular expression support. Capturing groups are a way to treat multiple characters as a single unit. They are
created by placing the characters to be grouped inside a set of parentheses. For example, the regular expression
(dog) creates a single group containing the letters "d" "o" and "g". The portion of the input string that matches
More information can be found in appendix Regular Expressions.
ENOVIA Collaborative Design – Administrator’s Guide 59
Processing Instructions This instructions control the workflow of the Data Preparation Layer.
pemappings
import
general Syntax <pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd "
version="1.0">
<import name="unique name of the import to reference it as a namespace"
path="the path of the imported file" />
</pemapping>
description Defines an import of a configuration XML file. The imported and importing file must be of the same version.
used by pemappings
attributes Name Type Use Default Annotation
name xs:string required The name of the import used to address the regular
expression references. The references in the imported file
can then be addressed with the syntax:
general Syntax <pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="path to the XSD file "
version="mapping engine version number">
child instructions
</pemapping>
description The root node of the configuration. This is the start node. It contains the version of the mapping file. The
current version of the mapping files is 1.0.
children import, namespace
attributes Name Type Use Default Annotation
version xs:string required The version of the configuration
examples
<!-- the root structure of the configuration the mapping-schema.xsd can be
found
in <ENOVIA_home>/data/mapping-schema.xsd
-->
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd"
version="1.0"> ...child instructions...
</pemapping>
<!-- the root structure of the configuration the mapping-schema.xsd can be
found
on local system in file C:/mapping-schema.xsd
-->
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:///C:/mapping-schema.xsd"
version="1.0"> …child instructions…
</pemapping>
60 ENOVIA Collaborative Design – Administrator’s Guide
importnName::referenceName
e.g.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
path xs:string required The path of the file to import. The path can be absolute or relative to the path of the importing file.
examples <!-- imports the file import1.xml from the same directory as the current file,
(relative path) -->
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd "
version="1.0">
<import name="import1" path="import1.xml" />
</pemapping>
<!-- imports the file import1.xml from given path
(absolute path) -->
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd "
version="1.0">
<import name="import1" path="C:/configurations/import1.xml"/>
</pemapping>
namespace
general syntax <pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd "
version="1.0">
<namespace/>
</pemapping>
description Defines a namespace of the configuration.
used by pemappings
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
examples <pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd "
version="1.0">
<!-- default namespace -->
<namespace>
child instructions
</namespace>
</pemapping>
define
general syntax <define id="a unique define id within the namespace"> …child instructions…
</define>
description Defines a block which can be reused. The define block contains a set of instructions which can be reused.
The instruction useref references a define block.
ENOVIA Collaborative Design – Administrator’s Guide 61
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
id xs:string required The id of the define block to use to reference the block.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
examples <pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd "
version="1.0">
<import name="import1" path="import1.xml" />
<namespace>
<!-- define block can be referenced within its namespace -->
<define id="internal_define_block"> …child instructions…
</define>
<!-- references a define block within this mapping -->
<useref refid="internal_define_block" />
<!-- references a define block from an external mapping which is
imported in the current mapping(import1.xml) -->
<useref refid="import1::external_define_block" />
</namespace>
</pemapping>
useref
general syntax <useref refid="referenced id" />
description References a define block.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
attributes Name Type Use Default Annotation
refid xs:string required The id of the define block to use. To reference blocks
inside an imported configuration, use the following
syntax:
importedName::defineBlockName
example <!-- references a reference inside the current mapping -->
<useref refid="define1" />
<!-- references a define block from an external mapping which is
imported in the current mapping(imported1) -->
<useref refid="imported1::define1" />
<!-- here the current configuration imports imported1 which imports
imported2. The reference references define1 inside imported2 -->
<useref refid="imported1::imported2::define1" />
62 ENOVIA Collaborative Design – Administrator’s Guide
alternatives
general syntax <alternatives>
child instructions
</alternatives>
description The alternatives statement is like an if-else operation. When the first child instruction in the alternatives
statement returns true, than the next child instruction is not executed and the alternatives statement is
exited. If the first child instruction returns false, than the next child instruction will be executed.
Please note that only alternatives and test statements can return false. Other instructions or operations will
always return true.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
examples <!-- the execution here is as follows:
1. if attribute SYMBOL exist, add attribute SUB_SYMBOL with value 1 and
return true and exit alternatives
2. if attribute SYMBOL does not exist, it returns false and proceed to the
next child instruction where an attribute SYMBOL with value 1 is added
and exit alternatives -->
<alternatives>
<test type="attribute" name="SYMBOL">
<add target="attribute" name="SUB_SYMBOL value="1"/> </test>
<add target="attribute" name="SYMBOL" value="1"/> </alternatives>
break
general syntax <break />
description Breaks the execution. If used within duplicate continues with the siblings of the parent duplicate. Else
breaking the execution of the component and returning the component with the current modifications.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
examples <pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd "
version="1.0">
<namespace>
<duplicate>
<useref refid="define1" />
<useref refid="define2" />
<test type="attribute" name="SYMBOL">
<test type="attribute" name="SUB_SYMBOL"> <!-- breaks execution of duplicate, writes the duplicate and
exits duplicate (add of SUB_SYMBOL will not be executed) -->
<break /> </test>
<add name="SUB_SYMBOL"> </test>
<add name="SYMBOL"> </duplicate>
<!-- breaks execution of the current component -->
<test type="attribute" name="SYMBOL"> <break /> </test>
</namespace>
</pemapping>
ENOVIA Collaborative Design – Administrator’s Guide 63
ignore
general syntax <ignore />
description Ignore, does not add the current component and breaks the execution.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
examples <!-- ignores the operand (breaks the complete execution and removes the current
operand from the result if the attribute SYMBOL exists -->
<test type="attribute" name="SYMBOL"> <ignore /> </test>
commit
general syntax <commit />
description Commits the copy of the component with the current state to the list of the duplicated components and
continues execution of the descendant instructions.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
examples <!-- commits a copy of the operand to the duplicate list and continues with the
operand if the attribute SYMBOL exists -->
<test type="attribute" name="SYMBOL"> <commit /> </test>
64 ENOVIA Collaborative Design – Administrator’s Guide
Test Instructions The Test instruction is a special statement which is used to execute tests on a specific component. If the test
matches the condition, the return value is set to true, otherwise to false. If the test returns true all child/nested
instructions of it will be executed.
All following tests are aliases (shortcuts) for the test instruction.
Type Full Instructions Alias Instructions attribute <test type="attribute" name="SYMBOL" /> <attribute name="SYMBOL" /> specialAttribute <test type="specialAttribute"
name="part.number"
value="123" />
<specialAttribute
name="part.number"
value="123" /> class <test type="class" name="MY_CLASS" /> <class name="MY_CLASS" /> type <test type="type" name="MY_TYPE" /> <type name="MY_TYPE" />
group <test type="group" name="MY_GROUP" /> <group name="MY_GROUP" />
Table 1: Aliase instructions for test instruction
test
general syntax <test type="typename" name="regexp" [value="regexp" regexpid="id_name"] />
description Is used to execute tests on a specific component. If the test matches the condition, the return value is set to
true, otherwise to false.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
type xs:string required Defines the type on which the test is executed.
Valid values are:
attribute (same behavior as described in 0)
specialAttribute (same behavior as described in 0)
class (same behavior as described in 0)
group (same behavior as described in 0)
type (same behavior as described in 0)
Alternatively the test aliases mentioned above can be
used.
name xs:string required Defines the name of ‘type’.
The value can be either a string or any Regular
Expression.
value xs:string optional Defines the value of ‘name’.
The value can be either a string or any Regular
Expression reference. If the optional attribute value is
omitted, then the test will basically just execute an
existence check. If the value attribute is defined, then
the test result is true if the value matches the pattern.
regexpid xs:string optional Defines the unique id within the namespace to reference the test using regular expressions. Using the regular expression, the reference of the regexpid can
ENOVIA Collaborative Design – Administrator’s Guide 65
be divided into matching groups e.g. “(g_1)(g_2)(g_n)”. If the regular expression of an attribute name or value is set to “(test_)([0-9]) the first matching group is “test_” and the second matching group is “[0-9]”. If only one matching group exist i.e. “test_([0-9])”, then the first matching group is “[0-9]”.
To get the value of any matching group it is necessary to know if the value should come from the attribute name or from the attribute value:
MyRegexpid.name[1] returns the value of the first matching group from the attribute name.
MyRegexpid.value[2] returns the value of the second matching group from the attribute value.
The matching group [0] returns the complete value. For detailed information please see examples.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -].
invert xs:boolean optional false Inverts the behavior of the test. If set to true and the criteria do not match the child instructions will be executed.
examples <!--tests the given class if the value equals AC, this is equivalent to a
simple existence check -->
<test type="class" value="AC" />
<!--tests the given class if the name starts with AC by using a regular
expression -->
<test type="class" value="AC.*" />
<!--tests the given attribute if the name starts with SYMBOL_ by using a
regular expression-->
<test type="attribute" name="SYMBOL_(.*)" > <!-- add instructions here, if the name of the attribute starts with
"SYMBOL_" then the instructions included here are executed-->
</test>
<!-- tests if an attribute exist where the name starts with "SYMBOL_" by using
a regular expression SYMBOL_(.*) and the value starts with "4". If this is
the case, it executes all child instructions in this test statement.
The regexpid for the backreference is also configured which can be used in
the child instructions to get the values of the attributes-->
<test type="attribute" name="(SYMBOL_)(.*)" value="(4)(.*)"
regexpid="backreference1" >
<!-- tests if an attribute with the name SUB_SYMBOL exist and also the value
which contains the second matching group of the currently processed
attribute SYMBOL_(.*) by using the backreference and regular
expression.
Following attributes exists: SYMBOL_1=4711 and SUB_SYMBOL=1.
The mapping finds for e.g. the attribute with the name SYMBOL_1
and SUB_SYMBOL=1. Then all child instructions in this test statement
will be executed, because the second matching group of the regexpid
"backreference1.name[2]" returns the value 1. -->
<test type="attribute" name="SUB_SYMBOL" value="${backreference1.name[2]}">
<!-- value modification of an existing attribute with the name SYM.
Using the matching group [0] in this example the new value from the
attribute SYMBOL_1 is changed to 4711. " -->
<modify target="attribute.value" name="SYM"
value="${backreference1.value[0]}" /> </test>
</test>
66 ENOVIA Collaborative Design – Administrator’s Guide
Alias Instructions
attribute
general syntax <attribute name="regexp" [value="regexp" regexpid="id_name"] />
description Tests if an attribute exists. The optional value defined matches if the attribute has the given value. For each
positive matching attribute all child instructions of the node will be executed. This test is an alias instruction
for test.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
name xs:string required Defines the name of attribute.
It can be either a string or any Regular Expression.
value xs:string optional Defines the value of ‘name’. The value can be either a string or any Regular Expression reference. If the optional attribute value is omitted, then the test will basically just execute an existence check. If the value attribute is defined, then the test is successful if the value matches the pattern.
regexpid xs:string optional Defines the unique id within the namespace to reference the test using regular expressions. For detailed description and examples see test
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
invert xs:boolean optional false Inverts the behavior of the test. If set to true and the criteria do not match the child instructions will be executed.
examples
<!-- tests the given attribute if the name starts with SYMBOL_ by using a
regular expression-->
<attribute name="SYMBOL_(.*)" />
<!-- tests the given attribute if the name starts with SYMBOL_ by using a
regular expression and if its value starts with SYM -->
<attribute name="SYMBOL_(.*)" value="SYM(.*)/>
specialAttribute Special attributes are attributes used by the source and target plug-ins and define the processing of the
component. Table 3: Available special attributes lists the available special attributes and the impact of them.
All following tests are aliases (shortcuts) for the test instruction.
Type Full Statement Alias Statement class <test type="specialAttribute" name="class.name"
value="MY_CLASS" /> <class name="MY_CLASS" />
type <test type="specialAttribute" name="type.name"
value="MY_TYPE" /> <type name="MY_TYPE" />
group <test type="specialAttribute" name="group.name"
value="MY_GROUP" /> <group name="MY_GROUP" />
Table 2: Alias instructions for specialAttribute instruction
ENOVIA Collaborative Design – Administrator’s Guide 67
Available special attributes.
Name Description class.name Contains the name of the class of the part
type.name Contains the name of the type of the part (not used currently)
group.name Contains the name of the group of the part (not used currently)
part.number Contains the part number of the part
part.delete This attribute marks the part to be deleted if value=”true”. (only applicable to delete parts on the EDA side) In the preferences of the integration the user can set to used it or not. If this setting is not used local parts are updated and parts which do not exist are created. Otherwise local parts are deleted how it is configured in the mapping configuration.
Table 3: Available special attributes
general syntax <specialAttribute name="regexp" [value="regexp" regexpid="my_id"] />
description Tests if a special attribute exists. The optional value defined matches if the attribute has the given value. For
each positive matching special attribute all child instructions of the node will be executed. This test is an
alias instruction for test.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
name xs:string required Defines the name of attribute. It can be either
a string or any Regular Expression.
value xs:string optional Defines the value of ‘name’.
The value can be either a string or any
Regular Expression reference. If the
optional attribute value is omitted, then the test will basically just execute an existence check. If the value attribute is defined, then the test is successful if the value matches the pattern.
regexpid xs:string optional Defines the unique id within the namespace to reference the test using regular expressions. For detailed description and examples see test
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
invert xs:boolean optional false Inverts the behavior of the test. If set to true and the criteria do not match the child instructions will be executed.
examples
<!-- tests if a special attribute class.name with value AC exists.
If exist execute the client instructions -->
<specialAttribute name="class.name" value="AC"> …client instructions…
</specialAttributettribute>
<!-- tests if a special attribute class.name exist and the value
starts of the the class.name with SYM. If exist execute
the client instructions-->
<specialAttributettribute name="class.name" value="SYM(.*)"> …client instructions…
</specialAttributettribute>
<!-- tests if a special attribute part.number ant with value 123 exist.
If exist execute the client instructions -->
<specialAttributettribute name="part.number" value="123">
68 ENOVIA Collaborative Design – Administrator’s Guide
…client instructions…
</specialAttributettribute>
<!-- tests if a special attribute part.delete with the value true exist.
If exist execute the client instructions -->
<specialAttributettribute name="part.delete" value="true"> …client instructions…
</specialAttributettribute>
attributeExists
general syntax <attributeExists name="regexp" [value="regexp" regexpid="id_name"] />
description Tests if an attribute exists. The optional value defined matches if the attribute has the given value. When
found first matching attribute all child instructions of the node will be executed (no further test if more than
one matches available and no further execution of the child instruction for further matches). This test is an
alias instruction for test.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute,
attributeExists, class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
name xs:string required Defines the name of attribute.
It can be either a string or any Regular Expression.
value xs:string optional Defines the value of ‘name’. The value can be either a string or any Regular Expression reference. If the optional attribute value is omitted, then the test will basically just execute an existence check. If the value attribute is defined, then the test is successful if the value matches the pattern.
regexpid xs:string optional Defines the unique id within the namespace to reference the test using regular expressions. For detailed description and examples see test
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
invert xs:boolean optional false Inverts the behavior of the test. If set to true and the criteria do not match the child instructions will be executed.
examples
<!-- tests if at least one attributes name starts with SYMBOL_ by using a
regular expression-->
<attributeExists name="SYMBOL_(.*)" />
<!-- tests if at least one attributes name is starting with SYMBOL_ by using a
regular expression and if its value starts with SYM exists -->
<attributeExists name="SYMBOL_(.*)" value="SYM(.*)/>
class
general syntax <class [value="regexp" regexpid="my_id"] />
description Test the class name of the component. This test is an alias instruction for test which is an alias instruction
for specialAttribute.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
ENOVIA Collaborative Design – Administrator’s Guide 69
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute,
attributeExists, class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
value xs:string optional It can be either a string or any Regular
Expression reference. If the optional attribute
value is omitted, then the test will basically just execute an existence check. If the value attribute is defined, then the test is successful if the value matches the pattern.
regexpid xs:string optional Defines the unique id within of the namespace to reference the test using regular expressions. For detailed description and examples see also test
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
invert xs:boolean optional false Inverts the behavior of the test. If set to true and the criteria do not match the child instructions will be executed.
examples
<!-- tests if a special attribute class.name exists / is defined -->
<class />
<!-- tests if class name equals AC -->
<class value=" AC" />
<!-- tests if class name starts with AC -->
<class value="AC(.*)" />
group
General syntax <group[ value="regexp" regexpid="my_id"] />
description Test on the group name of the component. This test is an alias instruction for test and This test is an alias
instruction for specialAttribute.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class,
group, type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
value xs:string optional Defines the value of ‘name’.
It can be either a string or any Regular Expression
reference. If the optional attribute value is omitted,
then the test will basically just execute an existence check. If the value attribute is defined, then the test is successful if the value matches the pattern.
regexpid xs:string optional Defines the unique id within of the namespace to reference the test using regular expressions. For detailed description and examples see also test
Allowed character set:
70 ENOVIA Collaborative Design – Administrator’s Guide
[p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
invert xs:boolean optional false Inverts the behavior of the test. If set to true and the criteria do not match the child instructions will be executed.
examples
<!-- tests if a special attribute group.name exists / is defined-->
<group />
<!-- tests if group name equals AC -->
<group value=" AC" />
<!-- tests if class name starts with AC-->
<group value="AC(.*)" />
type
general syntax <type [value="regexp" regexpid="my_id"] />
description Test on the type name of the component. This test is an alias instruction for test and This test is an alias
instruction for specialAttribute.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
attributes Name Type Use Default Annotation
value xs:string optional Defines the value of ‘name’.
The value can be either a string or any Regular
Expression reference. If the optional attribute value is
omitted, then the test will basically just execute an existence check. If the value attribute is defined, then the test is successful if the value matches the pattern.
regexpid xs:string optional Defines the unique id within of the namespace to reference the test using regular expressions. For detailed description and examples see also test
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
invert xs:boolean optional false Inverts the behavior of the test. If set to true and the criteria do not match the child instructions will be executed.
examples
<!-- tests if a special attribute type.name exists / is defined -->
<type />
<!-- tests if type name equals AC -->
<type value=" AC" />
<!-- tests if type name starts with AC -->
<type value="AC(.*)" />
ENOVIA Collaborative Design – Administrator’s Guide 71
Operations
duplicate
general syntax <duplicate>
…child instructions…
<duplicate>
description Duplicates the component and executes the instructions on it. Adds the duplicate to the list of the duplicated
components before exiting the element.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
children define, useref, alternatives, break, ignore, commit, test, attribute, specialAttribute, attributeExists,
class, group, type, duplicate, add, modify, set, remove, concatAttribute
examples <!-- duplicates the component and add attribute A1 with a value V1-->
<duplicate>
<add target="attribute" name="A1" value="V1" /> </duplicate>
add
general syntax <add target="attribute" name="regexp" [value="regexp"] />
description Adds a new attribute with given value to the component. The value is optional, if not defined it will be set to
“null”. The attribute is only added if it not exists. Else add will be silently omitted.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
attributes Name Type Use Default Annotation
target xs:string required The target defining the type of the operation to execute.
Valid values are:
attribute: defines to add an attribute.
name xs:string required Defines the new name of the target. The value can be either a string or any Regular Expression reference.
value xs:string optional null Defines the new value of the target. The value can be either a string or any Regular Expression reference. Defaults to null if omitted.
examples <!-- adds a new attribute named SYMBOL and set its value to 1234 -->
<add target="attribute" name="SYMBOL" value="1234" />
modify
general syntax <modify target="targetname" [name="regexp"] value="regexp" />
description Modifies a name or value of the given target. The target can be a special attribute value, an attribute or an
attribute value.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
72 ENOVIA Collaborative Design – Administrator’s Guide
attributes Name Type Use Default Annotation
target xs:string required The target on which the type of the operation is executed. Valid values are.
Defines an attribute type.
attribute.name: selector representing the name of an attribute,
attribute.value: selector representing the value of an attribute
class : represents a class
class.name: selector representing the name of a class, meaning the class itself
part.number: selector representing the part number of the component
part.delete: selector marking the part to be deleted. (boolean value=”true”)
type: not used currently
group : not used currently
value xs:string required Attribute defining the new value of the target selector. The value can be either a string or any Regular Expression reference.
name xs:string required Attribute defining the name of the target itself. The value can be either a string or any Regular Expression. Optional for class.
examples <!-- modification of an existing attribute named SYMBOL by renaming it to
COMP_PROPERTY (the name of the attribute is required)-->
<modify target="attribute.name" name=" SYMBOL" value=" COMP_PROPERTY " />
<!-- modification of an existing attribute named SYMBOL by changing its value to
COMP_PROPERTY (the name attribute is here required)-->
<modify target="attribute.value" name="SYMBOL" value=" COMP_PROPERTY " />
<!-- modification of the current class by renaming it to AC -->
<modify target="class.name" value=" AC" />
<!-- modification of the class named RESISTOR by renaming it to AC. If no name
is specified any class will be renamed to AC when this instruction will be
executed -->
<modify target="class.name" name="Resistor" value=" AC" />
<!-- modification of the class named RESISTOR by renaming it to AC using a class
test -->
<class name=" Resistor" /> <!--modification of the current class by renaming it to AC ?
<modify target= class.name value= AC /> -->
<class />
<!-- modification of special attribute part.number to the value 123-->
<modify target="part.number" value="123" />
<!-- modification of special attribute part.delete to value true -->
<modify target="part.delete" value="true" />
set
general syntax <set target="targetname" name="regexp" value="regexp" />
description Sets an attribute to a value if exists, if not adds the attribute and sets the value then.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
attributes Name Type Use Default Annotation
ENOVIA Collaborative Design – Administrator’s Guide 73
target xs:string required The target on which the type of the operation is executed.
Valid values are:
attribute: defines an attribute type
name xs:string required Defines the new name of the target. The value can be either a string or any Regular Expression.
value xs:string required Defines the new value of the target. The value can be either a string or any Regular Expression.
examples <!-- sets a new attribute named SYMBOL with value 1234 if it does not exist
else the value of the attribute is changed to the specified one -->
<set target="attribute" name="SYMBOL" value="1234" />
setSpecialAttribute
general syntax <set name="regexp" value="regexp" />
description Sets a special attribute to a value if exists, if not adds the special attribute and sets the value then.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
attributes Name Type Use Default Annotation
name xs:string required Defines the new name of the target. The value can be either
a string or any Regular Expression.
value xs:string required Defines the new value of the target. The value can be either a string or any Regular Expression.
examples <!-- sets a new attribute named SYMBOL with value 1234 if it does not exist
else the value of the attribute is changed to the specified one -->
<setSpecialAttrbute name=" part.interface.name" value="Interface Name" />
remove
general syntax <remove target="targetname" name="regexp"/>
description Removes an attribute from the attribute list.
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
attributes Name Type Use Default Annotation
target xs:string required The target on which the type of operation is executed.
Valid values are:
attribute: defines an attribute type
name xs:string required The name of the ‘target’ to remove.
examples <!-- removes the attribute named SYMBOL -->
<remove target="attribute" name="SYMBOL" />
removeSpecialAttribute
general syntax <removeSpecialAttribute target="targetname" name="regexp"/>
description Removes an special attribute from the special attribute list.
74 ENOVIA Collaborative Design – Administrator’s Guide
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
attributes Name Type Use Default Annotation
target xs:string required The target on which the type of operation is executed.
Valid values are:
attribute: defines an attribute type
name xs:string required The name of the ‘target’ to remove.
examples <!-- removes the special attribute named part.interface.name -->
<removeSpecialAttribute target="attribute" name="part.interface.name" />
concatAttribute
general syntax <concatAttribute target="targetname" name="regexp"
value="attributelist" separator="separatorstring"
[maxLengt="maxlength"
defaultValueForNotExistent="attributelist"] />
description Sets an attribute value created from values of the attributes in the attributeList separated by the given
separator. Each attribute has to be surrounded by a single quote ('). If maximum length defined, the value will
be cropped to the maxLength. If an attribute from the list does not exist the defaultValueForNotExistent
will be used. If the defaultValueForNotExistent is not defined, the not found attribute will be ignored (also
the separator will be not added).
used by namespace, define, useref, alternatives, test, attribute, specialAttribute, attributeExists, class, group,
type, duplicate
attributes Name Type Use Default Annotation
target xs:string required
The target on which the type of operation is executed.
Valid values are:
attribute: defines an attribute type
name xs:string required
The name of the target to set. The value can be either a string or any Regular Expression.
value xs:string required
List of attribute names (each in single quotes (‘) to be concatenated.
separator xs:string required
The string to use to separate the entries of the value.
maxLength xs:nonNegativeInteger optional
The maximum length of the value. If the concatenated (inclusive separators) is longer than the max value it will be cut to maximum length.
defaultValu
eForNotExi
stent
xs:string optional
This value will be used if an attribute from the attribute list does not exists in the component. If not set those attributes will be ignored (inclusive separator).
examples <!-- concatenates the attributes PART_NAME and VALUE separated by | to value of
the DESCRIPTION attribute. If the concatenated value has more than 20 it
will be croped to 20 characters. If for e.g. no VALUE attribute exists a
? will be used instead.
- PART_NAME=res, VALUE=100 -> DESCRIPTION=res|100
ENOVIA Collaborative Design – Administrator’s Guide 75
- PART_NAME=myNewPart, <no value attribute> -> DESCRIPTION=myNewPart|?
-->
<concatAttribute target="attribute"
name="DESCRIPTION"
value="PART_NAMEVALUE"
separator="|"
maxLength="10"
defaultValueForNotExistent="? />
76 ENOVIA Collaborative Design – Administrator’s Guide
Library Central Mapping Configuration The figure below shows the Part Famalies under ENOVIA Library.
Figure 46 Part Families in Library Central
Upload of Parts A part in the ECAD library can be mapped to the Part Family in ENOVIA using the following config.
<?xml version="1.0" encoding="UTF-8"?>
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd"
version="1.0"> <namespace>
<modify value="description" name="DESCR" target="attribute.name"/>
<class value="ECAD_IC">
<removeSpecialAttribute target="attribute" name="class.name"/>
<setSpecialAttribute value="ASIC" name="part.interface.name"/> </class>
</namespace>
</pemapping>
In the above config, all parts coming from the ECAD library “ECAD_IC” will be upload to part families namely
“ASIC” in ENOVIA.
Download of Parts A part in ENOVIA which is storted in a Part Family can be mapped to ECAD Library using the following
config.
<?xml version="1.0" encoding="UTF-8"?>
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd" version="1.0">
<namespace>
<modify name="ECADVALUE" value="VALUE" target="attribute.name" />
<modify name="description" value="DESCR" target="attribute.name" />
<specialAttribute value="DIODE" name="part.interface.name">
<modify value="ECAD_DIODE1" target="class.name" /> </specialAttribute>
</namespace>
</pemapping>
In the above config, all parts coming from the ENOVIA Part Family “DIODE” will be download to ECAD
libraries namely “ECAD_DIODE1”.
ENOVIA Collaborative Design – Administrator’s Guide 77
Multiclassification The user can use Library Central configuration to multiclasify the parts. The multiclassification is supported
during upload of parts from ECAD libray to ENOVIA and vice versa.
Upload of Parts A part from ECAD Library can be classified into more than one part family in ENOVIA. This can be done using
the following example config.
Example 1
<?xml version="1.0" encoding="UTF-8"?>
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd"
version="1.0"> <namespace>
<modify value="description" name="DESCR" target="attribute.name"/>
<class value="ECAD_IC">
<removeSpecialAttribute target="attribute" name="class.name"/>
<setSpecialAttribute value="ASIC|DIODE" name="part.interface.name"/> </class>
</namespace>
</pemapping>
In the above config, all parts coming from the ECAD library “ECAD_IC” will be multiclassified into two part
families namely “ASIC and DIODE” in ENOVIA.
Example 2
<?xml version="1.0" encoding="UTF-8"?>
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd"
version="1.0">
<namespace>
<class value="als">
<modify value="Part" target="class.name"/>
<removeSpecialAttribute target="attribute" name="class.name"/>
<setSpecialAttribute value="ALS|ALS TEST" name="part.interface.name"/>
<attribute name="SymCount" value="1">
<specialAttribute name="part.interface.name" value="(ALS)([|])(ALS.*)"
regexpid="v">
<setSpecialAttribute value="${v.value[0]}|C" name="part.interface.name"/>
</specialAttribute>
</attribute>
</class>
<modify value="Part Name" name="Part_Name" target="attribute.name"/>
<modify value="Path" name="Path" target="attribute.name"/>
<modify value="Tkl" name="Tkl" target="attribute.name"/>
<modify value="Symbol" name="SymCount" target="attribute.name"/>
</namespace>
</pemapping>
In the above config, all parts coming from the ECAD library “als” will be multiclassified into two part families
namely “ALS and ALS TEST” in ENOVIA. Later an attribute check is performed. If the attribute “SymCount”
with value “1” exists then we also append parts to the ENOVIA part family “C”. Hence the parts are
multiclassified into three part families in ENOVIA.
78 ENOVIA Collaborative Design – Administrator’s Guide
Download of Parts A part from ENOVIA can be classified into more than one ECAD Library. This can be done using the following
example config.
<?xml version="1.0" encoding="UTF-8"?>
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd" version="1.0">
<namespace>
<modify name="ECADVALUE" value="VALUE" target="attribute.name" />
<modify name="description" value="DESCR" target="attribute.name" />
<specialAttribute value="DIODE" name="part.interface.name">
<modify value="ECAD_DIODE1" target="class.name" /> </specialAttribute>
<duplicate>
<specialAttribute value="DIODE" name="part.interface.name">
<modify value="ECAD_DIODE2" target="class.name" /> </specialAttribute>
</duplicate>
</namespace>
</pemapping>
In the above config, all parts coming from the ENOVIA Part Family “DIODE” will be multiclassified into two
ECAD libraries namely “ECAD_DIODE1 and ECAD_DIODE2..
ENOVIA Collaborative Design – Administrator’s Guide 79
Log configuration ENOVIA uses log4j for logging. The mapping layer uses a log4j XML file to configure its logging. Per default
settings of the application are used for Component Data Management (CDM) logging. The file configuring the
logging for the CDM can be found in <ENOVIA_home>/data/CDM.log4jxml
The sample configuration bellow, defines a file appender “CDM_APPENDER” which writes the log into a file
(named CDM.log, located in the ENOVIAs user home directory. There are also absolute and relative paths to
this directory possible). Only this appender will be handled in this specific way. The size of the file will be
maximum 1024 KB (this can be configured in parameter MaxFileSize within of appender). When the size is
reached, the file will be renamed to CDM.log1 and the CDM.log will be cleaned. If CDM.log1 already exists it
will be renamed to CDM.log2 and if this exists renamed to CDM.log3 first. The number of the backups can be
set in parameter MaxBackupIndex of the appender.
The mapping layer defines its own loggers.
The main logger is com.pe_gmbh.pdmappsuite.components.Configuration.
All other loggers inherit the settings and appenders of it per default, if nothing else specified.
The logger in the example uses log level INFO and logs in the file. The additivity of the logger is set to false
which means that the logger will not inherit the settings from the application, so the logging will only occur in
the defined file appender. When setting this option to true (which is the default setting) the log of mapping layer
would be also written to the application log.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<!-- this appender is specially handled by the CDM feature -->
<appender name="CDM_APPENDER" class="org.apache.log4j.RollingFileAppender">
<!-- the size of the log file before truncated -->
<param name="MaxFileSize" value="1MB" />
<!-- the number of backup files where logs are moved to when the main file size reached-->
<param name="MaxBackupIndex" value="3" />
<!-- if to append to existing log or clean log before start logging -->
<param name="Append" value="false" />
<!-- the relative path of the file to log into. The file will be written relative
to the user home directory of the Framework.
If not specified CDM.log will be used. -->
<param name="file" value="CDM.log" />
<!-- defines the layout of the log entries -->
<layout class="com.pe_gmbh.log.ExtendedPatternLayout">
<param name="ConversionPattern"
value="[%-5p] %d{dd-MM-yyyy HH:mm:ss} [%-32.32c{3}] %m%n" />
<!-- The _file_ property (containing the location of the log file) still needs
programmatic configuration by application.
Leaving this off is only possible if the configurator does configure unattached
appenders, but without activating its options
(like the ExtendedDOMConfigurator does, in contrast to PropertyConfigurator or
DOMConfigurator).
-->
</layout>
</appender>
<!-- Sets the properties for the configuration logger of the CDM (all other logger e.g. of
the instructions use this settings, if nothing else configured for them)
If additivity true, the logger uses also logging settings of the ENOVIA, e.g.
logging into the ENOVIA log file. Else only own settings as the CDM_APPENDER are
used. -->
<logger name="com.pe_gmbh.pdmappsuite.components.Configuration" additivity="false">
<!-- defines the log level of the logger
(possible are off, error, warn, info, debug or trace ) -->
<level value="info"/>
</logger>
Each instruction in the mapping layer has its own logger.
Names the loggers of instructions:
80 ENOVIA Collaborative Design – Administrator’s Guide
- Test:
com.pe_gmbh.pdmappsuite.components.Configuration.Instructions.Test.<instructionname>
e.g. com.pe_gmbh.pdmappsuite.components.Configuration.Instructions.Test.class
- Processing Instructions, Operations (except pemapping):
com.pe_gmbh.pdmappsuite.components.Configuration.Instructions.Operation.<instructionname>
e.g. com.pe_gmbh.pdmappsuite.components.Configuration.Instructions.Operation.alternatives
e.g. com.pe_gmbh.pdmappsuite.components.Configuration.Instructions.Operation.modify
- pemapping:
com.pe_gmbh.pdmappsuite.components.Configuration.Instructions.pemapping
Please pay attention while configuring the log level "error" in the mapping configuration. If the log level is set to “error” and an error is found, an error dialog comes up and displays the configured error message. The mapping process is then blocked. Only when the user clicks the OK button continues the mapping process. The error dialog is also displayed in the background synchronization!
To get more information about Log4j please refer to:
http://logging.apache.org/log4j/ (Log4J homepage)
http://logging.apache.org/log4j/1.2/manual.html (The chapter Configuration contains more information how to
use property file to configure the logging.)
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html (Documentation Pattern Layout
with the information how to define a pattern.)
ENOVIA Collaborative Design – Administrator’s Guide 81
Background Synchronization
The Component Data Management can also be used as a background synchronization process. This is extremely
helpful when the ECAD library or the parts in ENOVIA should be synchronized on a frequent base without any
user interaction.
Typically such synchronization will be done once a day to make sure, that the latest changes go into the ECAD
Library or into ENOVIA.
The background process will connect to ENOVIA by the use of webservices. These webservices needs to be
enabled first in ENOVIA and in addition require some manual steps.
Background Synchronization Setup
The Background Synchronization Setup should be done in the UI mode, as it provides easy access to the settings.
To start the UI mode, simply launch the binary for setting up the Preferences for the Background
Synchronization.
It can be found in: $Integration_Installation_Directory/bin/ENOVIACDMSyncSetup
The Preferences will show up and will let you do all the required changes.
For the General Settings in the Preferences please refer to the User Manual for a detailed explanation.
Figure 47 ENOVIA Web Services Setup
82 ENOVIA Collaborative Design – Administrator’s Guide
Connection Settings Server Settings
Application Server - The host name and the port number of the application server
(e.g. http://server:8001/enovia).
enable debugging - This enables the ENOVIA debugging.
Language
- The language that the DEC engine uses to provide user messages
Charset - The charset the DEC engine uses
Override the system default
browser - The checkbox “Override the system default browser” overrides the systems
default browser (e.g. using Mozilla Firefox instead of Microsoft Internet
Explorer).
Browser Executable - The user can specify the browser executable for overriding the default system
browser
User Settings
User - Name of the ENOVIA user
Password - Password for ENOVIA user
Save Password - Save login password from user
AutoConnect - Enabling the AutoConnect check box will force the application to connect to the
plug-ins automatically when the application is started. The AutoConnect check
box is enabled only when the Save Password check box is checked
Important note: Enabling this AutoConnect Checkbox is recommended when the Background
Synchronization mode should be used. In this case, also a valid user and
password should be provided
ENOVIA Collaborative Design – Administrator’s Guide 83
Background Synchronization Execution The background synchronization process itself is executed by running the “ENOVIACDMSync” and applying
additional parameters
The following parameters need to be passed over to the binary:
-proj $libraryproject$ This defined the library project to be used. The full qualified path to the
Library Manager Project File (.lmc) has to be provided
-task CDMBackground This is the task which executes the process
-mode enovia|eda This is the direction which is used:
- enovia: synchronizes the parts from ENOVIA to the ECAD Library
- eda: synchronizes the parts from the ECAD Library to ENOVIA
-edaselection $edaselection$ This is the name of the file which contains the predefined selection of eda
classes to be synchronized. Only state the name of the file.
If this argument is not passed, then automatically the last selection
(CDM_Preselection_EDA_lastSelection) is used
-pdmselection $pdmselection$ This is the name of the file which contains the predefined selection of
ENOVIA type classes to be synchronized. Only state the name of the file
If this argument is not passed, then automatically the last selection
(CDM_Preselection_PDM_lastSelection) is used
-task end This task is required to shut down the synchronization process at the end.
Example:
ENOVIACDMSync.exe –proj /designs/dxdatabook/library.lmc –task
CDMBackground –mode enovia –edaselection CDM_Preselection_EDA_ResOnly
–pdmselection CDM_Preselection_PDM_AllParts –task end
Publishing Web Services for Background Synchronization The Web Services used by the Background Synchronization needs to be published first.
To publish these web services, verify that the environment variables required to publish web services,
MX_SERVICE_PATH and MX_SERVICE_ADMIN, are set.
For details, see “Working with Web Services” in the Application Development Guide. After these
variables are set, run the following MQL commands with the application server running:
set context user creator;
compile prog com.pe_gmbh.bommanagement.CallerWS force update;
84 ENOVIA Collaborative Design – Administrator’s Guide
CDM Configuration Object in ENOVIA This feature provides ability to load CDM settings directly from ENOVIA. Configuration of the CDM inside of
ENOVIA allows a general CDM Configuration defined and controlled by an administrator. The user will still be
able to store some of the user settings, but the administrator defines these settings.
The CDM Configuration objects are stored in ENOVIA. The Active CDM C/O (Configuration Object) is defined
trough GCO Attribute (Type|Name|Revision). Also the available CDM C/O are defined through GCO Attribute
(T|N|R separated by “@”).
There is a support for role based access (available roles: Standard/Power/Admin Users). The CDM settings can
be read-only or modifiable in PDMbridge based on access permission. There is only one active CDM C/O at a
time, defined per GCO but there can be more defined and switched in the GCO.
The CDM C/O is received during the Login Process using a JPO call, where the response in XML returns all
available settings for the current/selected CDM C/O. As this is received at the Login, the changes done directly
on the server take effect on the client after the next Login.
After the CDM C/O is created a BMO template is generated. The values set on the server become the default
values in the template. Then the setting is loaded. If an attribute is modifiable by the user, the value set by the
user is merged into the setting. Now the setting can be requested by a Task or by the Preferences
Figure 48 CDM C/O in ENOVIA
ENOVIA CDM Settings Display Name Attribute Name Default Value
Add Components in
ENOVIA
ECADInteg-CDMConfiguration-
AddComponents
{DEFAULT} false|true
Include ENOVIA
subtypes
ECADInteg-CDMConfiguration-
IncludeSubtypes
{DEFAULT} false|true
Use ENOVIA
modified date
ECADInteg-CDMConfiguration-
UseModifiedDate
{DEFAULT} false|true
Synchronize
components
modified within x
days
ECADInteg-CDMConfiguration-
UseModifiedDateDayCount
{DEFAULT}5
Engineering Central
ENOVIA data
definition
ECADInteg-CDMConfiguration-
DataDefinitionForm-ENG
{DEFAULT}ECAD-
ComponentDataManagementUpdateENOVIAForm
Component
Existence Check
ECADInteg-CDMConfiguration-
ComponentExistenceCheck-ENG
{DEFAULT}ECAD-ComponentDataManagement-
FindLatestRev
Library Central
ENOVIA data ECADInteg-CDMConfiguration- {DEFAULT}ECAD-
ENOVIA Collaborative Design – Administrator’s Guide 85
definition DataDefinitionForm-LBC ComponentDataManagementUpdateENOVIAForm-
LibraryCentral
Component
Existence Check
ECADInteg-CDMConfiguration-
ComponentExistenceCheck-LBC
{DEFAULT}ECAD-ComponentDataManagement-
FindLatestRev
Add Components in ENOVIA
This setting allows the creation of new component in ENOVIA if they do not exist.
Include ENOVIA subtypes
Selecting this setting, automatically considers all the subtypes of the selected types. If unchecked only the
selected type is considered and the subtypes are left out.
Use ENOVIA modified date
Defines the number days since the components must have been to become considered for synchronization.
Enabling this setting enables the “Synchronize components modified within x days” textfield.
Synchronize components modified within x days
The user can specify the number of days for the components needed to be considered for synchronization.
Engineering Central
ENOVIA data definition
Select the Webform used to update the components for Component Data Management in ENOVIA or retrieve
the data from ENOVIA.
Component Existence Check
Select the Webform used to verify if a component does exist in ENOVIA.
Library Central
ENOVIA data definition
Select the Webform used to update the components for Component Data Management in ENOVIA or retrieve
the data from ENOVIA.
Component Existence Check
Select the Webform used to verify if a component does exist in ENOVIA
86 ENOVIA Collaborative Design – Administrator’s Guide
Syntax of the attributes in ENOVIA Dedicated value prefix to define if the attribute is modifiable in the client side or not
o {ENFORCED}
value is not changeable by the user
UI Component is disabled
modifyAccess attribute == false
o {DEFAULT}
value is changeabe by user
UI component is enabled
modifyAccess attribute == true
If no prefix is defined {DEFAULT} is assumed
ValueClass
o valueClass attribute is used to define the type of attribute
String
Boolean
Integer
Float
o As the Matrix attribute has to be always a string (because of {ENFORCED}/{DEFAULT}
information), the definition of the value class is based on a definition lookup.
o Various Sets defines the class to which the attributes belong to.
o If attribute name is not found in any set, a value class “string” is assumed.
Attribute Values
o The first value will always be the selection (the value which is selected)
o Additional values will be separated by a pipe “|”character
Examples:
o Boolean
{DEFAULT}false|true provide a selectable checkbox which is unchecked
o String
{DEFAULT}table1|table2|table3 provide a drop down box with table1
selected
o Integer/Float (only numbers are allowed)
{DEFAULT}500 provide field with number 500 Modifiable
{ENFORCED}5.0 provide field with number 5.0 NOT Modifiable
ENOVIA Collaborative Design – Administrator’s Guide 87
CDM Configuration Editor In CSE
CDM Configuration Editor is used to create CDM Configuration objects in ENOVIA directly from the
Integration. The CDM settings can be read-only or modifiable in the client based on access permission. Running
the task, opens up the dialog as shown below.
Figure 49 CDM Configuration Editor
The preference dialog shows all the available CDM Configuration Objects in ENOVIA for the current
integration. The user having full access rights can perform the following
Default Selection
Selecting this checkbox makes the available setting as default but the user can modify it at run time in the
preferences.
Enforced
Selecting this checkbox enforces the setting and the user will not be able to modify it from the preferences as
these enforced settings are disabled for modification.
Create a New CDM Configuration Object
The user can create New CDM C/O object by clicking on this button. This brings up a Textfield where the user
needs to specify a configuration name. If the user enters a name which already exists, a warning text at the top of
the textfield is shown stating “Configuration exists already” and the Ok button is disabled
Figure 50 Create New: Existing name
The Administrator needs to grant access to the user in order to run CDM Configuration Editor. This
could be set in the server side JPO “Definitions_mxJPO”
88 ENOVIA Collaborative Design – Administrator’s Guide
Opon entering a different name, the warning message does out show up and the ok button is enabled. Clicking on
the Ok button, the new CDM configuration object will appear in the tree on the left pane and the corresponding
attributes could be edited from the right pane.
Figure 51 Create New: New name
User needs to click on the Save button to create the CDM Configuration object in ENOVIA. The configuration
object is not created in ENOVIA until the user explicitly clicks on the Save button. The user can edit the CDM
settings anytime but the changes are committed to ENOVIA only if it is saved.
Duplicate and Edit a CDM Configuration Object
This is very similar to Create New but the default settings are set from the CDM Configuration Object
duplicated. This action will bring up a textfield where the user can apply a new name. Upon providing a new
name, the new CDM configuration object will appear in the tree on the left pane and the corresponding attributes
could be edited from the right pane.
Setting any CDM Configuration Object as the default one in ENOVIA
The user can set the created CDM configuration object as the default one in ENOVIA using this option. The
selected CDM configuration object will be used to update the entry in the GCO attribute which defines the
default CDM configuration object. This configuration object will be available for the users and will be set as the
starting point for new CDM configuration objects.
Edit Existing CDM Configuration Object
The user can modify the settings of any existing CDM configuration object directly from the editor. The user can
select the Configuration object from the left pane and modify the corresponding settings and upon saving it, the
changes are committed to ENOVIA.
Save the changes back to ENOVIA
This save button commits all the modifications done in the CDM configuration object to ENOVIA. The save
button brings up a dialog which shows all the CDM configuration objects which have been modified. The user
needs to select the configuration object by selecting the corresponding checkbox and click Ok button to save the
changes in ENOVIA.
Figure 52 Create New: Save
ENOVIA Collaborative Design – Administrator’s Guide 89
Appendix
Regular Expressions The mapping configuration uses the regular expression from Java.
For detail explanations of the Regular Expression please look into the following links:
http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
http://download.oracle.com/javase/tutorial/essential/regex/index.html
90 ENOVIA Collaborative Design – Administrator’s Guide
CDM Mapping Configuration Example <?xml version="1.0" encoding="UTF-8"?>
<pemapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="mapping-schema.xsd" version="1.0">
<!-- Import of a additional mapping file with the instructions which will be executed
before the instructions of this file. -->
<import name="importedSample" path="importedSample.xml"/>
<!-- The namespace containing the instructions of this file. -->
<namespace>
<!-- Alternatives block. The first instruction returning true will be executed
and the following will be skipped. The block returns false if none of the
instructions returned true. -->
<alternatives>
<!-- Tests the current component if it is of the class 'als' -->
<class value="als">
<!-- (Only executed if the test above returns true.) Modifies
the class name of the current component to 'ECAD ALS'. -->
<modify value="ECAD ALS" target="class.name"/>
</class>
<!-- (Only executed if the test above returned false.) Tests the current
component if it is of the class 'asic'. -->
<class value="asic">
<!-- modifies the class name of the current component to
'ECAD ASIC' -->
<modify value="ECAD ASIC" target="class.name"/>
</class>
<!-- (Only executed if the tests above returned false.) Executes the
define block 'defineBlock1' from importedSample. -->
<useref refid="importedSample::defineBlock1"/>
<!-- If none of the above tests returns true the component will be
ignored, the execution on the current component stops. -->
<ignore/>
</alternatives>
<!-- This complicated example shows how to reference within of a imported
file.-->
<!-- Removes the attribute with the name defined in the name attribute of the
instruction with the regexpid='OLD_PART_NUMBER_REFERECE'
in importedSample (it will remove the attribute 'OLD_PART_NUMBER'.)-->
<remove name="${importedSample::OLD_PART_NUMBER_REFERECE.name}"
target="attribute"/>
<!-- Changes the name of the attribute 'Part_Name' to 'ECAD Part Name'. -->
<modify target="attribute.name" name="Part_Name" value="ECAD Part Name"/>
<!-- Tests if a attribute 'Part_Label' with any value exists. -->
<attribute name="Part_Label" value="(.*)" regexpid="PART_LABEL_ATTRIBUTE">
<!-- Changes the value of the attribute 'Part Label' to 'ECAD ' + value
of the attribute e.g. if Part_Label = Resistor 1 =>
Part_Label = ECAD Resistor 1 (as (.*) is the matching group 1 of
the regular expression)-->
<modify target="attribute.value" name="${PART_LABEL_ATTRIBUTE.name}"
value="ECAD ${PART_LABEL_ATTRIBUTE.value[1]}"/>
</attribute>
<!-- If the attribute 'Usage' has value 'obsolete'. -->
<attribute name="Usage" value="obsolete">
<!--Mark the component to be deleted (the component will be deleted).-->
<modify target="part.delete" value="true"/>
<!-- Breaks the execution of this component, the following steps will
not be executed.-->
<break/>
</attribute>
<!-- Commits a copy of the component in the current state and continues with
instructions bellow. This means, at the end of the
instruction processing there will be two components. -->
<commit/>
<!-- Changes the part number of the component -->
<specialAttribute name="part.number" value="(.*)" regexpid="PART_NUMBER">
<modify target="part.number" value="${PART_NUMBER.value}-01"/>
</specialAttribute>
<!-- Duplicates the component (second way to duplicate a component). -->
<duplicate>
<!-- Changes the part number of the duplicated component. -->
<specialAttribute name="part.number" value="(.*)"
regexpid="PART_NUMBER">
<modify target="part.number" value="${PART_NUMBER.value}-02"/>
</specialAttribute>
<!--When executing the duplicate block, the duplicate will be commited.-->
ENOVIA Collaborative Design – Administrator’s Guide 91
</duplicate>
<!-- Adds a new attribute 'Version' with the value '1.0' (will be only added if
the attribute not exists else the old value will be not changed). -->
<add target="attribute" name="Version" value="1.0"/>
<!-- Sets a new attribute Version with the value 1.0 if attribute exists, else
create the attribute and sets the value then -->
<set target="attribute" name="" value=""/>
<!-- concatenates the attributes PART_NAME and VALUE separated by | to value of
the DESCRIPTION attribute. If the concatenated value has more than 20 it
will be croped to 20 characters. If for e.g. no VALUE attribute exists a
‘?’ will be used instead.
- PART_NAME=res, VALUE=’100’ -> DESCRIPTION=res|100
- PART_NAME=myNewPart, <no value attribute> -> DESCRIPTION=myNewPart|? -->
<concatAttribute target="attribute" name="DESCRIPTION"
value="’PART_NAME’’VALUE" separator="|" maxLength="10"
defaultValueForNotExistent="?"/>
</namespace>
<!-- import of a additional mapping file the instructions which will be executed after
the instructions of this file -->
<import name="importedSample" path="importedSample.xml"/>
</pemapping>
92 ENOVIA Collaborative Design – Administrator’s Guide
CDM Data Mapping Layer XSD Schema <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="pemapping">
<xs:annotation>
<xs:documentation>
The root node of the configuration. This is the start node. It contains the
version of the mapping file. The current version of the mapping files is 1.0.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="import" />
</xs:choice>
<xs:element ref="namespace" minOccurs="1" maxOccurs="1" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="import" />
</xs:choice>
</xs:sequence>
<xs:attribute name="version" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The version of the configuration.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="import">
<xs:annotation>
<xs:documentation>
Defines an import of a configuration of a XML file. The imported and importing
file must be ofthe same version.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the import used to address the regular expression
references. The references int he imported file can then be addressed
with syntax:
importnName::referenceName
e.g.
Allowed character set:
[p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The path of the file to import. The path can be absolute or relative
to the path of the importing file.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="namespace">
<xs:annotation>
<xs:documentation>Defines a namespace of the configuration.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
ENOVIA Collaborative Design – Administrator’s Guide 93
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="log">
<xs:annotation>
<xs:documentation>
outputs the content to the log
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="level" type="xs:string"
use="optional" default="info">
<xs:annotation>
<xs:documentation>
the log level to be used can be one of
'info','warn','debug','error','trace'
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="message" type="xs:string" use="required"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="define">
<xs:annotation>
<xs:documentation>
Defines a block which can be reused. The define block contains a set of
instructions which can be reused. The instruction useref references a define
block.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The id of the define block to use to reference the block.
Allowed character set:
[p{Alnum}\_\-] = [a-z A-Z 0-9 _ -]
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="useref">
<xs:annotation>
<xs:documentation>References a define block.</xs:documentation>
94 ENOVIA Collaborative Design – Administrator’s Guide
</xs:annotation>
<xs:complexType>
<xs:attribute name="refid" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The id of the define block to use. To reference blocks inside of the
imported configuration use format:
importedName::defineBlockName
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="alternatives">
<xs:annotation>
<xs:documentation>
Executes the first child instruction which returns true. Please note that only
processininstructions and tests can return false. An operation will always
return true. This instruction returns true if one of the alternatives returned
true, otherwise it will return false.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="duplicate">
<xs:annotation>
<xs:documentation>
Duplicates the component and executes the instructions on it. Adds the
duplicate to the list of the duplicated components before exiting the element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
</xs:complexType>
ENOVIA Collaborative Design – Administrator’s Guide 95
</xs:element>
<xs:element name="break">
<xs:annotation>
<xs:documentation>
Breaks the execution. If used within duplicate continues with the siblings of
the parent duplicate. Else breaking the execution of the component and
returning the component with the current modifications.
</xs:documentation>
</xs:annotation>
<xs:complexType />
</xs:element>
<xs:element name="commit">
<xs:annotation>
<xs:documentation>
Commits the copy of the component with the current state to the list of the
duplicated components and continues execution of the descendant instructions.
</xs:documentation>
</xs:annotation>
<xs:complexType />
</xs:element>
<xs:element name="ignore">
<xs:annotation>
<xs:documentation>
Ignores, does not add the current component and breaks the execution.
</xs:documentation>
</xs:annotation>
<xs:complexType />
</xs:element>
<xs:element name="test">
<xs:annotation>
<xs:documentation>
Is used to execute tests on a specific component. If the test matches the
condition, the return value is set to true, otherwise to false.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
<xs:attribute name="type" use="required">
<xs:annotation>
<xs:documentation>
Defines the type on which the test is executed on.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="attribute">
<xs:annotation>
<xs:documentation>
executes a test on an attribute (attribute instruction is
alias for this type)
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="specialAttribute">
<xs:annotation>
<xs:documentation>
executes a test on a special attribute
96 ENOVIA Collaborative Design – Administrator’s Guide
(specialAttribute instruction is alias for this type)
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="class">
<xs:annotation>
<xs:documentation>
executes a test on a class (class instruction is alias for
this type)
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="group">
<xs:annotation>
<xs:documentation>
executes a group on a group (group instruction is alias
for this type)
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="type">
<xs:annotation>
<xs:documentation>
executes a test on a type (type instruction is alias for
this type)
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the name of ‘type’.
The value can be either a string or any Regular Expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Defines the value of ‘name’.
The value can be either a string or any Regular Expression reference.
If the optional attribute value is omitted, then the test will
basically just execute an existence check. If the value attribute is
defined, then the test is successful if the value matches the pattern.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="regexpid" type="xs:string">
<xs:annotation>
<xs:documentation>
Defines the unique id within of the namespace to reference the test
using regular expressions.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -].
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="class">
<xs:annotation>
<xs:documentation>
Test on the class name of the component. This test is an alias instruction for
test and test is an alias instruction for specialAttribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
ENOVIA Collaborative Design – Administrator’s Guide 97
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the value of ‘name’.
The value can be either a string or any Regular Expression reference.
If the optional attribute value is omitted, then the test will
basically just execute an existence check. If the value attribute is
defined, then the test is successful if the value matches the pattern.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="regexpid" type="xs:string">
<xs:annotation>
<xs:documentation>
Defines the unique id within of the namespace to reference the test
using regular expressions.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -].
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="group">
<xs:annotation>
<xs:documentation>
Test on the group name of the component. This test is an alias instruction for
test and This test is an alias instruction for specialAttribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the value of ‘name’.
The value can be either a string or any Regular Expression reference.
If the optional attribute value is omitted, then the test will
basically just execute an existence check. If the value attribute is
defined, then the test is successful if the value matches the pattern.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="regexpid" type="xs:string">
<xs:annotation>
98 ENOVIA Collaborative Design – Administrator’s Guide
<xs:documentation>
Defines the unique id within of the namespace to reference the test
using regular expressions.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -].
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="type">
<xs:annotation>
<xs:documentation>
Test on the type name of the component. This test is an alias instruction for
test and This test is an alias instruction for specialAttribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the value of ‘name’.
The value can be either a string or any Regular Expression reference.
If the optional attribute value is omitted, then the test will
basically just execute an existence check. If the value attribute is
defined, then the test is successful if the value matches the pattern.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="regexpid" type="xs:string">
<xs:annotation>
<xs:documentation>
Defines the unique id within of the namespace to reference the test
using regular expressions.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -].
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="attribute">
<xs:annotation>
<xs:documentation>
Tests if an attribute exists. If optional value defined matches if the
attribute has the given value. For each positive matching attribute all child
instructions of this node will be executed. This test is an alias instruction
for test.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
ENOVIA Collaborative Design – Administrator’s Guide 99
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the name of attribute.
The value can be either a string or any Regular Expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Defines the value of ‘name’.
The value can be either a string or any Regular Expression reference.
If the optional attribute value is omitted, then the test will
basically just execute an existence check. If the value attribute is
defined, then the test is successful if the value matches the pattern.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="regexpid" type="xs:string">
<xs:annotation>
<xs:documentation>
Defines the unique id within of the namespace to reference the test
using regular expressions.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -].
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="specialAttribute">
<xs:annotation>
<xs:documentation>
Tests if a special attribute exists. If optional value defined matches if the
attribute has the given value. For each positive matching special attribute
all child instructions of this node will be executed. This test is an alias
instruction for test.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="log" />
<xs:element ref="define" />
<xs:element ref="useref" />
<xs:element ref="alternatives" />
<xs:element ref="break" />
<xs:element ref="commit" />
<xs:element ref="ignore" />
<xs:element ref="duplicate" />
<xs:element ref="class" />
<xs:element ref="attribute" />
<xs:element ref="add" />
<xs:element ref="modify" />
<xs:element ref="remove" />
<xs:element ref="set" />
<xs:element ref="setSpecialAttribute" />
<xs:element ref="concatAttribute" />
<xs:element ref="specialAttribute" />
<xs:element ref="group" />
<xs:element ref="type" />
<xs:element ref="test" />
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required">
100 ENOVIA Collaborative Design – Administrator’s Guide
<xs:annotation>
<xs:documentation>
Defines the name of attribute.
The value can be either a string or any Regular Expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Defines the value of ‘name’.
The value can be either a string or any Regular Expression. If
the optional attribute value is omitted, then the test
will basically just execute an existence check. If the
value attribute is defined, then the test is
successful if the value matches the pattern.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="regexpid" type="xs:string">
<xs:annotation>
<xs:documentation>
Defines the unique id within of the namespace to reference the test
using regular expressions.
Allowed character set: [p{Alnum}\_\-] = [a-z A-Z 0-9 _ -].
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="add">
<xs:annotation>
<xs:documentation>
Adds a new attribute with given value to the component. The value is optional,
if not defined it will be set to “null”. The attribute is only added if it not
exists. Else add will be silently omitted.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence />
<xs:attribute name="target" use="required">
<xs:annotation>
<xs:documentation>
The target defining the type of the operation to execute
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="attribute">
<xs:annotation>
<xs:documentation>to add a attribute</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the new name of the target. The value can be either a string
or any Regular Expression reference.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Defines the new value of the target. The value can be either a string
or any Regular Expression. Defaults to null if omitted.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="modify">
<xs:annotation>
<xs:documentation>
Modifies a name or value of the given target. The target can be a special
ENOVIA Collaborative Design – Administrator’s Guide 101
attribute value, an attribute or an attribute value.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="target" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="attribute.name">
<xs:annotation>
<xs:documentation>
to modify the attribute name
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="attribute.value">
<xs:annotation>
<xs:documentation>
to modify the attribute value
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="class.name">
<xs:annotation>
<xs:documentation>to modify the class name</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="group.name">
<xs:annotation>
<xs:documentation>to modify the group name</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="type.name">
<xs:annotation>
<xs:documentation>to modify the type name</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="part.number">
<xs:annotation>
<xs:documentation>
to modify a special attribute part.number containing the
part number of the component
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="part.delete">
<xs:annotation>
<xs:documentation>
to modify a special attribute marking the part to delete
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Attribute defining the new value of the target selector. The value can
be either a string or any Regular Expression reference.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>
Attribute defining the name of the target itself. The value can be
either a string or any Regular Expression. Optional for class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="remove">
<xs:annotation>
<xs:documentation>
Removes a attribute from the attribute list.
</xs:documentation>
102 ENOVIA Collaborative Design – Administrator’s Guide
</xs:annotation>
<xs:complexType>
<xs:attribute name="target" use="required">
<xs:annotation>
<xs:documentation>
The target on which the type of the operation is executed.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="attribute">
<xs:annotation>
<xs:documentation>
to remove a attribute
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the 'target' to remove.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="set">
<xs:annotation>
<xs:documentation>
Sets an attribute to a value if exists, if not adds the attribute
and sets the value then.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="target" use="required">
<xs:annotation>
<xs:documentation>
The target on which the type of the operation is executed.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="attribute">
<xs:annotation>
<xs:documentation>
to set an attribute
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the 'target' to set.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The value of the 'target' with the given name to set.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="setSpecialAttribute">
<xs:annotation>
<xs:documentation>
Sets a attribute to a value if exists, if not adds
the attribute and sets the value then.
</xs:documentation>
</xs:annotation>
ENOVIA Collaborative Design – Administrator’s Guide 103
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the 'target' to set.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The value of the 'target' with the given name to set.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="concatAttribute">
<xs:annotation>
<xs:documentation>
Sets an attribute value created from values of the attributes in the
attributeList separated by the given separator. Each attribute has to be
surrounded by a single quote ('). If maximum length defined, the value
will be cropped to the maxLength. If an attribute from the list does not
exist the defaultValueForNotExistent will be used. If the
defaultValueForNotExistent is not defined, the not found attribute
will be ignored (also the separator will be not added).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="target" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="attribute" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the target to set. The value can be either a string or any
Regular Expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
List of attribute names (each in single quotes (‘) to be concatenated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="separator" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The string to use to separate the entries of the value.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxLength" type="xs:nonNegativeInteger" use="optional">
<xs:annotation>
<xs:documentation>
The maximum length of the value. If the concatenated (inclusive
separators) is longer thanthe max value it will be cut to maximum
length.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultValueForNotExistent" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
This value will be used if an attribute from the attribute list does
not exists in the component. If not set those attributes will be
ignored (inclusive separator).
</xs:documentation>
</xs:annotation>
</xs:attribute>
104 ENOVIA Collaborative Design – Administrator’s Guide
</xs:complexType>
</xs:element>
</xs:schema>
Recommended