LN10.7 Infor LN Studio Application Development Guide
LN10.7 Infor LN Studio Application Development Guide
LN10.7 Infor LN Studio Application Development Guide
Development Guide
Release 10.7.x
Copyright © 2020 Infor
Important Notices
The material contained in this publication (including any supplementary information) constitutes and
contains confidential and proprietary information of Infor.
By gaining access to the attached, you acknowledge and agree that the material (including any
modification, translation or adaptation of the material) and all copyright, trade secrets and all other
right, title and interest therein, are the sole property of Infor and that you shall not gain right, title or
interest in the material (including any modification, translation or adaptation of the material) by virtue
of your review thereof other than the non-exclusive right to use the material solely in connection with
and the furtherance of your license and use of software made available to your company from Infor
pursuant to a separate agreement, the terms of which separate agreement shall govern your use of
this material and all supplemental related materials ("Purpose").
In addition, by accessing the enclosed material, you acknowledge and agree that you are required to
maintain such material in strict confidence and that your use of such material is limited to the Purpose
described above. Although Infor has taken due care to ensure that the material included in this publication
is accurate and complete, Infor cannot warrant that the information contained in this publication is
complete, does not contain typographical or other errors, or will meet your specific requirements. As
such, Infor does not assume and hereby disclaims all liability, consequential or otherwise, for any loss
or damage to any person or entity which is caused by or relates to errors or omissions in this publication
(including any supplementary information), whether such errors or omissions result from negligence,
accident or any other cause.
Without limitation, U.S. export control laws and other applicable export and import laws govern your
use of this material and you will neither export or re-export, directly or indirectly, this material nor any
related materials or supplemental information in violation of such laws, or use such materials for any
purpose prohibited by such laws.
Trademark Acknowledgements
The word and design marks set forth herein are trademarks and/or registered trademarks of Infor and/or
related affiliates and subsidiaries. All rights reserved. All other company, product, trade or service
names referenced may be registered trademarks or trademarks of their respective owners.
Publication Information
Release: Infor LN 10.7.x
Publication Date: March 12, 2020
Document code: ln_10.7.x_lnstudiodg__en-us
Contents
Contents
Function Editor..............................................................................................................................161
Overview tab..............................................................................................................................162
Source tab..................................................................................................................................163
Documentation tab.....................................................................................................................163
TDE Documentation tab.............................................................................................................163
Label Editor...................................................................................................................................163
Overview tab..............................................................................................................................164
Translation tab............................................................................................................................167
Documentation tab.....................................................................................................................168
TDE Documentation tab.............................................................................................................168
Using labels...............................................................................................................................168
Library Editor.................................................................................................................................169
Overview tab..............................................................................................................................169
Source tab..................................................................................................................................172
Documentation tab.....................................................................................................................172
TDE Documentation tab.............................................................................................................172
Menu Editor...................................................................................................................................173
Overview tab..............................................................................................................................173
Preview tab................................................................................................................................176
Documentation tab.....................................................................................................................176
TDE Documentation tab.............................................................................................................176
Message Editor.............................................................................................................................176
Overview tab..............................................................................................................................177
TDE Documentation tab.............................................................................................................179
Messages...................................................................................................................................179
Question Editor..............................................................................................................................180
Overview tab..............................................................................................................................181
TDE Documentation tab.............................................................................................................183
Questions...................................................................................................................................183
Report Editor.................................................................................................................................184
Overview tab..............................................................................................................................184
Input Fields tab..........................................................................................................................189
Layouts tab.................................................................................................................................192
Source tab..................................................................................................................................197
Documentation tab.....................................................................................................................197
Overview ruler............................................................................................................................271
Editor shortcut menu..................................................................................................................272
Keyboard shortcuts....................................................................................................................274
Comparing Source Code Versions................................................................................................275
Application Search........................................................................................................................275
Application search procedure for servers with Enterprise Server 8.6 and lower.......................275
Application search procedure for servers with Enterprise Server 8.7 and higher......................276
Code Assist...................................................................................................................................276
Comments.....................................................................................................................................279
Toggling comments....................................................................................................................279
Maintenance comments.............................................................................................................279
Adding comments......................................................................................................................281
Folding...........................................................................................................................................281
Defining folding preferences......................................................................................................283
Incremental Find............................................................................................................................283
Keyword Search............................................................................................................................284
Mark Occurrences.........................................................................................................................284
Open Declaration..........................................................................................................................285
Viewing general properties........................................................................................................286
Viewing source code..................................................................................................................286
Functions and arguments..........................................................................................................286
Miscellaneous elements.............................................................................................................288
Quick Outline view.........................................................................................................................289
Text Hovering.................................................................................................................................290
ToDo Comments............................................................................................................................290
Toggle Breakpoints........................................................................................................................291
Generating Source from WSDL.....................................................................................................291
Chapter 10: Perspectives...............................................................................................................293
Application perspective..................................................................................................................293
Debug perspective.........................................................................................................................294
Chapter 11: Views...........................................................................................................................296
Activity Explorer view....................................................................................................................296
Toolbar.......................................................................................................................................297
Shortcut menu...........................................................................................................................298
Progress view................................................................................................................................325
Toolbar.......................................................................................................................................325
Icons..........................................................................................................................................326
Tasks view.....................................................................................................................................326
Toolbar.......................................................................................................................................327
Shortcut menu...........................................................................................................................327
Icons..........................................................................................................................................328
Variables view................................................................................................................................328
Toolbar.......................................................................................................................................329
Shortcut menu...........................................................................................................................329
Icons and decorators.................................................................................................................330
Limitations..................................................................................................................................331
Verify Components view................................................................................................................331
Toolbar.......................................................................................................................................332
Shortcut menu...........................................................................................................................332
Icons..........................................................................................................................................332
Table Fields view...........................................................................................................................333
Shortcut menu...........................................................................................................................333
Chapter 12: Infor LN Project Server..............................................................................................334
Procedures....................................................................................................................................334
Defining a software project........................................................................................................334
Delivering software components................................................................................................335
Dialogs..........................................................................................................................................337
Create a Software Project..........................................................................................................337
Create a new Activity.................................................................................................................338
Compile activity overview...........................................................................................................340
Open a Delivery Activity.............................................................................................................340
Create a Solution.......................................................................................................................341
Add development activity...........................................................................................................342
Browse Solutions.......................................................................................................................342
Browse Solution Types...............................................................................................................344
Select Component(s) for delivery...............................................................................................344
Project Server View Filter..........................................................................................................346
Multipage Editors...........................................................................................................................346
Solution Editor............................................................................................................................346
Perspectives..................................................................................................................................350
Project Server perspective.........................................................................................................350
Views.............................................................................................................................................350
Software Project Explorer view..................................................................................................350
Delivery Explorer view...............................................................................................................353
Glossary..........................................................................................................................................356
Document Summary
This document describes how developers must use Infor LN Studio to develop new Infor LN applications,
or to customize existing software components.
Related documents
You can find the documents in the product documentation section of the Infor Support Portal, as
described in "Contacting Infor".
• Infor LN Studio Administration Guide
Contacting Infor
If you have questions about Infor products, go to Infor Concierge at https://concierge.infor.com/ and
create a support incident.
The latest documentation is available from docs.infor.com or from the Infor Support Portal. To access
documentation on the Infor Support Portal, select Search > Browse Documentation. We recommend
that you check this portal periodically for updated documentation.
If you have comments about Infor documentation, contact [email protected].
available for the UNIX and Windows platforms, and supports the Check out and Check in of various
types of software components. A more extensive CM solution will be offered in a future release. For
details on the usage of SCM, and information on how to set up an SCM environment on the LN server,
see "To use the Software Configuration Management system (SCM)" in the LN Web Help.
Workbench
The LN Studio workbench is based on Eclipse.
This table shows the features of the LN Studio workbench:
Feature Description
Wizards LN Studio contains various wizards that you can use to create software
components, such as sessions, menus, labels, libraries and messages.
See Create a New Infor LN Software Component on page 97.
You can edit the new components using component-specific Multipage
Editors.
Multipage Editors LN Studio contains various multipage editors that you can use to edit
software components, such as sessions, menus, labels, libraries and
messages.
See Multipage Editors on page 144.
Graphical Editors Editors for modeling Business Interfaces and their implementations.
Script editor An editor that supports the 4GL programming language. A content assistant
is available, supporting syntax highlighting and completion of keywords.
The editor also supports an outline of the scripts or libraries.
See Script Editor on page 264.
Feature Description
Activity Explorer view Shows a tree view of the software components in the activity that you have
opened, and their relation to each other.
Each activity is part of a software project and is assigned to a user (software
engineer). Activities and software projects are stored on the Project Server.
The Activity Explorer shows these components:
• Additional File
• Business Object
• Domain
• Function
• Label
• Library
• Menu
• Message
• Question
• Report
• Session
• Table
The view's shortcut menu enables you to perform Configuration Manage-
ment related actions, such as check in and check out, on these components.
See Activity Explorer view on page 296.
Note:
• To create a new software component, you must use the Create a New
Infor LN Software Component wizard.
• To link a software component, which already exists on the LN server,
to the activity that you have opened in the Activity Explorer, complete
one of these steps:
• Use the Get command in the Component Explorer view.
• Use the Select a Software Component command in the LN Studio
toolbar.
• Use the Open Declaration command in the Script Editor.
• Project Managers can create new activities through the Software
Project Explorer view.
Problems view Shows errors and warnings from a project build (compilation).
See Problems view on page 323.
Tasks view Shows Eclipse tasks. Each Eclipse task represents an action that must be
performed, for example modify a particular line in a script. If a task is asso-
ciated to (a line in) a script or library, you can double-click the task to edit
the script or library. The editor opens the script or library at the involved
line.
You can create Eclipse tasks through the Tasks view and from the LN
Studio script editor.
For more information, see Tasks view on page 326, Source Tab on page
268, and ToDo Comments on page 290.
Feature Description
Verify Components Shows the warnings that are generated when you verify software compo-
view nents. The verification process performs various checks, based on the LN
design principles.
For more information on the verification of software components, see:
• Verifying software components on page 57
• "Verify Software Components (VSC)" in the Web Help on the LN
server.
Build option Synchronizes the modified sources with the server, and starts the compila-
tion using the generators and compilers on the server. Any problems that
occur during the build process are displayed in the Problems view.
Run / Debug options The Run command enables you to run sessions from the LN Studio.
The Debug command runs a session in debug mode. You can set break-
points before you start the Debug command. From the debugger you can
execute various debug commands, for example: you can suspend a running
session, so that you can inspect it more closely.
See Running LN sessions on page 61 and Debugging LN sessions on
page 63.
For details on the these features, see the LN Studio workbench on page 20 topic.
Note: To use LN Studio for customizations, such as changing reports and forms, you do not need an
additional license. However, if you want to use LN Studio for development activities, such as creating
new tables, editing UI scripts, functions, or libraries, you need a development license, and if necessary
source codes.
Some LN Studio functionality depends on the Enterprise Server version of the LN server. For an
example, see Application Search on page 275.
User roles
This table shows the user roles that can be distinguished in LN Studio:
Role Description
Administrator The administrator creates and maintains the applications for which the software
projects are defined.
For more information on the administrator's tasks, see the Infor LN Studio Ad-
ministration Guide.
Role Description
Project Manager Project managers create and maintain the software projects and activities in
which the software components are developed. The Project manager assigns
each activity to a Software Engineer.
The projects and activities are stored on the Project Server.
For more information on the project manager's tasks, see Defining a software
project on page 334.
Software Engi- Software engineers develop software components through the LN Studio. Before
neer editing a component, an engineer must first open an activity that the Project
Manager assigned to him/her.
For more information on the tasks of a software engineer, see Developing soft-
ware components on page 54.
Architecture
The LN Studio is implemented in the Eclipse 4.3 framework.
The LN Studio workbench runs on the user's client PC (desktop).
The software components, and the Package VRCs to which they belong, reside on the LN server. The
development projects, to which the components are linked, can reside on the same LN server. However,
you can also configure a dedicated server to store the project data.
The connection between the client PC and the server(s) is based on JCA: the LN Studio connects
through a JCA connectivity plug-in on the client PC to the server.
For details on Eclipse, see the Eclipse online help and http://www.eclipse.org/.
Troubleshooting
If you encounter any error messages, for example on connectivity, read these log files for detailed
information:
• The Eclipse log files in your local workspace. To find the location of your workspace, select File >
Switch Workspace in the Eclipse workbench. The Eclipse log file is located in the .workspace\
.log file in the workspace. If LN Studio is running, you can also view the log messages in the
Error Log view in LN Studio.
• The log file of the Connectivity plug-in. To find the location of this log file:
1 Select Windows > Preferences. The Preferences dialog box is displayed.
2 In the tree that is displayed in the left pane of the dialog box, expand the Infor LN JCA
Connectivity node. Then, click Log configuration. The log file location is displayed.
LN Studio workbench
The LN Studio workbench is a desktop development environment that is based on the Eclipse framework.
You can use the workbench to perform these tasks:
• Define software projects and activities in Project Server.
• Open an activity in the Activity Explorer view.
• Edit components such as Sessions, Reports, and DAL scripts.
• Run software components. For example, run a session after you changed the corresponding UI
script.
• Debug software components.
• Edit Business Interfaces.
• Generate runtime code for Business Interfaces.
• Test Business Interfaces.
In a Workbench window, you can open multiple perspectives, and you can switch between the
perspectives that you have opened. The name of the active perspective is displayed in the title of the
window. See the previous figure for an example.
A perspective contains editors and views, and controls what appears in certain menus and tool bars.
An editor is a visual component within the LN Studio workbench that is typically used to edit or browse
a resource, such as a session or a library. Modifications made in an editor follow an open-save-close
life cycle model. Multiple instances of an editor type may exist within an LN Studio workbench window.
A view is a visual component within the LN Studio workbench. It is typically used to perform these
actions:
• Navigate a hierarchy of information. For example, browse the resources in the development
repository.
• Open an editor.
• Show properties for the active editor.
Modifications made in a view are saved immediately. Normally, only one instance of a particular type
of view may exist within a workbench window.
These views are examples of typical LN Studio views:
• Activity Explorer
• Software Project Explorer
• Component Explorer
• Verify Components
Running sessions
From the Run menu, you can run any session on the LN server.
See Running LN sessions on page 61.
Preferences
You can set various user preferences for the LN Studio workbench. For example: connectivity settings,
preferences for the editor, and label decorations.
See Setting user preferences on page 32.
More information
The LN Studio workbench is based on Eclipse.
For details on the standard Eclipse functionality, see the Workbench User Guide in the Eclipse online
help. This guide contains useful information and tutorials on various topics.
For information on the extra functionality developed by Infor, see LN Studio overview on page 15.
To access the Workbench User Guide and the LN Studio online help, select Help > Help Contents.
Applications
This topic describes the concept of applications.
LN Studio uses applications to group software components created or modified during a software
development project. This is performed by bundling one or more LN packages.
An LN Studio application comprises a consistent set of packages that functionally belong together.
Each application is linked to a Base VRC. This determines the environment on the LN server in which
the application's software components are stored.
For each application, you can define one or more projects, in which the software engineers can develop
their software components.
The Base VRC of an LN Studio application corresponds with the Base VRC of a PMC module. Within
the PMC module, the package VRCs are linked to the Export VRC of the PMC Base VRC. Therefore,
all packages assigned to an application are linked to the Export VRC of the Base VRC of the PMC
module and the other way around. Therefore, all packages that have the same VRC as the PMC Export
VRC represent one application.
This diagram illustrates the relationships between applications, packages, and VRCs:
Note: You can only delete, modify or create components belonging to the packages linked to the
application. Therefore, the Component Explorer shows the components from the packages linked to
the application. The Create a New Infor LN Software Component wizards only allow you to create
new components in these packages. This restriction also applies to the Duplicate an Infor LN Software
Component wizard.
Cloud-specific differences
In the cloud, some features may work differently or may not be available.
These are the cloud-specific differences:
• You cannot debug with LN Studio. Instead, you must use the debug workbench.
• You cannot start the old report layout editor because it requires an OLE connection. Instead, you
must use the report designer workbench.
• You cannot start sessions from LN Studio. Instead, you must start the sessions from LN UI.
First installation
Prerequisites
This section describes the prerequisites to run LN Studio.
Licenses
To use LN Studio, you need these licenses:
• A license for the Adapter for LN. Take care of the following:
• If you already have an Adapter for LN license for product ID 7013, you do not need a new
license.
• If you do not have a license yet, obtain a license for product ID 7056.
• An LN Development license, product ID 10146. This is required if you want to create or modify
tables, domains, UI scripts, functions, or libraries. This license is also required if you want to modify
and generate Business Interface implementations.
To obtain a license, add the corresponding product ID in the Infor Solution License Manager (SLM)
and request a license for it.
Installing LN Studio
This section describes how you can install LN Studio.
Note:
• For information on the prerequisites for the installation of LN Studio, see Prerequisites on page
25.
• Before you can install LN Studio, the system administrator must give you access to the zip file with
the LN Studio software.
To install LN Studio:
1 Create an installation folder.
Create a new folder on your machine.
The recommended installation directory is: C:\Infor\LN\LNStudio.
Note: On Windows 7 or later, do not install LN Studio in a Windows protected folder, such as C:
\Program Files or C:\Program Files (x86).
2 Open the InforLNStudio_<version number>.nnn-x86_64.zip file, which contains the LN
Studio software, and extract all contents of the file to the new installation folder.
nnn represents a build number, such as "0023".
Administrator
For each software project you develop software in, you must configure these dynamic connection
points:
• Development Address
• Runtime Address
Note: You cannot define these connection points in advance. When working in LN Studio, a prompt
is displayed whenever such a connection is required, but not yet configured. At that moment a
wizard to configure the required connection point is started.
4 Configure connection points for Business Interface development.
To use interface projects, configure these connection points:
• RuntimeRepositoryConnection
• TestServerConnection
See Defining connectivity settings on page 28.
Note: These connection points are not required if the interface project is using "related software
projects".
5 Define LN Studio preferences for Application development.
a Select Window > Preferences.
b In the left pane of the Preferences window, select Infor LN Studio Application. For details
about the preferences, see the "Application Preferences" section in this guide or the dialog's
online help.
6 Define LN Studio preferences for Business Interface development.
a Select Window > Preferences.
b In the left pane of the Preferences window, select Infor LN Studio Integration. For details
about the preferences, see the "Integration Preferences" section in this guide or the preference
page's online help.
3 Click OK.
4 Allow installation of BW and Dynamic Form Editor.
LN Studio requires Infor LN BW activation for the development and runtime addresses. LN Studio
also requires the Infor LN Dynamic Form Editor (DFE) to develop session forms.
If BW and DFE are not installed on your computer, or older versions are installed, an automatic
installation of these components is performed when you start LN Studio for the first time.
If User Account Control (UAC) is enabled, confirmation dialog boxes are displayed during the BW
and DFE installations: you are prompted to allow the BW and DFE setup programs to make changes
to your computer.
Click Yes in both dialog boxes.
The Configure Connection point wizard is part of the connectivity plug-in. For details, see the
wizard's online help and the online help of the Infor Connectivity plug-in.
Note:
• You can use the Preferences dialog box to set various other user preferences for the LN Studio
workbench. See "Application preferences", "Integration preferences", and "Connectivity preferences"
in the Infor LN Studio Administration Guide.
• To run or debug sessions after creating or modifying the Debug connection point, you must restart
LN Studio.
• In a multi-tenant environment you cannot debug with LN Studio. You can use the Debug Workbench,
see the Debug and Profile 4GL (ttadv1123m000) session.
Dynamic con-
nection point Description Configuration
Administrator Enables you to perform administrative tasks on the Configure this connection
LN server. point for each LN server,
The connection point is used, for example: on which you want to per-
form administrative tasks
• When an administrator defines a new application or development tasks.
from the Application Explorer.
• When a Project Manager links a project to the
corresponding application (through the Project
Properties dialog).
Development Is used to connect to the development repository Configure these connec-
Address on the LN server. tion points for each soft-
This connection point is used, for example, when a ware project, in which you
software engineer: develop software.
• checks out, or checks in a software component.
• edits a script or library.
• builds (compiles) a session.
Runtime Ad- Sends information to the LN server when you run
dress or debug a session from the LN Studio.
You are prompted to configure these connection points, the first time you open an activity linked to the
software project. See the following section.
2 Specify your preference settings. To open a preference page, select the corresponding item in the
tree structure in the left pane of the Preferences dialog box.
This table shows the preference pages that are relevant for the Application perspective:
Other preferences
The Preferences dialog box also contains preference pages for the Integration perspective in LN
Studio. See the documentation for the Integration perspective.
For information on the other preference pages, see "Preferences" in the "Reference" section in the
Workbench User Guide, or use the online help function (F1) in the pages.
The settings in the .ionapi file are used to define a "Cloud Environment".
6 The certificates in the chosen trust store are listed in the Certificates table, and the Add button
is enabled now. If you have a copy of the certificate in a file, you can click Add to add that certificate.
Usually, this is not the case, so you must use another way.
7 In the Check Trusted URL field, specify the HTTPS URL of the LN UI server you want to use. You
can go back to the Cloud Environments preference page, select the configured cloud environment,
click Edit, and copy the Gateway URL. The Gateway URL is the first part of the URL to the LN
UI server.
8 Click Check. Usually, a "Check failed" dialog, which suggests to import the certificate presented
by the server, is displayed. Click Yes. The Import Certificate dialog box is displayed.
9 In the Import Certificate dialog box, the Server Certificates drop-down list may contain more
than one certificate.
The HTTPS server presents a chain of certificates, starting with its own certificate. Next is the
certificate of the Certification Authority (CA) that issued the server certificate, followed by the issuer
of the CA certificate, and so on. The last certificate in the chain is usually a "root CA certificate",
issued by itself.
You must import the last certificate. This certificate is already selected in the drop-down list. Details
of the selected certificate are displayed in the dialog box.
10 In the Alias field, specify a short name for the certificate. This alias is stored in lower case in the
trust store. Click Finish. The certificate is now present in the Certificates table.
11 Click Check again. A "Check succeeded" dialog box is displayed.
12 Click OK. The Preferences dialog box is closed.
9 To test the connection, select the connection point and click Ping. A dialog box containing a login
page is displayed. During normal usage of LN Studio, this login page is displayed the first time a
connection to the cloud is established.
Follow the instructions on the page. These instructions are provided by the authorization server of
the cloud. If everything is okay, the connection test succeeds. If the test fails, errors are reported:
the configuration is incorrect, or you specified invalid credentials on the login page.
11 To test the connection, select the connection point and click Ping.
The software development process in LN Studio is activity based. Before a software component can
be modified, a software engineer must link the component to an activity. Each activity is part of a
software project and each software project belongs to an Application.
This diagram shows an application, software projects, and activities:
A software application is a consistent set of packages that functionally belong together. An application
is linked to a Base VRC, which determines the environment on the LN server in which the application's
software components are stored. Administrators can create applications through the Application
Explorer view.
See the Infor LN Studio Administration Guide.
For each high level software requirement (business requirement), a software project is created on the
Project Server. Multiple projects can be defined per application. A software project is split up into
activities. Project managers can create software projects and activities. They can also view the modified
LN software components per activity, through the Software Project Explorer. A separate activity is
created for each individual software requirement, such as a bug fix or a new feature within the project.
Each activity is assigned to a software engineer. See "Defining a software project" in the Project Server
documentation.
Software engineers can open their activities through the Activity Explorer view.
See Developing software components on page 54.
Note:
• Components in an activity are only accessible for the software engineer to which the activity is
assigned. However, other software engineers can access these components if they put this activity
in the activity context of their own activity.
See Activity context on page 49.
• Activities can be shared over multiple software engineers when their names are added as Assignee
in the Activity properties. In this case they also can modify the components.
Configuration Management
The configuration management in LN Studio is based on the Software Configuration Management
(SCM) module in Enterprise Server. SCM is based on RCS, a freeware third party tool available for
the UNIX and Windows platforms. SCM supports the Check out and Check in of various software
components. A more extensive CM solution will be offered in a future release. For details on the usage
of SCM, and information on how to set up an SCM environment on the LN server, see "To use the
Software Configuration Management system (SCM)" in the LN Web Help.
Note: Because of SCM limitations, the LN Studio configuration management is only available for main
component types such as forms, sessions, table definitions, reports, and functions. The 4GL component
types, such as labels, questions, and messages, are not supported.
Usage of SCM
The usage of SCM has an impact on the VRC structure on the LN server. It also impacts the way
configuration management actions, such as check in and check out, work.
The usage of SCM is optional. If you use SCM, you must at least activate SCM for the project VRC(s)
on the LN server. Additionally, you can enable SCM for your LN Studio application(s).
The following situations can be distinguished:
Scenario Description
SCM for project SCM is activated for the project VRC(s) on the LN server and for the applica-
VRCs and applica- tions in LN Studio. This is the preferred scenario if your LN server supports
tions SCM.
Each time you check in a component, LN Studio generates a new revision.
Other software engineers can use (not modify) your checked in components.
See Development with SCM for project VRCs and applications on page 41.
Scenario Description
No SCM SCM is disabled for the project VRC(s) on the LN server and applications in
LN Studio.
LN Studio does not generate any revisions.
Other software engineers can use (not modify) your checked in components
and your checked out components.
See Development without SCM on page 45.
Software components
When a personal activity in the LN Studio is open, you can link software components from the LN
dictionary to the project. You can also create new components via the LN Studio.
You can link or create these components:
• Additional File
• Domain
• Function
• Label
• Library
• Menu
• Message
• Question
• Report
• Session
• Table
These software components are the starting point of development for a software project.
The LN Studio shows a tree of software components on the LN server and a tree of components in
your current activity.
For details on the layout of the LN Studio, see the LN Studio workbench on page 20 section.
VRC numbering
The numbers in the customer extension of the activity and private VRCs are generated automatically:
• Activity VRCs: Numbering starts with 0001. The number is increased for each new activity VRC.
The maximum number is 4999.
• Private VRCs: Numbering starts with 9999. The number is decreased for each new private VRC.
The minimum number is 5000.
Example
LN Studio generates these VRCs:
• For the first activity: activity VRC B61_a3_0001 and private VRC B61_a3_9999.
• For the second activity: activity VRC B61_a3_0002 and private VRC B61_a3_9998.
• For the third activity: activity VRC B61_a3_0003 and private VRC B61_a3_9997.
Note: The numbers of an activity VRC and the corresponding private VRC do not always have to be
complementary. This is because multiple private VRCs can exist for the same activity.
When you end an activity, LN Studio performs a roll-up of all component revisions and revision texts.
The resulting components and texts are moved to the project VRC. The empty activity VRC and private
VRC are released, allowing these VRCs to be reused in the future.
CM actions
Check out
You must check out a component before it can be modified. LN Studio checks whether the component
is already present in your activity VRC (for example because of an earlier check out and check in
action).
• LN Studio does not support parallel development for applications. Therefore, if the component is
not present in your activity VRC, LN Studio locks the component in the Project VRC, so that other
software engineers cannot check out the component, and copies the component to your private
VRC where it can be modified. The component stays locked until you end your activity.
• If the component is already present in the Activity VRC, LN Studio copies the component from your
activity VRC to your Private VRC. The component in the project VRC stays locked.
To check out a software component in LN Studio:
1 Right-click the component in the Activity Explorer view.
2 Select Team > Checkout.
Note: If you try to change a component which is not checked out, you are prompted whether you want
to check out the component.
Check in
You can check in a component when you finish the changes to the component.
LN Studio moves the checked out component from your private VRC to your activity VRC. A historical
version (revision) is generated, for which you must enter a revision text.
Note:
• The checked in component stays in the activity VRC. The component is not copied to the project
VRC. The component in the project VRC stays locked and not accessible to all software engineers.
To unlock the component in the project VRC and to make it accessible for other software engineers,
end or cancel the activity, or delete the component from the activity.
• Other software engineers can use (not modify) your checked in components. This is possible if
your activity is inserted into the activity context of their own activity.
See Activity context on page 49.
Undo checkout
You can undo the check out of a component. LN Studio removes the component from your private
VRC and cancels all changes you made since the last check in of the component. The component in
the activity VRC is not removed.
Note: The component in the project VRC stays locked and is not accessible for other software engineers.
To unlock the component in the project VRC and to make it accessible for other software engineers,
end or cancel the activity, or delete the component from the activity.
To undo the check out of a software component in LN Studio:
1 Right-click the component in the Activity Explorer view.
2 Select Team > Uncheckout.
End Activity
When you finish all changes in an activity, you can end the activity so the changed components are
released to the project VRC.
When you end an activity, LN Studio performs these actions:
• Creates a roll-up of all component revisions and revision texts in the activity VRC.
• Moves the resulting software components and texts from the activity VRC to the project VRC.
Therefore, components become available to other software engineers.
Cancel Activity
To undo all changes in an activity, cancel the activity.
LN Studio performs these actions:
• Removes all components from the activity.
• Unlocks the components in the project VRC.
• Releases the private VRC and the activity VRC, so they can be reused in the future.
To cancel an activity in LN Studio:
1 Right-click the activity in the Activity Explorer view.
2 Select Team > Cancel Activity.
VRC numbering
The numbers in the customer extension of the activity VRCs are generated automatically. The numbering
starts with 0001 and increases for each new activity VRC. The maximum number is 4999.
Example
LN Studio generates these VRCs:
• First activity: activity VRC B61_a3_0001.
• Second activity: activity VRC B61_a3_0002.
• Third activity: activity VRC B61_a3_0003.
Note: When you end an activity, the corresponding components are moved to the project VRC. The
empty activity VRC is released, so it can be reused.
CM actions
Check out
You must check out a component before it can be modified. LN Studio checks whether the component
is already present in your activity VRC (for example because of an earlier check out and check in
action).
• If the component is not yet present in your activity VRC, LN Studio locks the component in the
Project VRC, so that other software engineers cannot check out the component, and copies the
component to your activity VRC where it can be modified. The component in the project VRC stays
locked until you end your activity.
• If the component is already present in the activity VRC, the component gets the "checked out"
status, so that it can be modified. Note: The component in the project VRC stays locked until you
end your activity.
To check out a software component in LN Studio:
1 Right-click the component in the Activity Explorer view.
2 Select Team > Checkout.
Check in
You can check in a component when you finish the changes to the component.
LN Studio changes the status of the component in the activity VRC to "checked in". To modify the
component, perform a new check out.
Note: The checked in component stays in the activity VRC. The component is not copied to the project
VRC. The component in the project VRC stays locked. Therefore, it is not accessible for all software
engineers. To unlock the component in the project VRC and to make it accessible for other software
engineers, end your activity, or cancel the activity or the component.
To check in a software component in LN Studio:
1 Right-click the component in the Activity Explorer view.
2 Select Team > Checkin.
Note: If Verify Software Components (VSC) is active and blocking VSC warnings are present, Check
in is not possible.
Undo checkout
You can undo the check out of a component. LN Studio cancels all changes made since the last check
in of the component. The component stays in the activity VRC.
Note: The component in the project VRC stays locked. Therefore it is not accessible for other software
engineers. To unlock the component in the project VRC and make it accessible for all software engineers,
end your activity.
To undo the check out of a software component in LN Studio:
1 Right-click the component in the Activity Explorer view.
2 Select Team > Uncheckout.
End activity
When you finish all changes in an activity, you can end the activity so the changed components are
released to the project VRC.
When you end an activity, LN Studio performs the following actions:
• Moves all software components in the activity VRC to the project VRC. Therefore, components
become available to other software engineers.
• Unlocks the components in the project VRC.
• Releases the activity VRC, so it can be reused.
• Disconnects the corresponding run configurations from the activity. You can link these configurations
to another activity. See Linking run configurations to an activity on page 52.
Note: You can only end an activity if all components in that activity are checked in.
To end an activity in LN Studio:
1 Right-click the activity in the Activity Explorer view.
2 Select Team > End activity.
Note: If not all components are checked in and the Partial End Allowed check box in the software
project properties is selected, you can partially end the activity. To do this, in the Activity Overview,
End Activity dialog box, select a subset of the components and click OK. See the dialog box's online
help.
Cancel Activity
To undo all changes in an activity, cancel the activity.
LN Studio performs these actions:
• Removes all components from the activity.
• Unlocks the components in the project VRC.
• Releases the activity VRC, so it can be reused.
To cancel an activity in LN Studio:
1 Right-click the activity in the Activity Explorer view.
2 Select Team > Cancel Activity.
Activity context
The components in an Activity VRC are only accessible for the software engineer to which the activity
is assigned.
Sometimes, it is necessary to use components developed by another software engineer.
For example:
• In your UI script, you want to use a new DLL developed by another software engineer.
• You want to open components from another software engineer through the Open Declaration
command in the Script Editor.
To access software components developed by another software engineer, put the activity that contains
the desired components in the activity context of your own activity.
To add an activity to the activity context of your own activity:
1 Right-click your activity in the Activity Explorer, and select Properties.
2 In the left pane in the properties dialog box, select LN Studio Activity Information.
3 Click the Context tab.
4 Click Add and select the project to which the desired activity belongs.
5 Click Add Activity and select the desired activity from the list.
6 Click OK.
Note: When you add multiple activities, use the Up and Down buttons to change the order in which
the activity VRCs are searched at runtime. The activity at the top of the list is searched immediately
after your own activity. Subsequently, the second activity in the list is searched, and so on.
To delete a project or an activity from the activity context, right-click the project or activity and select
Delete.
The context of your activity can change. The context changes, for example, in these situations:
• You add another activity to the context of your activity.
• A new component is added in an activity that is in the context of your activity.
• An existing component is modified and compiled in an activity that is in the context of your activity.
If your activity context changes, complete the following steps to incorporate the changes in your activity:
1 Select Project > Clean. The Clean dialog box starts.
2 Use this dialog box to invoke a full build for your activity. All previous build results are discarded.
Note: Ensure the Build Automatically option in the Project menu is selected.
3 Recover your activity.
See Recovering an activity on page 51.
Cleaning an activity
An activity can contain a lot of components that were retrieved from the server but never changed,
such as when you have frequently used the Open Declaration command.
Clean an activity to remove these unchanged components.
To clean an activity:
1 In the Activity Explorer, select the activity you want to clean.
2 Click Clean activity in the Activity Explorer 's toolbar. The Clean activity dialog starts.
3 Optionally, select Clean all activities in the dialog to clean all activities displayed in the Activity
Explorer.
4 Click OK to start the cleaning process. The process removes all components that are not checked
out, created, or modified from the selected activities. All other components are ignored.
For details, see the online help of the Clean activity dialog box.
Recovering an activity
You must recover an activity if, for some reason, the corresponding local workspace is not in sync with
the LN server.
The recovery process restores the components in the activity from the Configuration Management
System on the server to your local workspace. Optionally, unchanged components are removed from
the workspace.
There are various situations in which you must recover an activity, such as:
• After a PC crash. On your new PC, you can start LN Studio, open your activity, and restore your
local workspace from the server.
• After new LN Studio software is installed on your PC and on the server. The structure of the old
files in your workspace is possibly not compatible with the new software. Recover your activity to
retrieve new files from the server.
• After an intermediate code freeze. Your local workspace is not valid anymore.
To solve this, you must recover your activity.
Note: You must select the Recover existing activity files check box in the Recover activity
dialog.
• After a final code freeze. Your activities have moved to a different software project. The directory
names in your local workspace are not valid anymore.
To solve this:
1 Delete your activity from the local workspace. In the Activity Explorer, right-click the activity
and, on the shortcut menu, select Delete.
2 Open the activity again. In the Activity Explorer, click Open an Infor LN Studio Activity.
The Open an Activity - Select Project dialog appears. Select the new software project from
the list and click Next. In the second page of the dialog, select your activity from the list and
click Finish.
3 Recover your activity.
Note: You must select the Recover existing activity files check box in the Recover activity
dialog box.
• After other developers checked in components you use in your components. Recover your activity
to get the latest versions of these components.
For example, you call another developer's DLL in one of your UI scripts. Recover your activity after
the other developer checked in a new version of the DLL.
Note: To use components of other developers, put the corresponding activities in the context of
your activity.
See Activity context on page 49.
• If the activity is shared with other developers. Recover the activity to display the components
created by the other developers.
• You have unchanged components in your activity. After a while, the server may contain new
versions of these components, changed by other developers. Recover your activity to get the latest
versions of these components.
Note: Recover you activity regularly to make sure the components in your workspace are up-to-date.
To recover an activity:
1 In the Activity Explorer, select the activity you want to recover.
2 Click Recover activity in the Activity Explorer 's toolbar. The Recover activity dialog starts.
3 Specify the settings for the recovery process. See Recover activity on page 83.
4 Click OK. LN Studio shows the recovery actions that will be executed. See Recover activity on
page 84.
5 Click OK to start the recovery process. The recovery results are displayed.
6 Click OK to close the dialog.
Reassigning an activity
To reassign an activity to another user:
1 In the Activity Explorer, right-click the activity and, on the shortcut menu, select Team. Then,
click Reassign Activity. The Reassign Activity dialog starts.
2 In the Reassign to field, select the user, to which you want to assign your activity, from the list.
3 Click OK to reassign the activity and close the dialog.
Note: After you have assigned an activity to another user:
• The other user has full permissions for the activity.
• You have only limited permissions for the activity. You can finish the components you were working
at, but you cannot check out other components, cancel the activity, or end the activity.
• You can reassign the activity to your self again.
If the other user has reassigned the activity to you, your permissions are still limited. To get full
permissions, you must refresh your activity properties. To do this:
1 In the Activity Explorer, right-click the activity and, on the shortcut menu, select Properties.
A properties dialog starts.
2 In the left pane, click Activity Information. The Activity Information dialog starts.
3 Click Refresh to update the permissions.
4 Click OK to close the dialog.
Use this procedure, for example, after you end an activity. When an activity is ended, the corresponding
run configurations are no longer linked to an activity. You can link these activities to another activity.
To link run configurations to an activity:
1 In the Activity Explorer, right-click the desired activity and select Link Run Configurations.
The Link Run Configurations dialog is displayed.
2 Select the desired run configuration(s) and click Link.
Note: You can also add a component to an activity, and open it in the corresponding editor, while
editing another component. For example, you can do one of the following:
• Use the Open Declaration command in the Script Editor to open the component you selected
in the source code. See Open Declaration on page 285.
• Click a hyperlink in a multipage editor to open the corresponding component. For example,
click the Label Code hyperlink in the Session Editor to open the label that contains the session
description.
3 Check out the component
The check out process locks the software component for other developers. During the check out
phase, the component can be updated and tested.
To check out a component:
a Right-click the component in the Activity Explorer.
b Select Team > Checkout.
Alternatively, in the Application perspective's toolbar, click Check Out a Component (Alt+C,
Alt+O).
4 Edit the component
Double-click the component in the Activity Explorer to start the corresponding editor.
For example:
• Double-click a session to edit the session in the Session Editor.
• Double-click a table to edit the table in the Table Editor.
For details on the LN Studio editors, see Multipage Editors on page 144 and Script Editor on page
264.
Perform the required changes and, when finished, save the changes and close the editor.
Note: If you try to change a component, which is not yet checked out, you are prompted to check
out the component.
5 Build the component
By default, the component is built (compiled) automatically every time it is saved. Error messages
and warnings generated by the compilation process, if any, are displayed in the Problems view.
To disable/enable the automatic compilation, turn off/turn on the Build Automatically command
in the Project menu.
If automatic compilation is disabled, you must start the compilation process in the following way:
a Select the component in the Activity Explorer.
b Select Project > Build All.
6 Solve error messages
Solve all errors that are detected by the compilation process.
Note: Double-click an error message in the Problems view, to open the component involved. If
you double-click a source code error, the source is opened at the corresponding line.
See Identifying problems in your code on page 59.
7 Run/debug the component
To test the changes to a component, you can launch a session, in which the component is used,
from the workbench. For example:
• To test the changes to a report, launch the session to which the report belongs.
• To test the changes to a table, start a session that operates on the table. For example, to test
changes in the Employees - General (tccom001) table, launch the Employees - General
(tccom0101m000) session.
You can launch sessions in either run or debug mode:
• In run mode, the session executes, but you cannot suspend or examine the execution.
See Running LN sessions on page 61.
• In debug mode, you can suspend and resume the execution, inspect variables, and evaluate
expressions.
See Debugging LN sessions on page 63.
Note: You can only launch sessions that belong to the packages displayed in the Component
Explorer
8 Check in the component
The check in process releases the checked out software component and also stores a historical
version.
To check in a component:
a Right-click the component in the Activity Explorer.
b Select Team > Checkin.
Alternatively, in the Application perspective's toolbar, click Check In a Component (Alt+C,
Alt+I).
9 End Activity
To end an activity:
a Right-click the activity in the Activity Explorer.
b On the shortcut menu, select Team, and subsequently click End Activity. The Activity Overview,
End Activity on page 81 dialog starts.
c To end the entire activity, select all components and click OK. LN Studio moves the components
from the Activity VRC to the Project VRC, so that the components become available to other
software engineers. The selected components are compiled automatically. The activity
disappears from the Activity Explorer.
Note:
• The automatic compilation fails, if a component in your activity calls an uncompiled component
in another activity. The activity is closed anyway. When the problem that caused the compilation
error is solved, you can recompile the closed activity in the Software Project Explorer. See
the following example:
• Activity B is part of the context of activity A. A UI script in activity A calls a DLL that belongs
to activity B. The DLL is not compiled yet.
• Activity A is ended by its owner. The compilation of the UI script fails, because the DLL in
activity B is not compiled. Activity A is closed anyway.
• Activity B is ended by its owner. The DLL is compiled automatically and the activity is
closed.
• To recompile the closed activity A, the owner of activity A goes to the Software Project
Explorer and runs the Compile closed activity command.
• If the Partial End Allowed check box in the software project properties is selected, you can
partially end the activity. To do this, in the Activity Overview, End Activity dialog box, select
a subset of the components and click OK. See the dialog box's online help.
• If you run and debug sessions in Web UI, the corresponding form definitions are stored in the
form cache on the Web UI server. To recover disk space on the Web UI server, it is
recommended to remove these old forms after the activity is closed. The Web UI administrator
can remove these forms via the Remove Obsolete Forms page in the Web UI Administration
Console. For details, see the Infor Enterprise Server Web UI - Installation and Configuration
Guide.
• You can only end an activity, if the previous activity is delivered. Otherwise the End Activity
action is blocked.
10 Deliver the software components
The components in the activity are now ready for delivery.
If the PMC integration is enabled, you are prompted to deliver the activity and create a PMC solution.
Complete one of these steps:
• To generate and deliver a solution in one go, click Yes in the question window.
• To manually create and deliver a solution, click No.
If the PMC integration is not enabled, manually create and release a solution through the PMC
sessions on the LN server.
For details on the delivery process, see Delivering software components on page 335.
Handling warnings
To handle warnings:
1 View the list of warnings and the warning details
View the generated warnings in the Verify Components view. To view detailed information for a
warning, right-click the warning, and select View Details. The Verify Warning Details dialog starts.
Each warning has various attributes, such as:
• verification code.
• Warning ID and message text.
• Component name
• Component type.
• Component subtype
• Location where the error occurs in the component. For example, a line number in a script.
• Priority: high, normal, suspicious, or low.
Note: You can click Help in the Verify Warning Details dialog to view detailed information and
examples, which will help you to solve the warning.
2 Display the "blocking" warnings
Depending on the verification filter settings, the component verification generates the following
types of warnings:
• "Blocking" warnings. These warnings block the check in of software components. You must
either solve or accept these warnings immediately.
• Other warnings that you do not have to handle immediately.
By default, the Verify Components view displays all generated warnings. You can apply a filter,
so that the view displays "blocking" warnings only.
To display "blocking" warnings only:
a Click Verify Warning Filter in the view's toolbar. The Verify Components View Filter dialog
appears.
b Select the Enabled check box and the Only blocking check box. Clear all remaining check
boxes.
c Click OK to apply the filter.
3 Accept or solve the warnings
For each "blocking" warning, you must decide whether you want to accept it or solve it.
For example, VSC has generated the following warning: "Possible missing break in case statement".
• If this break is not missing, but left out on purpose, you can accept the warning.
To accept a warning:
a Right-click the warning in the Verify Components view, and on the shortcut menu click
View Details. The Verify Warning Details dialog starts.
b Select the Accept Warning check box and enter the reason for acceptance in the Accept
Text field.
c Click OK.
Note: As a result of the verification filter settings that are specified in the Verification Filter
Defaults (tlvsc2110m000) session:
• VSC can block the acceptance of a warning. You cannot accept such a warning, but you
must solve it.
• Some warnings can block the check in procedure for the component. You must solve these
warnings, before you can check in the components.
• If this break was left out accidentally, you must solve the warning.
To solve a warning:
a Right-click the warning in the Verify Components view, and on the shortcut menu click
View Details. The Verify Warning Details dialog starts.
b Click Help to view detailed information and examples that can help you to solve the warning.
Usually this information is displayed:
• A description, a motivation and a possible solution for the warning.
• A wrong example.
• A correct example.
c Close the Verify Warning Details dialog and return to the Verify Components view.
d Double-click the warning. The appropriate editor for the software component starts
automatically at the location where the error occurs. Edit the software component and fix
the problem.
For example: VSC has generated the following warning "Possible missing break in case
statement". When you double-click the warning, the script editor starts automatically at
the relevant line number in the script or library, where you can add the missing statement.
e Verify the component again. If no further errors are found, the warning automatically
disappears from the warnings list.
Sample exercise
To get familiar with the problem indicators, try the following simple exercise:
Note: Automatic compilation only works if the Build Automatically option in the Project menu is
turned on.
Running LN sessions
Note: To start sessions through Web UI you must start Web UI first.
Debugging LN sessions
Manually create a run configuration and then run the session in debug mode
To debug a session for the first time:
1 Set breakpoints
Edit the involved script or library, and set breakpoints before you start the debug process. For
example, set breakpoints in the session's UI script, or in a library called by the session.
You can set these types of breakpoints:
• Line breakpoints
• Method breakpoints
• Watchpoints
For details, see Using breakpoints on page 69.
Note:
• Before you can set breakpoints in a UI script, you must add the corresponding session to your
activity.
• Before you can set breakpoints in a library, you must add the library to your activity.
2 Add a new configuration
a On the Run menu, select Debug Configurations, or click the Debug Configurations command
on the Debug button pull-down menu. The Debug - Create, manage, and run configurations
dialog is displayed.
b In the left pane, right-click Infor LN Session and select New. A new configuration is added in
the left pane.
c In the Sessions tab, select an activity from the list.
d Select the session that calls the script or library you want to debug. The name of the
configuration is automatically filled with the name of the selected session.
To select a session, perform one of these actions:
• Select a session linked to your activity from the list.
• Click Browse to select a session that is not linked to your activity. The Browse session
dialog starts. In this dialog you can select a session on the LN server.
• Specify a session code.
Note: You can only select sessions that belong to the packages displayed in the Component
Explorer
e Specify the launch mode for the session.
See Configurations on page 127.
f Select the company in which you want to start the session.
g Optionally: Specify additional execution parameters, such as profiling parameters and
environment variables, in the other tabs. See the dialog help.
h Click Apply to save the settings.
Note: Debug configurations can also be used to start sessions in run mode.
See Running LN sessions on page 61.
3 Debug the session
Click Debug in the Debug dialog. The session is started in debug mode.
See Debugging LN sessions on page 63.
Automatically generate a run configuration and then run the session in debug mode
Complete these steps:
1 Set breakpoints.
See "Manually create a run configuration and then run the session in debug mode".
2 In the Activity Explorer, right-click the session and select Debug As > Infor LN Session. A run
configuration is generated automatically. The session starts in debug mode.
See "Manually create a run configuration and then run the session in debug mode".
You can modify a generated run configuration in various ways. For example:
• In the Activity Explorer, right-click the session and select Debug As. Then select Debug
Configurations.
• On the Run menu, select Debug Configurations.
• Click the Debug Configurations command on the Debug button pull-down menu.
The Run - Create, manage, and run configurations dialog is displayed.
For more information, see Configurations on page 127.
Note:
• The Variables view displays all variables that are in scope. If a session contains a lot of variables,
the performance can be affected. To boost the performance, display local variables only, or close
the Variables view and use the Expressions view.
• Try to keep the list of expressions in the Expressions view limited. This is, because all expressions
are evaluated each time a session suspends, which can affect the performance adversely.
• The session in the previous example is started through Web UI. To start sessions through Web UI
you must start Web UI first.
Debugging through LN UI
LN Studio can attach to a running LN UI and can debug sessions started in LN UI. Unlike when you
debug sessions through BW or Web UI, the sessions are started from LN UI and not from LN Studio.
Note:
• To debug sessions, a debug Connection Point is required.
See Defining connectivity settings on page 28.
• In a multi-tenant environment you cannot debug with LN Studio. You can use the Debug Workbench,
see the Debug and Profile 4GL (ttadv1123m000) session.
To debug a session:
1 Connect to LN Studio from LN UI.
Start LN UI and select Options > Debug and Profile 4GL. The Debug and Profile 4GL
(ttadv1123m000) session starts. Select your activity and select the Debug Mode check box. Click
OK to save the settings.
2 Set breakpoints.
See Using breakpoints on page 69.
3 Debug a session.
Start a session in LN UI. The session is started in debug mode.
See Debugging LN sessions on page 63.
Step 1 is only required at the beginning, before you start the first session. Subsequent sessions
automatically start in debug mode using the established connection.
Suspending sessions
When a session is executed in debug mode, you can suspend a running process, so that you can
inspect it more closely.
To suspend an executing session:
1 Select the session in the Debug view.
2 Click Suspend in the Debug view toolbar or use the shortcut menu. The session suspends its
execution. The current call stack for the session is displayed, and the current line of execution is
highlighted in the editor in the Debug perspective.
When a session suspends, the top stack frame of the session is automatically selected. The Variables
view shows the stack frame's variables and their values. You can further examine complex variables
by expanding them to show the values of their members.
When a session is suspended and the cursor is hovered over a variable in the editor, the value of that
variable is displayed.
Com-
mand Usage
Step Into This command steps into the current statement:
1 Select a thread or a stack frame in the Debug view. The current line of execution
in the selected frame is highlighted in the editor.
2 Run the Step Into command, or press F5, to invoke the next instruction to be exe-
cuted. The execution suspends at the next executable line in the method that is
invoked.
Note: Ensure that the Reuse editor when displaying source code option in the
Run/Debug preferences dialog box is disabled. If this option is enabled, and you use
the Step Into command while the script is not in the workspace, an error page is dis-
played in some situations.
This command is equivalent to the s action in the classic 4GL Debugger.
Com-
mand Usage
Step Over This command steps over the current statement:
1 Select a thread or a stack frame in the Debug view. The current line of execution
in the selected frame is highlighted in the editor.
2 Run the Step Over command, or press F6, to execute the next instruction. The
execution suspends on the next executable line.
This command is equivalent to the S action in the classic 4GL Debugger.
Step Re- Run the Step Return command, or press F7, to continue the execution until the end
turn of the current function.
This command is equivalent to the return action in the classic 4GL Debugger.
Run to Run the Run to Line command, or press CTRL+R, to move the execution pointer,
Line without executing code, to the line that you selected in the Editor area.
This command is equivalent to the Go to Line (g) action in the classic 4GL Debugger.
Note:
• You can start the step commands from the toolbar and the shortcut menu in the Debug view, and
from the Run menu in the Eclipse Workbench.
• You can start the Run to Line command only from the Run menu in the Eclipse Workbench.
• If a breakpoint is encountered while performing a step operation, the execution will suspend at the
breakpoint and the step operation is ended.
Inspecting values
When you select a stack frame, the visible variables in that stack frame are displayed in the Variables
view.
The Variables view shows the value of primitive types. To examine complex variables, such as arrays
or strings, expand them to show their members.
XML nodes are displayed in an XML tree, which you can collapse and expand.
Evaluating expressions
LN Studio enables you to create watch expressions.
When the Virtual Machine suspends a session (due to hitting a breakpoint or stepping through code),
you can evaluate these expressions in the context of a stack frame.
Evaluating expressions
To evaluate expressions:
1 Switch to the Debug perspective and open the Expressions view.
2 Start a session in debug mode.
3 In the Debug view, select the stack frame in which you want to perform an evaluation. The
expressions in the Expressions view are evaluated automatically.
• For the detail pane of the Expressions view, the evaluation context is a selected variable.
• If you do not select a variable, the selected stack frame is the context.
Note: When you edit a watch expression in the Expressions view, you can use the Reevaluate Watch
Expression command in the view's shortcut menu to evaluate the watch expression again.
Using breakpoints
A breakpoint is a point in a program that, when reached, triggers some special behavior useful to the
process of debugging.
A breakpoint causes the execution of a session to suspend at the location where the breakpoint is set.
This table shows the breakpoint types you can define in LN Studio:
Line break- You can set a line breakpoint on an executable line in the source code. During
points the debugging, the session execution suspends before that line of code is executed.
The debugger selects the session that has suspended and displays the stack
frames on that session's stack. The line where the breakpoint was set is highlighted
in the editor in the Debug perspective.
Method break- You can set method breakpoints on the functions displayed in the Outline view.
points The session execution suspends when the execution reaches a function for which
a breakpoint was set.
Watchpoints You can use watchpoints to monitor variables. There are two types of watchpoints:
• Modification watchpoint. This is the default type. For this type of watchpoint,
session execution suspends each time the variable being monitored is modi-
fied.
• Condition watchpoint. For this type of watchpoint, session execution suspends
when the variable gets a certain value.
You can change the watchpoint type through a Properties dialog in the Break-
points view.
You cannot set a watchpoint on array elements.
You can set line breakpoints and watchpoints in the LN Studio script editor. You can set method
breakpoints in the Outline view.
Breakpoints are displayed in the vertical script editor ruler and in the Breakpoints view.
You can enable and disable breakpoints via their context menus in the Breakpoints view.:
• When a breakpoint is enabled, it causes a session to suspend whenever the breakpoint is reached.
Enabled breakpoints are indicated with a blue circle. Resolved breakpoints are shown with a check
mark overlay.
• When a breakpoint is disabled, it does not cause sessions to suspend. Disabled breakpoints are
indicated with a white circle.
Note: You cannot define breakpoints in report scripts. For a report, breakpoints must be defined in the
report's debug script. To open the debug script, in the Overview tab in the Report Editor, click View
Debug Script. The debug script is displayed in a separate tab in the editor area.
A new breakpoint marker appears on the marker bar. Also, the new breakpoint appears in the
Breakpoints view.
Adding watchpoints
You can define watchpoints for local and global variables via the LN Studio script editor.
2 Specify the name of the variable (or table field) you want to monitor, and indicate when the session
must suspend. See Watchpoint properties on page 111.
Note: When you define a watchpoint in the script editor, you must be sure that the selected text really
is a variable or table field: the editor does not check this. In the editor you can select any piece of text,
and subsequently define a watchpoint for it, which is completely useless.
When you define a condition or modification watchpoint, a watch expression is added automatically.
For details on watch expressions, see Evaluating expressions on page 68.
Removing breakpoints
You can easily remove breakpoints when you no longer need them.
To remove a line breakpoint or a watchpoint:
1 In the script editor, go to the line where the breakpoint is defined.
2 Double-click on the breakpoint icon, or right-click the breakpoint icon and, on the shortcut menu,
select Toggle Breakpoint.
To remove a method breakpoint, complete one of these steps:
• In the Outline view, right-click the involved function and, on the shortcut menu, select Toggle
Method Breakpoint.
• In the script editor, go to the line where the breakpoint is defined and double-click on the breakpoint
icon, or right-click the breakpoint icon and, on the shortcut menu, select Toggle Breakpoint.
You can also remove breakpoints in the Breakpoints view:
• Right-click the breakpoint(s) to be removed and, on the shortcut menu, select Remove.
• To remove all breakpoints in one go, on the shortcut menu of the Breakpoints view, click Remove
All.
If you find yourself frequently adding and removing a breakpoint in the same place, consider disabling
the breakpoint when you do not need it and enabling it when needed again. See Breakpoints view on
page 305.
• In the script editor, right-click the breakpoint in the marker bar and, on the shortcut menu, select
Enable Breakpoint.
The breakpoint image changes back to a blue circle.
Note: To disable all breakpoints in one go, use the Skip All Breakpoints command in the Breakpoints
view.
TM
Infor Ming.le - LN integration
Infor Ming.le contains various context applications that show data that is related to LN objects. See
these examples:
• An LN Business Partner has an address; if a user opens a Business Partner record, the
corresponding location is displayed in the Map context application.
• A Sales order can have multiple documents attached to it. The Business Partner, to which the
Sales Order applies, can also have multiple documents attached to it. Both, the documents attached
to the Sales Order and to the Business Partner, are displayed in the Related Information context
application.
Context messages
The integration between Infor LN and the Infor Ming.le context applications is based on context
messages. In these context messages, the characteristics of the LN objects, which have focus in the
UI, are sent to the context applications. Context messages are generated from InContext Models.
InContext model
An InContext model describes which fields are required for the context messages and how these fields
can be retrieved.
Two types of InContext models exist:
• InContext Reference Model
• InContext Implementation Model
Related topics
• Infor Enterprise Server InContext Modeling Development Guide
• The online help of the Table InContext Model Editor
• The online help of the Session Model Editor
• The online help of the Dependent InContext Models view
General limitations
Connections
Take care of the following when you use Worktop and LN Studio simultaneously.
When you close the Worktop, this message is displayed:
For example, you add the following code to the declaration section of a UI script: long case.
case is colored as a keyword, since the editor does not recognize it as a variable.
Debugging
There are also some editor limitations that are related to debugging. See "Debugger limitations" later
in this section.
Build limitations
“Use checked out version of script with development vrc …” message
Building files checked out by yourself, or by someone else in the same SCM group, results in the
following error message: “use checked out version of script with development vrc …”.
Debugger limitations
This section describes the debugger limitations.
Debug View
“An error has occurred. See error log for more details” error message
Sometimes, while debugging, the message “An error has occurred. See error log for more details.”
may be given by Eclipse. This is not a fatal error, so you can click OK and resume debugging.
Variables view
Filters not correctly initialized
The filters in the Variables view ( Show Global Variables and Show Local Variables) are not correctly
initialized. To correct the settings, click the stack frame twice or select a variable in the Variables view.
Expressions view
Limited to variables
Currently, it is only possible to evaluate expressions that are actually variables. It is not possible to
evaluate other expressions, such as I=0.
Script Editor
Multiple instruction pointers
Eclipse does not always remove an existing instruction pointer. This may lead to multiple instruction
pointers being displayed in a script editor. To solve this, close the editor. The editor will automatically
be re-opened at the next step/suspend action.
Run/Debug preferences
The Reuse editor when displaying source code option in the Run/Debug preferences dialog is not
supported. You must disable this option when you use the Step Into command in the Debug view. If
this option is enabled, and you use the Step Into command while the script is not in the workspace,
an error page is displayed in some situations.
Watchpoint
You can not set a watchpoint on array elements.
Web UI limitations
Labels
If you run a session in Web UI, any new or changed labels are only displayed if the session is compiled
and linked to your activity.
Activity
Activity Information
Use this dialog to view the properties of an LN Studio Activity, and to add other activities to the context
of the selected activity.
Settings
This dialog shows detailed information on:
• The selected activity.
• The Software Project to which the activity belongs.
• The Application to which the software project is linked.
See the online help of these dialogs:
• Create a new Activity on page 338
• Create a Software Project on page 337
• New Application on page 129
Context
You can use this tab to put another Activity in the context of the current activity. This is useful if you
want to use components developed in another activity by another Software Engineer or by yourself.
For example: You want to use a DLL, that is currently modified by another software engineer, in a UI
script.
See Activity context on page 49.
To add an activity:
1 Click Add and select the project to which the desired activity belongs.
2 Click Add Activity and select the desired activity from the list.
3 Click OK.
The Can Open check box is read-only. It indicates whether you are assigned to the activity.
Type
The component type, such as session or label.
Name
The name of the component.
User(s)
The user who modified the component.
Blocked by
The activity, which blocks the end activity process, and its owner.
The end activity process is blocked if the previous activity is not yet released and delivered.
You can only end an activity, if the previous activity is released and delivered. Otherwise the End
Activity action is blocked. The name of the previous activity, which blocks the End Activity process,
and its owner are displayed.
Clean activity
Use this dialog box to remove unchanged components from one or all activities.
The cleaning process performs these actions:
• Removes all components that are not checked out, created, or modified from the selected activities.
In the Activity Explorer, these components have a decorator in the bottom right corner of the
software component image.
• Ignores all new, modified, and checked out components.
In the Activity Explorer, these components have a or decorator in the bottom right corner
of the software component image.
Open an Activity
Use this wizard to open a new activity.
To open an activity:
1 In the Select Project page, select your software project from the list and click Next. The Select
Activity page is displayed.
2 Select your activity from the list and click Finish.
Select Project
Use this page to select the project to which the activity belongs.
All fields, except Project name, are read-only.
Project name
The project to which the activity belongs.
You can select the project name from a drop-down list.
Select Activity
Use this page to select the activity you want to open.
All fields, except Activity name, are read-only.
Activity name
The activity you want to open.
You can select the activity name from a drop-down list.
Reassign Activity
Use this dialog to assign an activity to another user.
Note: After you have assigned an activity to another user:
• The other user has full permissions for the activity.
• You have only limited permissions for the activity.
• You can reassign the activity to yourself again.
See Reassigning an activity on page 52.
You can start this dialog from the shortcut menu in the Activity Explorer view.
Reassign to
Select the user, to which you want to assign your activity, from the list.
Recover activity
Use this dialog to recover an activity. You can start this dialog from the Activity Explorer view.
The recovery process restores files that belong to the selected activity from the Configuration
Management System on the server, and stores them in your local workspace. This is very useful, for
example, after a PC crash: On your new PC, you can start LN Studio, open your activity, and restore
your local workspace from the server.
Click OK to confirm your selections. The Recover activity dialog starts. Here, you can view the recovery
actions that aree taken and decide whether you want to proceed with the recovery process.
See Recover activity on page 84.
Modified components in the current activity
Recover existing components
If this check box is selected, LN Studio restores all your new, modified, and checked out components
from the server and stores the corresponding files in your local workspace.
In the Activity Explorer, these components have a or decorator in the bottom right corner of the
software component image.
Note: Selecting this check box is mandatory if you recover your activity after a code freeze.
Repair LN Studio corrects the administrative information about these components in your local
workspace, when necessary.
If the components in your local workspace are corrupt, new components are retrieved
from the server.
Recov- LN Studio restores these components from the server and stores the corresponding files
er in your local workspace.
For example: you open a shared activity. The components developed by other users are
not displayed automatically. Use this option to display these components.
Delete LN Studio removes these components from your local workspace, so they are not displayed
in the Activity Explorer anymore.
Ignore LN Studio ignores these components. The components are not removed from your activ-
ity and local workspace.
Recov- LN Studio restores these components from the server and stores the corresponding files
er in your local workspace.
Delete LN Studio removes these components from your activity and local workspace.
Note: The Clean activity command in the Activity Explorer view does the same.
Recover activity
This dialog starts automatically when you recover an activity. It shows the actions that are executed
when you start the recovery.
This table shows an example:
Click OK to perform the actions displayed. Click Cancel if you do not want to perform these actions.
After the recovery, the results are displayed. This table shows an example:
Type
The component type, such as label or session.
Name
The name of the software component.
Action
The action that will be executed during the recovery.
Reason
The reason for the recovery action.
This field is displayed before you start the recovery.
Result
The result of the recovery action.
This field is displayed after the recovery.
Include sources
If this check box is selected, sources, such as UI scripts, are included in the patch.
Destination
Development server
If this option is selected, the patch is created on the LN development server.
Client
If this option is selected, the patch is created on your client computer.
If this option is selected, the patch is created on another remote system. Click New to specify a remote
system.
Folder
The folder, on the destination system, to store the patch.
Filename
The name of the patch file.
Browse component
Use this dialog to find and select a component.
You can start this dialog from various wizards and editors, such as:
• The Create a New Infor LN Software Component wizard: You can use the dialog, for example,
to select a main table for a new session.
• The Table Editor: You can use the dialog, for example, to select a reference message for a table.
• The Session Editor: You can use the dialog, for example, to select a report for a print session.
To select a component:
1 Find the component: Browse the list of components or, in the Name field, type the first character(s)
of the component name and click .
2 Click the desired component and click OK to close the browse dialog.
Note: The slider bar and the navigation buttons enable you to find components in one package only.
To find components in a different package, type the package code in the Name field, and click .
For the following component types, you can use the New command to create a new component:
• Session
• Library
• Table
• Domain
• Report
• Message
• Question
• Label
• Menu
See the following section.
Browse domain
Use this dialog to find and select a domain.
Browse label
Use this dialog to find and select a label.
You can start this dialog, for example, from the Session Editor on page 198.
To select a label:
1 Find the label: take one of the following steps:
• Browse the list of labels.
• Select Search on Name. Then, in the Name field, type the first character(s) of the label name
and click .
• Select Search on Description / Search Key and, in the Package field, select a package.
Then, in the Description / Search key field, type a part of the label's description / search key
and click .
2 Click the desired label and click OK to close the browse dialog.
Note: The slider bar and the navigation buttons enable you to find labels in one package only. To find
labels in a different package, select Search on Name. Then, in the Name field, type the package code
and click .
You can only select labels in packages that belong to the application displayed in the Component
Explorer.
Use the New command to create a new label. See the following section.
Browse library
Use this dialog to find and select a library.
You can start this dialog, for example, from the Table Editor on page 240.
To select a library:
1 Find the library: complete one of these steps:
• Browse the list of libraries.
• Select Search on Name. Then, in the Name field, type the first character(s) of the library name
and click .
• Select Search on Description / Search Key and, in the Package field, select a package.
Then, in the Description / Search key field, type a part of the library's description / search
key and click .
2 Click the desired library and click OK to close the browse dialog.
Note: The slider bar and the navigation buttons enable you to find libraries in one package only. To
find libraries in a different package, type the package code in the Name field, and click .
You can only select libraries in packages that belong to the application displayed in the Component
Explorer.
Browse product ID
Use this dialog to find and select a product ID.
You can start this dialog, for example, from the Library Editor on page 169.
To select a product ID:
1 Find the product ID: Browse the list of product IDs.
2 Click the desired product ID and click OK to close the browse dialog.
Browse Queries
Use this dialog to find and select a query.
You can start this dialog from the Menu Editor on page 173.
To select a query:
1 Find the query: Browse the list of queries.
2 Click the desired query and click OK to close the browse dialog.
Note: The slider bar enables you only to browse the list of queries currently displayed. To display the
remaining queries, use the navigation buttons, or type the first character(s) of a query name, and click
.
Browse session
Use this dialog to find and select a session.
You can start this dialog, for example, from the Menu Editor on page 173.
To select a session:
1 Find the session: Browse the list of sessions or, in the Name field, type the first character(s) of the
session name and click .
2 Click the desired session and click OK to close the browse dialog.
Note: The slider bar and the navigation buttons enable you to find sessions in one package only. To
find sessions in a different package, type the package code in the Name field, and click .
Use the New command to create a new session. See the following section.
You can start this dialog, for example, from the Domain Editor. For domains of data type "UTC
Date/Time", the dialog displays a list of time formats. For domains of data type "Date", the dialog
displays a list of date formats.
To select a format:
1 Find the format: Browse the list of formats.
2 Click the desired format and click OK to close the browse dialog.
Select a Chart
Use this dialog to link a chart to a session. Each session can have several charts.
You can start this dialog from the Session Editor on page 198.
Session
The session to which you link the chart.
Chart
The chart name. The name is a combination of the package, the module, and the chart code.
Click Browse to start a dialog where you can select charts.
Chart Group
You can change the chart group in the UI script of the session.
Allowed values
Chart group 1.
Select Component(s)
Use this dialog to add software components from the LN server to your current activity.
To start the dialog:
1 In the Activity Explorer view, select an activity, or a subfolder, or a component in an activity.
2 On the LN Studio toolbar, click Select a Software Component, or press ALT+Q.
The dialog consists of 2 tabs, that you can use to search in 2 different ways:
• Select on code
• Search on description
Note: When you add a component to your activity, the appropriate editor can start automatically for
the component. This depends on your workbench preference settings. See the description of the
Preferences - Workbench dialog.
Select on code
Use this tab to search on the first part of the component code.
3 Click , or press CTRL+SPACE. A list of components, which match the pattern, is displayed. If
you type additional characters, LN Studio automatically updates this list.
4 If you want the dialog to close automatically after you click OK, select the Close Dialog after
processing selection check box.
5 Select the desired component and click OK. The component is now added to your current activity.
To sort search results
• To sort the search results by type, name, or description, click the corresponding column header.
• To toggle between ascending and descending sort mode, click the involved column header.
Note: As you type the package code and the module code (the first 5 characters of the component
code), LN Studio automatically shows a list of matching packages and modules, and updates this list
after each character typed. For example:
If you press ENTER after you entered a pattern in the Component Code field, LN Studio automatically
adds all components, whose names exactly match the pattern, to your current activity.
Fields
Component Code
Specify the (first part of the) component code you are searching for.
To display a list of components, which match the pattern, click , or press CTRL+SPACE.
Type
The component type, such as session or label.
Name
The component name.
Description
The description of the component.
Additional Information
Additional information about the component. For example, the label context.
Search on description
Use this tab to search on a part of the component's description.
To add a component to the selected activity:
1 Optionally: In the upper right part of the tab, click . The Select Component Types dialog starts.
In this dialog you can specify additional settings for the search process.
2 In the Package field, select a package from the list.
3 Specify the search pattern, and click . A list of components that match the search pattern is
displayed.
4 If you want the dialog to close automatically after you click OK, select the Close Dialog after
processing selection check box.
5 Select the desired component and click OK. The component is now added to your current activity.
Fields
Package
Select a package from the list.
Search Pattern
Specify the search pattern.
To display a list of components, which match the pattern, click .
Type
The component type, such as session or label.
Name
The component name.
Description
The description of the component.
Select a Report
Use this dialog to link a report to a session. A session can have several reports.
You can start this dialog from the Session Editor on page 198.
Session
The session to which you link the report.
Report
The report name. A report is uniquely identified by the combination of package code, module code,
and report code.
Click Browse to start a dialog where you can select reports.
Report Group
The report groups are useful if specific reports must be used in specific situations. You can change
the report group in the session's UI script. Only the report(s) of one report group can be selected at
run time.
Allowed values
Report group 1.
Example
A session has various reports divided into 2 report groups: group 1 - "Detailed Reports" and group 2
- "Summary Reports". The session's form contains a "print what" selection field where users can select
whether they want to print a "Detailed Report" or a "Summary Report". If a user selects "Detailed
Report", the user can only select a report from group 1. If a user selects "Summary Report", the user
can only select a report from group 2.
Description
The description of the additional file.
All fields of the Additional File Properties window are mandatory. After you created the additional
file, you cannot change its name. However, you can change the description.
For more information about the additional file properties, see the online help of the Additional File
Editor.
3 Create the additional file.
To create the additional file in your local workspace and to exit the wizard, click Finish. The created
additional file appears in the Activity Explorer view of the Application perspective.
You can now edit the new additional file in the Additional File Editor.
Creating a component
To create a software component:
1 Start the wizard
To start the Create a New Infor LN Software Component wizard, on the File menu of LN Studio,
select New > Infor LN Component.
2 Select activity
Specify the activity in the Activity field. This is the software development activity in which you
create the new component.
3 Select component type
Specify which type of component you want to create in the Component Type field.
4 Specify component properties
To continue in the following page of the wizard, click Next. This second window is specific to the
component you previously selected and used to set some required properties for the new component.
Fill in the required properties and click Finish to create the component in your local workspace.
The created component appears in the Activity Explorer view of the Application perspective.
You can now edit the new component in the corresponding editor.
Note: Some of these properties, such as identifying attributes and references to labels, can only
be set when you create a new component. For components already created, these properties
cannot be changed.
For more information, see the Help topic on the concerned component.
LN Software Component
Activity
The name of the software development activity for which you create the component.
Behind the activity, the involved software development project is indicated between square brackets.
Allowed values
You must select one of the activities from the drop-down list. This lists contains all activities that are
currently open in your workspace.
Component Type
The component type.
Allowed values
This table shows the component types you can select from the list:
Component
Type Description
Session Sessions are the basic functional elements of LN applications and are used to
perform actions or tasks.
Report LN reports are used to output data from the database to a variety of devices,
such as printers, displays, and files. One or more LN reports must be linked either
to an LN print session or to an LN SQL Query.
Table Tables are data structures that are used to store data and that consists of a list
of records, each entry being identified by a unique key and containing a set of
related values.
Domain A domain specifies the data type, the value range, (default) display format,
length and so on. Domains can be linked to table fields, form fields, and program
variables.
Library A library is a collection of files, programs or subroutines that is used to perform
specific tasks for other libraries, program scripts or sessions of LN applications.
Function A function is a self-contained software routine that can perform a task for the
program in which the function is written, or for another program. With the #include
statement you can include a function in a program script.
Menu An LN menu is a list of options from which a user can make a selection to perform
a desired action, such as starting sessions, other menus, and queries.
Component
Type Description
Label An LN label is code that is used instead of language-dependent text in forms,
reports, and menus. A label consists of a name and a content description.
Message LN messages are language independent software components used to show
situation-dependent information to the user.
Question LN questions are language independent software components that are used to
ask situation-dependent questions to which the user must respond.
Additional File A generic component, such as an XML schema file, a GIF image, and so on.
Creating a domain
Use the Domain Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new Domain in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Note: To use the new domain in an LN application, convert the domain to runtime.
Creating a domain
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new domain. Select
Domain as the component type.
c To go to the Domain Properties window, click Next.
2 Specify the required domain properties.
In the Domain Properties window, specify this information:
Name
This is a text value. The domain name must start with the code of the package in which the domain
is used.
Description
The description of the domain.
Data Type
The data type of the domain, which is the internal representation of data, such as a string, long,
double, date or UTC Date Time.
If you select a text data type ( String, Set, Enumerated or MultiByte String), specify a
Length value greater than 0.
Length
The length in characters if the data type of the domain is a (multi-byte) string, or the default display
length for data types UTC Date Time, Date, Enumerated and Set.
For the latter two data types, the length defines the maximum number of characters of the
descriptions of the Enumerated or Set data type. Any description with more characters will simply
be cut off at the specified length.
The name, description and data type are always mandatory. The length is only mandatory for data
types String, Set, Enumerated and MultiByte String.
After you created the domain, you cannot change its name anymore. You can change the other
properties.
For more information about the domain properties, see the online help of the Domain Editor.
3 Create the domain.
To create the domain in your local workspace and to exit the wizard, click Finish. The created
domain appears in the Activity Explorer view of the Application perspective.
You can now edit the new domain in the Domain Editor.
Creating a function
Use the Function Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new function in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Note: Before you use the new function in an LN application, build the function in LN Studio. If the
auto-build preference is switched on, the function is built automatically.
Creating a function
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new function. Select
Function as the component type.
c To go to the Function Properties window, click Next.
2 Specify the required function properties.
In the Function Properties window, specify this information:
Name
This is a text value. The function name must start with the code of the package and module in
which the function is used.
Description
The description of the function.
All fields of the Function Properties window are mandatory. After you created the function, you
cannot change its name anymore. You can change the description.
For more information about the function properties, see the Function Editor on page 161.
3 Create the function.
To create the function in your local workspace and to exit the wizard, click Finish. The created
function appears in the Activity Explorer view of the Application perspective.
The wizard of LN Studio will automatically create some general source code for the new function,
including a header with metadata and an empty 'skeleton' function.
You can now edit the new function in the Function Editor.
Creating a label
Use the Label Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new label in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Note: Before you use the new label in an LN application, compile the label.
Creating a label
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new label. Select
Label as the component type.
c To go to the Label Properties window, click Next.
2 Specify the required label properties.
In the Label Properties window, specify this information:
Name
This is a text value. The label name must start with the code of the package in which the label is
used.
Description
The actual text of the label. You create the label to apply this text in various situations.
Context
The context indicates in which situations you will use the label.
You can only create labels with one of these contexts:
• General Use
• Form Commands
• External Use
• Cascading Item on Button
Labels with other contexts are generated automatically when you create the corresponding software
components. For example, when you create a session, the Create a New Infor LN Software
Component wizard stores the session description you entered in a label with context Session
Description.
All fields of the Label Properties window are mandatory. After you created the label, you cannot
change its name and context anymore. You can change the description. As a default, the label
type is General Use.
For more information about the label properties, see the online help of the Label Editor.
3 Create the label.
To create the label in your local workspace and to exit the wizard, click Finish. The created label
appears in the Activity Explorer view of the Application perspective.
The label is created in the primary language of the application.
You can now edit the new label in the Label Editor.
Note: A new label with one variant is created. The specified description becomes the description of
the label and the description of the label variant. In the label editor, you can only edit the latter.
Creating a library
Use the Library Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new Library in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Note: Before you use the new Library in an LN application, build the library in LN Studio. If the auto-build
preference is switched on, the library is built automatically.
Creating a library
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new library. Select
Library as the component type.
c To go to the Library Properties window, click Next.
2 Specify the required library properties.
In the Library Properties window, specify this information:
Name
This is a text value. The library name must start with the code of the package and module in which
the library is located.
Description
The description of the library.
Type
Select a library type from the drop-down list. The following library types are used:
• General Library: General DLL - Dynamic Link Library
• Integration DLL: Dynamic Link Library that integrates between packages
All fields of the Library Properties window are mandatory. After you created the library, you cannot
change its name anymore. You can change the other properties. As a default, the library type is
General Library.
For more information about the library properties, see the Library Editor on page 169.
3 Create the library.
To create the library in your local workspace and to exit the wizard, click Finish. The created library
appears in the Activity Explorer view of the Application perspective.
The wizard automatically creates some general source code for the new library, including a header
with metadata and an empty 'skeleton' function.
If the name of the DLL consists of the table code with "ue" as suffix, such as whinh200ue, a User
Exit DLL is created. See "User Exit DLL Overview" in the Infor ES Programmer's Guide (Infor
Support Portal KB 22924522).
You can now edit the new library in the Library Editor.
Creating a menu
Use the Menu Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new menu in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Creating a menu
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new menu. Select
Menu as the component type.
c To go to the Menu Properties window, click Next.
2 Specify the required menu properties.
In the Menu Properties window, specify this information:
Name
The name of the menu, which includes the following:
• The package code (2 characters).
• The module code (3 characters).
• The menu identification code (8 characters).
After you created the menu, you cannot change its name.
Description
LN Studio automatically stores the description in a label. If you want to change the description
after the menu is created, edit this label in the label editor.
Creating a message
Use the Message Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new message in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Creating a message
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new message.
Select Message as the component type.
c To go to the Message Properties window, click Next.
2 Specify the required message properties.
In the Message Properties window, specify this information:
Name
This is a text value. The message name must start with the code of the package in which the
message is used.
Description
The actual text of the message. Create the message to apply this text in various situations. The
message can contain codes that are substituted when the message is displayed.
Message Type
The message type indicates whether the message represents information, a warning or an error.
All fields of the Message Properties window are mandatory. After you create the message, you
cannot change its name, but you can change the other properties. As a default, the message type
is Warning.
For more information about the message properties, see the online help of the Message Editor.
3 Create the message.
To create the message in your local workspace and to exit the wizard, click Finish. The created
message appears in the Activity Explorer view of the Application perspective.
The message is created in the primary language of the application.
You can now edit the new message in the Message Editor.
Creating a question
Use the Question Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new question in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Creating a question
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new question. Select
Question as the component type.
c To go to the Question Properties window, click Next.
2 Specify the required question properties.
In the Question Properties window, specify this information:
Name
This is a text value. The question name must start with the code of the package in which the
question is used.
Description
The actual text of the question. Create the question to apply this text in various situations.
Question Type
The question type indicates the severity of the question as information, warning or error. As a
default, the question type is Warning.
Domain
The domain that determines the possible answers to the question. Click Browse to select a domain.
The domain must have the data type Enumerated.
Default Answer
The default answer to the question. Select one of the enumerate constants belonging to the
specified domain.
All fields of the Question Properties window are mandatory. After you created the question, you
cannot change its name anymore. You can change the other properties.
For more information about the question properties, see the online help of the Question Editor.
3 Create the question.
To create the question in your local workspace and to exit the wizard, click Finish. The created
question appears in the Activity Explorer view of the Application perspective.
The question is created in the primary language of the application.
You can now edit the new question in the Question Editor.
Creating a report
Use the Report Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new report in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Note: To implement the new report in an LN application, you must synchronize with the server and
compile the report.
Creating a report
1 Start the wizard and select the component type.
a Start the wizard.
See Create a New Infor LN Software Component on page 97.
b Specify the software development activity for which you want to create the new report.
c Select Report as the component type.
d Click Next. The Select Report Mode window is displayed.
2 Select the report mode.
a In the Select Report Mode window, select how you want to create the report.
• To generate the report, select the Generate Report check box.
• To create the report manually, clear the Generate Report check box.
b Click Next.The Report Properties window is displayed.
3 Specify the required report properties.
The layout of the Report Properties window depends on how you create the report.
• If you create the report manually, specify this information:
Name
This is a text value. The report name must start with the code of the package and the module
in which the report is used. After the report is created, you cannot change its name.
Description
This is a text value. LN Studio automatically stores the description that you enter in a label. If
you want to change the description after the report is created, edit this label in the label editor.
Report Size
To specify a size, click Browse and select a value from the Browse Default Sizes dialog
box.
Report Code
The identification code of the report. A report is identified by a unique combination of package
code, module code and report identifier. To regenerate an existing report, click Browse and
select the report code from the Browse component dialog box. After the report is created,
you cannot change its code.
Report Description
LN Studio automatically stores the description that you enter in a label. If you want to change
the description after the report is created, edit this label in the label editor.
Report Size
To specify a size, click Browse and select a value from the Browse Default Sizes dialog
box.
Report Type
Choose one of these options:
• Type 1: Single occurrence report. The fields on the report are printed vertically. Use this
report type if a lot of fields, that do not fit horizontally on a report, must be printed.
• Type 2: Multi occurrence report. The fields on the report are printed horizontally.
• Type 3: Multi occurrence report with a group layout. The fields on the report are printed
horizontally. In addition you can print group headers and group totals.
Use Index
Specify the number of the index. The index is used to print the report in the order according
to the key fields specified in the index.
New Page On
This field is only applicable for type 3 reports.
The number of group fields which must be printed on a new page. If one of these fields changes,
a page break is forced.
The total number of group fields must be less than the total number of key fields.
For more information about the report properties, see the online help of the Report Editor.
4 Create the report.
To create the report in your local workspace and to exit the wizard, click Finish. The created report
appears in the Activity Explorer view of the Application perspective.
You can now edit the new report in the Report Editor.
Note: When you create a report in a new application, these labels for general use are automatically
created in the label folder in the Activity Explorer:
• [package code]ttgen.h.comp.lbl - Company
• [package code]ttgen.h.date.lbl- Date
• [package code]ttgen.page.lbl - Page
Creating a session
Use the Session Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new session in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Note: To implement the new session in an LN application, synchronize with the server and compile
the session.
Creating a session
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new session. Select
Session as the desired component type.
c To go to the Session Properties window, click Next.
2 Specify the required session properties.
In the Session Properties window, specify the following properties:
• Name
• Description
The Name and Description have text values. The session name must start with the code of the
package and the module in which the session is used. After the session is created, you cannot
change its name.
The wizard stores the session description in a label. If you want to change the session description,
edit this label in the Label Editor.
To specify one of the other properties is optional. If you do not specify a value, the properties are
unset or get a default value (as displayed in the window). This table shows the used default values:
For more information on the session properties, see the Session Editor on page 198.
3 Create the session.
To create the session in your local workspace and to exit the wizard, click Finish. The created
session appears in the Activity Explorer view of the Application perspective.
You can now edit the new session in the Session Editor.
Creating a table
Use the Table Properties window of the Create a New Infor LN Software Component wizard to
initialize and create a new table in your local workspace. This window is the wizard's second dialog
box.
For more general information about the wizard, see Create a New Infor LN Software Component on
page 97.
Creating a table
1 Start the wizard and select the component type.
a Start the wizard.
b Specify the software development activity for which you want to create the new table. Select
Table as the component type.
c To go to the Table Properties window, click Next.
2 Specify the required table properties.
In the Table Properties window, specify the following properties for the table.
Name
The name of the table.
Table names must have this format: <package code><module code><table number>. For
example:
Package tt (tools)
Code
Module Code adv (application development)
After you created the table, you cannot change its name.
Description
LN Studio automatically stores the description in a label. If you want to change the description
after the table is created, edit this label in the label editor.
Debugging
Line Number
The line number in the source code where the breakpoint is set.
Enabled
If this check box is selected, the breakpoint is enabled. The program execution suspends when the
breakpoint is reached.
If this check box is cleared, the breakpoint is disabled. The breakpoint is ignored during the program
execution.
Function
The name of the method for which the breakpoint is set.
Enabled
If this check box is selected, the breakpoint is enabled. The program execution suspends when the
breakpoint is reached.
If this check box is cleared, the breakpoint is disabled. The breakpoint is ignored during the program
execution.
Function Entry
If this check box is selected, the program execution suspends when the execution reaches the function
for which the breakpoint is set.
Watchpoint properties
Use this dialog to view or modify the properties of a watchpoint.
Note: For details on how to set new watchpoints, see Using breakpoints on page 69.
Location
The component, for example a script or library, where the watchpoint is set.
Variable
The name of the variable for which the watchpoint is set.
Enabled
If this check box is selected, the watchpoint is enabled. The program execution suspends, based on
the setting specified in the Suspend on field.
If this check box is cleared, the watchpoint is disabled. The watchpoint is ignored during the program
execution.
Suspend on
Indicates when the program execution will suspend.
Allowed values
Variable Modifica- The program execution suspends when the value of the variable changes.
tion
Variable Value The program execution suspends when the variable gets the indicated value.
See the previous figure for an example. The session will suspend when the c
urr.key variable gets the value 2.
Preference Pages
Preferences - Editor
Use this dialog window to specify your script editor preferences.
These settings only apply to the LN Studio Script Editor.
Marker Identifier
Determines the text that is added in the source code, when you add maintenance comments.
Allowed values
Example
Background Color
Use this field to set the background color for your editor.
Choose one of the following options:
Note:
The editor only uses this color for source code of checked out components. If a component is not
checked out, the source code is read-only and the editor uses the ReadOnly color.
ReadOnly
Use this field to set the background color for read-only source code, such as source code of components
that are not checked out.
Choose the color from a basic color schema or define custom colors.
Automatically insert
If this check box is selected, and if there is only one completion proposal for the string you entered in
the Script Editor, code assist will automatically insert the proposal at the cursor position.
Example
In the Script Editor, you type " she " and press CTRL+SPACE. Code assist automatically inserts the
following text, because this is the only completion proposal available: " shell(command,mode) ".
Auto Activation
Enable auto activation
If this check box is selected, Code Assist starts automatically when you type the auto activation trigger
character.
Preferences - Folding
Use this dialog window to specify your Folding preferences.
These settings only apply to the LN Studio Script Editor.
See "Folding" in the Infor LN Studio Application Development Guide.
Enable folding
If this check box is selected, you can fold and unfold the selected region types when you open a new
editor.
If this check box is cleared, you cannot fold and unfold any region type in the script editor.
Header
If this check box is selected, folding is enabled for header comments.
Macro's
If this check box is selected, folding is enabled for macros.
Section
If this check box is selected, folding is enabled for script sections, such as the declaration section, the
before.program section, and field sections in a UI script.
Preferences - Syntax
Use this dialog window to specify syntax coloring preferences.
These settings only apply to the LN Studio Script Editor.
Limitations
The script editor does not recognize syntax patterns because no syntax parser is available in this
release. Therefore, if a variable has a name identical to a keyword such as "domain", "function", or
"case", the variable is colored as a keyword. For example:
• You add the following code to the declaration section of a UI script: long case.
• case is colored as a keyword, because the editor does not recognize it as a variable.
Syntax Coloring
Specify the syntax coloring settings for various elements in the program text.
To specify the syntax coloring settings for an element:
1 Select the element from the list.
2 Specify whether the element must be bold and/or italic.
3 Click the color button.
4 Select the color from a basic color schema or define custom colors.
Preview
Shows a preview of your syntax coloring settings.
Preferences - Templates
Use this dialog window to create, edit, and remove templates.
These settings only apply to the LN Studio Script Editor.
To insert a template in the script editor, use the Code Assist feature.
Overview window
Use the check boxes to enable and disable templates. If a check box is selected, you can use Code
Assist to insert the corresponding template in your source code.
Use these buttons to manipulate and configure templates:
Button Description
New Opens a dialog to create a new template.
Edit Opens a dialog to edit the currently selected template.
Remove Removes all selected templates.
Restore Re- Restores any predefined templates that have been removed.
moved
Revert to Default Restores any predefined templates to their default configuration.
This action does not modify user-created templates.
Import Imports templates from an XML file in the file system.
Export Exports all selected templates to an XML file in the file system.
Context
This is a standard Eclipse option that is not used by LN Studio.
Automatically insert
If this check box is selected, code assist automatically inserts the template at the cursor position, if
the template is the only completion proposal for the string you entered in the Script Editor.
Description
The description of the template.
Pattern
The pattern of the template. This is the text inserted in the editor when you select the template.
In the template pattern, you can use predefined template variables. Variables are resolved to their
concrete value when the template is evaluated in its context. You can specify variables using simple
or full syntax. If there are multiple possible matches for a variable, they are presented as proposals
to the user.
To add a variable to the template pattern, click Insert Variable and select the desired variable from
the list.
You can select general and LN-specific template variables.
This table shows the general template variables:
Variable Description
${cursor} Specifies the cursor position when you leave the template
edit mode. This is useful if the cursor must jump to another
place than to the end of the template, on leaving template
edit mode.
${date} The current date.
${dollar} The dollar symbol '$'. Alternatively, you can use two dollar
signs: '$$'.
${line_selection} The content of all currently selected lines.
${time} The current time.
${user} The user name.
${word_selection} The content of the current text selection.
${year} The current year.
Variable Description
${name} The name of the function which is used above this variable
${input_arg} The arguments of the function which is used above this variable.
Variable Description
${returnType} The return type of the function which is used above this variable.
${output_arg} Place holder
Preferences - Launching
Use this dialog window to specify your launching preferences.
When you launch a software component, the LN Studio checks whether the release of the corresponding
application matches the package combination in which the component is executed. If they do not match,
you may encounter problems during debugging.
In this dialog, you can specify whether/how the launch should continue if release and package
combination do not match.
Note:
• The application release is specified in the Create a new Application dialog. The release is identical
to the Base VRC on which the software development is based.
• The package combination depends on the runtime address connection points of the application's
software projects. A runtime address connection point is linked to a .bwc file. You can find the
package combination in the user data of the user account specified in this .bwc file. To view the
user data, run the User Data (ttaad2500m000) session. Alternatively, look in the Command field
of the BW Configuration Properties dialog.
Default Launch Mode
Specify how sessions are started by default.
Select an option. In the Configurations dialog, the corresponding launch mode is selected
automatically.
Allowed values
• Launch in BW
• Attach to running Web UI
Preferences - Multipage
Use this dialog window to specify preferences for the Multipage Editors.
Display the TDE overview page for all editors
If this check box is selected, a TDE Documentation tab is displayed in all multipage editors. This tab
shows an XML tree with the technical information on the software component's Technical Data Entity.
The information displayed in the TDE Documentation tab is primarily intended for support and
troubleshooting purposes. Therefore it is recommended to display the tab only in case of problems.
Preferences - Workbench
Use this dialog window to specify whether the editor is opened automatically each time you add a new
resource to your workspace.
The script editor can start automatically, for example:
• When you use the Get command in the Component Explorer view to add a component to your
workspace.
• When you use the Open Declaration (source) command in the script editor to view detailed
information on a function that is called in your source code and not present in your workspace.
• During debugging, when you step into a function that is called in your source code, but not already
present in your workspace.
Automatically open the editor for a new resource
Use this field to specify whether the corresponding editor is opened automatically for a new resource.
This table shows the available options:
Al- The editor starts automatically each time you add a component to your workspace.
ways
Never The editor does not start automatically when you add a component to your workspace.
Prompt When you add a component to your workspace, the following question is displayed:
"Open editor for the new software component?"
Click Yes or No to answer the question.
Optionally, click the Remember my decision check box in the question window. Depending
on your answer to the question, this will change the Automatically open the editor for a
new resource preference setting to "Always" or "Never".
Nev- You cannot check out a component while editing. To change a component, you must first
er check out the component and then start the corresponding editor.
Prompt You can check out a component while editing.
If you try to change a component, which is not yet checked out, you are prompted whether
you want to check out the component.
If you click Yes, the component is checked out so you can change it.
If you click No, the component is not checked out so you cannot change it.
Decorations
Append version information to resource name
If this check box is selected, LN Studio appends the version and release information of the application
to the resource names displayed in the Activity Explorer view.
For example: 7.6_a4
Resources can become dirty if the Build Automatically option is turned off: When you save changes
you make to a resource, the changes are saved in your local Eclipse workspace. However, the software
component on the LN server is not updated.
You must build the component to synchronize the local resource and the LN server. The decorator
disappears automatically.
Warning level
This field indicates the warning levels that are displayed. You can select multiple levels. The selected
levels are supplementary.
For example: You select High (1) and Normal (2). Warnings of level 1 and 2 are displayed.
Warning status
This field determines the warning statuses that are displayed. You can select both check boxes. The
options are supplementary.
Allowed values
Resources
This field determines the resources, for which warnings are displayed.
Allowed values
On any resource LN Studio displays warnings for all resources in the Activity Ex-
plorer.
On any resource in same LN Studio displays warnings for the resource that you selected in
project the Activity Explorer, and for all resources that belong to the
same project.
On selected resource only LN Studio only displays warnings for the resource that you selected
in the Activity Explorer.
Message
The text of the message assigned to the warning.
For example: Function 'sleep' is not supported by Web UI
Detailed Information
Resource
The LN Studio resource that represents the software component for which the warning is generated.
For example:
• tfgld1101m000.ses (session)
• tfgld1101m000.sessrc (program script)
Project
The software project to which the software component belongs.
Component name
The code that identifies the software component for which the warning was generated.
Component type
The type of the main component for which the warning was generated.
For example:
A warning is generated because of an error in a session's UI script:
• The component type is "session".
• The component subtype is "script".
Component subtype
The subcomponent type for which the warning was generated. Each software component type has its
own types of subcomponents.
Some examples of subcomponents are:
• A form command in a form.
• A field in a form.
• An index in a table.
• A text field in a table.
• A field section in a UI script.
• A choice section in a UI script.
Component location
The location in the software component where the problem occurs.
For example:
• A line number in a script or library.
• A form or report in a session.
Component element
The component element that causes the problem.
For example:
A warning is generated because an expired label is used in a form:
VSC Status
Priority
The priority of the warning: high, normal, suspicious, or low.
Priorities are automatically assigned by the verification process:
• The priorities for warnings generated based on source analyze codes, are defined in the Source
Analyze Codes (tlvsc3511m000) session.
• The priorities for warnings generated based on all other types of checks are hard coded in the
VSC software on the LN server.
Blocking
This field indicates whether the warning blocks the check in of a component.
If a warning is "blocking", either solve or accept the warning immediately.
For more information, see Verifying software components on page 57.
Accepted
This field indicates whether the warning is accepted.
Accept
Acceptance allowed
This field indicates whether it is allowed to accept the warning.
Allowed values
True It is allowed to accept the warning. The Accept Warning field is enabled.
False You cannot accept the warning. The Accept Warning field is disabled.
Note: This field is read-only. The value is determined by the rules used by VSC.
Accept Warning
To accept the warning, select this check box. In the Accept Text field, enter the reason for acceptance.
To solve the warning, clear this check box.
For example, the following warning is generated: "Possible missing break in case statement".
• If this break is not missing, but left out on purpose, select this check box and accept the warning.
• If this break was left out accidentally, clear this check box and solve the warning.
See Verifying software components on page 57.
Accept Text
If you select the Accept Warning check box to accept a warning, enter the reason in this field.
Help
Starts the Verify Warning Help dialog, which displays information to solve the warning.
Motivation The reason why the situation indicated in the error message is not correct.
For example:
Miscellaneous
Check In comment
Use this dialog to enter check in comments for software components.
The dialog starts automatically when you check in one or more components.
Click OK to save the comment and to check in the component.
Click Cancel to cancel the check in. The comment is not saved.
Note: The revision text is stored in the configuration management system on the server. A single text
is used for all revisions of a component. This text is displayed each time you check in a new revision
of the component, so you can modify or extend it.
Use this comment for all selected components
This check box is only displayed if you check in multiple components in one go.
If this check box is selected, the revision text entered is used for all components you selected in the
Activity Explorer.
If this check box is cleared, you must enter a separate revision text for each component.
Configuration Management
Use this dialog to view the configuration management properties of an LN Studio resource.
Configuration Management Information
Type
The type of configuration management system used for the resource.
There is only one type of configuration management: LN Configuration Management (BaanSCM),
which is based on the Software Configuration Management (SCM) module in Enterprise Server. A
more extensive CM solution will be offered in a future release. See Activity based development on
page 38.
General Information
Checked Out
Indicates whether the resource is checked out.
Dirty
Indicates whether the resource is dirty. A resource is dirty if the version stored in your local workspace
differs from the version on the LN server.
A resource can get dirty, for example, if you do not create a new build after you have modified the
resource.
To avoid dirty resources, select the Build Automatically option on the Project menu.
General Information
Type
The type of resource, such as session or library.
Component Name
The name of the resource.
Version
The VRC ( Version - Release - Customer) to which the component belongs.
Expired
Indicates whether the resource is expired.
Configurations
Use the Run Configurations and Debug Configurations dialog boxes to create, run, or debug
configurations.
To add a configuration:
1 Complete one of these steps:
• To add a run configuration, select Run > Run Configurations.
• To add a debug configuration, select Run > Debug Configurations.
2 In the left pane of the Run Configurations or Debug Configurations dialog box, right-click Infor
LN Session and select New. These tabs are displayed:
• Sessions
• Profiling
• Environment
• Common
3 Specify the configuration settings in these tabs and click Apply.
For details on the tabs mentioned, see the field help.
Sessions
Use this tab to specify the session you want to start, and the company in which the session must run.
Activity
Select an activity from the list.
Session
Select the session you want to run. The name of the configuration is automatically filled with the name
of the selected session.
To select a session, perform one of these actions:
• Select a session linked to your activity from the list.
• Click Browse. The Browse session dialog starts. In this dialog you can select a session on the
LN server. The session does not have to be linked to your activity.
• Specify a session code. The session does not have to be linked to your activity.
Note: You can only select sessions that belong to the packages displayed in the Component Explorer
Launch Mode
Specify how the session is started.
Allowed values
Note: If you run a session in Web UI, any new or changed labels are only displayed if the session is
compiled and linked to your activity.
Company
Select a company in which the session must be started.
Perform one of these actions:
• Select Start session in company of connection point and enter the company linked to your
project's Runtime Address connection point. To find out the corresponding company number,
complete the following steps:
1 Select Windows > Preferences. The Preferences dialog is displayed.
2 In the tree that is displayed in the left pane of the dialog, select Infor LN JCA Connectivity.
The Infor LN JCA Connectivity dialog appears.
3 Select the Runtime Address connection point and click Edit. The company number is displayed.
• Select Start session in company and specify another company.
Profiling
Optionally, use this tab to specify profiling parameters.
Profiling is used to display performance statistics for a session. For details, see "The Call Graph Profiler"
in the Infor ES Programmer's Guide (Infor Support Portal KB 22924522).
Enable profile mode
If this check box is selected, you can specify profiling parameters.
When you run the session, a Call Graph Profile is generated.
Sorted by runtime
Select this check box to add information that is sorted by runtime to the Call Graph Profile.
Filter
Use this field to specify a filter. If this check box is selected, you can, for example, enter the name of
an object. The generated profile contains only statistics for the specified object.
This field corresponds with the value of the PROFILE_ALL variable. See "The Call Graph Profiler" in
the Infor ES Programmer's Guide (Infor Support Portal KB 22924522).
This field corresponds with the PROF_DIR variable. See "The Call Graph Profiler" in the Infor ES
Programmer's Guide (Infor Support Portal KB 22924522).
Environment
Use this tab to specify environment variables.
Environment
Append environment to native environment
Select this option to append the environment variables to the native environment variables.
Common
This tab is not used by LN Studio. It contains only standard Eclipse options. See the Workbench User
Guide.
Application
Use the upper part of the dialog to specify basic application properties.
Application name
The name of the application.
When you create a new application, it is mandatory to specify an application name.
Allowed values
The application name identifies the application. Therefore, the application name must be unique in
the context of the connected LN server. The name can be any ASCII text with a maximum length of
30 characters.
Description
The description of the application.
Specifying an application description is optional.
Allowed values
The description is a (multi byte) text with a maximum length of 50 characters.
Release
The release of the application.
For LN applications, the release is identical to the Base VRC on which the software development is
based.
See Applications on page 23.
Specifying a release is mandatory.
Note: An LN Studio application is linked to the Base VRC of a PMC module. Within the PMC module,
the package VRCs are linked to the export VRC of the PMC Base VRC.
Allowed values
To specify a value for this field, select a release from the drop-down list.
Base
This field is not yet implemented.
Note: You can access the field and select a value from the list. However, this value is ignored by the
LN Studio. Therefore, you are recommended to leave this field empty.
Use SCM
If this check box is selected, the software components developed or modified in LN Studio are managed
with the Software Configuration Management (SCM) tool of the connected LN environment.
Use SCM to perform version management for packages linked to the application, or for the individual
activities of the application. To use SCM for the version management of the packages, SCM must be
enabled for the associated Project VRC on the LN server. If SCM is not enabled, you cannot add a
package from this VRC to the application.
See "Activity based development" in the Infor LN Studio Application Development Guide.
Packages
Use this tab to link packages to the application.
Package
A package linked to the application.
In LN Studio, you can link packages to an application. These packages must have a VRC that
corresponds with the Export VRC of the Base VRC of the PMC module. This must also match the
Base VRC of the application. This Export VRC contains the application data with the linked packages.
LN Studio will automatically create such an Export VRC, if no such VRC is available.
The Packages field displays a table with the packages that have been linked to the application. These
packages have the same Base VRC as the application. The table shows the name of the packages
and the package description. An additional field indicates whether the package is used.
To link packages to the application:
1 Click Add. An empty package record is added to the Packages grid. Then, in the Package field,
select a package from the drop-down list. This list contains all the packages linked to the
application's Base VRC. After you select a package, the package name and description are
displayed in the grid.
Note: To add all packages at the same time, click Add All.
2 To indicate whether a package is used in the application, select or clear the corresponding Active
check box in the grid.
Note: You require special authorization to create or modify applications linked to a Base VRC of a
standard LN release. To make a customization for a particular customer, copy the application to the
customer's application.
Description
The description of the package.
This field is read-only. The specified description is derived from the selected package.
Active
If this check box is selected, the package of the application is changed or modified in LN Studio.
Allowed values
The check box is cleared.
Languages
Use this tab to link software languages to the application.
Language
A software language linked to the application during development time.
Important
If you use the Language Translation Support functionality, to translate labels or other user interface
components, do not add secondary software languages to an application. Only use secondary software
languages for small translations performed by a software developer, outside the framework of the LTS
export/import mechanism.
The term "software language" refers to a language used by the application to communicate with the
application user. Therefore, when you run the application, the text on the buttons, commands, menus,
messages and so on, are expressed in one of the software languages linked to the application.
You can link multiple languages to an application, depending on the language packs installed on the
application's LN environment.
An LN Studio application can have two types of languages: primary and secondary. Each application
must have only one primary language. This is the development language and used to display the
editable components throughout the user interface of LN Studio. If any references are made to another
component, this reference is expressed in the primary language. By default, the primary language is
2. If you do not specify a primary language, English is used.
Apart from the primary language, an application can possess multiple secondary languages. These
can be considered as translations of the expressions in the primary language. You can view and modify
these translations in the editor of the concerned software component. The translations are used when
running the application in a mode for a particular secondary language, determined by the language
of the user.
The Languages field displays a table with all languages linked to the application. These languages
must be installed on the LN server connected to LN Studio through the Administrator connection point.
The table shows the name of the languages and the language descriptions. An additional field indicates
whether the language is a primary or secondary language.
To link a new language to the application, complete the following steps:
1 Click Add. An empty language record is added to the Languages grid.
2 In the Language field, select a language from the drop-down list. This list contains all the packages
installed on the connected LN server. After you select a language, the language code and language
description are entered in the grid.
3 To indicate whether the language acts as primary language, select or clear the Primary check
box.
Description
The description of the language.
This field is read-only. The specified description is derived from the selected language.
Primary
If this check box is selected, the current language will act as the primary language of the application.
If this check box is cleared, the current language is a secondary language.
Note:
If you set the primary language of the application, any language that was previously the primary
language will automatically be marked as a secondary language.
Allowed values
The check box is cleared.
Documentation
Documentation
Use this field to specify additional information.
Activation Type
Specifies what your form command activates. You can select the following activation types from the
drop-down list. The used type names are self explanatory.
Allowed values
• Function
• Session
• Business Method
• Menu
Function/Session/Business Method/Menu
The name of the function, session, business method, or menu the form command activates.
Note: Any session you specify must exist in the development repository of the connected LN server.
The function or business method must be part of the session's program script, or DAL script respectively.
Allowed values
If the activation object is a session, you must specify a session that already exists in the LN application,
because you cannot create new sessions in the LN Studio.
The Browse button only applies to sessions and not to other activation objects. Use the browse
functionality to select a session.
For activation objects other than Session, you do not require to select an pre-existing object. Note,
however, that any specified function or business method must be part of the session's program script,
or DAL script respectively.
Command Type
Specifies where the form command appears on the session's form. You can select the following
command types from the drop-down list:
Allowed values
Form For all of the session's form tabs, the form command appears on the form's appro-
priate menu, and/or as a button on the form.
Group The form command only appears on the session's appropriate menu when a user
selects the tab that includes the group you define in the Group/Field Number field.
Field The form command appears as a button on the form, behind the field whose Se-
quence Number you enter in the Group/Field Number field.
Print The form command appears as an option in the session's print menu.
• You cannot duplicate components from an LN Studio Activity that has been re-assigned to another
user. After an LN Studio Activity has been re-assigned, you loose the ownership of the activity's
components.
Field Description
Project The current LN Studio Activity in which the component is duplicated.
The LN Studio Software Project to which this activity belongs is indicated be-
hind the activity name, between square brackets.
Component Type The type of component, such as Library or Session.
Source Name The name of the original component that is duplicated. This name is the
identifying attribute of the component.
Source Descrip- The description of the original component that is duplicated.
tion
All these properties of the existing component are displayed in read-only mode.
2 Specify properties for the new component
Specify the following properties for the new component:
Field Description
Target Specify a unique component name.
Name The format of the name is component specific. Most component names must start
with the code of the package in which the component is used. Some component
names must additionally include the code of the involved module. For more information
on the allowed values, see the wizard's messages and the description of the editor
of the concerned component.
After you copied a component, you cannot change the component's name anymore.
For existing components, the name is read-only, because the name forms the identi-
fying attribute of the component. Changing a component's name would make it another
component.
Target De- Specifying a Target Description is optional. If you do not fill in a description, the
scription component inherits the description of the component from which it is copied. The
component description can be any ASCII text with a length of less than 60 characters.
Note: You cannot specify a Target Description for labels, because the label descrip-
tion is one of the label variants and all label variants are duplicated.
Field Description
Program This field is only displayed when you duplicate a session.
Script Select one of the following options:
Duplicate Script The UI script of the original session is copied. The new UI
script is linked to the target session.
Select this option if the new session must have its own UI
script.
Create Reference to The new session is linked, through a session reference, to the
Source Session UI script of the original session, so that both sessions share
the same UI script.
See the description of the Session reference field in the online
help of the Session Editor.
DAL op- These options are only displayed when you duplicate a DAL script.
tions The duplicate wizard copies the selected (source) DAL script to a new (target) DAL
script. In addition, the wizard also copies the table, to which the source DAL script
belongs, to a new table. The new DAL script contains references to the original table.
Use the following options to automatically update these references, so the new DAL
script refers to the new table.
Replace code '<name of If this check box is selected, the wizard automatically re-
the original DAL script>' places all references to the original table name by refer-
ences to the new table name.
If this check box is cleared, the references are not updated,
so the new DAL script still contains references to the origi-
nal table name.
Replace description If this check box is selected, the wizard automatically re-
'<description of the origi- places all references to the original table description by
nal DAL script>' references to the new table description.
If this check box is cleared, the references are not updated,
so the new DAL script still contains references to the origi-
nal table description.
Compo- Remarks
nent
Session When you duplicate a session, the session's form is also copied. If you select the Du-
plicate Script option, the UI script is also copied.
Domain When you duplicate an enumerated domain, the labels used for the enumeration are
also copied.
Label When you duplicate a label, all label variants are duplicated (including the label descrip-
tion).
Application Search
Use this dialog to find out in which LN software components an element, selected in the script editor,
is used.
The search results are displayed in the Search view. Double-click a search result to open the
corresponding script or library at the line where the result occurs.
Note:
• This dialog is only available for LN servers with Enterprise Server 8.7 or higher.
• The component you are searching for must exist. If the specified component does not exist, a
message is displayed.
You can start this dialog from the shortcut menu in the script editor.
Activity
The activity in which you started the Application Search command.
Search in Scripts
If this option is selected, the expression or component name is searched in the scripts/sources of the
component types specified in the Component Types field.
You can perform the search in these component types:
• Sessions
• Functions
• Tables
• Reports
• Libraries
Search as
The component type you want to search for.
The expression or component name is searched in all parts of the component types specified in the
Component Types field.
Allowed values
Value Description
Message The search process searches only for messages.
You can perform the search in these component types:
• Sessions
• Functions
• Tables
• Reports
• Libraries
• Domains
• Report Designs
• BFlow components
• Workbenches
Question The search process searches only for questions.
You can perform the search in these component types:
• Sessions
• Functions
• Libraries
• BFlow components
Session The search process searches only for sessions.
You can perform the search in these component types:
• Sessions
• Functions
• Libraries
• BFlow components
• Menus
BFlow Component The search process searches only for BFlow components.
You can perform the search in BFlow components.
Table/Field The search process searches for tables or table fields. The type of search
depends on the length of the component name you specify in the Expres-
sion / Component Name field:
• If you specify 8 characters or less, the search process searches for
tables.
• If you specify more than 8 characters, the search process searches
for table fields.
You can perform the search in these component types:
• Sessions
• Functions
• Tables
• Reports
• Libraries
• BFlow components
Value Description
Library The search process searches only for libraries. You can perform the search
in these component types:
• Sessions
• Reports
• Functions
• Libraries
• Report Designs
• Menus
This option is only available if it is supported by the LN server.
Label The search process searches only for labels. You can perform the search
in these component types:
• Sessions
• Reports
• Functions
• Libraries
• Report Designs
• Workbenches
• Menus
• Domains
This option is only available if it is supported by the LN server.
The search process performs the same search actions as the "Print Where Used" sessions on the LN
server. The search results are displayed in the Search view.
Note: This option is only available for LN servers with Enterprise Server 10.3 or higher.
Component Types
The component types in which the search is performed.
Package Selection
The packages in whose components the search must be performed.
Options
Case sensitive
If this check box is selected, the search will distinguish uppercase from lowercase letters.
Range
From/To
The range of components in which the search must be performed.
The package code must be omitted. The specified code must start with a module code. For example,
you want to search in components in the com module in the tc package. Select tc in the Package
Selection field, and specify this range:
From To
com comzzzzzzzzzzzzzzzzz
WSDL URL
The URL that is used to generate the library code.
Field Dependencies
Use this dialog box to specify field dependencies.
Fields without relations are deleted after relations have been found.
Import Relations
Use this check box to enable or disable the import of field relations.
DllUsage
Expl: The purpose of this function is to set a default value
for whina310.qord.
Pre: Fields that are used to set the default are:
- whina310.item
- whina310.oqan
Post: whina310.qord could be filled or modified
Input: N.A.
Output: N.A.
Return: N.A.
EndDllUsage
Example 2:
Create Tables
Use this dialog box to create tables for a range of companies and packages. Before you can create
tables, you must define these components:
• A company in the Companies (ttaad1100m000) session
• Database definitions for that company in the Database Definitions (ttaad4510m000) and Tables
by Database (ttaad4111m000) sessions
• Optional: logical table definitions in the Logical Tables (ttaad4120m000) session
See also "To define database information" in the Enterprise Server online help.
Company
The range of company numbers in which the tables are created.
Package
The range of packages for which the tables are created.
Table
The range of table codes of the tables that are created.
Convert To Runtime
Use this dialog box to convert the changed software components to the runtime data dictionary. The
conversion is performed by a range of package combinations and packages.
Specify the appropriate ranges and indicate which components must be converted.
Only the table definitions are created, not the tables themselves. To create the tables, use the Create
Tables dialog box.
The output of the reconfiguring process is logged in the $BSE/log/log.reconfig file.
Domains
If this check box is selected, the domains are converted to the runtime data dictionary.
Tables
If this check box is selected, the tables are converted to the runtime data dictionary.
Reconfigure Tables
If this check box is selected, the tables are reconfigured.
Reconfiguration means that a new table definition is created on the basis of the table and domain
definitions in the data dictionary. The reconfiguration is only performed if the definitions have been
changed in the development environment.
The reconfiguration of the tables is only possible if tables or domains have been created in the runtime
data dictionary.
Package Combination
The package combinations whose data is to be converted to the runtime data dictionary.
Package
The packages for which the tables and domains must be converted to the runtime data dictionary.
Table
The changed tables that must be converted to the data dictionary.
Runtime Directories
If this check box is selected, the file definition fd6.2 file of the defined package combination is dumped
to the runtime data dictionary. The runtime directories are located in the file definition and contain the
runtime objects.
Note: During this action the user files of the LN user are also dumped to the runtime data dictionary
of the defined package combination.
LN Studio contains various multipage editors that you can use to edit software components, such as
sessions, menus, labels, libraries and messages.
For a detailed explanation of an editor, see the editor's online help.
Editor tabs
Each multipage editor consists of various tabs.
For example, the Session Editor consists of these tabs:
The number of tabs can vary for the different editors. However, the Overview and Documentation
tabs exist in all multipage editors. The TDE Documentation tab is displayed depending on the multipage
editor preferences.
For details on the editor tabs, see the online help of the multipage editors.
Note: The Source tab is only displayed if the source code of the component is present on the LN
server. If you edit a component, for which no source code is present, the Source tab is hidden.
By default, when you start a multipage editor, the editor opens the Overview tab. To change this default
setting, click in the Activity Explorer view. As a result, the Source tab (if the source code is available)
is directly opened when you start an editor. Click again to restore the default setting. See Activity
Explorer view on page 296.
The editor displays error markers when you enter incorrect or insufficient information on an editor tab.
When you save a component which contains errors, the component is only stored in your local workspace
but is not saved to the server. In the Activity Explorer, the component has a dirty state ( ) decorator
in the bottom right corner of the software component image. When you solve the error and save the
component, the component is saved to the server again and the decorator disappears.
Preferences
To specify preference settings for the multipage editors:
1 Select Window > Preferences.
2 In the left pane of the Preferences window, select Infor LN Studio Application > Multipage.
The Preferences - Multipage dialog box is displayed. In this dialog box, you can perform these
actions:
• Enable or disable the TDE Documentation tab for all multipage editors. This tab is primarily
intended for support and troubleshooting purposes. Therefore it is recommended to display
the tab only in case of problems.
• Specify the directory where LN Studio stores the additional files that you edit in the Additional
File Editor.
See Setting user preferences on page 32.
Overview tab
Use this tab to define and maintain additional files.
General Information
Additional File
The name of the additional file, which includes the package code, the module code, the file identification
code, and the filename extension.
For example: tctaxdetermine_tax.gif, or tcccpbl001blsrp0000.xsd.
Description
The description of the additional file. For example, the description of the tcccpbl001blsrp0000.
xsd file is "tcccp001-List-Response".
Editable
If this check box is selected, you can view and edit the file. Click the Additional File hyper link to open
the file with its default external editor, for example Notepad or Picture Manager.
If this check box is cleared, you cannot edit the file, and you cannot view the file in its default external
editor. However, you can view the file in the Preview section of this tab.
Download File
Downloads the file to your client computer. Starts a dialog box where you must specify the file name
and destination folder. After the download, the full pathname of the file is displayed behind the Open
File link.
Upload File
Uploads an additional file to the LN server. Starts a dialog box where you must select the file to upload.
After the upload, the full pathname of the file is displayed behind the Open File link.
You can only perform this action if the file is checked out.
Open File
Opens the file, depending on the file extension, in the corresponding default editor.
If the file is not checked out, you are prompted to check out the file. If you do not check out the file,
you can open the file but any changes you make in the editor are lost.
If no file location is displayed behind the Open File link, the file is downloaded before the editor starts.
Preview
This field shows a preview of the file.
For example:
• For a .xsd file, the XML content of the file is displayed.
• For an image file, such as a .gif file or a .jpg file, the corresponding image is displayed.
• Click to enlarge the image.
• Click to reduce the image.
• Click to view the image at its actual size. For large images, only the upper left part of the
image is displayed.
• Click to resize the preview image so that it fits exactly in the preview area.
These actions do not change the size of the image file, but only affect the preview image.
Note: To optimize performance, for text files, only the first couple of lines is displayed.
BFlow Editor
Use this editor to edit BFlow test scripts and test cases.
Before you can edit a BFlow test, you must create or import the test in LN Studio. See the Infor LN
BFlow Development Guide and the LN Studio online help.
General tab
This tab shows general information and contains a comment section.
General Information
Name
The name of the test.
The name has this format:
[package][module][filename].bflow in case of test script
[package][module][filename].bfcase in case of test case
Description
The description of the test.
Domain
The domain of the test. Only applicable for test cases.
Owner
The owner of the test. Only applicable for test cases.
Company
The company to start the test in. Only applicable for test cases.
Logistic Company
The logistic company to start the test in. Only applicable for test cases.
Financial Company
The financial company to start the test in. Only applicable for test cases.
Comment
Comment
Shows the comment section of the test.
Variables tab
Use this tab to add, modify, or delete variables.
Variables
Name
The name of the variable.
Type
The variable type such as Long or String.
Domain
The LN domain name such as tcyesno.
Scope
The scope of the variable. For example, In or Internal.
Initialized
Indicates whether the variable is initialized.
Initial Value
The initial value of the variable.
Description
The description of the variable.
Buttons
Add
Adds a variable in the grid.
Up
Moves the selected variable one row up in the grid.
Down
Moves the selected variable one row down in the grid.
Remove
Removes the selected variable from the grid.
Actions tab
Use this tab to add, modify, or delete test actions.
XML tab
Use this tab to edit the XML source code of the test directly. The XML must be valid before you can
save the test or switch to other tabs.
Overview tab
Use this tab to maintain business objects.
General Information
Business Object
The code that identifies the business object.
Label Code
The name of the label that contains the business object's description.
To edit or view the label in the Label Editor, click the hyperlink.
Description
The business object's description.
Allowed values:
This field is read-only, because the description originates from a label. To edit this label, click Label
Code.
Interface Project
The business object's interface implementation.
To switch to the Integration perspective and open the implementation in the Interface Implementation
editor, click the hyperlink.
Linked Libraries
This list contains the records of all libraries linked to the business object.
To sort the libraries by position, name, or description, click the corresponding column header. When
you sort by position, the sort mode is always ascending. When you sort by name or description, click
the involved column header to toggle between ascending and descending sort mode.
Domain Editor
Use this editor to maintain the properties of a domain.
Overview tab
Use this tab to specify the general properties of a domain.
General Information
Domain
The unique name of the domain.
A domain is identified by the unique combination of package code and domain code.
Allowed values:
This field is read-only.
You can only specify a domain name when you create a new domain. The domain name is an ASCII
text and must start with the code of the package for which the domain is used. After you created a
new domain, you cannot change its name.
A good practice is to always include the module code in the domain name. When you fill in a domain
name, we recommend the following format:
<package code><module code>.<domain code>
For example, tdsls.hdst is the name of the Header Status domain of the Sales Control module
(sls) of the Distribution package (td).
Description
The description of the domain.
Allowed values:
An ASCII text with a maximum length of 60 characters.
Data Type
The data type of the domain. This is the internal representation of data.
For example:
• string
• long
• double
• date
• UTC Date Time
Allowed values:
Note: The data type you selected for the domain will largely determine which fields you can fill in for
this domain and how you can specify these fields.
Runtime
Convert: Convert Domain to Runtime
This link is only available if the domain is checked in.
Click this link to convert domains and tables to the runtime data dictionary:
• For LN servers with Enterprise Server 10.5 or later, the Convert to Runtime dialog box is started.
• For LN servers with older Enterprise Server versions, the Convert to Runtime Data Dictionary
(ttadv5215m000) session is started.
You must be authorized to run this session.
Note: In the Convert to Runtime dialog box or the Convert to Runtime Data Dictionary
(ttadv5215m000) session, select the package combination that contains the Project VRC of your
current Software Project. Domains and tables in all Activities linked to the software project are converted.
Therefore, not only domains in your own Activity VRC are converted, but changed domains in activity
VRCs of other developers are also converted.
Read the online help of the dialog box or session before you start the conversion.
Formatting
Length
The length in characters, if the data type of the domain is a (multi-byte) string, or the default display
length for data types UTC Date Time, Date, Enumerated and Set. For the latter two data types, the
length defines the maximum number of characters of the descriptions of the Enumerated or Set data
type. Any description with more characters will simply be cut off at the specified length.
Allowed values:
A whole number in the range 1 – 999.
Allowed values:
Note: You can use this field for the following data types:
• String
• Multibyte String
• Enumerated
• Set
• Date
• UTC Date/Time
The field does not apply to other data types.
Alignment
The alignment method for various components:
• (multi-byte) strings
• enumerated values
• sets
• dates
Allowed values:
Allowed values:
Not
Note: You can use this field for the following data types:
• String
• Multibyte String
• Date
• UTC Date/Time
For other data types, the field is automatically set to value ‘Not Applicable’.
Conversion
Conversion method for strings. You can convert text strings into upper or lower case.
Allowed values:
Allowed values:
Not
Note: Only use this field for String and Multibyte String data types. For other data types, the field is
automatically set to value ‘Not Applicable’.
Internal Format
This field indicates how a number, entered in a form input field with the string data type, must be
internally formatted.
For example, if number 37 must be stored as 00000037, use the format 99999999.
Note: Only use this field for String data types. The field does not apply to other data types.
Allowed values:
A formatting text string with a maximum length of 30 characters. Allowed characters are restricted to
the following set:
• -
• +
• *
• Z
• 9
• V
• ,
• :
Display Format
The display format used in forms and reports to display specific data.
Allowed values:
The value for the display format must be less than 30 characters. To specify a pre-defined display
format from the server, use the browse button and select a value from the select dialog box.
Note: You cannot use this field for data types Enumerated and Set.
Numeric Data
Digits Before Decimal
For numeric data types, the maximum number of digits before the decimal sign. This implies the
maximum number of digits for long, integer and byte data types.
Allowed values:
The value for this field is a whole positive number less than 100. For byte, integer and long data types,
the following maximum values apply.
Allowed values:
If the Display Format of this domain contains '%A', the default value of a double is 15.
Note: Only use this field for numeric data types:
• Byte
• Integer
• Long
• Float
• Double
For non-numeric data types, the field is automatically set to value 0.
Divide Factor
The factor by which the entry in a field is divided.
Divide Factor can be useful for fields containing amounts.
Example:
The Divide factor amounts to 100. When a user enters 25009 in the field for which this factor is set,
LN divides 25009 by 100 and displays 250.09.
Allowed values:
Rounding Method
The way in which a field with the float or double data type can be rounded.
Rounding takes place at the last digit as specified by the number of digits after the decimal point.
Example:
In the following examples, the number of digits after the decimal sign is one.
Allowed values:
• Round off
• Round off upwards
• Round off downwards
• Not Applicable
For an explanation of these rounding methods, see the previous example.
Allowed values:
Round off
Note: Only use this field for Float and Double data types. The field does not apply to other data types.
Validation
Illegal Characters
The illegal characters that cannot be entered in a form input field.
Allowed values:
All characters are allowed, with the exception that the characters ' " ^ \ must be preceded by a backslash
[\], for example \\ and \". Maximum length is 30.
Note: You cannot use this field for the following data types:
• Enumerated
• Set
• Date
• UTC Date/Time
• Text
The field can be used for all other data types.
If you define some characters as illegal, all other characters are legal, and vice-versa. Therefore, you
cannot use this field if a value for Legal Characters is filled in.
Legal Characters
The legal characters that can be entered in a form input field. If you do not specify any legal characters,
all characters are legal.
Example:
If only numbers can be entered in a field with string data type, the legal characters are specified as:
1234567890.
Allowed values:
All characters are allowed, with the exception that the characters ' " ^ \ must be preceded by a backslash
[\], for example \\ and \". Maximum length is 30.
Note: You cannot use this field for the following data types:
• Enumerated
• Set
• Date
• UTC Date/Time
• Text
The field can be used for all other data types.
If you define some characters as legal, all other characters are illegal, and vice-versa. Therefore, you
cannot use this field if a value for Illegal Characters is filled in.
Range
The range used to check the validity of the input. If you enter a value in a form input field outside the
specified range, LN produces a range message and will ask for input again.
For simple validation checks, you can use the following:
• The data type
• Legal and illegal characters
• The length of the field
• The number of digits before and after the decimal point
For more complicated validation checks, you need the range attribute.
Examples of restrictive ranges:
Allowed values:
The range can be an expression with evaluated value true (valid value) or false (invalid value) (true
<> 0, false = 0). Other variables can also be used in the expression. To test the current value in the
expression, use 2 dollar signs: $$
The following operators can be used (listed in order of decreasing precedence):
Note: You cannot use this field for data type Text. The field can be used for all other data types.
Range Message
The name of the message, including package code, which is issued if an entered value falls outside
the specified range.
Allowed values:
You can use the browse button and select a message name from the select dialog box. This dialog
box contains all messages available in the package of the domain. You can also enter an existing
message name.
• Constant
• Constant Name
• Description
• Label
In the Enum or Set Values table, you can add and remove constant records.
• To add a constant record to a domain, click Add and fill in the required fields. Specify a code and
a name. Alternatively, right-click in the table and, on the shortcut menu, select Add.
• To remove a constant record, right-click the record and, on the shortcut menu, select Remove.
Enum or Set Values
Constant
The constant number that represents the internal enumerated field value. This number determines
the sequence in which the enum descriptions are displayed at runtime.
If a table index includes/consists of an enumerate field, the constant determines the sequence of
records according to the index.
You can also use the constant number for greater than and less than expressions in scripts. For
example, domain tryesno has value yes, with constant number 1, and value no, with constant
number 2. For this domain, the expression tryesno.no > tryesno.yes is true.
Allowed values:
Whole number in the range 1 -255.
Allowed values:
The highest present constant number raised by 1.
Constant Name
The constant name combined with the package code and domain code. This is used to refer to an
enumerated constant in scripts or expressions on forms and reports.
Example:
Consider package code ti (Manufacturing), domain code yesno and constant name yes. To refer
to this constant in a form field with domain code tiyesno, use the expression tiyesno.yes.
Allowed values:
A text string that starts with an alphabetic character. Spaces are only allowed at the end of the string.
Description
The content description of the label. This description is used as a constant value of enumerated or
set data types.
Allowed values:
This field is read-only for existing constant records, because the description is a property of the Label.
You can modify the description text in the label editor.
You can specify a constant description in the domain editor when you add a new constant record. This
description is an ASCII text with a maximum label length of 70 characters.
Label
The label name for the Description of the enumerated or set constant.
When hovering above the label name, the domain editor shows a hyperlink. Use this hyperlink to edit
the label with the enumerate description in the label editor.
Allowed values:
This field is read-only and is automatically generated when you save the domain.
The generated label name is a concatenation of package code, module code, domain code and
constant number. For example:
ttadv.cmpt0001
Note: The label is generated when you save the domain and can be modified in the label editor.
Step Size
A number used to automatically generate subsequent constant values.
For example, if the first constant value is 10, and the step size is 10, the second and third constant
number are 20 and 30. This step size enables you to insert in-between constant values later.
Allowed values:
10
Documentation tab
Use this tab to enter the domain's release notes and technical documentation.
Release Notes
Use this field to specify the release notes of the domain.
Technical Documentation
Use this field to specify the technical documentation of the domain.
Function Editor
Use this editor to maintain the properties of a function.
A function is a self-contained software routine that can perform a task for the program in which the
function is written, or for another program. With the #include statement, you can include a function in
a program script. It can be useful to define a function and use it in more than one program script.
Overview tab
Use this tab to specify the properties of a function.
General Information
Function
The unique function name, which identifies the function.
A function name consists of a combination of these codes:
• package
• module
• function
The function name forms the identifying attribute of the function and is used in a program script as an
include statement.
Allowed values:
This field is read-only.
You can only specify a function name when you create a new function. Afterwards, you cannot change
this name.
When you create a new function, enter the full name of the function, which is a combination of the
package code, the module code and the function code, for example: ttaad0001.
Illegal characters are: $ \ / ~ &
Example:
The Application Administration module of the LN Tools package includes the function Convert User
to Runtime DD.
Description
The description of the function.
Allowed values:
An ASCII text with a maximum length of 60 characters.
Source tab
Use this tab to edit the function's source code. The tab consists of a script editor, which forms an
integral part of the function editor.
See Script Editor on page 264.
Documentation tab
Use this tab to enter the function's release notes and technical documentation.
Release Notes
Use this field to specify the release notes of the function.
Technical Documentation
Use this field to specify the technical documentation of the function.
Label Editor
Use this editor to maintain the properties of a label.
Labels are used instead of language-dependent text in these LN components:
• Forms
• Reports
• Domains
• Menus
Labels can also be used in LN Workbenches.
A label consists of a name and a content description. Use the label name as a reference to the label
description. The description of a label can differ by language, but the label name remains the same for
all languages.
You can specify a label description for each label code. This is the label text you can edit and translate.
You can define different variants for a label. Therefore, a label can have a different description in a
different context or with a different length or height.
The label editor automatically calculates the length and height of a label description. The length is the
number of characters of the description. The height is the number of lines of the description.
Note: The Languages property of the application, assigned to the current software development
project, determines the primary language of a label. It determines whether you can specify secondary
languages and which languages are used as secondary languages.
For more information on the application properties, see the Create a new Application on page 129 dialog
box.
Overview tab
Use this tab to view the label name and to maintain all label variants in the primary language, such as
English.
General Information
Label
The name of the label used as identification code.
Allowed values:
This field is read-only.
You can only specify the label name when you create a new label. The name must start with the code
of the package for which the label is defined.
After a label is created, you cannot change its name.
Description
The description of the label, which corresponds with the longest variant description in the primary
language.
Allowed values:
This field is read-only.
The value of this field corresponds with the value of the description field of the primary language variant
with the longest description. This field is a read-only copy of this variant description.
A label must have at least one variant. Labels without a variant cannot be saved.
When you create a new variant, specify the Context and Description of the variant. When you specify
the variant Description, you cannot enter a text longer than 70 characters or a text that ends with a
blank space.
When you enter the variant Context, select a value from a drop-down list. You can choose one of the
following context values:
• General use
• Form Commands
• Cascading Item on Button
For more information on the Context and Description fields of a variant, see the Variant Properties
field group.
Note: When you create a new label in the Create New Label wizard, you can specify an External
Use context. These External Use labels cannot possess multiple variants. Therefore, the Add
button is disabled for these labels.
Variant Properties
Context
The context of the label variant selected in the All Variants in field. This indicates how the variant is
used in forms, reports, menus, and so on.
Allowed values:
Note: When you add a new variant to a label, you can choose between three contexts:
• General use
• Form Commands
• Cascading Item on Button
However, the label variants not created with the label editor, such as session description labels, can
show many other context values.
These other context values are used for labels that are generated automatically.
For example:
• When you create a new enumeration for an Enumerated domain, LN Studio generates a label
with the Enumerates context.
• When you create a new session, table or report, LN Studio generates a label with the Session,
Table or Report Description context.
Example:
When you create a session with session code tezzzrx and session description MyNewSession, LN
Studio generates a label called tezzzrx001 with label description MyNewSession.
Description
The description of the label variant selected in the All Variants in field.
This is the text that appears where this label variant is used in the following:
• forms
• reports
• menus
Allowed values:
An ASCII text with a maximum length of 70 characters.
Use a % sign to indicate the line break. If the description includes a line break, the height of the label
variant is automatically adjusted to a value greater than one. To include the % sign in the description,
type %%.
The maximum number of lines (height) is 3.
Example:
Perc.%[%%] Perc. 2 5
[%]
Note: The description of a label variant automatically sets the length, height and search argument of
this label variant:
• The variant Length corresponds with the number of characters in the description's longest line of
text.
• The variant Height corresponds with the number of text lines in the description.
• The variant Search Argument corresponds with the first 10 characters of the description.
Length
The length of the label variant selected in the All Variants in field. This is the maximum number of
characters on a text line of the variant description.
Allowed values:
This field is read-only.
The length value is generated by the label editor. The length is automatically adjusted to a changed
label variant description. For examples of how the length of a label variant is derived from the
description, see the Description field.
Height
The height of the label variant selected in the All Variants in field. This is the maximum number of
text lines in the variant description.
Allowed values:
This field is read-only.
The height value is generated by the label editor and corresponds with the number of text lines in the
variant's Description. The height is the number of % signs in the description text raised by one, with
an exception for the "%%" string, which you use to include the % sign in the label text displayed to the
user.
The height is automatically adjusted to a changed variant description. For examples of how the height
of a label variant is derived from the description, see the Description field.
Search Argument
The search argument of the label variant selected in the All Variants in field.
Allowed values:
Expired
If this check box is selected, the label variant selected in the All Variants in field has expired.
Expired label variants cannot be used in the release (VRC) of the application of the current development
project or any releases derived from it.
When all label variants are expired, the label becomes expired.
Note: If only one variant exists, this check box is disabled. In that case, you can expire the label in
the Activity Explorer.
Translation tab
Use this tab to view and maintain all label variants in the secondary languages, which represent
translations of the primary language label variants on the Overview tab.
The Translation tab is only available if secondary languages are defined for the application. The
properties of the application of the current software development project determine whether a label
has secondary languages and which secondary languages are used.
For more information on the application properties, see the Create a new Application on page 129 dialog
box.
All Variants in (primary language)
Context / Description
List of all label variants in the primary language. The list is identical to the All Variants in (primary
language) list on the Overview tab.
To copy a label variant from the primary language to a new label variant in a secondary language:
1 In the Software Language field, select a secondary language.
2 In the All Variants in (primary language) list, select a label.
3 Click Copy. A new label appears in the All Variants in Software Language list.
You can now change the properties of the new variant in the Variant Properties field group.
Allowed values:
This field is read-only.
Context / Description
A list of all label variants in the selected secondary language.
The properties of the label variant you select in this field are displayed in the Variant Properties field
group on this tab. Some properties are read-only, while some are editable.
In the list, you can add and remove label variants, as described for the All Variants in field on the
Overview tab. You can copy a label variant in the primary language as a new label variant in the
secondary language. To do this, use the Copy command of the All Variants in field on this Translation
tab.
Variant Properties
Context / Description / Length / etc.
See Variant Properties on the Overview tab.
Documentation tab
Use this tab to enter documentation on the label.
Technical Documentation
Use this field to specify the technical documentation of the label.
Using labels
Using labels instead of plain text has these advantages:
• Improved standardization: a single label is used by all software components
• Easier software maintenance: the layout of forms, reports, and menus becomes
language-independent
• Easy and fast translation: the label description is only translated once
• Enhanced customization facilities: changes in the central label file have an effect on all the packages
• The alignment of a label (left or right) on multi-occurrence forms and reports is linked to the alignment
of the associated table field
For example, using labels makes it possible to display and print the text in the correct language on
these components:
• Forms
• Reports
• Menus
For each label, specify this information:
• The label code, which identifies the label.
• The label variant descriptions which can be translated into different languages.
You can specify multiple descriptions with different lengths or heights for a label.
Library Editor
Use this editor to maintain the properties of a library.
A library is a collection of files, programs or subroutines that is used to carry out specific tasks for other
libraries, program scripts or sessions of LN applications. A dynamic link library (DLL) can be linked as
a function call to a program or session at runtime.
LN distinguishes three types of libraries, all of which are DLL libraries:
• General Library DLL
• Integration DLL
• Business Object Layer DLL
Overview tab
Use this tab to specify the properties of a library.
General Information
Library
The unique name of the library.
It consists of a combination of the following:
• package code
• module code
• library code
Allowed values:
An ASCII text with a maximum length of 14 characters that conforms to the following format:
<package code><module code><library code>
Example:
Description
The description of the library, such as "Validate Financial Calendar" or "Calculate Tax."
Allowed values:
An ASCII text with a maximum length of 60 characters.
Library Type
The library type. To enter a value, select a library type from the drop-down list.
Allowed values:
The following library types are used:
Compile Flags
The compile flag.
In (3GL and 4GL) sources you can use compile flags. This is in order to compile part of the source
depending on certain conditions and is called conditional compiling. For more information on conditional
compiling and other compile options, see the "Preprocessor" and "Compiler" sections of the Infor ES
Programmer's Guide (Infor Support Portal KB 22924522).
Allowed values:
Infor 3GL or Infor 4GL source code with a maximum length of 200 characters.
Example:
You can specify several compile flags separated by a space " ". For example:
Note: The preprocessor only works during compilation of a 3GL source. This is because the standard
generator std_gen6.2 does not have a preprocessor pass. Therefore, you cannot use 4GL events in
a #if, #ifdef or #ifndef.
For example, the "set.synchronized.dialog" function was changed in TIV 1000. Therefore objects in
which this function is used, show different behavior for different TIVs:
• If the object's TIV is less than 1000, a synchronized dialog is started when a record is inserted or
duplicated in an editable grid.
• If the object's TIV is 1000, no synchronized dialog is started when a record is inserted or duplicated:
the new record is entered directly in the grid.
For details about the TIV, see the Infor ES Programmer's Guide (Infor Support Portal KB 22924522).
Allowed values:
Numeric value (max. 9999).
Keywords
Search Key 1
The first search key.
Allowed values:
An ASCII text with a maximum length of 20 characters.
Search Key 2
The second search key.
Allowed values:
An ASCII text with a maximum length of 20 characters.
Search Key 3
The third search key.
Allowed values:
An ASCII text with a maximum length of 20 characters.
Linked Libraries
This list contains the records of all libraries linked to the current library.
Sorting
• To sort the libraries by position, name, or description, click the corresponding column header.
• When you sort by position, the sort mode is always ascending. When you sort by name or
description, click the involved column header to toggle between ascending and descending sort
mode.
• When you sort by name or description, the Up and Down commands are disabled.
Note: To edit a library, click the icon behind the library name.
Pos
The library sequence number (Position). This field indicates the linking order of the libraries.
This field is read-only. It is filled automatically when you link a library.
Name
The name of the library.
Allowed values:
To specify this attribute, press CTRL+SPACE and select a library from the select dialog box.
Description
The description of the library.
Allowed values:
This field is read-only. LN Studio automatically fills in the library description after you specified the
Name of the library.
License
Product ID Source
The product ID for which a license is needed to compile the object. If the field is empty, no license is
needed to compile the object.
To enter a product ID, click Browse and select an ID from the select dialog box.
Product ID Object
The product ID for which a license is needed to run the object. If the field is empty, no license is needed
to run the object.
To enter a product ID, click Browse and select an ID from the select dialog box.
Source tab
Use this tab to edit the library's source code. The tab consists of a script editor, which forms an integral
part of the library editor.
See Script Editor on page 264.
Documentation tab
Use this tab to enter the library's release notes and technical documentation.
Release Notes
Use this field to specify the release notes of the library.
Technical Documentation
Use this field to specify the technical documentation of the library.
This optional tab is displayed depending on the multipage editor preferences. See Multipage Editors
on page 144.
Menu Editor
Use the Menu Editor to define and maintain menus.
An LN menu is a list of options from which a user can perform a desired action, such as starting a
session, another menu, and a query.
Overview tab
Use this tab to specify the following:
General Informa- The general properties of a menu, such as the name and description.
tion
Menu entries These are the options a user can start from the menu.
The All Menu Entries list contains all options the user can start from the menu,
such as sessions, other menus, and queries.
In the All Menu Entries list, you can add and remove menu entries:
• To add a menu entry, click Add and specify the properties for the new entry
in the grid.
• To remove an entry, right-click the entry and, on the shortcut menu, select
Remove.
The order of the entry records in the table corresponds with the order of the entries
on the menu. To determine the menu entry sequence, click Up or Down to move
the entry records up or down the table.
General Information
Menu
The name of the menu.
This includes the following:
• package code
• module code
• menu identification code
Allowed values:
This field is read-only.
You can only specify the name of a menu when you create a new menu. After a menu is created, you
cannot modify its name.
Label Name
The code of the label that contains the menu description.
To modify the description, click the hyperlink to open the displayed label in the Label Editor.
Allowed values:
This field is read-only. You can only set the label name when you create a new menu. You cannot
change this name afterwards.
Description
The menu description, as displayed in the user interface.
Allowed values:
This field is read-only, because the description originates from a label. To edit this label, click Label
Name.
Code
Code of the menu entry. This is the code of the session, menu, shell program, or query activated when
you select this menu option. The type of code used depends on the value specified for the Type field.
Note:
• If the menu entry type is Session, Menu, or Query, press CTRL+SPACE and select a component
from the select dialog box. Click the icon behind the code to open the component in the
corresponding editor.
• If the menu entry type is Shell Program, manually enter the program name.
Allowed values:
An ASCII text with a maximum length determined by the value of the Entry Type field.
Description Linked
If you select a session, menu, or query, the corresponding description is automatically placed in the
Description field.
If this check box is selected, the description is read-only.
Description
The description of the menu entry, as displayed in the menu.
This Description field only applies if the Description Linked check box is cleared and the Label
Code field is not filled in. The field is disabled if these conditions are not satisfied.
Note: If you enter the description manually, LN Studio automatically stores the description in a label.
The code of this label is displayed in the Label field.
Allowed values:
ASCII text of less than 60 characters.
Label
The code of the label that contains the menu entry description. Click the icon behind the label code
to open the label in the Label Editor.
To select a label, press CTRL+SPACE and select a label from the select dialog box.
The Label field only applies if the Description Linked check box is cleared.
Allowed values:
A code of a label that exists on the LN server.
Process Info
This field contains information that is passed to the program activated by the menu.
If the program is a session, this information can be retrieved in the session with the procesinfo variable.
If the program is a shell program, the information is used as the argument of the program.
This field only applies to menu entries of type Session or Shell Program. This field is disabled for
all other menu entry types.
Allowed values:
ASCII text of less than 50 characters.
Active
If this check box is selected, the menu entry is active. Therefore, the menu entry is visible on the menu.
If this check box is cleared, the menu entry is disabled. Therefore, the menu entry is not visible on the
menu.
Filter Library
The library/dal to determine whether the menu item, session, or complete menu tree, must be hidden
based on the parameter settings of the company of the user. Zooming starts a session that only shows
libraries/dals. To open the filter library in the Library Editor, click the icon behind the library name.
Note: This setting has only effect for users that use LN UI. This setting is only available if it is supported
by the LN server.
Filter Function
The name of the function in the Filter Library that must be called, without the () at the end of the
function. This function has no parameters and must return true or false.
If the function returns false when called without parameters, the menu entry is not displayed in LN UI
. In this way you can filter sessions that depend on parameter settings.
Note: This setting has only effect for users that use LN UI. This setting is only available if it is supported
by the LN server.
Hidden
If this check box is selected, the menu item is not displayed in the menu at runtime. However, in LN
UI users can make the menu visible through the Personalize Menu command. Administrators can
centrally maintain these personalizations through the Overview Menu Personalizations
(ttadv9505m000) session.
Note: This setting has only effect for users that use LN UI. This setting is only available if it is supported
by the LN server.
Preview tab
This tab shows a preview of the menu.
Documentation tab
Use this tab to enter the menu's release notes and technical documentation.
Release Notes
Use this field to specify the release notes of the menu.
Technical Documentation
Use this field to specify the technical documentation of the menu.
Message Editor
Use this editor to maintain the messages displayed to the user.
LN messages are language-dependent software components used to show situation-dependent
information to the user. They allow you to customize dialog messages.
Message codes can be included in program scripts and can be linked to these components:
• Domains
• Tables
• Table fields
• Form fields
• And so on
For each message, you can specify this information:
• The unique message code. This identifies the message across all languages.
• The message type, such as "Warning", "Information", or "Critical".
• The message. This is the message text which you can edit and translate. It can contain codes that
are substituted when the message is displayed. For details on substitution symbols, see the
description of the sprintf$() function in the Infor ES Programmer's Guide (Infor Support Portal
KB 22924522).
Note: The properties of the application assigned to the current software development project determine
the following:
• the primary language of a message
• whether you can specify secondary languages
• which languages are used as secondary languages
For more information on the application properties, see the Create a new Application on page 129 dialog
box.
If an application does not have secondary languages, the message editor will not display the translation
fields.
Overview tab
Use this tab to view and maintain the message properties.
General Information
Message
The unique message name which identifies the message.
Allowed values:
This field is read-only.
You can only specify the message name when you create a new message. The message is identified
by the unique combination of the package code and the message code. So, the entire message name
you enter in the Message field must start with the code of the package for which the message is
defined followed by a code for the specific message.
After a message is created, you cannot change its code.
For details on substitution symbols, see the description of the sprintf$ function in the Infor ES
Programmer's Guide (Infor Support Portal KB 22924522).
Message Type
The message type indicates a categorization of the messages.
Allowed values:
To specify a value for this field, select one of the following message types:
Information All goes fine but there is something you may want
to know.
Warning Something went wrong, but the process is still
running.
Critical A fatal error occurred and the process is aborted.
Help Text
If this check box is selected, a help text is linked to this message.
Translation
Target Software Language
Select a language for input of translation. You can only select a secondary language that is not already
used for a translation.
To add a new message translation to the Translations field, select a target software language. Click
Copy and translate the message into the selected language.
Note: Selecting a target software language enables the Copy button.
Allowed values:
To specify a value for this field, select a language from the drop-down list. This list contains all the
secondary languages of the application that are not already used for a translation in the Translations
field.
Software Language
The software language in which the message text is translated.
Allowed values:
This field is read-only.
The language used for the translation is one of the secondary software languages of the application.
You can only specify this software language when you create a new message translation, see Target
Software Language.
Description
The translated message text.
Allowed values:
A multi-byte text with a maximum length of 132 characters.
The message can contain codes that are substituted when the message is displayed. This table shows
some examples:
For details on substitution symbols, see the description of the sprintf$ function in the Infor ES
Programmer's Guide (Infor Support Portal KB 22924522).
Messages
Messages are language-dependent software components that allow you to customize dialog messages.
For each message, you can specify this information:
• The unique message name that identifies the message across all languages.
• The message type, such as "Warning", "Information", or "Critical".
• The message. This is the message text you can edit and translate. It can contain codes that are
substituted when the message is displayed. For details on substitution symbols, see the description
of the sprintf$() function in the Infor ES Programmer's Guide (Infor Support Portal KB 22924522).
This table shows a sample message:
Messages are used in a variety of places within the application. You can use messages in these
scenarios:
• To replace the default reference error message on table definitions
• Within program scripts and libraries
• To set error messages from a DAL
• As the contents of a form field using the form.text$ function
If a message is produced while a session is executing, a dialog box is displayed. Click OK to continue.
If the session is running in a job, the message is logged in the job history messages.
Creating messages
To create messages, use the Create a New Infor LN Software Component wizard. To start this
wizard, select File > New > Infor LN Component.
For more information, see:
• The LN Web Help
• The Message Handling subtopic. This is located in the Functions topic in the Infor ES Programmer's
Guide (Infor Support Portal KB 22924522)
Question Editor
Use this editor to maintain the questions to which the user must respond.
LN questions are language independent software components. They are used to ask questions to
which the user must respond. At runtime, the questions are displayed in the language specified for the
current user.
For each question, you can specify the following:
• The unique question code that identifies the question across all languages.
• The question type, such as a "Warning".
• The question. This is the text of the question you can edit and translate.
• The answers to the question to which the system must respond.
Note: The properties of the application assigned to the current software development project determine
the primary language of a question and whether you can specify secondary languages. The properties
also specify which languages are used as secondary languages.
For more information on the application properties, see the Create a new Application dialog box.
If an application does not have secondary languages, the question editor will not display the translation
fields.
Overview tab
Use this tab to view and maintain the question properties.
General Information
Question
The name of the question, which uniquely identifies the question.
Allowed values:
This field is read-only.
You can only specify the question name when you create a new question. A question is uniquely
identified by the combination of package code and question code. So, the entire question name you
enter in the Question field must start with the code of the package for which the question is defined
followed by a code for the specific question.
After a question is created, you cannot change its name anymore.
For details on substitution symbols, see the description of the sprintf$ function in the Infor ES
Programmer's Guide (Infor Support Portal KB 22924522).
Question Type
The question type indicates a categorization of the questions.
Allowed values:
To specify a value for this field, select one of the following question types:
Information All goes fine but there is something you may want
to know.
Warning Something went wrong, but the process is still
running.
Critical A fatal error occurred and the process is aborted.
Domain
The domain that determines the possible answers to the question.
Note: Click the Domain hyperlink to open the domain in the Domain Editor.
Allowed values:
Click Browse to select a domain. The domain must have the data type Enumerated.
Example:
A question is linked to the tcyesno domain. The domain consists of the enumerate constants Yes and
No. The question is displayed with a Yes button and a No button.
Default Answer
The default answer to the question.
Allowed values:
Select one of the enumerate constants belonging to the specified domain.
Help Text
If this check box is selected, a help text is linked to this question.
Translation
Target Software Language
Select the language for input of a translation. You can only select a secondary language of the
application not already used for a translation.
To add a new translation of a question to the Translations field, select a target software language.
Click Copy and translate the question into the selected language.
Allowed values:
To specify a value for this field, select a language from the drop-down list. This list contains all the
secondary languages of the application not already used for a translation in the Translations field.
Software Language
The language into which the question text is translated.
Allowed values:
This field is read-only.
The language used for the translation is one of the secondary software languages of the application.
You can only specify this software language when you create a new translation for the question, see
Target Software Language.
Description
The translated question.
Allowed values:
A multi-byte text with a maximum length of 132 characters.
The question can contain codes that are substituted when the question is displayed. This table shows
some examples:
For details on substitution symbols, see the description of the sprintf$ function in the Infor ES
Programmer's Guide (Infor Support Portal KB 22924522).
Questions
Questions are language independent software components used to ask questions to which the user
must respond. At runtime, the questions are displayed in the language specified for the current user.
For example, if you change the name of an employee in the Employees - General (tccom0101m000)
session, this question is displayed: Rebuild Search key? You must respond by clicking Yes or
No.
For each question, you can specify this information:
• The unique question name that identifies the question across all languages.
• The question type, such as "Warning".
• The question. This is the question text as it is shown when activated. The question text can contain
codes that are substituted when the question is displayed. For details on substitution symbols, see
the description of the sprintf$() function in the Infor ES Programmer's Guide (Infor Support Portal
KB 22924522).
• The domain belonging to the question, and the default answer. The domain determines the possible
answers to the question. The domain must have the Enumerated data type.
This table shows a sample question:
Creating questions
To create questions, use the Create a New Infor LN Software Component wizard. To start this wizard,
select File > New > Infor LN Component.
You can use questions within program scripts and libraries using the ask.enum() function.
For details, see:
• Creating a question on page 105
• The description of the ask.enum() function in the Infor ES Programmer's Guide (Infor Support
Portal KB 22924522)
Report Editor
Use this editor to maintain the properties of a report.
LN reports are used to output data from the database to a variety of devices, such as printers, displays,
and files. One or more LN reports must be linked to an LN print session or to an LN SQL Query. The
print session, or SQL Query, reads the data from the Database tables and the data is printed by the
Report objects.
The contents and layouts of reports are defined in the data dictionary. You can link a report script to a
report. In a report script, you can program actions you want to be performed at particular stages of the
report execution. For example, you can create a script to perform calculations on the report data or to
read records from related tables not automatically available to the report.
You program report scripts in the same way as you program 4GL program scripts, except report scripts
use different event sections and special functions. A report script consists of one or more event sections.
Here, you can program actions to be performed at particular states of execution of the report to which
the report script is linked. The statements programmed in a report script section consist of a combination
of 3GL language statements and report script functions.
The report editor consists of various tabs. Each tab is designed to view particular properties or to carry
out specific tasks.
Overview tab
Use this tab to perform the following tasks:
• Maintain general report information.
• Set various options to customize the page design of a report.
• Manage the libraries (DLLs) used in the report script. You can add or remove DLLs.
• View the debug script. In this script you can set breakpoints for the debug process.
General Information
Report
The identification code of the report.
A report is identified by the unique combination of package code, module code, and report code.
Example:
Label Name
The code of the report description label.
Allowed values:
This field is read-only and can only be set when you create a new report.
Note:
To open the label in the Label Editor, click the Label Name hyperlink.
Description
The description of the report. For example, "Help Topics Overview by Search Argument."
Allowed values:
This field is read-only, because the description originates from a label. To edit this label, click Label
Name.
Report Size
The default size of the report.
Allowed values:
To specify a value, click Browse and select a report size from the select dialog box. This dialog box
provides all predefined report sizes in the development repository of the connected LN server.
This table shows examples of available report sizes:
Mar- Bot-
Report Size gin Top tom Foot Length Width Font
A3-SMALL 0 1 2 -1 96 132 Double Wide
A3-SMALL-MANUAL 5 1 0 -1 -1 215 User Font 2
A4-LANDSCAPE 5 2 2 -1 -1 -1 Small (17.1
cpi)
A4-LARGE 5 2 2 -1 -1 80 Large (10 cpi)
A4-LARGE-MANU- 5 1 0 -1 -1 80 Large (10 cpi)
AL
A4-MIDDLE 0 2 2 -1 -1 94 Middle (12
cpi)
Mar- Bot-
Report Size gin Top tom Foot Length Width Font
A4-MIDDLE-MANU- 5 1 0 -1 -1 94 Middle (12
AL cpi)
A4-SMALL 0 2 2 -1 -1 132 Small (17.1
cpi)
A4-SMALL-MANUAL 5 1 0 -1 -1 132 Small (17.1
cpi)
For more information on the previous report size parameters, see the Size, Margin, and Font field
groups.
Note: The value you enter in this field will have influence on the report's Size, Margin, and Font fields.
For these fields, the selected report size determines the default values and enforces certain constraints.
Font
Report
The font of the report, which is a default for all report layouts. Fonts can be defined in the printer
information files of the used printer.
Allowed values:
To specify a value, select a font from the drop-down list. This list provides all predefined fonts in the
development repository of the connected LN server.
For example, you can choose one of the following fonts:
• Large (10 cpi)
• Small (17.1 cpi)
• Middle (12 cpi)
• Double Wide
• Near Letter Quality
• Italic
• Superscript
Size
Length
The total page length, including top and bottom margin. If this value is -1, the report can be printed on
paper types with different page length.
Allowed values:
Whole number in the range from 1 to 999.
Value 0 is not allowed.
Value -1 indicates the page length is dependent on the used paper type.
Width
The page width of the report excluding the left margin. The page width is used to set the default width
for new report layouts. It is used for calculating the number of columns of a multi-column layout.
Allowed values:
Whole number in the range from 1 to 255 (value 0 is not allowed).
Repeat Expression
An expression which is evaluated at runtime. The result is a numeric value, indicating the number of
times each layout on the report will be printed.
Example:
The result of the expression is 2. The report layout will be printed 2 times.
Allowed values:
The expression is an ASCII text with a maximum length of 30 characters.
If you use variables in the repeat expression, these variables must be input fields of the report. See
the Input Fields tab of the report editor.
Margin
Top
The number of blank lines at the top of each report page.
Allowed values:
Whole number in the range from 0 to 99.
Bottom
The number of blank lines printed at the bottom of each report page. These lines are printed just after
the footer section.
Allowed values:
Whole number in the range from 0 to 99.
Left
The number of blank spaces at the beginning of each report line. This left margin is added to the left
margin specified in your report script.
Allowed values:
Whole number in the range from 0 to 99.
Foot
The number of lines allocated for the footer. If the value is -1, the footer margin is calculated by the
report writer.
Note: When a number of different footer layouts of different sizes are executed on conditions at runtime,
it is difficult for the report writer to calculate the footer margin. In this situation, you have to specify a
number of lines for this margin.
Allowed values:
Whole number in the range from 1 to 99.
Value 0 is not allowed.
Value -1 indicates a calculated footer margin.
Linked Libraries
This list contains the records of all libraries linked to the report script of the current report.
Sorting
• To sort the libraries by position, name, or description, click the corresponding column header.
• When you sort by position, the sort mode is always ascending. When you sort by name or
description, click the involved column header to toggle between ascending and descending sort
mode.
• When you sort by name or description, the Up and Down commands are disabled.
Note: To edit a library, click the icon behind the library name.
Pos
The library sequence number (Position). This field indicates the linking order of the libraries.
This field is read-only. It is filled automatically when you link a library.
Name
The name of the library.
Allowed values:
To specify this attribute, press CTRL+SPACE and select a library from the select dialog box.
Description
The description of the library.
Allowed values:
This field is read-only. LN Studio automatically fills in the library description after you specified the
Name of the library.
Script
Create Script
Click this button to create an initial report script for the report.
To view or edit the new report script, close the Report Editor, start the Report Editor again, and go
to the Source tab.
Remove Script
Click this button to remove a report script from the report.
Sort mode
The icon in front of the field name indicates the sort mode of the input field. The following icons are
used:
No sorting
Ascending
Descending
Presorted
If at least one input field of a report has sort mode Ascending or Descending, the report will sort the
sent data before printing it. If you are sure the sent data is presorted, use sort mode Presorted, because
the sort by the report is time-consuming.
Sorted fields must have a Depth of 0 or 1, and non-sorted fields can have greater depth values. If you
change the Depth of a sorted field to a value greater than 1, the sort mode of the field automatically
changes to No sorting. This means that the sorted field becomes a non-sorted field.
Note: Only input variables, with sort mode unequal to No sorting, can be used as sorted fields in a
report layout of type Before.field or After.field.
Sort sequence
The position of a field in the Input Fields list determines the sort sequence. The field at the top of the
list has sort sequence 1, the second field has sort sequence 2, and so on.
When you print a report, the sent data is sorted first on the input field with sort sequence 1, then on
the input field with sort sequence 2, and so on.
For example, if you want to sort addresses first by city and then by street, place city at the top of the
list (sort sequence 1) and street on the second position in the list (sort sequence 2).
Depth
When the report input variable is an array, this field contains the depth of the array. If the report input
variable is a table field, you cannot change its depth.
If the depth of a field is greater than 1, the field cannot be a sorted field (with sort mode equal to
Ascending, Descending or Presorted).
Allowed values:
If the input field is a table field, the depth of the field is determined by the table definition. Therefore,
for table fields, you cannot change the depth of the field and the depth value is read-only.
If the input field is not a table field and defined as a variable in the report script, you can change its
depth to any whole number in the range of 0 - 99.
Note:
• You cannot change the depth of a table field.
• Field depths greater than 1 only apply to non-sorted input fields.
Therefore, for input fields with a depth greater than 1, the Sort Mode command is not available.
When you set the depth of a sorted field to a value greater than 1, the sort mode of this input field
automatically changes to No sorting, and the field becomes a non-sorted field.
Domain
The domain of the report input field.
Only applicable for non-table fields.
Allowed values:
For non-table fields, specify a Domain for the new input field. Select one of the domains available on
the current LN server. Press CTRL+SPACE and select a domain from the development repository.
For table fields, the Domain of the field is determined by the table definition. You cannot change this
field domain here.
Note: To edit the domain, click the icon behind the domain name.
Remove
Removes the selected input field record from the Input Fields list.
Up
Moves the selected input field up one position in the sort sequence (and in the Input Fields list). This
command only applies to input fields with a sort mode equal to Presorted, Descending, or Ascending.
Down
Moves the selected input field down one position in the sort sequence (and in the Input Fields list).
This command only applies to input fields with a sort mode equal to Presorted, Descending, or
Ascending.
Refresh
Refreshes the Input Fields list, so new fields are displayed at the appropriate positions and have the
correct sort sequence assigned. Use this command after you add or remove fields.
Layouts tab
Use this tab to display the layouts of a report. Through the layout shortcut menu commands, you can
perform these actions:
• Add or remove layouts.
• Edit the selected layout.
• Edit all layouts simultaneously.
• Copy a layout from another report.
• View the selected layout.
For more information on the Layout commands, see Layout shortcut menu on page 196.
The tab displays a list of all layouts, by their name, used by the report.
Here, you can remove, add/edit layouts, and copy a layout from another report. If you add a layout
type that already exists, ensure the sequence number of the new layout is different from sequence
number of the existing layouts.
For more information about previous layout operations, see Add and remove layouts on page 193.
The Layouts list displays the following layout attributes:
• Layout Type
• Field Name
• No
• Output Expression
Before.re- Layouts of this type are printed once at the beginning of the report. Use this layout to
port present information about the report. For example, the title page of the report.
Header Header layouts are printed at the top of every page.
Before.field You can define this layout for each input field for which a sort mode is defined. Each
time the value of the sorted input field changes, this layout is printed before the Detail
lines. In this way the records are grouped.
If a group of records spans more than one page, the Before.field layout is repeated at
the top of the new page (following the header).
To suppress automatic printing at the top of every page, use lattr.break as an
output expression. lattr.break is a predefined variable that contains the value 1
(true) when the sort field changes. When you use this output expression, the layout
is only printed when the input variable is changed.
To define multiple grouping levels in a report:
1 On the Input Fields tab, define a Sort Mode and a Sort Seq. for each input field
by which the records must be grouped.
2 Define a Before.field for each of these sort fields.
An example of multiple grouping levels is to group Purchase Order records first by
buyer, and then by buy-from business partner.
The order of sorting and grouping depends on the sort sequence that was specified.
This is the sequence of the fields in the Input Fields list.
Detail Detail layouts are used for the individual records included in the body of the report.
They are printed every time data is sent to the report.
After.field You can define this layout for each input field for which a Sort Mode is defined in the
Input Fields tab. Each time the value of the sorted input field changes, the layout is
printed after the detail lines. In this layout, the presorted input field still contains the
old value.
Among other things, this layout can be used to print totals for a particular group of
detail lines.
Footer Footer layouts are printed at the bottom of each page.
This layout is used to print this information:
• Titles
• Page numbers
• Page totals
After.report This layout is only printed at the end of the report, and after all other layouts. If this
layout does not fill a complete page, the footer layout is printed at the bottom of the
page, where the After.report layout(s) is printed.
Note: The Field Name field is applicable only if you select Before.field or After.field layouts.
Field Name
The name of an input field used to activate Before.field and After.field layouts. When the field value
changes, the layout is printed.
Note: Select a field from the list.
Allowed values:
You can only specify fields, which are defined as a sorted input field in the Input Fields tab of the
report editor.
The Field Name attribute only applies to Before.field and After.field layouts.
No.
The sequence number of the layout.
You can define more than one layout per Layout/Fieldname combination. The layouts of the same
Layout/Fieldname are printed in the order of the sequence number of the layouts.
There are two reasons to define more than 1 layout per Layout/Fieldname combination:
• The maximum size of a layout is 22 lines. If your layout needs more lines, make a second layout
of the same type with a higher sequence number.
• If a particular layout must be printed under certain conditions and another layout under other
conditions, define more than one layout with different output conditions.
• If the report already uses the previously specified layout type with the same sequence number,
LN Studio issues the following warning:
Record not unique.
Note: You can only add a layout type that already exists in the current report if the sequence number
of the new layout differs from that of the existing layouts.
Output Expression
An expression which is evaluated at runtime. The result is always true or false. The expression syntax
is equal to the 3GL syntax. When a layout must be printed, the system evaluates the output condition
of the layout. If the result is true, the layout is printed.
Example:
Allowed values:
The variables used in the output expression must be defined as input fields for the report.
Allowed values:
The default value is 1. Therefore, the expression is always true and LN will print the layout (if not
prevented by other controls).
Format
Different Font
The font in which the layout is printed.
Note: This field only applies to a report that can have different fonts. You can only specify another
font if you previously selected Fixed Device Font on the Overview tab of the Report Editor.
Allowed values:
These fonts can be defined in the printer information files of the printer being used.
To specify a value for this field, select a font from the drop-down list.
For example, you can choose one of these fonts:
• Large (10 cpi)
• Small (17.1 cpi)
Extra Need
This number indicates how many extra lines are required for the layout on the same page.
Before printing a layout, the report writer calculates the free space at the current page. If the layout
does not fit on the same page, the layout is printed on a new page. If the value of this field is 0, only
the number of lines of the layout itself is taken into account. With this field you can increase the number
of extra free lines for the layout. This can be useful if you want to print at least 2 detail layouts on the
same page together with a Before.field layout.
Note: This field does not apply to the Header and the Footer layout types.
Allowed values:
A whole number in the range 1-99.
Multi columns
This field indicates whether the report layout must be printed in more than one column or not.
The number of columns depends on the size of the layout and the paper width. Change the layout
size with the command <Esc>[S] in the report layout editor.
Allowed values:
Select one of the following values from the drop-down list:
• None
• Vertical Order
• Horizontal Order
New Page
If this check box is selected, the report layout is printed on a new page. Skipping to a new page always
causes printing of present Header, Footer and Before.field layout types. If the current line is at the top
of the page, the page command is ignored.
Note: This field does not apply to Header and Footer layouts.
Number of Columns
The number of characters or positions per line.
Allowed values:
This display field is read-only. This number is calculated automatically.
Number of Rows
The number of lines of the report layout.
Allowed values:
This display field is read-only. This number is calculated automatically.
Remove (Alt+DEL)
Removes the selected layout record from the Layouts grid.
See Add and remove layouts on page 193.
Refresh
Refreshes the list of layouts. Use this command after you added or removed a layout.
Copy
Copies the selected layouts. You can paste the copies in the list of layouts in the current report, or in
another report.
Paste
Pastes copies of report layouts in the list of layouts.
Edit Layout
Opens the selected layout in an ASCII oriented report layout editor (ottadvformedit) of LN. See the
online Help of LN.
Source tab
Use this tab to view and edit the source code of the report's report script. The tab consists of a script
editor, which forms an integral part of the report editor.
See Script Editor on page 264.
This tab is only displayed, if a report script is linked to the report.
Documentation tab
Use this tab to enter the report's release notes and technical documentation.
Release Notes
Use this field to specify the release notes of the report.
Technical Documentation
Use this field to specify the technical documentation of the report.
Session Editor
Use this editor to maintain the properties of a session.
Sessions are the basic functional elements of LN applications and used to perform actions or tasks.
Overview tab
Use this tab to specify the general properties for the session.
General Information
Session
The session name that uniquely identifies the session. The name must start with the package code
and module code to which the session belongs.
Label Code
The name of the label that contains the session's description.
To edit or view the label in the Label Editor, click the hyperlink.
Description
The session's description, displayed in the title bar of the session's window at runtime.
Allowed values:
This field is read-only, because the description originates from a label. To edit this label, click Label
Code.
Main Table
The session's main table.
Allowed values:
To select a main table, click Browse.
To edit or view the table in the Table Editor, click the hyperlink.
Session Status
The development status of the session.
Allowed values:
Synchronized Dialog
The name of an overview session's details session. The details session starts when a user double
clicks a record in the overview session.
Allowed values:
To select a details session, click Browse.
To edit or view the details session in the Session Editor, click the hyperlink.
Main Session
If this check box is selected, the session is a main session and can be placed in a browser menu.
If this check box is cleared, the session is a subsession and cannot be placed in a browser menu.
Users can only start the session through an overview session, or by a specific form command.
InContext Model
The name of the InContext model for this session.
To open the InContext model in the Session Model Editor, click the hyperlink.
If no InContext model exists for the session, click the hyperlink to generate a model. The Session
Model Editor is started.
Related topics:
• InContext Modeling on page 74
• Infor Enterprise Server InContext Modeling Development Guide
• The online help of the Session Model Editor
Session Behavior
Start Command
The session's Start Command.
Specify the default start command or one of the standard commands available to the session (see
Standard Commands field). Alternatively, indicate that the session will not have a start command.
Allowed values:
To specify this field, select a start command from the drop-down list. You can select on of the following
values:
Default Start Com- The session uses the default start command that is defined for the session
mand type concerned.
No Start Command No command is carried out when the user starts the session.
<Standard Com- One of the session's standard commands, as displayed in the Standard
mand> Commands field.
Session Type
Specifies the session's type.
Allowed values:
Maintain For overview and details sessions (when not started in read-only mode), in which
users can edit fields.
Update Type 4 session.
Print Type 4 session.
Display Maintain session type, except that users cannot edit fields in an overview session.
Users can edit fields in a details session.
Update + Update session that produces a report.
Print This session type behaves in the same way as a Print session, but at runtime the
Preview button is not generated.
Graph Type 4 session.
Conversion Type 4 session.
Window Type
Specifies the session's window type.
Allowed values:
Wizard A wizard window starts for the session. A wizard window usually consists
of a sequence of dialog boxes in which you must enter the required details,
and through which you can move forwards and backwards.
LN contains various sessions with a wizard window, for example:
• Export Language Dependent Data to XML - Wizard (ttadv8910m000)
and
• Import Language-Dependent Data from XML - Wizard
(ttadv8920m000)
Parameter A parameter window starts for the session.
LN contains various sessions with a parameter window, for example
• Infor Data Navigator Server - Parameters (ttgfd4124m000) and
• ART Parameters (ttaad6102s000)
Multi Main Table A Multi Main Table window starts for the session. Use this window type for
Multi Main Table (MMT) sessions.
An MMT session is a combination of multiple sessions, each having their
own main table, and is used to present data with a typical parent-child
structure. For example: a Sales Order and the related Sales Order Lines.
The window of an MMT session consists of 2 parts:
• The upper part shows parent information. For example, a Sales Order.
• The lower part shows the child information. For example, the related
Sales Order Lines.
Note: The child satellite sessions of a MMT session are maintained on the
Satellite Sessions tab of the session editor.
Standard Commands
Use this field to enable / disable the standard commands of a session.
Note: Click St. Command set to start a dialog where you can select a standard command set for the
session. The commands of the selected command set are displayed in this field.
The field displays a tree structure in which the nodes are represented by check boxes. The tree
structure lists all standard menus for sessions and the standard commands for each menu. Select or
clear check boxes to indicate which standard commands and associated menus are used.
The top level Menu check boxes denote the standard menus. Select a menu check box to select all
standard commands of this menu. Clear a menu check box to clear all commands of the menu. The
menu check box shows a greyed out check mark if some commands of the menu apply and some do
not.
The subordinate Command check boxes indicate which standard commands are used for the session.
For every standard command a check box is available. Select a check box to enable the command at
runtime. Clear a check box to disable the command at runtime. The command preferences set in this
field can be overruled by the program script, DAL script, or the user authorization settings.
Script tab
Use this tab to specify properties of the session's UI script and to link libraries to the session.
To edit or view the UI script, go to the Source tab.
General Information
Standard Script
The session's standard script type.
Allowed values:
Note:
• If you specify a standard script, you cannot specify a UI script.
• When you specify a non-standard script (value 'No'), the editor creates a session reference that
can be used as an alias for the session's script.
Allowed values:
No
UI Script
The name of the program script.
A script is identified by its unique name, which is the combination of the package code, the module
code, and a script code.
The name and description of the script generally corresponds with the name and description of the
session, with the exception of existing sessions with an anomalous name. When you add a script to
a script-less session, the session editor will automatically generate a script (skeleton) with a name
and description derived from the associated session.
Example:
Session reference
The session that owns the UI script of the current session. Click Browse and select the session from
the list.
UI script ownership
Each session, which does not use a standard script, is linked to a UI script. Each UI script is owned
by a session.
A UI script can be used by multiple sessions, but has only one owner. For example, sessions
tetst0101m000 and tetst0101s000 both use the UI script tetst0101. Session tetst0101m000 is the
owner of the script. For both sessions, the following properties apply:
Note:
• You can only edit a UI script via the session that owns the script.
• When you create a new session with a UI script, LN Studio automatically assigns the new session
as the owner of the new script.
• If a script is not owned by a session, use the Check and Convert UI-Script Ownership
(ttadv2930m000) session to assign a session as the owner of the script.
If a script is already owned by a session, you can use this session to assign a different session
as the owner of the script.
Script Type
Specifies the use or nature of the session's program script.
• You can only edit a UI script via the session that owns the script.
• When you create a new session with a UI script, LN Studio automatically assigns the new session
as the owner of the new script.
• If a script is not owned by a session, use the Check and Convert UI-Script Ownership
(ttadv2930m000) session to assign a session as the owner of the script.
If a script is already owned by a session, you can use this session to assign a different session
as the owner of the script.
This field only applies if the session does not use a standard script, which implies that the Standard
Script field is set to 'No'.
For sessions without standard scripts, you can use the following script types:
UI Script with Database han- A 4GL user interface script is used for display and maintain sessions.
dling The script is called by the 4GL engine (standard program) on certain
events.
UI Script for Print/Processing A 4GL user interface script is used for print and processing sessions.
Sessions The script is called by the 4GL engine (standard program) on certain
events.
3GL (Without 4GL Engine) A 3GL script has no interaction with the 4GL engine (standard pro-
gram). Therefore, all logic of the program must be included in this
script.
Examples of 3GL scripts are the well-known General Table
(ttaad4100/ttaad4500) sessions.
Compile Flags
The compile flag.
In (3GL and 4GL) sources, use compile flags to compile a part of the source depending on certain
conditions. This is called conditional compiling. For more information on conditional compiling and
other compile options, see the "Preprocessor" and "Compiler" sections of the Infor ES Programmer's
Guide (Infor Support Portal KB 22924522).
Example:
You can specify several compile flags separated by a space " ". For example:
Note: The preprocessor only works during compilation of a 3GL source. This is because the standard
generator std_gen6.2 does not have a preprocessor pass. Therefore, you cannot use 4GL events in
a #if, #ifdef or #ifndef.
Setting a TIV number for each object can result in the behavior of these objects being different. This
can occur for incompatible features executed with different versions of the porting set or the LN 4GL
Engine.
For example, the "set.synchronized.dialog" function was changed in TIV 1000. Therefore objects in
which this function is used, show different behavior for different TIVs:
• If the object's TIV is less than 1000, a synchronized dialog is started when a record is inserted or
duplicated in an editable grid.
• If the object's TIV is 1000, no synchronized dialog is started when a record is inserted or duplicated:
the new record is entered directly in the grid.
For details about the TIV, see the Infor ES Programmer's Guide (Infor Support Portal KB 22924522).
License
Product ID Source
The product ID for which a license is needed to compile the object. If the field is empty, no license is
needed to compile the object.
Note: This field only applies to internal Infor development systems. For other development environments,
this field is not available.
Allowed values:
To select a product ID, click Browse.
Product ID Object
The product ID for which a license is needed to run the object. If the field is empty, no license is needed
to run the object.
Note: This field only applies to internal Infor development systems. For other development environments,
this field is not available.
Allowed values:
To select a product ID, click Browse.
Linked Libraries
This list contains the records of all libraries linked to the UI script of the current session.
Sorting
• To sort the libraries by position, name, or description, click the corresponding column header.
• When you sort by position, the sort mode is always ascending. When you sort by name or
description, click the involved column header to toggle between ascending and descending sort
mode.
• When you sort by name or description, the Up and Down commands are disabled.
Note: To edit a library, click the icon behind the library name.
Pos
The library sequence number (Position). This field indicates the linking order of the libraries.
Name
The name of the library.
Allowed values:
To specify this attribute, press CTRL+SPACE and select a library from the select dialog box.
Description
The description of the library.
Allowed values:
This field is read-only. LN Studio automatically fills in the library description after you specified the
Name of the library.
Documentation
Release Notes
Use this field to specify the release notes of the UI script.
Technical Documentation
Use this field to specify the technical documentation of the UI script.
Source tab
Use this tab to view and edit the source code of the session's UI script. The tab consists of a script
editor, which forms an integral part of the session editor.
See Script Editor on page 264.
This tab is only displayed, if the source code of the UI script is available.
Label of Object
You can enter a label name in this field. At runtime, the label is visible in the pull-down menu of the
session if the session belongs to a multi-main table session.
Allowed values:
To specify this field, click Browse and select a label name from select dialog box.
Customization prohibited
If this check box is selected, , the customize form functionality in a details session and the customize
visibility, ordering and width of columns functionality in an overview session is disabled if the session
is started from Web UI.
Default Button
Command Type
Select the command type of the session's default button.
Allowed values:
Default Button
Select a command for the session's default command button. The default command button is the
command LN carries out when a user presses the Enter key whilst using the session. The default
command button is always the first button in the list of command buttons included on a session's form.
Allowed values:
No When a user chooses a new index, the view fields and session layout
do not change. Select this value if the session does not have a main
table.
Restart when view-fields The session restarts when a user chooses a new index, which alters
differ the view fields displayed above the session's grid.
Always restart The session restarts when a user chooses any new index.
Related topics:
• Dynamic index switching on page 229
• Dynamic session
• Integrated session
The check box is disabled if Dynamic Index Switching has value ‘No’.
Workflow / Web UI
Workflow Enabled
Use this field to specify whether the session can run in a Workflow environment.
Allowed values:
Select one of the following values from the drop-down list. Only three values of the list have a meaning,
as indicated in the table below.
Value Description
Not checked The session has not been checked in a Workflow environment
Single / Redoable The session has been checked in a Workflow environment and
executed successfully
Single / Not Redoable Not used
Container / Redoable Not used
Container / Not Redoable Not used
Single / Container / Redoable Not used
Single / Container/ Not Re- Not used
doable
Not Workflow Enabled The session has been checked in a Workflow environment but
failed
Web UI Enabled
If this check box is selected, you can successfully run this session in a Web UI environment.
Reports
List of all reports linked to the current session. The reports are listed by report group.
You can add or remove reports:
• To add a report to a session, click Add. The Select a Report dialog box starts. Click Browse and
choose a report. Then, specify a report group number and click OK.
See the online help of the Select a Report dialog box.
• To remove a report from a session, right-click the report and select Remove.
You can drag and drop reports from one report group to another.
To change the sequence of the reports in a report group, move them up or down the group list.
Charts
List of all charts linked to the current session. The charts are listed by chart group.
You can add or remove charts:
• To add a chart to a session, click Add. The Select a Chart dialog box starts. Click Browse and
choose a chart. Then, specify a chart group number and click OK.
See the online help of the Select a Chart dialog box.
• To remove a chart from a session, right-click the chart and, on the shortcut menu, select Remove.
You can drag and drop charts from one chart group to another.
To change the sequence of the charts in a chart group, move them up or down the group list.
Text Fields
List of all text fields of the current session (text fields are table fields of data type text).
You can add or remove text fields.
To add a text field to a session:
1 Click Add.
2 In the Name field in the grid, press CTRL+SPACE to start a dialog where you can select text fields.
3 Select the desired text field and click OK. The text field is displayed in the grid.
4 Complete one of these steps:
• Clear the Writable check box, so users can only read the text.
• Select the Writable check box, so users can also edit the text.
The text authorizations by text group, defined in the Text manager module, always have priority
over the authorizations you define in this grid. For example, a user is not authorized to change
texts in text group ABC. Therefore, even if this check box is selected, he cannot edit a text that
belongs to text group ABC.
To remove a text field from a session, right-click the text field and, on the shortcut menu, select Remove.
To change the sequence of the text fields, move them up or down the list. The sequence in the Session
editor corresponds with the order in which the text fields are displayed in the session at runtime.
This section shows the technical documentation and the release notes of the element selected in
the Overview section.
• Details
This section shows the details of the element selected in the Overview section.
Session Properties
Use this dialog box to maintain the properties of the session.
General
Overview Session
If this check box is selected, the form can be displayed as an overview session.
Details Session
If this check box is selected, the form can be displayed as a details session.
Rich view
This setting only applies to the view area of an overview session.
If this check box is selected, the form's view has more features. A rich view can contain group boxes,
field buttons, and group boxes beside each other.
If this check box is cleared, the form's view does not contain groups.
We recommend that you select this check box in these situations:
• If the layout of the form differs from what you expected.
• If you create a form for a new session.
Group Properties
General
Group Number
The group's number in the program script.
Label Code
Type or select the code of the label that you want to use as the group box header.
Group Description
The group's label as displayed on a group box.
Tab Description
The group's label as displayed on a tab.
Alignment
Default
If this check box is selected, the fields in the first column are positioned on the same x-position as
those fields in groups with the same alignment, or with Dependent alignment. For the subsequent
columns only the fields within a group are aligned with each other.
Independent
If this check box is selected, the fields in all columns of that group are aligned with each other. Other
groups are not taken into account
Options
Details Session
If this check box is selected, the group is displayed in the details session.
Overview Session
If this check box is selected, the group is displayed in the overview session.
Repeating Group
If this check box is selected, the group is displayed on all tabs where the parent group is displayed at
runtime. Only the first subgroup of a parent group can be repeated on the form's tabs. Ensure that the
repeating group has no subgroup.
Selection Group
If this check box is selected, the group is handled as a selection group. The group may become disabled
if this session is started from another session in which the user already made a selection. The
printing/processing is then performed based on the selection the user made in the parent. For this you
must do some programming. See the Infor ES Programmer's Guide (Infor Support Portal KB 22924522),
function sel.use.parent.selection. If this check box is selected, a new field is displayed in the
form definition. In this field the user indicates whether the selection of the parent or a selection range
is used. The new field is displayed above the group.
Note: This field is displayed if you edit a print or processing session.
Field Properties
General
Use this tab to specify the form field's general data.
Note: You can only change a domain for a non-table field.
Field Type
The form field type.
This table shows the available options:
Option Description
Label The field is only used as a label on the form.
Display Normal display field, input not allowed.
Input Normal input field.
Display on Demand Display is only possible on this form field if the
LN 4GL function display <field name> is
used in the program script.
Workflow Status Field Special field type reserved for the ION Workflow
integration. This type of field can only be gener-
ated through the Workflow Status Field com-
mand on the Insert menu. You cannot add such
a field manually.
Input on a form field also depends on the input expression. A form field can be a temporary display
field if attr.input is set to false in the before.input section of the field in your UI script.
Field Name
The name of the form field. You can use a table field or a non-table field. The domain and data type
of the table field are automatically filled for a table field. A non-table field can only be used if it is defined
in the UI script of the session for which the form is created. The program variable must be defined
with the keyword extern. The domain of the variable must be equal to the domain defined in the form.
A domain and its data type are not automatically filled for a non-table field. If you use a field without
a domain, you can specify label.only.
Element
If the specified field is an array, it specifies the element number of the table field., Use the Multi
Currency check box on the Miscellaneous tab to indicate that the field is a multi currency field. Do
not specify -1 in the Element field as an element number to indicate that the field is a multi currency
field.
Domain
The domain. You can select the domain manually, or zoom to the Browse domains dialog to make a
selection.
Note: You cannot modify the domain of table fields.
Segmented
If this check box is selected, the field is a segmented field. A segmented field is logically divided into
chunks called segments. This check box is read-only.
Mandatory Input
If this check box is selected, input on this form field is mandatory at runtime.
Note:
• If the data type of the form field is byte, integer, long, or float, the value of the field at runtime must
not be 0, even if in the domain 0 is defined as a legal character.
• If the table field is already mandatory, this check box is selected and cannot be cleared.
UUID
The Universally Unique Identifier (UUID) of the field. The UUID uniquely identifies the field on the form
and is used by the session personalization functionality in Web UI.
The UUID is generated automatically and cannot be changed.
Note: This field is only displayed if you use Enterprise Server 8.5.1 or later.
Label
Use this tab to specify the form field's label data.
If the appropriate check boxes are selected in the Session Properties, Group Properties, and Field
Properties dialog boxes, the form field is displayed in a details session or an overview session.
If the field is an option set, the descriptions of the enumerates are used in the details session. On the
overview session the field is displayed as a listbox.
Label
The label code. You can insert a label manually, or zoom to the Browse labels dialog.
Details
Position
The position of the label in relation to the field in the details session. This table shows the available
options:
Option Description
Before (right aligned) The label and field are placed side by side. The
label is right aligned.
Before The label and field are placed side-by-side. The
label is left aligned.
Above You can only select this option for label-only
fields. The label is positioned with the controls
of other fields in the group.
Length
The length of the label in a details session or an overview session. The length of the label is used as
a selection criterion. A label is selected within the reserved length. If no such label is found, the shortest
possible label that is longer than the reserved length is selected. If the label's length is 0, the label is
not displayed in a details session.
Height
The height of the label in a details session or in an overview session. If no label is found with the
specified number of lines, a label with additional lines is used.
Overview
Link Label Length to Field Length
If this check box is selected, the length of the label is linked to the length of the form field in a grid.
Length
The length of the label in the grid of an overview session.
Note: The length of the label is used as a selection criterion. A label is selected within the reserved
length. If no such label is found, the shortest possible label that is longer than the reserved length is
selected. If the label's length is 0, the label is not displayed in the grid of an overview session. If the
label's length is smaller than the width of the column, the column's width is used to select a label.
Height
The height of the label in the grid of an overview session.
Note: The height of the label is used as a selection criterion for a label. If no label is found with the
specified number of lines, a label with additional lines is used.
Position
Use this tab to specify the form field's position on the form.
If the appropriate check boxes are selected in the Session Properties, Group Properties, and Field
Properties dialog boxes, the form field is displayed in a details session or an overview session.
Details Session
If this check box is selected, the form field is displayed in the details session at runtime.
Overview Session
If this check box is selected, the form field is displayed in an overview session at runtime.
Note: A dependent child field can be removed at runtime without removing its parent field. For example,
as a result of authorization limitations.
Allowed in Grid
If this check box is selected, the form field can be displayed in the grid. If this check box is cleared,
the form field is not displayed in the grid.
View Field
If this check box is selected, the current form field is a view field displayed above the grid when an
overview session is started. If the Dependent on Parent Field check box is selected, the View Field
property is not relevant, because its value is the same as the value of its parent field. So a dependent
field is displayed in the view, when its parent also is displayed in the view; otherwise the dependent
field is displayed in the grid, when the overview session is started.
Occurrence Independent
Select this check box if the value of the current form field is not dependent on the actual occurrence.
This only applies for view fields that are not part of the main table and are specified as a view field in
the session editor.
Hidden (Details)
If this check box is selected, the form field is invisible in the details session at runtime.
Users can make the field visible through the Personalize Form command.
Administrators can centrally maintain these personalizations through the Session Personalizations
(ttadv9100m000) session.
Hidden (Overview)
If this check box is selected, the form field is invisible in an overview session at runtime.
Users can make the field visible through the Personalize Form command.
Administrators can centrally maintain these personalizations through the Session Personalizations
(ttadv9100m000) session.
Display
Use this tab to specify form field's display data.
Minimum Input Length
The minimum number of characters that must be used for input on the form field.
Display Height
You can specify a display height in this field if the field has a domain of type text.
Data Alignment
Type or select the alignment of the data within a non-grid-field. In the grid, for numeric fields the field
alignment is linked to the domain. The alignment of date fields is always linked to the display format.
Other types of fields are always linked to the domain.
Display Format
You can specify a display format in this field.
According to Domain
If this check box is selected, the value is linked to the domain. To specify another value, clear this
check box and specify a value in the field.
Miscellaneous
Use this tab to specify the form field's miscellaneous data.
Input/Reference Expression
The input condition or reference expression of the form field.
Input condition: The input condition determines the condition for which input on the input field is allowed.
For example, if the input condition is price > 0, the input is only allowed if the value of the price
variable is greater than 0.
Reference expression: The reference field or reference path can be used if a table field from a table
other than the main table is used. This can be used if the main table refers twice to a reference table.
Examples:
• tdsls000.item1 (reference field)
• tdsls000.item2, tiitm001.item (reference path)
Note:
1 Declare the variables that are used on these fields with the keyword extern in the UI script.
2 You can also set attr.input to false in the before.input section of the field in your UI script.
3 The input changes the field into a display field and it overrules the input expression.
Message
The message code that is displayed on the bottom line of the dialog box. You can insert the message
code manually, or zoom to the Browse messages dialog to make a selection
Echo Field
If this check box is selected, the value of the form field is displayed on the form.
Synchronized Field
If this check box is selected, the current form field's input on the client is synchronized with the server.
Typically, in page mode, the client interacts with the server for each page to reduce network transactions.
If necessary, you can use this option to ensure that the client interacts with the server for this field
instead of waiting for the page's end.
Zoom
Use this tab to specify the form field's zoom data.
Zoom
Specifies if the form field is a zoom field and, if so, where it zooms to.
These options are available:
• No
• Session
• Menu
Zoom To
The menu or session code that can be activated from this form field. You can specify a menu or session
manually, or zoom to the Browse menus dialog or to the Browse sessions dialog to make a selection.
If this field is filled with a session code, in Web UI auto-complete is enabled on the form field.
If the zoom functionality has been scripted, we recommend that you leave this field blank.
If auto-complete does not make much sense, because it will show a lot of entries that are actually not
valid in the specific situation, you can switch auto-complete off for the form field by using the
fields.autocomplete function.
Return Field
The name of the table field in the zoom process whose value is returned to the form field in the main
process. You can specify a table field manually, or zoom to the Browse Table Fields dialog to make
a selection.
Description Field
If a table field has a reference to another table, you can specify in this field which field from the reference
table must be used as a search description. For example, for a form field that shows an item code,
the user would like to type (part of) the description of that item instead of the code. In this field, you
can specify the table field that contains that description.
In Web UI auto-complete also shows the description in the suggestion list. The look-up returns items
that match by description, besides the ones that match by code.
Note: This option is only valid for (multibyte)string fields.
Appearance
Use this tab to specify how the form fields with data type Enumerate or String are displayed on the
form.
Note: The data in this dialog box only applies to form fields that have a domain of data type Enumerate
or String.
Enumerate
Check Box
If this option is selected, the form field with data type Enumerate is displayed as a check box. You can
select this option if there are only two enumerate values in the domain of this field.
List Box
If this option is selected, the form field with data type Enumerate is displayed as a list box.
Option Set
If this option is selected, the form field with data type Enumerate is displayed as an option set.
String
Normal String
If this option is selected, the form field with data type String is displayed as a normal field.
List box
If this option is selected, the form field with data type String is displayed as a drop-down list box.
Combo box
If this option is selected, the form field with data type String is displayed as a drop-down combo box.
URL Area
If this option is selected, the form field with data type String is displayed as an embedded URL Area.
The URL itself is defined by the 4GL application script and can be dynamically based on business
functionality.
Note:
• The URL area option is available for the form field type Display.
• The URL area cannot be part of a grid. Within an Overview session the URL area is part of the
view area, analogous to an Image field.
• The display width and height of the URL area field must be defined to set the runtime dimensions.
Default width: 40, height: 5.
• To show the URL area on the form, you can use the get.bi.server.location() 4GL function
to load the URL. For details, see the Infor ES Programmer's Guide (Infor Support Portal KB
22924522).
• Minimal requirements:
• Application VRC TIV level 2020
• LN UI version 11.2.2
Long
A form field with data type Long can be displayed as a normal field or as a color field. In a color field,
users can select a color from a pre-configured palette.
Normal
If this option is selected, the form field is displayed as a normal field.
Color Field
If this option is selected, the form field is displayed as a color field. The selected color and its hex code
are displayed in the trigger area.
Function
Session
Business Method
Menu
In the All Form Commands field, you can add and remove form commands:
• To add a form command to a session, click Add. The Create a New Form Command wizard
starts. Specify the properties for the new form command and click Finish.
See the online help of the Create a New Form Command wizard.
• To remove a form command from a session, right-click the form command and, on the shortcut
menu, select Remove.
The tree structure of the displayed form commands mirrors the menu hierarchy of the form commands
in the runtime session. Form commands of type menu can have child nodes, which must be commands
of another activation type. Menu commands cannot contain child items of type menu command. A
command that does not activate a menu cannot have child nodes. The Session editor only supports
one level of submenus. Therefore, a menu command can only have child nodes and cannot have
grandchild nodes.
To change the menu structure, drag and drop a form command from one location to a menu command
or to the root of the tree structure. In the latter case, the command appears, at runtime, directly under
the session's appropriate menu.
To change the sequence of the form commands in a menu, move the commands up or down the
command list of a specific menu.
Function/Session/Business Method/Menu
The name of the function, session, business method, or menu that the form command activates.
Allowed values:
• A session or menu available in the development repository of the connected LN server. To select
a session or a menu, click Browse.
To open the selected menu or session in the corresponding editor, click the Menu or Session
hyperlink.
• An external function in the session's UI script. You can select a function from the drop-down list.
To view or edit the selected function in the script editor, click the Function hyperlink.
• A business method in the session's UI script, or DAL script. You must type in the code of the
business method.
Command Type
Command Type specifies where the form command appears on the session's form. You can select
the following command types from the drop-down list:
Allowed values:
Form For all of the session's form tabs, the form command appears on the form's appropriate menu,
and/or as a button on the form.
Group The form command only appears on the session's appropriate menu when a user selects the
tab that includes the group you define in the Group/Field Number field.
Field The form command appears as a button on the form, behind the field whose Sequence
Number you enter in the Group/Field Number field.
Print The form command appears as an option in the session's print menu.
For form commands of Command Type Group, select the group to which the form command belongs.
The form command only appears in the session's appropriate menu when the user selects the group's
tab.
For form commands of Command Type Field, select the field behind which the form command
appears as a field button.
The pull down list shows the numbers and label codes of the available groups or fields.
Allowed values:
To specify this field, select a value from the drop-down list.
Category
The form command category used by Infor Ming.le. The category determines the pull-down menu in
which the command is displayed.
Allowed values:
Note: The category is only used by Infor Ming.le. If the session runs in another UI, the category is
ignored.
Form commands in a menu must have the same category as the menu.
Default Command
Use this check box to define the form command as the default command for the session, or for a
command category in the session.
You can select this check box in these situations:
• If the command has Command Type Print.
• If the command belongs to the Special 1 or Special 2 category.
If this check box is selected, the command is the default command of its category. If the session
runs in Infor Ming.le, the description of the default command is displayed on the category's menu
button. See the example.
The commands of the Special 1 category are displayed in the Activate Job pull-down menu.
Note: You can specify one default command per special category.
The default command is only used by Infor Ming.le. If the session runs in another UI, the default
command is ignored.
Display
Label Code
The code of the form command's label.
To edit or view the label in the label editor, click the Label Name hyperlink.
Allowed values:
To specify this field, click Browse and select a label name from select dialog box.
Description
The description of the form command's label, as specified in Label Name.
Allowed values:
This field is read-only. LN Studio automatically fills in the label description after you specified the Label
Name.
Shortcut Key
The form command's shortcut key. This property does not apply to form commands that invoke a
menu.
Select the form command's shortcut key from the drop-down list.
Allowed values:
The value for Shortcut Key is one of the following:
• "Not applicable"
• A key combination that conforms to the following syntax: CTRL+F1- CTRL+F12, or CTRL+SHIFT+A-
CTRL+SHIFT+Z
Separator
If this check box is selected, Enterprise Server inserts a line in the menu under the form command.
Use these lines to create separate groups of form commands in the menu.
Availability
Authorization Group
The authorization level users need to carry out the form command. All commands with an authorization
group higher than the user’s authorization for the session are removed from the appropriate menu.
Note: For form commands of type Menu, you must specify Authorization Group Display.
Example:
A user is authorized to view and print records in a session. The authorization group for that session
is 'Print/Display'. All form commands with authorization groups 'Full Authorization'
(Delete/Insert/Modify/Print/Display), 'Insert/Modify/Print/Display' and 'Modify/Print/Display' are removed
from the appropriate menu.
Allowed values:
• Display
• Print/Display
• Modify/Print/Display
• Modify/Print/Display
• Insert/Modify/Print/Display
• Full Authorization
Choose the authorization group of a form command according to the following guidelines:
Note: Define authorizations in the Authorization Management System module, and link these to a user
on the Authorizations tab of the User Data (ttaad2500m000) details session.
Command Availability
The availability of the form command.
Note: This field does not apply to form commands of type menu.
Allowed values:
Always Authorized users can activate the form command. The programming function
disable.command overrules this option.
One Record Select- Authorized users can only activate the form command when they have selected
ed one record in the overview session's grid. The programming function dis-
able.command overrules this option. This option overrules the enable.command
programming function.
Records Selected Authorized users can only activate the form command when they have selected
one or more records in the overview session's grid. The programming function
disable.command overrules this option. This option overrules the enable.com-
mand programming function.
Never Users cannot execute the form command. The programming function en-
able.command overrules this option.
Initial hidden
If this check box is selected, the form command is initially not displayed in the session. At runtime,
you can make the form command visible through the Personalize Session Menus or Personalize
Toolbar option. The initially hidden commands are displayed as a menu option in the Hidden panel
of the Personalize Session Menus dialog box, just like the other hidden menu options.
Execution
Before Execution
Question
When the user tries to execute the form command, Enterprise Server prompts the user with the question
whose name you enter in this field. This field does not apply to form commands of type menu. If the
field is left empty, no question is asked.
Allowed values:
To specify this field, click Browse and select a question from the select dialog box.
Answer
To carry out form commands, a user must give the answer you enter in this field when prompted by
Enterprise Server with the question in the Question field. This restriction only applies if the Question
field has been specified. This field does not apply to form commands that invoke a menu.
Allowed values:
To specify this field, select a answer from the drop-down list. This list contains all answers available
for the selected question.
Once Form command is only carried out for the first record selected in the grid.
For every occur- Form command is carried out for every record selected.
rence
Save data
If this check box is selected, when a user activates the form command, LN saves the session's data
before carrying out the form command. This option does not apply to form commands of type menu.
If this check box is cleared, when a user activates the form command, LN carries out the form command
without saving the session's data.
Execution
Start mode Session
Select the mode of the session the form command starts.
Note: This field only applies to form commands of type Session.
Allowed values:
• Modal
• Modeless
• Synchronized Child
• Modal Overview
• Not applicable
Kind of Session
Select the type of session the form command starts from the options.
Note: This field only applies to form commands of type Session.
Allowed values:
• Overview Window
• Details Window
• Not applicable
After Execution
Refresh Parent
If this check box is selected, when users execute the form command in a session, the data affected
by the form command automatically updates in any related sessions.
If this check box is cleared, users must manually save the changes after they execute the form command
for the changes to update in any related sessions.
Name
The name of the satellite session.
Allowed values:
Press CTRL+SPACE and select a name from the select dialog. This dialog shows the names of all
available sessions.
Description
The description of the satellite session.
Allowed values:
This field is read-only. LN Studio automatically fills in the satellite session description after you specified
the Name of the satellite session.
Field Mapping
This field contains the field mapping records which map the fields of the multi-main table (MMT)
controller session with the corresponding fields of its child satellite sessions. The records define a
mapping for the satellite session marked in the All Satellite Sessions field.
The field mapping records consist of two attributes:
• The Field in MMT Session attribute, which specifies the name of the field in the parent MMT
session
• The Field in Satellite Session attribute, which specifies the name of the corresponding field of
the satellite session
For example, the Order Number field of an Order Header session (MMT session) corresponds with
Order Number field of its child Order Lines sessions (satellite session).
To add a field mapping record, click Add and select the desired field names.
To remove a field mapping record, right-click a record and select Remove.
Note: The field mapping records define a mapping between the parent MMT session and one of its
satellite sessions. You can compare such a field mapping with a foreign key of a record that points to
the primary key of a referenced record. Similarly, the Field in Satellite Session field of the satellite
session forms a pointer to the Field in MMT Session identification field of the main MMT session.
To specify this attribute, select a field name from the drop-down list. This list contains the names of
all available fields of the MMT controller session.
Documentation tab
Use this tab to enter the session's release notes and technical documentation.
Release Notes
Use this field to specify the release notes of the session.
Technical Documentation
Use this field to specify the technical documentation of the session
If you want a field to be excluded as a view field for certain indices, clear the View Field check
box for that field in the Field Properties dialog box of the Session Editor's Form Definition
tab.
Package Session
Manufacturing Production Order
Manufacturing Generic Item – Structure
Order Management Sales Order – Lines
Order Management Sales Order Line – Deliveries
Service Service Order – Lines
Service Service Order Activity – Lines
Service Maintenance Sales Order
Service Work Order – Lines
Finance Mapping Scheme
Finance Ledger Mapping
Finance Dimension Mapping
Finance Financial Business Partner Group (Accounts
Receivable)
Finance Financial Business Partner Group (Accounts
Payable)
Finance Invoice-Source Relation
Package Session
Quality Management Inspection Orders – Easy Entry
Quality Management Item – Storage Inspection
Object Data Management Document Revisions – Easy Entry
Object Data Management Change Proposal – Easy Entry
Tools Table Definitions
Tools Business Objects
The header and lines in an MMT session are automatically synchronized. When you select a particular
record in the header area, the corresponding lines are automatically displayed in the satellites. There
is no synchronization between the satellites themselves.
A satellite tab only contains a grid. Additional fields outside the grid, such as view fields, are only
displayed when the satellite runs stand-alone.
Example
When the Order Lines session runs stand-alone, the Order Number is displayed as a view field above
the grid. When the session runs as a satellite in the Order MMT session, the satellite tab only displays
the grid.
Developer guidelines
This section describes the prerequisites, possible issues, and the procedure for creating an initial MMT
header-lines session.
Prerequisites
You can only create an MMT header-lines session if the following conditions are met:
• There is a clear header-lines relation. Enterprise Server only supports synchronization if each
satellite is directly related to its header. For example, Sales Order Lines are directly related to the
Sales Order Header through the Order Number field.
• No synchronization is required between the satellites.
• The header has a single-occurrence representation. If not, it should be created.
• All satellite sessions you want to define have multi-occurrence representations. If not, they should
first be created.
Possible issues
Before you start creating an MMT header-lines session, identify the development effort required to
solve the following possible issues:
Deep The header of the header-lines session contains the Duplicate and Delete standard
copy/delete commands. In an initial MMT session, these actions only execute on the header.
Functionality to automatically copy or remove the corresponding lines when a header
is copied or removed must be programmed separately. You can re-use existing code
to do this.
Implicit An implicit save means that a session and its contents are saved without a user action.
saves Therefore, the user performs a manual "Save" action, such as clicking Save on the tool
bar or selecting the Save menu item.
In an MMT header-lines session, all data within each separate session is saved on
each focus change from satellite to satellite, from header to satellite, or the other way
around. For example, if a sales order is inserted and you switch the focus from the
header to one of the satellites, the header is saved. To indicate a save is being executed,
a save icon appears in the lower right part of the session window.
If you modify data after the last implicit or explicit save and then close the session, you
are prompted whether the changes must be saved. If you select No, this undoes the
changes after the last implicit or explicit save. When programming, be aware of this
behavior. It can cause unreferenced data in the database, such as an order header
without lines. You might consider programming a way to remove this data directly when
it is generated, or to build a session that cleans the database of these unreferenced
entries.
c The fields specified in the dynamic form of the MMT header session are displayed in the upper
part of the MMT session, above the satellite tabs. By default, these fields should be read-only.
They should only be accessible when a new record is inserted in the header session. To
achieve this, use 'add.set' in the program script.
To edit forms, use the Session Editor's Form Definition tab.
See Form Definition tab on page 209.
For details on program scripts, see the Infor ES Programmer's Guide (Infor Support Portal KB
22924522).
3 Define the Label of Object for each satellite.
Edit the properties of each satellite session in the Session Editor. In the Label of Object field,
select the label to be used in the satellite's tab description and menu items.
See Label of object on page 237.
4 Link satellites to the MMT Header session.
To link the desired satellites to the new MMT header session:
a Open the MMT header session in the Session Editor.
b Go to the Satellite Sessions tab and specify the satellites to be linked.
You can only link sessions that have the List Window window type.
Per satellite, enter the field relations used to synchronize the MMT header session with the
satellite session. To enter a field relation, specify the name of the relevant field in the header's
main table, followed by the name of the corresponding field in the main table of the satellite.
For example, specify the Order Number field from the Order Headers table and the Order
Number field from the Order Lines table.
Stand-alone This is the ‘normal’ mode; used when the session is executed as stand-alone
mode session.
Satellite mode This is the special MMT mode. Use the is.mmt.satellite() statement to
check whether a session is running as an MMT satellite session. You can program
different behavior for the satellite mode if required.
Hide fields Hide certain form fields since they are not relevant in the satellite mode. How-
ever, there is only one form for both modes. You must define all fields you want
to use in either one of them, in the form.
Enable/disable Enable or disable a satellite within an MMT session in a particular case. The
satellite tab of a disabled satellite is still visible in the MMT session, but cannot be se-
lected or accessed. To disable a satellite, use the disable.satellite()
function. To enable it, use enable.satellite(). Call these functions from
the global after.form.read section in the header session's program script.
Hide/unhide satel- Hide a particular satellite using the satellite.invisible() function. With
lite this, you can still make the satellite visible at runtime. For example, you can
check authorizations and hide/unhide satellites for specific users. You cannot
hide/unhide satellites dynamically based on the availability of data in a satellite.
For details on program scripts and DAL, see the Infor ES Programmer's Guide (Infor Support Portal
KB 22924522).
Label of object
MMT header sessions and satellite sessions have a Label of Object. This label contains a generic
description of the object within the session.
By default, the session-description of the satellite is shown on the tab. When this description is not
suitable, create a new label with these properties:
• The label code must be identical to the code of the other Label of Object.
• The text must be a plural noun, such as "Order Lines" for the Purchase Order Lines satellite session.
• The Context of Label must be General Use.
Session tab
Use this tab to maintain the overall data of the InContext model.
General Information
Session
The session name and description.
To edit or view the session in the Session Editor, click the hyperlink.
Main table
The name and description of the session's main table, if applicable.
To edit or view the table in the Table Editor, click the hyperlink.
(Re)generate
Click this link to (re)generate the InContext model.
Alternatively, you can (re)generate the model through the (Re)generate Implementation Model
(tticm1210m000) session.
Hooks
Include Hook/Declaration Hook/Function Hook
Click these links to open the corresponding hooks in the source viewer in the Hook section.
Library
Library
The model's library.
To edit or view the library in the Library Editor, click the hyperlink.
(Re)generate
Click this link to (re)generate the library.
Hook
Source viewer panel
This section is similar to the Hook section in the Table Editor. See Table Editor on page 240.
Main table
The name and description of the session's main table, if applicable.
To edit or view the table in the Table Editor, click the hyperlink.
Context Messages
Context Messages grid
This section is similar to the Context Messages section in the Table Model Editor.
See Table InContext Model Editor on page 259.
These are the differences compared to the Table Model Editor:
• You can create more than one context message of the same type.
• The table column is empty for manually created context messages.
• The hidden column has only two options: true or false.
For context messages with the 'hidden' element set to true, a strikethrough font is used.
Mapping
Mapping grid
This section is similar to the Mapping section in the Table Model Editor.
See Table InContext Model Editor on page 259.
Hook
Source viewer panel
This section is similar to the Hook sections in the Table Model Editor.
See Table InContext Model Editor on page 259.
Besides table fields, you can also use all form fields in the hooks.
Table Editor
Use this editor to define and maintain table definitions and the corresponding DAL scripts.
Tables are data structures used to store data that consists of a list of records, with each entry identified
by a unique key and containing a set of related values. A table contains a number of table fields that
belong to a specific domain.
Table definitions describe the record fields and the field domains. A table definition shows the following
properties:
Note: If you are not authorized to change the data model, you can only edit the table's DAL script. See
the descriptions of the Script and Source tabs.
Overview tab
Use this tab to maintain the overall data of a table definition.
General Information
Table
The name of the table, used as table identification code.
A table is uniquely identified by the combination of package code, module code, and table code.
Allowed values:
The table name is read-only. You can only specify a table name when you create a new table definition.
Afterwards, you cannot change this name anymore.
Table names must have the following format: <package code><module code><table number>
Label Name
The name of the label that contains the table description.
To open the label in the Label Editor, click the hyperlink.
Allowed values:
The label name is read-only. You can only specify a label name when you create a new table definition.
Afterwards, you cannot change this name.
Description
The description of the table.
Allowed values:
The description is read-only, because the description text is stored in a label.
To change the description, click the Label Name hyperlink and edit the label in the Label Editor.
Table pksls041, Sales order line, refers to the Item table by its item code. If a user tries to change an
item code in the item table, which is used in a sales order line, LN displays the defined reference
message.
Relation Type
The relation type for the fields in this table.
Note: This indication is important for delayed lock facilities in the bshell. If you use a delayed lock,
two users can change one record at the same time. However, they cannot change the same fields or
the fields that are related to each other.
Allowed values:
Select one of the following relation types:
No relations All fields of the record are independent. When a user edits a field, another user
can edit other fields of the record.
All Fields All fields of a record depend on other fields of this record. When a user edits a
field, all fields are locked so other users cannot edit the record.
Specified Rela- You can define groups of related fields. Some fields of a record depend on other
tions fields of this record and some fields are independent. When a user edits a field,
the related fields are locked. The other fields can be edited by other users.
InContext Model
The name of the InContext model that describes which fields are required for the context messages
for this table.
To open the InContext model in the Table InContext Model Editor, click the hyperlink.
If no InContext model exists for the table, click the hyperlink to generate a model. The Table InContext
Model Editor is started.
Related topics:
• InContext Modeling on page 74
• Infor Enterprise Server InContext Modeling Development Guide
• Table InContext Model Editor on page 259
Field Relationships
This section contains the Field-Group records. This indicates which table fields belong to which field
groups.
Fields can be arranged into groups to indicate their mutual relationships.
To add a Field-Group record, click Add and specify a group and a field.
To remove a record, right-click a record and select Remove.
Note: This section is only displayed if the Relation Type is Specified Relations.
Group
The identification of a group of related fields.
Allowed values:
A number in the range 0-9999.
Name
The name of the field, which is related to other fields with the same group number.
Allowed values:
Select a field from the list.
Description
The description of the field.
The description is read-only. It is filled automatically when you select a field.
Runtime
Convert: Convert Tables to Runtime
This link is only available if the table is checked in.
Click this link to convert domains and tables to the runtime data dictionary:
• For LN servers with Enterprise Server 10.5 or later, the Convert to Runtime dialog box is started.
• For LN servers with older Enterprise Server versions, the Convert to Runtime Data Dictionary
(ttadv5215m000) session is started.
You must be authorized to run this session.
Note: In the Convert to Runtime dialog box or the Convert to Runtime Data Dictionary
(ttadv5215m000) session, select the package combination that contains the Project VRC of your
current Software Project. Domains and tables in all Activities linked to the software project are converted.
Therefore, not only tables in your own Activity VRC are converted, but changed tables in activity VRCs
of other developers are also converted.
Read the online help of the dialog box or session before you start the conversion.
Fields tab
Use this tab to maintain the table fields of the table definition and perform these actions:
• Specify the field name and field number of the table field. The field name must be unique in the
current table.
• Specify whether the field is combined. For example, is there a combination of two or more fields
of the same table?
• You must specify a domain that specifies the data type, legal values, validation check, display
format and so on.
• Specify the label data for the field, the initial value, the mandatory input, and whether it is a repeating
field.
• Specify a relation to another table, insert check, delete, and update mode and specify whether the
field is active.
All Table Fields
List of all table fields.
In the All Table Fields list, you can perform these actions:
• Add or remove table fields.
• To add a field, click Add and enter the basic field properties in the grid. Then, enter the
remaining properties in the Table Field Properties field group.
• To remove a field, right-click a field and select Remove.
• To change the field sequence of the table, click Up and Down to move fields up and down the
list.
• Link child fields to parent fields. To link a child field to its parent (combined) field, drag the child
field on the parent field and release the mouse button. The parent and child fields are displayed
as a tree structure.
• Copy fields to an index in the Indices tab, or copy fields from the current table to another table.
To copy fields to another table, select the fields, right-click, and select Copy. Then, right-click a
field in the All Table Fields list of the other table and select one of these commands:
• Paste as Fields: The fields are added below the selected field.
• Paste as Children: You can only select this command if the selected field is a combined field.
The fields are added as child fields of the combined field.
Name
The name of the field.
You can only enter a field name when you add a field. For existing fields, the name is read-only.
Label
The code of the label that is used as a description of the table field. Press CTRL+SPACE and select
a label from the select dialog box.
To open the label in the Label Editor, click the label icon.
For new table fields, the label is generated when you save the table.
Description
The description of the field.
You can only enter a description when you add a field. LN Studio stores the description in a label.
Allowed values:
For existing fields, the Description field is read-only, because the description text is stored in a label.
To change the description, click the label icon behind the Label field and edit the label in the Label
Editor.
Domain
The domain of the table field. Press CTRL+SPACE and select a domain from the select dialog box.
Click the domain icon to open the domain in the Domain Editor.
Hooks
Click the Hooks icon to view a list of hooks that are defined for this field in the table's DAL script.
Label Name
The name of the label that is used as a description of the table field.
To start a dialog where you can select another label, click Browse.
To open the label in the Label Editor, click the hyperlink.
Description
The description of the table field, as defined by a label with the same name as the table field. If a label
in a form, report, or menu has the same name as the table field, this description replaces the label.
Note: A percentage symbol % in the label description forces a line break in the label in the form, report,
or menu.
Allowed values:
The description is read-only, because the description text is stored in a label.
To change the description, click the Label Name hyperlink and edit the label in the Label Editor.
Combined Field
If this check box is selected, the field is combined. A combined field consists of two or more normal
fields, not combined fields.
• A combined field can be used for references and indices.
• To add a child field to a combined field, go to the All Table Fields field group and drag the child
field on the combined field.
Mandatory Input
If this check box is selected, input in this field by the user is mandatory.
If the field has the byte, integer, long, float or double data type, mandatory input means the value of
the field must be unequal to 0. Mandatory input is an addition to the domain definition of the field and
has precedence over what is defined as the range of the domain. If the user tries to make a field empty
while input is mandatory, Enterprise Server gives range message of the domain.
Example
Field: Employee number (datatype long)
Elements
The depth of a repeating field.
If you specify a value greater than 1, the field is repeating. A repeating field occurs multiple times in
the table with the same name and characteristics. Identification of an element is performed using a
sequence number.
Example: The Help Topics table contains these fields:
"Topic Keywords" is a repeating field of 4 levels. In the Help Topics table, you can define four key
words for each Help Topic Code.
Note: You can only specify the depth when you add a field. You cannot change the depth of existing
fields.
Allowed values:
A number in the range 0-99.
To indicate the field is not repeating, enter 0.
To indicate the number of elements for a repeating field, specify a value greater than 1.
Domain Name
The name of the domain of the table field.
To open the domain in the Domain Editor, click the hyperlink.
Allowed values:
Select a domain from the field's drop-down list. The list contains all domains available on the current
LN server.
Data Type
The data type of the domain.
Allowed values:
This field is read-only. The data type is determined by the specified domain.
Length
The length of the domain.
Allowed values:
This field is read-only. The length is determined by the specified domain.
Default Value
If a user adds a record to the table, this is the initial value for the field.
If the Generate Unique Default Value check box is cleared, you must specify a default value.
If the Generate Unique Default Value check box is selected, this field is read-only. The default value
is determined by the specified domain.
Reference
Reference Table
The related table to which this field refers.
Note:
The reference table is also known as the parent table.
To open the reference table in the Table Editor, click the hyperlink.
Allowed values:
To start a dialog where you can select a reference table, click Browse.
Reference Mode
Indicates whether the referenced field must exist in the reference table. The reference field is the field
referred to by the current field.
Allowed values:
Select one of these reference modes:
Mandatory The foreign key value (the reference record) must exist in the reference
table.
Mandatory unless Same as Mandatory, but the foreign key value can be empty.
empty
Not mandatory The foreign key value is not checked against the reference table.
Not Applicable The field does not refer to a field of another table.
Reference Message
The message code which LN gives, if you enter a value in an input field in the form, where no related
record in the reference table is present.
Note: The reference message is only relevant if the reference mode is mandatory, or mandatory unless
empty.
To open the reference message in the Message Editor, click the hyperlink.
Allowed values:
To start a dialog where you can select a reference message, click Browse.
Delete Mode
The action to be taken by LN if a referenced record in the reference table is deleted.
Select a delete mode from the drop-down list.
Allowed values:
Child will be deleted All children that refer to the parent are deleted.
Note: If the reference does not identify the rela-
tion this can result in the automatic deletion of
many records. For example if the relation be-
tween the parent and child is not one-to-one but
one-to-many.
Restricted (with counter) Deletion of the parent is restricted if any child
refers to the parent. A reference counter is
checked, which indicates how many children refer
to the parent. With each database action this
counter is checked and updated, if necessary.
Lookup (Restricted) Deletion of the parent is restricted if any child
refers to the parent.
No check If the parent has been deleted, no check or action
is performed on the child occurrences which refer
to the parent. In that case the referential integrity
of the database cannot be guaranteed.
Nullifies The field(s) of the child, which refer(s) to the
parent that has been deleted, are made empty
(spaces or zero value).
Update Mode
The action to be taken by LN if the primary key of a referenced record in the reference table is changed.
Child will be updated All children that refer to the parent are updated.
Note: If the reference does not identify the rela-
tion this may result in the automatic update of
many records. For example if the relation be-
tween the parent and the child is not one-to-one
but one-to-many.
Restricted (with counter) Any change of the primary key fields of the parent
is not allowed if any child refers to this record. A
reference counter is checked, which indicates
how many children refer to the parent. With each
database action this counter is checked and up-
dated, if necessary.
Lookup (Restricted) Any change of the primary key fields of the parent
is not allowed if any child refers to this record.
No check If the parent is changed, no check or action is
performed on the child records which refer to the
parent. In that case the referential integrity of the
database cannot be guaranteed.
Nullifies The field(s) of the child, which refer(s) to the up-
dated parent record, are made empty (spaces
or zero values).
Technical Doc.
Use this field to specify the technical documentation of the table field.
Release Notes
Use this field to specify the release notes of the table field.
Indices tab
Use this tab to maintain the table indices and index fields of the table definition.
You can perform these actions:
• Add indices and index fields:
• To add an index, click Add Index and enter the index properties in the grid. See the field help.
• To add an index field, select an index in the grid and click Add Child. Then, in the Name field,
select the desired field from the list.
Alternatively, right-click a field in the Fields tab and select Copy. Then, go back to the Indices
tab, right-click an index and select Paste.
• Remove indices and index fields. To remove an index or index field, right-click the index or field
and select Remove.
• To determine the index sequence, use the Up and Down buttons to move the index records up or
down the list. The index numbers change correspondingly. The index with number 1 is the primary
key.
All Table Indices
All table indices. Each index is represented by a record.
Name
The number of the index or the name of the index field.
Note: The index with number 1 is the primary key.
Description
The description of the index or index field.
You can only enter a description when you add an index. LN Studio stores the index description in a
label.
Label
The label that contains the description of the index.
This field is read-only.
To open the label in the Label Editor, click the label icon.
Note: For new indices, the label is generated when you save the table.
This field does not apply to index fields.
Active
If this check box is selected, the index is active. The primary index (index number 1) is always active.
Note: This information is not used in the data dictionary or the database layer.
This field does not apply to index fields.
Unique
If this check box is selected, the index is unique. Therefore, different records must have different values
in the index parts.
If this check box is cleared, different records can have the same values in the index parts. These are
called duplicate records.
Note: This field does not apply to index fields.
Script tab
Use this tab to specify the properties of the table's DAL script. You can also link libraries to the table.
Data Access Layers (DALs) are program scripts to guarantee data integrity. The DAL script considers
for all types of dependencies, various business rules, specific constraints and so on.
For more information on DALs and the availability of two versions of these scripts, see Data Access
Layer (DAL) on page 255.
To edit or view the DAL script, go to the Source tab.
For more information on the LN Studio Script editor, see Script Editor on page 264.
For more information about the script properties, see the Script tab of the session editor.
General Information
Script Type
The type of program script used for this table. The script type is DAL or DAL2.
Allowed values:
Select one of the following options:
DAL Data Access Layer that contains the Business Logic related to a table. The DAL is
called by the 4GL engine on certain events. Since version 2 of DAL is available,
you are advised to use DAL (version 2) scripts.
DAL (version Data Access Layer that contains the Business Logic related to a table. The DAL is
2) called by the 4GL engine on certain events. DAL (version 2) is more integrated with
the Business Data Entity (BDE) interfaces and the integration software.
Not Applica- No DAL script is used for this table.
ble
DAL
The name and description of the DAL script.
Usually, a script is uniquely identified by the package code, module code, and script code. The code
of a DAL script corresponds with the name of the table for which the script is used.
Compile Flags
The compile flag.
For details, see the Script tab of the Session Editor.
License
Product ID Source
The product ID for which a license is needed to compile the object. If the field is empty, no license is
needed to compile the object.
Note: This field only applies to internal Infor development systems. For other development environments,
this field is not available.
Allowed values:
To enter a product ID, click Browse and select an ID from the select dialog box.
Product ID Object
The product ID for which a license is needed to run the object. If the field is empty, no license is needed
to run the object.
Note: This field only applies to internal Infor development systems. For other development environments,
this field is not available.
Allowed values:
To enter a product ID, click Browse and select an ID from the select dialog box.
Linked Libraries
This list contains the records of all libraries linked to the DAL script of the current table.
Sorting
• To sort the libraries by position, name, or description, click the corresponding column header.
• When you sort by position, the sort mode is always ascending. When you sort by name or
description, click the involved column header to toggle between ascending and descending sort
mode.
• When you sort by name or description, the Up and Down commands are disabled.
Note: To edit a library, click the icon behind the library name.
Pos
The library sequence number (Position). This field indicates the linking order of the libraries.
This field is read-only. It is filled automatically when you link a library.
Name
The name of the library.
Allowed values:
To specify this attribute, press CTRL+SPACE and select a library from the select dialog box.
Description
The description of the library.
Allowed values:
This field is read-only. LN Studio automatically fills in the library description after you specified the
Name of the library.
Documentation
Release Notes
Use this field to specify the release notes of the table's DAL script.
Technical Documentation
Use this field to specify the technical documentation of the table's DAL script.
Source tab
Use this tab to view and edit the source code of the DAL script of the table. The tab consists of a script
editor, which forms an integral part of the table editor.
See Script Editor on page 264.
This tab is only displayed, if the source code of the DAL script is available.
Documentation tab
Use this tab to enter the table definition's release notes and technical documentation.
Release Notes
Use this field to specify the release notes of the table definition.
Technical Documentation
Use this field to specify the technical documentation of the table definition
Table definitions
Table Definitions define a structure to the data. The table code and name are attributes of a table. A
table is a collection of data, arranged in rows (records) and columns (fields).
This diagram shows a table data example:
A table must have at least one index. An index consists of one or more table fields used to sort and
search records in the table. The first index is always the Primary key, the unique identification for a
record in a table.
Business Rules
A business rule is a statement that defines, or constrains, some aspect or operation of the business.
It is intended to control or influence the behavior of the business operations. Business rules are logical
integrity rules, and differ from database oriented referential integrity rules.
• The item on-order quantity is increased when an order for the item is entered
• The item on-hand quantity is increased, and the on-order quantity decreased, when an order arrives
Business rules are implemented as hooks. A hook is a pre-defined function name you create in a Data
Access Layer script. The 4GL engine will call this function as it executes user interface and database
related actions on the table the DAL is written for.
Business rules fall into categories that determine how the business rule is implemented in the DAL.
The categories, depending on the type of DAL script, are as follows:
• Property or Field hooks
• Object Hooks
• Field Dependencies
• Business Methods
DAL 1
DAL 1 scripts were introduced in Infor Baan 5.0. A DAL 1 script contains database logic such as logical
integrity rules, but it usually does not contain all business logic for the table it belongs to. Very often,
business logic is spread across the DAL 1 script and the UI scripts.
Most UI scripts still contain business logic to do the following:
• Make fields read-only.
• Determine which enum constants can be selected in an enumerated field.
• Update a field after a change to a related field.
Therefore, it is difficult to use the DAL 1 scripts for integrations via the LN Business Adapter software:
the business logic in the UI scripts is skipped if another application connects to an LN table. Therefore,
this logic must be rebuilt in the Business Object Interfaces (BOIs) that provide the connection. If you
change the business logic in the UI scripts, you must also adapt the corresponding BOIs.
A DAL 1 script can contain the following types of hooks:
Object hooks. These hooks operate on the row or record as a whole unit. Object hooks determine
if operations on a row are allowed, and specify additional operations that should be
performed based on an operation of the row.
Examples of object hooks are as follows:
• Delete the additional employee data in the People package when an employee
is deleted.
• When a sales order line is saved, create a history record of the sales order line.
• Update the item inventory when a planned stock transaction is created.
Property These hooks operate at a field level, and are used to verify valid values and calculate
hooks. default values for table fields.
Examples of property hooks are as follows:
• Validity check that the Quotation expiration date should be after the Quotation
entry date.
• When adding an employee, the language of the company is the default for the
employee’s language.
For details on DAL 1 scripts, see "Data Access Layer" in the Infor ES Programmer's Guide (Infor Support
Portal KB 22924522).
DAL 2
DAL 2 scripts are introduced in LN. A DAL 2 script contains all business logic related to a particular
table. The UI scripts of the sessions operating on the table only contain UI logic.
DAL 2 scripts are suited for integrations via the LN Business Adapter software. Other applications can
connect to LN tables through Business Objects. The business logic in the table's DAL 2 script is executed
automatically. To build an integration, you do not need to rebuild this business logic in the BOIs that
provide the interface.
Various predefined Business Objects, that can be used for integration purposes, are delivered with
LN. DAL 2 scripts are only available for tables used in these business objects. For the remaining tables,
DAL 1 scripts are available. For details on business objects and integration technology, see the LN
Business Adapter documentation.
In DAL 2 various new hooks are introduced. A DAL 2 script can contain the following:
Object hooks These hooks are identical to the object hooks in DAL 1 scripts.
Field hooks These hooks contain the business logic for table fields and can contain logic
to do the following:
• Verify valid values on a table field (logical integrity rules).
• Make a field read-only. For example, the contact field of the Business
Partner is not a required entry, and is a display field in the UI when the
Business Partner is created.
• Make a field invisible.
• Automatically update a field, after a related field was changed. See "Field
Dependencies".
• Make input on a field mandatory.
• Hide a particular enumerated constant from an enum list.
Business method These hooks disable/enable and hide specific form commands of type "business
hooks. method".
For details on DAL 2 scripts, see "DAL 2 Overview" in the Infor ES Programmer's Guide (Infor Support
Portal KB 22924522).
Field dependencies
In DAL 2 scripts, you can define field dependencies used to determine default values. when these field
dependencies are defined, dependent fields update themselves when the fields they depend on are
updated. The field updates are defined in the DAL as a field hook.
Dependencies are also used to update the User Interface. The 4GL Engine uses these field
dependencies to disable and enable fields, and determine enum values.
Examples of field dependencies are as follows:
• The packing field of the Item is yes if the gross weight and net weight of the item are different. A
field dependency is defined so the packing field is updated if the gross or net weight fields change.
• An item without a gross weight cannot have a net weight and packing. A field dependency is defined
so the net weight and packing fields are disabled if the gross weight is zero.
Business methods
Business Methods are operations on a row or set of rows within a table. A business method is a function
that performs a task that involves manipulating or checking one or more tables in the database.
Sessions, object hooks, or property hooks from another table’s DAL can call a business method. See
the Infor ES Programmer's Guide (Infor Support Portal KB 22924522).
Examples of business methods are as follows:
• The sales order line session can remove an order line. The object hook for deleting the sales order
line calls a business method to also remove the unpaid commissions.
• In the Purchase Order session, check if it is allowed to change a purchase order header based on
the purchase order status and the business partner status.
• If a purchase order issues components, the object hook for the purchase order line calls a business
method to issue the components for the purchase order. The business method inserts items of the
bill of material into a purchase order components table.
Table tab
Use this tab to maintain the overall data of the InContext model.
General Information
Table
The table name and description.
To edit or view the session in the Session Editor, click the hyperlink.
(Re)generate
Click this link to (re)generate the InContext model.
Alternatively, you can (re)generate the model through the (Re)generate Implementation Model
(tticm1210m000) session.
Drillback
Drillback session
The session that is started when the business object is referenced and must be displayed.
To edit or view the session in the Session Editor, click the hyperlink.
Click Browse to view all sessions where the main table is the same as the table of the current model.
From Enterprise Server version 10.3 you can define the session code through a hook. To add a hook,
click the Hook link. To remove a hook, clear the hook code. The hook must return a String.
Mode
Indicates whether the drillback session will start as single or multi occurrence session, assuming that
the session supports the selected mode. Default value is Single Occ.
From Enterprise Server version 10.3 you can define the mode through a hook. This hook must return
either SINGLE_OCC or MULTI_OCC.
Index
The index the drillback session will start with.
From Enterprise Server version 10.3 you can define the index through a hook. This hook must return
a Long.
If the session code is specified using a hook, the index must also be specified through a hook.
If you leave this field blank, the default index, 1, is used.
Referenced Tables
Referenced Tables grid
The grid shows all referenced tables from the model. If a hidden element is present in the model and
has the value 'true', a strikethrough font is used. The descriptions are read from the server. If the same
table occurs multiple times as referenced table, the sequence number element is used to make the
descriptions unique.
The 'hidden' check box toggles the 'hidden' element of the referenced table.
The grid synchronizes with the Table Reference section.
To create a row in the grid and add a referenced table, click Add. This field supports code completion.
The table is validated and the description is added. These default settings are generated for the table
reference:
• Reference type: where
• Mandatory: false
• Field mapping: all primary key fields of the referenced table that are also present as fields in the
current model table.
To remove a table from the grid, right-click the table and select Remove. This is only possible for
referenced tables that are not present in the active Reference Model.
Table Reference
Type
The reference type.
The TableRead Hook hyperlink is only active in case of Type 'hook'. If the Type is changed, the
Mappings are generated following the rules.
Mandatory
If this check box is selected, the referenced table must be present.
Hook
Source viewer panel
Use this viewer to edit the selected hook.
This editor supports all LN Studio Script Editor features, such as code completion, text hover tool-tips,
open declaration, and syntax highlighting. See Script Editor on page 264.
In the hooks, you can use all table fields from the current table and all referenced tables.
Click the Previous hyperlink to move to the previous hook in the model.
Click Next to move to the next hook in the model.
Click Compile to generate a source with the three generic hooks (Include, Declaration and Function)
and a wrapper around the current hook. The Include and Declaration hooks themselves are compiled
solely.
Context Messages
Context Messages grid
The grid shows the context messages from the model.
The Hidden column can have these values:
• No: the context message is sent for this table and is also available for the tables that refer to this
table.
• Current level: the context message will not be sent for this table, but is available for the tables
that refer to this table.
• Child level: the context message is sent for this table but is not available for the tables that
refer to this table.
• All: the context message is not sent for this table and is not available for the tables that refer to
this table.
For context messages with the 'hidden' element set to true, a strikethrough font is used.
Click Add to add a context message to the grid. Only messages that are present in tagencontextmes
sages.xml are allowed. Code completion is supported. For context messages that are added manually,
you cannot specify the table and sequence number.
To remove a context message from the grid, right-click the message and select Remove. This is only
possible for context messages that are not present in the active Reference Model.
The Refresh button performs these actions:
• Refresh the context messages for all referenced tables.
• Read the context messages from the referenced model.
Mapping
Mapping grid
This editable grid shows the Mapping elements from the model.
This table shows the functionality required for the columns in the grid:
Col-
umn Description
Target These values come from the model; they are the placeholders in the XML template of the
context message.
Type The type of mapping. This table shows the possible values for this column:
Type Description
field The placeholder can be replaced directly with the value of the field.
none There is no mapping; the element that refers to this mapping in the XML template
of the context message is skipped when the message is constructed.
hook A hook will calculate the value for the placeholder. Selecting the row automatically
loads the hook into the hook editor.
func- A function is called; the return value of the function is used for the substitution.
tion
Source The possible values for this column depend on the type of mapping specified in the Type
column. This table shows the possible values for the Source column:
Type of map-
ping Value for Source column
field A table field from the current table
none Empty
hook Empty
function A function from the Infor ES Programmer's Guide (Infor Support Portal
KB 22924522), Functions hook, or from a library that has been linked
to the model by “pragma used dll” in the Include hook.
Hook
Source viewer panel
This section is similar to the Hook section on the Tables page.
The Inherit check box indicates whether the hook type is 'inherit' or 'override':
• If you select this check box, the current hook is deleted and the corresponding hook from the
referenced table is displayed. The hook editor is read-only.
• If you clear this check box, the hook is copied and can be edited. The new hook overrides the
logic of the inherited hook.
If there is no hook to inherit, the Inherit check box is disabled.
The LN Studio script editor is used to edit the source code of UI scripts, libraries, DALs, functions, and
report scripts.
The script editor is embedded in the Source tab of these multipage editors:
• Function Editor on page 161
• Library Editor on page 169
• Report Editor on page 184
• Session Editor on page 198
• Table Editor on page 240
You can edit multiple software components simultaneously. Each component is displayed in a separate
tab.
Associated with the script editor is an Outline view, which shows the structure of the active source
code. The Outline view is updated automatically when you edit the source code.
See the following figure for an example.
LN Studio preferences
Use these pages to define LN Studio-specific preferences:
• Preferences - Editor
Use this page to define various editor preferences. You can specify the "Marker Identifier" used in
maintenance comments, and define background color settings for the editor. You can also enable
Mark Occurrences, and indicate whether the editor must highlight matching brackets.
• Preferences - Syntax
Use this page to define different font colors for the various sections in the 4GL scripts and libraries.
• Preferences - Code Assist
Use this page to define Code Assist settings, such as background color and foreground colors for
completion proposals, and the auto activation trigger character.
• Preferences - Folding
Use this page to define the preference settings for Folding. For example: you can select the region
types for which folding must be enabled, and you can specify whether folding must be enabled
when you open a new editor.
• Preferences - Templates
Use this page to define templates for various 4GL programming statements, such as case, for,
repeat and while. You can use Code Assist to include these templates in your scripts or libraries.
Source Tab
The LN Studio script editor is embedded in the Source tab of various multipage editors. In this tab,
you can edit the source code of UI scripts, libraries, DALs, functions, and report scripts.
This figure shows the source tab and its shortcut menu:
This bar is used to display various types of markers, for example: error markers, warning markers,
breakpoint markers, task markers, and so on.
This figure shows an example:
Each marker is related to the line next to which it is displayed. When you hover over a marker, the
description of the corresponding error, warning, breakpoint, etc. is displayed in a ToolTip. For example,
when you hover over the warning marker in the previous figure, the following description is displayed:
"Statement not reached".
The following markers can appear in the marker bar:
For details on breakpoints and on the corresponding breakpoint markers, see these sections:
• Using breakpoints on page 69
• Breakpoints view on page 305
For details on VSC warnings, see Verifying software components on page 57.
For details on the other marker types, see the Markers topic in the Workbench User Guide.
Note:
• The markers are not only displayed in the marker bar, but they are also shown in various views,
such as the Problems view, the Breakpoints view and the Tasks view. From these views, you
can quickly jump to the marked location within the corresponding source. For example, when you
double-click a problem in the Problems view, the script editor opens the corresponding source on
the involved line.
• The appearance of the different markers in the marker bar depends on the settings in the
Annotations preferences page. You can access this preference page via the Preferences dialog.
See Script Editor Preferences on page 267.
Command Description
Add /Remove Book- Adds or removes a bookmark or task for a line.
mark Add /Remove To define a bookmark or task for a specific line in your source code, right-
Task click on the marker bar next to that line, and click the relevant command on
the context menu. A dialog appears where you can enter the bookmark or
task properties. When finished, a new bookmark or task marker appears in
the marker bar.
Note: You can also view (and modify or remove) the new bookmark or task
in the Bookmarks view or in the Tasks view.
To remove a bookmark or task, right-click the corresponding marker in the
marker bar, and click the relevant Remove command on the shortcut menu.
Show Quick Diff Enables / disables the QuickDiff feature. QuickDiff automatically adds color-
coded change indicators in the marker bar while you are typing. The colors
show additions, deletions, and changes to the editor buffer as compared to
a reference, for example, the contents of the file on disk. When you hover
the mouse cursor over a change indicator in the marker bar, the original
content is displayed.
You can configure QuickDiff settings, such as colors for the change indicators,
in the Quick Diff - Preferences page. You can access this preference page
via the Preferences dialog.
See Script Editor Preferences on page 267 and the Workbench User Guide.
Note: This command is not only used to enable the QuickDiff feature, but is
also used to disable QuickDiff.
Show Line Numbers Toggle to display line numbers.
Show Mark Occur- Enables/disables the Mark Occurrences feature.
rences See Mark Occurrences on page 284.
Command Description
Highlight Matching Enables/disables the highlighting of matching brackets in the source code.
Brackets If this option is selected, the corresponding bracket is highlighted automati-
cally when you place the cursor directly behind a bracket.
This functionality applies to the following types of brackets:
• Parentheses: (, ).
• Braces: {, }.
Show Whitespace Enables/disables the whitespace characters.
Characters
Preferences Opens the Eclipse Text Editors preferences page. See the Workbench User
Guide.
Note: To change the LN Studio script editor preferences, start the Prefer-
ences - Editor page.
See Setting user preferences on page 32.
Folding/Collapse All Collapses all expanded code elements such as functions.
See Folding on page 281.
Folding/Expand All Expands all folded code elements such as functions.
See Folding on page 281.
Toggle Breakpoint Adds or removes a line breakpoint for the current line.
If the current line is part of a function header, the command adds or removes
a method breakpoint.
Note:
• When you define a method breakpoint, the corresponding marker is al-
ways displayed next to the line that contains the word "function".
• Alternatively, you can double-click in the marker bar to add or remove a
line breakpoint or a method breakpoint.
• You can also use the Breakpoints view to disable, enable, or remove
breakpoints.
See Using breakpoints on page 69.
Note: The following marker types cannot be added via the marker bar:
Error and warning mark- These markers are system-generated. You can view the corresponding
ers error and warning details in the Problems view.
Search result markers These markers are generated by the search command. The correspond-
ing search result details are displayed in the Search view.
Overview ruler
If enabled, the overview ruler is displayed at the right hand side of the editor area, and shows all markers
concerning the entire document.
The markers are shown relative to their position in the document and do not move as you scroll the
document.
You can click a marker to navigate to the corresponding location in the source code. When that portion
of the document is visible, there usually is a corresponding marker on the marker bar at the left hand
side of the editor area.
Note: The appearance of the different markers in the overview ruler depends on the settings in the
Annotations preferences page. You can access this preference page via the Preferences dialog.
For more information, see the Script Editor Preferences on page 267 section.
Command Description
Compare With Contains commands to compare different versions of the source code.
See Comparing Source Code Versions on page 275.
Command Description
Clean Source Opens a cleaned version of the source in a separate editor.
In the cleaned source, all code marked as old is removed: The script editor
removes the following:
• Lines that contain the "|#<Current ActivityName>.o" comment.
• Blocks where the first line contains the "|#<Current ActivityName>.so"
comment and the last line contains the "|#<Current ActivityName>.eo"
comment.
In code marked as new, the script editor removes the corresponding com-
ments:
• "|#<Current ActivityName>.sn"
• "|#<Current ActivityName>.en"
• "|#<Current ActivityName>.n"
For details on code marked as old, and code marked as new, see Comments
on page 279.
Note:
• The cleaned source is read-only.
• When you close the cleaned source, the corresponding file is removed
from the workspace.
Toggle Comment / Use these commands to comment out and uncomment lines of code. You
Mark as New / Mark can toggle comments, mark modified lines, mark new lines, and add com-
as Old / Add Com- ments.
ment See Comments on page 279.
Add Linked Library Use this command to link a library to the component that you are editing.
Use this command as follows:
1 In the source code, select a function call.
The selected function must be stored in a library. The function name
must meet the coding standards.
For example, the source contains this code: RETIFNOK(tcmcs.dll0
095.read.parm("tdsls000")). Select tcmcs.dll0095.read.p
arm("tdsls000").
2 Right-click and run this command.
The library in which the selected function is stored, for example tcm-
cs.dll0095, is added to the list of linked libraries in the Script tab.
Generate Source Use this command to generate LN 4GL code, based on a URL or a Web
from WSDL Services Description Language (WSDL) file, for a general library.
See Generating Source from WSDL on page 291.
Application Search Use this command to search in which LN software components the expres-
sion, that you selected in the script editor, is used.
See Application Search on page 275.
Command Description
Keyword Search Performs a keyword search in the online help.
See the Keyword Search on page 284 section.
Open Declaration Use this command to view the source code of the selected software compo-
(source) nent. LN Studio opens the Source tab of the corresponding multipage editor.
See Open Declaration on page 285.
Open Declaration Use this command to view the properties of the selected software component.
(properties) LN Studio opens the Overview tab of the corresponding multipage editor.
See Open Declaration on page 285.
Quick Outline Lists the main structural elements of the source code you are editing. You
can use the displayed elements to quickly navigate to the corresponding
sections in the source code.
See Quick Outline view on page 289.
Modification Watch- Adds a modification watchpoint for the selected variable or table field. A
point watch expression is added automatically. When debugging, the session ex-
ecution suspends each time the variable or table field changes.
Important: You must be sure that the selected text really is a variable or table
field. The script editor does not check this.
See Using breakpoints on page 69.
Watch Creates a watch expression for the selected variable. When debugging, the
watch expression is evaluated each time a session suspends.
See Evaluating expressions on page 68.
Condition Watchpoint Starts a dialog where you can enter a condition watchpoint for a local or
global variable. A watch expression is added automatically. When debugging,
the session execution suspends when the variable gets a certain value.
See Using breakpoints on page 69.
Keyboard shortcuts
This table shows keyboard shortcuts you can use in the script editor:
When you run these commands, the Text Compare window is displayed. This window shows both
versions of the source code side by side. The differences between the versions are highlighted.
Application Search
You can use the Application Search command to find out in which LN software components an
element, selected in the script editor, is used.
The application search functionality depends on the Enterprise Server version of the LN server.
Code Assist
When you enter text in the editor, Code Assist can provide you with a list of suggested completions for
partially entered strings.
To use code assist:
1 Press Ctrl+Spacebar directly after the last character of the string you want to complete.
A list of completion proposals is displayed. This list can contain:
• Various types of 4GL elements, such as functions, predefined variables, keywords, and program
sections. These are read from the Infor ES Programmer's Guide (Infor Support Portal KB
22924522).
• Templates for programming statements, such as the on case statement and the while
statement. These templates are defined in the Preferences - Templates dialog.
• Functions that are declared in the source you are editing.
• Functions declared in includes and libraries that are used in the source you are editing.
• Domains.
• Enumerated constants.
• Tables.
• Table fields.
• Index fields in the where clause of a select statement.
• External functions in the DAL that is selected in the dal.start.business.method function. You
must press Ctrl+Spacebar after the comma behind the first argument of the
dal.start.business.method function.
2 Double-click the completion proposal you want to use. The completion proposal, for example a
function name, or a template text, is added to your source code.
The following is displayed when you start Code Assist after typing "on":
When you double-click the on case statement in the previous figure, the template is inserted in the
editor:
Note: After inserting a template in the editor, press Tab to navigate through the template's variables.
Icons
Code Assist can display suggestions for various types of 4GL elements. The following icons are used
to distinguish the different element types:
Note:
• Code Assist can also display suggestions for keywords, SQL statements, some standard macro
definitions, and various sub sections. However, these types are displayed without icons.
• Code Assist does not display report main sections and form.<form number> sections.
Preferences
You can define various preferences for Code Assist, such as the following:
• Automatic insert of completion proposals
• Background color for the completion proposal
• Foreground color for the completion proposal
• Auto activation trigger character (default is the dot (.) sign). Code Assist is started automatically
when you type this character.
• Important: the auto activation trigger character is used as part of the search string. For example,
when you type "aud.", Code Assist shows a list of functions whose names start with "aud."
(including the dot sign!); for example "aud.audit.is.on.for.table" and "aud.close.selection".
Function names starting with "aud" (without the dot sign), such as "aud_close_audit" and
"aud_get_audit_dd", are not displayed.
To define preferences for Code Assist:
1 Select Window > Preferences. The Preferences dialog box is displayed.
2 In the tree structure in the left pane of the dialog box, select Infor LN Studio Application > Editor
> Code Assist. The Preferences - Code Assist dialog box is displayed. See the dialog box's
online help for details.
2 In the tree structure in the left pane of the dialog box, select Infor LN Studio Application > Editor
> Templates. The Preferences - Templates dialog box is displayed.
3 Click New to add a template. A details dialog box is displayed.
4 In the Name field, enter the name for the template. This name does not have to be unique. It is
used as a display name only.
5 In the Description field, enter a brief description of the template.
6 Specify the template pattern in the Pattern field. The pattern may contain pre-defined variables.
See Preferences - Templates on page 116.
7 Click OK to return to the Preferences - Templates dialog.
8 Click Apply to save the new template.
9 Click OK to close the Preferences dialog.
You can now use Code Assist to insert the template in your scripts and libraries.
Comments
The LN Studio Script Editor enables you to easily comment out and uncomment lines of code. You can
toggle comments, mark modified lines, mark new lines, and add comments.
Toggling comments
Use the Toggle Comment command to (un)comment one or more lines:
1 Put the cursor in the desired line, or select the desired lines.
2 Right-click and select Toggle Comment.
When you comment lines, a comment pipe symbol [|] appears at the beginning of each of the selected
lines. This prevents the lines from being compiled or interpreted.
This figure shows an example:
The comment pipe symbols are removed when you uncomment the lines.
Maintenance comments
You can easily add maintenance comments to existing scripts or libraries. You can mark existing lines
that you modified, and new lines that you added.
When you add a maintenance comment, the editor generates a comment text that consists, among
other things, of a Marker Identifier. The Marker Identifier is determined by the editor preferences, and
can be the name or requirement ID of your current activity or project.
See Preferences - Editor on page 112.
Note: When you use the Toggle Comment command to uncomment a line, only the pipe symbol [|]
at the beginning of the line is removed. Comment text at the end of the line (for example maintenance
comment text such as " |#myactivity.so ") is not removed.
• Note: If you selected only one line, the comment text is: " |#<Marker Identifier>.n ".
Adding comments
You can use the Add Comment command to read descriptions, such as domain and table descriptions,
from the data dictionary on the LN server. These descriptions are added as comments in your script.
To add these comments to your script:
1 Right-click and select Add Comment.
2 A message is displayed: you are prompted to save changes and to perform the action. Click OK
to add the comments.
This sample code shows table names that were added through the Add Comment command:
Folding
In the script editor you can fold and unfold code elements (regions). When you fold a code element,
the element is collapsed so that the corresponding source code is hidden. The folding of elements can
provide a better overview of the script structure, especially in large scripts.
The script editor supports folding of the following region types:
• functions
• header comments. Note: only header lines with a double *, for example lines starting with “|**”, are
folded.
• macros
• sections
To fold a region, click the minus sign that is displayed at the beginning of the region. A plus sign is
displayed at the beginning of the folded region.
This figure shows an example:
Note: You can unfold all folded code elements in one go: right-click the marker bar (located at the left
of the editor area) and select Collapse All.
Incremental Find
You can use the Incremental Find Next and Incremental Find Previous commands to search for
expressions in the active editor. As you type the search expression, the cursor incrementally jumps to
the next or previous exact match in the active editor.
To use the Incremental Find Next command:
1 Press CTRL+J in the script editor or select Edit > Incremental Find Next.
2 Type the expression you are searching for. The search expression is displayed in the Workbench
status line. As you type, the editor finds the next exact match of the text and updates the selection
after each character typed.
For example:
• when you type the character "a", the cursor jumps to the next exact match of the character
"a".
• When you subsequently type an "s", the cursor jumps to the next exact match of the string
"as"
• When you subsequently type a "c", the cursor jumps to the next exact match of the string "asc"
Note: to undo the last action, press Backspace.
3 Use the Up Arrow and Down Arrow keys to navigate between matches.
4 To cancel the search, press one of the following keys: Left Arrow, Right Arrow, Enter or Esc.
The Incremental Find Previous command works in a similar way. When you type an expression, the
editor finds the previous exact match of the text and updates the selection after each character typed.
To start this command: press Ctrl+Shift+J in the script editor or, on the Edit menu, select Incremental
Find Previous.
Keyword Search
In the script editor you can select a piece of text, and perform a keyword search to get more information
on it.
The Keyword Search feature searches for multiple string hits of the selected text in the LN Studio online
help. This online help includes the Infor ES Programmer's Guide (Infor Support Portal KB 22924522).
To perform a keyword search:
1 Select the text for which you want to perform the search.
2 Right-click and select KeyWord Search.
For example, you select the text zoom.from in the source and you run the KeyWord Search command.
This figure shows the information that is displayed:
Note: When you use KeyWord Search for the first time, the help is indexed automatically. This may
take a while.
Mark Occurrences
You can use this feature to mark occurrences of the selected element in the current source code.
If Mark Occurrences is enabled, the script editor can display markers to indicate where a variable,
method, type, or other element is referenced.
Marking occurrences
To mark occurrences of an element, double-click the element. The script editor shows markers in the
marker bar and overview ruler, to indicate references of the selected element.
This figure shows an example:
Note: The appearance of the markers depends on the settings in the Annotations preferences page.
You can access this preference page via the Preferences dialog. See Script Editor Preferences on
page 267.
Open Declaration
Use the Open Declaration command to view detailed information on an element in your source code,
such as a domain code, a table code, a message code, or a function call.
Open Declaration can display the general properties or the source code of the selected element.
Note:
• Open Declaration only works on compiled scripts.
• Open Declaration does not work for all types of 4GL elements. See the following section.
Example
In the script editor, you select the ttccom000 table code. Then you press SHIFT+F3. The Overview
tab of the Table Editor starts. The properties of tccom000 are displayed.
Example
In the script editor, you select the ttccom000 table code. Then you press F3. The Source tab of the
Table Editor starts. The source code of the DAL script of tccom000 is displayed.
Argu-
Function ment
abort.io mes-
skip.io sage
act.and.sleep session
activate
wait.and.activate
Argu-
Function ment
ask.enum question
brp.open report
brp.open.language
spool.open
dal.set.error.message mes-
dal..warning.message sage
dal.set.info.message
dialog.add.button label
dialog.add.field
dialog.add.listbox
disable.satellite session
enable.satellite
satellite.invisible
enum.descr$ domain
form.text$ mes-
sage
get.session.permission session
load_dll library
exec_dll_function
get_function
parse_and_exec_func-
tion
mess mes-
sage
pcm.activate.session session
set.max domain
set.min
set.fmax
set.fmin
set.input.error mes-
sage
set.synchronized.dialog session
start.session session
start.synchronized.child session
Argu-
Function ment
substitute.session session
tt.align.according.do- domain
main
tt.index.desc table
tt.is.domain.separated domain
tt.label.desc label
tt.report.desc report
tt.session.desc session
tt.session.present session
tt.table.desc table
zoom.to$ session
Example
A script contains the following code: spooler = spool.open("rtccom040101000","D",0).
When you run Open Declaration for the spool.open function, the function's help text is displayed.
When you run Open Declaration for the rtccom040101000 argument, LN Studio opens the
tccom040101000 report in the Report Editor.
Miscellaneous elements
This table shows a number of elements and the actions that are performed when you run Open
Declaration for those elements.
Element Action
#pragma used Adds the DLL to the workspace. Opens the DLL in the LN Studio script editor.
dll
Macro call The cursor jumps to the macro definition.
Local Functions For example: You use Open Declaration on a name of a function that is declared
somewhere else in the same script or library. The focus is set on the function
declaration.
You can use the displayed elements to quickly navigate to the corresponding sections in the source
code. You can for example:
• Click a folder icon to expand the corresponding tree. Subsequently, click an element to go to the
corresponding section in the source code. The view closes automatically.
• Specify a search pattern in the input field in the upper part of the view. As you type the search
expression, the element with the first match is highlighted. Click the element to go to the
corresponding section in the source code. The view closes automatically.
• Click in the view and use the arrow keys to navigate to an element, and press ENTER to go to the
corresponding section in the source code. The view closes automatically.
If you do not want to navigate, click the Close button or press ESC to close the view.
Note: This view is similar to the Outline view on page 320.
Text Hovering
Text hovering means that informational text is displayed when you hover with the mouse over a piece
of text in the editor area.
The 4GL script editor supports text hovering for various elements, such as:
• LN standard functions: When you hover over a function name, the editor automatically shows the
syntax of the function. The function syntax is displayed as tool-tip information.
Press F2 to display the corresponding manual page from the Infor ES Programmer's Guide (Infor
Support Portal KB 22924522).
• Folded code elements (regions): When you hover over a folded 4GL element, the hidden code is
displayed.
For an example, see Folding on page 281.
• The markers in the marker bar (to the left of the editor area), and in the overview ruler (to the right
of the editor area). For example: When you hover over a problem marker, or over a warning marker,
the corresponding description is displayed in a ToolTip. For more information on the marker bar
and the overview ruler, see Source Tab on page 268.
• Initiated variables in the Debug perspective: For example, when you debug a session, you can
hover the cursor over an initiated variable in the editor area in the Debug perspective. The variable's
value is displayed in a ToolTip.
• Domains, enumerated constants, tables, table fields, and table indices.
• Macros: When you hover over the name of a macro, which is defined in the current script or library,
the editor displays the syntax of the macro.
• Messages and questions: when you hover over the name of a message or question, the
corresponding description is displayed.
• Enums: during debugging, when you hover over the name of an enum constant, the corresponding
numeric value and description are displayed.
Note: For all functions, you can use the Keyword Search on page 284 command in the editor's shortcut
menu, to view the corresponding manual page from the Infor ES Programmer's Guide (Infor Support
Portal KB 22924522).
ToDo Comments
In the script editor, you can create to-do reminders in the script or library you are editing. These
reminders are displayed in the Tasks view in the LN Studio workbench.
To create a to-do reminder, enter "|TODO:" and type the text for the reminder.
You can type the characters "TODO" in uppercase, in lowercase, or use a combination of both cases.
So, "|ToDo:" and "|todo:" are also valid.
This diagram shows an example:
Note: To ensure the ToDo reminders are displayed in the Tasks view, click the Menu button and select
Show > Show all. All tasks, including the ToDo reminders, are displayed.
Alternatively, define and activate a filter to display only ToDo reminders:
1 To define the filter:
a Click the Menu button and select Configure Contents. The Configure Contents dialog box
is displayed.
b In the Configurations pane, select TODOs.
c Under Scope, select On any element.
d In the Types box, select Infor LN Studio Todo. Clear the other check boxes.
e Click OK.
2 To activate the filter, in the Tasks view, click the Menu button and select Show > TODOs.
Toggle Breakpoints
A breakpoint is a point in a program that, when reached, triggers some special behavior useful to the
process of debugging.
In the LN Studio, you can define multiple types of breakpoints:
• You can easily set and remove line breakpoints, and define watchpoints, in the script editor.
• You can toggle method breakpoints in the Outline view.
For details on these types of breakpoints, and on how to define them, see Using breakpoints on page
69.
Application perspective
This perspective provides functionality for software engineers to develop software components.
The perspective consists of multiple views and an editor area.
For detailed information on the views in the perspective, see:
• Activity Explorer view on page 296
• Component Explorer view on page 308
• Outline view on page 320
• Problems view on page 323
• Verify Components view on page 331
• Tasks view on page 326
• Progress view on page 325
These editors can run in the editor area:
• Various multipage editors that you can use to edit software components, such as sessions, menus,
labels, libraries and messages. See Multipage Editors on page 144.
• A script editor that supports the 4GL programming language. A content assistant is available,
supporting syntax highlighting and completion of keywords. The editor also supports an outline of
the scripts or libraries. See Script Editor on page 264.
For details on the procedure to develop software components, see Developing software components
on page 54.
This table shows the most important buttons in the perspective's toolbar:
Button Description
Checks out the component you selected in the
Activity Explorer.
Check Out a Component (Alt+C, Alt+O)
Checks in the component you selected in the
Activity Explorer.
Check In a Component (Alt+C, Alt+I)
Cancels the check-out for the component you
selected in the Activity Explorer.
Undo Check Out a Component (Alt+C, Alt+U)
Button Description
Starts the Select Component(s) dialog box.
Select a Software Component (Alt+Q) See Select Component(s) on page 92.
Debug perspective
The Debug perspective provides functionality for software engineers to debug software components.
You can use this perspective to perform these actions:
• Suspend and resume the execution of a component.
• Step through the execution of a program.
• Inspect values of variables.
• Evaluate expressions.
• Enable and disable breakpoints.
The perspective consists of multiple views and an editor area.
For detailed information on the views in the perspective, see:
• Debug view on page 311
• Variables view on page 328
• Breakpoints view on page 305
• Expressions view on page 314
• Outline view on page 320
• Tasks view on page 326
Note: By default, the Expressions view is not displayed in the Debug perspective. To open this view,
select Window > Show View > Expressions.
For details on the LN Studio editors, which can run in the editor area, see:
• Script Editor on page 264
• Multipage Editors on page 144
For details on how to debug LN sessions, see Debugging LN sessions on page 63.
Nr. in fig-
ure Description
1 Name of an open activity, with the Project Name between square brackets.
2 LN package code, displayed in ascending order (for example: td, tf, tp).
Nr. in fig-
ure Description
3 Main Component Type, displayed in ascending order. For example: domain, report,
session, or table.
4 LN module code, displayed in ascending order.
The module code is displayed for all component types, except domains, labels, mes-
sages, and questions.
5 LN software component, with the component description between brackets, displayed
in ascending order.
To open a software component in the corresponding editor, double-click the component.
Toolbar
The toolbar of the Activity Explorer view includes these buttons:
Link with Editor Toggles whether the Activity Explorer selection is linked to the active editor.
When this option is selected, changing the active editor will automatically update
the Activity Explorer selection to the resource being edited.
Open an LN Stu- Starts the Open an Activity wizard, where you can select an activity that is
dio Activity assigned to you. See Developing software components on page 54.
Directly open the If this option is selected, the multipage editor directly opens the Source tab (if
Source Tab the source code is available) when you open a component.
If this option is not selected, the editor opens the Overview tab.
See Multipage Editors on page 144.
Clean Activity Removes unchanged components from your activity. The command only re-
moves files that are not checked out, created, or modified. See Cleaning an
activity on page 50.
This command is useful when your activity contains a lot of unchanged compo-
nents, such as when you have frequently used the Open Declaration command.
Recover Activity Restores the components in your activity from the Configuration Management
System on the server to your local workspace. Optionally, unchanged compo-
nents are removed from the workspace.
See Recovering an activity on page 51.
Menu Provides, among other things, menu items that allow you to do the following:
• Open, deselect and change working sets. See "Working sets" in the Work-
bench User Guide.
• Sort the items in the view by full name, or by type/extension.
• Apply a filter.
• Toggle whether the view selection is linked to the active editor.
• Show Checked Out/Modified components only. This option is useful if your
workspace contains a lot of components not checked out, such as when
you have frequently used the Open Declaration command.
See the Workbench User Guide.
Note: The remaining buttons are standard Eclipse commands. For details on these buttons, see "User
interface information" in the Workbench User Guide.
Shortcut menu
To open the shortcut menu, right-click a resource in the view.
This menu provides, among other things, the following commands:
New Allows you to open a new activity in the root node, or to create a new component
in the current activity.
To open an activity, on the submenu, select Infor LN Studio Application Project
(Open Activity). The Open an Activity wizard starts.
When you open an activity, the following occurs:
• The activity is automatically placed under the control of configuration man-
agement.
• The content of the associated development repository is displayed in the
Component Explorer. This view is refreshed and a (closed) tree with the
LN packages is displayed for the Application linked to the software project
to which the activity belongs.
To create a new component, on the submenu, select Infor LN Component. The
Create a New Infor LN Software Component wizard starts.
Open Opens the selected software component in the LN Studio in the corresponding
multipage editor.
Open With Allows you to open the selected software component in an editor other than the
component's default editor. Select the desired editor from the submenu.
Copy Copies the selected resource to the clipboard.
Paste Pastes resources on the clipboard into the selected project or folder. The resource
is not added to the Revision Control System. If a resource is selected, the re-
sources on the clipboard are pasted as siblings of the selected resource.
Delete Deletes the selected resource from the workspace.
Note: This command can only delete components that are not checked out, cre-
ated, or modified in the current activity. These components have a decorator
in the bottom right corner of the software component image.
Move Moves the selected resource to another location. A dialog is displayed, requesting
the location to which the resource must be moved.
Rename Allows you to specify a new name for the selected resource.
Import Opens the import wizard and allows you to select resources to import into the
Workbench.
Export Opens the export wizard and allows you to export resources to an external loca-
tion.
Refresh Refreshes the Workbench's view of the selected resource and its children. For
example, when you create a new file for an existing project outside the Workbench
and want the file to appear in the Activity Explorer view.
Duplicate Com- Starts the Duplicate an Infor LN Software Component wizard, where you can
ponent duplicate the selected component.
Verify Compo- Performs quality control on the selected software component(s). The command
nent executes various checks based on the Infor LN design principles.
When you verify software components, a list of warnings is generated. You can
decide to accept each warning, or to solve the problem. See Verifying software
components on page 57.
Link Run Config- Starts a dialog where you can link existing run configurations to the selected ac-
urations tivity.
See Linking run configurations to an activity on page 52.
This command is only displayed if you select an activity.
Run As This menu contains these commands:
• Infor LN Session Alt+Shift+X, L
Starts the selected session and automatically generates a run configuration
for the session.
This option is only displayed if you right-click a session in the view.
• Run Configurations
Starts the Configurations dialog. Use this dialog to create or modify run
configurations.
For more information, see Running LN sessions on page 61.
Note:
• Some commands in the shortcut menu, such as Checkout and Run as, are also available as
buttons in the toolbar in the Application perspective.
See Application perspective on page 293.
• The previous list does not describe all commands in the shortcut menu. The remaining commands
are standard Eclipse commands. For details on these commands, see "User interface information"
in the Workbench User Guide.
• Reassign Activity
Starts the Reassign Activity dialog, where you can assign the activity to another user.
• Cancel Activity
Use this command to undo all changes in an activity.
• End Activity
Closes the activity and releases the changed components to the Project VRC.
In the Preferences - Infor LN Configuration Management dialog, you can set the default behavior
for this command.
Icons
The following icons are displayed in the Activity Explorer view:
Decorators
CM decorators
The following decorators are used to show Configuration Management related status information, which
is mutually exclusive. The decorators are displayed in the bottom right corner of the software component
image.
Compiler decorators
The following decorators are used to indicate errors and warnings. The decorators are displayed in the
bottom left corner of the images of the involved nodes.
The decorators are displayed for the involved software component and for all parent nodes.
For example, if a library contains invalid code, error decorators are displayed for the library itself, and
also for the module, the main component type, the package, and the activity to which the library belongs.
See the following figure:
VSC decorators
The following decorators are used to indicate the VSC status of a software component. The decorators
are displayed in the upper right corner of the software component image.
"Expired" decorator
The following decorator is used to indicate a software component is expired. The decorator is displayed
over the software component image.
Breakpoints view
The Breakpoints view shows a list of all available breakpoints and their state (enabled, disabled,
resolved and invalidated).
In this view, you can perform these actions:
• Double-click a breakpoint, or use the Go to File command, to display its location in the Script
Editor.
• Enable or disable breakpoints.
• View or modify the properties of a breakpoint.
• Delete breakpoints.
Note: You cannot add new breakpoints in this view. New breakpoints are added via the Script Editor
and via the Outline view.
For information on adding breakpoints, see Using breakpoints on page 69.
Toolbar
The toolbar of the Breakpoints view contains these buttons:
Show Breakpoints Support- When you use multiple programming languages within the Eclipse
ed by Selected Target workbench such as Infor 4GL and Java, you can define different types
of breakpoints per language.
If this option is toggled on, only breakpoints applicable to the selected
debug target are displayed, such as the following:
• You debug an LN session, only the LN specific breakpoints are
displayed.
• You debug a Java program, only the Java specific breakpoints
are displayed.
Go to File for Breakpoint Displays the source code and the line associated with the selected
breakpoint in the Editor area. Double-clicking a breakpoint has the
same effect.
Skip All Breakpoints Disables all breakpoints.
Link with Debug View When this option is toggled on, the breakpoints hit by the debugger
are automatically highlighted in the Breakpoints view.
Add Java Exception Break- Starts the Add Java Exception Breakpoint dialog box. See the online
point help of the dialog box.
Shortcut menu
Right-click on any breakpoint in the view to open a shortcut menu. The menu contains these commands:
• Go to File
• Enable
• Disable
• Remove
• Remove All
• Select All Ctrl + A
• Copy Ctrl + Insert
• Paste Shift+Insert
• Export Breakpoints
• Import Breakpoints
• Properties
Use the shortcut menu to enable and disable breakpoints. Alternatively, select or clear the check boxes
displayed in front of the breakpoints.
When you run the Properties command, a dialog box is started where you can view and modify the
properties of the selected breakpoint. In this dialog box you can, for example, enable or disable a
breakpoint. See:
• Line Breakpoint properties on page 111
• Method Breakpoint properties on page 111
• Watchpoint properties on page 111
Decorators
The following decorators are used to indicate whether a breakpoint is installed or invalidated. They are
displayed in the bottom left corner of the breakpoint icon.
Use this view to add these software components to your personal activity in the LN Studio:
• Additional Files
• Domains
• Functions
• Labels
• Libraries
• Menus
• Messages
• Questions
• Reports
• Sessions
• Tables
The following table describes the different nodes in the previous figure.
Nr. in fig-
ure Description
1 Application that determines the development repository to be used.
2 LN package code displayed in ascending order (for example: td, tf, tp).
3 Main Component Type. For example: Domain, report, session, or table.
Nr. in fig-
ure Description
4 LN module code displayed in ascending order.
The module code is displayed for all component types, except domains and labels.
5 LN software component displayed in ascending order.
Double-click a software component to add the component to your personal activity.
Toolbar
The toolbar of the Component Explorer view includes the following buttons:
Refresh Refreshes the contents of the view. For example, use this command
when you have created a new session on the LN server and want
the session to appear in the Component Explorer view.
Hide expired components Hides components with the Expired status.
Hide checked out compo- Hides components already checked out.
nents
Shortcut menu
To open the shortcut menu, select one or more software components in the view. Then right-click.
The shortcut menu contains the Get command. Use this command to link the selected software
components to your current activity.
The components are now displayed in the Activity Explorer view. You can now check out and edit
the components. For more information, see Developing software components on page 54.
Note: When you use the Get command, the editor can automatically start for the selected components.
However, this depends on your workbench preference settings. See Preferences - Workbench on page
119.
Note: The Loading node is displayed when information is retrieved from the server. For example, this
happens when you open a node for the first time.
Such a load process is time-consuming. Therefore the information is gathered in the background.
Debug view
The Debug view allows you to manage the debugging or running of Infor LN sessions in the workbench.
The view displays a list of sessions, either started normally (in run mode) or started in debug mode. It
also shows related information (stack frames) and state information (terminated, running or suspended).
If you suspend a session, the view displays the stack frames for the suspended session. A session is
displayed as a node in the tree. The corresponding stack frames are displayed as child elements.
Toolbar
The toolbar of the Debug view contains the following buttons:
Remove All Terminat- Removes all terminated sessions from the Debug view.
ed Launches
Resume Resumes a suspended session. The session resumes its execution and
stack frames are no longer displayed for the session. The Variables view
is cleared.
Suspend Requests to suspend a running session. The session is suspended when
the next debugable line is hit. See Suspending sessions on page 66.
Terminate Terminates the session related to the selected item.
Disconnect This command is not supported by LN Studio.
Step Into Steps into the current statement. This command invokes the next instruction
to be executed. The execution suspends at the next executable line.
Note: Ensure the Reuse editor when displaying source code option in
the Run/Debug preferences dialog is disabled. If this option is enabled,
and you use the Step Into command while the script is not in the workspace,
an error page is displayed in some situations.
Step Over Steps over the current statement. This command executes the next instruc-
tion. The execution suspends on the next executable line.
Step Return Continues the execution until the end of the current function.
Note: This command is equivalent to the return action in the classic 4GL
Debugger.
Note:
• Most of these commands are also available in the Run menu in the Eclipse Workbench.
• The Run menu contains an additional command: Run to Line (CTRL+R). This command moves
the execution pointer, without executing code, to the line you selected in the Script Editor. Run to
Line is equivalent to the Go to Line action in the classic 4GL Debugger.
• For more information, see Debugging LN sessions on page 63.
Shortcut menu
Right-click on any resource in the view to open a shortcut menu. This table shows commands in the
menu:
Copy Stack Copies the selected stack of suspended sessions and the state of the
running sessions to the clipboard. You can paste the information from the
clipboard into various applications, such as MS Word and Notepad.
Find Starts a dialog where you can enter a search expression to find items in
the Debug view.
Terminate and Re- Terminates the session related to the selected item and relaunches the
launch session.
Remove All Terminated Removes all terminated sessions from the Debug view.
Relaunch Re-launches the session related to the selected item.
Edit <session name> This command is not supported by LN Studio.
Terminate and Remove Terminates the session related to the selected item and removes the ses-
sion from the Debug view.
Terminate All Terminates all sessions.
Properties Starts a property page with process information for the session you selected
in the Debug view.
For information on shortcut menu commands that are not mentioned in the previous table, see the
descriptions of the Toolbar commands.
Icons
These icons are displayed in the Debug view:
Note:
• You can only suspend sessions started in debug mode. If a session was started normally (in run
mode), you cannot suspend the session, but only terminate it.
• Stack frames are only available when the session is suspended.
Limitations
Exit value not displayed
The exit value of an LN process is not displayed in the Debug view.
“An error has occurred. See error log for more details” error message
While debugging, the message "An error has occurred. See error log for more de
tails" may be given by Eclipse. This is not a fatal error. Click the OK button and resume debugging.
Toolbar
This table shows the descriptions of the toolbar buttons:
But-
ton Description
Refreshes the contents of the view.
Refreshes the context messages for the selected InContext models. Only checked-out
models are processed.
(Re)generates the libraries for the selected InContext session models.
Shortcut menu
Right-click in the view to open a shortcut menu. The commands in the menu are also present in the
toolbar. See the description of the toolbar buttons.
Expressions view
The Expressions view contains a list of watch expressions. Only variables are supported. These watch
expressions are evaluated each time a session suspends. The expressions are evaluated in the context
of the currently selected stack frame.
The left part of the screenshot shows the Debug view with the selected stack frame. The right part
shows the Expressions view with the watch expressions. In the screenshot, the Expressions view
consists of an overview pane (left) and a details pane (right).
The details pane shows this information:
• Value of primitive variables.
• Hexadecimal value of variables of type string.
• XML structure of variables of type XML.
Expressions that cannot be evaluated in the context of the current stack frame are indicated as “cannot
be resolved”.
You can determine the amount of information displayed in the Expressions view. For example, you
can show / hide the following:
• Data type information.
• The details pane.
See the description of the toolbar and shortcut menu commands.
Note: Try to keep the list of expressions limited. This is, because all expressions are evaluated each
time a session suspends, which can affect the performance adversely.
If an array variable contains more than 10 dimensions, the variable is divided into partitions of 10
dimensions.
Toolbar
The toolbar of the Expressions view contains these buttons:
Show Type Names You can toggle this option to show or hide data type names. The data type
names are displayed in front of the expression names.
Show Logical Struc- Displays certain complex data structures in a more compact and meaningful
ture form. For example, elements of a list are displayed as an ordered collection.
Therefore, you can easier navigate complex data structures in terms of their
logical structure, than in terms of their implementation.
Collapse All Collapses all expanded expressions.
Menu Contains these layout options:
• Vertical View Orientation: The details pane is displayed below the
overview pane.
• Horizontal View Orientation: The details pane is displayed next to the
overview pane.
• Expressions View Only: The details pane is not displayed.
Shortcut menu
Use the shortcut menu to add, remove, and edit watch expressions. If you right-click a watch expression
when the debugger is active, the shortcut menu also contains the Reevaluate Watch Expression
command. This command evaluates the watch expression again, which is useful after editing a watch
expression.
Note: To define an expression that must be executed only once, click Execute Assignment Expression.
The Execute Assignment Expression dialog box starts. See the dialog box's online help.
To create a watch expression that is executed each time you step through the execution, click Add
Watch Expression. The Add Watch Expression dialog box starts. In this dialog box, specify the
expression in this format: <variable>:=<value>. Then, select the Enable check box and click OK.
Decorators
The following decorators are used to indicate whether a variable is fixed and / or based. Decorators
are displayed in the upper right corner of the variable icon.
Limitations
Limited to variables
Currently, it is only possible to evaluate expressions that are actually variables. It is not possible to
evaluate other expressions, such as I=0.
History view
This view shows all revisions of the selected component, which are present in the derivation path of
your Activity VRC.
This figure shows the revisions of a session that was selected in the Activity Explorer:
Columns
This table shows the columns in the view:
Column Description
VRC A tree structure that shows this information:
• The Package VRC to which the revision be-
longs.
• The component type.
For sessions and tables, separate revision num-
bers are stored for the session or table itself and
for the corresponding UI script or DAL script. You
can expand the component type node to view the
corresponding script revisions. See the previous
figure.
The other components have only one revision
number.
If you expanded a session or table node, the
shortcut menu items are only enabled if a script
is selected.
Column Description
Revision The number of the revision.
User The user that created the revision.
Check In Date/Time The date the revision was created.
Revision Text The revision text that describes the functionality
of the changed software component.
If the text in a column does not fit in the column, hover over the text. A tooltip with the complete text is
displayed. Click inside the tooltip, or press F2, to view the text in a dialog box.
Toolbar
This table shows the most important toolbar buttons:
Button Description
Refresh
Refreshes the contents of the view.
Link with Editor and Selection
When enabled, the view shows the history for the resource of the active editor
or of the active selection.
Pin this History View
When enabled, pins the view and its contents. Any new requests for history
open a new instance of the History View.
Show Previous Histories
When enabled, you can select a resource, for which a history has been viewed
in the past, from a drop-down menu. This button is disabled when the History
view is opened for the first time.
Expand All
Expands all categories.
Collapse All
Collapses all categories.
Checkout to current
Checks out the component and updates it to the selected revision.
Compare
This button is only enabled if two items are selected. Opens the Compare view
where you can view the differences between both revisions.
Button Description
Compare To Local
This button is only enabled if one item is selected. Opens the Compare view
where you can view the differences between the selected revision and the local
version.
Show revision details
Opens the selected item.
Double-clicking an item has the same effect as this command.
Shortcut menu
Right-click on a selected item to open a shortcut menu. The commands in the menu are also present
in the toolbar. See the description of the toolbar buttons.
Outline view
This view displays an outline of a script or library currently open in the script editor, and lists the main
structural elements.
The contents of the outline depend on the type of library or script. For example:
• For a library, the Outline view displays the corresponding functions.
• For a UI script, the outline consists of functions (if any) and script sections, such as:
• Program sections.
• Form sections.
• Group sections.
• Choice sections.
• Field sections.
• ZoomFrom sections.
• Main Table sections.
This figure shows the outline of a UI script:
When you select a structural element in the Outline view, the cursor will move to the corresponding
line in the script editor.
The Outline view is updated automatically when you edit a script or library.
Toolbar
The toolbar of the Outline view includes the following buttons:
Sort Outline Sorts the displayed folders and their contents alphabetically.
Hide return type Hides return types and arguments of functions.
and arguments
Shortcut menu
The Outline view contains a shortcut menu. This enables you to define method breakpoints.
This table shows the commands in the shortcut menu:
Toggle Method Adds or removes a method breakpoint for the selected function. When started
Breakpoint in debug mode, the session suspends when the execution reaches a function
for which a method breakpoint was set.
This command is only available for functions and not for other structural ele-
ments.
For more information on breakpoints, see Using breakpoints on page 69.
Icons
The following table explains the icons used to identify the structural elements.
For details on the 4GL components mentioned in the previous table, see the Infor ES Programmer's
Guide (Infor Support Portal KB 22924522).
Problems view
The Problems view displays system-generated errors, warnings, or information associated with a
resource. These are typically produced by builders/compilers. For example, if you build a source file
that contains syntax errors, the errors are automatically logged in this view.
Note: If a problem is associated to (a line within) a component, double-click the problem to edit the
component. The script editor opens the component at the involved line.
The problems are grouped into the following severity categories: Errors, Warnings, and Information.
This table shows the columns in the view:
Descrip- A description of the problem. Also indicates the severity of the problem: Error, Warning
tion or Info.
Resource The name of the resource associated with the problem.
Toolbar
This table shows the buttons in the toolbar of the view:
Provides commands to sort and filter the contents of the view, and to define preferences.
Menu The Configure Contents command in the menu starts a dialog box where you can specify
filters. You can filter items according to which resource or group of resources they are associ-
ated with. The filtering is performed by text string within the Description field, or by problem
severity.
Note: To view problems and warnings related to the following, select the appropriate check
box in the Configure Contents dialog box:
• Configuration management: select the SCM Problem check box.
• The source code in your scripts and libraries: select the Script Problem check box.
Known limits
The filter does not work properly if the Link with Editor option in the Activity Explorer is selected.
For example, if you filter “On selected element only”, the compilation errors and warnings belonging
to the source file are not displayed properly.
Shortcut menu
To open the shortcut menu, right-click on a resource in the view.
This menu provides various commands, such as a Properties command to view the properties of the
selected problem.
For details on the other commands, see "User interface information" in the Workbench User Guide.
Icons
These icons are used by the Problems view:
Progress view
The Progress view shows the progress of background processes. For example, it is used when the
following occurs:
• You open an activity.
• CM (Configuration Management) information is loaded from the LN server. This can occur when
you start LN Studio, or the first time you open a node in the Component Explorer view. In both
situations, the requested data is retrieved by a background process. When the process is finished,
the data is displayed in the Component Explorer view.
• You build a software component or a project.
• You verify a software component.
This figure shows an example:
The progress of these processes is displayed in the Progress view, and indicated in the bottom-right
corner of the workbench window. See the previous figure.
Toolbar
The toolbar of the Progress view includes these buttons:
Remove All Finished Oper- Removes all finished operations from the Progress view.
ations
Icons
The following icons are used in the Progress view
Tasks view
The Tasks view displays Eclipse Tasks you add manually.
Each Eclipse task represents an action that needs to be carried out, such as to modify a particular line
in a script. You can associate a task with a resource in the Workbench, but this is not required.
The Tasks view enables you to add new tasks, and to maintain and remove existing tasks.
The second and third task in the screenshot are associated to a line in a script. The first task is not
associated.
Note:
• If a task is associated to (a line in) a script or library, double-click the task to edit the script or library.
The editor opens the script or library at the involved line.
• You can add new tasks from the LN Studio script editor.
For more information, see Source Tab on page 268.
The first column Indicates whether the task is completed. You can manually select or clear the
check box.
The second col- Indicates whether the task is high, normal, or low priority.
umn
Description A description of the line item.
Resource The name of the resource associated with each line item.
Path The folder in your workspace where the resource is stored.
Location The line number of the line item within its associated resource.
Type The type of task, such as "Task" or "Java Task".
You can edit the first three columns directly in the grid, and via the Properties command in the shortcut
menu.
Toolbar
This table shows the buttons in the toolbar of the view:
Provides commands to sort and filter the contents of the view, and to define preferences.
Menu The Configure Contents command in the menu starts a dialog box where you can specify
filters. You can filter items according to which resource or group of resources they are associ-
ated with. The filtering is performed by text string within the Description field, by task priority,
or by task status.
Note: You can define a specific filter for TODO reminders.
See ToDo Comments on page 290.
Shortcut menu
To open the shortcut menu, right-click on a resource in the view:
This menu provides various commands, for example:
• Commands to add or delete tasks
• A command to change the properties of the selected task
• A command to delete completed tasks
See "User interface information" in the Workbench User Guide.
Icons
The following icons are used by the Tasks view:
Variables view
The Variables view is part of the Debug perspective.
The Variables view displays a list of variables that exists in the scope of the selected Stack frame.
The values of primitive variables are displayed. To examine a complex variable, expand the variable
to show its members. XML nodes are displayed in an XML tree, which you can collapse and expand.
The view is usually empty. However, it is automatically filled when a session in debug mode is
suspended, and a stack frame is selected in the Debug view.
This figure shows an example:
The left part of the screenshot shows the Debug view with the selected stack frame. The right part
shows the Variables view with the stack frame's variables. In the screenshot, the Variables view
consists of an overview pane (top) and a details pane (bottom).
The details pane shows this information:
• The value of primitive variables.
• The hexadecimal value of variables of type string.
• The XML structure of variables of type XML.
You can determine the amount of information displayed in the Variables view. For example, you can
show / hide the following:
• Data type information.
• The details pane.
Toolbar
The toolbar of the Variables view contains the following buttons:
Show Type Names You can toggle this option to show or hide data type names. The data type
names are displayed in front of the variable names.
Show Logical Displays certain complex data structures in a more compact and meaningful
Structure form. For example, the elements of a list are displayed as an ordered collection.
Collapse All Collapses all expanded variables.
Menu Contains these menu items:
• Layout: Opens a menu with the following options:
• Vertical View Orientation: The details pane is displayed below the
overview pane.
• Horizontal View Orientation: The details pane is displayed next to the
overview pane.
• Variables View Only: The details pane is not displayed.
• Show Columns: The overview pane displays columns with, for example,
the names and values of the variables.
• Select Columns: Starts a dialog box where you can select the columns
to be displayed.
• Show Global Variables
• Show Local Variables
Shortcut menu
To open the shortcut menu, right-click on a variable in the view. The menu contains these commands:
Decorators
The following decorators are used to indicate whether a variable is fixed and / or based. The decorators
are displayed in the upper right corner of the variable icon.
Limitations
Filters not correctly initialized
The filters in the Variables view ( Show Global Variables and Show Local Variables) are not correctly
initialized. To correct the settings, click the stack frame twice or select a variable in the Variables view.
Severi- The view displays a warning icon with a number that indicates the priority of the warning:
ty • 1 - High
• 2 - Normal
• 3 - Suspicious
• 4 - Low
These priorities are automatically assigned by the verification process:
• The priorities for warnings that are generated based on source analyze codes are
defined in the Source Analyze Codes (tlvsc3111m000) session.
• The priorities for warnings that are generated based on all other types of checks are
hard coded in the VSC software on the LN server.
Note: If a warning blocks the check in of a component, an error icon is displayed instead
of a warning icon.
Accept- Shows a check mark if the warning is accepted.
ed
VSC ID The unique code that identifies the message assigned to the warning.
For example: the message ID for a warning is 5053. The corresponding message text is
Function 'sleep' is not supported by Web UI
.
Note: This column corresponds with the Warning Id field in the Verify Warning Details
dialog box.
Toolbar
The toolbar of the Tasks view includes the following buttons:
Verify Warning Fil- Starts the Verify Components View Filter dialog box. You can, for example,
ter define a filter that displays only warnings with a particular warning level.
See Verify Components View Filter on page 121.
Shortcut menu
Right-click on any resource in the view to open a menu that contains the View Details command. This
command starts the Verify Warning Details dialog box. In this dialog box, you can view the warning
details, and change the warning status to "Accepted". See the dialog box's help.
Icons
These icons are used in the view:
Shortcut menu
To view the table field's details, right-click the field and select Open. The Table Editor starts, with the
appropriate table field selected.
Copy is also enabled.
Infor LN Project Server is used to maintain Software Projects and Activities for Software Engineers
that develop software in LN Studio.
Project Server functionality is available in the Project Server perspective in LN Studio.
Note: A number of screenshots in the documentation may be based on previous application releases.
They can differ slightly from your application screens. However, the described functionality is similar.
Procedures
Add the software development activities, whose components you want to deliver, to the delivery
activity.
To do this, drag these activities to the Delivery Explorer and drop them on the delivery activity.
Alternatively, use the Add Development Activity command in the shortcut menu in the Delivery
Explorer.
5 Add a solution.
In the Delivery Explorer, right-click the delivery activity and, on the shortcut menu, select Create
Solution. The Create a Solution wizard starts. Specify a code and description for the solution
and click Finish. The Solution Editor starts.
6 Edit the solution.
Use the Solution Editor to modify the solution.
For example, you can perform these actions:
• Add components to the solution.
• Add installation instructions.
• Define additional dependencies.
SeeSolution Editor on page 346.
When finished, save the changes and close the editor.
7 Generate dependencies.
To regenerate dependencies after you added or deleted components to/from the solution:
a In the Delivery Explorer, right-click the solution.
b On the shortcut menu, select Generate Dependencies.
The solution status changes to "Dependencies defined".
8 Export the solution.
In the Delivery Explorer, right-click the solution and, on the shortcut menu, select Export Solution.
The solution status changes to "Exported".
9 Release the solution.
In the Delivery Explorer, right-click the solution and, on the shortcut menu, select Release Solution.
The solution status changes to "Released".
You are prompted to finalize the delivery activity and remove the activity from the Delivery Explorer.
10 Finalize the delivery.
In the question window, click Yes. The delivery activity disappears from the Delivery Explorer and
its status is set to "Finalized".
This step does not change anything to the solution.
Note: If you click No, you must complete these steps to manually finalize the delivery activity:
a In the Delivery Explorer, right-click the delivery activity.
b Select Finalize Delivery.
Dialogs
Description
The project description.
Requirement ID
The ID of the business requirement to which the project belongs (requirements are usually stored in
a requirement management or defect tracking system).
Repository
Development Environment
The LN environment in which the software for the project is developed. Select the environment from
a drop-down list.
Application
The application to which the project belongs. Select the application from a drop-down list.
Documentation
Use this field to enter additional documentation about the project.
Project
Project name
The software project to which the activity belongs. Select a project from the drop-down list.
Description
The description of the selected project.
Activity
Name
Specify an activity name.
Description
Specify an activity description.
Type
Select an activity type from the drop-down list.
If the activity is intended for software development, select one of the following types:
• Enhancement
• Change request
• Miscellaneous
• Defect (intern)
• Defect (extern)
If the activity is intended for software delivery through PMC, select the "Delivery" type.
Note: You can only select the "Delivery" type if the Integration With PMC check box is selected in
the properties of the project to which the activity belongs.
Requirement ID
The ID of the business requirement to which the activity belongs (requirements are usually stored in
a requirement management or defect tracking system).
Owner
The software engineer who owns the activity. Select a software engineer from the drop-down list.
The owner can open the activity, develop components in the activity, reassign the activity, and end
the activity.
Assignees
Assignee
The software engineers to which the activity is assigned. The assignees can open the activity and
develop components in the activity. However, only the owner can end the activity.
To add an assignee, click Add and select a software engineer from the drop-down list.
The Assignees grid is only available if the Sharing Activities Allowed check box in the software
project's properties is selected.
If sharing activities is not allowed, the Add button is disabled, and the system automatically adds the
owner of the activity as assignee. This change is displayed only after you re-open the dialog box.
Documentation
Specify documentation about the activity.
Finish
Saves the new activity and closes the dialog box.
Select Project
Use this page to select the project to which the activity belongs.
All fields, except Project name, are read-only.
Project name
The project to which the activity belongs.
You can select the project name from a drop-down list.
Select Activity
Use this page to select the activity you want to open.
All fields, except Activity name, are read-only.
Activity name
The activity you want to open.
You can select the activity name from a drop-down list.
Create a Solution
Use this wizard to create and deliver a new PMC solution.
Project
Name
The software project to which the solution belongs.
Description
The project description.
Delivery Activity
Name
The name of the delivery Activity to which the solution belongs.
The wizard generates this activity and links it to your development activity.
Description
The activity description.
Solution
Name
The name of the solution to be generated.
Description
The description of the solution.
Project
Project name
The software project to which the delivery activity belongs.
Description
The description of the selected project.
Delivery Activity
Name
The delivery activity to which the development activity is added.
Description
The description of the delivery activity.
Development Activity
Name
The name of the development activity. Select a development activity from the drop-down list.
Browse Solutions
You can start this dialog box from the Solution Editor.
Use the dialog box to link another solution to the solution you are editing.
The dialog box consists of two tabs, that you can use to search in two different ways:
• Select on code
• Search on description
Select on code
Use this tab to search on the first part of the solution code.
Fields
Solution Code
Specify the (first part of the) solution code you are searching for.
To display a list of solutions, which match the pattern, click , or press CTRL+SPACE.
Code
The solution code.
Description
The description of the solution.
Search on description
Use this tab to search on a part of the solution's description.
To link a solution to the solution you are editing:
1 Optionally: In the upper right part of the tab, click . The Browse Solution Types dialog box
starts. In this dialog box you can specify additional settings for the search process.
2 In the Description field, enter the search pattern.
Fields
Description
Specify the search pattern.
Name
The solution code
Description
The description of the solution.
Reset Defaults
Restores the default settings for this dialog.
Select on code
Use this tab to search on the first part of the component code.
To add a component to the solution you are editing:
1 Optionally: In the upper right part of the tab, click . A dialog box, where you can specify additional
settings for the search process, starts.
2 In the Component Code field, enter the first part of the component code. For example: tdsls0.
3 Click , or press CTRL+SPACE. A list of components, which match the pattern, is displayed. If
you type additional characters, The dialog box automatically updates this list.
4 Select the desired component and click OK.
To sort search results:
• To sort the search results by type, name, or description, click the corresponding column header.
• To toggle between ascending and descending sort mode, click the involved column header.
Note: As you type the package code and the module code (the first 5 characters of the component
code), The dialog box automatically shows a list of matching packages and modules, and updates this
list after each character typed. For example:
Component
Code Search results displayed
t All packages starting with t.
td Package td and all its modules.
tdr All modules of package td that start with r. For example, tdrec and tdrpl.
Fields
Component Code
Specify the (first part of the) component code you are searching for.
To display a list of components, which match the pattern, click , or press CTRL+SPACE.
Type
The component type, such as session or label.
Name
The component name.
Description
The description of the component.
Search on description
Use this tab to search on a part of the component's description.
To add a component to the selected activity:
1 Optionally: In the upper right part of the tab, click . A dialog box, where you can specify additional
settings for the search process, starts.
2 In the Package field, select a package from the list.
3 Specify the search pattern, and click . A list of components that match the search pattern is
displayed.
4 Select the desired component and click OK.
Fields
Package
Select a package from the list.
Search Pattern
Specify the search pattern.
To display a list of components, which match the pattern, click .
Type
The component type, such as session or label.
Name
The component name.
Description
The description of the component.
Multipage Editors
Solution Editor
Introduction
Use this editor to define and edit PMC solutions.
In PMC, a solution is the smallest, indivisible type of update. A solution is identified both at the distributor
and recipient side by a unique solution code. The term individual solution is also frequently used and
has the same meaning.
Overview
Use this page to perform these actions:
• Maintain the basic data of a solution.
• Specify pre- and post-installation instructions.
• Link additional components to the solution.
• Define dependencies between the current solution and other solutions.
General Information
Name
A unique identification of the solution in a Base VRC.
The solution code has these characteristics:
• Datatype: alpha-numerical string.
• Maximum length: 14 characters.
• Forbidden characters: All characters that have a special meaning in UNIX, such as $, *, and so
on. If you enter a forbidden character, the code will not be accepted.
Description
The description of the solution.
Base VRC
Base VRC
Status
Solution status distributor
Published
If this check box is selected, , the solution is published immediately upon release. If a solution is
published, the solution is copied to the directory specified in the Path for Published Solutions field
in the Parameters (ttpmc0100s000) session.
Note: If the Copy Published Solutions check box in the Parameters (ttpmc0100s000) session is
cleared, the solution cannot be published, regardless of the selection of the current check box.
Installation Instructions
Pre
The pre-installation instructions. The instructions are added to the solution text.
For example: Before you install this solution, ensure there are no open inte
gration transactions.
Post
The post-installation instructions. The instructions are added to the solution text.
For example: After you install this solution, generate MRP orders again.
Components
Components
Use the grid to link components to the solution.
Add / remove components
• To add a component, click Add and fill out the fields in the grid.
• To remove a component, right-click a component and, on the shortcut menu, select Remove.
Type
The type of software component, such as session, message, or label.
Name
The component identification, such as a session code.
To add a component:
1 Press CTRL+SPACE. The Select Component(s) for delivery dialog box is displayed. The dialog
box only shows components of the selected type.
2 Select one or more components and close the dialog box. See the dialog box's online help.
Dependencies
Dependencies
Use the grids to define dependencies between the current solution and other solutions.
If not all dependencies that would be generated are present, you receive a warning during the export
of the solution or patch.
After you define all the dependencies, you can change the solution status to Dependencies defined
and the solution is ready to be exported. You can change the status in the Delivery Explorer.
If the status of the solution was Exported, and you change the dependencies, then the solution status
is reset to Dependencies defined.
Add / remove dependencies
• Use the upper grid, to enter dependencies of type Co-requisite and Pre-requisite.
• Use the lower grid to indicate the solution is a Post-requisite of another solution.
• To add a dependency, click the relevant Add button and fill out the fields in the grid.
• To remove a dependency, right-click a dependency and, on the shortcut menu, select Remove.
Type
The type of dependency: Co-requisite or Pre-requisite.
Related VRC
The Base VRC of the solution or Patch to which the current solution or patch is related.
The related VRC can be a different base VRC if the dependency type is Co-requisite or a Pre-requisite
from a Feature Pack to the previous Feature Pack.
Solution
The solution or Patch with which a Dependency relation exists.
To add a solution:
1 Press CTRL+SPACE. The Browse Solutions dialog box is displayed.
2 Select a solution and close the dialog box. See the dialog box's online help.
Description
The solution description.
Manual
If this check box is selected, the dependency was not generated, but defined manually.
Solution
The solution or Patch with which a Dependency relation exists.
To add a solution:
1 Press CTRL+SPACE. The Browse Solutions dialog box is displayed.
2 Select a solution and close the dialog box. See the dialog box's online help.
Description
The solution description.
History
Use this page to display the status changes to a solution for a Base VRC.
Every status change of a solution or patch status is recorded. This page shows all these recorded
changes. If you delete a solution, this fact is recorded with the new status as blank.
The page shows the maintenance history for the relevant solution or patch up until the specified time.
Maintenance History
Date
The date on which the status of the solution was changed.
Time
The time when the status of the solution was changed.
Serial
Number to make the key unique.
User
The name of the user who changed the solution.
Status
The new status of the solution.
Perspectives
Software Project Explor- Project managers use this view to maintain software projects and activ-
er view ities on the Project Server.
For details on the procedure to define projects and activities, see
Defining a software project on page 334.
Application Explorer Administrators use this view to create and maintain the applications for
view which the software projects are defined.
For more information on the administrator's tasks, see the Infor LN
Studio Administration Guide.
Views
Toolbar
The toolbar of the Software Project Explorer view contains the following buttons:
Note: The remaining buttons are standard Eclipse commands. For details on these buttons, see "User
interface information" in the Workbench User Guide.
Shortcut menu
To open the shortcut menu, right-click on a resource in the view.
This menu contains most of the toolbar commands.
Icons
The following icons are displayed in the Software Project Explorer view:
Toolbar
The toolbar of the Delivery Explorer view contains these buttons:
Open a Delivery Activity Starts the Open a Delivery Activity wizard, where you can
select an activity that is assigned to you.
Compile Delivery Activity at develop- Compiles the software components in the selected delivery
ment system activity.
Delete Deletes the selected item.
Menu Contains the Open a Delivery Activity command.
Note: The remaining buttons are standard Eclipse commands. For details on these buttons, see "User
interface information" in the Workbench User Guide.
Shortcut menu
To open the shortcut menu, right-click a resource in the view.
This menu provides the following Project Server-specific commands:
Add Development Activi- Starts the Add development activity dialog, where you can link a devel-
ty opment activity to the selected delivery activity.
Compile Delivery Activity Compiles the software components in the selected delivery activity.
Create Solution Starts the Create a Solution dialog, where you can create a PMC solution.
Generate Dependencies Generates the dependencies defined in the selected solution.
For details on the PMC terminology and PMC specific actions, such as
Generate Dependencies, Export Solution, and Release Solution, see the
Infor LN - Development Tools Development Guide.
Export Solution Exports the solution.
Release Solution Releases the solution.
Finalize Delivery Sets the status of the selected delivery activity to Finalized. The delivery
activity disappears from the Delivery Explorer.
Icons
These icons are displayed in the Delivery Explorer view:
Glossary
Activity VRC
A VRC that contains software components for an activity.
The activity VRC is generated automatically when you open
the activity for the first time.
By default, the components in this VRC are only accessible
for the software engineer to which the activity is assigned.
Optionally other software engineers can access these
components if they put this activity in the activity context
of their own activity.
Additional file
A generic component, such as an XML schema file, a GIF
image, and so on. From LN 6.0a onwards, additional files
are stored in a specific package, module, and package
VRC.
Code assist
Code assist provides a list of suggested completions for
partial character strings in the LN Studio Script Editor.
Debugging Domain
The process of identifying and addressing the cause for A domain describes the properties of table fields. The main
defective behavior of a system. property of a field is the data type, such as string, long,
These debugging techniques are available: double, date, UTC. Other properties are the length of a
string, the alignment of a string, and the date and time
• Definition of conditions that suspend a running format.
process, so you can inspect it more closely
Domains indicate the valid values for an attribute and are
• Navigation through a suspended process, to discover
used to define the scale division of the axes or to verify
the flow and identify any problems
data.
• Inspection, to validate the state of the process and
identify any problems
Dynamic form
A form with a dynamic form definition.
Debug target
An execution context, such as a process or virtual machine, The developer does not need to determine exactly where
that can be debugged. In Infor 4GL, a debug target fields must be placed, or what they must look like. Instead,
represents a session started in debug mode. the developer defines the following:
• The form contents.
Dependency • The form structure.
In PMC, the relation between solutions. Dependencies are • The sequence of the objects on the form.
defined at the PMC distributor side and are part of the meta At runtime, the dynamic form displays only those fields for
data of a PMC solution and guarantee that PMC solutions which the user is authorized.
are installed in the correct configuration and sequence at
the PMC recipient side.
Dynamic Link Library
The following values indicate the dependency type between
A way to share common functions between programs. This
solutions.
library contains functions for common use. The library can
These dependency types are available: be linked to the object as a function call at run time.
• Pre-requisites Implementing a dynamic link library reduces the size of
• Co-requisites objects to a minimum, because dynamic link libraries are
not included in a program's object.
• Post-requisites
You can only install solutions that are dependent on other Dynamic session
solutions if the other solutions are already present, or are
A session with a dynamic form definition.
also installed.
Depending on settings, a dynamic session can start as one
The same dependency types exist between Patches.
of the following:
However, to keep the descriptions readable, only solutions
are mentioned, but patches are meant as well. One • A details session.
exception applies: the post-requisite type is not applicable • An overview session.
to patches.
In the dynamic form definition, the developer does not need
to determine exactly where fields must be placed, or what
Details session they must look like. Instead, the developer specifies this
A dialog box that shows all the details (fields) of the line information:
(record) selected in the associated overview session. Use • The form contents.
a details session to view, enter, or change the data of one
• The form structure.
record.
• The sequence of the objects on the form.
A details session can contain a number of tabs to group
related fields. At runtime, the dynamic form shows fields for which the
user is authorized.
Development VRC
In PMC a physical VRC, derived from the Export VRC, in
which checked-out software components are temporarily
stored during a change process.
Eclipse Form
Eclipse is an open platform for tool integration built by an A screen that appears when a session is started. A form
open community of tool providers. Operating under an open interacts with the database, and provides the user interface
source paradigm, with a common public license that used to manipulate the data on the form.
provides royalty free source code and world wide
redistribution rights, the Eclipse platform provides tool Form command
developers with ultimate flexibility and control over their
A form command starts a session, function or (sub)menu
software technology. Eclipse is used as a platform for LN
by means of which a user can carry out a particular task.
Studio.
A form command, as opposed to standard menu commands
such as the Exit command, must be especially defined for
Eclipse Task a session tab.
Eclipse tasks are displayed in the Tasks view. Each Eclipse
task represents an action that must be performed, such as
to modify a particular line in a script. If a task is associated Form field
to a line in an Infor 4GL script or library, double-click the A field shown on a form. A form field is selected from the
task to edit the script or library. The editor opens the script available fields of an input table and its reference tables.
or library at the involved line.
Create Eclipse tasks through the Tasks view and the LN Function
Studio script editor. A piece of program code that makes up part of a program
script.
Editor A function is a self-contained software routine that can
An editor is a visual component within the LN Studio perform a task for the program in which the function is
workbench used to edit or browse a resource, such as a written, or for another program.
Program script or a library. Modifications made in an editor
follow an open-save-close life cycle model. Multiple Group
instances of an editor type may exist within a LN Studio A set of form objects grouped together, such as form fields
workbench window. and child groups.
String UI script
A data structure that contains a number of characters that See Program script.
represent readable text.
Undo check out
Superseded solution A command that unlocks a checked out software
A superseded solution is a solution for which can be said component.
that all software components are also contained in another
so-called Superseding solution. Universal Time Coordinated
A time/date format. LN stores dates and times in UTC
Superseding solution format. It stores date and time in a single Long integer
A superseding solution is a solution that contains at least called the UTC long format. This integer represents the
the same software components as contained in one or number of seconds since 0:00 hour, January 1, 1970 (in
more Superseded solutions and can contain additional UTC).
software components that are not part of any superseded
solution. Update
A solution supersedes another solution if the following In PMC, an update is a set of changed software
conditions are met: components, including PMC metadata, which is required
• The superseding solution contains at least all the to install the update in a safe and correct way. An update
components of the other solution. can contain corrective changes or functional
• The superseding solution contains newer versions of enhancements.
these components. Updates can be delivered in four different configurations:
• The superseded solution is not yet installed. If the • Solutions
superseded solution is already installed, speaking of • Collections
a superseding solution is illogical.
• Patches
• Service Packs
Table
A data structure used to store data that consists of a list of Update VRC
records. Each entry is identified by a unique key and
contains a set of related values. A table contains a number A physical VRC at the PMC recipient side in which updates
of table fields that belong to a specific domain. are installed. Every update VRC has a base VRC linked.