3DEXPERIENCE Enterprise Knowledge Language - Knowledge Standardization - v1.0
3DEXPERIENCE Enterprise Knowledge Language - Knowledge Standardization - v1.0
: 3DS_Document_2021
2
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax
EKL Actions
Know-How Library Functions
3
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
4
• Enterprise Knowledge Language (EKL) is a programming language available in 3DEXPERIENCE platform, and is
oriented to provide a quick development environment, which includes knowledge packages, Types, Methods and Functions
to enable easy Customization, to automate task execution on Client or Server
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Enterprise Knowledge Language (EKL) is the language used to define Programs and Procedures specific for various kinds
of Knowledge artifacts available in different 3DX Apps, Product Lifecycle Management.
• Enterprise Knowledge Language (EKL) is an Interpreted object oriented language based on DS C++ automation
programming language. Scripting languages are often interpreted (rather than compiled).
• Automation:
- Enables the creation and manipulation of existing Classes but does not enable the declaration of new Classes.
- There is an extension called KML (Knowledge Modeling Language) that adds some object modeling capability.
- KML is part of the Design Apps Developer Role (KAC) Know-How Apps Authoring Suite, which is a series of Apps that allow the definition and
management of custom Applications (also known as Know-How Apps) developed within the 3DEXPERIENCE platform.
- The definition of such Apps is stored in the database and can be easily deployed on final user seats (Is not a part of this training but can be
suggested in coming future).
5
• Enterprise Knowledge Language (EKL) is used by a series of Toolkits and Products on top of 3DEXPERIENCE platform
Architecture, like:
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- Business Rules
- Validation Rules
- Generative Rules
- Associative Rules
- User Interface Logic Rules
• Customers will use EKL through our portfolio to implement and execute Rules in a Knowledge Automation or a Quality
assurance perspective.
• Administrators will use EKL (at customer site) to describe Business Rules that will adapt our Products and foundations to
their Business processes.
• DS Developers will also use EKL to describe and deliver Business Rules for default implementation to their modelers
6
• Enterprise Knowledge Language (EKL) is used by customers in the following:
- The Knowledge Advisor product is used to define associative Rules that drive parameter propagation and template morphing
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- The Product Engineering Optimizer product is used to describe engineering problems to be solved
▪ Constraint satisfaction (set of equations and in equations)
▪ Optimization constraints
- The Product design to describe validation Rules and apply them on a design to check its quality and its corporate standard compliancy
▪ Expert Rules and Expert Checks
- The Engineering Process Automation product is used to describe generative Rules included in an engineering process
▪ Knowledge Language behavior
7
• For more information about Enterprise Knowledge Language in general, please refer to User Assistance at the following this
Link Enterprise Knowledge Language
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
8
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax
EKL Actions
Know-How Library Functions
9
• The Enterprise Knowledge Language (EKL) is the language used to define the various kinds of Knowledge artifacts
available in the different Products of the Knowledgeware solution.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• As shown in the graphic at the right, the Engineering Knowledge Language is defined in 4 different flavors, from the very
simple Mathematical language (M-EKL) to the most complete advanced language (A-EKL).
10
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax
EKL Actions
Know-How Library Functions
11
• 3DEXPERIENCE platform Objects are manipulated using a federated object model composed of the following
- Types: A hierarchy of Types (one Type inherits only from one Type) Type (and its hierarchy)
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- Attributes
• Each Type has a list of Attributes
- Simple (Boolean, String, Real, Integer, etc..)
- Reference to other Objects
- List (of values or Reference Objects)
- Components (aggregated Objects or list of aggregated Objects)
• Methods and Functions
- Defined on Types (and inherited), Functions working on Objects
• Argument
- Functions and Methods have a list of arguments
- Overloading is supported, but polymorphism is not supported
- Optional arguments are supported (with no default value, as default value
Is defined in the implementation of the Functions)
- Variable arguments
12
The Action Editor can be divided into 3 sections:
1. In the Argument list section all the required arguments and its Types have to
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
13
• Language Browser is the main language tool when scripting EKL code. Users can keep the Language Browser open while
scripting.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
1. Type: Present’s the object’s PLM Type that a developer is working on.
2. Package Display: When a user wants to check other PLM Types, click
“…” button. A “Select a Type” panel will allow user to choose any PLM
Type.
3. Supported/Inherited Types List: Shows the object’s PLM Type and its
“Family Tree” which shows the inheritance structure.
4. Attributes: All Attributes of the selected PLM Type and all the members in
the “Family Tree” will be listed.
5. Functions Using Type:, All the Functions that belong to object’s PLM
Type will be listed.
6. Search: Allows users to search Functions that contain the Keyword will be
listed in zoom “Functions Using Type”.
14
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax
EKL Actions
Know-How Library Functions
15
Feature
Type
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
Feature Abstract (used only to classify) String Concrete Type (one implementation at least exists) … Enriched by Applications
16
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax
EKL Actions
Know-How Library Functions
17
• With many usage cases of EKL, Rules are created in the context of a particular Model.
• This Model usually contains Parameters (values that can be read or written), variables that Reference isolated geometries
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• In EKL Editor, variables and Objects can be directly selected to be used inside Rules: they are identified by an identifier.
They can be passed as arguments of Functions, Methods, Operators.
18
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax
EKL Actions
Know-How Library Functions
19
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
20
• In order to develop skills on EKL, we have to start with the language’s syntax
• Enterprise Knowledge Language (EKL) is the language used to define programs and procedures specific to Apps.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
21
• Comments can be added to the scripts, to describe Function, Variable definition, etc.
- Single-Line Comment:
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
▪ single-Line Comments can be inserted into scripts using the "/" syntax:
- Multi-Line Comment:
▪ The /* and */ Comment characters are supported
22
• Variable is a storage location associated with an identifier that contains a value.
• EKL allows two types of variables: Literals and Objects.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Variables can be declared using the Let keyword. Let keyword does not set the value of variable.
• Syntax: Let Name_of_the_Variable(Type)
- Where “Let ” is the Keyword and the statement of the variable definition.
- ”Name_of_the_Variable” is the variable name and “(Type)” is the object’s internal Type in EKL (String, Integer, etc.).
- You can declare more than one variable in a single line
• Ideally, Variables should be declared at the beginning of the script.
• Variables have a scope. This means that a variable declared within a block can only be used within this block
23
• 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.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• 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.
• When setting a variable, the value type must be a subtype of the variable creation type.
• The set keyword is also a conversion operator. It lets you switch between types and checks if the variable supports the
destination type. If not, NULL is returned.
24
• Operators are special symbols that perform specific operations on one, two, or three operands, and then return a result.
• Operators allow to manipulate and compare variables and other inputs, used throughout the code.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
25
• A Constant is an identifier for a simple value, whose value cannot be changed.
• The following constants are specified or recognized by the App when programming Rules and Checks, and as a result, they
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
26
• Control flow statements can be used when working with the Enterprise Knowledge Language.
• Control flow statements are used to determine the order of Function calls and execution of statements, when a script is
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
running.
- The if ... else ... else if …Statement
- This statement tells the program to execute a block, only if a given section of code evaluates to true
Ternary expression EKL statement
27
• Loop is a sequence of instructions. It is used to repeat a block of code.
- The for statement executes a loop based on the elements of a list, where For…While Loop executes a loop based on the value of a Counter
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- The for statement to execute For…While Loop on each object in a list is a shown below:
28
• Feature is an Abstract Type which provides a list of Attributes that are available on each object.
• Feature Type is the basic Type for all Objects in 3DEXPERIENCE platform (all Objects inherit from this particular Type) .
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Feature Type enables you to manipulate, in a generic way, the 3DEXPERIENCE platform object mode by:
- Naming and Commenting
- Typing and Attributes
- Navigation in the Tree
- Reading and writing Attributes
- Creating and deleting Objects
29
• Attributes representing the information contained in a given instance of a Type “i.e. VPMReference, VPMInstance”.
Example: Name, Description, etc.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
30
• A Function is a block of code that accomplishes a specific task and returns a value.
- A Function takes an input, processes it, and returns a result.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- EKL provides a Library of Functions that can be accessed using the language browser.
- To write a specific Functions, we can use Know-How Capture to work with reusable Functions.
• A Method is a block of code associated with a Type, and has access to its Attributes.
• Functions and Methods allow to perform operations on inputs, and returns data after the operation has been completed.
- Function call:
- Method call:
31
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
32
• Example of Functions and Methods within EKL
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax, Functions and Methods
EKL Actions
Know-How Library Functions
33
• Actions can be applied and executed on Business Object.
• You can create an Action that lets you perform interactively what the Enterprise Knowledge Language (EKL) enables you to
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
do.
• An Action is created keeping in mind that the user would like to perform on-demand tasks, unlike the Business Rules where
tasks are performed based on events (Save, Duplicate, and so on.)
• For example, you can perform search and query operations.
34
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
35
• The Template Designer Role (KDI) is required for creating an Action.
• Where to create Action
- From New Content create object of Type Physical Product.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
36
- After creating a Knowledge Engineering Specification Physical 5
object Action Editor Dialog appears.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
37
- Once the script is validated, the Action is displayed in the Tree.
- Right Click on the Action select Action.1 Object Run
- In the popup, click on Insert Object. Select the Physical Product object from the Tree. 9
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
11
10
38
2
• Using Engineering Rules Capture, VBScripts can be
added to the representations and can be called from
KW Action.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
1
1. Click on VB Action command to create a new VB
Action
2. VB Action is created in the same Representation
as the KW Action
3. Write the necessary VB Code in the VB Action.
4. Reference the VB Action in the KW Action 3
5. Execute the KW Action, VB Action is called from
within the KW Action Let oVBAction(VBScript) 5
Let strValue(String) 4
oVBAction= `Knowledge Engineering Specification Physical00049913
A.1\Relations\VB Scripts.1\VB Script.1`
oVBAction.Run("Hello", "World")
39
In this use case, we will create an EKL Action to
- Invoke the selection panel and select any Occurrence from the Product Structure.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- From the Occurrence retrieve the Reference, get the Attribute information like Name, Revision, PLMExternal_ID and display it using a
Notification Message
- Retrieve the number of Child Occurrence from the selected Occurrence and notify the First Level Children Count.
- From the Children List of each Occurrence get the Reference
- From the Reference retrieve the Attributes information like Name, Revision and PLMExternal_ID
- Store the Attribute Information in a List
- Under each Occurrence, check if there is any direct child available.
- Notify the List of total children under the Occurrence under level 1 and 2.
- If Attribute Information list is > 0 then notify the complete list.
40
1. Role: Leader
2. Click on Compass and select Template Designer Role.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
41
5. New content creation window will appear. Select Physical Product
6. Physical Product object should get created.
Rename its Title as Exercise_5_PhysicalProduct
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
7. Add one Physical Product instance under the above created object by
using below navigation
Right Click Insert Product
From new content creation window, select Physical Product.
Repeat the same steps to create a Physical Product with Level 1, Level
2 and Level3 structures as shown
42
9. Save the structure.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
10.From Action Bar, select Action under Engineering Rules Capture section
11.In Knowledge Engineering Specification Physical window retain the default values and click OK
43
12. Key-In below EKL code in code editor section of Action Editor
/* Action - Create an Action to Notify List of Children */
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
Notify("My Selected Object Information is : ", strInfopartname , " || ",strInfopartID , " || " , strInfopartVersion)
Children=SelectOccurrence.Children
Notify("No of first level Children object is : ",Children.Size())
44
if ListOfResultAttribute.Size() > 0
{
Set j = 1
for j while j<=ListOfResultAttribute.Size()
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
{
Notify ("Children information attributes : ", ListOfResultAttribute[j])
}
}
13.In Action Editor, for Argument list key-in SelectOccurrence in Name and select ProductOccurrence in Type
45
15. Click on OK to update and Save the Product Structure.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
46
17.In Insert Object dialog box, select any
Physical Product in tree and click on OK
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
1
18.The information for queried Product
object from the structure will be displayed
in form of notification
47
• In this use case we have created an EKL Action for retrieving and displaying:
- Information about selected object
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
48
• Note that, Enable the EKL Script for Use as Toolbar Button
• For any specific needs might an action be configured to be called directly from your workbench.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
49
EKL Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
EKL Structure
EKL Editor and Language Browser
EKL Core Hierarchy and Types
EKL Generalities
EKL Core Syntax, Functions and Methods
EKL Actions
Know-How Library Functions
50
• Know-How Library allows the creation of reusable functions that will be available in EKL script editors.
• With Know-How Library, we can do the following:
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
51
• Steps to create Know-how Library functions are as follows:
- Create New Content, of type Know-how Library
1
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
52
- Select a Know-how Library and click on Create Know-how Function command.
4
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
53
- Define the EKL script and click Ok to save it.
7
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
54
- Bind the Resource to required Collaborative Space and Deploy the same to server.
9
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• The Know-how Library as created above may then be used in any Business Rule or Actions.
- Create a “Physical Product” objects and add Action as shown below.
1
55
• Double click on the Action. Using include keyword, we import the Resource.
• Click on OK.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Right click on the Action, Select the action object and run.
56
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
57
• 3DEXPERIENCE platform Business Rules are a means to implement custom business logic, to align the PLM application
with the customer’s business needs.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
58
• Most Business Rules are invoked on the Rich Client.
- Applicative Business Rules.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Theoretically, any Function or method available in X-EKL (Extended EKL) can be used in these Business Rules.
• In reality, a Business Rule is invoked in a particular context (for a given PLM opening)
- For example: “The Initialization Business Rule” is invoked on a PLM object just after its creation to provide Attributes initializations.
• The Business Rule acts mainly on the object on which an operation is invoked. This objects is called the fact, identified in
the Business Rules by the variable ThisObject.
• As a consequence, the minimum information that we can access in a Business Rule are the Attributes of the object.
• Each PLM opening usually provides some additional Parameters that correspond to information specific to the context.
• Some Business Rules are invoked on the 3DSpace Server (VPLM Component).
• They are also defined using Enterprise Knowledge Language (EKL) but they can access only a limited list of Functions.
59
• For more information about Knowledge Language Business Rules in general, please refer to User Assistance at the
following this Link Enterprise Knowledge Language Business Rules
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
60
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
61
• The 3DEXPERIENCE platform VPLM is based on an architecture merging a Core Model with Native authoring apps,
covering the design, engineering, simulation and manufacturing domains.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- This architecture needs to be customizable on site by Administrators to better match the critical behaviors of the 3DEXPERIENCE platform
with the specific requirements of the customer’s business processes.
• 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.
- 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 processes.
- The implementation of an Opening is performed through Rules. A Rule is the description of the behavior alteration using the Enterprise
Knowledge Language (EKL).
62
• Customization Intent – The system triggers the Business Rule with a Customization Intent. There are three Types of
intents : Validation , Computation, Execution
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- 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.
63
• Customization Intent – The system triggers the Business Rule with a Customization Intent. There are three Types of
intents:
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- Computation: Used to compute a result from the state of an object. Only the best possible Rule for the couple <object Type, opening> is
- INFRADeploymentExtensionComputation
64
• Customization Intent – The system triggers the Business Rule with a Customization Intent. There are three Types of
intents : Validation , Computation, Execution
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- Execution : The object can be modified by the Rule. Only the best possible Rule for the couple <object Type, opening> is executed.
65
• 3DEXPERIENCE platform Business Rule works on a set of typed variables. This set includes the following:
- ThisObject: ThisObject is a variable that represents the object on which the Rule is acting.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
▪ The Type of ThisObject variable is determined when creating the Business Rule.
▪ In Execution mode, Attributes may be modified by the Rule.
▪ In Validation or Computation mode, Attributes can only be read by the Rule.
- Parameters: This is a standard object that provides contextual information about the opening.
▪ This is the context object.
▪ In the Rule, it is called Parameters because its Role is to provide access to Parameters.
▪ This variable is of Type Rule Context. This Type inherits the basic Feature Type and holds six Attributes: UserID, Role, Project, Organization, Severity
and Message.
- Validation (optional): When the Rule is used by the opening as a validation, an additional variable Validation of Boolean Type will be available
within the Rule.
▪ The Rule writes its value to express the validation result.
▪ The Message attribute of Parameters may be set inside the Rule. If it is set, then the standard failure message will be replaced by the one set inside the
Rule.
• Business Logic Implementations sometimes need to rely on a non persistent object called VPLM Proxy that mimics a VPLM
component and that will be used in Business Rules.
- This is the case for VPLM New related Business logics or VPLM Import Business logic. In this context, Knowledge accessors valid for VPLM
Component are not available on PLM Proxy.
66
• Example 1: The Rule below enables you to customize the alias of a VPLM Component and then customize the name of
Component
ThisObject.PLM_ExternalID = Parameters.UserID /*Possible direct Attribute notation*/ + "_" + Parameters.GetAttributeString("IdString")
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
67
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
68
• Business Logic Openness refers to a set of Opening IDs which are available for implementation.
- It enables the Administrator to integrate enterprise policy by associating Business Rule scripting to the customized VPLM Components.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Openings for Business Rules are logically grouped together, based on their functionalities, into Resource Sets, as can be
seen in below screenshot from the Data Setup app.
69
• A Resource Table needs to be assigned to each Resource Set, in order to gain access to the Openings that are associated
with the Resource Set.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
70
• Several workflows invoke available Business Logic Openness (for example Data Import, UI Commands, etc.).
• Please refer to dedicated Product Documentation to precisely know the list of referenced Opening IDs.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Refer to User Assistance to obtain a list of available Resource Set IDs. You may follow the below navigation:
Installation and Setup > Customize > 3DEXPERIENCE Platform > Behavior > Data Setup > List of Resource Set IDs
71
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
72
• Some Opening IDs are applicable only for On-Premise environment.
• Some Opening IDs are common for On-Premise and On-Cloud environment.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Openings that do not appear in the previous tables are available and identical for both on the cloud and on premises
73
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
74
• Apps rely on standard resources that modify their behaviors and that must be identified and localized when the app is
running and exploiting them.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
Business Rules can also be implemented using the Quality Rules Capture app
75
• What?
- Business Rule will be implemented to initialize the identifier for newly created Objects.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- As per customized naming rule, all newly created Object’s identifier will start with the default prefix «DS_Training_»
- The value for Title field will be set as per a custom counter.
Title = Counter
Name = will be identified by prefix + counter
76
• Where?
- In a Resource Table corresponding to the set of resources necessary for customizing naming rules as per customer’s needs.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- In this case, Administrator needs to specify Business Rule against Resource Logical Name Attributes initialization (Opening ID:
PLMIdentificationInitialization), which allows us to define a Business Logic to pre-valuate the Attributes of an object at creation action.
77
• How?
- We shall today use Data Setup app for implementing this customization, even if we have different way to do.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
78
• :Steps study Create a new Resource Table against Resource Set named PLM Business Logic Implementation
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
79
• Steps (study): Create and associate a Resource (Business Rule) against the opening.
3.i
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
3.iii
3.ii
80
• Steps (Study): Write the EKL script in Business Rule to implement custom logic.
4.i 4.i
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
4.ii
81
• Steps (Study): Save the Business Rule, bind it to a Collaborative Space and deploy the same.
5.i
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
Drag and drop the newly Implemented Resource table into the Collaborative Space where
needs to be Performed and from share menu save the changes.
9 5.ii
84
In this use case, we will
- Implement a BL on opening ID “Attribute Valuation Propagation” for Client Side
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- Get input from the Parameters for the Propagation Mode (Edition, Valuation)
- Check the details for the Propagation Mode to evaluate Attributes created previously in Exercise #1
- In Case of Edition, using V_Name value, value for attribute Training_Description will be evaluated
- In Case of Valuation The V_Name value will be added to Valuation_V_Name and it will check for Parameters, If the default value of Attribute
“Training_Listinfo” Changes then it will evaluate the Attribute Training_Validation and will set its value to Valuation_V_Name
- This Business Logic (BL) will be invoked once users start to create a new content of type Physical Product
85
1. Login to Native Apps using the following credentials:
2. Ensure the Security Context is as below:
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
Role: Owner
3. Click on Compass and select Data Setup app.
4. From the Resource Table tab, select Resource Set named
Business Logic implementations.
5. Right click on above Resource Set, and click on
Create a new Resource Table.
6. Click on Ok on the Resource Set form
86
7. Select the opening Attributes valuation propagation.
8. Double-click on <Unset> under Resource column.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
87
12.Key-In below EKL code in code editor section of EKL Editor
//Business Rule - Create a Business Logic Rule Client Side
Let TempID(String)
Let IDIndex(Integer)
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
Let strDesc(String)
Let stroredName(String)
Let P_PropagationMode(String)
P_PropagationMode = Parameters->GetAttributeString("PropagationMode")
Notify("My Propagation Mode is : ", P_PropagationMode)
if ("Edition" == P_PropagationMode)
{
if (ThisObject->HasAttribute("V_Name") == true)
{
stroredName = ThisObject.V_Name
}
IDIndex=stroredName.Search("-")
if (IDIndex==-1)
{
TempID=stroredName
}
else
{
TempID=stroredName.Extract(0,IDIndex)
}
strDesc= P_PropagationMode + "_" +TempID
if (ThisObject->HasAttribute("V_description") == true)
{
ThisObject->SetAttributeString("Training_Description", strDesc)
}
}
88
else if ("Valuation" == P_PropagationMode)
{
if (ThisObject->HasAttribute("V_Name") == true)
{
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
stroredName = ThisObject.V_Name
}
IDIndex=stroredName.Search("-")
if (IDIndex==-1)
{
TempID=stroredName
}
else
{
TempID=stroredName.Extract(0,IDIndex)
}
strDesc= P_PropagationMode + "_ " +TempID
if (Parameters->GetAttributeString("EditAttributeId")== "Training_ListInfo")
{
ThisObject->SetAttributeString("Training_Validation",strDesc)
}
}
89
14.To verify the code, click on Syntax Errors option
15.Click on OK to update and Save the code
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
90
18.Drag the newly created Resource Set and drop onto the
VPLM_CollaborativeSpace Collaborative Space.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
91
• In this exercise, you have:
- Created a Business Rule for client side.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
92
• Administrator can specify Resource (Business Rule) against Resource Set named Business Logic for validation on
server, to perform validation in Pre or Post Action, for events like
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
93
Business Logic for Validation on Server Available only on premise
• What?
- Implement a Business Rule to check if the value of Description field of a Physical Product is set to “IsChecked”. If true, allow Maturity change
action, otherwise block action.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Where?
- Implement Business Rule in Resource Set named Business Logic for validation on server, against Resource Logical Name Pre Check
Maturity.
• How?
- Implement customized Business Rule using Data Setup app.
94
• Steps: Create a new Resource Table against Resource Set named Business Logic for validation on server
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
95
• Steps (continued): Create a new Business Rule against Logical Name Pre Check Maturity. Write code to allow Maturity
change only when value of V_Description attribute equals “IsChecked
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
96
• Steps (continued): Save the changes. Bind the newly created Business Rule to the required Collaborative Space, and
deploy the same
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
97
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
98
• Steps (continued): Validate the implemented Pre Check Maturity Business Rule
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
99
• Administrators can use Data Model Customization web app to create and deploy Business Rules for the 3DEXPERIENCE
platform.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- In order to use this app, user must have Customization Administrator role (TXO license).
• It is important to note the below points regarding working with Business Rules using the Data Model Customization app:
- Resource sets are automatically created.
- Resource sets are automatically bound to the Corporate Collaborative Space.
- Not all Openings are available. Only the Openings which are available on the Server, or, on both the Client and the Server, are available.
- No deployment required.
100
• The Manage Business Rules web UI proposes a list of Business Rules where the Administrator performs and defines an
Implementation of Business conditions
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
Only those Opening IDs are displayed whose scopes are either Server side, or else,
Client and Server side. Openings with scope as Client side only are not displayed.
101
• After the Rule created using the Data Model Customization Web App (TXO) is committed, it will also be available through
the Data Setup Native App, through which some modifications are allowed.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
102
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
103
• Customized Business Rule can be implemented by using CATRule and CATRuleExit files as well.
- This form of implementation requires manual deployment of the above files to 3DEXPERIENCE platform. This is unlike the implementation
done using the Data Setup native app or the Manage Business Rules web-client, where deployment happens automatically from the apps.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• The CATRule and CATRuleExit files are similar to the text file having the Extension as mentioned below:
- MyBLFile.CATRuleExit
- MyBLFile.CATRule
• CATRuleExit:
- This file contains the details of the Opening ID, lists of Types and information related to the resources described previously, and the name of
the of the corresponding CATRule script file.
- The CATRuleExit files can have multiple entries.
- It is not recommended to modify the OOTB CATRuleExit files.
- It is not recommended to have multiple Implementations of the same Opening ID for the same PLM Type.
• CATRule:
- This file contains the script with which the customized Business Logic would be implemented. It is not recommended to modify the default
OOTB CATRule files.
104
• What?
- Business Rule will be implemented to initialize the identifier for newly created Physical Product objects.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- Using the following Naming Rule, the identifier for newly created objects will start with the default prefix «DS_Training_»
• Where?
- The Business Rule will be implemented with the use of CATRule and CATRuleExit files.
105
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
106
• How?
- Create CATRuleExit and CATRule files as described below
• Deploy the CATRule and CATRuleExit files at the below location on the client machine:
<Installation Directory>\<OS_dir>\resources\knowledge\scripts
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
107
Knowledge Language Business Rules Overview
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
108
• Business Rule Traces allows Business Logic Developers to gain access to logs, and to debug the Business Rule
implementation.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
109
• The Knowledgeware Debugger allows the running of a code in a dedicated user interface to identify potential problems.
• The following objects can be debugged
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
- Rules
- Actions
- Knowledge Patterns
- PLM Rules
- PLM Checks
110
• Retrieve content information from the following gitlab
- https://itgit.dsone.3ds.com/ww-ve-software-architects/snippets/ekl-rest-web-services-for-bookmark.git
- Download content and follow the deployment procedure.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
111
• Retrieve content information from the following gitlab
- https://itgit.dsone.3ds.com/ww-ve-software-architects/snippets/ekl-rest-web-services-for-bookmark.git
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
112
API Method/Property Description Documentation Link
113
API Method/Property Description Documentation Link
114
• Maximize the value of using the 3DEXPERIENCE OOTB functionalities.
• Using 3DEXPERIENCE EKL or Business Logic to customize your business processes need.
© Dassault Systèmes | Confidential Information | 4/25/2022 | ref.: 3DS_Document_2021
• Customize Business Logic should be implemented by using Data Setup native app only.
• Customize EKL by using Know-How Library allows the creation of reusable functions that will be available in EKL script
editors
• Finally keep your customization under control.
115
© Dassault Systèmes | Confidential Information | 2/28/2022 | ref.: 3DS_Document_2021
116
© Dassault Systèmes | Confidential Information | | ref.: 3DS_Document_2021
117