msc enterprise mvision

152
MSC Enterprise Mvision Integrated Client Installation and Implementation Guide

Upload: joshkuhlmann

Post on 16-Nov-2014

132 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MSC Enterprise Mvision

MSC Enterprise Mvision

Integrated Client Installation and Implementation Guide

Page 2: MSC Enterprise Mvision

CorporateMSC.Software Corporation2 MacArthur PlaceSanta Ana, CA 92707 USATelephone: (800) 345-2078Fax: (714) 784-4056

EuropeMSC.Software GmbHAm Moosfeld 1381829 Munich, GermanyTelephone: (49) (89) 43 19 87 0Fax: (49) (89) 43 61 71 6

Asia PacificMSC.Software Japan Ltd.Entsuji-Gadelius Building2-39, Akasaka 5-chomeMinato-ku, Tokyo 107-0052, JapanTelephone: (81) (3) 3505 0266Fax: (81) (3) 3505 0914

Worldwide Webwww.mscsoftware.com

Disclaimer

MSC.Software Corporation reserves the right to make changes in specifications and other information contained in this document without prior notice.

The concepts, methods, and examples presented in this text are for illustrative and educational purposes only, and are not intended to be exhaustive or to apply to any particular engineering problem or design. MSC.Software Corporation assumes no liability or responsibility to any person or company for direct or indirect damages resulting from the use of any information contained herein.

User Documentation: Copyright 2008 MSC.Software Corporation.. Printed in U.S.A. All Rights Reserved.

This notice shall be marked on any reproduction of this documentation, in whole or in part. Any reproduction or distribution of this document, in whole or in part, without the prior written consent of MSC.Software Corporation is prohibited.

The MSC.Software logo, MSC, Enterprise Mvision, Mvision and Patran are registered trademarks of trademarks of the MSC.Software Corporation or its subsidiaries in the United States and/or other countries.

NASTRAN is a registered trademark of the National Aeronautics and Space Administration. MSC Nastran is an enhanced proprietary version developed and maintained by MSC.Software Corporation. All other product names, brand names, or trademarks belong to their respective owners.

Publication Date: October 29, 2008

MVEN*V2008R1*Z*Z*Z*DC-OPS-INT

Page 3: MSC Enterprise Mvision

C O N T E N T SIntegrated Client Installation and Implementation Guide

About This Guide � Overview, 8

� What You Need to Know, 8

� Organization of the Guide, 8

� Conventions, 9

� MSC.EMV Integrated Client Terminology, 10

� Related Documentation, 10

1Introducing the MSC EMV Integrated Client

� MSC Mvision Materials Information System Products, 12

� Deliverables, 15

2Installation Preparation and Overview

� Installation Preparation and Overview, 18

� Technical Support, 21

3Installing the MSC EMV Integrated Client

� Overview, 24

� Installing on Windows, 25

� Installing on UNIX and Linux, 26

� Client-Side Properties File, 28

� Testing the Installation, 31

4Configuring an EMV Server for the MSC EMV Integrated Client

� Overview, 34

� Server-Side Configuration File, 34

� Defining Login Labels for Java GUI, 35

Page 4: MSC Enterprise Mvision

� Defining Server Name Text, 36

� Specifying Attributes to Use in the List-Pick Algorithm, 36

� Providing Templates/Mappings for Data Sources Required By Applications, 37

� Specifying Default Category of a Data Source for a Particular Template, 37

� Specifying Identifier Attribute, 38

� SSL Encryption of the Integrated Client, 38

5Using the MSC EMV Integrated Client

� Overview, 40

� Using the MSC EMV Integrated Client for C++, 40

� Using the MSC EMV Integrated Client for Java, 41

� Example Applications with Code, 42

� Compiling and Linking Applications, 61

� API Documentation, 61

� Understanding the API Classes, 63

6The MSC EMV Integrated Client GUI

� Overview of Integrated Client GUI, 72

� GUI Components, 73

� GUI Preference Settings, 77

AIntegrating an Application with EMV Using the Integrated Client

� Overview, 80

� Creating the Type II Integration, 81

� Designing the InteIgration User Interface, 88

� Installing the Integration, 94

BContents of the Integrated Client Installation

� Contents of Installation on Microsoft Windows, 100

� Contents of Installation on UNIX, 104

Page 5: MSC Enterprise Mvision

CQuery Techniques � The Object Paradigm, 110

� Querying MSC Mvision Objects, 110

� Simple Queries, 113

� Advanced Queries, 120

Page 6: MSC Enterprise Mvision
Page 7: MSC Enterprise Mvision

About This Guide

� Overview

� What You Need to Know

� Organization of the Guide

� Conventions

� MSC.EMV Integrated Client Terminology

� Related Documentation

Page 8: MSC Enterprise Mvision

8

OverviewThis guide provides installation instructions and implementation details for the MSC Enterprise Mvision Integrated Client (Integrated Client). It is intended for users who want to use the Integrated Client to integrate applications with information from MSC Enterprise Mvision. The Integrated Client is a toolkit that allows information to be retrieved from MSC Enterprise Mvision into C++ or Java applications. The Integrated Client provides a built-in mechanism that enables applications to display a desktop graphical user interface (GUI) for the selection of materials data for inclusion into applications.

What You Need to KnowTo implement Integrated Client functionality, knowledge of the C++ and Java programming languages are required.

Organization of the GuideThis guide consists of the following chapters and appendices. General information specific to the 2008r1 release of the Integrated Client is in the chapters of the guide, while information about product-specific bindings is in the appendices.

Introducing the MSC EMV Integrated Client (Chapter 1) includes information about the MSC Mvision Materials Information system products available on your computer system and deliverables.

Installation Preparation and Overview (Chapter 2) outlines the procedures for installation and verification of MSC EMV Integrated Client software on your computer system. It is recommended that you read this chapter thoroughly to understand the procedures before proceeding with the installation.

Installing the MSC EMV Integrated Client (Chapter 3) contains complete step-by-step instructions for installation of the MSC EMV Integrated Client software product on supported platforms. The instructions are intended for first-time installations and for existing customers who are upgrading their current production environment.

Configuring an EMV Server for the MSC EMV Integrated Client (Chapter 4) contains detailed information about the additions/changes to the MSC Enterprise Mvision server that pertain to the operation of the Integrated Client.

Using the MSC EMV Integrated Client (Chapter 5) explains how to use the C++ and Java versions of the Integrated Client.

The MSC EMV Integrated Client GUI (Chapter 6) explains more about the Integrated Client GUI and its graphical components.

Page 9: MSC Enterprise Mvision

9About This Guide

Integrating an Application with EMV Using the Integrated Client (Appendix. A) explains the different patterns for integrating an application with MSC Enterprise Mvision.

Contents of the Integrated Client Installation (Appendix. B) lists the directories and files created when Integrated Client is installed.

Query Techniques (Appendix. C) explains how to query the materials databanks.

ConventionsThis Installation and Implementation Guide has many examples and references to computer commands and output. These text items are printed in a fixed pitch font called Courier. (This sentence is in Courier.)

To clarify the discussions of various topics, the following conventions have been employed throughout this Installation and Implementation Guide.

Menu Options Menu names and options are shown in bold sans serif print in mixed case (uppercase & lowercase) print.

<filenames> Filenames or information that may be unique to your installation are enclosed in chevrons < > and are shown in Courier.

user input Input required to be typed by the user is shown in bold Courier print.

return key

<cr>

The return key is not shown in all examples, but is presented <cr> in some instances. Assume that the user must press return after typing in a command or other input to the system unless instructed otherwise.

Page 10: MSC Enterprise Mvision

10

MSC Mvision TerminologyThe following is a list of MSC Mvision and computer terms frequently used in this Installation and Implementation Guide.

Related DocumentationThese listed documents are useful for understanding the MSC Enterprise Mvision system and software. The following documents are included with the MSC Enterprise Mvision software:

• MSC Enterprise Mvision User Interface Implementation Guide

• MSC Enterprise Mvision Installation and System Administration Guide

databank Collection of materials information in the MSC Mvision database format. MSC.Software sells several databanks or you can use MSC Mvision Builder to construct your own databanks.

database A generic term referring to a collection of data in an electronic format. The databanks used by MSC EMV Integrated Client are databases created for use by all MSC Mvision software products.

Motif window An interactive window composed of widgets configured in the X Window System environment.

Software Authorization Information Sheet

Lists authorization codes that enable you to run those MSC Mvision products that you have licensed. These codes are used in a procedure outlined in Chapter 3.

Customer Information Sheet

This sheet lists all of the licensed products you have from MSC.Software.

Page 11: MSC Enterprise Mvision

1 Introducing the MSC EMV Integrated Client

� MSC Mvision Materials Information System Products

� Deliverables

Page 12: MSC Enterprise Mvision

12

MSC Mvision Materials Information System ProductsThe MSC Mvision Materials Information System currently includes the following software and databank products:

MSC Mvision Software

• MSC Mvision Builder - Easy-to-use software tool enabling users to create a customized materials information system.

• MSC Mvision Evaluator - Easy-to-use standalone software to access and work with MSC-supplied or user-created materials databanks.

• MSC Enterprise Mvision - Direct access to MSC Mvision materials databanks using standard web browsers.

• Patran Materials Enterprise - Direct access to MSC Mvision materials databanks for the MSC.Patran analysis system.

• SimDesigner Materials - Direct access to MSC Mvision materials databanks for the SimDesigner analysis system, available by special request.

• Patran Materials Enterprise - Direct access to MSC Mvision materials databanks for the MSC.Patran analysis system.

MSC Mvision Materials Databanks

• Standards Databanks:

MIL-HDBK-5/MMPDS Databank (Metals)

MIL-HDBK-17A Databank (Aerospace Composites)

MIL-HDBK-17F Databank (Polymer Matrix Composites)

PMC-90 Databank (Advanced Composites)

Metal Matrix Composites (MIL-HDBK-17-4)

ESDU Metallic Materials Data

• FEA Databanks

Analysis Databank

JAHM MPDB Temperature Dependent Properties

ASM High Temperature Aluminum Properteis

• Reference Databanks

Penton’s Materials Selector

PDL Chemical Compatibility of Plastics

PDL Effect of Temperature on Plastics

PDL Effect of Creep on Plastics

Page 13: MSC Enterprise Mvision

13CHAPTER 1Introducing the MSC EMV Integrated Client

ASM Alloy Steel

ASM Aluminum

ASM Composites

ASM Copper

ASM Corrosion

ASM Magnesium

ASM Nylons

ASM Stainless Steels

ASM Structural Steels

ASM Thermoplastics

ASM Thermoset Plastics

ASM Titanium Databank

• ASM Cross Reference Databanks

ASM Woldman’s Engineering Alloys

ASM Worldwide Guide to Equivalent Irons & Steels

ASM Worldwide Guide to Nonferrous Metals & Alloys

• Producer’s Databanks

IDES Plastics Prospector

• Special Purpose Databank:

Fatigue

Fibers

Thermal

Electromagnetic Materials

Dytran

GE Plastics

• Demo Tutorial Databanks:

Demo_Composites

Demo_Metals

Page 14: MSC Enterprise Mvision

14

Overview of MSC Mvision Product Lines

grammaticccess

Mvision

ProgrammaticAccess

MSC Mvision

DPI™

ProgrammaticAccess

MSC Mvision

DPI™

ProgrammaticAccess

MSC Mvision

DPI™MSC Patran Materials

MSC Mvision Evaluator

Programmatic

MSC Mvision DPI

MSC Enterprise Inte-grated Client

ProgrammaticAccess

MSC Mvision

DPI™

MSC Enterprise MvisionMSC.Patran Materials Enterprise

verview of MSC Mvision Product Line

or more information on the full line of MSC.Software roducts, contact your MSC.Software Sales Representative.

• Materials Test• Corp. Knowledge• Design

Allowables

• Producers• Standards• Reference• CrossReference

Databanks

MSC-Supplied

Databanks

Customer-DefinedDatabanks

(Materials Libraries)

Design andManufacturing

Analysis

Worldwide Users

C Mvision Builder

MaterialsAuthority

Access

Page 15: MSC Enterprise Mvision

15CHAPTER 1Introducing the MSC EMV Integrated Client

DeliverablesThe Integrated Client is included with the MSC Enterprise Mvision delivery package, which consists of the following items:

• MSC Enterprise Mvision CD-ROM (includes the MSC EMV Integrated Client software)

• MSC Enterprise Mvision User Interface Implementation Guide

• MSC Enterprise Mvision Installation and System Administration Guide

• MSC EMV Integrated Client Installation and Implementation Guide

• MSC Enterprise Mvision Delivery Letter

• MSC Enterprise Mvision Release Notes

• MSC Software Authorization Key Request Form

Page 16: MSC Enterprise Mvision

16

Page 17: MSC Enterprise Mvision

2 Installation Preparation and Overview

� Preparing for Installation

� Updating the MSC.EMV Integrated Client Installation

� Directories and Files Created During Installation

� Technical Support

Page 18: MSC Enterprise Mvision

18

Installation Preparation and OverviewThis chapter outlines the procedures for preparing and installing MSC EMV Integrated Client on your computer system. We recommend that you read this chapter thoroughly to understand the procedures before starting the installation. Chapter 2 covers the detailed installation for each computer system platform that Integrated Client supports.

Preparing for InstallationBefore you begin the installation, please note the following:

• Your installation package comes with a CD-ROM containing all required files.

• The installation procedure should be performed when no one is using MSC EMV Integrated Client to avoid unpredictable results.

• The entire installation procedure will typically take less than 15 minutes.

• Review the system requirements for your platform.

Checking Your Software and Hardware ConfigurationThis section is designed to help you verify that your hardware and software meet the minimum requirements for installation of MSC EMV Integrated Client.

Additional configuration items will improve the performance of MSC EMV Integrated Client on your system. It is recommended that you make these modifications for optimum performance.

Hardware Requirements

MSC EMV Integrated Client has been developed to work on Microsoft Windows and the UNIX workstations manufactured by Hewlett-Packard, IBM, Sun Microsystems, Suse Linux, and Redhat Linux. There are no special graphics hardware requirements because MSC Mvision uses standard X Window System graphics in 8-bit pseudo-color mode. A full-color graphics system is not required.

Memory Requirements

MSC EMV Integrated Client performance is affected by the availability of main memory and system swap space. You should have at least 64 megabytes of real memory, but we recommend 128 megabytes or more of real memory to minimize swapping when running MSC EMV Integrated Client with large databanks or large spreadsheets.

Page 19: MSC Enterprise Mvision

19CHAPTER 2Installation Preparation and Overview

Supported Operating Systems

MSC EMV Integrated Client runs on the following workstations and operating systems:

You must have Java installed. For more information, see Installing on Windows on page 25.

Vendor: Operating system: UNIX command and result:

Microsoft Windows XP

HP HP-UX 11.0, 11i uname -srv

HP-UX B.11.00 A

HP-UX B.11.11 U

IBM AIX 5.2. 5.3 oslevel

5.2.0.0, 5.3.0.0

Sun Solaris 8, 9, 10 uname -sr

SunOS 5.8, 5.9. 5.10

Suse Linux Enterprise 9 cat /etc/SuSE-release

SUSE LINUX Enterprise Server 9 (ia64)

VERSION = 9

Redhat Linux Enterprise 3, 4 cat /etc/redhat-release

Red Hat Enterprise Linux WS release 3

Red Hat Enterprise Linux WS release 4

Page 20: MSC Enterprise Mvision

20

Size of the MSC Mvision Installation

MSC EMV Integrated Client needs about 130 megabytes of disk space when fully installed. The exact size of the installation is listed when you run the mscsetup utility.

The following table lists the approximate size for each workstation and the command to determine the space available on current disk:

Updating the MSC Mvision InstallationRelease 2003 of MSC EMV Integrated Client installs the software using a new directory scheme. The installation script, mscsetup, is used by all MSC.Software software and places all MSC.Software products in a common directory with individual products stored in subdirectories. These subdirectories are labeled with the software name and version. Release 2003 of the MSC EMV Integrated Client is placed in a subdirectory named ic2008r1, on UNIX workstations and 2008r1\Integrated Client on Windows.

This allows you to put several versions of Integrated Client in the same directory and switch versions by referring to the subdirectory that contains the version you want by its name. You can also load a new version of the software and test it without affecting users who are using an older version.

Directories and Files Created During InstallationAfter installation, your system will contain several files. For a listing of the files installed, see Contents of the Integrated Client Installation on page 99.

Vendor: Size in megabytes: UNIX command:

Windows

HP 139 bdf .

IBM 123 df .

Linux 143 df -k .

Sun 150 df -k .

Page 21: MSC Enterprise Mvision

21CHAPTER 2Installation Preparation and Overview

Technical SupportFor help with installing or using an MSC.Software product, contact your local technical support services. Our technical support provides the following services:

• Resolution of installation problems• Advice on specific analysis capabilities• Advice on modeling techniques• Resolution of specific analysis problems (for example, fatal messages)• Verification of code error.

If you have concerns about an analysis, we suggest that you contact us at an early stage.

You can reach technical support services on the web, by telephone, or e-mail:

WebGo to the MSC.Software Web site at www.mscsoftware.com, and click on Support. Here, you can find a wide variety of support resources including application examples, technical application notes, available training courses, and documentation updates at the MSC.Software Training, Technical Support, and Documentation Web page.

Phone and Fax

United StatesTelephone: (800) 732-7284Fax: (714) 784-4343

Camberley, United KingdomTelephone: (44) (1276) 67 10 00Fax: (44) (1276) 69 11 11

Munich, GermanyTelephone: (49) (89) 43 19 87 0Fax: (49) (89) 43 61 71 6

Tokyo, JapanTelephone: (81) (3) 3505 02 66Fax: (81) (3) 3505 09 14

Rome, ItalyTelephone: (390) (6) 5 91 64 50Fax: (390) (6) 5 91 25 05

Paris, FranceTelephone: (33) (1) 69 36 69 36Fax: (33) (1) 69 36 45 17

Moscow, RussiaTelephone: (7) (095) 236 6177Fax: (7) (095) 236 9762

Gouda, The NetherlandsTelephone: (31) (18) 2543700Fax: (31) (18) 2543707

Madrid, SpainTelephone: (34) (91) 5560919Fax: (34) (91) 5567280

Page 22: MSC Enterprise Mvision

22

Page 23: MSC Enterprise Mvision

3 Installing the MSC EMV Integrated Client

� Overview

� Installing on Windows

� Installing on Windows

� Installing on UNIX and Linux

� Client-Side Properties File

� Testing the Installation

Page 24: MSC Enterprise Mvision

24

OverviewThis chapter explains how to install the MSC EMV Integrated Client on supported platforms. We recommend that you read this chapter thoroughly before proceeding with the installation.

You can install the Integrated Client on Sun Solaris, IBM RS/6000, HP-UX, Redhat Linux, or SuSe Linux using the mscsetup utility. Microsoft Windows uses the InstallShield application to install the software. Both installations are available on the MSC Enterprise Mvision 2003 CD-ROM.

Page 25: MSC Enterprise Mvision

25CHAPTER 3Installing the MSC EMV Integrated Client

Installing on WindowsPerform the following steps to install the Integrated Client distribution on Windows XP. For a listing of the files installed, see Contents of Installation on Microsoft Windows on page 100.

To install MSC EMV Integrated Client:

1. Insert the MSC EMV Integrated Client CD into your CD drive.

If the InstallShield application does not start automatically, run the setup.exe executable on the CD.

2. From the Welcome Panel, press the Next button.

3. Choose a destination location, and then press the Next button. A default location is shown but you can change it to any valid directory on the system.

4. Choose the Integrated Client installation type, and then press the Next button.

Note: You can install MSC Enterprise Mvision and/or Integrated Client.

5. Specify the hostname of the computer on which the MSC EMV Server is running.

6. Click Next.

7. Specify the port on which the MSC EMV Server is running.

Note: The 2003 version of the Integrated Client is only compatible with MSC Enterprise Mvision 2003. Be sure to specify the port for this version.

8. Verify the settings in this screen. Click Next to start copying the distribution.

9. Select Reboot to complete the installation.

Page 26: MSC Enterprise Mvision

26

Installing on UNIX and LinuxThe steps below explain how to perform the installation on IBM RS/6000, HP-UX, Linux, and Sun Solaris platforms (collectively referred to as UNIX in the following instructions).

To install the Integrated Client on UNIX platforms:

1. Insert the MSC EMV Integrated Client CD into your CD-ROM drive. For most UNIX machines, you will need to issue a mount command to mount the CD. Root privilege is required to issue the mount command.

2. Run the mscsetup script located in the CDROM directory.

The mscsetup script leads you through the selection of an install directory and product selection. Answer the questions and provide input as required. The following steps provide more detailed instructions on the use of the mscsetup.

3. Verify that the product you want to install is included in this install utility. To continue installation, press <cr>.

4. Select the option representing the location of the installation CD-ROM.

5. Enter the full path to the mount point.

6. Confirm the path with a <cr>.

7. Identify the install directory <ic_install_dir>. MSC recommends installing all products in a common directory called /msc. If you are running the mscsetup utility from the directory in which you wish to install, type ‘.’ followed by a <cr>.

8. Verify the <install directory>, using a <cr> for confirmation. If insufficient disk space exists in this directory for installation, close down the utility and rerun mscsetup specifying another directory.

9. Review the list of products available for installation. Enter the number corresponding to a single product you wish to install and press <cr>. The screen will refresh to allow you to enter other products from the list. Enter C and <cr> to continue the installation, once all products are selected.

10. Select to install special components, as required and press C and <cr> to continue the installation.

11. You are given the option to generate a contract amendment requesting a FlexLM license. Press N and <cr> to bypass this option.

12. Verify the installation details and type Y and <cr> to continue installation.

13. A complete log of the installation is written to the file mscsetup.log in the <install_dir>.

Page 27: MSC Enterprise Mvision

27CHAPTER 3Installing the MSC EMV Integrated Client

14. After the install process has completed, execute the <ic_install_dir>/install/configure_IC script. This script prompts you for the following.

• Location of the MSC EMV Integrated Client installation directory.

• The hostname and port where the MSC Enterprise Mvision Server is running.

Once the script finishes, the installation is configured.

Note: To operate the Integrated Client, you must set the following environment variables:

One of the following:

• setenv MSC_SDM_IC_PROPERTIES_FILE

<ic_install_dir>/config/MscSdmIC.properties

• export

MSC_SDM_IC_PROPERTIES_FILE=<ic_install_dir>/config/MscSdmIC.proper

ties

One of the following:

• For AIX platforms:

setenv LIBPATH <ic_install_dir>/lib:$LIBPATH

export LIBPATH=<ic_install_dir>/lib:$LIBPATH

• For Linux & Sun Solaris platforms:

setenv LD_LIBRARY_PATH <ic_install_dir>/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=<ic_install_dir>/lib:$LD_LIBRARY_PATH

• For HP-UX platforms:

setenv SHLIB_PATH <ic_install_dir>/lib:$SHLIB_PATH

export SHLIB_PATH=<ic_install_dir>/lib:$SHLIB_PATH

Page 28: MSC Enterprise Mvision

28

Client-Side Properties FileAll environmental information required for the operation of the MSC EMV Integrated Client is obtained through a properties file, MscSdmIC.properties, which is located in the config directory of the installation. You must set an environment variable, MSC_SDM_IC_PROPERTIES_FILE, to point to the properties file, as specified in the Note following Installing on UNIX and Linux on page 26 or Installing on Windows on page 25, depending on your installation. This setting should include the complete path to the file. The following lists the properties contained within the file:

################################################### Properties related to the SDM Integrated Client# implementation over Enterprise Mvision##################################################

# SDM Integrated Client installation directorysdm_ic_install_dir=D:/Program Files/MSC.Software/Integrated Client/2006r1

# SDM Integrated Client Platform typeemv_api_platform = Windows

# Messages filemessage_file = D:/Program Files/MSC.Software/Integrated Client/2006r1/config/Messages.properties

################################################### Enterprise Mvision Server Specific Properties##################################################

# EmvServer host and portemv_server = helston:8023

################################################### SDM Integrated Client GUI Properties##################################################

# File name of the SDM Integrated Client properties file on the server.# This file is located in the "config" directory of the server.sdm_ic_server_properties_file = MscIntegratedClient.properties

# Command to start the SDM Integrated Client GUIgui_command = "D:/Program Files/MSC.Software/Integrated Client/2003/bin/LaunchIcJavaGui.bat"

# Display a console window when starting the SDM Integrated Client GUI on Windows# Set to "true" to display the consolegui_display_console = false

############################################# GUI Look&Feel Properties for SDM Integrated Client##################################################### If the property is not defined, Integrated Client will use # system look and feel by default. That is, it uses # WindowsLookAndFeel on Windows OS, and MacLookAndFeel

Page 29: MSC Enterprise Mvision

29CHAPTER 3Installing the MSC EMV Integrated Client

# on MAC OS, etc. # You can customize it with the following options# - com.sun.java.swing.plaf.windows.WindowsLookAndFeel# - com.sun.java.swing.plaf.motif.MotifLookAndFeel# - com.sun.java.swing.plaf.mac.MacLookAndFeel# - javax.swing.plaf.metal.MetalLookAndFeel#gui.browser.lookandfeel = com.sun.java.swing.plaf.windows.WindowsLookAndFeel#gui.browser.lookandfeel = com.sun.java.swing.plaf.motif.MotifLookAndFeel#gui.browser.lookandfeel = javax.swing.plaf.metal.MetalLookAndFeel

################################################### Orbacus Properties for SDM Integrated Client##################################################

# Trace Level ( n >= 0)ooc.orb.trace_level = 0ooc.boa.numeric = true

# Determine if the IClient encrypts communications with the EmvServeric_encryption = no

# Encryption log is only used by MSC personnel via a compiler flagic_encryption_log = "C:/MSC.Software/MSC Enterprise Mvision/2008r1/IntegratedClient/log/ICEncryp-tion.log"print_encryption_log = no

Parameter: Value:

sdm_ic_install_dir Complete path of the Integrated Client installation directory.

emv_api_platform Integrated Client installation platform (Windows or UNIX)

message_file File containing message strings.

emv_server MSC Enterprise Mvision Server host and port.

sdm_ic_server_properties_file Name of the property file on the server, which contains Integrated Client specific properties.

gui_command Command to execute when invoking the Integrated Client GUI from the API.

gui_display_console Flag (true or false), to indicate whether a console window should be displayed when the GUI process is started. This property is only valid on Windows platforms.

Page 30: MSC Enterprise Mvision

30

gui.browser.lookandfeel Look And Feel to be used when displaying the IC GUI.

ooc.orb.trace_level Corba debug information flag. 1 is on and 0 is off.

ooc.boa.numeric Resolve connection using IP address.

ic_encryption Flag (true or false), to indicate whether the Integrated Client should data to the EMV Server in encrypted mode.

ic_encryption_log Full path and file name for the encryption log. The log feature is turned off for security reasons. You must request this feature from MSC.

print_encryption_log Flag (true or false), to indicate whether the encryption process should be logged. You must request this feature from MSC.

Parameter: Value:

Page 31: MSC Enterprise Mvision

31CHAPTER 3Installing the MSC EMV Integrated Client

Testing the InstallationIf the installation of Integrated Client is successful, you can execute each of the test programs located in the bin directory.

Page 32: MSC Enterprise Mvision

32

Page 33: MSC Enterprise Mvision

4 Configuring an EMV Server for the MSC EMV Integrated Client

� Overview

� Server-Side Configuration File

� Defining Login Labels for Java GUI

� Defining Server Name Text

� Specifying Attributes to Use in the List-Pick Algorithm

� Providing Templates/Mappings for Data Sources Required By Applications

� Specifying Default Category of a Data Source for a Particular Template

� Specifying Identifier Attribute

� SSL Encryption of the Integrated Client

Page 34: MSC Enterprise Mvision

34

OverviewThis chapter describes the additions/changes to the MSC Enterprise Mvision server that pertain to the operation of the Integrated Client. It is intended for administrators of MSC Enterprise Mvision. For additional details regarding the administration and operation of MSC Enterprise Mvision, please refer to the documentation provided with the MSC Enterprise Mvision product.

Server-Side Configuration FileA global configuration file that is common to all MSC EMV Integrated Client users can be placed in the config directory of the MSC Enterprise Mvision server. The intent of the global properties file is to enable common features for all MSC EMV Integrated Client sessions. Some of the common features that can be specified in the global properties file are related to GUI display, material attributes to be mapped, and so on. More details about these features are described in the sections that follow.

The MSC EMV Integrated client locates the global configuration properties file through a property that is specified in the clients’ property file (MscSdmIC.properties). The name of the property that must be set to find the global properties file on the server is:

sdm_ic_server_properties_file

The value of this property is the name of the global configuration file (path not included) located on the server. The MSC EMV Integrated Client installation sets the default value of the sdm_ic_server_properties_file property to:

MscIntegratedClient.properties

Example of global configuration file on server:

gui.login.user_label = EMV User Name Customizable label for logingui.login.password_label = EMV User Password Customizable labelgui.browser.server_label = EMV Server : Customizable labelgui.browser.server_label_value = MSC Enterprise Mvision Version 20008r1 Customizable labeldemo_metals.ENVIRONMENT.identifiers = UNS CNAME FORM TREAT

demo_metals.MSC_NASTRAN_2001.Isotropic.None.defaultCategory = List ALL Materials

demo_metals.PTC_Pro_Engineer.Material_Template.defaultCategory = List ALL Materials

Page 35: MSC Enterprise Mvision

35CHAPTER 4Configuring an EMV Server for the MSC EMV Integrated Client

Defining Login Labels for Java GUIThe global configuration file mentioned above, MscIntegratedClient.properties, contains two properties whose values can be customized by the MSC EMV Integrated Client administrator:

• gui.login.user_label

• gui.login.password_label

These customizable label values are used in the MSC EMV Integrated Clients’ Java GUI when performing a login operation.

In the login frame shown below, the property gui.login.user_label has been set to EMV User Name and the property gui.login.password_label has been set to EMV User Password.

Page 36: MSC Enterprise Mvision

36

Defining Server Name TextThe global configuration file mentioned above contains two properties whose values can be customized by the MSC EMV Integrated Client administrator:

• gui.browser.server_label

• gui.browser.server_label_value

These customizable label values are displayed in the Integrated Clients’ Java GUI (Material Browser/Frame). The customizable label and value can be used to provide the GUI user with information about originating application/source/state of the material data.

In the figure below gui.browser.server_label property has been set to EMV Server: and the gui.browser.server_label_value property to MSC Enterprise Mvision Version 2008r1.

Specifying Attributes to Use in the List-Pick AlgorithmThe list-pick algorithm uses the attributes defined in the Criteria list of Categories on the MSC Enterprise Mvision Server to determine which attributes (and their order) to use in selecting materials. For details regarding the modification of the Criteria that specify the list-pick algorithm for a databank, refer to the section on GroupConfiguration.txt in the MSC Enterprise Mvision Installation and System Administration Guide.

Page 37: MSC Enterprise Mvision

37CHAPTER 4Configuring an EMV Server for the MSC EMV Integrated Client

Providing Templates/Mappings for Data Sources Required By ApplicationsFor an MSC Enterprise Mvision Server to accommodate particular integrated applications, it must support the export template or templates that the application uses. For example, to support the MSC-provided Pro/ENGNEER integration, the MSC Enterprise Mvision Server must have the export template PTC_Pro_ENGINEER.Material_Template defined in the template file PTC_Pro_Engineer.template. The server must also contain at least one data source that has a mapping to the required template. For a full discussion on creating export templates and mapping files for your databank, see Chapter 8, Export, in the MSC Mvision Builder and Evaluator User's Guide and Reference.

Specifying Default Category of a Data Source for a Particular TemplateTo help end users find materials that populate the data required by an application, you should define a Category for each data source (Navigation_View in GroupConfiguration.txt) that contains a query to select only materials that contain the required data. For example, you can define a category called Pro/E Materials with a query to select material with an elastic modulus (for example, E11T ex). In the MSC EMV Integrated Client global configuration file, MscIntegratedClient.properties, this category can be associated as the default Category. The property name specifying this Category in the global configuration file must be declared as follows:

<DataSourceName>.<MappingTargetName>.<TemplateName>.defaultCategory

The value of the property is the name of the Category. An example of the property and its value from the global configuration file is shown below:

demo_metals.PTC_Pro_ENGINEER.Material_Template.defaultCategory = ”Pro/E Materials”

In the above example, the components of the property name are:

DataSourceName – demo_metalsMappingTargetName – PTC_Pro_ENGINEERTemplateName – Material_TemplateDefault category value - ‘Pro/E Materials’

Page 38: MSC Enterprise Mvision

38

Specifying Identifier AttributeFor each data source on the server, you should define a property in the global configuration file (MscIntegratedClient.properties) that specifies the attributes that integrated applications should store to reference a material. The name of the property must be <data_source>.<navigation_table>.identifiers. The value of the property is a spaced-delimited list of attributes (for example, demo_metals.ENVIRONMENT.identifiers = UNS CNAME FORM TEMP). The specified combination of attributes should uniquely identify each material in the data source.

If no identifiers are specified, then the application must use the material reference that contains the UID (unique identifier) maintained within the data source.

SSL Encryption of the Integrated ClientMSC Enterprise Mvision 2008r1 provides encrypted programmatic access to data stored in an Mvision-formatted database via the EMV Integrated Client. Encryption was facilitated using the current CORBA linkage and OpenSSL, an open source, commercial grade, full-featured toolkit. OpenSSL is licensed via Apache-style protocols.

To minimize the impact on Client- and Server-side code, the implementation of the encryption was applied to the data immediately before entering and exiting the orb’s socket. The encryption is implemented in the CORBA code, which is linked with OpenSSL cryptographic libraries. The SSL encryption method is detailed in the Enterprise Mvision Installation Guide.

Configuration of the encryption from Server side, requires setting the value of ic_encryption variable to true in the Emv.properties file as follows:

<emv_install_dir>/config/Emv.properties

Page 39: MSC Enterprise Mvision

5 Using the MSC EMV Integrated Client

� Overview

� Using the MSC EMV Integrated Client for C++

� Using the MSC EMV Integrated Client for Java

� Example Applications with Code

� Compiling and Linking Applications

� API Documentation

Page 40: MSC Enterprise Mvision

40

OverviewThis chapter provides information on integrating applications with MSC.Integrated Client in C++ or Java. It also provides information about the examples that are available and how to get help on the different methods and classes.

Using the MSC EMV Integrated Client for C++The MSC EMV Integrated Client for C++ consists of C++ class header files and a shared library (DLL for Windows). Each header file contains the definition of an interface class (a class with only pure virtual methods). Each class has a description block that describes its purpose and role. Each method declaration has a description block that describes its purpose, the description of each argument, and the possible exceptions it can throw. Each header file also declares a smart pointer class named <ClassName>Ptr (for example, SdmClientConnectionPtr). In some cases, the header files contain the definition of an array interface class named <ClassName>Array (for example, SdmAttributeArray) and its associated smart pointer class (SdmAttributeArrayPtr).

In the shared library, there is only a single exposed symbol EmvClientConnection. This symbol defines a function that allows an initial connection to be made to the MSC Enterprise Mvision Server. EmvClientConnection allocates an instance that implements the SdmClientConnection interface.

The smart pointer classes provide the memory management mechanism for the MSC EMV Integrated Client. All client code using the MSC EMV Integrated Client should always use the associated smart pointer classes and never declared native pointers. The use of smart pointers ensures that all of the memory allocated by the client is freed when the smart pointer is destructed (for example, goes out of scope). Each interface class is derived from the class SdmInterface. SdmInterface defines two functions for memory management: AddRef and Release. The smart pointer classes automatically calls AddRef and Release as required. Client code should never call AddRef or Release.

Any function or method that allocates memory declares an argument as a pointer to a pointer (for example, EmvClientConnection( SdmClientConnection **connection ) ). The smart pointer class overloads the operator& so that the underlying pointer is filled out appropriately. An example of how to call such a function is shown below:

Page 41: MSC Enterprise Mvision

41CHAPTER 5Using the MSC EMV Integrated Client

Example: Function that Allocates Memory

SdmClientConnectionPtr connection;

EmvClientConnection (&connection);

The declared array classes define a simple interface for accessing the elements of an array of a particular type. It contains two methods: size() that returns the size of the array and get(int index) that gets the indexth element.

Example: Getting All the Data Sources Declared in the ServerSdmDataSourceArrayPtr dataSources;

dataSources = connection->getDataSources();

for( int i=0; i<dataSources->size(); i++ )

{

SdmDataSourcePtr dataSource = dataSources()->get(i);

cout << dataSource->getName() << end

Using the MSC EMV Integrated Client for JavaThe MSC EMV Integrated Client for Java consists of Java interface classes and a JAR file. The names of the classes, interfaces, and methods are identical to the C++ version. The Java interface, however, differs in that it uses Java’s built-in mechanism for lists, strings, and memory management.

Page 42: MSC Enterprise Mvision

42

Example Applications with CodeThe MSC EMV Integrated Client comes with a set of example applications that demonstrate its functionality. Each example is self-contained. The examples provided are:

Example Application

The example: Demonstrates:

DumpServerContents Connecting to an MSC Enterprise Mvision Server and lists out all of the data sources, their navigation views, the categories within the navigation views, the units systems, and the schema of each data source. The schema of each data source contains all of the attributes defined in the data source, all of the property sets and attributes, for each attribute the available units with conversion factors, the data classes to which an object can be mapped to (for example, an MSC MVision export template).

PickObjectFromGui Starting up the selector GUI from C++. After the GUI user has logged in and picked an object, control is passed back to the C++ program where the attributes of the object are displayed. A summary of each of the property sets is also created.

ShowDefaultObjectInGui Connecting to the MSC Enterprise Mvision Server from C++, selecting an object using a list pick interface on the first data source, navigation view, and category. The GUI is started up with the selected material as the default.

MapObjectInGui The selector GUI being started from C++, and requesting a mapped data structure of "MSC_NASTRAN_2001.Isotropic.None". After the GUI user has picked an object and created the mapped object, control is passed back to C++ where the attributes of the mapped object are displayed.

Page 43: MSC Enterprise Mvision

43CHAPTER 5Using the MSC EMV Integrated Client

Coding the Example Applications

The six sample applications provided with the 2003 MSC EMV Integrated Client API (“the Integrated Client”) demonstrate use of the API and its functionality. The code for each sample application is provided below with an explanation of how the code operates with the MSC Enterprise Mvision (“EMV”) server and the Integrated Client Java GUI.

Example 1 - MapObjectInGui

In this example, the selector GUI is started from C++ requesting a mapped data structure called "MSC_NASTRAN_2001.Isotropic.None". After the user has picked an object and created the mapped object in the GUI, control is passed back to the C++ application where the attributes of the mapped object are displayed.

The following steps will have to be followed to demonstrate this example, MapObjectInGui.

1. Establish a connection to the MSC Enterprise Mvision Server using the global function, getEmvClientConnection. This function returns the handle to the SdmClientConnection object.SdmClientConnectionPtr connection;getEmvClientConnection ("MapObjectInGui", &connection);

2. Launch the Integrated Client GUI to prompt the user to login. The SdmClientConnection method, launchGUI(), is used to launch the GUI. SdmICGuiPtr gui;connection->launchGUI(&gui);

3. Pick an object from the GUI and map to the target, for example, "MSC_NASTRAN_2001.Isotropic.None". SdmMappedDataPtr mappedStructure;gui->mapObject("MSC_NASTRAN_2001.Isotropic.None","",&mappedStructure)

MapDefaultObjectInGui Starting the selector GUI from C++, and requesting a mapped data structure of "MSC_NASTRAN_2001.Isotropic.None" for the default material passed in.

MapObjectInApi Selection of an object using the C++ API. A mapped structure is created from the selection. The example lists the available values for each property set to allow for different property set rows to be used in the mapping algorithm. It also displays the current values used for each property set.

Example Application (continued)

The example: Demonstrates:

Page 44: MSC Enterprise Mvision

44

The SdmICGui method, mapObject, returns the handle to the mapped object.

4. Access the information of the mapped object using the specified APIs in the following sequence. (In the sample program, the functions writeObjectInfo and writeValue are used to display the object information.)SdmObjectPtr object = mappedStructure->getMappedObject();

5. To retrieve the data class that describes the structure of the object, do the following:SdmDataClassPtr dataClass;dataClass = object->getDataClass();

a. To retrieve all of the attributes in this data class:SdmAttributeArrayPtr attributes;attributes = dataClass->getAttributes();

b. To retrieve the number of attributes in the data class: int nAttributes = attributes->size();

c. To retrieve the attribute information for an attribute object, loop through all the attribute objects and retrieve the information using the following code:for (n=0; n < nAttributes; n++){

SdmAttributePtr attrib; attrib = attributes->get (n); …… …… //see the APIs below for further processing. ……

}

d. The following code illustrates how to retrieve an attribute’s name, description, and value:

SdmValuePtr value; value = object->getValue (attrib);

const char* attrName = attrib->getName(); const char* attrDescription = attrib->getDescription();

e. To get the type of the value SdmValueTypePtr valType; valType = value->getValueType();

6. To close the connection, the SdmClientConnection function, logout(), is called.connection->logout();

Page 45: MSC Enterprise Mvision

45CHAPTER 5Using the MSC EMV Integrated Client

Example 2 - PickObjectFromGui

This example demonstrates how to start up the selector GUI using C++. After the GUI user has logged in and picked an object, control is passed back to the C++ program where the attributes of the object are displayed. A summary of each of the property sets is created, which displays a list of the independent variables and their values for each property set instance. For example, it may show the "BASIS" attribute for a MECHANICAL property set and display "A" and "B" for the two instances. This example also loads the entire record for the first instance of each property set and displays all of the attributes.

1. Establish a connection to the MSC Enterprise Mvision Server using the global function, getEmvClientConnection, which returns the handle to the SdmClientConnection object. Use of this function is shown below.SdmClientConnectionPtr connection;getEmvClientConnection ("PickObjectFromGui", &connection);

2. Launch the Integrated Client GUI to prompt the user to login. The SdmClientConnection method, launchGUI(), is used to launch the GUI. SdmICGuiPtr gui;connection->launchGUI(&gui);

3. After providing the login information, the login page is closed. The Material Browser is displayed, where the user can pick the material object of his interest. If the user chooses to cancel selection, the Material Browser is closed.

After picking the desired material object, its handle is available using the following APIs to retrieve material information.

In the “for” loop shown below:

a. when i = 0, the login page is displayed. After login, the user can pick the material object of interest. The handle of this selected object remains available for the user to retrieve the material information.

b. When i=1, using the reference string of the material object, the object selected in step (a) is loaded directly. The user does not have to go through the process of selecting it again.

The use of the APIs to achieve steps (a) and (b) can be seen below.

SdmObjectPtr object;

for (i=0; i<2; i++){ SdmStringPtr objectReference; const char *currentReference = ""; if (object.getPtr () != NULL) currentReference = object->getReference();

Page 46: MSC Enterprise Mvision

46

if( gui->pickObject(currentReference, &objectReference) ) { connection->loadObject (objectReference->getString(), &object);

c. To get the object information, use the function, writeObjectInfo.

writeObjectInfo (object);

d. To get the summary of the property sets of the object, the function writeOropertySetSummaries is used. The APIs used in this function are described separately below.

writePropertySetSummaries (object);

APIs used in the function, writePropertySetSummaries:

The APIs used in the function, writePropertySetSummaries, are explained below.

This function provides a summary of the property sets (for example, THERMAL, MECHANICAL, SIGvsEPS) for a material object. The summary consists of the value of the independent variables for each property set. It also displays the first instance of each property set (for example, the first THERMAL property set).

1. To retrieve the object reference string using the identifiers of the object: const char *objectReference = object->getReference();

2. To retrieve the data class that describes the structure of the object: SdmDataClassPtr dataClass dataClass = object->getDataClass();

3. To retrieve the data classes that are defined as property sets of (that is, contained within) the object's data class: SdmDataClassArrayPtr propertySetClasses = dataClass->getPropertySetClasses();

4. Loop over each property set class and retrieve a summary of the property sets contained within the passed in object. The summary consists of a display of the value of each independent variable in the property set. for (j=0; j<propertySetClasses->size(); j++) { SdmDataClassPtr propertySetClass = propertySetClasses->get(j); SdmPropertySetArrayPtr propertySets;

5. To retrieve the property sets for a particular property set class: propertySets = object->getPropertySets(propertySetClass); if (propertySets->size() == 0) {

Page 47: MSC Enterprise Mvision

47CHAPTER 5Using the MSC EMV Integrated Client

6. To get the property set class name: const char* propertySetClassName = propertySetClass->getName(); continue; } else {

7. To get the property set size:int size = propertySets->size() const char* propertySetClassName = propertySetClass->getName(); }

8. If there are instances of a property set, then write out the first property set: if( propertySets->size() != 0 ) { SdmPropertySetPtr propertySet = propertySets->get(0);

9. Load the property set object so that all of the attributes are available: SdmObjectPtr propertySetObject; propertySet->load(&propertySetObject);

10. Write out the property set object. The function, writeObjectInfo is explained later. writeObjectInfo( propertySetObject );

11. To get the list of attributes that make each property set of a particular class unique in the context of the containing object: SdmAttributeArrayPtr attributes; attributes = object->getIndependentVariables (propertySetClass);

12. Check to see if the property set varies with independent variables: if( attributes->size() != 0) { const char* propertyClassName = propertySetClass->getName();

13. Get all attributes of this property set: for(k=0; k<attributes->size(); k++ ) { SdmAttributePtr attribute = attributes->get(k); }

14. Get the value of the independent variables of each property set: for (i=0; i < propertySets->size(); i++) {

15. Get the ith property set: SdmPropertySetPtr propertySet; propertySet = propertySets->get(i);

Page 48: MSC Enterprise Mvision

48

16. For each independent attribute, get all of its values: for (k=0; k<attributes->size(); k++ ) { SdmAttributePtr attribute = attributes->get(k); SdmValuePtr value = propertySet->getValue(attribute); writeValue(value); }

Page 49: MSC Enterprise Mvision

49CHAPTER 5Using the MSC EMV Integrated Client

Example 3 - ShowDefaultObjectInGui

In this example, a connection is made to the server from C++, an object is selected using a list pick on the first data source, navigation view, and category. The Integrated Client GUI is initiated with the selected material as the default. The login screen is bypassed and the selected material is displayed.

1. Establish a connection to the MSC Enterprise Mvision Server using the global function, getEmvClientConnection, which returns the handle to the SdmClientConnectionobject. The use of this function is shown below:

SdmClientConnectionPtr connection;getEmvClientConnection ("ShowDefaultObjectInGui", &connection);

2. Login to the MSC Enterprise Mvision Server without launching the login page of Integrated Client GUI. The login function on SdmClientConnection object is used by providing the user name and password as inputs. Its usage is as given below.

connection->login("guest", "emv");

3. The following code demonstrates how to get the default material object. The steps involve retrieving a default object from connection and then retrieving its default navigation view, and default category. Then, this demonstrates how to get the first object from the category by always picking the first value from the list pick.

The usage of API functions can be seen below:

a. To get the default data source, navigation view, and category: SdmDataSourcePtr dataSource = connection->getDefaultDataSource(); SdmNavigationViewPtr navigationView = dataSourceget->DefaultNavigationView(); SdmCategoryPtr category = navigationView->getDefaultCategory();

b. To create a list pick object on the category use the function, createListPick, which returns the pointer to the SdmListPick:

SdmBool picked = SDM_FALSE; SdmListPickPtr listPick; category->createListPick (&listPick);

c. Loop through and select a value at each level of the hierarchy. The last pick should yield a material. The following code snippet shows how to pick the material object:

int nLevel = 0; while (picked == SDM_FALSE) {

d. Get the list of available values at the current hierarchy level: SdmStringArrayPtr values;

Page 50: MSC Enterprise Mvision

50

values = listPick->getCurrentValues (nLevel++);

e. Pick the first value in the list. This is a material object. picked = listPick->pickValue (0); }

f. You now have a material, so you can get a string reference to that material object:

char *defaultObjectReference = (char *)listPick->getPickedObject();

g. Launch the Integrated Client GUI, which will prompt the user to login: SdmICGuiPtr gui; connection->launchGUI(&gui);

h. The picked object is loaded in Integrated Client GUI using its reference string:

SdmStringPtr pickedObjectReference; gui->pickObject(defaultObjectReference,&pickedObjectReference);

i. Get the object picked in the Integrated Client GUI: pickedObjectReference->getString();

4. Use the logout() function of the SdmClientConnection object to close the client connection:connection->logout();

Page 51: MSC Enterprise Mvision

51CHAPTER 5Using the MSC EMV Integrated Client

Example 4 - MappedObjectInApi

In this example an object is picked in the C++ GUI using a list pick on the first data source, navigation view, and category. The Integrated Client GUI is initiated with the selected material as the default. A mapped structure is then created from it. The GUI bypasses the login screen and the selected material is displayed. This example lists the available values for each property set allowing for different property set rows to be used in the mapping algorithm. It also shows the current values used for each property set.

1. Establish a connection to the MSC Enterprise Mvision Server using the global function, getEmvClientConnection, which returns the handle to the SdmClientConnection object. Use of this function is shown below:SdmClientConnectionPtr connection;getEmvClientConnection ("MappedObjectInApi", &connection);

2. Login to the MSC Enterprise Mvision Server without launching the login page of Integrated Client GUI. Use the login function on SdmClientConnection object by providing the user name and password as inputs. Its usage is given below:connection->login("guest", "emv");

3. Select an object using the Integrated Client APIs and then load this object in Integrated Client GUI. The following steps illustrate retrieval of the default object upon connection using the default data source, its default navigation view, and default category. To retrieve the first object from the category, always pick the first value from the list pick.

In this example program, the APIs used are part of the function, getDefaultObject.

a. To get the default data source, navigation view, and category. SdmDataSourcePtr dataSource = connection->getDefaultDataSource(); SdmNavigationViewPtr navigationView = dataSource->getDefaultNavigationView(); SdmCategoryPtr category = navigationView->getDefaultCategory();

b. Create a list pick object on the category: SdmBool picked = SDM_FALSE; SdmListPickPtr listPick; category->createListPick (&listPick);

c. Loop through and select a value at each level of the hierarchy. The last pick should yield a material. The following code snippet shows how to pick the material object:

int nLevel = 0; while (picked == SDM_FALSE) {

d. To get the list of available values at the current hierarchy level SdmStringArrayPtr values;

Page 52: MSC Enterprise Mvision

52

values = listPick->getCurrentValues (nLevel++); v) Pick the first value in the list. This is a material object. picked = listPick->pickValue (0); }

e. We now have a material. Get a string reference to the material object: char *defaultObjectReference = (char *)listPick->getPickedObject();

f. Launch the Integrated Client GUI, which will prompt the user to login: SdmICGuiPtr gui; connection->launchGUI(&gui);

g. The picked object is loaded in Integrated Client GUI using its reference string:

SdmStringPtr pickedObjectReference; gui->pickObject(defaultObjectReference,&pickedObjectReference);

h. Get the object picked in the Integrated Client GUI; pickedObjectReference->getString();

4. Load the object from the reference by using the object reference string and the loadObject function on SdmClientConnection. SdmObjectPtr object; connection->loadObject(objectReference,&object);

5. Lookup the data class for the mapping data structure. The mapped data class object can be obtained by making a call as shown below: SdmDataClassPtr mappedToClass = object->getDataSource()->getSchema()->getDataClassByName("MSC_NASTRAN_2001.Isotropic.None");

6. Create a process to do the mapping by calling the API method, createMappingProcess, on SdmObject pointer as shown: SdmProcessPtr process; object->createMappingProcess(mappedToClass,&process);

7. Execute the mapping process: process->launchExecution();

8. Access the mapped object created by the process. Each time launchExecution is called a new primary output is created. Since the parameters to the process are changed, the result of the process will also change. SdmObjectPtr mappedObject = process->loadPrimaryOutput();

9. The mapped object information can be obtained using the APIs as shown below:

Page 53: MSC Enterprise Mvision

53CHAPTER 5Using the MSC EMV Integrated Client

writeObjectInfo(mappedObject); SdmStringArrayPtr summary; process->getParameterSummary(&summary);

for(i=0; i<summary->size(); i++ ) { const char* summaryStr = summary->get(i)->getString(); }

10. The attributes of the process object are the parameters that control the mapping process. The first parameter is the object reference for the object being mapped. The other parameters correspond to each property set defined in the database. The parameter is used in the mapping when an ambiguity exists regarding which property set instance to use in the mapping process. In the Integrated Client GUI, these are materialized as combo boxes that allow the user to select the desired instance.

a. List the parameters to the process, the current values, and possible values:SdmAttributeArrayPtr parameters = process->getDataClass()->getAttributes();for (i=1; i < parameters->size(); i++){ SdmAttributePtr parameter = parameters->get(i); SdmValuePtr value = process->getValue(parameter); if( !value->isNull() ) { const char* paramName = parameter->getName(); const char* paramValue = value->asString(); }

b. Retrieve the suggested (that is, possible) values for each parameter: SdmValueArrayPtr sugValues; process->getSuggestedValues(parameter, &sugValues);

if( sugValues->size() != 0 ) { for (n=0; n < sugValues->size(); n++) { const char* suggestedValue = sugValues->get(n)->asString(); }

c. Set the value to the second one, if first one is normally "None". Setting the second one will fill out the output object with data:process->setString( parameter, sugValues->get(sugValues->size()-1)->asString() );

11. Execute the mapping process with the value of parameters filled out: process->launchExecution();

Page 54: MSC Enterprise Mvision

54

12. Access the mapped object created by the process. Each time launchExecution is called a new primary output is created. As the parameters to the process are changed, the result of the process will also change.mappedObject = process->loadPrimaryOutput();process->getParameterSummary(&summary);

for(i=0; i<summary->size(); i++ ){const char* str = summary->get(i)->getString();}

13. Write out the mapped object: writeObjectInfo(mappedObject);

Page 55: MSC Enterprise Mvision

55CHAPTER 5Using the MSC EMV Integrated Client

Example #5 MapDefaultObjectInGui

In this example, the selector GUI is started from C++ requesting a mapped data structure of "MSC_NASTRAN_2001.Isotropic.None” and an object is selected using a list pick on the first data source, navigation view, and category. The Integrated Client GUI is initiated with the selected material as the default material. A mapping to the mapped data structure is displayed.

1. Establish a connection to the MSC Enterprise Mvision Server using the global function, getEmvClientConnection, which returns the handle to the SdmClientConnection object. Use of this function is shown below:SdmClientConnectionPtr connection;getEmvClientConnection ("MapDefaultObjectInGui", &connection);

2. Login to MSC Enterprise Mvision Server without launching the login page of Integrated Client GUI. Use the login function on the SdmClientConnection object by providing the user name and password as inputs. connection->login("guest", "emv");

3. Select an object using the Integrated Client APIs and load it into the Integrated Client GUI. The following steps involve retrieving a default object from the connection by using the default data source, its default navigation view, and default category.

In the example program, the following APIs are part of the getDefaultObject function.

a. Get the default data source, navigation view, and category: SdmDataSourcePtr dataSource = connection->getDefaultDataSource(); SdmNavigationViewPtr navigationView =

dataSource->getDefaultNavigationView(); SdmCategoryPtr category = navigationView->getDefaultCategory();

b. Create a list pick object on the category. The function, createListPick returns the pointer to the SdmListPick.

SdmBool picked = SDM_FALSE; SdmListPickPtr listPick; category->createListPick (&listPick);

c. Loop through and select a value at each level of the hierarchy. The last pick yields a material. The following code snippet shows how to pick the material object:

int nLevel = 0; while (picked == SDM_FALSE) { iv) Get the list of available values at the current hierarchy level SdmStringArrayPtr values;

Page 56: MSC Enterprise Mvision

56

values = listPick->getCurrentValues (nLevel++); v) Pick the first value in the list. This is a material object. picked = listPick->pickValue (0); }

d. A material is now selected. Retrieve a string reference to this material object. char *defaultObjectReference = (char *)listPick->getPickedObject();

e. Launch the Integrated Client GUI, prompting the user to login: SdmICGuiPtr gui; connection->launchGUI(&gui);

f. The picked object is loaded in Integrated Client GUI using its reference string:

SdmStringPtr pickedObjectReference; gui->pickObject(defaultObjectReference, &pickedObjectReference);

g. Get the object picked in the Integrated Client GUI: pickedObjectReference->getString();

4. Launch the Integrated Client GUI. The user is prompted to login and then pick an object from the GUI and map to a target, for example, "MSC_NASTRAN_2001.Isotropic.None".SdmICGuiPtr gui;connection->launchGUI(&gui);

SdmMappedDataPtr mappedStructure;gui->mapObject("MSC_NASTRAN_2001.Isotropic.None", defaultObjectReference, &mappedStructure);

The method, mapObject on SdmICGui object, returns the handle to the mapped object. (that is, mappedStructure).

Page 57: MSC Enterprise Mvision

57CHAPTER 5Using the MSC EMV Integrated Client

Example 6 - DumpServerContents

This example demonstrates connecting to an MSC Enterprise Mvision Server and listing out all of the data sources, their navigation views, the categories within the navigation views, the units systems, and the schema for each data source. The schema for each data source contains all of the property sets and corresponding attributes defined in the data source, the available units for each attribute with conversion factors, and the data classes to which an object can be mapped to (for example, an MSC/MVISION export template).

The following steps illustrate to the code for the DumpServerContents example.

1. Establish a connection to the MSC Enterprise Mvision Server using the global function, getEmvClientConnection, which returns the handle to the SdmClientConnection object.SdmClientConnectionPtr connection; getEmvClientConnection ("DumpServerContents", &connection);

2. Login to the MSC Enterprise Mvision Server. The user name and password need to be supplied to the login function.connection->login("guest","emv");

3. Retrieve all data sources in the current session. The method getDataSources of the SdmClientConnection object returns the object of SdmDataSourceArray that contains the array of SdmDataSource objects.SdmDataSourceArrayPtr dataSourceList = connection->getDataSources();

4. Loop through all data sources. Display all the relevant data, such as the data source name, default navigation view, current unit system, and available unit systems for each data source. Also display all navigation views for the current data source and their details, such as the navigation view name, data class, default category, and available categories.for (i=0; i < dataSourceList->size(); i++){

a. Retrieve the ith element from the data source list:SdmDataSourcePtr dataSource = dataSourceList->get(i);

b. Retrieve the data source name:const char* dataSourceName = dataSource->getName();

c. Retrieve the default navigation view:const char* defaultNavViewName = dataSource>getDefaultNavigationView()->getName();

Page 58: MSC Enterprise Mvision

58

d. Retrieve the current unit system:const char *curUnitSystem = dataSource->getCurrentUnitSystem();

e. Retrieve the available units systems for the data source:SdmStringArrayPtr unitSystems = dataSource->getUnitSystems();for(j=0; j<unitSystems->size(); j++){ SdmStringPtr unitSystem = unitSystems->get(j); const char*unitSystemName = unitSystem->getString(); }

f. Retrieve all navigation views for the current data source: SdmNavigationViewArrayPtr navViewList = dataSource->getNavigationViews(); for (j=0; j < navViewList->size(); j++){

g. Display the details of each navigation view:SdmNavigationViewPtr navView = navViewList->get(j);

h. Retrieve the navigation view name: const char *navViewName = navView->getName();

i. Retrieve the data class (that is, Table) for the navigation view: const char* dataClassName = navView->getDataClass()->getName();

j. Retrieve the default category in the navigation view: const char* defaultCategoryName = navView->getDefaultCategory()->getName(); SdmCategoryArrayPtr categoryList = navViewList->get(j)->getCategories();

k. Loop through the category array for each individual category:for (k=0; k < categoryList->size(); k++){ const char* categoryName = categoryList->get(k)->getName();}

5. There are four types of data classes in the schema:

• Those that define the type of objects stored in the database (for example, those referenced by navigation views).

• Those that define property sets (for example, MECHANICAL).

Page 59: MSC Enterprise Mvision

59CHAPTER 5Using the MSC EMV Integrated Client

• Those that define a target data structure for an application (for example, PTC_Pro_Engineer.Material_Template).

• Those that represent the input to a process to create an object (for example, the inputs to the mapping process to take an object in the database and mapped it to a target data structure.

Some of the information about the schema can be shown by displaying in great detail the data class referenced by the default navigation view.SdmDataClassPtr dataClass = dataSource->getDefaultNavigationView()->getDataClass();const char* dataClassName = dataClass->getName();

In this example, the utility function, displayDataClass() is used to display all attributes of the data class:displayDataClass(dataClass);

a. To retrieve all property sets defined for the data class and display the details:

SdmDataClassArrayPtr propertySets = dataClass->getPropertySetClasses();for(j=0;j<propertySets->size();j++){ displayDataClass( propertySets->get(j) );

}

b. To retrieve the application target data structure the data class has been mapped to, use the following APIs:

SdmDataClassArrayPtr mappedToDataClasses = dataClass->getMappedToDataClasses();for(j=0;j<mappedToDataClasses->size();j++){ displayDataClass( mappedToDataClasses->get(j) );}

APIs used in the function, displayDataClass and their purpose:

1. Retrieve the attributes of the SdmDataClass. Based on the type of the attribute, use appropriate function to get the values of integer, double, string, measure, and so on: SdmAttributeArrayPtr attributes = dataClass->getAttributes(); for(i=0; i<attributes->size(); i++ ) { SdmAttributePtr attribute = attributes->get(i); if( attribute->getValueType()->isString() ) { const char* attributeName = attribute->getName(); } else if( attribute->getValueType()->isMeasure() ) {

Page 60: MSC Enterprise Mvision

60

a. Measure - For a measure, display the unit family associated with it. The units family can be used to determine the available units and the conversion factors between them.const char*measureName = attribute->getName();

const char* measureFamilyName = attribute->getUnitsFamily()->getName();

else if( attribute->getValueType()->isMatrix() )

b. Matrix - For a matrix, display the unit family associated with it. The units family can be used to determine the available units and the conversion factors between them.

const char*matrixName = attribute->getName();const char* familyname = attribute->getUnitsFamily()->getName();}else if( attribute->getValueType()->isCurve() ){

c. Curve - For a curve display the 2 unit families associated with it. The units family can be used to determine the available units and the conversion factors between them the first units family is for x and the secondary is for y.const char* curveName = attribute->getName();const char* familyName = attribute->getUnitsFamily()->getName();

const char*secondaryFamilyName = attribute->getSecondaryUnitsFamily()->getName(); } }

d. To get the identifiers for the data class as defined in the IntegratedClient properties file (for example, demo_metals.ENVIRONMENT.identifiers):

SdmAttributeArrayPtr identifiers = dataClass->getIdentifiers(); for(i=0; i<identifiers->size(); i++ ) { SdmAttributePtr identifier = identifiers->get(i); const char* identifierName = identifier->getName(); }}

2. The following API is used to close the client connection. The function, logout() has to be called on SdmClientConnection object for closing the client connection.connection->logout();

Page 61: MSC Enterprise Mvision

61CHAPTER 5Using the MSC EMV Integrated Client

Compiling and Linking Applications

Windows:

On Windows platforms, a Microsoft Visual Studio workspace with the necessary project files is included with the MSC EMV Integrated Client distribution. The workspace is located at:

<ic_install_dir>/src/C++/TestIC.dsw

where <ic_install_dir> is the directory where the MSC EMV Integrated Client is installed.

To build the sample executables:

1. Start the Microsoft Visual Studio application.

2. Open the TestIC.dsw workspace.

3. Build all projects or individual projects in the workspace.

A similar process should be followed when building custom applications with the MSC EMV Integrated Client. The only difference is that the your application (project) replaces one of the sample projects in the above mentioned workspace.

UNIX:

On UNIX, a Makefile is provided with the MSC EMV Integrated Client distribution to compile and link all of the sample executables. The Makefile is located at:

<ic_install_dir>/src/cplusplus/Makefile

where<ic_install_dir> is the directory where the MSC EMV Integrated Client is installed.

Enter the following commands to build the sample executables:

• > cd <ic_install_dir>/src/cplusplus

• > make

You can modify the Makefile with your application’s source file names to build an application that uses the MSC EMV Integrated Client.

API DocumentationThe JavaDoc facility generates HTML documentation of the interfaces from the Java source. Because the name of the classes and methods are the same, this documentation is useful for Java and C++ programmers alike. The HTML documentation is located at:

<ic_install_dir>/doc/API

Page 62: MSC Enterprise Mvision

62

To browse the API documentation, open the index.html file located in the above directory in a browser.

Integrated Client getComments( ) Method

A new method, getComments(), has been implemented in the IC Java code that returns all the data (including Pedigree) for a selected row in one long array using embedded carriage returns. This enables client applications to expose all related material information for mapped objects.

Integrated Client Exports Multiple Curves

The export of multiple curves from an MSC Mvision database has been implemented in the Integrated Client Java. Following snippet of code illustrates its use:

SdmBool bCrvParent = curve->isParentAFigure();if (bCrvParent) { int nCurves = curve->getNumCurvesInParentFigure(); cout << endl << endl << "Found a FIGURE... with " << nCurves << " curves." << endl;

for (int nn = 0; nn < nCurves; nn++) { SdmCurvePtr curvesFromParent = curve->getCurveFromParent(nn); cout << endl << "Curve #" << nn << " from parent FIGURE..." << endl; cout << endl << endl << "X Range=" << curvesFromParent->getMinX() << " to " << curvesFromParent->getMaxX() << " " << curvesFromParent->getXUnits()->getName() << endl; cout << "Y Range=" << curvesFromParent->getMinY() << " to " << curvesFromParent->getMaxY() << " " << curvesFromParent->getYUnits()->getName() << endl;

// Write out curve coordinates const double *coords = curvesFromParent->getCoordinates(); cout << "X\t\tY\n-------------------" << endl; for (int i=0; i < curvesFromParent->getNPoints(); i++) { cout << coords[2*i] << "\t\t" << coords[2*i + 1] << endl;

} }}

Page 63: MSC Enterprise Mvision

63CHAPTER 5Using the MSC EMV Integrated Client

Understanding the API ClassesThe MSC Enterprise Mvision Integrated Client API (“the Integrated Client”) is a set of C++ and Java interface classes. These classes expose both Mvision database access methods and methods that drive MSC Enterprise Mvision application functionality. It is used, for example, to add functionality, such as displaying a Java GUI for the selection of an object and exporting the material.

The following diagram illustrates the relationships between the classes supported by the API. When implementing the Integrated Client, you can reference this diagram to understand how to use instances of these classes to access other API classes. Arrows are used to show the relationship between classes and identify the classes that each instance of a class can retrieve or generate. For example, the arrows indicate that the SdmClientConnection class can create or retrieve instances of the SdmICGui and the SdmDataSource classes, and that the EmvClientConnection function can retrieve an instance of the SdmClientConnection class from the API.

Page 64: MSC Enterprise Mvision

64

The following section provides detailed information about the usage of each class.

EmvClientConnectionThe EmvClientConnection method is the entry point to the system. Its single purpose is to construct and return the SdmClientConnection instance. This function must be invoked prior to all other Integrated Client methods and functions.

Page 65: MSC Enterprise Mvision

65CHAPTER 5Using the MSC EMV Integrated Client

SdmClientConnectionThe SdmClientConnection class provides methods to communicate with the MSC Enterprise Mvision server. It must be constructed prior to interacting with the server. Its methods:

• Perform the initial login

• Retrieve configuration information from the server

• Retrieve data source information, such as the current data source or a list of currently available data sources

• Perform data retrieval not specific to a data source, such as retrieving property files

• Retrieve specific properties from the MSC Enterprise Mvision server

SdmICGuiThe SdmICGui class provides an interface for interacting with the Integrated Client GUI. Methods are available to drive some of the GUI’s interaction with the user. Some of these methods include:

• Displaying the login dialog to the user

• Setting the default values before the GUI dialog displays, such as the default data source, navigation view, category, and units system

• pickObject and mapObject, which display the main material-picking dialog

Note: The method mapObject differs from pickObject in that pickObject does not display the export-mapping page. The pickObject method returns control to the integrated client once an object has been selected in the GUI. The mapObject method returns control to the Integrated Client once an object has been mapped to another view.

SdmDataSourceThe SdmDataSource class provides access to a data source’s configuration information, schema, unit systems and external process creation mechanism.

The SdmDataSource and the current data source list are returned by the SdmClientConnection class. SdmDataSource is used to access the schema, which is then used to retrieve values from SdmObjects. These SdmObjects are typically available after the SdmICGui class returns a selected SdmObject or when an SdmObject is looked up from a data reference. The allocateProcess method is used to allocate an SdmProcess, which in turn is run on the MSC Enterprise Mvision server. The configuration information returned is the current SdmNavigationView or all of the available SdmNavigationViews for the data source. The navigation views define views of the data source that are configured on the MSC Enterprise Mvision server.

Page 66: MSC Enterprise Mvision

66

SdmNavigationViewThe SdmNavigationView class provides access to a navigation view’s definition. Used to customize the view of a data source, each navigation view identifies:

• Data source to access

• List of Categories (accessed via SdmCategory), which provide different views on the specified data source

• List of Criteria that define the attributes used by the SdmListPick class

The navigation views are defined in a file stored on the MSC Enterprise Mvision server, <emv_root>/config/GroupConfiguration.txt.

SdmCategoryThe SdmCategory class uses a query to filter the available data objects stored in a data source to a particular subset. The SdmCategory creates the SdmPickList used to apply sequential queries to this subset of data objects, creating a method to select a single object from this subset.

The SdmCategory also provides the means to perform an SQL-like query on the categories predefined set of objects. Using the Mvision defined SQL-like syntax you can specify a condition that filters the objects to a smaller set and returns object ids. Using the object ids and schema definition from the SdmSchema class, you extract the desired data from the objects.

SdmListPickThe SdmListPick class provides functionality to select a single object from the Category’s object list. By specifying a query to the SdmCategory and then creating an SdmListPick instance, you can emulate the functionality of the Integrated Client Java GUI.

The SdmListPick allows you to retrieve an attribute and a list of its values defined by the Category. Selecting a value from this list filters the data to a smaller subset. The list is then refreshed to display the values for the next attribute in the criteria list for the current subset of data. This selection and refresh process continues until a single object is selected. The object id is returned, which is used in conjunction with the SdmSchema to retrieve the data from the object.

If picking through the values of attributes defined in the Criteria list fails to return a single object, the system automatically goes to the top of the schema in the database and begins to descend down the ‘pedigree’ or ‘hierarchy’ attributes. Each attribute is tested to find if it has more than one value for the current object list. If more than one value is available, this attribute is passed back as the next attribute in the pick list with the associated values for the remaining data objects. The user selects one of these

Page 67: MSC Enterprise Mvision

67CHAPTER 5Using the MSC EMV Integrated Client

values and the process continues. The next attribute in the ‘pedigree’ or ‘hierarchy’ is tested to have more than one value. If it does, the attribute and values are passed back and a value is selected. This continues until a single object is selected.

The pick list attributes are defined by the criteria list that is specified for the navigation view. To see the definition and order of the criteria list, view the <emv_root>/config/GroupConfiguration.txt file.

SdmSchemaThe SdmSchema class contains the definition of the SdmDataClasses that define the data source. Methods are provided to access the SdmDataClasses by name or as a group. Use this class in conjunction with the SdmObject and SdmAttribute to retrieve values from SdmObjects.

SdmDataClassThe SdmDataClass class contains the attributes for a table. These attributes are used in conjunction with an object to retrieve the specific attribute values from the object.

In special cases, the SdmDataClass has methods to retrieve specialized data classes known as property sets and mapped data classes. These methods should only be used with SdmObjects that fully specify objects. Such objects come from the SdmListPick class when an object is fully specified or are retrieved from the SdmClientConnection using the loadObject method.

There are other methods that perform data source specific functions, such as:

• Retrieving the ‘unique object attribute list’

• Parsing a string into a list of attributes

• Creating a condition string given a set of attributes and values

The ‘unique object attribute list’ allows for the external specification of attributes that uniquely identify an object in the database. This list of attributes and their associated values uniquely identifies the object. These attributes and values are stored in a third party applica-tion, which if properly configured, can reconnect to the object for further operations on that object.

SdmAttributeThe SdmAttribute class contains the definitions and access methods for an attribute in an SdmDataClass. The definition of an attribute includes its name, description, type, and units family. SdmAttribute retrieves the value of an attribute given an SdmObject.

Page 68: MSC Enterprise Mvision

68

SdmAnnotationThe SdmAnnotation class contains the definitions and access methods for the description of an annotation on an attribute of an object. An annotation has two parts: the type and the text. The type of the annotation defines its context (for example, FOOTNOTE, METADATA, MAPPING). The text of the annotation is the text that applies to the attribute of the object in the given context. SdmAnnotation retrieves the value of an annotation given an SdmAttribute.

SdmMappedDataThe SdmMappedData class contains functionality to retrieve the mapped object from a selected object. Typically, the GUI allows for the selection of an object, from which it is possible to get a particular mapping for that object.

SdmUnitsFamilyThe SdmUnitsFamily class contains the units’ information for an attribute in the database. Methods are provided to retrieve all possible unit conversions for this attribute and the factors used to convert its values between units systems. For instance, an attribute E11T has stored units of PSI, which might require conversion to PA, GPA, PSI, and MSI when changing units systems. You can retrieve the factors required to convert the attribute value from one system to another by providing the FROM and TO unit systems.

SdmPropertySetThe SdmPropertySet class contains the properties of an object in the database. A method exists to identify the SdmDataClass that represents the data structure, which provides access to the SdmAttributes that are contained in this object. It has methods to get the attribute values and annotations from the object given the SdmAttribute information.

SdmObjectThe SdmObject class represents an object in the database, a property set or mapping object. An SdmObject has methods to extract values from the database for its given attributes. The attributes are retrieved from the SdmObject using the related SdmDataClass. A method exists to get the related SdmDataClass and then get the attributes for the data class that are in turn applied to the get value method to retrieve the values. Setting values into an SdmObject is done with the set methods.

From the SdmObject, a mapped process can be created to transform an object. To create the SdmProcess object, you must pass in a mapped process data class. See “SdmProcess” for more information on creating the SdmProcess object.

Page 69: MSC Enterprise Mvision

69CHAPTER 5Using the MSC EMV Integrated Client

SdmProcessThe SdmProcess class is used to run externally defined processes on selected SdmObjects.

To create and run an external process:

1. Access the mapped data classes from the SdmObject. This is typically returned from the getMappedToDataClasses method from the SdmDataClass object.

2. Create the SdmProcess object by passing in a mapped process data class, typically returned from the getMappedToDataClasses methods.

3. Call the launchProcess method on the SdmProcess object to run an externally defined process with the selected SdmObject.

4. Use the SdmProcess method called loadPrimaryOutput to retrieve the output from the process into an SdmObject.

SdmMappedDataThe SdmMappedData class is used to access information that has been mapped through the SdmICGui mapObject method. It provides a container to receive the mapping information, such as the attributes and values that were mapped during the GUI process.

SdmValueThe SdmValue class contains the values returned from the SdmObject. Every value returned from an SdmObject is an SdmValue. The SdmValue class contains methods that determine the value’s type and to convert the SdmValue to its actual type. These types currently include strings, integers, measures, matrices, and curves.

SdmMeasureAn SdmMeasure is a class that represents a real number, stored as a double, with its associated units and numeric precision. A method is provided to convert this real number from the stored database units to the desired unit system. You must get an SdmMeasure from an SdmValue.

SdmCurveAn SdmCurve contains the data and methods required to support a 2 dimensional curve. There are methods to retrieve the points, to retrieve the min and max of both axes, to perform interpolation and to retrieve the axis labels and units. Like the SdmMeasure class, a method is provided to convert the points to a new unit system from the stored database unit system. You must get an SdmCurve from an SdmValue.

Page 70: MSC Enterprise Mvision

70

SdmMatrixAn SdmMatrix contains the data and methods to support a two-dimensional matrix. There are methods to retrieve the values. Like the SdmMeasure, a method is provided to convert the points to a new unit system from the stored database unit system. You must get an SdmMatrix from an SdmValue.

Page 71: MSC Enterprise Mvision

6 The MSC EMV Integrated Client GUI

� Overview of Integrated Client GUI

� GUI Components

� GUI Preference Settings

Page 72: MSC Enterprise Mvision

72

Overview of Integrated Client GUIThe MSC EMV Integrated Client GUI is a Java program that is launched internally within the SdmICGui class by the methods login, pickObject, and mapObject.

The GUI is launched in a separate process. This process is not persistent. When the GUI is launched, it performs one function, returns any obtained information, returns a status and textual comment, and then the GUI process exits.

The GUI settings consist of the Datasource, Navigation View, Category, and Units parameters. These settings are selectable by the user as desired. These settings are listed in the order of dependency on each other.

Note: If the Datasource selection is changed, the dependent parameters Navigation View, Category, and Units may become invalid and are automatically set to a default valid value.

SdmICGuiThe SdmICGui object holds the settings for the GUI. Each time the GUI appears, the SdmICGui object passes to the GUI the settings Datasource, Navigation View, Category, and Units. After the GUI has been closed, the settings in SdmICGui object are set to be consistent with those set by the user in the GUI. As a result, each time the GUI is subsequently displayed, the GUI settings are restored to their former state.

The SdmICGui object holds the user’s login name and password. Whenever the GUI invokes the Login Frame, any valid login data will be returned to the SdmICGui object so that it can be used in a subsequent launch of the GUI. If a launch is accompanied with valid login data, the GUI will automatically log in without displaying a Login Frame.

Page 73: MSC Enterprise Mvision

73CHAPTER 6The MSC EMV Integrated Client GUI

GUI ComponentsThe GUI contains three main graphical components:

• Login Frame

• Material Browser Frame

• Material Frame

Login FrameThe login method in SdmICGui acts as a simple GUI-based log in procedure. It displays the GUI Login Frame. Once the user has successfully logged in, which indicates that the user name and password are valid, the GUI closes and the function returns. The entered login name and password are transferred back to the SdmICGui object. If the user cancels the login, the GUI closes and an exception is thrown.

Login Frame

Material Browser FrameThe pickObject method allows a user to select a material and to return the material reference back to the SdmICGui object. If a session has not already been established, the Login Frame appears. Once logged in, the Object (material) browser frame appears, as shown in the next figure.

Page 74: MSC Enterprise Mvision

74

Material Browser Frame

The Material Browser GUI has three main sections, which are labeled as follows:

• Parameters - Provides functionality that allows the user to change Databanks, change units systems, or select from pre-set views of the current Databank.

• Pedigree - Records the value of hierarchy attributes (the "Pedigree") for the current material selection.

• Unlabeled - The Criteria List used for browsing the materials in the current databank.

• Properties - User controlled and session dependent properties.

The user can change the settings in the Parameters section using the combo boxes. When the desired settings are established, the user begins to browse the Databank by making selections from the Criteria List. The Criteria List provides values for particular attributes based on the current queries performed. Each time a selection is made, the Pedigree is updated to reflect the change.

Caution: The user can change the Parameter settings at any time, which will cause the browsing to re-position at the root of the Criteria List as determined by the settings.

Once a unique object (material) has been selected, a Material Frame appears representing the selected material and displaying related information.

Page 75: MSC Enterprise Mvision

75CHAPTER 6The MSC EMV Integrated Client GUI

Material FrameThe Material Frame has three sections, which record the state of the selected material object:

• Settings - Lists the version of the MSC Enterprise Mvision server, the source of the data, the Export Target, the name of the Mapping Template, and the Export Form, and the name of the MSC Mvision Databank

• Pedigree - Lists the values of all hierarchy attributes (the "Pedigree") for the current material object.

• Parameters - Lists the values for Mapped Parameters for the selected material object.

• Preferences - User controlled, session-specific preferences. Changes apply to all frames in the user session.

Material Frame

At this point, it is possible to continue browsing but only one Material Frame (either the Material Browser or Material Frame) will be visible at a time. This means that:

Page 76: MSC Enterprise Mvision

76

• If the user selects Ok in the Material Frame, the GUI closes and the reference to the picked material is passed back to the calling application.

• If the user selects Cancel in the Material Frame, the Material Frame will be dismissed leaving the Object (Material Browser) Frame available for further browsing.

• If the user selects Cancel in the Object (Material Browser) Frame, the GUI is closed.

The mapObject method allows a user to select a material and to return the material’s export data and reference back to the SdmICGui object. The mapObject method is called with an argument indicating which data structure, the Export template, (for example, the PTC_Pro_ENGINEER.Material_Template) is required by the calling application. The mapObject case requires that the GUI only show Databanks that contain a mapping to the specified template. The default Category for each Databank is controlled by the setting of the property in the global configuration file MscIntegratedClient.properties on the MSC EMV Integrated Client (for example, <data_source_name>.<template_name>.defaultCategory).

Like pickObject, the Object browser Frame allows the user to select settings and to browse through the pedigree to select a unique material. A material selection causes the Material Frame to appear showing the material parameters mapped to the desired data structure. If a parameter has a value, it will be grayed out to prevent editing. If a parameter has no value, it will be editable by the user.

• If the user selects OK in the Material Frame, the user is warned if the export consists of inconsistent data. The GUI then closes and the reference to the picked material is passed back to the calling application along with the mapped data structure.

• If the user selects Cancel in the Material Frame, the Material Frame is dismissed leaving the Material Browser Frame available for further browsing. If the user selects Cancel in the Material Browser Frame, the GUI is closed.

Page 77: MSC Enterprise Mvision

77CHAPTER 6The MSC EMV Integrated Client GUI

GUI Preference Settings

Persistence of user preferencesThe user can modify certain properties while working with the Integrated Client. These changes get persisted on the client machine at the end of each GUI session, and are picked up for the next GUI session. If no persisted data can be found on a client machine, for instance, when it is the first time user starts the EMV IC on that machine or persisted data has been manually deleted by the user, then the system initializes these properties with internally defined values.

There are currently two preferences supported in the Integrated Client GUI, the toggle on/off of footnotes and auto-pick. Turning off auto-pick requires a user to pick through levels of the Pick List at which there is a single value for the represented attribute. The auto-pick preference is not persisted between sessions.

Changes made in one frame will be propagated to the other frame on the fly. This property along with others are defined in a file on the local machine at:

<userHome>/emvic/<emvUsername>/preferences.properties

The file may look similar to the following:

#Preferences for user 'guest'#Thu Sep 01 14:08:04 PDT 2005footNoteOn=false

Customization Of GUIThe look and feel of the Integrated Client GUI can be customized by modifying the properties found in:

<emvInstallRoot>/config/MscSdmIC.properties

###################################################### GUI Look&Feel Properties for SDM Integrated Client###################################################### If the property is not defined, Integrated Client will use # system look and feel by default. That is, it uses # WindowsLookAndFeel on Windows OS, and MacLookAndFeel# on MAC OS, etc. # You can customize it with the following options# - com.sun.java.swing.plaf.windows.WindowsLookAndFeel# - com.sun.java.swing.plaf.motif.MotifLookAndFeel# - com.sun.java.swing.plaf.mac.MacLookAndFeel# - javax.swing.plaf.metal.MetalLookAndFeel#gui.browser.lookandfeel = com.sun.java.swing.plaf.motif.MotifLookAndFeel

Page 78: MSC Enterprise Mvision

78

Page 79: MSC Enterprise Mvision

A Integrating an Application with EMV Using the Integrated Client

� Overview

� Creating the Type II Integration

� Designing the InteIgration User Interface

� Installing the Integration

Page 80: MSC Enterprise Mvision

80

OverviewThis document provides supplementary information to the process of creating a Type II integration as defined in Appendix A of the Integrated Client Installation and Implementation Guide. It outlines the steps required to integrate the MSC Enterprise Mvision Integrated Client with an application that requires material data from a specified MSC Mvision databank to be mapped to a formatted set of parameters that is understood by the application. The integration requirements used in the examples are described in the context of a pre-processor integration, such as Patran, with MSC Enterprise Mvision.

The first step in integrating an application with MSC Enterprise Mvision is determining what pattern is needed for the integration. Typical patterns of integration include:

• Type I. Material Reference Only - The application only requires a reference to a material.

• Type II. Mapped Data in Application Template(s) - The application requires material data to be mapped to a particular form.

• Type III. Data Source specific data - The application requires data from a particular data source and has specific knowledge of the schema of that database.

A Type I integration is useful for applications that reference materials, but do not require materials data, such as a PDM (Product Data Management) system.

A Type II integration is useful for applications that are to be integrated to a variety of data sources with varying schema (for example, metal databases and composite databases).

A Type II integration requires that an export template or templates be defined or identified that contains the data required by the application and that data sources have a mapping to those templates. Type III integration is useful for applications that are to be integrated tightly with data from data sources that have a well-known schema.

Page 81: MSC Enterprise Mvision

81APPENDIX AIntegrating an Application with EMV Using the Integrated Client

Creating the Type II IntegrationTo integrate a client application with the MSC Enterprise Mvision Integrated Client the following tasks are required:

1. Define a neutral format template file containing all of the material data attributes (parameters) that must be mapped from an MSC Mvision databank to support the integrated solver(s). It is possible that the neutral format template file can be constructed in a manner such that subsets of the required material properties are obtained through the API. Each of the subsets can be mapped on demand, or all of the required parameters can be mapped in bulk.

2. Create unique mapping file(s) for each MSC Mvision databank to be accessed by the integration. These mapping files are populated with those databank attributes whose definitions correspond appropriately to the neutral format template parameters. Pre-existing mapping files provided with MSC Enterprise Mvision could be used if the defined mappings support the current application’s requirements.

3. Integrate the application by invoking methods in the API.

4. Configure the EMV Server to enable use of the integrated application.

Neutral Format TemplateWhen mapping to a pre-processor, the template file may contain all parameters required by all the solvers it supports. The pre-processor must then store the data for use by the solver(s) accessed during that session. This has the advantage of requiring a single Integrated Client session to retrieve all the data from the MSC Mvision Databank for a user running several solvers during a pre-processor session. Its disadvantage is that the user importing materials to the pre-processor from an MSC Mvision databank will be presented with quite a lengthy list of material properties to review and edit or annotate, when all he may require, for instance, are the materials properties required to create an MSC.Nastran MAT1 card.

The following is the format used as a template in the EMV integration with Patran, Patran Materials Enterprise. The file called EmvPatMaterialInfo.txt is a simple ASCII file used by the integration tool to map values from EMV to Patran and the solvers that it supports:

Target Class Name, Linearity, Category, Directionality, Type, Number of Constitutive Models, Constitutive Model and corresponding Magics pairs, Number Of Properties, Property Names and their Ids in Patran pairs.

MSC.Nastran:MSC_NASTRAN_2001.Isotropic.None;1;1;1;0;3;

Page 82: MSC Enterprise Mvision

82

1,0,0,0,0,0;9;FILENAME,0;MID,0;MCSID,0;E,2;NU,5;RHO,16;ALPHA,24;TREF,1;GE,30;4,0,0,0,0,0;3;ST,99;SC,100;SS,101;18,0,0,0,0,0;2;K,17;CP,23;@

MSC_NASTRAN_2001.Isotropic.Temperature;1;1;1;0;3;1,0,0,0,0,0;12;FILENAME,0;MID,0;EvsTemp_constant, 2;EvsTemp,2;NUvsTemp_constant, 5;NUvsTemp,5;RHO,16;ALPHAvsTemp_constant, 24;ALPHAvsTemp,24;TREF,1;GE,30;MCSID,0;4,0,0,0,0,0;6;STvsTemp_constant, 99;STvsTemp,99;SCvsTemp_constant, 100;SCvsTemp,100;SSvsTemp_constant, 101;SSvsTemp,101;18,0,0,0,0,0;4;KvsTemp_constant, 17;

Page 83: MSC Enterprise Mvision

83APPENDIX AIntegrating an Application with EMV Using the Integrated Client

KvsTemp,17;CPvsTemp_constant, 23;CPvsTemp,23;@

ANSYS5:

ANSYS_Release_5.Isotropic.None;1;1;1;0;2;1,0,0,0,0,0;7;FILENAME,0;MID,0;E,2;NU,5;RHO,16;ALPHA,24;TREF,1;10,0,0,0,0,0;2;K,17;CP,23;@

ANSYS_Release_5.Isotropic.Temperature;1;1;1;0;2;1,0,0,0,0,0;13;FILENAME,0;MID,0;T_MIN,0;T_MAX,0;T_NUM,0;EvsTemp_constant, 2;EvsTemp,2;NUvsTemp_constant, 5;NUvsTemp,5;RHO,16;ALPHAvsTemp_constant, 24;ALPHAvsTemp,24;TREF,1;10,0,0,0,0,0;4;KvsTemp_constant, 17;

Page 84: MSC Enterprise Mvision

84

KvsTemp,17;CPvsTemp_constant, 23;CPvsTemp,23;

@

Mapping Material DataThe Integrated Client API has the capability to retrieve mapped material data from the MSC Enterprise Mvision server. The mapped data is contained in an SdmObject. The mapping of the material data on the MSC Enterprise Mvision server is enabled through the following file types that reside on the server:

• Mapping Files -Mapping files are databank specific, and define the relationship of databank attributes to parameters defined in the template file.

• Template Files-Template files provide a list of parameters with associated descriptions and data types required by the solver to perform its calculations.

The configuration of the template file is dependent upon the application being integrated. When supporting a single solver, the template file need support only the types of materials (ie. Isotropic, Orthotropic or Anisotropic) and the specific dependencies (ie. Temperature-dependent, Strain-dependent) required by that solver. For example, MSC.Nastran mapping and template files may be required to support a MAT1, MAT2, and MAT4 cards. This would require a template that defines parameters to map material properties (ie. Young’s Modulus or Yield Strength) that define three different material models:

• Linear istropic materials with no dependencies

• Linear isotropic materials with temperature dependence

• Linear anisotropic materials with no dependencies

A snippet of such a template file follows:

Template File as used by MSC NastranHEADER Isotropic "Dependencies";TEMPLATE None "expfunc" "write_nastran_iso_none"; FILENAME : "Output Filename" STRING; MID : "Material ID (MID)" INTEGER; E : "Young's Modulus (E)" REAL; NU : "Poisson's Ratio (NU)" REAL; RHO : "Density (RHO)" REAL;ALPHA : "Thermal Expansion Coefficient (A)" REAL;TREF : "Reference Temperature (TREF)" REAL;GE : "Structural Damping Coefficient (GE)" REAL;ST : "Stress Limit in Tension (ST)" REAL;SC : "Stress Limit in Compression (SC)" REAL;SS : "Stress Limit in Shear (SS)" REAL;MCSID : "Material Coordinate System ID (MCSID)" INTEGER;

Page 85: MSC Enterprise Mvision

85APPENDIX AIntegrating an Application with EMV Using the Integrated Client

K : "Thermal Conductivity (K)" REAL;CP : "Specific Heat (CP)" REAL;END_TEMPLATE;

A corresponding mapping file would be required to map database attributes to these parameters. A snippet the corresponding mapping and template files is shown below:

Database Mapping File

MAPPING MSC_NASTRAN_2001.Isotropic.None; E : "E11T", "E11C"; NU : "NU12", "(E11T/(2*G12))-1", "(E11C/(2*G12))-1"; RHO : "DENS"; ALPHA : "INTERP_X(CTE11vsTEMP, TEMP)"; TREF : "TEMP"; ST : "YS11T", "US11T"; SC : "YS11C"; SS : "US12S"; K : "INTERP_X(CTC11vsTEMP, TEMP)"; CP : "INTERP_X(CPvsTEMP, TEMP)";END_MAPPING;

Coding the IntegrationThe following code snippets provide an example of such an implementation, which in this case, references the sample Template and Mapping files:

// Establish a connection to the SDM platform server (MSC Enterprise Mvision) SdmClientConnectionPtr connection; // Connect to EMV getEmvClientConnection ("Application Name", &connection); // Login to the EMV server connection->login("userName", "password"); // Select an object using the C++ API char *objectReference; getDefaultObject(connection,&objectReference); cout<< endl<< "The selected object is: "<< objectReference<< endl; // Load the object from the reference SdmObjectPtr object; connection->loadObject(objectReference,&object); // Lookup the data class for the mapping data structure SdmDataClassPtr mappedToClass = object->getDataSource()->getSchema()- >getDataClassByName("MSC_NASTRAN_2001.Isotropic.None"); // Create a process to do the mapping SdmProcessPtr process; object->createMappingProcess(mappedToClass,&process); // Execute the mapping process process->launchExecution(); // Access the mapped object created by the process // Each time launchExecution is called, a new primary output is

Page 86: MSC Enterprise Mvision

86

// created. As the parameters to the process are changed, the result // of the process will most likely change. SdmObjectPtr mappedObject = process->loadPrimaryOutput();

Selecting a Material Using the GUI

Whenever material selection is required, the GUI can be displayed using the API function SdmICGui::pickObject. This method returns a reference to the material selected.

Whenever a particular data structure is required (such as Type II), the GUI can be displayed using SdmICGui::mapObject(), with the name of a template as an argument. The method returns the desired data structure.

Storing the Identifiers of a Material

To store a reference to the material in the application’s data file/database, the following should be done:

• Using the reference to the material returned from the GUI, the material object could be loaded into memory using SdmClientConnection::loadObject().

• The list of attributes can be accessed using SdmDataClass:getIdentifiers().

• Values can be accessed using SdmObject::getValue(SdmAttribute attribute). Values can be converted into strings using value.asString().

• Reference variables dataSourceName and unitsSystem must also be stored. Note: The identifier attributes are not to be confused with the unique identifier attribute (UID) stored in the application-specific database.

The UID should not be used to reconnect to the material because it could change if the application’s database is updated, which causes the object references to be reordered. By using the identifier attributes, the user is assured of getting the most up-to-date material from the application’s database.

Reconnecting to Material from Identifier

A material can be reconnected to the MSC Enterprise Mvision server by:

• Building up the identifiers string

• Creating a list of values

• Forming conditions to search the database

By using SdmICGui::mapObject() and the conditions string, a reconnect can be attempted. If the method returns SDM_FALSE, then no material was found. This result could mean that the material has changed or was removed. If the search returns SDM_TRUE, the material was found and a reconnect is performed.

Page 87: MSC Enterprise Mvision

87APPENDIX AIntegrating an Application with EMV Using the Integrated Client

Storing Properties in Application Database

The properties retrieved can be stored in the application specific database. All attributes of both mapped data structures and unmapped data can be accessed using the methods in the SdmObject class.

Documenting Source of Data

It is important to document the source of the material data stored in applications. To facilitate this, the result of the mapObject function has a method writeComments to write a formatted set of textural comments to an application defined location.

For integration with Pro/ENGINEER, for example, this results in comments in the trail file. The comments include:

• Date/time

• Data source

• Units

• Material reference

• Identifiers

• Any parameters to the mapping functions (such as expanded search selections)

• Mapped values w/ mapping expressions, units, and footnotes

Server-Side ConfigurationIn order to facilitate the update functionality, identifiers must be associated with the EMV material stored in the pre-processor database to allow for full identification of the material when accessing EMV. These identifiers are a series of name-value pairs as specified in the MscIntegratedClient.properties file in the <emv_install_dir>/config directory. The easiest way to identify an appropriate set of attributes to use as identifiers is to open the MSC Mvision Database in MSC Mvision Builder and set the Browser to “Flat View” and “Make Rows Unique.” In most cases, the attributes used as “Column Headers” in the Flat View will be sufficient to uniquely define the material for retrieval from EMV. In the case of the Patran scenario above, the line of code in this file that identifies the name value pairs is:

demo_metals.ENVIRONMENT.identifiers = CHAPTER MATERIAL ALLOY CNAME DESIG FORM TREAT DIMS TEMP DETAIL KT TUS THICK SURFACE CAREA ORIENT EXPOS SIG_RATIO MSTRESS BIAX_RATIO

In this same MscIntegratedClient.properties file is another line item which affects the integration. This identifies the Category that is associated with the default view in the Integrated Client. The Categories must be defined for each database in the Databases.txt file located in the <emv_install_dir>/config/ directory.

demo_metals.MSC_NASTRAN_2001.Isotropic.None.defaultCategory = Property Data

Page 88: MSC Enterprise Mvision

88

Designing the InteIgration User InterfaceWhen designing an integrated application, data import may be done in batch mode. However, if user interaction is required to support desired functionality, a user interface will need to be designed. The Patran integration user interface is used as an example of the sort of considerations required. The following discussion assumes that a Patran session has been initiated and a Patran database has been opened. The Materials preference must be selected in Patran.

Design Consideration 1: Setting the Analysis Preference

Set the solver to which the EMV material properties will be mapped. A GUI is not usually required, as much as the association of the current solver value in the pre-processor with the EMV session to follow.

Choose the Preference of interest: MSC.Nastran, ABAQUS, or ANSYS 5.

Design Consideration 2: Menu Options

Provide a menu item to initiate the functions of the integration tool/interface.

Click TOOLS->EMV->Select Material

Design Consideration 3: Interface Options

Provide a user interface that allows the user to access the integration tool functions. In this case, they include Create and Update. Patran relies on built-in materials functionality to Delete.

Page 89: MSC Enterprise Mvision

89APPENDIX AIntegrating an Application with EMV Using the Integrated Client

A dialog appears with various options seeking inputs from the user. The first item to select is whether to create a new EMV material or to update an existing EMV material. The two GUIs differ slightly – Update requires you to select the current EMV material that you wish to update.

Enter Material Name, choose Symmetry and Template, and then click OK. MSC EMV Integrated Client's login page appears. Type in a valid user name and password.

Design Consideration 4: Requiring Login

The Login GUI may be bypassed if the user name and password are sent programmatically. This is useful if updating EMV materials in batch mode.

Page 90: MSC Enterprise Mvision

90

You are now operating within the IC Java GUI to select a material. Select a Databank, Navigation View, Category, and Units, and the material of interest.

The next frame, the Material Frame, displays the pedigree information and mapped properties for the selected material. Click OK to create the material in the Patran database with the name entered previously.

Page 91: MSC Enterprise Mvision

91APPENDIX AIntegrating an Application with EMV Using the Integrated Client

This returns you to Patran functionality. In Patran, select Materials and double-click on the material name in the list-box to see the material created in Patran.

Page 92: MSC Enterprise Mvision

92

Page 93: MSC Enterprise Mvision

93APPENDIX AIntegrating an Application with EMV Using the Integrated Client

Design Consideration 5: User Modification of Imported Data

Back in the Patran Materials GUI, you have access to standard functions: Create, Show, Modify, and Delete. The decision arises as to whether you want to modify these functions with regard to data imported from the EMV database. In some integration tools, the decision was made to yield imported values non-editable.

Update modifies the material that is created in Patran if the material is selected from EMV database. The Update option reconnects to the MSC EMV Integrated Client (username and password as same above) and will navigate the user to the Material Summary of the material to be updated.

Page 94: MSC Enterprise Mvision

94

Installing the IntegrationThis section discusses various issues pertinent to the packaging and installation of the Integrated Client with the integrated application.

Packaging IssuesThis section discusses methods of installation of the integrated application with the EMV Integrated Client. First of all, there are several dependencies to beware of:

1. The IC can use versions of the EMV server which are equal or higher than itself.

2. The IC must match the version of the API with which the integration tool was built unless otherwise tested and shown to work correctly.

For instance, IC 2004r2 can connect to EMV 2004r1.3.1 and it selects a material, but then displays the error message, "Invalid template <> was specified", then it won't reconnect, finally, it hangs Patran."

What needs to be verified is that all client applications that use the IC, are pointing to the respective IC library (MscSdmIC_Emv.dll) version they were linked against (at run-time). e.g.

Client App #1 linked with IC2004r1.3 library (MscSdmIC_Emv.lib) must be pointing to the corresponding IC version at run-time (MscSdmIC_Emv.dll version 2004r1.3). Client App #2 linked with IC2004r2 library (MscSdmIC_Emv.lib) must be pointing to the corresponding IC version at run-time (MscSdmIC_Emv.dll version 2004r2).

If Client App #2 were to pick up the 2004r1.3 version of the DLL at run-rime, then you will get unpredictable results. This can happen if your "path" environment variable (Windows) is pointing to an incorrect directory.

This becomes a complicated issue when several different integrated applications are running on a server (most problematic on Windows), as version conflicts arise. In general, if you have multiple applications that have integrated with different versions of the IC library, then you can run into problems due to the fact that the IC locates the run-time DLL (MscSdmIC_Emv.dll) for all the applications using the PATH environment variable. In addition to the DLL, the JAR file used for the GUI (MscSdmIC_Emv.jar), must be in sync (same version) as the DLL. If you mix and match DLL's from different versions, or if at run-time different versions are picked up by the system, you are asking for trouble.

The solution to this problem is to bundle the required IC components (DLL, JAR, and Property File) with the integrated application. To enable this, 2004R3.2 and higher versions of the Integrated Client include a new method in the API, getEmvClientConnectionUsingPropFile, that allows the application to specify its own configuration in the properties file, MscSdmIC.properties, and thereby avoid conflicts with other applications that might be using the global IC installation. The application

Page 95: MSC Enterprise Mvision

95APPENDIX AIntegrating an Application with EMV Using the Integrated Client

will then dynamically load the Integrated Client DLL (C++ applications) that it deployed. The application will also modify its version of LaunchIcJavaGui.bat, that loads the Integrated Client DLL for the Java GUI.

The Unix versions of the Integrated Client already contain the configuration script that is required. $INSTALL_DIR/install/configure_IC.

The Integrated Client components that need to be bundled with the application include:

In addition, the installation must set the MSC_SDM_IC_PROPERTIES_FILE environment variable to point to: config/MscSdmIC.properties.

As an examples, the Patran subdirectories contain the following Emv-related files, all serving a specific function in the integration tool.

Component Function

bin/LaunchIcJavaGui.bat Requires modification of path information relative to the application installation location.

bin/MscSdmIC_Emv.dll Integrated Client DLL (shared library on Unix)

config/MscSdmIC.properties Integrated Client properties file

config/Messages.properties Message properties file required by Integrated Client

doc/gui Help text for Integrated Client Java GUI

images MSC logo for Integrated Client Java GUI

java Java bundled with Integrated Client

lib/MscSdmIC_Emv.jar Integrated Client Jar file

Directory File Definition

<patran_home> EmvPatMaterialInfo.txt Provides mappings between API values and specific material card entities

EMVPatranUI.pld Provides the GUI from which integration functions are invoked within Patran

emv_ic.pm See below

Page 96: MSC Enterprise Mvision

96

emv_ic.pm - provides the following information:$emv_ic_file = $p3_home . "\EmvPatMaterialInfor.txt";setEnv ('MSC_EMV_PAT_MATERIAL_INFO_FILE',$emv_ic_file

$emv_ic_dll = $p3_home . "\\bin\\exe\\EmvPat.dll";SetEnv ('MSC_EMV_PAT_DLL_NAME', $emv_ic_dll);

LoggingA logging mechanism may be implemented. In the Patran Integration it is controlled by an environment variable, MSC_PATRAN_EMV_LOG_FILE. This and all required environment variables should be set by the Installation scripts.

EMV is creating some log file in the installation directory...

Patran-EMV Integration Log File recording at ....

The environment variable XERCESC_NSL_HOME is found...

The environment variable MSC_SDM_IC_PROPERTIES_FILE is found...

Log file recording stopped...

Verifying the Server ConnectionAn installation utility can be used to verifying the existence/version of the EMV server - VerifyServerConnection.exe which uses the include file, EmvClientConnection.h.

The content of the EmvClientConnection.h is as follows:

#ifndef EMV_CLIENT_CONNECTION_INCLUDED#define EMV_CLIENT_CONNECTION_INCLUDED

/* This header file contains the definition of the function getEmvClientConnection that enables an SdmClientConnection to be created to an Emv Server. This is the main entry point for all clients wishing to access the EMV Server through the SdmClientConnection interface. Copyright: MSC.Software (c) 2002*/

<patran_home>/bin/exe EmvPat.dll Provides the functionality for the integration tool

<patran_home>/bin/exe MscSdmIC_Emv.dll Provides the functionality for the EMV Integrated Client

Page 97: MSC Enterprise Mvision

97APPENDIX AIntegrating an Application with EMV Using the Integrated Client

class SdmClientConnection;

#ifdef WIN32#ifdef EMVIC_EXPORTS#define EMV_INTEGRATED_CLIENT_API __declspec(dllexport)#else#define EMV_INTEGRATED_CLIENT_API __declspec(dllimport)#endif#else#define EMV_INTEGRATED_CLIENT_API#endif

/** Creates an SdmClientConnection that enables access to an EMV Server * @param appName the application name using the integrated client * @param client the client connection created*/extern "C" EMV_INTEGRATED_CLIENT_API void getEmvClientConnection(const char *appName, SdmClientConnection **client);

/** Creates an SdmClientConnection that enables access to an EMV Server* @param appName the application name using the integrated client* @param propFileName the fully qualified property File name to be used by* the integrated client, in place of "MscSdmIC.properties".* @param client the client connection created*/extern "C" EMV_INTEGRATED_CLIENT_API void getEmvClientConnectionUsingPropFile(const char *appName, const char* propFileName, SdmClientConnection **client);

#endif //EMV_CLIENT_CONNECTION_INCLUDED

Setting Directory PermissionsThere are two directories which require ‘write’ permissions: the <ic_install>/java directory and the user’s home directory.

The EMV IC writes a directory to the user’s home directory called emvic. The user’s personal preferences are stored in this directory in the file, preferences.properties.

The EMV IC is deployed with its own Java installation. The Java .systemPrefs directory must be writable. If using the configure_IC script, the following script is executed:

chmod 755 bin/.bin/*Java*chmod 755 lib/lib*

The Java file structure is as follows:

.

./j2re1.4.2_06

./j2re1.4.2_06/.systemPrefs

Page 98: MSC Enterprise Mvision

98

./j2re1.4.2_06/.systemPrefs/.systemRootModFile

./j2re1.4.2_06/.systemPrefs/.system.lock

If permissions are not set during installation, the following are among the issued errors:

java.util.prefs.FileSystemPreferences$3 runWARNING: Could not create system preferences directory. Systempreferences are unusable.java.util.prefs.FileSystemPreferences$3 runWARNING: Could not lock System prefes. Unix error code 807513880.

Page 99: MSC Enterprise Mvision

B Contents of the Integrated Client Installation

� Contents of Installation on Microsoft Windows

� Contents of Installation on UNIX

Page 100: MSC Enterprise Mvision

100

Contents of Installation on Microsoft WindowsThe following describes the files and directories that are installed for Windows 2000/XP.

• Files in the bin Directory

• Files in the images Directory

• Files in the config Directory

• Files in the doc Directory

• Subdirectories in the include Directory

• Files in the lib Directory

• Subdirectories in the src Directory

Files in the bin Directory

The file: Contains:

DumpServerContents.exe This sample executable demonstrates connecting to an EMV Server and listing out all of the data sources, their navigation views, the category within the navigation views, the units systems, and the schema of each data source.

LaunchIcJavaGui.bat Batch script invoked by the API to launch the selector GUI.

MapObjectInGui.exe This sample executable demonstrates the selector GUI being started from C++, and requesting a mapped data structure of "MSC_NASTRAN_2001.Isotropic.None". After the GUI user has picked an object and created the mapped object, control is passed back to the C++ where the attributes of the mapped object are displayed.

MapDefaultObjectInGui.exe This sample executable demonstrates starting the selector GUI from C++, and requesting a mapped data structure of "MSC_NASTRAN_2001.Isotropic.None" for the default material passed in.

Page 101: MSC Enterprise Mvision

101APPENDIX BContents of the Integrated Client Installation

MapObjectInApi.exe This sample executable demonstrates selection of an object using the C++ API. A mapped structure is created from the selection. The example lists the available values for each property set to allow for different property set rows to be used in the mapping algorithm. It also displays the current values used for each property set.

MscSdmIC_Emv.dll The MSC EMV Integrated Client DLL for Windows. The directory path containing this DLL (bin directory) must be in the users’ path environment variable. InstallShield sets this path automatically during installation.

PickObjectFromGui.exe This sample executable demonstrates starting up the selector GUI from C++. After the GUI user has logged in and selected an object, control is passed back to the C++ program where the attributes of the object are displayed. The program then reattaches to the GUI using the object reference returned from the initial execution of pickObject. The attributes of the object are displayed as in the first execution. A summary of each of the property sets is also created.

The executable launches the GUI a second time to demonstrate the pickObject methods’ capability of re-connecting to a previously selected object (that is, first launch of GUI selects an object; second launch of GUI re-connects to the previously selected object).

ShowDefaultObjectInGui.exe This sample executable demonstrates connecting to the Emv Server from C++, selecting an object using a list pick interface on the first data source, navigation view, and category. The GUI is started up with the selected material as the default.

TestICJava.bat Batch script, which tests the Java interface. Execution of this script will result in output similar to that, which is obtained by running TestICProgram.exe.

Files in the bin Directory (continued)

The file: Contains:

Page 102: MSC Enterprise Mvision

102

TestICProgram.exe MSC EMV Integrated Client sample code executable. The intent of providing this test executable in the distribution is to demonstrate as many of the API interfaces and methods as possible. In it’s current state, some of the features demonstrated in the executable are:

• Create a connection and log in to the EMV server

• Traverse through all data sources/navigation views/categories and select a material object for each category

• Load the selected material object, write out the objects’ attributes, write out a summary of the objects’ property sets, and so on.

VerifyServerConnection.exe MSC EMV Integrated Client sample code executable that allows verification of a valid connection between the Integrated Client and the EMV Server specified in the MscSdmIC.properties file.

Files in the images Directory

images Directory where the GUI ancillary image files are stored.

Files in the config Directory

The file: Contains:

MscSdmIC.properties The MSC EMV Integrated Client properties file. The environment variable MSC_SDM_IC_PROPERTIES_FILE must be set to point to this file. This is automatically set during the installation procedure on Windows.

Messages.properties The MSC EMV Integrated Client message properties file.

Files in the bin Directory (continued)

The file: Contains:

Page 103: MSC Enterprise Mvision

103APPENDIX BContents of the Integrated Client Installation

Files in the doc Directory

The directory: Contains:

doc/API Contains documentation of the MSC EMV Integrated Client API in HTML format. Opening the index.html file will allow viewing of all the files.

doc/gui Contains GUI help files of the MSC EMV Integrated Client. Help is activated from the GUI help button.

Subdirectories in the include Directory

include/C++ Directory containing MSC EMV Integrated Client API interface header files.

Files in the lib Directory

The file: Contains:

MscSdmIC_Emv.lib The MSC EMV Integrated Client library file for linking with user applications.

MscSdmIC_Emv.jar The MSC EMV Integrated Client Java jar file to be used with client Java applications.

Subdirectories in the src Directory

The directory: Contains:

src/C++ Directory containing the MSC EMV Integrated Client C++ sample code, and projects for building the sample code.

src/Java Directory containing the MSC EMV Integrated Client API Java interface files and sample code.

Page 104: MSC Enterprise Mvision

104

Contents of Installation on UNIXThe following describes the files and directories that are installed for the MSC EMV Integrated Client on the UNIX platforms. Note: Executables in the bin directory are wrappers for the .bin directory:

• Files in the bin Directory

• Files in the Directory bin/images

• Files in the config Directory

• Files and Subdirectories in doc Directory

• Files in the include Directories

• Files in the lib Directory

• Files in the src Directories

• Files in the install Directory

Files in the bin Directory

The file: Contains:

DumpServerContents This sample executable demonstrates connecting to an EMV Server and listing out all of the data sources, their navigation views, the category within the navigation views, the units systems, and the schema of each data source.

LaunchIcJavaGui Batch script that is invoked by the API to launch the selector GUI.

MapDefaultObjectInGui This sample executable demonstrates starting the selector GUI from C++, and requesting a mapped data structure of "MSC_NASTRAN_2001.Isotropic.None" for the default material passed in.

MapObjectInGui This sample executable demonstrates the selector GUI being started from C++, and requesting a mapped data structure of "MSC_NASTRAN_2001.Isotropic.None". After the GUI user has picked an object and created the mapped object, control is passed back to the C++ where the attributes of the mapped object are displayed.

Page 105: MSC Enterprise Mvision

105APPENDIX BContents of the Integrated Client Installation

MapObjectInApi This sample executable demonstrates selection of an object using the C++ API. A mapped structure is created from the selection. The example lists the available values for each property set to allow for different property set rows to be used in the mapping algorithm. It also displays the current values used for each property set.

PickObjectFromGui This sample executable demonstrates starting up the selector GUI from C++. After the GUI user has logged in and picked an object, control is passed back to the C++ program where the attributes of the object are displayed. The program then reattaches to the GUI using the object reference returned from the initial execution of pickObject. The attributes of the object are displayed as in the first execution. A summary of each of the property sets is also created.

ShowDefaultObjectInGui This sample executable demonstrates connecting to the Emv server from C++, selecting an object using a list pick interface on the first data source, navigation view, and category. The GUI is started up with the selected material as the default.

TestICJava Batch script, which tests the Java interface. Execution of this script will result in output similar to that, which is obtained by running TestICProgram.

TestICProgram MSC EMV Integrated Client sample code executable.

VerifyServerConnection This executable verifies the connection to the Enterprise Mvision Server.

Files in the Directory bin/images

bin/images Directory where the GUI ancillary image files are stored.

Files in the bin Directory (continued)

The file: Contains:

Page 106: MSC Enterprise Mvision

106

Files in the config Directory

MscSdmIC.properties The MSC EMV Integrated Client properties file. For operation the environment variable MSC_SDM_IC_PROPERTIES_FILE must be set to point to this file.

Messages.properties The MSC EMV Integrated Client message properties file.

Files and Subdirectories in doc Directory

SdmICManual.pdf PDF file containing MSC EMV Integrated Client documentation.

IntegratedClientManual.pdf Contains documentation of the MSC EMV Integrated Client API.

doc/gui Contains GUI help files of the MSC EMV Integrated Client. Use the GUI help button to activate the help.

Files in the include Directories

include/cplusplus Directory containing MSC EMV Integrated Client API interface header files.

Files in the lib Directory

MscSdmIC_Emv.jar The MSC EMV Integrated Client Java jar file to be used with client Java applications.

libMscSdmIC_Emv.so

The MSC EMV Integrated Client shared object for the Unix platforms.

Page 107: MSC Enterprise Mvision

107APPENDIX BContents of the Integrated Client Installation

Files in the src Directories

src/cplusplus Directory containing the MSC EMV Integrated Client C++ sample code and Makefiles for building the sample code.

src/java Directory containing the MSC EMV Integrated Client API Java interface files, and sample code.

Files in the install Directory

configure_IC Script that configures the Integrated Client installation. This script must be executed after the Integrated Client has been installed, for proper operation.

Page 108: MSC Enterprise Mvision

108

Page 109: MSC Enterprise Mvision

C Query Techniques

� The Object Paradigm

� Querying MSC Mvision Objects

� Simple Queries

� Advanced Queries

Page 110: MSC Enterprise Mvision

110

The Object ParadigmThe MSC Mvision Materials Information System employs a user-defined hierarchical interface, which is well suited to the display of materials information. Materials information and much general engineering information has a detailed pedigree associated with the information. Typical materials test data have a rich test history that includes the form of the test specimen (bar, sheet, laminate, and so on), the test environment, the test machinery and setup, the number of specimens tested, and much more. A hierarchy organizes and presents this information very effectively and is a familiar concept to most engineers.

Most relational database systems offer database access through Structured Query Language (SQL). Although versatile and powerful, relational database systems and SQL are not easily mastered. SQL has many advantages and indeed much of the MSC Mvision Database Programmatic Interface (DPI) syntax is based on standard SQL functions. SQL, however, does not offer the flexibility of modern object-oriented approaches. The MSC Mvision Materials Information System combines both the object-oriented approach and SQL.

Querying MSC Mvision ObjectsMSC Mvision uses is a hybrid object-oriented database engine. The key to using the object-oriented approach is to understand the types and structure of the objects that make up the system. Some of the more important objects are database, attribute, table, and list. Effectively querying of the database requires an understanding of the types of queries that can be performed on these objects.

Simple Queries, on page 113 of this appendix provides a description of typical MSC Mvision queries, syntax, and how to use them.

In addition to the basic object types, MSC Mvision can create and manipulate specialized modifications of the basic objects, such as "full text" attributes. Refer to the Building MSC Mvision Databanks User’s Manual for more information on specialized attribute types.

Accessing an object requires creating a query expression. When the query expression is evaluated, it is evaluated in the context of a particular object. For example, a query expression can be evaluated on a database or on a list that resulted from a prior query. You can think of a query expression as a message sent to any object. Each evaluation yields a result object, which itself can be treated as any other object in the system.

The object paradigm requires the following syntax for creating a query expression:

_InputList_Expression.conditions

or

InputList_Expression | conditions

Page 111: MSC Enterprise Mvision

111APPENDIX CQuery Techniques

• InputList_Expression - The expression applied to an object that creates the list of inputs for the query. The expression may be a table (relation) or a queried subset of a table, when querying a database object. The InputList_Expression specifies the hierarchy level that the query will interrogate.

• conditions - The query conditions to be applied to the object before the results list is created. Condition can be any valid query. For example, e11t>10 or form like '*sheet*'.

During execution of the query, MSC Mvision checks the syntax of the query expression.

When the query expression has been evaluated, the results are returned. If the query expression, “_material.form like '*sheet*'”, were used, the result would be a list whose elements (rows) were material table level objects. This example is a very simple case. The query, select, sort, and other expressions can be evaluated against any appropriate object. For example, we could apply another query to our list of materials, or sort them, or navigate down one of them to the next level (table) of the database, or select from them, and so on. All these operations use the same concepts of evaluating expressions against objects and interrogating the results.

Query results may be used in three ways:

• Each list element may be evaluated to extract attribute data at that level of the hierarchy.

• Each list element may be evaluated to extract attribute data at a higher level of the hierarchy.

• Each list element may be evaluated to produce a list of all related objects at the next lower level of the hierarchy.

Global Unique Identifier (UID)

As of version 2002, the MSC Mvision databank contains a UID (Global Unique Identifier) for every table row within the databank. This UID is a special property of each table row within the databank and is automatically created upon creation of the databank. The UID can be used in query expressions to quickly locate specific table rows. Expression messages are provided to facilitate the use of the table row UID in queries. Refer to the table in Expression Messages, on page 130.

Page 112: MSC Enterprise Mvision

112

The UID consists of three elements: the table name, a name space, and integer row identifier (external-id):

table_name-name_space-external_id (that is, material-default-1)

• The table name is the name of the table for which the table row is a member.

• The name space is a character string not to exceed 64 characters and by default is the name of the databank file for which the database was originally created. The name space can be one of two types:

• Database-managed name space (default name space)

• User-managed name space

A database-managed name space is associated with a specific database and is automatically generated (this is the type of name space created when a database is created). A user-managed name space is controlled by the user who specifies the identifiers associated with the specific table rows.

• The row identifier is an integer value that combined with the name space is unique to the table for which the table row is a member. When the row identifiers are automatically generated, they are a consecutive series of integers. The as generated row identifier is the internal_id, if a user modifies the UID then an external_id is created; otherwise, both the internal_id and external_id are the same.

Before You Start - Know the Databank Attributes

Key to performing queries in MSC Mvision is a thorough knowledge of the attribute names and their corresponding definitions used to store data in the MSC Mvision Databank. In order determine the appropriate operator for use in a query, you must know whether the attribute is defined as a character string (CHAR), real number (REAL), integer (INT), curve (FIGURE), matrix, or image.

If you are using an in-house databank, contact your database administrator for the names and definitions of these attributes. If you are using an MSC Mvision commercial databank, you will find a full definition of the databank schema’s and attributes in the MSC Mvision Materials Databanks User’s Guide and Reference delivered with the software. If for some reason you are missing this valuable resource, it can be ordered online at www.engineering-e.com/books under the product category called MSC Mvision.

If you have access to MSC Mvision Builder, you can also determine the attribute by using the Builder Function->List Attribute dialog. If you have access to the databank schema file, <databank_name>.def, you will find all the attribute types and definitions listed for each table in the databank.

Caution: Be aware of the databank structure and attribute definitions. Some attributes, such as specimen thickness, may be defined in one databank as a character string and in another databank as a real number.

Page 113: MSC Enterprise Mvision

113APPENDIX CQuery Techniques

Simple QueriesQuery operations provide a custom view of MSC Mvision data and can become quite complex. A query always consists of an expression and a value connected by a comparison or existence operator. Typical query examples are:

CNAME LIKE `*ALUMINUM*'(Attribute)+(Comparison Operator)+(Value)

or

SIG11TvsEPS11 EX(Attribute)+(Existance Operator)

The two queries above could be combined using the AND operator as follows:

CNAME LIKE `*ALUMINUM*' AND SIG11TvsEPS11 EX

This would limit the Materials List to display only materials with aluminum in the common name that have tensile stress-strain curve data. In addition, queries can be performed on calculated properties, allowing you to create new properties as the object of the query. For example, to view all materials having a specific tensile yield strength greater than 400 ksi*in3/lb. Specific tensile strength is not an attribute of the databank, but can be calculated by dividing tensile yield strength (YS11T) by density (DENS). Using the MSC Mvision query language, the query expression is:

YSIIT/DENS > 400

The following sections provide detailed information on each component of the query:

Note: It is most efficient to search a databank using a step-by-step method. Begin by creating a relatively short query using the most important attributes. When applied to the entire databank, such a query may retrieve a relatively large, active set of data. Reduce this set to a manageable size in the second step by creating another query with additional or refined requirements and applying it to the active set.

Creating the Input ExpressionThe input expression is the attribute or attribute expression for which the databank is searched.

If an attribute is defined as a real number, an attribute expression can be used in place of the attribute in a query expression. At attribute expression is an algebraic expression using two or more attribute names or an attribute name and numerical value combined by a mathematical operator. It can also include MSC Mvision database programmatic interface (DPI) functions, such as interpolation, maximum, minimum, and so on. For example, the attribute expression used for determining the optimal strength of a material is represented as US11T/DENS (Tensile Strength/Density) when using the Mil-Handbook 5 Databank. Comparing the ductility of materials can require evaluating the expression UE_T/US_T (Ultimate Elongation/Tensile Strength).

Note: Only valid attribute names can be used in the input expression.

Page 114: MSC Enterprise Mvision

114

The following mathematical operators can be used to create attribute expressions:

Valid characters for use in attribute and relation (table) names are:

a through z

A through Z

0 through 9

_ , @, %

Note: Do not use ‘_’ as the first character in a attribute or relation (table) name. This character is reserved for internally defined variables.

Valid number formats are, in general:

[+-]{digits}.{digits}[eE][+-]{digits}

For example:

125-125.7125e+4125E+4125.7e+45

Mathematical Operators

+ Addition

- Subtraction

* Multiplication

/ Division

** Exponentiation

DIV , div Force integer division

[ ] Array index

Page 115: MSC Enterprise Mvision

115APPENDIX CQuery Techniques

Using Footnotes and Metadata in the Expression

Querying on an attribute’s footnotes and metadata requires special notation. The attribute name must be appended with .FOOTNOTE or .METADATA.

For example, the query US11T.METADATA LIKE ‘*ASTM*’ returns all table rows with a US11T value that was produced using an ASTM test. Metadata and footnotes are always character data which limits the query to the valid string comparison and existence operators (that is, LIKE, NOT LIKE, IS NULL, and EXISTS).

Using Relation Names in the Expression

To bind the attribute used in a attribute expression to a specific table (relation) in the databank, you use the following syntax:

_RelationName.AttributeName

This syntax is especially important with querying on attributes stored in the Source table. For more details, see Using Source Attributes in a Query, on page 134.

Using Unique Identifiers in the Expression

Querying a table row using unique identifier requires special notation. The table name must be appended with ‘.uid’, ‘uid_external_id,’ or ‘uid_name_space’ as shown in the following examples:

_MATERIAL.uid

For more information on using the UID, see Global Unique Identifier (UID), on page 111.

Selecting the Query OperatorThe query operators are categorized according to the attribute type, either numerical or string.

The following operators are valid for numerical values:

Query Operators

< Less than

> Greater than

<= Less than or equal to

>= Greater than or equal to

= Equal to

!=, <> Not equal to

Page 116: MSC Enterprise Mvision

116

The following operators are valid for string comparison:

The following operators check for the existence of a value for an attribute. This query saves time finding materials by eliminating those materials that do not have the property you are seeking. These operations are valid for expressions defined as real values, integers, or character strings.

Operators for String Comparison

Like Matches the string value; can be used with wildcard characters; not case sensitive

Not Like Does not match string value; can be used with wildcard characters; not case sensitive

= Exact match; case sensitive

!= Not an exact match; case sensitive

<= Returns values whose character strings match or precede it in ASCII sort order

>= Returns all values whose character strings match or follow it in ASCII sort order

< Returns all values whose character strings precede it in ASCII sort order.

> Returns all values whose character strings follow it in the ASCII sort order.

Operators that Check Existence of Value

Exists, exists, EX, ex Attribute exists with a non-null value.

Not Exists Attribute exists with no specified value.

IS NULL, is null Object does not have a value.

Page 117: MSC Enterprise Mvision

117APPENDIX CQuery Techniques

Using Boolean Operators

Logical operators (also known as Boolean operators) are used to combine the effects of two or more comparisons. Parenthesis may be used to override the precedence of logical evaluations just as they do in algebraic evaluations.

Valid logical operators are:

Logical operators are executed by the query command in the order of their rank: NOT, AND, OR. Often in a query containing operators of different rank, lower ranking operators need to be executed first. To achieve this and to clarify which query parts are linked to which operator, the sub-expressions are enclosed in parenthesis ( ). Parenthesis can be used repeatedly in the same query, as long as they are paired properly, and can be nested or enclosed one pair into another. Parenthetical expressions are executed first, beginning with the innermost expression when parenthesis are nested. For example, suppose we want to know the effect of temperature on a steel having UNS number ‘G41300’ materials. The query:

CNAME LIKE '*steel*' OR UNS LIKE 'G41300' AND CTE11vsTEMP EX

would retrieve all data rows with the common name (CNAME) value 'steel', even those without a valid CTE11vsTEMP attribute, as well as all rows with both UNS number 'G41300' and a CTE11vsTEMP curve. Some or all rows for steel would be false drops because the command recognized the logical link AND between UNS LIKE 'G41300' and CTE11vsTEMP EX first. Putting the OR statement in parenthesis:

(CNAME LIKE '*steel*' OR UNS LIKE 'G41300') AND CTE11vsTEMP EX

results in its execution before the execution of the AND statement, giving the correct retrieval.

The usage of the operator NOT differs from that of AND or OR. NOT is used to specify attributes or textural values that should not be in the retrieved data rows:

CTE11vsTEMP NOT EX or CNAME NOT LIKE '*steel*'

Valid logical values are:

TRUE , trueFALSE , false

Logical Operators

AND, and Both comparisons must be satisfied.

OR, or Either comparison must be satisfied.

XOR, xor Either, but not both comparisons must be satisfied.

NOT, not Negates a comparison or existence operator. For comparisons, this acts on non-null values only.

Page 118: MSC Enterprise Mvision

118

The format for indicating a range or interval is:

{ simple_expression relational_operator simple_expression relational_operator simple_expression }EXAMPLE: {5<E11T<10}

Note: Enclosing brackets are required.

Adding the Value to the QueryThe value is the character string or numerical value of the attribute to which a material’s attribute value is compared to determine whether it satisfies the query.

Note: If an existence operator (Exists or Not Exists) is specified, the databank is searched for the existence of any value, so no value is required in the expression.

A valid value depends upon the databank definition of the attribute type. If the attribute is defined as a character string, the value must be a character string. If the attribute is defined as an integer or real number, only integers and real numbers may be used as values. In addition, it is preferable to use a value that will return a selection of materials from the query (that is, the value is nonnull).

Using words or substrings as the attribute value can ensure that all materials with a specific value are returned by the query search. For example, an attribute called FORM may have values which include various permutations of bars, billets, plates, and sheets. To create a query to include all materials available in bar form, simply use the LIKE operator and the word bar as the value in your query expression. Precede and follow the word bar with a wildcard character.

The following are valid wildcard characters when querying for string attributes:

Wildcard Characters

* Asterisk used before and/or after a character string; any or no character or group of characters may precede it if used in front of the character string; any character or group of characters may come after it if used after a character string.

? Question mark is used in place of any character. This requires the character to exist.

Page 119: MSC Enterprise Mvision

119APPENDIX CQuery Techniques

Examples of Simple QueriesThe following samples demonstrate the different techniques for searching a databank that are available with the Query command.

• E11T>10

Young’s Modulus is greater than 10

• E11T>E22T

Young’s Modulus in the warp direction is greater than in the fill direction

• E11T/DENS > 10

Specific stiffness is greater than 10

• DESIG LIKE ‘AL*’

The character attribute DESIG starts with two letters “AL”. The asterisk (*) is a wildcard character that matches with any number of characters.

• DESIG LIKE ‘AL*’ AND E11T>30

The character attribute DESIG begins with “AL” and Young’s Modulus is greater than 30.

• CPvsTEMP EX

A figure of Specific Heat versus Temperature exists in the databank.

• (E11T + E22T)/2 < 20

Average of Young’s Modulus in the warp direction and in the fill direction is less than 20.

(CNAME LIKE ‘*GR*/EP*’ OR CNAME LIKE ‘*GR*/POLYIMIDE*) AND US11T > 100

For further examples, see the end of this appendix.

Page 120: MSC Enterprise Mvision

120

Advanced QueriesAccess to the MSC Mvision databanks is performed using a database engine called the Database Programmatic Interface or DPI. The DPI provides a powerful tool to query a databank and extract information from it.

To take full advantage of this capability, some basics about the DPI language for queries and selects and the DPI’s object-oriented view of an MSC Mvision database must be understood. The following a brief overview of the DPI and how to use it.

1. Objects

The DPI is object-oriented and some of the most used objects are tables, attributes and table rows. In MSC Mvision, attributes are defined and grouped together into relations (tables). These relations are then ordered by defining their position in a hierarchy. Each relation can be pictured as a table made up of columns and rows. The columns of the table are the attributes assigned to that relation and the rows of the table are the data values themselves.

2. Inheritance and the Row Message

As noted above, MSC Mvision relations are ordered according to the databank hierarchy. A table row inherits the attribute values (that is, table rows) from relations above it, but not from relations below it. For example, the relations of the Mil-HDBK-5 Databank are MATERIAL, SPECIMEN, ENVIRONMENT, and PROPERTY. A SPECIMEN row would inherit all MATERIAL information, but would not understand a request for TEMP, an ENVIRONMENT attribute, because there may be many environments associated with this SPECIMEN row and TEMP can have a different value for each of them. However, the SPECIMEN row does understand the message ENVIRONMENT_ROWS to mean all environments associated with this specimen.

The <relation name>_ROWS message allows some creative queries as illustrated in the examples.

3. Data Structure

DPI objects have a structure associated with them, for example, an attribute may have a footnote or metadata associated with its numerical value. The options and syntax for accessing the structure of DPI objects is shown in the table, Expression Messages, on page 130. The syntax for this access is: _<object name>.<property>

_<object name>_<function>

Page 121: MSC Enterprise Mvision

121APPENDIX CQuery Techniques

4. DPI Functions

The DPI provides many built-in functions for manipulating data and allows nesting of these functions so that output from one function can provide input for the next. Nesting is used for many of the following examples. The following are commonly used functions:

interp_x( <figure name>, <x value> )

min( <input list>|< expression to evaluate and find minimum of > )

max ( <input list> | <expression to evaluate and find maximum of > )

size of ( <list whose number of elements will be reported> )

query ( <input list> | <conditional expression> )

output> [expression to calculate and output> ...] | <conditional expression> )

List Syntax

LIST_NAME[ index ]

where LIST_NAME is the name of the list object and index is the index number of the list element (row) to be accessed.

All List indices start from 0. Thus, SPECIMEN_ROW[1] is the second element of the list of specimen rows.

Advanced Query Syntax and Arguments for FunctionsThe following section provides a detailed specification of query syntax and arguments used in the query expression functions defined in the next section. Refer to Simple Queries, on page 113 for usage and examples of basic queries.

This specification uses a context-free grammar for describing the argument specification and the expression syntax.

The following is a brief description of the notation:

1. The characters | [ ] { } , have special meanings when used in expressions:

2. Terminal symbols are shown in the following table in bold font.

3. All terminal symbols are case insensitive

4. Non-terminal symbols are strings of alpha, numeric, and non-special characters.

| Separates arguments

[ ] Indicates array indexing

{ } Is used to create intervals (ranges)

Page 122: MSC Enterprise Mvision

122

5. The following table shows alternative items in description as separated by a vertical bar |; this is for clarity only.

6. The following table indicates optional items within braces {}; this is for clarity only.

7. A “*” following an item in the following table indicates one or more occurrences of that item.

Query Syntax and Arguments

Argument: Description:

expression and_expression { or_operator and_expression }

or_operator OR | XOR

and_expression rel_expression { AND rel_expression }

rel_expression simple_expression [ rel_operator simple_expression ] | simple_expression unary_rel_operator

rel_operator ‘<‘ | ‘>’ | ‘<=’ | ‘>=’ | ‘<>’ | ‘=’ | IN | LIKE

unary_rel_operator EXISTS | NOT EXISTS | EX | NOT EX | IS NULL |

IS NOT NULL

simple_expression term { add_operator term }

add_operator ‘+’ | ‘-’

term factor { mult_operator factor }

factor simple_factor [ ‘**’ simple_factor ]

simple_factor qualifiable_factor { qualifier } | interval | literal | ‘(‘ expression ‘)’ | unary_operator simple_factor | query_expression | select_expression | sort_expression | aggregate_expression | unary_function_expression | binary_function_expression

unary_operator ‘+’ | ‘-’ | NOT

qualifiable_factor simple_id

qualifier ‘.’ simple_id | ‘[‘ simple_expression ‘]’

interval ‘{‘ simple_expression rel_operator simple_expression rel_operator simple_expression ‘}’

Page 123: MSC Enterprise Mvision

123APPENDIX CQuery Techniques

aggregate_expression aggregate_function ‘(‘ [simple_id ‘<*’] expression ‘|’ expression ‘)’

aggregate_function AVG | MAX | MIN

query_expression QUERY‘(‘ [simple_id ‘<*’] expression ‘|’ expression ‘)’

select_expression SELECT ‘(‘[simple_id’<*’] expression ‘|’ expression {, expression} ‘|’ expression ‘)’

sort_expression sort_function ‘(‘ [simple_id ‘<*’] expression ‘|’ exp_list ‘)’

sort_function DISTINCT | GROUP | SORT

expression_list expression { ‘,’ expression }

binary_function_expression binary_function ‘(‘ expression ‘,’ expression ‘)’

binary_function NVL | interp_x | interp_y

unary_function_expression unary_function ‘(‘ expression ‘)’

unary_function ABS | ACOS | ASIN | ATAN | CEIL | COS | COSH | DEGTORAD | ERF | EXISTS | EXP | FLOOR | LENGTH | LOG | LOG10 | RADTODEG | ROUND | SIN | SINH | SIZEOF | SQRT | TAN | TANH

literal integer_literal | real_literal | string_literal

integer_literal [ sign ] digit { digit }

real_literal [ sign ] digit { digit } ‘.’ { digit } [ ‘E’ | ’e’ ][ sign ] digit { digit } ]

sign ‘+’ | ‘-’

string_literal ‘’’ any_letters_except_single_quote ‘’’

simple_id letter { letter | digit | ‘_’ }

letter (a-z, A-Z)

logical_expression an expression that returns a logical value

digit (0-9)

Query Syntax and Arguments (continued)

Argument: Description:

Page 124: MSC Enterprise Mvision

124

Query Expression FunctionsThe following section describes the available expression functions, including syntax and arguments:

Query Expression Functions

Query: Description: Example:

ABS( number ) Returns absolute value of number ABS( -8.3 ) = 8.3

ACOS( number ) Returns arc cosine of number ACOS( .3 ) = 1.2661

ANY([iterator <*] list | logical_expression)

Returns true if logical_expression is true for "any" member of the specified list.

ANY(ENVIRONMENT | TEMP =

400) returns true if any TEMP attribute in the ENVIRONMENT table of the database has a value of 400

ASIN( number ) Returns arc sine of number ASIN( .3 ) = 0.304693

ATAN( number ) Returns arc tangent of number ATAN( .3 ) = 0.291457

Page 125: MSC Enterprise Mvision

125APPENDIX CQuery Techniques

AVG ( list | expression ) Returns the average value of the expression calculated for each element in the specified list.

AVG( MECH_TABLE |

(E11T+E22T)/2 ) returns the average tensile and compressive Young’s Modulus ( E11T attribute value + E22T attribute value / 2) for all the MECH_TABLE table rows in the current database.

AVG( query( SPECIMEN | form like '*sheet*' ) |

THICKNESS) returns the average value of THICKNESS attribute for all SPECIMEN table rows where form attribute value contains "sheet". In this example the query function is used to generate a list of SPECIMEN objects for the AVG expression function. This example assumes that the THICKNESS attribute is in the SPECIMEN table or a higher level table, because AVG (an expression function) can search up the hierarchy but not lower level tables.

CEIL( number ) Returns the smallest integer not less than number

CEIL( 8.3 ) = 9

COS( number ) Returns cosine of number COS ( .3 ) = 0.955336

COSH( number ) Returns hyperbolic cosine of number

COSH ( .3 ) = 1.04534

DEGTORAD ( number ) Returns the converted value of number for degrees to radians

DEGTORAD( .3 ) = 0.00523599

ERF( number ) Returns the error function of number where:

Query Expression Functions (continued)

Query: Description: Example:

erf x( ) 2

π e t2– td0x∫

----------------------------=

Page 126: MSC Enterprise Mvision

126

EXP( number ) Returns exponential of number (base e)

EXP ( .3 ) = 1.34986

FLOOR( number ) Returns largest integer not greater than number

FLOOR( 8.3 ) = 8

IF(logical_expression, argument1 , argument2)

Returns argument1 or argument2. If the logical_expression evaluates to true, then the function returns argument1. If the logical_expression evaluates to false, then the function returns argument2. Argument1 and argument2 may be of any data type, but "must" be of the same data type.

INTERP_X( curve_object , real_expression )

Returns the abscissa (Y) value of curve_object by linearly interpolating at the ordinate value of real_expression. This function returns a null if the X value is beyond the endpoints of the curve.A figure object may contain many curves, scatter points, error bars, and so on. Curves may contain XY pairs, a runout point, and a plot code. However, most figures consist of a single curve with only XY pairs. As a programming aid, INTERP_X and INTERP_Y will accept a figure object instead of a curve object. The figure object will be converted to a curve object by assuming the first curve in the figure should be interpolated. This is equivalent to specifying the 0th curve element of the figure, such as SIGvsEPS.curves[0].

INTERP_X( SIGvsEPS , 3000 ) returns a real number indicating the Y value of the first curve of the SIGvsEPS figure which is associated with an X value of 3000.

Query Expression Functions (continued)

Query: Description: Example:

Page 127: MSC Enterprise Mvision

127APPENDIX CQuery Techniques

INTERP_Y( curve_object , real_expression )

Returns the ordinate (X) value of curve_object by linearly interpolating at the abscissa value of real_expression. This function returns a null if the Y value is beyond the endpoints of the curve. See INTERP_X for example and notes.

LENGTH( string_expression )

Returns the number of characters in the string specified by string_expression.

LENGTH (CNAME) = 9

LOG( number ) Returns natural logarithm of number.

LOG ( .3 ) = -1.20397

LOG10( number ) Returns base 10 logarithm of number.

LOG10 ( .3 ) = -0.522879

MAX( list | expression ) Returns the maximum (scalar) value of the expression after the expression is evaluated for each member of the list.

MAX( self | (E11T/DENS) ) returns the maximum specific stiffness (Young’s Modulus / Density) for all of the table rows in the database (self).

MIN( [iterator<*] list | expression )

Returns the minimum (scalar) value of the expression after the expression is evaluated for each member of the list. See MAX function above for example.

NVL( object1 , object2 ) Returns object1 or object2. If object1 is null, function returns object2. If object1 is not null, function returns object1. Object1 and object2 "must" be of the same type.

Query Expression Functions (continued)

Query: Description: Example:

Page 128: MSC Enterprise Mvision

128

QUERY( list | comparison_expression )

Returns a list of objects from the specified list that satisfy the comparison_expression. The result of comparison_expression "must" be a logical true or false. “Self” may be used as a list. This indicates the object of the evaluation- is a list or the highest hierarchical table in the database. QUERY is a “smart function” that allows “inheritance” from both higher and lower tables in the hierarchy, this means that the function can search either higher or lower level tables.This is the function typically applied in an application and the “QUERY” or parenthesis are not usually required.

QUERY( MATERIAL | E11T > 10

) returns a list of MATERIAL table rows where the value of the E11T attribute is greater than 10.QUERY( self | E11T > 10 ) returns the same list as the above example assuming that MATERIAL is the highest hierarchical table in the database.QUERY(ENVIRONMENT | E11T >

10) returns a list of ENVIRONMENT table rows where the value of the E11T attribute is greater than 10. The attribute E11T does not have to be in the ENVIRONMENT table because the Query function has upwards and downwards inheritance capability.

RADTODEG( number ) Returns number converted from radians to degrees.

RADTODEG ( .3 ) = 17.1887

ROUND( number ) Returns number rounded up to the nearest integer if the fractional part of number exceeds .5, or rounded down to the nearest integer if the fractional part does not exceed .5

ROUND ( 8.3 ) = 8

SIN( number ) Returns sine of number SIN ( .3 ) = 0.29552

SINH( number ) Returns hyperbolic sine of number SINH ( .3 ) = 0.30452

SIZEOF( list ) Returns the number of elements (rows) in the specified list as an integer.

SIZEOF( query( SPECIMEN |

US11T > 30. ) ) returns the number of SPECIMEN table rows where ultimate longitudinal tensile strength (the value of US11T attribute) is greater than 30.

SQRT( number ) Returns square root of number SQRT( 9 ) = 3

TAN( number ) Returns tangent of number TAN( .3 ) = 0.30934

Query Expression Functions (continued)

Query: Description: Example:

Page 129: MSC Enterprise Mvision

129APPENDIX CQuery Techniques

TANH( number ) Returns hyperbolic tangent of number

TANH( .3 ) = 0.29131

TRUNC( number ) Returns largest integer not greater than number

TRUNC( 8.3 ) = 8

Query Expression Functions (continued)

Query: Description: Example:

Page 130: MSC Enterprise Mvision

130

Built-in Database Object PropertiesThe expression syntax can be used to perform queries on database objects using “built-in” methods for the specific properties of these objects. These "built-in" methods and the object properties to which they apply are described in the following table. Refer to the Typical Examples table at the end of this appendix for usage and syntax of object properties.

The access to schema objects, such as DATABASE, TABLE, and ATTRIBUTE are typically restricted and are used by the internal application and integration and are not available to the general query mechanism. These are indicated in the table with a ‘*’.

Expression Messages

Database object: Object properties: Object type:

any self IDENTITY

TABLE_ROW _row_id INTEGER

_storage_id INTEGER

_row_footnote STRING

{attribute_name} ATTRIBUTE VALUE

{attribute_name}.value ATTRIBUTE VALUE

{attribute_name}.footnote STRING

{attribute_name}.metadata STRING

{table_name} TABLE_ROW Object

_{table_name} TABLE_ROW Object (specified table must be at a higher level)

_{table_name}_rows LIST OF TABLE_ROW (specified table must be at next lower level)

_{table_name}_has_rows Table has rows at the next lower level. Returns TRUE or FALSE. This message is equivalent to the expression sizeof(_{table_name}_rows) > 0

Page 131: MSC Enterprise Mvision

131APPENDIX CQuery Techniques

{table_name}.uid STRING

{table_name}.uid_external_id INTEGER

{table_name}.uid_name_space STRING

DATABASE* attributes LIST OF ATTRIBUTE OBJECTS

header STRING

pda_number INTEGER

name STRING

units_file STRING

named_conditions LIST OF NAMED_CONDITION OBJECTS

property_tables LIST OF TABLE OBJECTS

unit_systems LIST OF STRING

current_unit_system STRING

tables LIST OF TABLE OBJECTS

hierarchy_tables LIST OF TABLE OBJECTS (sorted in hierarchy order)

source_table TABLE OBJECT

{table_name} LIST OF TABLE_ROW OBJECTS

Expression Messages (continued)

Database object: Object properties: Object type:

Page 132: MSC Enterprise Mvision

132

TABLE* name STRING

type STRING ["PROP"| "HIERARCHY"| "SOURCE"]

level INTEGER

attributes LIST OF ATTRIBUTE OBJECTS

ATTRIBUTE* type STRING ["REAL"| "STRING"| "INTEGER"| "FIGURE"| "BINARY"]

level INTEGER

table TABLE OBJECT

synonyms LIST OF STRINGS

name STRING

description STRING

units STRING

default_units STRING

width INTEGER

dimensionality INTEGER

precision REAL

bound1 INTEGER

bound2 INTEGER

NAMED_CONDITION name STRING

condition STRING

POINT x REAL

y REAL

RANGE_BAR point1 POINT OBJECT

point2 POINT OBJECT

Expression Messages (continued)

Database object: Object properties: Object type:

Page 133: MSC Enterprise Mvision

133APPENDIX CQuery Techniques

FIGURE curves LIST OF CURVE OBJECTS

scatter_points LIST OF POINT OBJECTS

run_out_points LIST OF POINT OBJECTS

range_bars LIST OF RANGE_BAR OBJECTS

x_scale STRING ["LINEAR" | "LOG"]

y_scale STRING ["LINEAR" | "LOG"]

CURVE points LIST OF POINT OBJECTS

run_out LOGICAL

display_code STRING ["SOLID" |"DASHED"]

SELECT_ROW col_1 First column in SELECT

col_2 Second column in SELECT

col_n nth column in SELECT

IMAGE file_name STRING (Name of the file containing the image.)

Expression Messages (continued)

Database object: Object properties: Object type:

Page 134: MSC Enterprise Mvision

134

Using Source Attributes in a QuerySource attributes must be used with care in a query. Most attributes are linked to a single relation within the databank hierarchy. Source attributes are different. Although they are part of the databank hierarchy, source attributes are different for each table and figure in the databank even when the table and figure share the same path through the hierarchy. This can cause confusion for the query when source attributes are included in a query condition. For example:

Assume a database that has one hierarchy relation Material, which stores the single attribute CNAME and two property sets. The property set relation called Mechanical stores mechanical properties such as Young’s Modulus in tension (E11T) and Poisson’s Ratio (NU12). The property set named Thermal contains properties such as Specific Heat (CP) and Linear Coefficient of Thermal Expansion (CTE). The source contains an attribute named BOOK noting the document where the databank originated. The following is an illustration of this databank:

The problem with querying source attributes is that the MSC Mvision DPI does not know what table to bind the lookup for the source attributes if the source attribute is associate with multiple property tables.

Examples of queries that result in an AMBIGUOUS SOURCE EXPRESSION:

BOOK LIKE 'A*' and E > 10 and CTE >10 BOOK LIKE 'A*' or E > 10 or CTE > 10 BOOK LIKE 'A*' and E > 10 or CTE > 10 BOOK LIKE 'A*' and ( E > 10 or CTE > 10 ) ( BOOK LIKE 'A*' or E > 10 ) and ( BOOK LIKE 'A*' or CTE > 10 ) E*CTE*LENGTH(BOOK) > 10

Property

ThermalMechanicalE11T 29

Simple Hierarchy

Source BOOK BBOOK A

Material

Page 135: MSC Enterprise Mvision

135APPENDIX CQuery Techniques

The Query Evaluation Process

To resolve this problem the system handles an "AMBIGUOUS SOURCE EXPRESSION" in the following manner:

1. Creates an evaluation tree from the query expression.

Query: (CTE/E11T)*LENGTH(BOOK) > 10

2. Performs a depth-first traversal of the tree, determining what property set tables each node is a function of and whether the node is a function of the source table. The purpose of the traversal is that after each node is visited, it cannot be a function of both a source table and a property table. Below is the described action on various types of nodes to assure that this is always the case.

Leaf Nodes

If the node is a leaf node and accesses a database table record that the node is a function of that database table.

AND Nodes

If the node is an "AND" node and one of the child nodes is a function of one or more property sets and the other is a function of the source table, then the node is made a function of just property sets as follows. The condition on the source table is duplicated enough times, so that there is one condition tree for each property set and the references to the source table are bound to the property set.

The query:

BOOK LIKE 'A*' and E > 10 and CTE >10

yields:

_MECH.BOOK LIKE 'A*' and _THERM.BOOK LIKE 'A*' and E > 10 and CTE >10

>

10*

Length/

Query Evaluation Tree

CTE EIIT BOOK

Page 136: MSC Enterprise Mvision

136

The query:

BOOK LIKE 'A*' and E > 10 or CTE > 10

yields:

_MECH.BOOK LIKE 'A*' and E > 10 or CTE >10

The query:

BOOK LIKE 'A*' and ( E > 10 or CTE > 10 )

yields:

_MECH.BOOK LIKE 'A*' and _THERM.BOOK LIKE 'A*' and (E > 10 or CTE >10)

OR Nodes

If the node is an "OR" node and one of the child nodes is a function of one or more property sets and the other is a function of the source table, then the node is made a function of just property sets as follows. The condition on the source table is duplicated enough times so that there is one condition tree for each property sets and the references to the source table are bound to the property set.

The query:

( BOOK LIKE 'A*' or E > 10 ) and ( BOOK LIKE 'A*' or CTE > 10 )

yields:

( _MECH.BOOK LIKE 'A*' or E > 10 ) and ( _THERM.BOOK LIKE 'A*' or CTE >10 )

The query:

BOOK LIKE 'A*' or E > 10 or CTE > 10

yields:

_MECH.BOOK LIKE 'A*' or _THERM.BOOK LIKE 'A*' or E > 10 or CTE >10

Expression Nodes

If the node does not represent an AND or OR operator, then determine which tables the node is a function of. For example, the node representing the "/" operator in CTE/E would go to a f(THERM,TEMP). The LENGTH node is f(SOURCE). The '*' node is f(THERM,TEMP,SOURCE). If the node becomes a function of source and one or more property sets, then make the node a function of just property sets by finding the leftmost property set. This is done by a depth-first search of the current node which terminates when a property set table is accessed.

Page 137: MSC Enterprise Mvision

137APPENDIX CQuery Techniques

In the example, the attribute BOOK would be bound to the THERM table and the '*' node would become a f(THERM,TEMP). The query:

(CTE/E)*LENGTH(BOOK)

yields:

(CTE/E)*LENGTH(_THERM.BOOK) and CTE/(E+LENGTH(BOOK))

The query:

CTE/(E+LENGTH(_MECH.BOOK)) and CTE/(E+LENGTH(BOOK))*LENGTH(BOOK)

yields:

CTE/(E+LENGTH(_MECH.BOOK))*(_THERM.BOOK)

Select Evaluation Process

The Select can be thought of as:

Selects are treated as follows:

If the Conditions is f(SOURCE) and Fields is g(P1), then bind conditions to P1, which yields f(P1)

If the Conditions is f(SOURCE) and Fields is g(P1,P2,..PN), then create condition as f(P1) AND f(P2) ... AND f(PN)

If the Conditions is f(P1) and Fields is g(SOURCE) then bind field to P1, which yields g(P1)

If the Conditions is f(P1,P2,..PN) and Fields is g(SOURCE), do NOT bind field to any property set

Conditions

Evaluation Tree for SELECT

F1 F2 F3

Fields

SELECT

Page 138: MSC Enterprise Mvision

138

Examples:

1. Bound to the leftmost select field:SELECT BOOK E CTE WHERE CNAME LIKE ‘Z*’SELECT _MECH.BOOK E CTE WHERE CNAME like 'Z*'

SELECT E BOOK CTE SELECT WHERE CNAME like 'Z*'E _MECH.BOOK CTE --> WHERE CNAME like 'Z*'

SELECT CTE BOOK E WHERE CNAME like 'Z*'SELECT CTE _THERM.BOOK E WHERE CNAME like 'Z*' (Note: Bound to the leftmost select field)

SELECT E BOOK CTE WHERE CTE > 10SELECT E _MECH.BOOK CTE WHERE CTE > 10

2. Bound to a single property table:SELECT BOOK WHERE E > 10SELECT _MECH.BOOK WHERE E > 10

SELECT E WHERE BOOK LIKE 'A*'SELECT E WHERE _MECH.BOOK LIKE 'A*'

3. Book not bound:SELECT BOOK WHERE CTE > 10 and E > 10SELECT BOOK WHERE CTE > 10 and E > 10

4. Conditions duplicated with and:SELECT E CTE WHERE BOOK LIKE 'A*'SELECT E CTE WHERE _MECH.BOOK LIKE 'A*' AND _THERM.BOOK LIKE 'A*'

SELECT E CTE WHERE BOOK LIKE 'A*' OR BASIS LIKE 'A'SELECT E CTE WHERE ( _MECH.BOOK LIKE 'A*' OR _MECH.BASIS LIKE 'A" ) AND ( _THERM.BOOK LIKE 'A*' OR _THERM.BASIS LIKE 'A" )

Note: In MSC Mvision, the above applies to query and select via the spreadsheet. In the interactive interface binds source as queries for the query panel and criteria and binds source as a select for display lists. For accuracy and clarity when source attributes are used in forms they should be used as column headers as opposed to criteria and if at all possible they should be "bound" to the table for which they are intended.

Page 139: MSC Enterprise Mvision

139APPENDIX CQuery Techniques

Using Source Attributes in Curve Queries

To use a source attribute for a curve in a query, where the attribute name is the same as the relation name, precede the relation name with an underscore. For example, to use the Date of Modification for a Stress versus Strain curve in a query, use the expression:

_SIG11TvsEPS.DATE_MOD.

If the underscore is omitted, the application will, by default, assume that the attribute SIG11TvsEPS should be used, which does not have a source attribute associated with it.

Interpolating on a Curve in a QueryThe MSC Mvision curve figure is an important method of storing materials data. An interpolate function is used to query for materials based on values stored within a curve.

Curve figures are stored in a databank as a set of XY data points. In addition to its location, each point in the curve figure has an associated data type or plot code. The plot codes identify the data points as curve points, scatter points, or runout points. The interpolate operators query only on a continuous curve formed by data points identified as curve points.

Note: Interpolation is limited to the first curve segment of a curve figure, using the two points between which the interpolated value exists. It does not know when it has exceeded the beginning or ending points of the curve. Do not request an interpolation that is beyond the range of the first curve segment.

Curve Components

Curve Segment

Curve Points

Scatter Points

Runout Point

Page 140: MSC Enterprise Mvision

140

Two special operators are used to interpolate a curve: interp_x and interp_y. The first operator, interp_x, interpolates a curve for a y value, given an x value. The second operator, interp_y, interpolates a curve for an x value, given a y value.

For example, to find all the materials with a maximum stress greater than 50 ksi after 500,000 cycles, in the Mil-Handbook 5 Databank, issue the following query:

interp_x(SIG11TvsN,500000)>50

Since, this material has a stress value greater than 50 ksi at 500000 cycles, this material would be returned by the query.

To find out the extents of a particular curve, use the following commands:

max(SIG11TvsN.curves[0].points|x)min(SIG11TvsN.curves[0].points|x)

The curve in the preceding example has a minimum of 23051.8 and a maximum of 2.83707e+06.

Interpolate operators act only on continuous curves define by curve points

Interpolation occurs between these two points.

Minimum point Maximum point

Query returns a value greater than 50 ksi.

Page 141: MSC Enterprise Mvision

141APPENDIX CQuery Techniques

Typical Examples

Materials Selector Databank

The following examples use attributes defined in the MSC Mvision Materials Selector Databank (materials_selector.des).

Examples for Materials Selector Databank

Operator: Sample query: Values returned:

LIKE FORM like ‘*bar’ Returns all materials for which the string value of the attribute FORM ends with the word ‘bar’.

OR FORM like ‘bar’ or FORM like ‘sheet’

Returns all materials for which the string value of the attribute FORM is ‘bar’ or ‘sheet’. Because there are no wildcards used in this query, it will not return values, such as ‘bar, sheet, and wire’.

Wildcards TYPE like ‘*steel*’ Returns all materials for which the string value of the attribute TYPE includes the word ‘steel’.

XOR TYPE = ‘*steel*’ xor TYPE = ‘*iron*’

Returns all materials for which the string value of the attribute TYPE includes either the word ‘steel’ or iron’, but not both val-ues.

FORM = ‘Bar’ xor FORM = ‘Sheet’

Returns all materials for which the string value of the attribute FORM ends is ‘Bar’ or all materials for which the attribute FORM has the value ‘Sheet’.

< US_T * .8 < 50 Returns all materials for which the value of US_T times ‘0.8’ is less than ‘50’.

> DENSITY > 0.26 and POISSON_R > 0.3

Returns all materials having a density greater than 0.26 and a Poisson Ratio greater than 0.3

EXISTS (EX) CTE_LO EX OR CTE_HI EX OR CTE EX

Returns all materials for which a value exists for either CTE_LO, CTE_HI, or CTE

Attribute Expressions

YS_T/US_T < 100 Returns all materials for which the value of YS_T divided by the value for US_T is less than 100

Page 142: MSC Enterprise Mvision

142

UE_T/US_T > 1 Returns all materials for which the value of UE_T divided by the value for US_T is greater than 1

RA/US_T != 1 Returns all materials for which the value of RA divided by the value for US_T is not equal to 1

H_RC/US_T < 1 Returns all materials for which the value of (H_RC/US_T) less than 1

FORM LIKE ‘*BAR’ OR E11T EX

Returns materials with a value for FORM, where the string value ends in ‘BAR’ and all materials which have a value for E11T. The wildcard used before the word ‘BAR’ means that zero or more other characters may precede the word.

E11T EX AND YS_T EX OR US_T EX

Returns all materials that have values for both E11T and YS_T or have a value for US_T

YS_T EX OR US_T EX AND E11T EX

Returns all materials that have values for both E11T and US_T or have a value for YS_T

Booleans (YS_T EX OR US_T EX) AND E11T EX

Returns a value for all materials that have a value for YS_T and E11T or have a value for US_T and E11T

Booleans YS_T EX OR (US_T EX AND E11T EX)

Returns all materials which have a value for both US_T and E11T or have a value for YS_T

Booleans YS_T ex and E11T ex Returns all materials that have a value for either YS_T or E11T

Existence E11T EXISTS Returns all materials that have a value E11T.

Compare to a specific value

DENSITY = 0.1 Returns all materials for which the value of DENSITY is equal to ‘0.1’.

Compare to a specific value

DENSITY < 0.1 Returns all materials for which the value of DENSITY is less than ‘0.1’.

Compare to a specific value

DENSITY >0.1 Returns all materials for which the value of DENSITY is greater than ‘0.1’.

Examples for Materials Selector Databank (continued)

Operator: Sample query: Values returned:

Page 143: MSC Enterprise Mvision

143APPENDIX CQuery Techniques

Compare to a specific value

DENSITY <= 0.1 Returns all materials for which the value of DENSITY is less than or equal to ‘0.1’.

Compare to a specific value

DENSITY => 0.1 Returns all materials for which the value of DENSITY is greater than or equal to ‘0.1’.

Compare to a specific value

DENSITY != 0.1 Returns all materials for which the value of DENSITY is not equal to ‘0.1’.

Compare to value of another attribute

E11T > E22T Returns all materials for which the value of E11T is greater than the value of E22T.

Compare an attribute

expression to a specific

value

E11T/DENSITY > 10 Returns all materials for which the value of E11T divided by the value of the DENSITY is greater than ‘10’.

Compare to a specific value

E11T > 20.005 Returns all materials for which the value of E11T is greater than ‘20.005’.

Compare to a specific value

E11T < 20.5 Returns all materials for which the value of E11T is less than ‘20.5’.

Compare to a specific value

E11T > 20 Returns all materials for which the value of E11T is greater than the value of E22T.

Compare to a specific value

TYPE like ‘gold’ Returns all materials for which the value of TYPE is Gold (not case sensitive).

Compare to a specific value

TYPE = ‘Gold’ Returns all materials for which the value of TYPE is Gold (case sensitive).

Compare to a specific value

TYPE LIKE ‘tin*’ Returns all materials for which the value of TYPE begins with the word ‘tin’ - not case sensitive. (that is, Tin/Tin Alloys)

Find null values for an

attribute

TYPE LIKE ‘(NULL)’ Returns all materials for which the value of TYPE is null.

Using wildcards

CNAME LIKE ‘*9606*’ Returns all materials for which the value of CNAME contains the character string ‘9606’.

Using wildcards

CNAME LIKE ‘*960?’ Returns all materials for which the value of CNAME contains the character string ‘960’ with any single character following it.

Examples for Materials Selector Databank (continued)

Operator: Sample query: Values returned:

Page 144: MSC Enterprise Mvision

144

Mil-HDBK 5 Databank

The following examples are valid for the MSC Mvision Mil-HDBK 5 Databank:

Using wildcards

CNAME LIKE ‘P?*?9606’

Returns all materials for which the value of CNAME contains a character string that begins with the character ‘P’ followed by at least two other characters, and ends with ‘9609’. (that is, ‘Pyroceram 9606)

Using wildcards

CNAME LIKE ‘10E10’ Returns all materials for which the value of CNAME is ‘10E10’.

Using wildcards

CNAME LIKE ‘(*)’ Returns all materials for which the value of CNAME contains zero or more characters bound by parenthesis.

Examples for MSC Mvision Mil-HDBK 5 Databank

Operator: Query expression: Values returned:

use of source attributes

BASIS Like ‘*B* and E11T > 10 and CTE11 < 10

Returns all materials, Basis A and Basis B, that have values for E11T greater than 10 and CTE11 < 10.

use of source attributes

BASIS Like ‘*B” or E11T > 10 or CTE11 > 10

Returns all materials, Basis A, Basis B and Basis S, that have values for E11T or CTE11 greater than 10.

use of source attributes

BASIS Like ‘*B* and E11C > 10 or CTE11 <10

Returns all materials that have Basis B, that have values for E11C that are greater than 10 and CTE11 less than 10.

use of source attributes

BASIS Like ‘*B*’ and (E11T > 10 or CTE11 > 10)

Returns all materials that have Basis B, that have values for E11T that are greater than 10 or CTE11 less than 10.

use of source attributes

(BASIS Like ‘*B*’ or E11T >10) and (BASIS Like ‘*A*’ or CTE11 > 10)

Returns all materials that have Basis B or a value of E11T greater than 10 and have Basis A or CTE greater than 10.

use of source attributes

(BASIS Like ‘*B*’ or E11T >10) and (BASIS Like ‘*A*’ and CTE11 > 10)

Returns all materials that have Basis A and a value of CTE11 greater than 10 and have Basis B or E11T greater than 10.

Examples for Materials Selector Databank (continued)

Operator: Sample query: Values returned:

Page 145: MSC Enterprise Mvision

145APPENDIX CQuery Techniques

MSC Fiber Databank

The following examples are valid for MSC.Fiber Databank:

Examples for MSC.Fiber Databank

Operator: Query expression: Values returned:

row_id property.row_id = 2 Returns the material row with id = 2

interp_x interp_x(CPvsTEMP, 70) > 1

Interpolates the value of Y, given the value of X=70 for the curve, CPvsTEMP. In this case, the X scale represents TEMP, and the value is interpolated for the current units system. The value of Y is then compared to the number ‘1’. The query returns all materials for which the value of Y is > 1.

interp_x interp_x(CPvsTEMP, 300)>1

Interpolates the value of Y, given the value of X=300 for the curve, CPvsTEMP. In this case, the X scale represents TEMP, and the value is interpolated for the current units system. The value of Y is then compared to the number ‘1’. The query returns all materials for which the value of Y is > 1.

interp_x interp_x(CPvsTEMP, (dens*0.1)>1

1. The value for density times 0.1 is calculated.

2. The calculated value is assigned to the value of X for the interpolation of the curve, CPvsTEMP. In this case, the X scale represents TEMP, and the value is interpolated for the current units system.

3. The value of Y is then compared to the number ‘1’.

4. The query returns all materials for which the value of Y is > 1.

row_id function

_property.row_id = 4

Returns the material whose row_id = 4.

storage_id function

_property.storage_id = 4

Same as property.row_id.

use of relation name as attribute

expression

_TEMP > 0 Returns zero rows, because the underscore is reserved for the identification of a table name and TEMP is an attribute name.

Page 146: MSC Enterprise Mvision

146

use of footnote in attribute

expression

E11T.FOOTNOTE LIKE ‘*’

Queries for the existence of a material whose value of E11T has FOOTNOTE included.

size_of _sizeof(_property_rows)>1

Returns materials which have duplicate property tables.

curve points min(SIG11TvsEPS.curves[0].points|x) >= 0

Returns all materials which have a SIG11TvsEPS curve for which the minimum value of X in the first curve segment is greater than or equal to 0.

curve points max(SIG11TvsEPS.points|y)>=0

Returns all materials which have a SIG11TvsEPS curve for which the maximum value of the Y points is greater than or equal to 0.

curve points avg(SIG11TvsEPS.points|y)>=0

Returns all materials which have a SIG11TvsEPS curve for which the average value of all the Y points is greater than or equal to 0.

curve points SIG11TvsEPS.points[1].x>0

Returns materials that have SIG11TvsEPS curves whose first point’s X value is greater than 0.

size_of sizeof(query(specimen_rows|form like ‘*sheet*’))>10

Returns all materials.

size_of sizeof(query(SIG11vsN.scatter_points|x>10e05))>0

Returns materials that have SIG11vsN curves with scatter points whose X value is greater than 10e05.

Examples for MSC.Fiber Databank (continued)

Operator: Query expression: Values returned:

Page 147: MSC Enterprise Mvision

I N D E XMSC.Enterprise Mvision Integrated Client Installation and Implementation Guide

AAdvanced Query Panel, creating

expressions 113AND nodes, about 135API

description of classes 63documentation 61

Application database, storing properties in 87

Applicationscompiling/linking 61sample 42

Arguments of advanced queries 121Attribute expressions, about 113Attribute expressions, mathematical

expressions in 114

CC++, using Integrated Client for 40Checking software/hardware

configuration 18Classes

SdmClientConnection 86SdmDataClass 86SdmICGui 86SdmObject 87

Classes of API 63Code Snippets 85Coding the Integration 85Compiling/linking applications 61Components of Integrated Client GUI 73Configuration file, setting global 34configure_IC script 95Conventions in this guide 9createMappingProcess Method 85

Creating simple queries 119Criteria Selector, about 119Curve queries, using source attributes in 139Curves interpolating on in a query 139Customer Information Sheet, about 10

DData sources, declaring 41Data structure of DPI 120Data, documenting source of material 87Databanks

definition 10hierarchy 134listing of 12understanding attributes 112

Databasedefinition 10storing properties in application 87

Database Programmatic Interface (DPI)about 110advanced querying, using 120functions 121including functions in queries 113

dataSourceName Variable 86Default category, specifying for template 37Defining

EMV server name 36login labels 35

Deliverables with Integrated Client 15Designing the Integration UI 88Directories in installation 20, 99Documentation

of API 61with MSC.Mvision 10

Documenting source of data 87

Page 148: MSC Enterprise Mvision

INDEX148

DumpServerContents examplecode 57summary 42

EEMV server

defining name of 36list-pick algorithm for 36providing templates for 37specifying default category for

template 37specifying identifier attribute 38

Environment variables 27for properties files 28

Evaluation process for queries 135Examples

C++ function declaring data sources 41C++ function that allocates memory 41listing of sample applications 42

ExecutablesMscSdmIC_Emv.dll 95VerifyServerConnection 96

Existence operators 116Expression functions for queries 124Expression nodes, about 136Expression syntax in advanced queries 121

FFiles

LaunchIcJavaGui.bat 95Messages.properties 95MscSdmIC.properties 94, 95MscSdmIC_Emv.dll 95MscSdmIC_Emv.jar 95MscSdmIntegratedClient.properties 87VerifyServerConnection 96

Footnotes, querying on 115Function

C++ declaring data sources 41C++ example that allocates memory 41

GgetDataClassByName Method 85

getDataSource Method 85getDefaultObject Method 85getEmvClientConnection Method 85getEmvClientConnectionUsingPropFile

Method 94getIdentifiers Method 86getSchema Method 85getValue Method 86Global configuration file, setting 34Global Unique Identifier (UID), about 111GUI

components of 73EMV server name for Java 36login labels for Java 35overview of 72selecting material using 86

HHardware requirements 18Hierarchy, graphic 134

IIdentifier attribute, specifying 38Identifiers

reconnecting to material from 86storing 86

Inheritance in DPI 120Installation

contents of on UNIX 104contents of on Windows 100directories 20, 99logging 96on UNIX 26on Windows 25preparing for 18size of 20testing 31updating 20verifying a server connection 96

Installing the Integration 94

Page 149: MSC Enterprise Mvision

149INDEX

Integrated Clientdeliverables 15GUI, overview of 72hardware requirements 18installation size 20installing on UNIX 26installing on Windows 25memory requirements 18operating system requirements 19properties file 28testing installation 31types of integration 80using C++ version 40using Java version 41

Integrating a Single Data Source 80Integrating for Multiple Data Sources 80Integrating with PDM Systems 80Integration

coding 85designing the user interface 88documenting source of data 87installing 94packaging issues 94server-side configuration 87

Integration Installationbundled components 94

Integration Patterns 80Integration UI 88

allowing users to modify imported data 93

delete 93interface options 88menu options 88requiring login 89setting the analysis preference 88update 93

Interpolate operators 139Interpolating curves in queries 139

JJar Files

MscSdmIC_Emv.jar 95Java

using Integrated Client for 41

Java GUIdefining EMV server name 36login labels for GUI 35

LlaunchExecution Method 85LaunchIcJavaGui.bat File 95Leaf nodes, about 135List-pick algorithm, attributes for 36loadObject Method 85, 86loadPrimaryOutput Process

ProcessesloadPrimaryOutput 86

Logging 96Logical operators 117Login frame, about 73Login labels for Java GUI 35Login Method 72Login method, about 73

MMapDefaultObjectInGui example

code 55summary 43

mapObject Method 72, 86, 87mapObject method, about 76MapObjectInApi example

summary 43MapObjectInGui example

code 43summary 42

mappedObject Method 86MappedObjectInApi example code 51Material

documenting source of 87reconnecting to 86selecting using GUI 86storing identifiers 86

Material browser frame, about 73Material Frame

pedigree display 75Material frame, about 75Material Identifiers 87

Page 150: MSC Enterprise Mvision

INDEX150

Material Set query tips 119Materials for MSC.Mvision 12Mathematical operators in attribute

expressions 114Memory requirements 18Message, self 130Messages.properties File 95Metadata, querying on 115Methods

getDataClassByName 85getDataSource 85getDefaultObject 85getEmvClientConnection 85getEmvClientConnectionUsingPropFile

94getIdentifiers 86getSchema 85getValue 86launchExecution 85loadObject 85, 86login 72mapObject 72, 86, 87mappedObject 86pickObject 72writeComments 87

Motif window definition 10MSC.Mvision

databanks 12documentation 10Material Information System, about 110materials 12software products 12

MSC_SDM_IC_PROPERTIES_FILE environment variable 27

MscIntegratedClient.properties 87MscSdmIC.properties File 94, 95MscSdmIc.properties property file 28MscSdmIC_Emv.dll File 95MscSdmIC_Emv.jar File 95

NNaming EMV server 36

Nodes in query evaluation 135

OObject paradigm in MSC.Mvision 110Objects

about querying for 110messages

ATTRIBUTE 132CURVE 133DATABASE 131FIGURE 133IMAGES 133NAMED_CONDITION 132POINT 132RANGE_BAR 132SELECT_ROW 133TABLE 132TABLE_ROW 130

SdmICGui 72Operating system requirements 19Operators

existence 116for curves, images, matrices 116for string comparison 116in queries 115interpolate 139logical 117

OR nodes, about 136

PPackaging

IC version constraints 94Multiple applications 94

PDM Systemsintegration with EMV 80

Pedigree display 75pickObject 86pickObject Method 72pickObject method, about 73PickObjectFromGui example

code 45summary 42

Preparing for installation 18

Page 151: MSC Enterprise Mvision

151INDEX

ProcessescreateMappingProcess 85

Propertiesstoring in application database 87

Properties file, client-side 28

QQueries

about simple 113adding value to 118advanced 120components of 113creating the expression 113evaluation process 135example of 141expression functions 124for objects, about 110interpolating on curves 139on footnotes/metadata 115operators 115relation names in 115select evaluation process 137simple techniques 119source attributes, using 134syntax and arguments of advanced 121syntax for 110understanding databank attributes 112unique identifiers in 115using source attributes in curve 139

Query Panel dialog, creating expressions 113

RRelation names in queries 115Requirements

hardware 18memory 18operating system 19

Row message in DPI 120

SSample applications 42Sdm Classes

SdmObject 86SdmAttribute class 67SdmCategory class 66SdmClientConnection class 65, 86SdmCurve class 69SdmDataClass class 67, 86SdmDataSource class 65SdmICGui class 65, 86SdmICGui Object 72SdmIcGui object, described 72SdmICGui pickObject, described 86SdmListPick class 66SdmMappedData class 68, 69SdmMatrix class 70SdmMeasure class 69SdmNavigationView class 66SdmObject class 68, 86, 87SdmProcess class 69SdmPropertySet class 68SdmSchema class 67SdmUnitsFamily class 68SdmValue class 69Select evaluation process, about 137Server-Side Configuration of an

Integration 87ShowDefaultObjectInGui example

code 49summary 42

Simple queries, about 113Size of Integrated Client installation 20Software

products 12Software Authorization Information Sheet,

about 10Source attributes in curve queries 139Source attributes in queries 134SSL Encryption of the Integrated Client 38Standard Query Panel, creating

expressions 113String comparison, operators for 116Structured query language (SQL), about 110

Page 152: MSC Enterprise Mvision

INDEX152

Syntaxfor querying 110of advanced queries 121

TTechnical support, obtaining 21Templates

providing to EMV server 37specifying default category for 37

Testing Integrated Client installation 31Types of integrations 80

UUID, about 111Unique identifiers in queries 115unitsSystem 86UNIX

contents of installation on 104installing Integrated Client on 26

Updating Integrated Client installation 20User Interface Design 88

VValue in queries 118Variables

dataSourceName 86unitsSystem 86

VerifyServerConnection 96VerifyServerConnection.exe File 96

WWildcard characters

in queries 118optional 116

Windowscontents of installation on 100installing Integrated Client on 25

writeComments Method 87