Introduction

3DEXPERIENCE Platform comprises various applications and services catering to various industries. It also has platform administration control centres to Manage members, role-based access, usage analytics and application behaviour configuration.

This article is a compilation of various interview questions on the 3DEXPEREINCE platform

General PLM Questions

What is PLM?

PLM, or Product Lifecycle Management, are processes and solutions used by companies to manage product-related data.

PLM application extends from a new product’s initial concept through to its design, manufacturing, maintenance, and disposal.

PLM is used by various industries, and can in some cases apply to services as well as to products.

Checkout our detailed PLM Guide at https://plmcoach.com/plm-guide/

Explain Class/Instance Paradigm

Objects are defined as a class or reference – a kind of blue-print or factory for generating instances which, themselves, carry real business information.

What is subtyping?

Specialised objects can be derived from previously defined general ones. Such derived objects are called subtypes.

Subtypes usually inherit the structure and attributes of the original “parent” object, but they can extend this definition with dedicated attributes.

What is an attribute?
  • A characteristic of an object (or an item). Any field on a form, such as a create or edit form, is referred to as an attribute.
  • For example, part attributes can include Description, Weight, and Material Category. Engineering change request attributes can include Reviewer’s Comments and Reason for Change.
What is Lifecycle?

The Lifecycle Graph is a state machine which models the different possible states of an object revision during its whole existence.

  • For example, an object might go through the following statuses: in work, approved, released, obsolete.
  • Different actors can make the object revision move through its lifecycle by promoting or by demoting it.
What are revisions?

In PLM, any lifecycle object can be revised. 

  • When an object is revised, a duplicate is made and assigned an incremented revision index.
  • The system creates and manages a historical link between revisions of a given object.
  • This makes it possible to easily retrieve old revisions of an existing object.
  • It is also possible for a new revision to inherit a number of contextual characteristics of the preceding revision as they are recognized to be of the same lineage.
  • The information that gets revised is determined by a concept called aggregation.
What is a Policy?

A policy is the container for the set of rules that govern business objects, such as the conditions for passing through the lifecycle states and the various approvals required. Policies also define revision sequences and access controls.

Mention different PLM Domains
  • Program/Project Management
  • Requirement Management
  • Systems Engineering
  • CAD Management
  • Digital Mockup
  • Simulation
  • BOM Management
  • Document Management
  • Change Management
  • Configuration Management

Get Trained on 3DEXPERIENCE from PLM Coach

3DEXPERIENCE Questions

What are the different domains / apps available on the 3DEXPERIENCE platform?
  • 3D Modeling Apps
  • Simulation Apps
  • Social & Collaborative Apps
  • Information Intelligence Apps
Mention few 3DEXPERIENCE platform Services
  • 3DPassport – Identity management and authentication across all 3DEXPERIENCE apps.
  • 3DDashboard – Aggregate all information that matters in personalised Dashboard
  • 3DSpace – Manage and share data, documents, related information
  • 3DSearch & 6WTags – Search and Discover content. Add Semantics by Tagging the content 6 dimensions (Who-What-When-How-Where- Why)

Checkout https://plmcoach.com/3dexperience-customization-guide/#introduction

Mention different layers of 3DEXPERIENCE platform Architecture
  • Data – contains data & storage related components
  • Logic & Access – contains core platform services alongside licence and file server respiratory components
  • Presentation – provides access to the user interface

Checkout our detailed 3DEXPERIENCE Architecture Guide at https://plmcoach.com/3dexperience-platform-architecture-guide

What are different 3DSpace Business Process Services (BPS) Architecture components?

Business Process Services – loads the baseline schema into the database as well as web files for the application server.

  • Data Layer
    • Schema: Attributes, Types, Relationships
  • Integration Layer
    • Java Code (business logic) operating on the Schema
  • Presentation Layer
    • Common UI Elements: Tables, Forms, etc.
  • Web Presentation Layer
    • JSPs, JavaScript, CSS HTML, JSON for OOTB Widget

Checkout https://plmcoach.com/3dexperience-customization-guide/#mvc-architecture

What is Metadata?

Metadata is data that provides information about other data. In other words, it is data about data. PLM System maintains metadata for objects and relationships as well as business logic, which are stored in the database. Metadata is stored in Database, whereas physical files are stored in File Store.

Mention various types of metadata stored in 3DEXPERIENCE platform
  • ER Data Model
    • Attribute, Type, Interface, etc.
  • IRPC Data Model
    • Reference, Instance, Port, Connection, RepReference, RepInstance, Positioned Matrices
  • 3DSwym
    • Communities, Blogs, Wikis
Does the 3DEXPERIENCE platform maintain individual databases for different platform services?

Yes, Inside 3DEXPERIENCE platform, the following services maintain their own individual databases:

  • 3DSpace
  • 3DPassport
  • 3DSwym
  • 3DDashboard
  • 3DNotification
  • 3DComment
What is metadata content on the 3DEXPERIENCE platform?
  • Metadata Content refers to the files, including 3D representations, streams, office documents, etc., that are referred to by the Metadata.
  • Metadata Content consists of unstructured data and gets saved in File Collaboration Server (FCS).
  • Metadata content is no longer stored on local client-machines.
What is a customised schema on the 3DEXPERIENCE platform?
  • The data model has been designed using the fundamental elements (Type, Attribute and Extension). 
  • Users will have flexibility of adding extra attributes for characterization and separate behaviour. 
  • This whole process is referred to as custom schema definition.

Get Trained on 3DEXPERIENCE from PLM Coach

Organization Modeling & Secure Data Accesses

Mention the key objects of People & Organisation (P&O)
  • P&O is now called Organization Modeling & Secure Data Accesses. 
  • It is the main security mechanism to manage authorizations for 3DSpace. 
  • P&O consists of five key concepts at its foundation, they are Roles, People, Organization, Collaborative Spaces and Security Contexts.
Describe about the Person object in 3DEXPERIENCE P&O
  • A Person object represents a logical user in the 3DEXPERIENCE platform. 
  • A Person is always related to at least one (or multiple) security context(s), which is a combination of an Organization a Role and a Collaborative Space (PnOProject). 
  • A Person is assigned product licences (“Named User” licence).
What is a Collaborative Space on the 3DEXPERIENCE Platform?
  • A Collaborative Space represents a shared space where people can work together on content/data.
  • Collaborative Spaces are mainly used for access management.
  • Collaborative Spaces are used for making up Security Contexts, and stamping objects’ Ownership vectors
Mention the types of Collaborative Spaces based on Content Visibility
  • Public Design Collaborative Space: Data with this ownership vector is accessible from all users assigned to this Collaborative Space or affected to another Collaborative Space (except for data in private maturity state)
  • Protected Design Collaborative Space: Data with this visibility is accessible only by users assigned to the Collaborative Space, but data in the Released or Obsolete states has read-only visibility by users assigned to other Collaborative Spaces.
  • Private Design Collaborative Space: Data with this visibility is only accessible by users explicitly assigned to the Collaborative Space.
Mention the types of Collaborative Spaces based on Templates
  • Collaborative Space families can be used as templates to create other collaborative spaces
    • Standard (StandardTeam): Applicable for Public and Protected content only
    • Design (DesignTeam): Applicable for Public, Protected and Private content
Describe Organisation in 3DEXPERIENCE P&O
  • Organisation object’s purpose is to define a group of persons belonging to a same operational entity.
  • Organisation represents the disciplines of a company which does not change frequently. 
  • It does not represent other organisational structures, such as HR structure, that may change frequently
What are the types of organisations on the 3DEXPERIENCE platform?
  • There are four types of organisations in the 3DEXPERIENCE platform:
    • Company
    • Subsidiary
    • Business Unit
    • Department
Describe Role in 3DEXPERIENCE P&O

Roles represents the area of work, or access level of a person on the 3DEXPERIENCE platform P&O

What are different types of roles on the 3DEXPERIENCE platform P&O?
  • Depending on the access level, three separate categories of roles are available.
    • Applicative Roles
    • Administrative Roles
    • Restricted Roles
What is the significance of Restricted Roles on the 3DEXPERIENCE platform P&O?

Restricted Roles are assigned to partners to allow employees of other companies access limited to content in the Collaborative Space and organisation of the user’s credentials

What are Applicative User Roles?
  • Gives users authorization to visualise, modify, save and delete data. Applicative Roles are dedicated to usual users
  • Authorizations are cumulative from Reader to Leader Roles
What are Administrative User Roles?

These set of roles allow the user to administer and manage platform resources

Describe Security Context in 3DEXPERIENCE platform P&O
  • A Security Context is defined by the combination of one Organization, one Role and one Collaborative Space (PnOProject).
  • A Security Context is assigned to a user/person.
  • A user can have several Security Contexts assigned simultaneously
What is the Primary Ownership Vector?
  • The Active Security Context is used to set the initial data ownership, when a user creates data. 
  • The initial data ownership is also referred to as the Primary Ownership Vector (POV).
  • The POV of an object is defined by the combination of 3 properties: A User (Owner), A Collaborative Space (project) and An Organization
What is Baseline Behaviour on the 3DEXPERIENCE platform?

Baseline Behavior is Access Management deployment model for 3DEXPERIENCE platform Applications

  • It is an Out Of The Box behaviour and it is available on both On-premise and Cloud
  • Pre-defined Horizontal Roles and Pre-Configured policies should be used.
  • In Baseline environment, only those apps that support the baseline access roles may be used
  • Custom access roles and Policies cannot be created
  • Any app-specific roles cannot be assigned to users in this environment
Mention P&O batch tools

Administrators can also manage P&O objects by using the VPLMPosImport / VPLMPosExport and PassportUserImport batch tools

  • VPLMPosExport.bat
    • Used to extract people and organisation data from a 3DSpace database to text files.
    • The tool allows you to export one or all specific data
  • VPLMPosImport.bat
    • Used to import/modify/delete P&O objects in 3DSpace database, as specified in an input text file.
    • Used to create or update person, organisation, or security data.
  • PassportUserImport.bat
    • Used to import or modify users in the 3DPassport database.
What is Named User License on the 3DEXPERIENCE platform?
  • It is a Licence associated with a unique platform user.
  • The named User Licence cannot be assigned to someone else before 30 days after the first consumption.
What is the significance of 3DPassport?

3DPassport service provides authentication and single-sign-on (SSO) service to all 3DEXPERIENCE platform services (except for FCS).

What are the various ways to create a new user using 3DPassport?
  • Web console – Create your 3DEXPERIENCE ID option on 3DPassport Login page
  • Batch Utility – PassportUserImport.bat can be used by the Administrator.
  • Web Service – Using the OOTB User Account API we can create, update, delete or recover user accounts.
What is a User Group on the 3DEXPERIENCE platform?
  • User Group is a group of users defined within a 3DEXPERIENCE platform instance.
  • User Groups are an integral part of P&O.
  • One User can be members of several Groups.
Does the security context assigned to a user propagate to all its members?

Yes, When a Security Context is assigned to the Group, the same Security Context is added automatically to all the members of the group.

What is a Login Ticket on the 3DEXPERIENCE platform?
  • Login Tickets allow you to authenticate and connect to protected servers to run batch programs.
  • The Login Ticket includes the details required for the batch program to log into the server, such as, user-name and security context (credentials).

Get Trained on 3DEXPERIENCE from PLM Coach

Schema

What are Administrative Objects?

Administrative Objects define the 3DEXPERIENCE platform data model explaining how Information should be stored in a database.

What are Business Objects?
  • Business Objects contain the information about customer data and business processes.
  • Business Objects are displayed on the 3DEXPERIENCE platform Web as well as Native User Interfaces.
What is the difference between Administrative and Business Objects?
  • Business Objects are instances of Administrative Objects.
  • Administrative Objects define “how to store information”
  • Business Objects define “what to store”.
What is a Data Model?
  • The Data Model defines how objects are related to each other and how they interact with each other.
  • A Data Model illustrates object types used by an application and the relationships that connect them.
What is an Entity Relationship (ER) Data Model?
  • The Entity Relationship (ER) Data Model is the core model of 3DEXPERIENCE platform Web Apps (3DSpace)
  • Entity Relationship (ER) Data Model is a graphical representation of entities and their relationships to each other.
What are the two main objects in the ER Data Model?
  • Types, to define the entities and these entities can have Attributes that define its properties.
  • Relationships, defined between Types.
What is the significance of a policy object?
  • The Policy is a mandatory object which defines the behaviour of a Type. It defines:
    • Revision sequence
    • Lifecycle
    • Access control
    • Signatures
What is an IRPC Data Model?
  • The Instance Reference Port Connection (IRPC) Data Model is the core model of 3DEXPERIENCE platform Native Apps (CATIA, etc.)
  • The IRPC Data Model relies on the notion of Instance, Reference, Port and Connection.
  • IRPC Objects can be organised in structures, by creating parent-child relationships.
What does Instance, Reference, Port & Connection terms mean?
  • A Reference provides the definition of a structure object (a parent object in the model).
  • An Instance is the usage of a reference in another reference.
  • A Connection models semantic relationships between components i.e. is an object composed under a reference that can have multiple links.
  • A Port is an object composed under a reference that can have one link.
What is an Attribute?
  • An Attribute is any characteristic that can be assigned to an object or a Relationship.
  • Objects can have Attributes such as size, shape, weight, colour, materials, age, texture, and so on.
What is a Type?
  • A Type defines a kind of business object and the collection of Attributes that characterise it.
  • Types are defined by the Business Administrator and are used by 3DSpace users to create Business Object instances. Every created Business Object must be of a specific Type
Define Relationship
  • Relationship Administrative Object is created to allow the connection between either
    • Two Business Objects (Type – Type definition)
    • A Business Object and another Relationship: Type – Relationship definition
    • Two Relationships
  • All Relationships always have a From end and a To end. To conceptually represent a Relationship in any diagram an Arrow is used, with the arrowhead typically representing the To-end.
What is Cardinality?
  • Cardinality refers to the number of relationships that can simultaneously exist between the two Business Objects or Relationships
    • ONE-to-ONE (1 : 1): A specific Business Object can be connected only once to another specific Business Object using this Relationship. A second connection will not be permitted.
    • ONE-to-MANY (1 : N) or MANY-to-ONE (N : 1): Many Business Objects can be connected to One Business Object using such a Relationship.
    • MANY-to-MANY (N : N): Multiple business objects/relationships can be connected to multiple business objects/relationships.
Define Extension
  • Extension is a group of Attributes that can be added to Business Objects as well as connections to provide additional classification capabilities to objects.
  • Multiple Extensions can be assigned to the same Business Object and/or connection.
List Infrastructure Administrative Objects
  • Vaults
  • Stores
  • Locations
  • Sites
  • Indices
Define Vault

A storage location for 3DEXPERIENCE platform Administrative and Business Objects

What is a Store?

A storage location for files that are checked into Business Object (Physical Storage)

What is a Location?

An alternate host and path for a Captured Store

What is a Site?

A set of Locations

What are Indices?

A set of Attributes and optional Basic properties that are stored in a single table to improve query and expand performance

Difference between Store and Vault
StoreVault
A Store is the physical storage location of files.A Vault is the logical organization of Business Objects and Administrative Objects.
Store contains the files that are checked-in to Business Objects.Vault contains metadata (information about objects).

Get Trained on 3DEXPERIENCE from PLM Coach

Configuration

What is the role of the Collaborative Spaces Control Center app?

Platform Managers can use the Collaborative Spaces Control Centre widget to list Collaborative Spaces, create new ones, transfer ownership, define who can create Collaborative Spaces and configure settings.

What is the role of the Collaborative Spaces Configuration Center app?

Platform Managers can use the Collaborative Spaces Configuration Centre to configure content behaviour such as naming and revision rules, lifecycles, access rules, automation, and attributes

What are the features of the Data Model Customization app?
  • Data Model Customization app is an unified and common framework for all PLM applications. It unifies the Data Model customization techniques for all 3DEXPERIENCE applications
  • It goes along with a new generation of Data Model customization consoles that are Simple and easy to use and provides Instantaneous testing and deployment
  • Standardize domain processes for end users with a simple administrative tool without requiring IT skills.
What is the role and licence required for using the Data Model Customization app?

Customization Administrator – TXO

What is the Former Typing System?

Typing system that was used before the introduction of the Unified Typing

What is a Package?

It is a group of Types and Extension Types, grouped together by domain

What is a Unique key?
  • Unique key is a Set of Attributes that are used as a key for uniquely identifying objects
  • Unique Keys can be defined to ensure that two objects won’t be saved with the same values for a set of chosen Attributes
    • For example: Type name + PLM External ID + Version number
  • This is used for « identifying » objects with a name that can be used in other applications (excel, CRM, etc.)
What are DMC Types?
  • Types created by a customer with DMC tool in the context of an environment
  • DMC tool was the tool for customizing Native applications data model, as part of former typing system.
What is Baseline behaviour?
  • Baseline behavior deploys the baseline access roles such as Owner, Leader, Author, and so on.
  • In Baseline Environment, you can use only use those apps that support the baseline access roles.
What is Sub-Typing in the 3DEXPERIENCE Platform?
  • Introduce concepts specific to the customer, with associated Attributes
  • The end-user can choose the sub type to create objects with the standard 3DEXPERIENCE applications.
  • Sub typing may influence the behaviour of the objects through 3DEXPERIENCE applications.
What is an Extension?
  • Introduce data extension specific to the customer, with associated Attributes that can be applied to objects of different Types
  • The end-user can choose to extend an object with a particular Extension
What are Deployment Extensions?

Deployment Extensions enable the Administrator to add Attributes to existing DS Types and Specialized Types, which will be made available to end-user depending on their assigned Collaborative Space.

What is a Transient Attribute?
  • A Transient Attribute is not stored in the database.
  • A Transient Attribute is not persistent: it can be accessed only by using EKL.
What is the Business Rule Opening ID for Transient Attribute?
  • INFRAComputedAttribute and INFRAComputedAttributeWrite are two dedicated Openings which enable to define Business Rules for working with Transient Attributes:
    • INFRAComputedAttribute: Opening is used to read the value of Transient Attribute
    • INFRAComputedAttributeWrite: Opening is used to compute and set the value of the Transient Attribute.
What is the app that manages Schema Specialisation on the 3DEXPERIENCE Cloud?

Enterprise IP Schema Specialisation app (DBS) is used to customise the Data Model on private or dedicated Cloud.

Get Trained on 3DEXPERIENCE from PLM Coach

3DEXPERIENCE Native Apps

What are the different customization options available on the Native Apps?

In order to meet client business needs for Native Apps customization, a technological choice can be made among the following:

    • Interactive
    • Scripting
    • Programming
Mention various business cases for interactive customization on the 3DEXPERIENCE Native Apps
  • Design Automation
  • Application Creation
  • V6 Data Model Extension
Mention the apps that support interactive customization
  • There are several Apps dedicated to automate design at the heart of V6
    • 3D Templates Capture / Engineering Template (PKT)
    • Know-how Apps Creation (KAC)
  • KAC generates business oriented Apps
  • PKT helps with automating complex assembly design
Mention the apps that support Scripting capabilities on the 3DEXPERIENCE Native Apps
  • Scripting involves the usage of Interpreted scripting languages
  • Two script languages are available at the heart of V6
    • Enterprise Knowledge Language (EKL)
    • Visual Basic (VB)
  • EKL is used for Quality, Feasibility and Corporate Compliance control
    • EKL is available in Know-how Capture / Engineering Rules Capture Apps
  • VB helps automating tasks and creating small applications without requiring the user to perform any geometry handling
  • VB is available in all 3DEXPERIENCE Native Apps
Describe about Programming Capabilities on the 3DEXPERIENCE Native Apps
  • Component Application Architecture (CAA) is the main technology used
  • CAA involves the usage of Compiled, Object Oriented Programming Language
    • CAA makes use of C++ and COM technologies
    • Allows to build dynamic link libraries (dll)
    • Enhances implementation encapsulation
    • Enables objects behaviour federation
  • Large scope of customization
    • IP Integration
    • V6 Model Customization
    • Batch Creation
    • User Interface Modeling for Native Apps

Get Trained on 3DEXPERIENCE from PLM Coach

3DEXPERIENCE EKL Interview Questions

Describe about EKL

Enterprise Knowledge Language (EKL) is the language used to define programs and procedures specific to apps. EKL language includes knowledge packages, types, methods and functions where:

    • Knowledge Packages : Provides essential information on the types, methods, and functions that you can access when working with the browser.
    • Types : The different objects you can handle.
    • Methods and Function : Manipulation of object and its attribute
Where is EKL supported?

EKL is oriented to provide a quick development environment to enable easy customization to automate task execution on Client or Server.

What are the features of EKL?

EKL is a DS, portable, object oriented, interpreted, Automation language that directly manipulates the V6 objects:

    • DS: designed, engineered, and maintained by Dassault Systèmes.
    • Portable: independent from OS
    • Object Oriented: manipulates objects with methods
    • Interpreted: does not require compilation
    • Automation: enables to create & manipulate existing classes but does not enable to declare new classes.
      • There is an extension called KML(Knowledge Modeling Language) that adds some object modelling capability. This is part of the Company App Builder Role (KAC).
    • V6 objects: provides native access to V6 constructs
What are the capabilities of EKL?

Enterprise Knowledge Language (EKL) is used by a series of toolkits & products on top of V6 architecture. They are used for the below purpose:

    • Business Rules
    • Validation Rules
    • Generative Rules
    • Associative Rules
    • User Interface Logic Rules
What are the different layers of EKL?

The Engineering Knowledge Language is defined in 4 different layers, from the very simple Mathematical language (M-EKL) to the most complete advanced language (A-EKL).

    1. Mathematical Engineering Language (M-EKL)
    2. Core Engineering Language (C-EKL)
    3. Advanced Engineering Language (A-EKL)
    4. Extensible Engineering Language (X-EKL)
Describe Mathematical Engineering Language (M-EKL)
  • M-EKL is the foundation of EKL. 
  • M-EKL groups the language operators and the numerical functions (maths, measures, etc.) necessary to express the sets of equations used to evaluate parameters in Knowledge Advisor.
Describe Core Engineering Language (C-EKL)
  • C-EKL provides Keywords for control structures
  • C-EKL also provides Specific functions, like the ones dedicated to messages and prompts for user inputs, geometry construction or strings and lists manipulation.
Describe Advanced Engineering Language (A-EKL)
  • A-EKL inherits most of the operators, keywords and functions of C-EKL.
  • A-EKL provides a full set of functionalities to manipulate 3DEXPERIENCE Native Client features as Knowledge Objects.
Describe Extensible Engineering Language (X-EKL)

X-EKL language contains the applicative packages available in EKL . You can use X-EKL to add functions to the EKL language by 2 means:

    • CAA development (users development). 
    • User functions. BKT lets you create interactively new functions that may be used within A-EKL
What are the Advantages / Limitations of EKL?
Advantages of EKL Limitations of EKL
  • Using EKL, one can search for objects in the database, navigate through different structures, create Products and PLM Objects.
  • Instantiate templates, export data into Excel and XML
  • Read and write attributes.
  • UI creation (like VBA Forms) is possible using Know-how Apps User Experience app. This app is available with a Design Apps Developer role (KAC).
  • Some apps / models have openings only in EKL.
  • Use of EKL is limited to Triggers (Business Rules).
  • When used in the context of Business Rules, interaction with files like Excel & XML stored in the file system is not possible.
  • Some data types don’t have basic EKL methods. For example sheets / layouts.
  • As compared to JPOs, if BL is written with EKL, then upgrade from one version to another version is more difficult as merging is required.
What is the use of let and set keywords in EKL?
  • Temporary variables can be declared at the beginning of the script using the let keyword. A temporary variable does not persist as a parameter after the rule execution is finished.
    • Let enables you to initialize values with constants and not with formulas
  • The Set keyword lets you set a variable of a given type and directly enter the attribute to read and/or write its characteristics.
    • Set Keyword performs the assignment without checking the Type.
What are different types of operators available in EKL?

Operators are special symbols that perform specific operations on one, two, or three operands, and then return a result

    • Arithmetic operators
    • Logical Operators
    • Comparison Operators
    • Type Operator
    • Ternary Operator
What is the use of Language Browser in EKL?
  • Language Browser is the main language tool when scripting EKL code.
  • Developers can keep the Language Browser open while scripting.
  • Language Browser provides information about
    • Type
    • Package Display
    • Supported/Inherited Types List
    • Attributes
    • Functions Using Type
    • Functions Returning Type
    • Search

Get Trained on 3DEXPERIENCE from PLM Coach

EKL Business Rules

How can we perform customization using Business Rules on the 3DEXPERIENCE platform?
  • 3DEXPERIENCE VPLM architecture allows customization by Administrators to better match the critical behaviours of the 3DEXPERIENCE platform with the specific requirements of the customer’s business processes.
  • These are accomplished using Business Rules
What object Business Rules are linked to?

To be effective, a newly created Business Rule must be linked to both the Opening ID, the Fact Type and also to a distinct Collaborative Space.

What are Opening IDs in EKL?
  • 3DEXPERIENCE VPLM System Openness consists of a full set of building blocks that make up VPLM.
  • It includes and delivers a set of pre-defined Openings to integrate its specific business processes, user actions and system behaviours
What is Customization Intent in EKL while defining Business Rules?

3DEXPERIENCE VPLM system triggers the Business Rule with a Customization Intent. There are three Types of intents:

    • Validation: Used to validate the state of an object, or an action on an object. For the sake of maintaining consistency, every possible Rule for the couple <Object Type, Opening> is executed in an undetermined order. For the validation to be correct, every Rule must be correct.
    • Computation: Used to compute a result from the state of an object. Only the best possible Rule for the couple <object Type, opening> is executed.
    • Execution: The object can be modified by the Rule. Only the best possible Rule for the couple <object Type, opening> is executed.
What are the different standard variable types you encounter while defining business rules?

The 3DEXPERIENCE VPLM Openness consists of rules which work on a set of three typed variables.

    • ThisObject
    • Parameters
    • Validation (optional)
What is the ThisObject variable in a business rule?
  • ThisObject is a variable that represents the object on which the rule is acting.
  • The type of this variable is defined when creating the business rule.
What is the Parameters Collection in a business rule?
  • This is a standard object that provides contextual information about the opening.
  • This variable is of the type Rule Context. This type inherits the basic Feature type and holds below six attributes:
    • UserID
    • Role
    • Project
    • Organization
    • Severity
    • Message.
What is the Validation variable in a business rule?
  • In Validation mode, the rule uses an additional variable Validation of Boolean type.
  • The rule writes its value to express the validation.
  • The Message attribute of Parameters may be set inside the rule for displaying the standard failure message.
What is a List of Resource Set IDs?

Resource Set provides you with information related to the resources you can link to your resource tables. The resources are gathered by resource sets and are classified in alphabetical order.

Are all opening IDs in EKL supported on both On-Premise and On-Cloud environments?

No, only Some Opening IDs are common for On-Premise and On-Cloud environments. There is a List of Environment-Specific Openings available in the DS documentation

What is a Business Rule?
  • A Business Rule is the description of the behaviour alteration using the Enterprise Knowledge Language (EKL).
  • A Business Rule is created to implement a certain Business Logic, to govern a specific application behaviour.
What are ER Generic Server Openings?

ER Generic Server Openings resource set contains the Precommit openings that allow you to customize server operations like create, delete, modify, promote, etc. on Private cloud, Dedicated cloud and On Premises.

How can we define business rules?

Business Rule can be defined using Data Setup native app. You require TXO role to access the Data Setup native app

Are Precommit openings available on public cloud?

No, Precommit openings are not available on public cloud

What are the sequence of operations for Precommit openings?
  • Execution of business rule with a precommit opening is different from other openings. The transaction follow below sequence of operations:
  • The kernel registers the transaction
  • The kernel executes the action (e.g. create or promote)
  • The kernel fires the precommit opening
  • If no error occurs, the kernel commits the transaction.
    • Else the transaction is aborted.
What are the steps to Implement Server Side Business Logic in 2023x?

In order to implement the Server Side Business Rule, the following steps are to be carried out:

    1. Using Data Setup app, create a Resource Table under Resource Set named ER Generic Server Openings.
    2. Create a new Business Rule against Logical Name precommit at promote.
      1. Right click on the logical name and add a resource using Add a new resource sub item option.
    3. Create and associate a Resource (Business Rule) against the opening.
    4. In the Business Rule editor, set the Type of ThisObject to VPMReference, and key-in the code
    5. Save the changes.
    6. Verify the implementation

Get Trained on 3DEXPERIENCE from PLM Coach

Working with MQL

What is MQL?
  • MQL is an acronym for Matrix Query Language
  • MQL is the language in which the 3DEXPERIENCE platform directly interacts with the database. It is similar to SQL.
  • MQL commands and their syntax follow specific rules, which the user has to apply when using MQL.
  • MQL consists of a set of commands that help the administrator set up, build, and test a 3DSpace database quickly and efficiently.
  • MQL can be used to add information to the existing database, or to extract information from it.
What are the different modes of accessing MQL?

MQL acts as an interpreter for 3DSpace Live Collaboration and can be used in one of three modes:

    • Interactive Mode
    • Script Mode
    • Tool Command Language (TCL) Mode
What is Interactive Mode in MQL?
  • When a user opens an MQL client, he can directly type commands to perform actions in the database. This is called the Interactive mode.
  • The Interactive mode is command-line based. This means, one command is typed and processed after the other.
What is Script Mode in MQL?
  • MQL commands can also be processed using the scripts, which then may process a large number of commands at once.
  • This mode is one of the most comfortable methods of administering a data model
What is TCL Mode in MQL?
  • The Tool Command Language (TCL) is a scripting and programming language, which can be called from within MQL
  • TCL provides programming features such as variables, loops, arrays, procedures, file operations, etc.
  • MQL commands can be extended in TCL programs. This allows us to embed MQL commands to handle metadata, directly into Business Logic written using TCL.
Can we run MQL commands on the 3DEXPERIENCE web apps?
  • MQL expressions and queries can be executed via the MQL web-console also.
  • User needs to be assigned VPLMAdmin or Administration Manager in order to be able use MQL web-console
What are the limitations of using MQL on the web console?
  • MQL Web-console can only be used to query for existing data.
  • Activities like creation of new data, modification of data, Business Administration, printing program objects to get source code cannot be done.
What are the special characters in MQL?
  • All script file comments use the hash symbol (#)
  • Multiple words with blanks in between must be enclosed in quotes
  • MQL statements must end in a semi-colon
Do TCL statements need a semicolon to end the statement?

TCL statements do not need a semi-colon to indicate the end of a statement. Pressing the Enter button or inserting the newline character is sufficient to invoke command execution.

What are the different commands we run in MQL for data creation and modification?
  • Add: To create new administrative objects or new business objects.
  • Modify: To modify the business and admin objects.
  • Delete: To delete the business objects or admin objects.
  • Copy: To create a copy of the objects.
  • Print: To display the objects.
  • Help: To obtain technical help about an entity
Write an MQL command to add a business object
add businessobject TRG_Product_Structure MQLTST001 -.1 policy VPLM_SMB_Definition vault vplm;
Write an MQL command to modify a business object
mod bus "TRG_Product_Structure" "Coupling Assembly" "A.1" description "Coupling Assembly in MQL";
Write an MQL command to delete a business object
delete bus TRG_Product_Structure MQLTST001 -.1;
Write an MQL command to print a business object
print bus TRG_Product_Structure prd-apc-00000275 A.1 select policy vault;
Can MQL commands be abbreviated?
  • Most of the MQL commands can be abbreviated to three characters as long as the command is unique
  • help businessobject; can be shortened to help bus;
Is MQL case sensitive for commands or keywords?
  • MQL is not case sensitive relative to commands or keywords.
  • Both statements are equivalent: VERBOSE ON; verbose on;
Is MQL case sensitive for object names?
  • MQL is case sensitive relative to object names (Administrative Objects as well as Business Objects).
  • Both statements are not equivalent – two different objects would be created:
    • Add vault Engineering;
    • Add vault engineering;
What is the file extension for MQL scripts?

For easy identification, it is a recommended convention to use a file extension of .mql when creating MQL scripts. This, however, has no effect on the behaviour or execution of the scripts.

What is the command to run an MQL script inside the MQL client?
run <scriptnamewithpath>
What is user context in MQL?
  • MQL commands mandatorily require a Person/User context to perform any action.
  • Example of setting context: set context user creator password x387yz vault Manufacturing;
How can we get the syntax information of a specific command in MQL?
  • To obtain general help information about any Administrative Object type, use the command: help;
  • To display information about a specific administrative object, for example on type: help type;
What are the different commands we run in MQL for extracting information?
  • Query: Finds Business Objects according to defined criteria.
  • List: Displays Business Objects within a defined Vault or to list specific Administrative Objects.
  • Print: Display all the required and available information on an object.
  • Expand: Allows to view connected Business Objects based on a starting object.
  • Clauses: Various clauses used with the above commands further influence what is seen as a result or how the result is displayed.
What are the different types of queries in MQL?
  • Saved queries contain the search information and it can be evaluated/run whenever needed.
  • Temporary queries are used for an ad-hoc search, which does not need to be saved or used later.
What is a Temporary Query in MQL?
  • A temporary query is a one-time use statement and is evaluated immediately.
  • A temporary query can use all object definitions as possible search criteria. Select statements are allowed.
What is the syntax of Temporary Query in MQL?
temp query
businessobject “type_pattern” “name_pattern” “revision_pattern”
vault pattern
owner pattern
where query_expression;
Write an example of Temporary Query in MQL?
temp query bus PART *D* * where 'attribute[Cost] > 25' select policy current dump |;
What is the significance of List command?
  • The list command is used both for Business Objects and Administrative Objects within the user logged in vault
  • The list command supports wildcards *.
  • list [admin_object_name];
Write the syntax of the list command?
list ADMINTYPE [PATTERN]
[select FIELDS][dump SEPARATOR]
[recordsep SEPARATOR][output FILENAME];
Write few List commands
list bus vault Manufacturing;
list policy;
list policy P* select type format output “E:\policy.txt”;
Define the usage of Print Command
  • The print command retrieves detailed information about one single Business Object or Administrative Object.
  • Wildcard characters are not allowed in print command
What is the syntax for the print command?

Printing Business Objects:

print bus BO_NAME
[selected | select [Fields]]
[dump [SEPARATOR]]
[output FILENAME];

Printing Administrative Objects:

print ADMIN_TYPE
[selected|select[FIELDS]]
[dump [SEPARATOR]
[output [FILENAME];
Write few examples of print command
print bus Part A-0000144 1 select policy owner;

print policy “EC Part”;

If the print command is typed without a select clause, the complete information stored with the object is output.

Write the syntax for expand command
expand bus BO_NAME
[to|from] [relationship PATTERN]
[type PATTERN] [recurse to [all|N]]
[select bus FIELDs] select rel FIELDs]
[into|onto set SETNAME] [dump] [SEPARATOR]
[recordsep SEPARATOR] [output FILENAME]
[terse] [limit N];
Write few sample commands for illustrating expand usage
expand bus Part A-0000144 1
rel EBOM
from recurse to all
select bus attribute[Weight].value;

expand bus Part A-0000144 1
rel EBOM from recurse to all
terse;
What are the different clauses in MQL?
  • Select clause
  • Selectable Clause
  • Dump Clause
  • Output clause
What is the significance of Select Clause?
  • All pieces of information or definitions of an object such as the Name, Owner or Originated date are stored as a property or field of the object.
  • These definitions of an object that can be extracted as a piece of information are referred to as selectables.
  • If there is no selectable specified, all available information is output. But if a selectable is specified, then the information is reduced to the defined selectable.
List common selectables on a business object?
  • name
  • description
  • revision
  • originated
  • modified
  • Id
  • cestamp
  • Etc
What is the dump clause?
  • When typing a command requesting a data output without a dump clause the requested information is given in detail one per line
  • Using a dump character you can specify a general output format, which does not print the leading field names, but rather separates the output information by the specified dump character
Write an example of dump clause
temp query bus PC2_Product_Structure * * where 'attribute[PC2_Material] == Steel' select policy current dump |;
What is an output clause?

With the output clause you define that the result of your query, list or print command is not directly returned in the interactive client, but sent to a file for further processing.

Write an example for output clause
list policy select type format output "c:\temp\MQLPolicyList.txt";
What are Expressions in MQL?

Expressions are mathematical, statistical or logical statements that can be evaluated against collection(s) of business objects, a single business object or a single connection.

What is the Syntax to create Expression?
add expression NAME [ADD_ITEM {ADD_ITEM}];
Describe about evaluate expression

The evaluate expression command makes it possible to evaluate either a saved expression (Expression Administrative object), or a temporary expression that is not saved.

What is the syntax for evaluate expression
evaluate expression EXPRESSION {EXPRESSION}…on ON_ITEM {on ON_ITEM} [dump [CHAR]] [recordseparator SEPARATOR];
How do you define the end of command in MQL?

The end of a command is defined by the semicolon(;), which indicates that the command is complete and should be then executed.

When are the start & commit transactions executed with the default behaviour of MQL?

By default the transaction starts after the user hits the Enter button after the semicolon at the end of the MQL command, and is committed or aborted after the command execution process completes or fails respectively

Write an MQL command to connect business objects
connect bus ACK_CouplingComponent "Coupling Assembly" "A" rel ACKAssemblyBOM to ACK_CouplingComponent "Flange" "A" Quantity 2;
Write an MQL statement to expand connections on a business object
expand bus ACK_CouplingComponent "Coupling Assembly" A rel ACKAssemblyBOM;
What is the significance of recurse keyword in MQL expand command?
  • Using the recurse parameter along with expand command we can see all Business Objects connected over multiple levels.
  • expand bus ACK_CouplingComponent “Coupling Assembly” A rel ACKAssemblyBOM recurse to all;

Get Trained on 3DEXPERIENCE from PLM Coach

Web Services

What are Web Services?
  • A Web-Service is any standard Application that is available over the network (Internet) which is capable of interacting with other Applications over the same network.
  • Web-Services are typically designed to allow interoperability.
    • Web-Services are operating system independent.
    • Web-Services are programming language independent.
What is a REST web service?
  • REST stands for REpresentational State Transfer
    • It is a software architectural style that defines a set of constraints to be used for creating web-services
    • Communication in REST services is HTTP based
    • The Action to be performed is described by the HTTP Method (GET, POST, PUT, DELETE).
    • Information is represented in the Request / Response body in XML or JSON format
What are different HTTP methods
Method  Scope  Usage
GET  Collection  Retrieve all resources from the server. The resource is identified by request’s URL
GET  Resource  Retrieve a single resource
POST  Collection  Create a new resource as an addition to the one pointed to by the URI.
PUT  Resource  Replaces a resource with another one, or fully modify a resource.
PATCH  Resource  Update a resource (diff only)
DELETE  Resource  Delete a resource
What are the different ways of accessing 3DEXPERIENCE platform’s web services?
  • Using 3DDashboard Widgets
  • Non DS Third-party web or batch applications
  • 3DEXPERIENCE On cloud
How can we consume 3DEXPERIENCE platform’s web services on the 3DDashboard?
  • From a dashboard application (Additional App widget), one can reach 3DEXPERIENCE services. The 3DEXPERIENCE authentication (username/password) has to be performed manually by the concerned person.
  • For calling 3DEXPERIENCE platform web-services, 3DDashboard Widgets make use of the DS/WAFData/WAFData JavaScript API.
How can we consume 3DEXPERIENCE platform’s web services on a third-party application?

From any non-DS applications (web or batch) you can reach 3DEXPERIENCE services using your personal credential. Before consuming any DS web-services, the 3DEXPERIENCE authentication must be executed.

How can we consume 3DEXPERIENCE platform’s web services on cloud?
  • On the cloud, you can consume 3DEXPERIENCE web-services on behalf of someone using an openness agent.
    • An agent is valid for one platform instance and for one user.
    • Using an agent, you can call only public 3DEXPERIENCE web services enabling the “on-behalf” connection.
Where are the 3DEXPERIENCE platform’s web services endpoints available?

3DEXPERIENCE platform’s web services are available in Developer Documentation

What are the steps to invoke a 3DEXPERIENCE web service using postman?
  • Generate CAS Login Ticket
  • Perform CAS Authentication
  • Fetch CSRF token
  • Invoke the required web service endpoint
Can we use 3DEXPERIENCE web service for custom data models?
  • Yes, 3DEXPERIENCE platform web-services are capable of working with Custom Data Model.
  • We can create and modify objects governed by custom data models on premises and cloud environments.
  • Custom attributes created using Collaborative Spaces Control Center app, Data Model Customization app and Enterprise IP Schema Specialisation app can be manipulated using platform web-services.

Get Trained on 3DEXPERIENCE from PLM Coach

Logging and Debugging

What is Logging?
  • Logging is the process of recording events within a program, in a certain scope, in order to provide an audit trail that can be used to understand the activity of the system and to diagnose problems.
  • 3DEXPERIENCE platform logging consists of many events using different mechanisms.
What are the various logs generated by 3DSpace Server?
  • Mxtrace.log
  • mxAudit.log
  • Ematrixwar.log
What does mxtrace.log contain?
  • Any errors raised in 3DSpace Server environment are automatically written to mxtrace.log
  • All system-wide warnings are collected in that log file as well
What does mxAudit.log contain?

mxAudit.log is generated at system startup only the messages related to the kernel are written to mxAudit.log

What does ematrixwar.log contain?

Log file for capturing actions of the 3DSpace WAR Utility. Contains information about constructing the web application archive such as merging JARs and classes in one folder

Where are the System.out.println logs stored?
  • System.out.println command will output the log messages to the console and/or Web Application Server output file.
  • For Tomcat, the file typically has format like catalina.<date stamp>.log and can be found under the folder <TomEE_INSTALL>\logs.
What is SLF4J Logging Framework?

SLF4J stands for Simple Logging Facade for Java. It provides a simple abstraction of all standard logging frameworks like Log4j, Logback, JUL (java.util.logging), etc. using single dependency

Get Trained on 3DEXPERIENCE from PLM Coach

3DEXPERIENCE Widgets

What is a Widget on the 3DEXPERIENCE platform?
  • Widgets are lightweight HTML and script-based applications that provide the ability to derive and present information or functionality from a variety of sources.
  • A Widget is based on standard web-technologies (HTML5, JavaScript, CSS)
What are the features of 3DEXPERIENCE Widgets?
  • Widgets are movable, resizable, configuration, sharable and are also removable from the Dashboard.
  • Widgets allow end-users to get and share a personalised view of their information
  • Widgets load UI elements only once, and in subsequent requests only new data are loaded. This leads to faster performance.
Can we call the widget code outside the 3DEXPERIENCE platform?
  • Widgets are not stand-alone, i.e., they will not run in a browser page, just by calling their URL
  • For a 3DDashboard Widget to run, it has to be first hosted on a Dashboard
Compare Classic Web-top vs Widgets based user interface
Classic WebtopDashboard Widget Paradigm
Pages in HTML & JavaScriptWidgets in JavaScript (UWA API) & HTML5
Load UI Elements AND Data for each requestLoad UI Elements Once Then Data only at each exchange
Uses JSPs, Servlets, BPS Business Logic in JPOs 3DEXPERIENCE Kernel DBUses RESTful WEB Services Business Logic in JPOs 3DEXPERIENCE Kernel DB

 

What are the different types of Widgets?
  • There are three different ways to integrate a web application in a dashboard of the 3DEXPERIENCE platform. They are:
    • Web Page Reader Widget
    • Run your App Widget
    • Defining an Additional App
What is a Web Page Reader Widget?
  • It is the way to integrate an existing stand-alone web application into a 3DEXPERIENCE Dashboard
  • The web application – integrated in the Web Page Reader Widget – runs as a stand-alone application
  • It cannot access 3DEXPERIENCE servers (3DSwym, 3DSpace, etc.).
  • It cannot communicate with other Widgets.
  • It cannot interact with 3DEXPERIENCE platform UI components such as 6WTagger
What is Run Your App Widget?
  • It is the quick way, but with limited capabilities, to integrate a Widget application into the 3DEXPERIENCE platform
  • For Run Your App Widget to work, the server that is hosting the Widget application must be accessible from the 3DDashboard server
  • The Widget is granted access to the 3DEXPERIENCE servers (3DSwym, 3DSpace, etc.)
  • The Widget can reach external servers (non 3DEXPERIENCE servers)
  • It cannot communicate with other widgets.
  • It cannot interact with 3DEXPERIENCE UI components such as 6WTagger
What is an Additional App Widget?
  • 3DDashboard allows Platform Managers to push externally hosted Widget source-code onto the 3DEXPERIENCE platform as an instance, known as Additional App.
  • Creation of Additional App can be done only by users having Platform Manager Role
  • The Widget Platform Engine loads this transformed widget in the 3DEXPERIENCE browser into a trusted 3DDashboard domain, hence can access 3DEXPERIENCE servers
  • Access to the custom Widget may be provided to all Platform users, or may be limited to specific users
  • It can communicate with other Widgets.
  • It can interact with 3DEXPERIENCE UI components such as 6WTagger, Global Search, or other widgets
What are the key characteristics of a widget html page?
  • MUST be encoded in UTF-8
  • MUST be made of well-formed in XHTML 1.0 Specification
  • MUST feature the widget namespace on the html element
What is the UWA framework?

UWA (Universal Web App) is a simple and elegant web apps framework that uses XHTML for structure, CSS for styling and JavaScript/Ajax for behavioral/DOM control. UWA lets developers “build once and run everywhere”. Apps built with Netvibes UWA can run virtually on all major Web, computer and smartphone platforms.

Reference: https://uwa.netvibes.com/docs/Uwa/html/index.html

What is the javascript to be included for UWA look and feel to a Widget?

UWA_Standalone_Alone.js can be included to give widget the application the look-and-feel of UWA environment

What are user preferences in Widgets?
  • User Preferences can be defined using the UWA’s <widget:preferences> element.
  • User preferences are widget attributes that the end user is able to edit.
Can we associate a stylesheet to a widget?

External style sheet can be associated with a widget using <link> element for beautification.

What are the JavaScript features in the context of Widget?
  • Require function is used to declare the dependencies
  • DS exposed APIs applicable on the widget object is used to handle DOM
  • The event mechanism is based on the DOM event protocol.
  • The widget must set the event callback (to react to the events)
What are the standard events supported for a Widget by the UWA protocol?
  • onLoad: Triggered when the widget is launched
  • onRefresh: Triggered when the widget is refreshed (manually or programmatically)
  • onEdit: Triggered when edition of preferences begins
  • endEdit: Triggered when Edit Preference dialog box is closed (save or cancel buttons are pushed)
  • onResize: Triggered when the widget size (height and width values) changes. It can happen if the end-user resizes the widget’s window, or if the widget’s contents increases/decreases the window’s height
  • onViewChange: Triggered when the widget is windowed, maximized or minimized
  • onKeyboardAction: Triggered when a key is pressed within the widget’s area
What are the features that can be introduced in Custom Widgets?
  • Interaction with 3DSearch
  • Interaction with 6WTags
  • Perform Drag and Drop of data
  • Respond to Publish and Subscribe events
  • Interact with other platform services like 3DSpace, 3DDrive, 3DSwym, etc., using web-services
What are the different files that are available in a widget?
  • Widget.html
  • Code.js
  • Stylesheet.css

Get Trained on 3DEXPERIENCE from PLM Coach

3DEXPERIENCE Triggers

What is a trigger?
  • The web-apps automate business rules using Trigger programs that run when a particular trigger event occurs.
  • The 3DEXPERIENCE platform Business Process Applications contain Trigger programs that automate business rules.
What are the languages supported for writing trigger programs?
  • TCL
  • Java – A Program administrative object with Java code is also referred to as a Java Program Object or JPO.
What are different types of triggers available on the 3DEXPERIENCE platform?
  • Check Trigger
  • Override Trigger
  • Action Trigger
Can we associate multiple trigger programs to a single event?
  • Any event could be associated with multiple Trigger programs. This allows for defining multiple separate and independent business logic for any database transaction.
  • You can also run multiple Trigger programs of the same kind for an event (for example, run 3 separate Check Trigger programs when an object is created). It also makes it easier to enter input for the trigger program arguments.
List different events supported on a business object
  • Business Objects support a lot of events, which can be configured on it’s Type, Policy States, Attributes and Relationships.
  • Some frequently encountered events are:
    • Revision
    • Connect
    • Create
    • Delete
    • Disconnect
    • Lock
    • Modify
    • ModifyAttribute
    • Promote
    • Demote
Define Check trigger
  • The Check Trigger executes before any of the normal system code that carries out the recognized event has a chance to execute.
  • A Check Trigger program can block the event from actually occurring, aborting the event transaction, which means that no other trigger programs are executed. This is a hard block.
  • A system error message indicating the blocked event is displayed in case the condition check fails.
Define Override Trigger
  • The Override Trigger executes after the Check Trigger (if not blocked) and before the trigger event has a chance to execute.
  • It can replace the normal event processing, with an alternate event, in effect blocking the event, which is also referred to as a “soft block” on the event.
  • In this case, only the user-defined error message will be displayed.
Define Action Trigger
  • The Action Trigger executes after the event transaction is committed, irrespective of whether the normal event took place or the override program replaced the event.
  • An Action Trigger is only executed if the previous event is successfully committed.

Get Trained on 3DEXPERIENCE from PLM Coach

3DEXPERIENCE JPOs

What is a Program Object?

A Program is an Administrative Object used to execute specific commands or business logic

What are the different use cases for program objects?
  • Programs can be used to:
    • To populate attribute ranges with dynamic values
    • In format definitions for the edit, view, and print commands
    • Define business logic for Action, Check, or Override Event Triggers
List different types of program objects
  • Java Program Object (JPO) – JPO contains code written in the Java language
  • MQL – An MQL program can be run from any machine with 3DSpace installed. It is not necessary for MQL to be available on the machine
  • External – An external program consists of commands that are evaluated by the command line syntax of the machines from which they will be run.
What are the Program Basic Parameters?
  • Name : Program Name
  • Description : Comment Field
  • Type : MQL (default) / Java / External
  • Code : It is used to define the program code
  • File : The contents of file are added to the code section of the program
Define JPO

A Java Program Object (JPO) is a Program Administrative Object that contains code written in the Java language. In general, we can say, anywhere in the platform, where a Program is used, you could potentially use a JPO.

Where are JPOs stored?

JPOs are stored in ADMINISTRATION vault

What are macros in JPO?

Macros are a simple name/value string substitution mechanism, where the macro value is substituted for the macro name when used in a program.

What is ${CLASSNAME} in JPO?
  • ${CLASSNAME} returns the name of the current Java class.
  • During compilation (and extraction), the macro ${CLASSNAME} is mangled.
Can we use an external IDE for JPO development?

Round-trip engineering means, JPO code can freely move in and out of Live Collaboration from an external IDE.

Specify the command to extract JPOs
extract program * source C:\Temp\JPOs;
Specify the command to insert a JPO
insert program C:\Temp\JPOs\MyCustomProgram_mxJPO.java;
Specify the command to compile a JPO
compile program MyCustomProgram;
What are SCT classes?
  • SCT stands for Studio Customization Toolkit
  • SCT Classes allow you to access the 3DSpace platform database.
  • They provide database access to list, read, modify and create Business Objects. Further, they provide database access to list and read Administrative Objects.
What is a JAR file in the context of 3DEXPERIENCE platform?

Java classes are organised into packages. The Java Archive (JAR) file can contain many packages. Each Business Process Application can add one or many JAR files to 3DEXPERIENCE platform

What are the contents of framework.jar?

The framework.jar file contains the base classes; DomainObject and DomainRelationship, as well as several interfaces and classes that are needed to support these base classes. This jar file also contains a number of utility classes.

List the content of eMatrixServletRMI.jar
  • Matrix.db
  • Matrix.util
  • Com.matrixone.servlet
  • Etc.
How can we execute MQL commands from a JPO program?

The MqlUtil class from com.matrixone.apps.domain.util package contains static methods that can be used to execute MQL commands.

List the methods and their usage on DomainObject class
createObject To add an object to database
reviseObject To create a new revision of an object in the database based on it’s last revision
getInfo To get the Business object basics
getInfoList To get the Business object basics
getRelatedObjects To get the details of connected business objects
deleteObject To delete the current object
deleteObjects To delete the objects specified by the ids.
getAttributeValue To get the attribute value for the specified attribute
getAttributeMap To return all the business object attribute values in a form
setAttributeValue To set the value of attribute specified
setAttributeValues To set the business object attributes for the object
findObjects To find business objects based on search criteria
List the methods and their usage on DomainRelationship class
connect Connects an object with many others using the given relationship type.
disconnect Disconnect the connection(s) with the given relationship id(s).
getAttributeValue Return an attribute value from a relationship.
getAttributeDetails Retrieve all attribute values for a relationship connection.
setAttributeValue Set the value of a specific attribute on the relationship
setAttributeValues Modify the attributes on the relationship defined
What is the difference between Base and Derived JPO?
  • Each JPO is shipped as a combination of a base class and a derived class
  • All “out of the box” (OOTB) business logic is placed in the base class.
  • You should never customise the base class as it contains OOTB code.
  • The derived class is available for the extensions to the business logic.
What is Serialization in JPOs?
  • To pass Objects to a JPO, the JPO class has two methods that correspond to serialising an Object into a String, and de-serializing a String back into an Object.
  • The method names are packArgs and unpackArgs, respectively.
  • Since JPOs only accept strings as arguments, you must use the packArgs / unpackArgs methods to convert Java objects to/from strings when using JPOs.

Get Trained on 3DEXPERIENCE from PLM Coach


3dexperience-architecture-icon-blue
3DEXPERIENCE Platform Architecture Guide
In this guide we describe more in detail the various components of the 3DEXPERIENCE platform, Understand the concepts of infrastructure, networking and virtualization.
3dexperience-web-services
3DEXPERIENCE Platform Web Services Guide
3DEXPERIENCE Platform comprises various applications and services. It also has platform administration control centers to Manage members, role-based access, usage analytics and application behaviour configuration.
3dexperience people & organisation
3DEXPERIENCE Platform People & Organizations Guide
P&O means People and Organizations and defines the main security mechanism in the 3DEXPERIENCE Platform. It consists of Persons, Roles, Organizations, Collaborative Spaces and Security Contexts

Get Trained on 3DEXPERIENCE from PLM Coach