Plex Getting Started ENU PDF
Plex Getting Started ENU PDF
Plex Getting Started ENU PDF
Getting Started
r7.1
This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to
as the “Documentation”) is for your informational purposes only and is subject to change or withdrawal by CA at any time.
This Documentation may not be copied, transferred, reproduced, disclosed, modified or duplicated, in whole or in part, without
the prior written consent of CA. This Documentation is confidential and proprietary information of CA and may not be disclosed
by you or used for any purpose other than as may be permitted in (i) a separate agreement between you and CA governing
your use of the CA software to which the Documentation relates; or (ii) a separate confidentiality agreement between you and
CA.
Notwithstanding the foregoing, if you are a licensed user of the software product(s) addressed in the Documentation, you may
print or otherwise make available a reasonable number of copies of the Documentation for internal use by you and your
employees in connection with that software, provided that all CA copyright notices and legends are affixed to each reproduced
copy.
The right to print or otherwise make available copies of the Documentation is limited to the period during which the applicable
license for such software remains in full force and effect. Should the license terminate for any reason, it is your responsibility to
certify in writing to CA that all copies and partial copies of the Documentation have been returned to CA or destroyed.
TO THE EXTENT PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS DOCUMENTATION “AS IS” WITHOUT WARRANTY OF ANY
KIND, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NONINFRINGEMENT. IN NO EVENT WILL CA BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY LOSS OR DAMAGE,
DIRECT OR INDIRECT, FROM THE USE OF THIS DOCUMENTATION, INCLUDING WITHOUT LIMITATION, LOST PROFITS, LOST
INVESTMENT, BUSINESS INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF CA IS EXPRESSLY ADVISED IN ADVANCE OF THE
POSSIBILITY OF SUCH LOSS OR DAMAGE.
The use of any software product referenced in the Documentation is governed by the applicable license agreement and such
license agreement is not modified in any way by the terms of this notice.
The manufacturer of this Documentation is CA.
Provided with “Restricted Rights.” Use, duplication or disclosure by the United States Government is subject to the restrictions
set forth in FAR Sections 12.212, 52.227-14, and 52.227-19(c)(1) - (2) and DFARS Section 252.227-7014(b)(3), as applicable, or
their successors.
Copyright © 2014 CA. All rights reserved. All trademarks, trade names, service marks, and logos referenced herein belong to
their respective companies.
Contact CA Technologies
Contact CA Support
For your convenience, CA Technologies provides one site where you can access the
information that you need for your Home Office, Small Business, and Enterprise CA
Technologies products. At http://ca.com/support, you can access the following
resources:
■ Online and telephone contact information for technical assistance and customer
services
■ Information about user communities and forums
■ Product and documentation downloads
■ CA Support policies and guidelines
■ Other helpful resources appropriate for your product
Contents 7
Object Types........................................................................................................................................................ 36
Toolbar Icons ....................................................................................................................................................... 37
Project Management Application .............................................................................................................................. 39
Open the Sample Model ..................................................................................................................................... 40
Object Browser.................................................................................................................................................... 41
Project Entity and Triples ........................................................................................................................................... 43
Specify Attributes for the Project Entity ............................................................................................................. 44
Field Inheritance ................................................................................................................................................. 47
Use Inheritance to Define Field Properties ......................................................................................................... 48
Continuation Triples ............................................................................................................................................ 51
Use Continuation Triples to Make Fields Optional.............................................................................................. 52
Patterns and Inheritance..................................................................................................................................... 53
Use Inheritance to Define the Project Entity ...................................................................................................... 54
Add Functionality to the Project Entity ............................................................................................................... 55
More About Scope .............................................................................................................................................. 58
Set Up the Generate and Build Options for Java ........................................................................................................ 59
Generate and Build .................................................................................................................................................... 60
Native Platform Implementation ........................................................................................................................ 61
Message Log ........................................................................................................................................................ 62
Your Generated Application ....................................................................................................................................... 62
Run the Project.Edit Function ............................................................................................................................. 63
Default Panel Layouts ......................................................................................................................................... 64
Add a New Project............................................................................................................................................... 64
100 Percent Code Generation ............................................................................................................................. 65
Preserve Data ...................................................................................................................................................... 66
Panel Designer............................................................................................................................................................ 66
Visual Development ............................................................................................................................................ 67
Open the Panel Designer .................................................................................................................................... 67
Design Window ................................................................................................................................................... 68
Panel Palette ....................................................................................................................................................... 69
Property Sheet .................................................................................................................................................... 70
Define a Multiline Edit Control............................................................................................................................ 71
Add Spin Controls ................................................................................................................................................ 75
Regenerate the Function..................................................................................................................................... 76
Review ........................................................................................................................................................................ 78
8 Getting Started
How to Make a Floppy Disk License Transfer ...................................................................................................... 82
Contents 9
How to Install Java Components .............................................................................................................................. 107
Define the JAVA_HOME environment variable ................................................................................................. 108
How to Configure the Server for Run-time ....................................................................................................... 109
Set Up Java on the System i ..................................................................................................................................... 109
PLEXJVA700 Library ........................................................................................................................................... 110
How to Copy the Objava Directory to the System i .......................................................................................... 110
How to Configure the Java Dispatcher on the System i .................................................................................... 110
Java Classes Optimization ................................................................................................................................. 111
Start the Java Dispatcher on the System i ......................................................................................................... 112
Index 139
10 Getting Started
Chapter 1: Introduction
CA Plex is an Architected Rapid Application Development (ARAD) tool that uses software
patterns, models, and generators to accelerate the design and maintenance of business
applications for the Windows (both managed .NET and unmanaged MFC), Java, J2EE,
and IBM I operating environments.
Begin Quickly
Follow the basic installation steps described in the chapter "Installing CA Plex" to begin
quickly. You will then be able to run through the introductory tutorial in the chapter
"Develop Your First Java Application in 20 Minutes."
Chapter 1: Introduction 11
Product Components
Product Components
The following diagram shows the main components of CA Plex.
CA Plex minimizes the need for operating environment expertise, which insulates
developers from technology changes. In addition, lets the developers focus on solving
business problems rather than technical problems.
12 Getting Started
Supported Operating Environments
CA Plex generates applications that support the industry standards and following
technologies:
■ .NET
■ XML
■ J2EE
■ J2SE
■ WAP
■ Web Services
■ Microsoft SQL Server
■ Oracle
■ DB2
■ Linux
Chapter 1: Introduction 13
Additional Resources
Additional Resources
After reading this Getting Started, you can refer to the numerous resources available to
you for additional information. In particular, there are three tutorials that take you
step-by-step through the creation of a simple application:
■ Tutorial for Windows
■ Tutorial for System i 5250
■ Develop Your First Java Application in 20 Minutes
CA Plex offers detailed online help that provides comprehensive information and
detailed instructions about how to use CA Plex.
14 Getting Started
Chapter 2: Installing CA Plex
For the minimum hardware and software requirements for developing applications with
CA Plex, see the Release Notes.
Installation Checklist
Installation requirements for CA Plex vary depending on your target development
platforms and include third-party products that are not supplied with the product.
Note: For more information about detailed version and other system requirements, see
the Release Notes.
Use the following table to determine which components you need to install and where
to find the corresponding installation instructions.
16 Getting Started
Installation Checklist
18 Getting Started
Installation Checklist
Note: For more information about upgrading from earlier versions, see the Release
Notes.
Before installing CA Plex (or any of its components) or migrating from a previous
product release, be sure to review the following section carefully to determine if there
are additional installation or configuration steps you need to follow for this release.
Typical Configuration
You can configure CA Plex in various ways. The following diagram shows a typical
placement of CA Plex components in a LAN environment:
Your group models and pattern libraries reside on the LAN server. The base product and
the local models reside on the developer workstations. They may also reside on a laptop
with a connection to the network. You only need to connect to the network when you
are working on the group model.
20 Getting Started
Install the Base Product
Note: You must have administrator rights to install CA Plex. If you try to install CA Plex
without being logged as an administrator, you can get an error 1628: Failed to complete
installation from InstallShield.
4. Click Next.
The License Agreement window appears.
5. Read the License Agreement. Select I accept the terms of this license agreement
option if you accept the terms of the agreement, and click Next.
The Personal Information dialog appears.
6. Enter your name and your company name, and Click Next.
The Choose Destination Location dialog appears
7. Specify which type of setup you want to install:
Typical configuration
Installs all the program files, including online help files, tutorial files, sample files,
and pattern libraries. With a Typical installation, the OBASE class libraries and
Windows C++ Server components are not installed by default; select Custom install
to install them.
Compact configuration
Saves disk space by installing only the program files and the pattern libraries, but
not the online help files, tutorial files, or sample files.
Custom configuration
Lets you specify which product components to install.
8. Specify a destination location, and Click Next. Either you can accept the default,
C:\Program Files\CA\Plex\7.0, or C:\Program Files (x86)\CA\Plex\7.0, or you can
click Change to install to a different directory.
In addition to the specified destination directory, CA Plex also installs a copy of
Sun’s JRE in the Program Files\CA\SharedComponents\Jre directory.
Note: The installation program prevents you from installing this release into the
same directory as the previous release of CA Plex. Instead, install this release into a
different directory or uninstall the previous version.
9. If you selected Custom, select the components to install. The default settings for
the Custom installation are the same as for the Typical installation, but you can also
select Class Libraries, Application Integrator, and CA Plex Windows C++ Application
Server SDK.
10. Select which language you want to use as the default for generated Windows
clients. You can change this setting later.
Note: For more information, see the online help topic Specifying the National
Language Library.
11. Click Back to return to any dialog in which you want to change the settings, or click
Next to begin the installation.
22 Getting Started
Install the Base Product
12. Review your settings before copying files, and click Finish when the installation is
complete.
CA Plex is installed on your computer.
13. If prompted, select whether to restart your computer now or later and click OK.
If you experience an installation error when running CA Plex setup, enter the following
command from Windows command prompt:
To run this command on Windows Vista, start the Windows Command Prompt as an
Administrator. This command creates a PlexInstall.log file in the root of the C: drive
containing information that helps diagnose the problem.
In the previous example, the F: Drive is the CD/DVD drive containing the CA Plex
installation CD.
For the CA Plex Windows C++ Application Server, the command line is as follows:
Silent Installation
A silent installation is useful when you need to install the product automatically without
any user intervention. To install the product in silent mode, use the /s command line
switch with the setup.exe command. For example, enter the following command from
the command line:
d:\Plexsetup\setup.exe /s
or
d:\Plexsetup\setup /s /f1".\setup64.iss"
The first command performs a typical installation of the CA Plex product to the default
installation directory on 32-bit Windows. The second command performs an installation
on 64-bit Windows.
If you run the silent install using a command-line window on Windows Vista or Windows
2008, you must open the command-line window prompt as an administrator, even if
you are already logged on as an administrator.
On 32-bit Windows:
d:\Plexsetup\setup.exe /s /f1".\setupUnInstall.iss"
On 64 bit Windows:
d:\Plexsetup\setup /s /f1".\setup64UnInstall.iss"
You can record your own setup.iss file by using the /r command-line switch with the
setup.exe command. Typically, the setup.exe will create the setup.iss file in the
C:\Windows folder.
You can rename the setup.iss file and specify it with the /f1 command-line switch when
running setup.exe.
24 Getting Started
Install the Base Product
To view or change the system path, double-click the System icon in the Control Panel
and alter the environment settings.
Note: There is no forward compatibility - do not use the CA Plex r6.0 or r6.1 runtime
with CA Plex r7.0 functions because runtime errors will occur.
The 7.0, 6.1, and 6.0 C++ runtime DLLs have the same names. For example, ob600lc.dll,
ob600nwi.dll and so on. When the CA Plex install modifies the system path, the Plex 7.0
Bin folder is put at the beginning of Path statement. This means that, by default, both
6.0 and 6.1 WinC applications will run with the newer 7.0 WinC runtime DLLs on your
PC.
Note: If you install the JDK component after installing CA Plex, you must perform any
Java-dependent CA Plex configuration changes manually.
26 Getting Started
Enter the CA License Key
Note: The FEATURE line can wrap to a second line on the certificate, but it must be
entered on a single line with no carriage return in the ca.olf file.
A: ALP is the Automated License Program, the newest phase of CA licensing and order
fulfillment. Rather than requiring clients to use a client-side application to identify
hardware eligible to run CA software and request/create the appropriate license file,
ALP products are shipped with a printed certificate representing their license file (based
on the product and hardware information recorded in our license database), and are
also given the opportunity to get their license keys electronically using our support
website.
A: You can get ALP keys from http://www.ca.com/support. To log on to the secure area
of the website, you need a valid user ID and password.
Q: Why does CA licensing sometimes install into the Program Files folder and not
C:\CA_LIC as it always has?
28 Getting Started
Enter the CA License Key
Where:
-n: Is the name of the new OLF file to merge
-c: Is the name of the current OLF file to merge
Default: ca.olf
-o: Is the name of the new OLF file to create
Default: ca.olf
-b: Is the name of the backup of the current OLF file
Default: ca.bak
-d: Enables debugging (mergeolf.log)
Example:
ID_1 3991FFEF "Customer Name" Technical Contact Name (As recorded in our
database)
ID_2 E4A19DB8 "Company Name" Company Name
ID_3 C2F2E617 "00000000" CA Site ID Number
ID_4 9550AD9 "[email protected]" Technical Contact Email (As recorded in our database)
SERVER CAI 7152
DAEMON CAI_lic_d/usr/bin
FEATURE 0 CAI_lic_d 1.000 20-APR-2000 0 0CA4D081978DD1BD5C76 "(MODEL) (COMPONENT)" ANY # 0000000-000
The actual encrypted Execution Key is line 7, which is referred to as the FEATURE line,
the ID and Server and Daemon lines are header lines that should only appear once in the
file, at the beginning. Additional instances of these lines can invalidate your license file.
If you are having problems with your ALP key, verify that the following:
■ There are no carriage returns interrupting the FEATURE lines in the ca.olf file.
■ There are no blank lines in between the FEATURE lines in the ca.olf file.
■ The ID lines of the newly generated ALP Execution Key replace any pre-existing ID
lines in the olf.ca file.
■ The name of the OLF is ca.olf and does not have an extra extension in the name; for
example, ca.olf.txt or ca.olf.olf (This is most common on Windows systems when
hide known file extensions is enabled in the Explorer).
Q: When I download certain CA data files and utilities from the support site, they come
with an extension of .caz. What is a .caz file?
A: Files downloaded with a .caz extension are compressed with CAZIPXP, available at
http://supportconnectw.ca.com/public/ca_common_docs/ca_utility_supp.asp. To
uncompress the file, use the command: cazipxp.exe -u <filename.caz>, which extracts
the compressed files to the local directory.
Q: I have installed my ALP license key and I am receiving the following error:
- CA Licensing -- The license found is inadequate for the Hardware Unit rating of this
machine. You might have upgraded the machine and if so, please rerun the appropriate
license program to properly license your product
A: Typically, this is due to an invalid or corrupt lic98.cap file: open the lic98.cap file with
a text editor, the file should be comprised of a listing of detected model types in the
format of:
SYS (detectedmodel) (tier) (checksum)
■ If the file is improperly formatted, you can copy the lic98.cap from your installation
source or download the latest data files at our support website
■ If the lic98.cap file does not exist, you may not have a current ALP license run-time
installed. Contact TLC for assistance
■ If the lic98.cap exists and appears to be valid, contact TLC for assistance.
30 Getting Started
Install Other Components
To install the application server tool when you install the CA Plex base product
1. Click Custom when asked to specify which type of setup to install.
2. Check CA Plex Windows Application Server in addition to what is already checked.
To install the application server after you install the CA Plex base product
1. Click Start, Settings, and Control Panel.
2. Double-click the Add/Remove Programs icon on the Control Panel.
3. Select CA Plex in the list of products.
4. Click Change/Remove.
5. Select Modify and click Next on the InstallShield Wizard window.
6. Click CA Plex Windows Application Server to check it.
7. Click Next to start the installation.
To install the Application Integrator tool when you install the CA Plex base product
1. When asked to specify which type of setup to install, click Custom.
2. Check Application Integrator in addition to what is already checked.
To install the Application Integrator tool after you install the CA Plex base product
1. Click Start, Settings, and Control Panel.
2. Double-click the Add/Remove Programs icon on the Control Panel.
3. In the list of products, select CA Plex.
4. Click Change/Remove.
5. On the InstallShield Wizard window, select Modify, and click Next.
6. Click Application Integrator to check it.
7. Click Next to start the installation.
CA Plex only requires a typical installation for Microsoft’s Visual Studio. For more
information about different configurations, see the Visual C++ documentation.
The Microsoft Visual Studio 2005 Express edition is not compatible with CA Plex C++
builds because it does not support MFC.
32 Getting Started
Chapter 3: Develop Your First Java
Application in 20 Minutes
CA Plex is an Architected RAD tool that uses patterns to accelerate the design, creation,
and maintenance of software applications. This chapter provides an introduction to
some of the innovative features of CA Plex.
In this chapter, you define a very simple project management application. The pattern
libraries in CA Plex are used to streamline the process. The Panel Designer is used to
make changes to a dialog. Before the end of this chapter, you will have the first part of
the application up and running.
The example in this chapter creates a Java application. You do not need to know
anything about Java programming to complete the example. The development process
is very similar regardless of which platform you are developing for.
Prerequisites
Before creating a Java application, you must perform the following tasks:
■ Install CA Plex
■ Install Sun JDK 7.0, as described in the "Java Components" chapter of this guide
■ Define the JAVA_HOME environment variable as described in the "Java
Components" chapter of this guide.
Concepts
The following section explains the concepts used in the application environment.
The Structure pattern provides the database schema, user interface designs, and
programs that can be used to implement hierarchical data structures such as a bill of
materials, an organization chart, or a chart of accounts. CA Plex includes libraries of such
patterns, and additional libraries are available from third-party vendors.
Several of the patterns from the CA Plex pattern libraries are used to build the sample
application.
34 Getting Started
Concepts
Workgroup Development
CA Plex provides a model-based workgroup environment in which teams of software
developers can collaborate on the design and construction of applications. At the heart
of this environment is a repository whose facilities include the following:
■ Multiple developer support that enables developers to work offline and then
update their changes to the central repository
■ Built-in configuration management that enables a model to store a single
application design in multiple versions, platforms, and national languages
■ The integration of designs stored across multiple models
For simplicity, the sample in this chapter focuses on a single-user environment. The
single-user model, called a local model, has already been created for you.
Code Generation
Based on the designs held in the repository, CA Plex automatically generates 100
percent of the code to implement applications and database objects across several
platforms. Currently supported implementation options include the following:
■ Multitier web applications with Java or HTML clients and Java, .NET , or System i
servers
■ Multitier client/server applications with C# WPF, Win32 C++ or Java swing clients
and Java, .NET, or System i servers
■ System i 5250 character-based terminal applications
CA constantly improves and expands the available generators to keep pace with
customer demand and advances in technology. Generators insulate you from the
underlying technology and its implementation details—CA Plex users can take
advantage of new platforms simply by regenerating their existing designs.
Terms
In this chapter, you create an entity called Project. The Project entity uses fields to store
information, such as its start and end dates. You inherit functions to enable end users to
create, modify, and delete projects. Entities, fields, and functions are all types of CA Plex
objects.
A local model is the file that stores the design of the application you are building. In your
local model, you create and define objects.
The Object Browser displays all of the objects in a model. In it, you can see the pattern
library objects available, as well as the objects that you define in your model.
Object Types
CA Plex uses many types of objects. The following shows the icon, the object type, and
the abbreviation, and a description of the objects that CA Plex uses to identify each
object type that you encounter while building the application in this chapter.
36 Getting Started
Concepts
Toolbar Icons
The following list shows a list of toolbar icons and describes each of them.
Gen and Build Starts the Generate and Build process for the selected
objects.
38 Getting Started
Project Management Application
Here is an entity-relationship diagram of the application created in this chapter. You will
draw a diagram like this later.
If you have worked with entity-relationship diagrams before, you can observe the
following:
■ A project can have more than one task, but a task can only belong to one project.
■ A task is owned by a project, which means that if you delete a project, you want all
of its tasks deleted too.
■ Employees are assigned to tasks—one employee can be assigned to more than one
task, but each task can only have one employee assigned to it.
■ An employee is not dependent on any particular task, which means that if you
delete a task, you do not necessarily want to delete the employee record too.
You can see all of this without having to look at any code. This diagram shows useful
information, which CA Plex uses to generate the application.
For the purpose of this sample application, this model is very basic. If you have
developed real project management systems before, you may find parts of the model
that you would design differently.
Note: Save your work! If you need to stop working on this tutorial before reaching the
end of a chapter, you can save your progress by clicking the Save toolbar button. CA Plex
also prompts you to save your changes when you close certain editors after making
changes in them.
40 Getting Started
Project Management Application
Object Browser
You can select to show or hide the object browser by clicking the Show/Hide Browsers
toolbar button.
You can keep the Object Browser open while you work. The object browser lets you use
it as a palette from which you can drag-and-drop the objects you need.
The following graphic shows the object browser as it appears in the application:
By default, the Object Browser shows you objects of one type at a time. You can see
other objects if they are scoped by the main object type. For more information, see
More About Scope section in this chapter.
The Object Browser has shortcut buttons for displaying entities, fields, and functions.
Setting the Object Browser to display functions only displays unscoped functions;
functions that are scoped by another object (such as an entity or a view) are displayed
when the Object Browser is focused on that object type.
You can also select an object type to view from the object list.
You can click the Show/Hide Library Objects toolbar button to show library objects.
You can tell that an object is in a pattern library because the library name is prefixed to
the object name by default. For instance, the third entity in this graphic is
FOUNDATI/Association, which means that the entity Association comes from the
FOUNDATION pattern library.
42 Getting Started
Project Entity and Triples
For example, in this chapter, you use the following triple to define a unique identifier for
the Project entity:
In this example, Project (an entity) is the source object of the triple, known by (or known
by FLD) is the verb, and Project ID (a field) is the target object.
In CA Plex documentation, verbs are always printed in bold and usually with their source
and target object types (ENT known by FLD, for example).
Triples provide a simple, easily understood language for entering information into CA
Plex. Here are some more examples of triples that you will enter while creating your
first application:
■ Project has FLD Project Description
■ Project Description is a FLD LongDescription
■ Project described by DGM Project Diagram
In this sample application, triples are entered to define fields for the Project entity: an
identifier, a description, and start and end dates for a project.
You use the Model Editor to view, add, edit, and delete triples. The following is the
Model Editor as it will appear when you complete this chapter.
Note: Instead of scrolling in the list, you can click the verb list, and press the first letter
of the verb you are looking for until the verb appears. To select the known by FLD verb,
press the K key once.
1. Enter Project ID in the target object box, and press Enter.
The Model Editor should now look like this:
You just created the triple Project known by Project ID. This triple defines a primary
key for the Project entity.
44 Getting Started
Project Entity and Triples
2. If the Object Browser is not open, click the Show/Hide Browsers toolbar button to
open it.
3. Click the Fields toolbar button on the Object Browser to display field objects.
Notice the Project ID field you just added. All of the objects you define in a local
model appear at the top of the Object Browser. Pattern library objects appear
below the local objects.
Notice that the Employee entity and its fields Employee Email Address, Employee
Hire Status, and so on have already been defined in the model you are working
with.
Project should still appear in the source object box in the Model Editor.
4. Select has FLD from the verb list.
5. Enter Project Description in the target object box.
6. Press Enter.
You have created the triple Project has Project Description, which defines the field
Project Description for the Project entity. You use this field to store a description of
the project. This triple, ENT has FLD, creates a
non-key attribute. The values in non-key attributes do not need to be unique to
each entity. For example, you may have more than one project that has the same
text in the description field.
7. Repeat Steps 8 to 10 to create the following triples:
Project has Project Start Date
Project has Project End Date
Click the Refresh toolbar button on the Object Browser.
The Object Browser shows the new fields:
46 Getting Started
Project Entity and Triples
Field Inheritance
You use inheritance to define the properties of fields. Inheritance in CA Plex is defined in
a simple way—using the is a verb.
Following are the triples you enter in the next series of steps:
■ Project ID is a FIELDS/Identifier
■ Project Description is a FIELDS/ShortDescription
■ Project Start Date is a DATE/CheckedDateISO
■ Project End Date is a DATE/CheckedDateISO
The FIELDS and DATE prefixes indicate that the objects concerned belong to the FIELDS
and DATE pattern libraries, respectively.
The fields you defined previously have two different data types: character and date.
These represent different kinds of fields. The Project ID field holds code that uniquely
identifies a project, the description holds text, and the start and end dates hold dates.
Currently, your model only indicates that those fields exist, and that they belong to the
Project entity, but has no information about what type of data they store.
Inheritance is the mechanism that enables an object to adopt the properties of another
more general (or abstract) object. By inheriting from pattern library fields, you enable
your application to do the following:
■ Validate data entered in the fields (which ensures, for example, that an end user
does not accidentally enter February 31)
■ Display data on the screen appropriately (such as displaying dates according to your
Windows settings)
■ Store data appropriately in the database (creating a text field in the database for
the Project Description field, and date fields for the Project Start Date and Project
End Date fields)
48 Getting Started
Project Entity and Triples
You can see that Project ID now has the value *Blank, but you cannot tell much else
about what it inherited from FIELDS/Identifier. Values are another type of CA Plex
object.
7. Drag the Project ID field from the Object Browser to the body of the Model Editor.
The body is the bottom part of the editor, where the full triples are displayed.
When you drag one or more objects to the body of the Model Editor, the display
changes to show you only the triples that define those objects. This is called
focusing the Model Editor. When you drag the Project ID field to the Model Editor,
it focuses on this field, showing the triple Project ID is a FIELDS/Identifier. This still
does not give you much information.
8. Click the Two Levels toolbar button to see more about what an object inherits from
its ancestor objects.
The Model Editor shows another level of detail.
Now you can see that Project ID has inherited a data type of character and length of
10, along with the value *Blank (which you saw in the Object Browser in Step 7).
Note: In Step 5, you dragged the library object FIELDS/Identifier from the Object
Browser to the target object box in the Model Editor. You can enter the name of the
object into the target object box (without the library name) to accomplish the same
thing. In Step 5, you would have entered Identifier.
Important! If you entered a wrong object name, you could create a new object with the
wrong name. If this happens, find the erroneous object in the Object Browser and
delete it, selecting the Ripple Delete check box on the Delete dialog.
9. Click the One Level toolbar button to set the Model Editor to show a single level of
information.
10. Reset the Model Editor display by clicking the Clear Focus button.
All of the triples appear in the model again.
Note: If your Model Editor displays many more triples than shown in the previous
graphic, then you have your model set to display library objects. If this is the case,
click the Show/Hide Library Objects toolbar button.
11. Drag the Project Description field from the body of the Model Editor to the source
object box. This field is in the third column of the Project has Project Description
triple.
12. Enter ShortDescription in the target object box, and press Enter.
The Model Editor displays the triple as:
Project Description is a FIELDS/ShortDescription
This indicates that you correctly spelled the name of the pattern library field.
Note: If you create a new object for a model, and it happens to share the name of a
library object, you must rename your object or delete it (if you did not intend to
create it).
50 Getting Started
Project Entity and Triples
Continuation Triples
We now introduce an extension to the triple syntax—the continuation triple. A
continuation triple is like other triples except that the source object is a triple.
In the next series of steps, you enter the following continuation triples to specify that
certain fields are optional:
If end users leave a mandatory field blank and then try to close the dialogs, a message
dialog prompts them to enter data for the blank mandatory field and does not let them
close the dialog until they do. Since this processing is defined as part of the pattern
library and not hard-coded into CA Plex, you can adapt it as required.
5. Select optionality SYS from the verb (top middle) list, and Optional from the target
object (top right) list.
6. Press Enter.
You have entered the continuation triple:
Project has Project Description
...optionality triples Optional
Note: If you do not see this view, click the One Level toolbar button to set the
Model Editor to show a single level of information.
7. Make the Project Start Date and Project End Date fields optional in the same
manner.
8. Refresh the Model Editor.
The Model Editor will look like this:
52 Getting Started
Project Entity and Triples
Patterns are groups of CA Plex objects that are designed to be reused and customized.
In this chapter, you inherit from the included pattern libraries. Additional pattern
libraries are available from third-party vendors.
Also note that patterns are created with CA Plex rather than being hard coded into the
tool. You can customize a pattern library by creating your own patterns that inherit from
the supplied patterns, or you can create your own patterns from scratch.
Patterns and Components. Patterns and components (such as COM and EJB
components) are complementary technologies. CA Plex patterns can be used to
combine and implement groups of components. Components are usually compared to
the building blocks of a house. Extending this metaphor, you can think of patterns as the
blueprint or plan for the house.
To define the project entity, you again use inheritance. You define the project entity
with only two triples:
Project is a FOUNDATI/EditDetail
Project is a STORAGE/RelationalTable
The first inheritance triple gives your entity the ability to display and process a user
interface. The second inheritance triple provides the functionality to read Project
records from, and write Project records to, a relational database.
The step-by-step instructions that follow help you better understand the consequences
of entering these two triples.
54 Getting Started
Project Entity and Triples
Project inherited one function, Edit, with a scoped panel and a caption, and two
views, Fetch and Update. These objects give Project a user interface, and enable it
to store data to and retrieve data from a database.
Specifically, CA Plex performs the following actions:
■ The Edit function displays the panel scoped by it.
■ The Caption and Panel objects, which are scoped by the Edit function, store the
layout of the Edit Projects panel. To see what this panel looks like, see the
generated application illustration in the section Run the Project.Edit Function
later in this chapter.
■ The Fetch and Update views scope functions that read and write database
records.
Next, indicate how the Project entity stores information. Your application uses a
relational database, so you need processing that creates and maintains database
tables. Set Project to inherit from STORAGE/RelationalTable for that functionality.
The Model Editor should still have Project in the source object box, and is a ENT
showing in the verb list.
Drag STORAGE/RelationalTable from the Object Browser to the target object box,
and press Enter to create the following triple:
Project is a STORAGE/RelationalTable
5. Click the Refresh button to see all the triples that you have defined for the Project
entity in the Model Editor.
6. Click the Refresh button on the Object Browser.
The object browser will look like this:
56 Getting Started
Project Entity and Triples
Notice that the Project entity has inherited an object called Physical Table from
STORAGE/RelationalTable. This defines the table that is created in the database
when you generate the application. The fields that you defined for the Project
entity are stored in this table.
Microsoft Office Access does not support views. However, the ODBC driver
supports the SQL CREATE VIEW statement, and will create a query in Microsoft
Office Access.
This means that generating and building a view in CA Plex creates a query in
Microsoft Office Access. Microsoft's technical support described this situation as an
undocumented feature. We do not recommend that you use it in CA Plex. Instead,
set all views to have VW type SYS = Table Access, so that views are actually
implemented.
7. Drag the view Project.Fetch from the Object Browser to the source object box of
the Model Editor.
8. From the verb list, select type SYS.
9. Select Table-access in the target object box, and press Enter.
Some types of objects are unscoped. This means that they exist independently of all
other objects in the model. For example, entities are typically unscoped. Conversely, a
table is always scoped to an entity. To create a table object, you must specify the entity
to which it belongs.
When you refer to a scoped object, you usually need to use its full name to avoid
ambiguities. For example, there is an entity called Project that scopes a function called
Edit. The function’s full name is Project.Edit which distinguishes it from other Edit
functions such as Employee.Edit that also exist in this model.
The previous steps demonstrated how scoped objects are usually created when you
inherit from a pattern. You can also create scoped objects manually.
58 Getting Started
Set Up the Generate and Build Options for Java
After you have generated and built the objects in your model, you can run the program
to see what you have created.
60 Getting Started
Generate and Build
Note: Two warnings appear in the Message Log during the generation and build
processes. This is expected and is not a problem.
For more information, see Message Log in this chapter.
3. When the generation process is complete, the Cancel button becomes an OK
button. Click OK to close the Generation Status dialog.
CA Plex prompts you to compile and build the objects.
4. Click Yes both times.
The first Java compile dialog is to compile the database tables and views. The
second Java compile dialog is for the coalition of the java functions.
CA Plex opens a new Shell Build window and uses Apache ANT and the Java
compiler to build your generated code.
At the same time, the database table is sent to the ODBC data source being used for
this sample application. To make the setup easier, CA Plex created this data source
automatically during installation together with the underlying Microsoft Jet
database.
You can see that your Java build is complete when the message BUILD SUCCESSFUL
appears in the Shell Build window. You can close the Shell Build window.
CA Plex generates Java code that is based on the Java SE platform. Each function in the
model is implemented as a set of Java classes that are then packaged into one or more
JAR files.
If we chose to implement our application in C#, CA Plex would generate C# code based
on Microsoft’s .NET Framework. Similarly, we could also implement the application on
the IBM System i by generating native RPG and DDS code.
Message Log
Two warnings appear in the Message Log during the generation and build processes.
This is expected and is not a problem. If you have additional warnings or error messages
this may indicate a problem. The most likely cause is that you have not entered all the
necessary triples into the model—go back and check against the instructions.
62 Getting Started
Your Generated Application
Leave this dialog open. The next steps show you how to add projects to your
database.
Value Enter
Project ID Proj01
Project Description Temporary description.
Project Start Date 12/10/2006
Project End Date 01/01/2007
For now, you only enter Temporary description. in the Project Description field
because the field extends past the right edge of the dialog. If you type anything
longer, you will not be able to see what you are typing. Since Project Description
was defined as an optional attribute, you can leave it blank if you prefer.
After you finish entering data, modify the panel layout to view the entire
description.
Click the Apply button.
The values are posted to the database and the grid region on the left of the window
shows the new project.
2. Click the Copy toolbar button to create a new project populated with Proj01’s data.
Add the following two projects to the database:
Value Enter
Project ID Proj02
Project Description Temporary description.
64 Getting Started
Your Generated Application
Value Enter
Project Start Date 03/01/2006
Project End Date 04/04/2006
Value Enter
Project ID Proj03
Project Description Temporary description.
Project Start Date 05/05/2006
Project End Date 06/05/2006
3. Click the close window button at the upper-right corner of the dialog to exit the
application.
Note: None of the panels that are inherited from the pattern libraries have Cancel
buttons on them. If you click the Close Window button, any pending actions are
discarded. If you click Apply, though, those changes are completed before the
window closes.
Feel free to experiment. Examine referential integrity checking inherited from the
pattern library. For example, you cannot enter the same Project ID for multiple records.
Preserve Data
By default, each time you build your application, CA Plex rebuilds all of the objects you
select in the Generate and Build window, including the tables in your database. Because
rebuilding a database table erases all data in the table, if you leave your local model
setup as it is, you will lose all of the data you just entered the next time you build.
You can prevent losing this data by entering a TBL implement SYS No triple for the table.
This keeps the table from being rebuilt the next time you build the entity to which it is
scoped (in this case, Project). Only set this triple after you have built the table at least
once.
To preserve the data and keep the Project entity table from being regenerated
1. In the Object Browser, select Project.Physical Table, and drag it to the source object
box in the Model Editor.
2. From the verb list, select implement SYS.
3. From the target object list, select the value No.
4. Press Enter.
5. Save your model.
Note: If you make any changes to an entity that affect its table, such as adding fields to
it, you must set the implement SYS value back to Yes and regenerate the table. Any data
in it is lost. If you want to preserve data entered after rebuilding, make sure you reset
the implement SYS value to No.
Panel Designer
You may have noticed that when you ran the Project.Edit function, the dialog did not
look quite right. The Project Description field ran off the right edge, and there was not
enough room to enter more than a couple of words of description.
The Panel Designer changes the panel displayed by Project.Edit. You can change the size
of the Project Description field and give it a multiline edit control (so that you can enter
multiple lines of text). You can add some spin controls to the date fields too.
66 Getting Started
Panel Designer
Visual Development
You have seen that, unlike visual development tools, the starting point for an CA Plex
application design is a design model, not screen layouts. This is because design and
modeling are the keys to building large-scale applications successfully. However, just
like a visual programming tool, CA Plex provides an easy-to-use editor for designing
graphical user interfaces (GUIs). It includes a rich set of native GUI controls plus the
ability to use third-party components (ActiveX controls in Windows C++ and JavaBeans
in Java). There is another mode of editor that enables the character-based screens of a
System i 5250 application to be designed in the same way.
Design Window
The Design Window is the main window in the Panel Designer and shows you what your
panel looks like. When you change a panel’s properties, you see how the changes affect
what the panel looks like here. You can select, move, and resize buttons, fields, and
other user interface elements using this window. When you make visual changes to the
panel and its elements using the other windows, the changes appear here.
The elements of a panel are grouped into regions (each region has a name). The
following graphic shows the grid and detail regions in the panel displayed by
Project.Edit:
68 Getting Started
Panel Designer
Panel Palette
You can open the Panel Palette by selecting Panel Palette from the Windows menu. The
Panel Palette shows all the elements of the panel, including fields, labels, and buttons
which are grouped under folders ( ) and regions ( ). You can expand the folders and
regions to see what they contain. Most of the visible elements are contained in regions.
You can see the five regions of the panel (GridP, DetailP, GridButtonP, DetailButtonP,
and Panel) in the Panel Palette.
When a region is expanded, as the DetailP region is in this example, you can see the
elements contained in that region. In the case of the DetailP region, this includes the
Project ID, Project Description, Project Start Date, and Project End Date fields.
When represented on panels, fields typically contain more than one part, usually
including at least one label and a control. Notice on the previous graphic that the
Project ID field shows a Left Label and an Edit control. The label indicates whether it is a
Left Label, a Top Label, or a Right Label. The type of label indicates if it appears to the
left or right of the control (left/right label), or as a column heading (top label). The
control is the part that the end users interact with. The settings for the control indicate
if it is displayed as an edit box, a list box, a combo box, and so on.
Property Sheet
Every element on a panel has a set of properties associated with it, such as its size,
color, or position. The Property Sheet shows you the properties of the currently selected
element. If no element is selected, the Property Sheet shows you the properties of the
panel as a whole.
To see what you can change about an element, select the element in the Design
Window or the Panel Palette and check its properties on the Property Sheet. The
properties displayed depend on the type of element selected.
For example, you can specify if a button should be included in the tab sequence by
setting its Tab Stop property. However, a field label would never be included in a tab
sequence, so if you select a label the Property Sheet does not display this property.
70 Getting Started
Panel Designer
The field still extends past the right edge of the panel.
6. In the Property Sheet, click the Size (Col, Row) property.
7. In the edit area at the top of the Property Sheet, change the value to 200, 20, and
click the check mark button.
The edit control resizes so that it fits within the panel and the beveled box that
surrounds the fields resizes so that it is just slightly wider than the fields.
8. Drag the handle on the bottom center of the edit box to make the box taller. Make
it about three times as tall.
The panel should look something like this:
72 Getting Started
Panel Designer
You have repositioned and resized the Project Description edit box. Next, set two
properties that enable end users to enter more than one line of text in the edit box.
9. In the Property Sheet, double-click the Multi-line property to change its value from
No to Yes.
10. Select the Scrolling property in the Property Sheet.
Note: If the Scrolling property is not available, ensure that the value of the
Multi-line property changed from No to Yes.
Notice that the input area at the top of the Property Sheet is changed so you can
select a value from a list, but you cannot type in a value.
11. Select Vertical from the list.
Setting the Scrolling property to Vertical causes the text in the multi-line edit box to
wrap to the next line when the cursor reaches the right edge. If you do not set this
option, text continues on the first line and extends beyond the edge of the field,
rather than wrapping to the next line.
When you change the size and shape of the Project Description edit box, it covers
the Project Start Date and the Project End date fields. Next, move those two fields
down.
12. In the Panel Palette, select the Project Start Date field in the DetailP region without
expanding it.
13. Holding the Ctrl key down, select the Project End Date field. This selects the Project
Start Date and the Project End date fields.
14. Drag the fields in the Design Window so they are below the bottom of the Project
Description multiline edit box.
You can see that the beveled box around the fields resizes to fit around all of the
fields:
74 Getting Started
Panel Designer
To modify the two date fields so that they include spin controls
1. On the Design window, hold down Ctrl and click one of the edit controls of the date
fields. Holding down Ctrl causes the control to be selected instead of the region in
which it is contained.
2. Hold down Ctrl and Shift at the same time and click the other date control. Both
date controls should now be selected and the Design window should look like this:
3. In the Property Sheet, locate the Spin Control property and set it to Yes.
Notice how you can select multiple elements on a panel and change properties for
all of them.
4. From the File menu, click Save.
5. Close the Design Window.
This closes the whole Panel Designer.
To rebuild a panel, you regenerate and rebuild the function that scopes it. Because
you have only modified the Project.Edit.Panel object, you only need to regenerate
and rebuild Project.Edit. If you had made changes that affected the scoped table or
other objects, you would also need to regenerate and rebuild those other objects.
Click the Generate and Build toolbar button.
Click Yes when prompted to generate and click Yes when prompted to build.
When the Generate and Build process is complete, click Project.Edit in the Generate
and Build window, and click the Run toolbar button.
The modified dialog appears showing the data you already entered.
76 Getting Started
Panel Designer
1. Select the text in the Project Description field for Proj01 and replace it with a longer
description. For example:
Create a database application for the McCready account. Contact is Jim Hauser,
415-555-3146.
2. Click Apply.
Notice that the description is changed in the grid and detail regions.
3. Select Proj02 and Proj03 and repeat this process to change their description to:
Proj02: Create an email client for internal support staff.
Proj03: Convert the ODBC version of the McCready application to a System i
version.
4. Close the application.
Review
In this chapter, you have done the following:
■ Learned how to use the Model Editor to add triples
■ Inherited from pattern library objects to define fields, and data access and user
interface functions
■ Generated and built the Project entity’s database table and the inherited functions,
and added some sample data
■ Used the Panel Designer to modify the inherited panel layout
■ Regenerated and rebuilt the affected objects to see your changes
This chapter introduced the following patterns (and their scoped objects):
Pattern Description
Triple Description
ENT known by FLD Defines the primary key of an entity
ENT has FLD Defines a data attribute of an entity and whether it is
...optionality SYS mandatory or optional to provide a value for a field
ENT is a ENT The source entity inherits the properties of the target
entity
FLD is a FLD The source field inherits the properties of the target field
TBL implement SYS Specifies whether to generate and build a database table
78 Getting Started
Chapter 4: Group Model Licensing
Group model licensing is an optional feature that enables Independent Software
Vendors (ISVs) to protect their group models from unauthorized use. CA and its business
partners must have informed you which of their group models are licensed during the
sales transaction.
The first time you reference or open a licensed group model, the licensing dialog
appears identifying the group model as licensed. The licensed group models require an
authorization code.
If the licensed group model author enables the trial license feature, you will receive a
trial license for a temporary period. You must request and enter your authorization code
before this period ends. If enabled, the trial license feature lets you immediately use the
group model while you wait for your authorization code. If this feature is not enabled,
you cannot use the model until you receive your authorization code. After you receive
your authorization code, enter it in the Licensing dialog.
You can get your authorization code using the email or fax facility in the CA Plex
Licensing dialog.
The information about whom you should get your Authorization Code from is stored in
the licensed group model. If you use the email or fax facility, this information
automatically appears. You can also select About Group Model from the Help menu to
view this information.
For more information about navigating to a licensed group model’s licensing dialog, see
Access the CA Plex Licensing dialog. Use these instructions, where applicable, to
maintain the license of a licensed group model.
If a licensed group model is unauthorized, the dialog automatically appears the first
time the model is opened.
80 Getting Started
Group Model License Transfer
Important! Never transfer a license to an open copy of CA Plex; it disables the license.
1. On the target PC, share the license directory of the target copy of CA Plex
(Windows\Oblicense) with full permissions, so the license files can be copied.
2. Map the directory path for the target copy of the CA Plex license directory.
Note: UNC path names are not supported; for example,
\\MyServer\Windows\Oblicense. You must map to the target PC using a drive
letter, for example, K:\Windows\Oblicense.
3. Log on to your host group model on the source workstation.
5. On the Group Model window, select the licensed group model and select About
Group Model from the Help menu.
4. Click License, Direct License Transfer.
5. In the Direct License Transfer dialog, enter the path to the target PC’s
Windows\Oblicense directory (remember, the path must begin with a drive letter).
Note: This is either the root OBLICENSE directory for CrypKey 4.2, or the
OBLICENSE\61 directory for CrypKey 6.1.
6. Click OK to transfer the license.
A message box displays the results of the transfer.
Using this method requires advance planning. Before you begin the transfer process, the
trial license on the target PC (unlicensed version) must be expired. This is because the
target PC needs to be registered before you transfer the license. You cannot register the
PC until the trial license has expired.
For this transfer, you need an ordinary floppy disk with 180 bytes of free space.
The following scenario explains the procedure of transferring a license from your office
PC to your home PC, and back again to the office PC.
Before you can transfer your license, you must prepare your home PC and office PC for
the transfer.
82 Getting Started
Group Model License Transfer
Use the following procedure to transfer a group model license from your office PC to
your home PC.
Your home PC is now registered. A registration file is placed in the HOME directory. The
Office directory is still empty.
Both directories on the disk now contain data. The HOME directory contains the license.
The OFFICE directory contains the office PC’s registration information. The registration
information is required for returning the license to your office PC.
Note: At this point, you cannot register the office PC again. If you try to register it again
the following message appears:
You cannot transfer a different license to the office PC at this time. If you do, you will be
unable to transfer the original license back to the office PC. This is because the site code
on the office PC changes when you transfer a different license to the PC. If you attempt
to transfer the original license back to the office PC, it will not work with the new site
code.
84 Getting Started
Chapter 5: Pattern Libraries
Pattern libraries are sets of reusable design objects on which you can base the
applications you develop.
For more information about using the class libraries, see the CLASSLIBS.chm help file.
86 Getting Started
Chapter 6: System i Components
This chapter describes how to install and configure the System i
components—specifically for the System i client/server, System i 5250, and Java
client—System i server products.
Note: CA Plex also supports the development of Java Server applications on the System
i. For more information about the setup instructions, see the chapter "Java
Components."
88 Getting Started
Minimum System i Deployment Requirements
90 Getting Started
Restore the Product Libraries from Save Files (*SAVF)
14. Enter put plex700.savf, and press Enter. The time to transfer the file varies
depending on your network speed.
Note: The .savf extension is required.
The system replies that the file transfer is completed successfully.
15. Repeat Step 14 for ytutorial.savf, ytutrefer.savf, and appintobj.savf.
16. Enter quit, and press Enter.
This stops your FTP session.
17. Exit the command line session.
To use TCP/IP with this release of CA Plex, you must have the following:
■ i5/OS V5R3 or later
For more information about configuring TCP/IP for your System i, see the IBM
publication, TCP/IP Configuration and Reference (SC41-34209-00). These
instructions presume that TCP/IP is installed and active on your System i.
■ TCP/IP configured and started on your System i
■ TCP/IP version of the System i CA Plex Dispatcher started on the System i
For CA Plex clients to connect using TCP/IP, you must have the following:
■ The TCP/IP CA Plex Dispatcher started on the System i
■ A port number assigned when starting the TCP/IP Dispatcher program
The Dispatcher programs supplied with CA Plex r7.0 are not compatible with V5R2 and
earlier.
92 Getting Started
CA Plex TCP/IP Environment Configuration
Initially at the time of writing, V5R3 does not fully support IPv6. Therefore, a separate
version of YOBSYTCPDP is required on V5R3. This version is supplied as two programs,
YOBSYTCPC3 and YOBSYTCPD3. To install the V5R3-compatible version:
1. Rename the existing YOBSYTCPCT and YOBSYTCPDP programs within your PLEX
library (PLEX700).
2. Rename the YOBSYTCPC3 program to YOBSYTCPCT and rename the YOBSYTCPD3
program to YOBSYTCPDP.
Note: Any running dispatchers should be stopped before any renaming occurs, then
restarted, after the renames have occurred.
At V5R3 only, one limitation of the YOBSYTCPDP Dispatcher is that it does not display
the actual user profile for the Job User parameter of the spawned job name on the
i5/OS WRKACTJOB screen. This limitation does not exist at V5R4 or later.
As a workaround for this i5/OS limitation on V5R3, you can run the YOBSYTCP dispatcher
instead of YOBSYTCPDP. The YOBSYTCP dispatcher is not generally recommended
because it is not firewall compatible and as well as not supporting IPv6.
YOBSYTCP_R dispatcher
94 Getting Started
CA Plex TCP/IP Environment Configuration
Object Authorities
The Grant Object Authority (GRTOBJAUT) command or the Edit Object Authority
command can be used to grant these object authorities.
Example:
The STARTDSP user profile starts the Dispatcher (YOBSYTCPDP or YOBSYTCP) on the
System i, which does not have *ALLOBJ authority but has *SECADM authority. The
CONNECTUSR user profile is the connecting client user profile.
Note: AUT(*OBJOPR *READ *EXECUTE) is equivalent to *USE authority when using the
'Edit Object Authority' (EDTOBJAUT) command.
In the previous example, the CONNECTUSR user profile will not be to able reset its own
expired password because the STARTDSP user profile does not have Object
Management (*OBJMGT) authority to the CONNECTUSR user profile.
In the next example, the CONNECTUSR user profile will be able to reset its own expired
password because the STARTDSP user profile does have Object Management
(*OBJMGT) authority to the CONNECTUSR user profile.
Note: In these examples the parameter 62000 is the assigned port number. However, it
can be any unused port number that is not in the range of port numbers previously
registered with the Internet Assigned Number Authority (IANA). These registered ports
are typically within the range of 0 to 1023.
We recommend using port numbers between 3000 and 62000 to avoid conflicts with
lower numbers as they become registered. Also note that port 70000 is not a valid port
number.
The YOBLISTEN job runs until it is ended manually or by the system IPLs. Set the
SCDTIME parameter to a time after the IPL, when the STRTCP command was issued to
complete the TCP/IP startup.
Example 1:
Example 2:
The following is an example you can use if your IPL happens nightly:
Note: The PARM value in the previous statements must include the single quotes or the
call will fail.
After submitting the ADDJOBSCDE command, the Dispatcher will not start until the
scheduled time after the next IPL.
96 Getting Started
CA Plex TCP/IP Environment Configuration
You can choose to start the Dispatcher before the next IPL.
WRKJOBSCDE
1. Enter 10 next to the job, and press Enter.
The job will start immediately (typically, you would only do this once on the day you set
up the Dispatcher).
You can start additional CA Plex TCP/IP Dispatchers on additional ports at any time for
testing purposes. For instance, when first configuring CA Plex for TCP/IP to the System i,
you may want to start the Dispatcher manually before adding the job to your startup
routine.
The parameter passed into the YOBSYTCPDP (or YOBSYTCP) program must be an
available, unused port number.
2. Verify that your port has started by entering the following command on the
command line:
WRKTCPSTS *CNN (check the Local Port column for the port number you assigned)
Note: Use QINTER as the job queue so that incoming CA Plex clients get interactive
response times. The job queue that starts the CA Plex TCP/IP Dispatcher is used for
submitting individual client jobs as they are requested. Using a batch job queue may
cause your CA Plex client jobs to sit in your batch job queues, subsequently causing a
time-out and hanging behaviors on the client side.
After restoring the library, enter the following command to update its JOBD:
CHGJOBD JOBD(library-name/PLEX700)
INLLIBL(QTEMP library-name YTUTORIAL YTUTREFER APPINTOBJ
QGPL)
98 Getting Started
How to Restore the Product Libraries Under a Different Name
to:
jobdesclib=library-name
■ C:\Program Files\CA\Plex\7.0\Plex.INI
Under the section titled [Remote], change the line:
Library=PLEX700
to:
Library=library-name
■ C:\Program Files\CA\Plex\7.0\Bin\Obsyrt.ini
Under the section titled [Remote], change the line:
Library=PLEX700
to:
Library=library-name
Note: The Windows C++ Server generator is provided only for maintenance of existing
Plex WinNTC applications. CA strongly recommends the use of C# or Java generator for
the development of new Plex applications for the Windows Server platform. Customers
with existing WinNTC applications are encouraged to consider a migration to C# or Java.
Note: Microsoft Visual Studio 2005 needed to be set as 'Run as Administrator'. You can
do this against the properties for the devenv.exe. Go to the 'Compatibility' tab and set
the 'Run as Administrator 'check box at the bottom.
For more information about additional system requirements, see the Release Notes.
In addition, the CA Plex Windows C++ Application Server SDK must be installed on the
server machine.
Application Server
The Application Server is the name for the services and components that support CA
Plex C++ applications on Windows servers.
To install the Application Server when you install the CA Plex base product
1. When asked to specify which type of setup to install, click Custom.
2. Check CA Plex Windows C++ Application Server SDK in addition to what is already
checked.
To install the Application Server after you install the CA Plex base product
1. Click Start, Settings, and Control Panel.
2. Double-click the Add/Remove Programs icon.
3. In the list of products, select CA Plex.
4. Click Change/Remove.
5. On the InstallShield Wizard window, select Modify, and click Next.
6. Select the CA Plex Windows C++ Application Server JDK check box.
7. Click Next to start the installation.
Oracle Support
You can use the Windows Server (WinNTC) generator to create applications that access
data in Oracle databases on Windows Servers. The run-time application uses the native
Oracle Call Interface (OCI) for fast data access.
Before using CA Plex, ensure that Oracle is properly installed on the server (see your
Oracle documentation for details) and that a basic user (like the default user SCOTT) has
been configured with the following privileges:
■ Connect
■ Resource
■ Tablespace
CA Plex generates 100 percent pure Java code that can be run under any Java Virtual
Machine on any platform. If you have any existing Java applications generated by CA
Plex, run-time backwards compatibility enables new versions of the CA Plex Java run
time to be deployed without regenerating existing applications.
CA Plex Java clients are primarily tested on Windows. Java client applets are tested using
the Sun Java plug-in. Note that CA Plex Java clients require the Sun Swing classes to
support GUI components.
The following table summarizes the installation requirements for CA Plex Java
development. Deployment requirements are documented in the Java Platform section
of the online help.
Component Description
Java client ■ CA Plex Java components
■ Sun Java SE JDK 7.0. Other versions of the JDK work
with CA Plex, but they have not been fully tested. Freely
downloadable.
■ The JAVA_HOME environment variable must be
defined.
Java server The same as Java client, with the addition of:
■ Third-party DBMS and JDBC driver (for runtime data
access)
■ ODBC driver (for database builds, not required at run
time)
For System i Java server development:
■ PLEXJVA700 library
■ IBM Client Access (or equivalent)
■ IBM System i Toolbox for Java
1. Click OK.
For more information about instructions on starting the Dispatcher, see Using a Batch
File to Start the Java Dispatcher in the online help.
For more information about web servers, see Setting Up a Web Server in the online
help.
As an alternative to the Java Dispatcher, you can use the EJB runtime proxy to manage
communications in distributed Java applications. For more information, see the online
help.
These instructions assume you are using the System i Toolbox for Java. The use of IBM
Client Access (or equivalent) is also recommended for accessing the Integrated File
System (IFS) on the System i.
Note: If you are developing Java client to RPG server applications, you can ignore this
section. To connect to RPG server functions on a System i, Java clients use the System i
TCP/IP dispatcher that is included in the PLEX700 product library. The installation
process is the same as for Windows clients and is described in the chapter "System i
Components."
PLEXJVA700 Library
The PLEXJVA700 library is supplied as a save file in the AS400 Libraries folder on the CA
Plex CD-ROM. This must be transferred to the System i and restored in the same way as
the other CA Plex System i libraries. For more information, see Transferring the Product
Libraries from CD to System i and Restoring the Product Libraries from Save Files
(*SAVF) earlier in this guide.
Environment.Default.Driver=
com.ibm.as400.access.AS400JDBCDriver
Environment.Default.DataSource=
jdbc:as400://MACHINE/LIBRARY
Environment.Default.User=USERID
Environment.Default.Password=PASSWORD
You use the CRTJVAPGM command on a single file, an entire JAR file, or an entire
directory (using wildcards). There are four levels of optimization you can choose. Unless
you have a reason to do otherwise, use full optimization (level 40). The command
creates an optimized hidden file for each .class file that is loaded by the System i Java
Virtual Machine. For more information about this command, see the System i online
help.
For more information about this command, see YSTRJVADSP in the Index of the CA Plex
online help.
At the Classpath prompt, type in the full path to the CA Plex Java run time, for
example, /Objava/lib/obrun.jar.
The CA 2E Data Migration product supports the migration of relational data modeling
meta-data from CA 2E to CA Plex. It does not support the migration of action diagram
code and panel designs. For complete CA 2E to CA Plex migration support, see the CA
partner solutions from ADC Austin (www.adcaustin.com).
This section describes only the prerequisites that are specific to CA 2E Data Migration.
Memory
The minimum memory requirement for CA 2E Data Migration is 1 GB RAM.
Since Data Migration can populate large CA Plex models quickly, consider increasing the
amount of RAM on the PC used for development, if you are importing a large CA 2E
model.
Parallel CA 2E Installations
If you are working with parallel CA 2E installations, you must adapt the
YIMPS2OBSY/QBATCH job description library list to fit your environment. Adapt your job
description to reference the correct libraries if you have done the following:
■ Placed CA 2E objects in additional libraries
■ Consolidated CA 2E objects into fewer libraries
■ Renamed your CA 2E libraries
There are several data sources that you can import into the Application Integrator. Each
one is a separately licensed product.
■ Schema/ODBC—Enables the integration of data schemas from any ODBC data
source. This replaces the previous ODBC Import Utility.
■ Schema/400—Enables the integration of a DDS-defined data schema from the
System i. This replaces the previous DB2/400 Import Utility.
■ Application Integrator/400—Enables the integration of i5/OS programs
(hand-coded or generated by other tools).
■ Application Integrator/2E—Enables the integration of CA 2E functions direct from
an CA 2E model.
For more information about using Application Integrator, see the online help.
System Requirements
The requirements specific to Application Integrator are as follows:
■ PC Development Environment. Large imports may require more than the
recommended minimum memory.
Note: For more information about PC Development Environment, see the System
Requirements section in the Release Notes.
■ Minimum System i Development Requirements, which include the i5/OS.
Note: For more information about supported version, see the Minimum System i
Development Requirements (see page 88) section.
To install the Application Integrator tool when you install the CA Plex base product
1. Click Custom when asked to specify the type of setup to install.
2. Select Application Integrator in addition to what is already selected.
To install the Application Integrator tool after you install the CA Plex base product
1. Click Start, Settings, and Control Panel.
2. Double-click the Add/Remove Programs icon.
3. In the list of products, select CA Plex, and click Change/Remove.
4. On the InstallShield Wizard window, select Modify, and click Next.
5. Select the Application Integrator check box, and click Next to start the installation.
Note: If you did not see a warning message, these steps are not necessary.
A: You should perform regular backups of your group models on a daily basis. A group
model is the central design repository. It is extremely important. If you accidentally
destroy a local model, all the work you have done since the last extract from the group
model is lost. If the group model is accidentally destroyed, all the work for that group
model is lost. It may be possible to recover all or some of the data from a local model
(using the XML Import/Export feature) but this is not guaranteed in all cases. For more
information, see Backups in the online help.
A: We recommend that you update your changes to the group model at least once a
week, but preferably more often. Frequent updating in a workgroup environment
makes your changes available to other developers. More importantly, after changes are
updated to the group model, they become part of the central repository and are more
secure. Note that extended periods between updates affect the time it takes to do an
update; the more work that CA Plex has to do to get through the differences between
your local model and the group model, the longer it takes.
Q: Why does my function, field, table, or view have two implementation names?
A: You and someone else updated the group model after having generated and built
functions and panels or tables or views. Your implementation and file name triples and
objects—and those of the other person—were added to the group model without one
set replacing the other. If this happens, you must delete the duplicate names.
Note that a group model conflict occurred when the second person tried to update the
group model. You can choose not to update at this point. To avoid such conflicts in
advance, ensure you frequently update changes, especially after making changes that
impact other developers in your workgroup. For more information, see Avoiding and
Resolving Conflicts in the online help.
Q: I tried to generate an object but I got an error stating that I must specify an
implementation language. What went wrong?
A: If you inherited the object from a pattern library (such as OBASE) make sure that the
configuration of your local model is correct. To do this, choose Configuration from the
File menu and, in the Model/Library box, select each model in turn. For each one, make
sure that the Variant option is not set to Base. Instead, select the appropriate variant for
your current work.
Customer A 1.1 Release 1.0 A FunkyApp 1.1 release specific for customer A
Customer A
fixes
Release 1.1
Customer B 1.1 Release 1.0 A FunkyApp 1.1, release specific for customer B
Customer B
fixes
Release 1.1
A: It might be faster if you could enter literals anywhere in the code, as you can in most
programming languages, so why does CA Plex not permit this? The reason is
maintainability. Too many programs in too many languages have literals that are coded
into the programs with no explanation as to the significance of the letter or numeric
value. As an enterprise development tool, CA Plex was designed to enable applications
to be easily maintained by someone other than the original developer. Hence, you are
forced to label all literals all the time to make your programs easier to understand.
A: Meta code is used in pattern libraries to interrogate the triples in the model and
provide the expected functionality. For example, a field with a triple MyField default
MyDefault does not provide any default values without supporting meta code in the
action diagram to set that default value. To learn more about meta code,
Meta-operations, click the Locate button to see related topics in the Contents tab in the
online help. Work on customizing supplied library code by copying and altering the code
of others.
A: Sometimes a pattern is obvious, but the extra effort to make a great, inheritable,
customizable pattern is not worth the effort because you may only implement it twice.
On the other hand, something that obviously should be a pattern may be difficult to
abstract. Often, the answer is that after you implement it once—certainly when learning
about abstracting something for the first time—it is then clearer and simpler to work
out whether you should abstract it and how you can turn it into a pattern. To know
when to abstract becomes easier with experience.
A: In the C++ build options, select the Force Build Of Selected Objects; then rebuild your
functions. If this does not work, delete the entire Obj subdirectory, and then rebuild. For
more information, see Generating and Building for Action Diagram Debug in the online
help.
Another technique is to use default mapping in the Parameter Mapping dialog. Default
mapping lets the Action Diagrammer automatically make its best guess when mapping
parameters between function calls, saving you from mapping each parameter
individually. For more information, see Setting up Default Mapping in the online help.
Q: What is the difference between pre, post, and edit points? Which should I use?
A: Edit points are left over from previous versions of CA Plex. Collection points (the
collective name for pre and post points) are an improved place to put your code. The
difference is that edit points overwrite each other at the different levels down the
inheritance tree (you have to be extremely careful with the nesting), whereas collection
points are cooperative and just collect code together in sequence. You can always add
code to the bottom of a collection point in any action diagram, regardless of whether it
has been used before. Edit points are restricted because if they have been used, you can
no longer use the edit point further down the inheritance tree. Therefore, we
recommend that you do not use edit points.
So which should be used: post or pre points? Sometimes it is obvious. You want to put
code before or after another piece of code in the edit, pre, or post point so you know
where to put it. What if it does not matter if the code goes in the pre or post point?
Then the code always goes into the post point. If someone inherits from your function
and wants to add code, if your code is in a post point they can add code before it (in the
pre point) or after it (remember that you can always add code to the end of a collection
point, regardless if it has been used higher in the inheritance hierarchy). If you add your
code habitually in the pre point, people can only add code after (never before) your
code if they are further down the inheritance hierarchy. In conclusion, always use post
points unless there is a reason not to. For more information, see Edit Points and
Collection Points in the online help.
A: This is perhaps the most difficult issue within CA Plex for the novice. we recommend
that you do the following:
1. Make an educated guess.
2. Expand the code before and after the post point.
3. Consider whether this is the correct post point.
4. Test it and see.
5. If it does not work, try Step 3 again; then try Steps 1 to 5 again.
Knowing which post point to use is the key to writing CA Plex functions quickly. Look at
other functions and determine why the local modifications were added at the particular
points that the developer chose. Remember that the class and pattern libraries are
based on the use of edit and collection points, so they can be examined for clues.
Sometimes it helps to open action diagrams from the libraries, for example examining
UISTYLE/EditDetailGrid shows you how to integrate UISTYLE/Detail and UISTYLE/Grid,
and how to use UISTYLE/UIBasicShell.
Examining other pieces of code, particularly the libraries, helps to increase your total
knowledge of which post point to use and when to use it. This increases your ability as
an CA Plex developer.
Q: Why do I have to keep on dragging my line to the edit box at the top of the window?
A: You do not have to do this. You can press the Insert key on the keyboard to enable
inline editing. Note that for multiline comments, you must press Ctrl+Enter to enter the
line into the action diagram, but for a normal single line of code, just press Enter when
you have finished editing.
A: You can do this in the Model Editor by deleting triples. You cannot just press the
Delete key on the Variable Palette. Go to the top line of the function or the Variable
Palette (they both show the function name) and press F12. This calls a Model Editor
focused on the function. Any fields and variables that may be deleted are listed in the
triples. Note that inherited fields and variables are not listed. To delete an inherited field
you must delete the triples from the function that specified them higher in the
inheritance hierarchy. You cannot delete the fields and variables of library functions.
Remember to press F5 (Refresh) to redisplay the variable palette to show that the fields
and variables have been deleted.
A: Use the Comment and Seq constructs frequently. Take AllFusion of the CA Plex long
object names to produce meaningful names. Carefully consider the naming of
subroutines and edit points and use block narratives where appropriate.
Q: How can I indicate that a field is supposed to be a dual (call by reference) parameter?
A: Change the triple in the Model Editor from MyFunction input MyField to MyFunction
dual MyField. You cannot do this from the Action Diagrammer.
Q: I changed the size of a Windows panel in the Panel Designer but at run time the size
did not change. Why?
A: The Save Placement property of the panel is probably set to Yes and the previous size
is probably still saved in the application .ini file. To see the change, delete the entry in
the .ini file (or rebuild it using the Create Exe command) or set Save Placement to No.
Q: My button on the panel does not do anything, even though the code is there. Why?
A: The physical event in the panel has most likely not been mapped to the CA Plex
logical event. A physical panel event is the result of somebody clicking, dragging,
pressing, double-clicking, or selecting something on the panel. For example, pressing a
button or selecting a menu item or entering text are all regarded as physical events,
because they occur visibly on your computer screen.
The other events in CA Plex are logical events. Logical events only happen within CA
Plex. They are not visible to you. Instead CA Plex lets you tie a physical event (clicking) to
a logical event. The action diagram, and in particular the events handler, can respond
only to logical events.
If you right-click the button (when it is selected) in the Panel Designer and choose Event
Mappings, you can see the Event Mappings dialog. Click Pressed in the list box on the
left (Physical event) and check that the list box on the right (Logical event) has the
corresponding event selected in blue (for example, MyButtonPressed). If it is not
selected in blue, select it before clicking OK to close the dialog. Switch back to the action
diagram—pressing F11 switches you quickly between a function and its panel—and
press F5 to refresh. Find the event code (an Event: Event MyButtonPressed construct in
the Events Handler construct), which should now be executed when you press the
button.
If you want to check which physical events are mapped to which logical events, look in
the Events folder in the Panel Palette in the Panel Designer. If a logical event has one or
more physical events assigned to it, it can be expanded and the physical event or events
are displayed.
Q: Why does the MDI parent not respond to common events triggered in the MDI
children?
A: The Menu ID properties of the menu items are most likely not set. Open the
MenuShell panel of MyMDI in the Panel Designer, and expand the Menu bar folder in
the Panel Palette. Find the menu items that are intended to be duplicated across all of
the children but responded to by the parent, and ensure that they have a MenuId
property of a number. Do not use the numbers 1 to 500, 54016, or 54107.
Q: I have Menu IDs, but my MDI child panel does not trigger MDI panel events. Why?
A: All MDI child panels and the MDI parent panel inherit from the common MenuShell
panel, so do not expect the child functions to pick up the Menu ID property numbers
you have set until you recompile them. When you recompile the children, the individual
panels will know the Menu ID numbers and be able to pass them to the parent.
Remember to recompile the MDI parent because it needs to know the Menu ID
numbers.
A: Press the Delete key. There is no selection to delete a menu item from the right
button pop-up context menu.
Q: I cannot see the new values I have entered for my status fields. Why?
A: If you add values to a field in the Model Editor and then go into a panel, these new
values are not shown on the field. In the Panel Designer, just select the field and choose
Refresh Values from the pop-up menu. The values are refreshed to match the triples in
the Model Editor.
Q: Is there a way to see the full text of a message in the Message Log?
Q: I cannot see the changes I have made reflected in other windows. Why?
A: Click the Refresh button (F5) to see your changes. In some cases, you may need to
close both a panel and its related action diagram (answering Yes when prompted to
save changes), and reopen them to see changes.
Q: I added a triple in the Model Editor but now I cannot find it. What happened?
A: There are a number of factors that determine which particular triples get displayed in
the Model Editor. Make sure that you check each one. For more information, see
Understanding the Model Editor Display in the online help. In addition note the
following:
■ The Model Editor does not display inherited (implicit) triples.
■ Triples that you add to an inherited object may not be visible in an unfocused
Model Editor window because there is no triple referencing the inherited object. In
such cases, focus the Model Editor by dragging-and-dropping the inherited object
from the Object Browser.
Q: There is no list of target object types available in the Model Editor. Why?
A: The target object type on the Entry Bar is not capable of input because its value is
always determined by the verb that you select.
1. DEFINITIONS. "Software" means the identified above in binary form, any other
machine readable materials (including, but not limited to, libraries, source files, header
files, and data files), any updates or error corrections provided by Sun, and any user
manuals, programming guides and other documentation provided to you by Sun under
this Agreement. Programs mean Java applets and applications intended to run on the
Java 2 Platform, Standard Edition (J2SETM platform) platform on Java-enabled general
purpose desktop computers and servers.
2. LICENSE TO USE. Subject to the terms and conditions of this Agreement, including,
but not limited to the Java Technology Restrictions of the Supplemental License Terms,
Sun grants you a non-exclusive, non-transferable, limited license without license fees to
reproduce and use internally Software complete and unmodified for the sole purpose of
running Programs. Additional licenses for developers and/or publishers are granted in
the Supplemental License Terms.
4. LIMITED WARRANTY. Sun warrants to you that for a period of ninety (90) days from
the date of purchase, as evidenced by a copy of the receipt, the media on which
Software is furnished (if any) will be free of defects in materials and workmanship under
normal use. Except for the foregoing, Software is provided "AS IS". Your exclusive
remedy and Sun's entire liability under this limited warranty will be at Sun's option to
replace Software media or refund the fee paid for Software. Any implied warranties on
the Software are limited to 90 days. Some states do not allow limitations on duration of
an implied warranty, so the above may not apply to you. This limited warranty gives you
specific legal rights. You may have others, which vary from state to state.
7. SOFTWARE UPDATES FROM SUN. You acknowledge that at your request or consent
optional features of the Software may download, install, and execute applets,
applications, software extensions, and updated versions of the Software from Sun
("Software Updates"), which may require you to accept updated terms and conditions
for installation. If additional terms and conditions are not presented on installation, the
Software Updates will be considered part of the Software and subject to the terms and
conditions of the Agreement.
8. SOFTWARE FROM SOURCES OTHER THAN SUN. You acknowledge that, by your use of
optional features of the Software and/or by requesting services that require use of the
optional features of the Software, the Software may automatically download, install,
and execute software applications from sources other than Sun ("Other Software"). Sun
makes no representations of a relationship of any kind to licensors of Other Software.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE
LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT,
CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED
REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE
OF OR INABILITY TO USE OTHER SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. Some states do not allow the exclusion of incidental or
consequential damages, so some of the terms above may not be applicable to you.
10. EXPORT REGULATIONS. All Software and technical data delivered under this
Agreement are subject to US export control laws and may be subject to export or import
regulations in other countries. You agree to comply strictly with all such laws and
regulations and acknowledge that you have the responsibility to obtain such licenses to
export, re-export, or import as may be required after delivery to you.
11. TRADEMARKS AND LOGOS. You acknowledge and agree as between you and Sun
that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET trademarks and all
SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET-related trademarks, service marks, logos
and other brand designations ("Sun Marks"), and you agree to comply with the Sun
Trademark and Logo Usage Requirements currently located at
http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks inures to
Sun's benefit.
13. GOVERNING LAW. Any action related to this Agreement will be governed by
California law and controlling U.S. federal law. No choice of law rules of any jurisdiction
will apply.
15. INTEGRATION. This Agreement is the entire agreement between you and Sun
relating to its subject matter. It supersedes all prior or contemporaneous oral or written
communications, proposals, representations and warranties and prevails over any
conflicting or additional terms of any quote, order, acknowledgment, or other
communication between the parties relating to its subject matter during the term of this
Agreement. No modification of this Agreement will be binding, unless in writing and
signed by an authorized representative of each party.
RSA Security
This product includes code licensed from RSA Security, Inc.
decNumber 3.32
This product contains Runtime Modules of decNumber (c) Copyright IBM Corporation
2001, 2004. All Rights Reserved.These files or modules may not be 1) used for any
purpose other than to enable the application, 2) copied (except for backup purposes), 3)
reverse assembled, reverse compiled, or otherwise translated.
Apache License
http://www.apache.org/licenses/
1. Definitions.
'License' shall mean the terms and conditions for use, reproduction,and distribution as
defined by Sections 1 through 9 of this document.
'Licensor' shall mean the copyright owner or entity authorized by the copyright owner
that is granting the License.
'Legal Entity' shall mean the union of the acting entity and all other entities that control,
are controlled by, or are under common control with that entity. For the purposes of
this definition,
'control' means (i) the power, direct or indirect, to cause the direction or management
of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
or more of the outstanding shares, or (iii) beneficial ownership of such entity.
'You' (or 'Your') shall mean an individual or Legal Entity exercising permissions granted
by this License.
'Source' form shall mean the preferred form for making modifications, including but not
limited to software source code, documentation source, and configuration files.
'Object' form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and versions to other media types.
'Work' shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included in or
attached to the work(an example is provided in the Appendix below).
'Derivative Works' shall mean any work, whether in Source or Object form, that is based
on (or derived from) the Work and for which the editorial revisions, annotations,
elaborations, or other modifications represent, as a whole, an original work of
authorship. For the purposes of this License, Derivative Works shall not include works
that remain separable from, or merely link (or bind by name) to the interfaces of, the
Work and Derivative Works thereof.
'Contribution' shall mean any work of authorship, including the original version of the
Work and any modifications or additions to that Work or Derivative Works thereof, that
is intentionally submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of the copyright
owner. For the purposes of this definition, 'submitted' means any form of electronic,
verbal, or written communication sent to the Licensor or its representatives, including
but not limited to communication on electronic mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf of, the Licensor
for the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright owner
as 'Not a Contribution.'
'Contributor' shall mean Licensor and any individual or Legal Entity on behalf of whom a
Contribution has been received by Licensor and subsequently incorporated within the
Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each
Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each
Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
royalty-free, irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where such
license applies only to those patent claims licensable by such Contributor that are
necessarily infringed by their Contribution(s) alone or by combination of their
Contribution(s)with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a cross-claim or counterclaim in a
lawsuit) alleging that the Work or a Contribution incorporated within the Work
constitutes direct or contributory patent infringement, then any patent licenses granted
to You under this License for that Work shall terminate as of the date such litigation is
filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative
Works thereof in any medium, with or without modifications, and in Source or Object
form, provided that You meet the following conditions:
(a) You must give any other recipients of the Work or Derivative Works a copy of this
License; and
(b) You must cause any modified files to carry prominent notices stating that You
changed the files; and
(c) You must retain, in the Source form of any Derivative Works that You distribute, all
copyright, patent, trademark, and attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of the Derivative Works; and
(d) If the Work includes a 'NOTICE' text file as part of its distribution, then any Derivative
Works that You distribute must include a readable copy of the attribution notices
contained within such NOTICE file, excluding those notices that do not pertain to any
part of the Derivative Works, in at least one of the following places: within a NOTICE
text file distributed as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or, within a display
generated by the Derivative Works, if and wherever such third-party notices normally
appear. The contents of the NOTICE file are for informational purposes only and do not
modify the License. You may add Your own attribution notices within Derivative Works
that You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as modifying the
License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or distribution
of Your modifications, or for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with the conditions
stated in this License.
Notwithstanding the above, nothing herein shall supersede or modify the terms of any
separate license agreement you may have executed with Licensor regarding such
Contributions.
6. Trademarks. This License does not grant permission to use the trade names,
trademarks, service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and reproducing the
content of the NOTICE file.
EditDetail • 55 N
editing • 43
non-key attribute • 44
ENT • 44, 55
entity • 36 O
explanation • 39
Object Browser • 35, 41, 48
F objects • 36, 41, 48
of completed tutorial model (Fig) • 39
fields • 36, 52
optionality • 52
FIELDS/ • 48
focusing on • 48 P
focusing on objects from the Object Browser • 48
FOUNDATION/ • 55 Panel Designer • 68
functions • 36 panels • 36
pattens • 34
G preserving • 66
preserving data • 66
generating and building • 60
Project entity • 43, 54, 55, 60
Index 139
Project’s fields • 47
R
RelationalTable • 55
RelationalTable entity. See STORAGE/RelationalTable
• 55
S
saving data in • 66
saving the tutorial model • 40
scoped objects • 58
Service Pak3 • 32
specifying database functionality • 55
STORAGE/ • 55
T
tables • 36, 66
TBL • 66
the Design Window • 68
the Project entity • 60
triples • 43, 51
tutorial model • 39
types • 36
U
unscoped functions • 41
V
validation • 47
views • 36
Visual C++ • 32