Download - Oneworld_Concepts for Developers
--
EssentialConcepts
for
Edwards OneWorld: A Developer's Guide
0is a unified enwonment that includes an integrated set of development
tools. Each development tool is built from the ground up to work with the other
tools, and most of them are graphical user interface based to provide
application development. This unique combination provides a
setting for rapid application construction, in which any object or application in OneWorldcan be created and
Because the OneWorld toolset generates the bulk of software code used for defining
objects, developers spend less Lime and effort in programming as compared to text
editor-based environments. In addition, the OneWorld tools support the application
in the environment where it is executed. Therefore, most of the time and effort spent
on application development is focused on creating business logic and functionality,rather than writing the supporting code.
Each OneWorld development tool has one or more built-in Business Activators to further increase your productivity as a developer. Business Activators are part of a
broad product and technology suite called ActivEra that enables OneWorld to easily
adapt itself to existing and future business requirements. The purpose ofan Activator is to automate tasks that you regularly perform. For example, you can
quickly generate a simple report for your company's department by using
an Activator built into the report writing development tool-without writing one line
of code.
D E F I N I T I O N
Business Activators are of One Worid's ActivEra suite. ActivEra is acollection of applications that provide a framework for fastand snap-in functionalitywith low application-development overhead.
What the OneWorld development toolset means to you as a developer is that your
time isn't wasted in to integrate development tools from different vendors. And
your productivity is dramatically increased during application development becauseyour effortsare focused on writing code that supports business operations.
This chapter provides an of OneWorld and its development toolset, including
Enterprise Resource Planning System Fundamentals This section explains the fundamentals of Enterprise Resource Planning ERP systems
Chapter 1: Essential OneWorld Concepts for Developers 5
assist corporations in managing their data. Your ability to write effectivesoftware code depends on your knowledge of ERP systems. By understanding
each application's position within a large and complex enterprise, you have the
proper know-how to tackle big development projects in OneWorld.
Network Computing Architecture Understanding the
of network-centric computing and how you can leverage them to
build and modify sophisticated applications allows you to eifectively develop
OneWorld applications, because all OneWorld applications depend on CNC.
CNC Fundamentals The CNC architecture provides three essential
components for your applications: seamless operation, scalability, andapplication partitioning. Your development projects are directly affected by
the components, because they determine the infrastructure how your applications are designed and
CNC Deployment Strategies This section provides you with a description of
all configurations that OneWorld can have for an installation. It will assist you
in understanding how OneWorld applications are impacted by the different
configurations, and what you need to do to prepare your applications for each one.
OneWorld Development Toolset Knowing how each tool is used in a
development project ensures that you will make the use of your time while
developing applications.
Enterprise Planning
ERP systems are business management systems that contain many diverse sets of
These modules work together to manage information that supports a
business's daily operations. A is a set of applications that perform tasks ona specific set of data in the database, such as General Ledger Accounts Payable
Accounts Receivable orSome modules are combined to provide advanced analysis and functionality that a
business needs to manage itself. For example, the Sales and Procurement applications
combine the financial modules GL. AP, and AR, with Inventoly and Transportation Management to optimize the costs and revenues of materials required to meet
J.D. Edwards A Developer's Guide
customer and internal demands. Another example is the combination of the Human
Resources and Customer Service modules to optimize costs and personnel required for
management of projects that support the customer base.
Because so many modules are combined within applications, ERP systems are
very large and complex. Therefore, most ERP systems reside on several servers that
contain relational databases for storage and management of corporate information
and applications. This infrastructure supports the configuration and deployment of
ERP and all of the user applications.
This section describes the distributed computing environment that supports ERP.
and the spectrum of users supported by the ERP-based applications.
Distributed Computing EnvironmentAll modern ERP packages use the distributed computing as the
system to support ERP operations. The DCE is a corporate network
infrastructure comprising the network that connects many clients and servers. These
clients and servers communicate through the network to gain access to shared
applications and data.
N
hone machine, but rather are the various machines on the corporatenetwork For example, Accounts Payable server may storeall dataand execute all related to Account module.
Let's take a look at the four components in a DCE: clients, servers, the network,
and user access security.
ClientsA client is a user-centric machine that provides the user interface for anyone using
the DCE. A client generates requests to various servers for information needed by
users. Typically in a DCE, there is a many-to-one relationship of clients to servers.
Client machines on the network can exist in many forms, and they are discussed
in greater detail in the CNC sections of this chapter. A client could be a laptop
computer that interacts with through a web browser, or a tower desktop
Chapter 1: Essential OneWorld Concepts for Developers 7
that developers use to build and modify applications. In the OneWorld environment,
client machines are categorized as fat clients, thin clients, and zero clients.
Fat Client client (also called a is usually a desktop system that
contains substantial hard disk space, processing power, and memory. Advanced users
and developers are users of fat clients, because they execute computationally intensive applications and typically manipulate large amounts of data, which they access and
sometimes download from the servers.
Thin Client A client is one in which nearly all applications are viewed a
server over the network a browser. A thin executes applications that add,change, inspect, and delete information from a database on a server. Thin clients cost
less than fat clients because they use less memory and processing power
than their fat client counterparts.
Zero Client A zero does not execute applications; it can display
and capture user input. All of the application execution needed by a zero client occurs
on a server. The advantage of a zero client is that an older computer can easily display
the information and capture even though it cannot execute a OneWorld client
session.One of the main issues of trying to support more than one client type in an
ERP system is that each client type typically requires its own development for
application development. OneWorld is one of the ERP systems that provide
application development for any client type within the same application. Therefore,
you will not have to deal with the overhead of maintaining multiple versions ofapplications each client.
ServersThe server in a DCE provides centralized services to clients, and management functions
for system administrators. Servers furnish central storage for corporate information,
support file and sharing among clients, enforce corporate security, monitor
network activity, manage fax and e-mail communication, and provide networkservices. Typically, one does perform all these functions instead, mulriple
servers are used to ensure reliability and availability of services to clients.
In a distributed environment, many servers perform the same tasks. with each
server strategically positioned to serve a certain group of clients. As a result, the
applications executed by a client experience higher performance. Also, the ERP system
J.D. Edwards A Developer's Guide
is more reliable because more than one server is available on the network to serve
client machines.
NetworksAs a developer in a DCE, one of your main concerns is the network. A network is
inherently slower by several orders of magnitude than any single computer. Yourability to provide distributed applications across a network while maintaining a high
degree of performance on the user's computer will always be limited by the network.
The performance of several popular networks is summarized in Table You'll
notice that network speed varies drastically from network to network. Local area
'networks provide the highest speed possible and are substantially faster than
wide area networks Network speed over WANs is slowed by the large distances, measured in miles, that connect the units of the network. comparison,LANs typically measure their maximum distance in feet or meters.
Let's look at an example. Figure is a hypothetical corporate network that
connects offices in Chicago, Atlanta, and Denver through a WAN. Each office has its
own LAN, and each city needs to access computer resources in the other cities. All of
the data and applications are centrally located in Denver. As the Atlanta and Chicagooffices use the applications, the WAN will experience major amounts of message
and the users will experience conspicuous slowdown in application execution
across the WAN. To improve performance across the corporate infrastructure and to
lower message traffic on the WAN, the information and applications used most by a
particular city must reside locally on that city's LAN. By optimizing the applications in
this manner, users in a particular city will have all the resources locally on their LAN,
and the end result will be better application performance.
Network
LANs
WANs
EthernetToken Ring
T3
Frame RelayLeased
AnalogDigital (ISDN)
Speed
Mbps4-16 Mbps
45 Mbps1.544 Mbps
Kbps9.656 Kbps
9.656 Kbps128 Kbps
TABLE Speeds of Common Network Topologies
Chapter 1: Essential Concepts for Developers
FIGURE Corporate network example
In the past, many developers embedded network logic into business
applications for them to operate an ERP system. In these circumstances, however,
applications quickly become obsolete whenever new technology is introduced into
network, because the application must to incorporate the new technology.The cure is to build applications in an environment that isolates them from the
technology.
User Access SecurityOnce a DCE is operational, security is the next primary The security
prevents competitors and unauthorized employees from gaining access to proprietary
information and inflicting great damage on a company through global distribution orother subversive measures. User access security is required in most
User access security that individuals who need corporate infbrmation are allowed to view and interact with it. All other individuals are restricted from
viewing it. Typically, users can access information required by their job function.
Basing security on the roles users perform in the company dramatically reducesthe occurrence of security problems. For example, too little security assigned to an
J.D. Edwards A Developer's Guide
individual will increase the probability of compromising daily operations. Too much
security assigned to an individual prevents that individual from doing his or her job.
Your development projects may quickly bog down if you have to enforce user
access security in every application. eliminates security concerns for
developers by enforcing it in the CNC architecture. The end result of separating
security from business applications is a dramatic decrease in the time you spend modifying applications for security. It also eliminates security loopholes caused by
developers who forget to incorporate mechanisms in their applications.
User SpectrumEvery employee in a company requires some computing resources to fulfill their
duties within the organization. This is especially for For example, resource
requirements are generally low for secretaries and clerks doing only viewing, preparation,
and editing of data (such as working with data in the company financial or inventory
systems). Managers and executives, on the other hand, need higher levels of resources for
reporting, summarizing, and performing statistical analysis of information located in the
corporate database.
Figure 1-2 shows how the user spectrum determines required computational
resources and security for any individual in a company, based on the tasks he or she
executes every day for the company.
User
FIGURE Security and client computing requires dependency on the userspectrum
Chapter 1. Essential Concepts for Developers
As shown in Figure all users in the corporation fit into a range defined by
users at one end, and analytical users at the other end.
Action Usersusers view and update corporate information that is specific to the job they
perform the company. They are typically involved with the operational ofbusiness. Action users require a very limited set of corporate data to fulfill their jobs, and
lor this reason user access security is higher, as shown in Figure or zero client
machines may be sufficient computation resources for action users, since the majority of
the computations required are typically located on the server that contains the database.
Applications built for action users generally contain simple user interfaces and
logic routines. The user interfaces can be simple because action users require a
means of and editing information pulled from a database. Action user-basedapplications employ only simple logic routines because the database operations on the
server execute the bulk of the logic.
Analytical UsersAnalytical users accumulate, analyze, and distribute information for the organization.
They are involved with tactical and strategic decision making for the company.
order to make sound decisions for the company, analytical users require access to
large segments of company data. User access security for analytical users is therefore
low, as shown in Figure Also, for optimum performance, analytical users require
fat client machines to support their tasks of accumulating and analyzing suhstantial
amounts of data at any given time.
Applications built for analytical users can he very complex. These user interfaces may
need plentiful data so that can view, summarize, edit, and transform information
from a majority of tables in the database. Analytical user-based applications support
forecasting, high-level summaries with drill-down and data mining.
ConfigurableNetworkArchitectureCNC architecture is a ino n network-centric computing. The CNC architecture isolates business applications, - . . ,
the configuration and issues the... . , .
J.D. Edwards A Developer's Guide
corporate network By technology from
can focus operations, where
In comparison to the CNC architecture, architecture is inefficient
because it focuses on application-centric computing. The paradigm
centers on the application and how it can be supported by the clients and servers on
the network. The result is applications that are highly dependent on the underlying
technology and very sensitive to any changes in the technology. Expert knowledge
of the business applications and the underlying technology is necessary to understand
the functional operation of each application.
With the CNC architecture, applications are independent of the underlying
technology that supports the network. Therefore, applications in the CNC architecture
are easier to maintain because they do not contain technology-dependent logic existing
on the network. The result is that applications are focused on business practices and
are independent of the network that supports OneWorld.
The importance of thoroughly comprehending the CNC architecture is critical and
cannot be overemphasized. Without an understanding of the CNC architecture's affects
on your applications, you are likely to restrict yourself to basic applications that merely
view and update data for users. Sophisticated applications for analytical users, such
as interfacing data that exists outside of OneWorld, will be out of your development
reach if you don't know how the CNC architecture is used.
In upcoming sections, you'll study some strategies for deploying the CNC
architecture.
CNCThe CNC architecture tracks the location of all information and applications on
the corporate network for the OneWorld environment. As shown in Figure all
communication on the network is directed through the CNC architecture
for properly routing requests and enforcing security. the CNC architecture,all OneWorld operations cease to exist, because the CNC
con of OneWorld..
From a developer's perspective, CNC is viewed as a logical server, because it.directs all As
.in the between clients and sewers in
the OneWorld environment to manage all corporate network
Chapter 1: Essential Concepts for Developers
13. directs communication between clients and
The CNC logical server is not physically implemented on one machine,
rather is located on every client and server that operates in the
CNC is not really a logic sewer, the logic sewer analogy is a goodfor most developers to understand how it is used in their
The logic sewer analogy for the CNC architecture only applies to it execution of an application.,-
For example, a client machine needs to execute an application that its user is
requesting. The client consults the CNC logic server first, to determine if the user has
the proper user-access security permissions to execute the application. If the user hasthe proper security, the client consults the CNC logic server again to determine the
location of the database on the network, and then issues the request to the server that
contains the database. These steps occur whether the data and application are stored
on the client or the server.
The CNC logic server in Figure is further illustrated in Figure which
shows the components that make up CNC. The CNC layer is responsible for three
major functions: of system components; administrative services; and
system
DeploymentThe deployment component, is further explained in the "CNC Deployment
Strategies" section, later in the chapter, involves configuration of all clients and servers
on the corporate network. Processing modes determine the type of operations, whether
J.D. Edwards A Developer's Guide
Client configuration Manager
Server configuration
FIGURE 1-4. Major components of the CNC architecture
direct connection or offline, that occur between clients and Every client and
server in the OneWorld environment can be configured in various ways to enhance
performance and reliability on a daily basis.
D E F I N I T I O N
represents all the and servers on the and the role eachin OneWorldconfiguration, design, development, and execution,
Administrative Services Administrative are management applications that control settings
nd they are fully covered in Chapter The Object Configuration
for example, stores the location of all objects and data on the network.
enforces object and data security for users at runtime to ensure no
one has the ability to access information they are not allowed to see.
System Services System comprise the essential layers of the CNC architecture that support
proper operation across the entire OneWorld environment. This component includes
the definition of data sources, path codes, and environments (Chapter 2). The
middleware, which is covered in Chapter 15, contains all the database communication
Chapter 1: Essential OneWorld Concepts for Developers 15
Runtime engines for all clients and servers on the network are also
services.
development projects are directly affected by the CNC architecture. The CNCprovides you with the maximum amount of flexibility for your applications
them to execute in any medium. For example, one application can
for a client on a LAN or for a Web-based client over a WAN.
The CNC architecture provides three essential components that enable
for your applications: seamless operation in a heterogeneous environment,and application partitioning. . .
Seamless Operation in a HeterogeneousEnvironmentThe most powerful feature of the CNC architecture is its ability to integrate
heterogeneous computing platforms and database systems into one homogeneousIncompatible computer platforms such as Windows NT and UNM
and competing database systems such as Oracle and Server, can
mixed and matched with ease. The CNC architecture integrates incompatible
in OneWorld without any impact on business applications.
The biggest benefit of the technology from business applications that developers and technical support personnel can coexist without playing the
blame game when an application does not perform to expectations. Developers can
on the design and development of business applications without worrying
about network environment instability. Technical support personnel can upgrade,
modify, and reorganize the network architecture that supports without
to any business application.
Figure 1-5 is an example of a corporate network that has implemented a CNCarchitecture. All of the between any device on any LAN or WAN is
performed through the CNC logical server. as shown in Figure The clients and
communicate without concern for each other's hardware and operating
i n Figure 1-5, any communicatian between servers (in this case, a mix of
and machines) and clients (a mix of Windows workstations, web
browsers and Windows Terminals) is identical. The CNC architecture provides a
J.D. Edwards A Developer's Guide
Fat Fatclients
Sunenterprise remoteserver data
server
serverServer
Webterminals
- -
FIGURE Example of a "homogenized corporate network
heterogeneous network infrastructure, transformed in Figure 1-5 to a homogenous
environment for operations.The CNC architecture isolates technology from business applications in three
major areas: platforms; server configurations; and database systems.
Client and Server PlatformsThe CNC architecture integrates many computer such as HP
9000, Sun Enterprise Server, and Windows NT, for any client and server on the network.
The ability to integrate incompatible computer platforms in a single architecture allows
to implement the user concept for optimal use of corporatecomputing resources. As shown in Figure 1-5, the CNC layer buries the technical details
of operation of the remote server with the Sun enterprise server.
As shown in Figure the CNC architecture isolates the technical details of
computer platform from the business applications. CNC handles the
Chapter 1: Essential Concepts for Developers
Business
FIGURE CNC handling of incompatible computer platforms
details of routing data and applications to particular servers, and determines how to
execute the requests for a specific sewer. This architecture also simplifies integration
of new computer-platlorm technology without disrupting business applications.
Server ConfigurationsCNC allows multiple configurations of servers for optimizing network resources.
such as network As illustrated in Figure CNC server configuration ranges from a simple, centralized server to a complex, hierarchical, multiple server
configuration.
For example, the network in Figure shows the being used
to minimize message traffic across the WAN by using CNC. The maintains a
replicated database. The replicated database allows all of the client machines on LAN B
to access data locally without overburdening the WAN with requests for data on LAN A.
Database SystemsThe CNC architecture transforms database systems that are incompatible into a
harmonious operating database system for operations. CNC provides themedium through which the incompatible databases can easily interchange data. As
illustrated in Figure CNC handles the location, storage, and communication ofand data.
A CNC architecture allows SQL Sewer, Oracle, and Access databases to storeand retrieve data interchangeably, as if they were built by the same software company.
The example in Figure depicts data replication between an Oracle database, which
J.D.Edwards A Developer's Guide
Business
Centralenterprise
dataservers
FIGURE server configurations
Business applications
Server
FIGURE CNC and incompatible database systems
Chapter 1: Essential Concepts for Developers
on a Sun server, and a database, which resides on an without anyor interaction required of the user or developer.
Scalabilityhaving impact on most ERP systems is the ability to scale the system as
company grows. ERP systems quickly become obsolete if they can't easily scalea as the company expands or retracts. A CNC architecture provides a solid
that accommodates network without allccting the supportedDevelopers have often been frustrated by state-of-the-art network
that sometimes renders their applications useless. Applications developed however. execute reliably as network technology changes, providing a
environment for related application evolution. For instance, the network in Figure 1-8 can be changed if the company acquires
business and needs to make a connection to the new business's LAN.another remote server to communicate to more on another IAN
involve minimal effort. Or, if the division that contains IAN Bis sold, the networkcould easily change over to a single-server system with little or no
on ERP system.
Application Partitioning user interaction with an application occurs on a single computer, several
and servers behind the scenes may execute various portions of the application.of an application across many computers exists because most applications
made up of one or more objects. Defining the execution location of each object forapplication is called applicationTypical corporate applications have five layers: the presentation layer,
layer, application logic layer, data logic layer, and database management layer. Each layer one or objects that support the features and functionality ofthe application.
example, the presentation layer is a simple form that is displayed on the monitor lor capturing user interactions. How the behaves in the application is embedded inthe presentation logic layer. The applicationlogic layer contains business logic that is
to enforce business rules. The data logic layer data integrity the data that flows in and out of the database. The database management layer performsadministrative such as replication and exporting of data, on the database.
J.D. Edwards A Developer's Guide
With application partioning, each of the objects assigned to an application layer
can exist on different across the network. The advantages to application
partitioning are ability to decrease the amount of network traffic generated by the
application, and to improve the application's overall performance. includes
five modes of application partitioning, illustrated in Figure and discussed in the
sections that follow.
Remote PresentationThe presentation mode is typically a zero client that communicates with a
mainframe. Most of the application execution is located on the mainframe, because the
zero clients only present the information on the screen and capture user input. Zeroclients are useful in in which high reliability is required, and during
terminal failure when a quick turnaround time is critical. An example of a zero client isa dumb terminal that communicates to a mainframe computer on the network.
presentation presentation
FIGURE 1-9. Application partitioning modes in the CNC environment
Chapter 1: Essential Concepts for Developers
N O T E
on network resulting in a decreasein application response ,-
Distributed Presentation The distributed presentation mode is normally implemented as a dumb
communicating to a mainframe computer. distributed presentation mode, all of
the objects are centrally located on the server, and the client is used only to display
information on the screen and capture user inputs.
One-Tier SystemThe one-tier system is typically implemented fat clients on the network, that accessdata located on a file server and perform the bulk of applicationexecution and database
management. One-tier systems are only used in the environment for servers
that provide remote storage of data to minimize message across the network.
Two-Tier SystemThe two-tier system is typically implemented with a thin or fat client on the network,
and is typically used by analytical users and developers in an organization. This type of
client shares application execution with a server that handles database management.
Three-Tier SystemThe three-tier system is normally implemented as a thin client communicating to
two servers. The objects are partitioned across the two example, a client
executing web pages that contain Java applets. The thin clients for the three-tier system
are used for
N O T E
Many use a development toolset for each partitioning mode, dramatically increasing the amount of redundant
avoid this by partitioning across the network to implement each --'-
partitioning mode, thereby eliminatingredundant code.
You are probably swimming m a sea of confusion at this moment, due to the amount of
condensed information in the preceding pages. In all likelihood, the topic causmg you
the most grief is how the CNC architecture impacts applications in To. .
illustrate what we have been talking about in the previous pages, Figure 1-10 shows a
simple application that embodies most of the principles we have discussed up to now.
The Guest and Client Search and Select shown in the figure is part ofa hotel reservation In particular, the application is used to search for guests or
the clients they represent who have used the hotel of the company in the past.
For example, a reservation clerk uses the application to find a particular guest and
their billing address by their name, the company they represent, or their address.
FIGURE1-10. Guest and Client Search and Select application
The you with the to execute the same ofcode on different clients and servers on the network. By one of the threecheck boxes (Local, LAN, or WAN) and the Find button, theexecute on your machine, on a server located on the same LAN, or on another serveslocated across the WAN from your machine. In all three cases, the applicationmanipulates a set tables that reside on the same IAN where it is executing.
The following Event code listing shows the lines of code built into the application. For local execution, yon can see that the lines of code delete all the records in the table and refresh it with data from the
and tables. For IAN and WAN execution, identical code is intotwo different business functions, and each one of the are mapped to a local server on the LAN and to another server across the WAN.
If FC Local is equal to "1'All
While File-10-Status is equal to CO SUCCESS
End WhileAll
While File-10-Status is equal to SUCCESS
WhileIf
If FC LAN is equal to "1"Refresh the Table for LAN
End If If FC WAN is equal to
Refresh the Table for WANEnd If
Local When yon select the Local check box and click the Find button, theapplication executes very slowly. fact, it takes over six minutes For the manipulationof the tables to occur, shown in the output of the debug log This is
due to the fact that each record from the database has to be transferred to the client,
and the has to then send the record back to the database.
SELECT . FROM
RESET: INSERT INTO VALUES
LAN Things improve when you execute the same code on the serverthat contains the database by selecting the LAN check box and clicking the Findbutton. Just as with the Local option, during execution the application makes a remote procedure call to the server to execute the business function that manipulates thetables. As shown in code listing, it takes about one second for the entireprocess to execute. The reason for the massive improvement is that all of the calls tothe database reside on the same machine, instead of over the network.
Calling Business function for
RT: <<<Finished ER: Write Grid Line-AfterApp: Form:
WAN When the is physically located across the WAN, the performance ofapplication execution depending on the location of the database to the server.When the database is on the same LAN as the server, the application execution takesabout 15 to 30 seconds. The performance is not as good for the WAN as for the LAN,because the WAN has a smaller bandwidth capacity that results in delaying the amount of time it takes to transmit data.
When the database is on a different LAN than the server, the performance is evenworse than in the first case. The calling machine issues a remote procedure call to the
sewer across the WAN to execute the other business function, and the same server hasto retrieve all the data from another database across the WAN. The same requests thatare made by the client machine in the local execution are made by the server in thisexecution, but they are made over a network (WAN) that is substantiallyslower than aLAN. After all of the tables are manipulated over the network, the results are returned in about 30 minutes to the machine that made the original request.
From this example, we can learn some important points:
Spend the time to properly partition an application. Even though the CNCarchitecture provides you with the tools to execute an application orfunction anywhere on the network, it does not tell you the technique for partitioning the execution of the application across the network. The best mleof thumb you can use to help you properly partition an application across thenetwork is to execute the logic that directly manipulates database tables on themachine that contains the database.
Embed as much databasemanipulation logic as you can into ayou do this, you will be able to dynamically partition the execution location ofthe business function at any time, and that will allow you to test for the best execution location on the network. Dynamic application partitioningsaves yourime because you don't to recompile the code for a different server: you just map the execution location of the business function to a different sewer.
Monitor the network trafficyour application creates. Do not sit idly byhoping your applications won't generate excessive messages to support theiroperations. It's important to monitor the network traffic your applicationsgenerate because it can solve a lot of performance and network bandwidth problems. That way, you will never be in a situation in which you have theapplication, the database, and the sewer all located on different points on theWAN, eating up a lot of network bandwidth.
Edwards A Developer's Guide
CNC Deployment StrategiesThe C N C deployment strategy, which is one component of the C N C paradigm, is
the foundation for the OneWorld environment. Only when the underlying network
infrastructure is properly designed and will OneWorld operate properly
with its C N C layer.
Understanding the possible ways in which OneWorld can be configured at a
business can make or break your projects. You will save much time and effort on a
project if you are thoroughly familiar with the various configurations in which servers
and clients can be arranged. This section presents a high-level overview of the
configurations available in the C N C architecture.
Processing ModesOneWorld provides several processing modes for interaction. Each
processing rnode provides different methods of communication between a client and
server o n the network to optimize network bandwidth. The more bandwidth that is
available, the more responsive your applications will be. four processing modes are discussed next.
Direct Connect ModeAll interactive and batch applications initiated from the client machine in the direct
connect processing mode are executed immediately by the server, as shown in Figure
1-11 Direct connect provides interaction with a single application to perform editing
and creation of through the application. Also, direct connect is ideally suited for employees who perform their tasks within work sites that are connected to the server
through a LAN.
The direct connect processing mode is highly dependent o n database resources and
results in a high of network traffic. Such volume is intolerable for and
dial-up networks because it eats up network bandwidth and dramatically slows down
application execution.
Store-and-Forward ModeThe store-and-forward processing mode is for users who need to enter transactions
through OneWorld while disconnected from the server. perform their
tasks in OneWorld offline and then new data to the server when a network
connection becomes available. For example, a sales representative o n the road can
Chapter 1: Essential OneWorld Concepts for Developers
I I
FIGURE 1-11. connect processing mode
enter orders on a laptop and then forward the orders later when the laptop can be
connected to the server.
Figure 1-12 is a simple diagram of the store-and-forward processing mode. Allthe data integrity checks are performed on the data while the user enters the
information, and this ensures that the user doesn't have to modify the data later. The
data is temporarily stored in Z files.
D E F I N I T I O N
files are standard One World fables are available forexporting data to and from OneWorld. Z files store data that is waiting to beprocessed, or data that failed to be imported
When OneWorld detects that the laptop is to the network by modemor network card, OneWorld then uploads the data from the Z files on laptop to
the same Z files on the server. The server then execures business logic ro validate all
entries that have been deposited into its Z files, ensure data integrity. After
FIGURE 1-12. Store-and-forward processing mode
J.D. Edwards OneWorld: A Developer's Guide
validation, sends a status message to the employee's Work Center mailbox
providing the status and success or failure of the upload process. OneWorld is then
notified to execute a batch process, which handles all transactions in the Z files andenters the data into the corporate database.
D E F I N I T I O N
Another advantage of store-and-forward mode is that it allows program execution on networks that have low reliability, such as dial-up networks. The data stored in the
client's Z file is transferred to the server's Z file,and the data is retained in the
Z file until it can verify that the data has been successfully transferred to the server. If
the network connection becomes unreliable, the data stored in the Z tile on the client
machine remains in a hold status until the data can be reliably transferred. This lets
individual users be sure that their data get to its destination properly.
One drawback of the store-and-forward processing mode is that it requires more application interaction than the direct connect mode. Store-and-forward requires a
GUI application for data entry, and another application to store intormation in the
local Z files and reliably transfer the data to a corresponding Z file on the sewer.
Another application on the server imports the Z-file data into the proper application
modules.
Batch-of-One ModeBatch-of-one processing mode combines the performance of the store-and-forward
mode with the real-time transaction updating of direct connect mode. Instead of the
client storing data locally in its own files, the data is stored in Z files on a server.
Therefore, transactions that the client creates are automatically entered into thesystem. The processing of the transaction by the server is performed in one of
ways: subsystem and online.
When the server is set up to execute the batch-of-one processing mode as asubsystem job, the user's entry is processed behind the scenes without the user's
knowledge. Once the subsystem job is launched, no other user input is required. In
this way, users can progress to the next task without waiting for system notification of
the results. Notification of the status is sent to the user's Work Center mailbox.
Chapter 1: Essential OneWorld Concepts for Developers
the online method, the user interacts with the batch by providing options
during execution. The results then can be viewed instantaneously or delayed until a
specified time.
Stand-Alone ModeThe stand-alone processing mode is a completely freestanding system that operates on
a single computer (a client on which the entire OneWorld client and server software is
installed). The client does not use OneWorld servers to operate, because those services
are completely installed on the client.
There are only two uses for the stand-alone processing mode: for demonstration
(demo) and for the OneWorld Software Development Kit The OneWorld
demo application allows salespeople to show the OneWorld environment on a singlecomputer without transporting several servers around the country. The demo also
allows potential customers to test-drive OneWorld and decide if they want to install
the product for their businesses.
The SDK version of OneWorld is the demo version augmented with solutions to
the tutorial exercises for developers. sole purpose is for developers to practice
creating applications using the SDK tutorial.
Client-Side Configuration Computing requirements vary across the user spectrum, based on users' roles within a
business. Solutions are provided for the three types of CNC clients: fat. thin, and zero.
Fat ClientFat clients are powerful workstations that are used by analytical users and developers.
As shown earlier in Figure fat clients are used in two-tier systems to share the
workload with the server, and this increases the server's availability for other clients.
Typical OneWorld fat clients use the direct connect processing mode with the
enterprise server, as shown in Figure 1-13.
Fatclient
FIGURE 1-13. Fat client configuration
J.D. Edwards OneWorld: A Developer's Guide
Because of the direct connect mode, message traffic is high, impacting network
bandwidth and application execution. Fat clients must be located on the same L4N
where the enterprise server is located to prevent overburdening the network, such
as when used with a WAN or dial-up network. Application execution is fast on a fat
client, hut too many users with fat clients on a LAN will degrade performance because
of all the message traffic generated.
N O T E
OneWorld applications that are configured for fat clients should useconnect processing only, because of the substantial amount of message trafficoccurring between the clients and servers.
Thin ClientThin clients are stripped-down versions of fat clients that are used by action users.
The bulk of application execution is off-loaded to a server, and the client only executes
logic that is related to presentation of the application on screen. As shown earlier in
Figure there are two types of thin clients that are distinguished by the type ofpartition mode they implement (distributed presentation and three-tier).
Configurations of the two thin-client solutions are shown in Figure 1-14.
The distributed presentation mode used on a thin client all application
execution onto the enterprise server. The difference benveen a OneWorld fat client and a
OneWorld thin client with a distributed presentation partitioning mode is that with the
latter, a smaller number of OneWorld applications are on the client. the client needs to execute an application that it does not have installed, the client will perform a
just-in-time installation of the application at the of the request.
One example of a three-tier system with a thin client is a web-based solution that
off-loads the bulk of application execution to a OneWorld web server, which is called
aJava Application Server JAS interprets information flowing to and from the
enterprise server and sends Java applet-enabled pages to the client.
N O T E
In Figure 1-14, the on a thin client is a stripped-downversion of the fat client in Figure 1-13. In contrast, the combinationof and thethin client in Figure 1-14 make up a single fat client,as in Figure 1-13.
Chapter 1: Essential Concepts for Developers
Distributed Client
Thinclient
Enterpriseserver
..........................................Webpageswith
Web Java Enterprisebrowser serverclient Server
..........................................Fat client
FIGURE 1-14. Thin-client configurations
For example, if a salesperson enters a sales order through the three-tier mode on a
thin client, the request can be passed to theJAS. TheJAS validates the client and any data
integrity checks. The enterpriseserver then receives the request from JAS, and enters the
sales order into the system. No special logic is required of the enterprise server for the
web-based sales order. so that server processes the order as if it came a fat client.
T I P
This three-tier implementation of a thin client requires developers tofat-client applications so that they operate witha web browser.Design Aid (FDA) can build and web-basedapplications.
Zero ClientZero clients are the leanest type. All application execution is on the server and the
display is exported to the zero clients, as shown in Figure A zero client requires
a monitor to display the information from any application, and a keyboard and mouse
for the user to provide input. Zero clients receive interface control messages that tell
J.D. Edwards A Developer's Guide
the monitor how to display information, as shown in Figure 1-15. There are two types
of zero clients: the web browser and Windows Terminal Server.
The web browser-based zero client requires no installed Oneworld-specific code.
This zero client's functionality is through a web browser. This client communicates
to the same web server that the thin client uses, but the zero client receives only web
pages with HTML control codes.
in Windows-based applications. Application development is focused on the.
development of web pages that are passed behveen the web browser anda web server.
Graphical Client
Fat client..........................................
display Applications
: Graphical Windows EnterpriseTerminal
Zero Client
Web
I : and data
Web Enterprise: Application :
Server..........................................Fat client
FIGURE 1-15. Zero-client configurations
Chapter 1: Essential OneWorld Concepts for Developers
The other type of zero client communicates with a Windows Terminal Server. Allapplication execution is performed on the Windows Terminal Server, and the
are exported to the client through interface control codes.
N O T E
The web browser-based zero client in Figure 1-15 is the web-based thin clientFigure 1-14, except the zero clientprocesses only web pages with
The graphical terminal-based zero client in Figure 15 iswith all the processing on the Terminal Sewer, and the display exported to
a graphics display.
Server-Side ConfigurationSeveral server-side configuration options are available in OneWorld, but they are not
as clearly defined as on the client side. Each server-side configuration option is not
mutually exclusive of the others. They can be combined in many ways to provide a
highly reliable and available corporate OneWorld system. The four server-side options
are discussed next.
N O T E
There no sewer-side application development in OneWorld. However, applications that are built in OneWorld can be mapped to execute on thesethrough the Object Configuration Manager application.
Multitier Architecture The most common architectures for operation of OneWorld are two tier and
three tier (see Figure and both can exist simultaneously on the same network
in OneWorld. The two-tier architecture is predominantly used by fat clients operating
in the direct connect processing mode, and the three-tier architecture is used by thin
and zero clients. For example, the network in Figure contains two-tier architecture
for fat clients, and three-tier architectures for thin and zero clients (web browsers and
GUI terminals).
J.D. Edwards A Developer's Guide
N O T E
the same definitions. Three-tier application partitioning is totally focused onapplications and how they are distributed among machines, whereas three-tierarchitecture is mostly focused on the system that supports the applications.
The reasons using two- and three-tier architectures will depend on the network
infrastructure. As shown in Table slower network connections such as dial-up
networks and require three-tier architecture. Faster networks such as
on the other hand, are best suited for two-tier architecture.
Hierarchical Sewer ConfigurationStrategic use of hierarchical configuration of servers localizes network traffic.Placing
servers for each department and node on a WAN contains most of the network traffic
to the LAN, instead of running it across the entire corporate network. The end results
are applications with high responsiveness and reduced network traffic.
Figure 1-5, the two LANs are connected by a WAN; each LAN contains a server.The hierarchical server configuration in Figure contains a remote server on LAN B
that synchronizes its content with the central server on LAN A. l f the company that
owns the network in Figure added another LAN, the LAN would have its own
server in order to limit message traffic across the WAN to necessary traffic only.
Data Replication Data replication synchronizes content among servers on a corporate network and is
nothing more than copying data from server to server. Data replication does, however,
require significant network bandwidth to keep all the servers synchronized, due to the
amount of data each server needs.
You can avoid saturating the WAN with network traffic required for data replication
by performing data replication periodically at specific times. a good idea to select anoff-peak time of WAN usage, such as midnight, to perform data replication. For example,
the network in Figure synchronizes its servers on LAN A and B at night to
leave network bandwidth available for users during the day.
Chapter 1: Essential OneWorld Concepts for Developers 35
TIP
that must be updated ois not used for data replication.The data inconsistency between servers
disrupt business operations when servers do not have up-to-date data.
High-Availability ClusteringFor mission-critical software and hardware operations, a single server will not do.
because is dependent on a single point of reliability. To ensure that
point failures don't exist in corporate mission-critical systems, you should cluster the
hardware and software. Clustering allows OneWorld servers to continue operating if
one server fails.
Typically, you use the enterprise server and JAS servers for clustering. You
need the enterprise server for high availability and reliability-especially for all of
the data and applications on the central enterprise server that supports the business's
CNC architecture. Without the CNC architecture operating properly. all OneWorld
operations will cease. You cluster the JAS servers to ensure that all electronic
storefronts and commerce applications are always available for business. Unavailable
JAS services for business on the Internet equate to lost revenues and opportunities.
Examining in a OneWorldEnvironmentAll clients and servers that operate in the OneWorld environment must he properly
defined and identified for use in the OneWorld environment. The Machine Master
and Detail tables and are used to define all clients and servers on the
network that are used for OneWorld operations.
The and tables provide detailed information for the CNC layer,
about the unit's location and type of computer. Some of the information includes the
machine platform, such as NT or name; primary user; and the unit's installedOneWorld software packages. You use the Deployment Locations application
to add and modify the information in the and tables.
J.D. Edwards OneWorld: A Developer's Guide
Here are the steps to use the Machine Identification application to findall servers and clients that are available to the OneWorld environment:
I . At the OneWorld Explorer, type in the Fast Path edit box to access theAdvanced Operations menu
2. Execute the Machine Identification application
3. The Work With Locations and Machines form (Figure 1-16) appears withnothing but the lnformation data item displayed in thewindow. To view all servers and client workstations that are in the OneWorldenvironment, click the Find button at the top of the application.
4. To view the details on each machine, highlight a machine and click the Selectbutton. The relevant information is displayed in the Revisions screen that islinked to the Machine Identification Detail table, as in Figure 1-17.
FIGURE 1-16. Work With Locations and Machines form of Machine Identification application
Chapter 1: Essential Concepts for Developers
FIGURE 1-17. Workstation Revisions form of Machine Identification application
OneWorld Development ToolsetOneWorld development toolset is a large set of utilities to any function
required by a development project. The toolset ranges from common tools that you use
to modify and build typical applications, to very specialized programs that perform a
single function, as importing data from outside OneWorld.
This section gives you a high-level of the entire development toolset in
OneWorld. With this you will be able to understand how the tools are used for a particular project.
Base Application Development ToolsAny attempt to develop a OneWorld application must start with the base application
development tools. Any OneWorld developer must know tools well to develop
or modify applications. The base application development tools are discussed next.
Edwards A Developer's Guide
N O T E
.,
time without writing a lot of code.
Data Dictionary (DD) The Data Dictionary integrates applications and databases by maintaining a central
repository for all data items used in OneWorld applications. The definition of a data
item determines the item's appearance on any application; the type of data entryvalidation it provides; and the column and row descriptions it uses. Each definition
also includes a glossary definition for field-sensitive help.
N O T E
You must define all fields in any or batch application in theData Dictionary. The Data contains the of every data item, andany application that uses a data item automatically inherits all of its
The Data Dictionary is an Activator for because of the dictionary's
ability to react dynamically to changes in data item definitions. Any change made to
a data item is immediately displayed across all clients. Data Dictionary is covered
in more detail in Chapter 11.
Table Design Aid (TDA) ToolYou use the Table Design Aid tool to create or modify tables for the applications you
build. You add data items to the tables through TDA and then generate the table to a
particular database. TDA also allows you to create new keys for a table as needed, for
performance and increased search capability. TDA is explained in Chapter 11.
N O T E
The most powerful functionality of TDA is ability to assign triggers to tableevents. You use triggers for data integrity and validation when ain a table. You write triggers using Table Event Rules
Chapter 1: Essential OneWorld Concepts for Developers
Business View Design Aid ToolTheBusiness View Design Aid tool allows developers to create and modify views of
tables and table joins. Business views provide a consistenr means to access tables from
in OneWorld, whether from interactive or batch applications. The BDA
provides four types of joins: simple, left, right, and outer. For any join, a maximum
of five tables can be combined. The BDA is fully explored in Chapter 11
N O T E
is an Activator that generates the SQL statements based on the table and columns defined for a particular business view. You use business views to ..
the required data items in application, which ensures that onlydata is across the network.
Form Design Aid (FDA) ToolYou use the Form Design Aid tool to create and interactive OneWorld
applications. The FDA, too, is explained in Chapter 5. This tool directly interacts with
the database tables through business views assigned to forms within the application
you create. All of the elements on the form come from the Data Dictionary, way of
the data items defined in the business view, to enforce consistency of Data Dictionary
items from the database to the interactive applications.
Some unique features of Oneworld-based forms are query-by-example
bar, and versions. Grid-based forms offer a powerful means of searching database
tables, using the query-by-example bar built at the top of each grid. Users who haveno knowledge of SQL can type criteria into the QBE bar, and a moment later the grid
contains the results of a search on those criteria.
Users can create many different looks for a form by customizing it and storing it
as a version. The user can change the values for the processing option of an application,
and the logic can be put in place to adjust the application's behavior based on those
values. To ensure that the user's changes will be available next time, and that any
previous changes won't be deleted, the newly modified form can be stored as a versionfor all OneWorld users to execute.
Edwards OneWorld: A Developer's Guide
D E F I N I T I O N
Processing options are parameters input to an interactive or batch a For example, the Address Book application in AddressBook module provides a processing option to determine what types ofaddresses (employees, customers, or suppliers) are viewed in the application.
Report Design Aid (RDA) ToolYou use the Report Design Aid tool to build and maintain two types of report applications: Reports, which provide current information on the contents of a database, are designed tobe flexible in aiding OneWorld users. The other type of report is called a batch-aused to database tables. You can also use to administer and automate tasks within OneWorld,
RDA provides a graphical environment for report creation and modificationallows you to see the reports as you construct them. Like FDA. RDA lets you customizeexisting forms for your own needs without overwriting existing reports. RDA is
discussed in Chapter 6.
N O T E
,
functionality embedded into a report.
Advanced Development ToolsFor experienced OneWorld developers, advanced development tools provide features that allow the use of sophisticated techniques. With the advanced development toolsyou can gain access to the lower layers of OneWorld and modify the OneWorld environment enhance application execution and performance. The advanceddevelopment tools are discussed next.
Menu Design ToolThe menu in OneWorld Explorer is the starting point for all OneWorld users anddevelopers, because application execution starts at the menu. To access applicationsin OneWorld, the applications must be available to the users through a menu item in
Chapter 1: Essential OneWorld Concepts for Developers
OneWorld Explorer. A good, logical menu layout enable users to quickly find theapplication they need to execute.
The Menu Design tool implements a menu layout for OneWorld, and is covered
in Chapter Developers design a menu layout for the applications develop,
and use the Design tool to implement it in OneWorld. If modification to the
menu is needed later, a system administrator or developer can do this by returningto the Menu Design tool.
T I P
The time you spend on designinga menu layout will go far to users can easily find the applications you build for them. If a user find anapplication, then your effort to build it wasted.
Web Generation Facility The primary benefit of the Web Generation Facility is that it gives you a single
application for performing development and maintenance of applications for use on
and web-based clients. The Web Generation Facility helps you build andmaintain any application using the FDA tool, and then easily generate it to a
application based on one of two types of web pages: Java applets, or HTML.
pages based o n HTML applets provide the thin-client solution,
covered earlier in chapter, for OneWorld. The thin-client solution is
necessary when communication among clients and servers is o n a network
connection, or when the client machine's user requires full computation power at the workstation
Web pages based o n HTML provide one of two zero-client solutions. The
zero-client solution is needed in situations in which a kiosk for public access is
required, or users need only to perform information entry and lookup for their
jobs. A useful place for a kiosk in any company, for example, is in the humanresources department, and in a situation in which employees need easy access
to their information for viewing and editing purposes.
Edwards OneWorld: A Developer's Guide
Object Configuration ManagerThe Object Configuration Manager discussed in Chapter 3, is the heart of
the CNC architecture. OCM stores the network location for all objects that execute
in OneWorld; it is the mechanism that gives the CNC architecture its dynamic ability
to change object location at runtime.
OCM maps the application's execution location, whether it'sa server or client.
With OCM, you no longer have to spend time defining the locations for all objects
in architectures. OCM helps you define, at runtime, the location of all
objects in any OneWorld environment. This flexibility lets you store or execute objects
on any client or server machine that exists on the corporate network.
N O T E
The OCM is a Technology Activator that provides dynamic changes to themappingof data and applications the network. With the OCM, you getthe to select a new deployment strategy without impacting thecode for an application.
Security ManagerThe Security Manager provides user security to prevent users from accessing
applications and data that they are not allowed to view or execute. The Security
Manager (Chapter 3) controls user access by individuals and groups of users in
OneWorld. Developers don't need to spend time on building discrete applications
meant for a specific group of users, because the Security Manager provides an efficient
way to control user access to applications and data. Security measures can be placed to limit users from executing an application, specific functions within it,
accessing particular table columns or rows, and accessing database security.
Chapter Essential OneWorld Concepts for Developers
Workflow ManagementPaper-based business processes are slow in reacting to business processes thatare inefficient. Businesses that require paper as the medium for communication lose sales to their competitors due to the length of the paper-based business process. Toautomate paper-based processes, OneWorld provides the Workflow Management development tool.
Consider, for example, the typical business process used by most companieswhen a customer exceeds their credit limit. The business process defines all the stepsrequired to either increase the customer's credit limit or reject the customer's order.
You use Workflow Management to automate business processes like this one, toreduce the cycle time of the process.
You build workflow processes by sequencing applications from start to finish.Each step in the sequence is an application that executes a required step in thebusiness process. Workflow processes require very little application coding, and you can easily change them at any time as your business changes its internal operations.
N O T E
One of key tools in architecture is which is an Activatoritself. Many of the applications, such as Composer, are built using .. .
,w.
AutoPilotAutoPilot, is a scripting tool that automates quality assurance testing andautomates applications that require repetitive data A major benefit of Autopilotis that the scripts it creates are small and compact, because all of the logic for datavalidation and program execution is embedded into the application being manipulated
AutoPilot increases the productivity of the advanced developer. AutoPilot can take the mundane verification of proper program execution out of the hands of people,which results in better QA testing. Also, many of the development and administrativetasks that you perform to build and maintain OneWorld applications can easily be automated through Autopilot to save development and data entry time.
Edwards OneWorld: A Developer's Guide
Interoperability and Integration ToolsAny business that requires interoperability and integration of OneWorld with any
other ERP systems must use the tools discussed in the following sections, and fully
covered in Part These tools provide all the applications and interfaces toimport and export data to and from OneWorld
Interoperability Tables and Processes tahles, which are called Z tables, and processes, which are called Z
processes, are special tables and hatch applications inside OneWorld that allow you to
import data from outside OneWorld. Z tables are used for temporar). storage of darato and from systems. Z processes verify accuracy of the data in the Z
tables, and then insert the valid data into the main OneWorld environment. When the
Z process is finished, it provides a status for ever). record in the Z tahle it has processed.
For example, the first step in processing data for the General Ledger from
a foreign data source is to import the data into the GL Z table When
importing is complete, the GL Z process creates a report that displays thestatus of each record in the GL Z table. The status indicates whether the GL Z process
successfully processed each record. The GL Z process inserts all of the valid records it
processes as an unposted journal entry into the account ledger table The new
journal entries get posted to the general ledger when their batch is executed.
N O T E
The OneWorld fable-naming convention is whnumber, is the object number within the module. For example, theGeneral Ledgermodulenumber is 09, and the Journal table objectname is
Table Conversion ToolThe Table Conversion tool, covered in Chapter 9, provides high-speed manipulation of
data in OneWorld with minimal application development effort.The tool manipulates
Chapter 1: Essential Concepts for Developers
any OneWorld table, or any external table supported by OneWorld. Data conversion,table replication, and batch record deletion are some of the manipulations performed
by this tool.
The Table Conversion tool is the primary development tool for imparting and
exporting data in OneWorld. most cases, imported data will come from files that
store data, and you use the Table Conversion tool to a batch application
imports the data from the file into one of the Z tables (for instance, the GL Z table
. . --
A foreigndata source is
text files, an Access database, and an Oracle database.
Open Data Access (ODA)Open Data Access is a read-only ODBC driver that you use to access OneWorld data
stored in an Access database. ODA converts column names, data and security
to present the data properly the outside world. ODA offers a quick and reliable
method of exporting data to applications, with low programming
overhead.
COM GeneratorThe COM Generator tool gives you access to OneWorld business functions through
interprocess communication standard, the Component Object Model
COM is used in OneWorld to provide a wrapper around a set of OneWorld
objects. letting a application execute the OneWorld objects in the
COM wrapper.
The COM generator produces fully functional COM servers that can be exported
to the outside world. The user executing the COM server code must have a OneWorld License located on the machine, and must log onto the OneWorld environment during
execution of the COM server.
Know Your Servers!Probably the most technical for new developers to understand the number of servers needed by a company for suppotting OneWorld,and the each server The schematic shown 1-18
that of a hypothetical corporate OneWorld server that containstype of server supported by OneWorld.
EnThe center of the production is the becauseIS the area for corporate data and All other servers in theProduction environment the server for data and
The Production the environment used byemployees, except lor developers and programmers, for daily tasks.The
Windows
Web
FIGURE Example of a OneWorld a company
is physically separated from the Developmentand Testing environments
that any enhancements do not accidentally enter the Production until they are ready.
The enterpnse server also enforces corporate-wide sign-on security. When an logs onto OneWorld, the enterprise server verifies the user's name andIf the employee passes sign-on security, then the OneWorld Explorer is
displayed. If the employee fails sign-on security, a dialog box appears and informs
the user.The enterprise server has minimum requirements for hard disk space, as shown in
Table
N O T E .for the Production environment. Experiencehas shown thaf
the minimum required disk space in case is a good rule of thumb.
For reliability and availability of the colporate entelprise server, the entelprise server in Figure1-18 is configured as a cluster. The cluster of servers or the enterprise
requires more financial overhead and initial investment forsupport, but it provides the mission-critical reliability and availability required by many colporations
their systems.
The deployment server is the one on which OneWorld is installed and configured. Theprocess includes setting up the Machine Identification tables (see the
Deployment Server EnterpriseServer Database Orade
NA
TABLE1-2. Disk Space for OneWorld
section earlier in this chapter) to identify all computers on the network. Then the deployment defines the CNC for the particular OneWorld installation. At the end of the installation process, the deploymentbuilds Full software for installation on all client workstations.
As business applications are built and modified, you need to periodicupdates of software packages on all computers in the OneWorld environment. Thedeployment server's primary task after installation is to export partial-update software packages to all servers and software packages to client workstations.
are updated at the same time. massive amounts time debugging that do not because are not . ,
on the server and
and occur the deploymenthas two to help m the OneWorldOne of thesetasks is to enforce license for OneWorld. License security ensures that you never the number of seats or users ate to onto it, and the number of are controlled by how many are allowed to sign ontoat one time. As the sewer enforces user security, the deployment server thatsufficient licenses foran employee to a OneWorld
The other for the deployment server in OneWorldto provide one location for all the source code. As
developers and create objects for their the code for each resides on the deployment server.
for your and deployment licensein and
Due to the number of must store, servermore hard disk space than the sewer (see Table The deployment server
builds the packages for all servers and clients on the network, and stores each
package on its bard drive. For each environment, there can be several
packages built in that correspond only to that environment. The benefit of this
approach is that you can maintain the applications for a single environment without
about affecting the other environments. The main drawback of this approach
is that you can saturate all available disk space keeping old packages on the
deployment server.
Probably the most confusing thing about the deployment and enterprise servers
is the various configurations that each one can They each can have their own
hierarchical tier architecture because each one operates independently of the other.
The enterprise server is strictly for production usage, and the server is
for version control, security, and packaging.
For example, a company may have ten enterprise servers configured in a very
complex, hierarchical fashion, and only one deployment server. ratio of enterprise
to deployment servers is possible because the demand for the deployment server is
only during package installation and upgrades--sporadic and transient operations during which performance is not essential.
Development ServerA development server is an enterprise server that has one environment installed on it
and used for development purposes only. The advantage to a development server is
that your application developers construct applications on a different server, which
physically isolates the development and production environments to prevent any conflicts. The downside to this approach is that it requires more hardware and software
to support the development server. Minimum requirements for the development server
are comparable to the amounts presented in Table 1-2 for the deployment server.
Windows Terminal ServerAs stated earlier, the Windows Terminal Server provides the functionality for graphical
terminal-based zero clients, which interact with the enterprise server through the
Server. The Terminal Server requires NT Server of RAM per
user, and of hard drive space per user. The client can be a 486 CPU
with minimal hardware, because all of the processing is performed on the server.
WebThe minimum requirements for the server (Java Applicationand the client are shown in Table The web server can be arranged in a cluster, as shown in the earlier schematic, to create a typical web that provides high availability for e-commerce customers. The most important factor to keep in mindwhen installing a corporate web server or web farm is to place the servers on theopposite side of the from the enterprise server. The last thmg a and systems wants to deal with is an attack on the corporate enterprise server due to the loss of protection from the web server.
The server is located across the WAN from the enterprise server and isused to localize unnecessary network and keep it from consuming all the WAN'
Ibandwidth. The department server can be set up in a or two-tier architecture, The one-tier architecture for the server is a simple file Server, a
, ,
that replicated tables the enterprise server to provide read-only privileges for its client. The two-tier architecture is a full enterprise provides more functionality to its clients than just a file server. The two-tier
Machine RAM Hard
WT Server,200MHz 4.0
later,
Any 4.01 or166 MHz supports 1.1 40
TABLE Web Server and Client Requirements
more expensive, but i t cuts down on network update traffic because theone-tier architecture department server can't any data to tables.
Although fat clients are not servers, they are machines that power user and developer interaction with OneWorld. We added fat clients to the list of OneWorldserversbecause the sizing requirements for fat clients are quite large. At mostOneWorld installations, the number of fat clients are factored into the total cost of ownership because their cost can drive up the expense of installing andmaintaining OneWorld.
Fat clients are Windows-based machines that are used as clients in OneWorld.The advantage of fat clients is that users have the full capabilities of the computer and all installed software applications that your company uses. However, the costsof providing all employees in your company a fat client is expensive, because theminimum requirements for it, shown in Table 1-4, are expensive.
at least doubled to accommodate of other development
and test
RAM Hard Drive Operating Required
4.0 Access97, Explorer4.01, and120 MHz drivers enterprise server database
TABLE 1-4. Minimum Fat Client Required Configuration
Edwards OneWorld: A Developer's Guide
PuttingIt All TogetherOneWorld represents a paradigm shift from other modem ERP systems because of
its CNC architecture. The CNC architecture allows the total integration and operation
of the network and information infrastructures to optimize bit of computingresources for a corporation. The CNC architecture leverages many technologies, such
as state-of-the-art and legacy, by allowing them to mutually exist. The end result of the
CNC paradigm is that you will have applications that are no longer dependent on the
underlying technology.
Knowledge of the entire OneWorld development toolset is required for you to
develop applications efficiently and with confidence. You may not use each tool on a
daily basis, but forcing one development tool to build an application when another toolis better suited for the job is a waste of your time and resources. Spend the time and
effort to get familiar with the entire OneWorld development toolset-in the long run,
you will develop superior applications.
The rest of this book tells you how application development occurs in OneWorld,
and how you can get the from the development toolset. The parts of the book
are based on the experience level of the developer. As you progress throughout your OneWorld application development career, you will find all the and chapters in
this book to be of great value for development projects to which you are assigned.
DeveloperQuickTips
OneWorld Modules (UDC =
Frequently Used Fast Path Commands=
Frequently Used Menus
Data Dictionary Types
Data Dictionary Edit Codes =
Object Naming Conventions
Frequently Used Business Functions
Audit Information Fields
Frequently Used Business Views andTheir Tables
Commonly Used OneWorld Acronyms
ModulesNumber Module
Foundation Systems
AddressBook
Electronic Mail
Accounts
OneWorldAccounts Receivable
Accounts Payable
Base Human Resource Management and Time Accounting
OneWorldHuman Resource Management and Time
Payroll
Human Resources
General Accounting
FinancialReporting
Multi-Currency
Fixed Assets
Equipment and Plant Management
Modeling, Planning, and Budgeting
Properly Management
Product Data Management
Shop Floor Control
Configuration Management
Requirements Planning
Enterprise Facility Planning
Forecasting
Quality Management
Agreement Management
Advanced Stock Valuation
Inventory Management
Sales Order Processing
Purchase Order Processing
Number
44
45
46
47
48
49
51
52
53
5 5 5 9
71
72
74
75
76
81
82
83
98
H93
H94
H96
H97
Contract Management
AdvancedPricing
Warehouse Management
ElectronicData Interchange
WorkOrder Processing
ECS Load and Delivery
Job Cost Accounting
Job Cost Billing
Change Management
for Clients
Resewed for J.D. Edwards Custom
Applications
EMEA Localization
ASEAN Localization
Latin America Localization
Canadian Payroll
Business Intelligence
DREAM Writer
World Writer
Management
Technicai
Design Tools
GraphicalUser Interactive Engine and Object Librarian
Database and Communications
UniversalBatch Engine
Technical Resources and Applications
Deployment
Benchmarkingand Performance
Internet
Product Version Control
Frequently Used Fast Path
Command
1K
3K
4K
AAI
BV
DD
DEBUG
EM
MENUS
NN
OCM
OPM
PATH
PKG
PM
PO
RDA
SARS
UDC
USERS
UTB
XREF
Description
Address Book constants
Accounts Receivable constants
Accounts Payable constants
General Accounting constants
Automatic Accounting Instructions
Batch Versions
Data Dictionary
Debug
EmployeeQueue Manager
Interactive Versions
Menus
Next numbers
Object Configuration Manager
Object Librarian
Path Code Master
Environments
Packages
Promotion Manager
ProcessingOptions
Report Design Aid application
SAR
User-Defined Codes
User Profile revisions
Universal Table Browser
Cross-Reference
Used MenusMenu Object Name
Application Development Tools
System Administration Tools
Packaging Deployment Tools
Object Management (Promotion Manager)
System InstallationTools
Internet Tools
Application Documentation Tools
Cross-Application Development Tools
Analysis &ModelingTools
Interactive Development Tools
Batch Development Tools
Data-Modeling Programs
Data Dictionary Types =Code
1
2
7
9
11
15
17
18
20
Description
Character
String
Identifier (ID)
Numeric
Date
Integer
Character (BLOB)
Binary (BLOB)
Variable string
Data Dictionary CodesCode
A
C
J
K
L
M
N
0
P
sT
U
1
2
3
4
Commas
Yes
Yes
No
No
Yes
Yes
No
No
Yes
Yes
No
Yes
Yes
No
Yes
Yes
No
No
Zero Balance
No
No
No
Ye5
No
Yes
No
Yes
Yes
No
Yes
No
Yes
No
Yes
No
Negative Amount Notations
CR
CR
CR
CR
Trailing minus sign
Trailing minus sign
Trailing minus sign
Trailing minus sign
Preceding minus sign
Preceding minus sign
Preceding minus sign
Preceding minus sign
>
>
>
No notation
No notation
No notation
No notation
Object Naming ConventionsNaming Convention
19 characters
Object Type
Data Dictionary
Tables
Indices
Business views
Applications
Event Rule variables
NER-based business functions
Naming Convention Object Type
C-based business functions
Data structures
Media object data structures
Processing option data structures
Reports
Data item NameCharactersof the
hh= Hungarian notation for data typeppp Auto-assignedscope prefix, such as a formor event
SystemNext number
Programmer-suppliedname
Frequently Used FunctionsBusiness Function Object Name
Calculate currency conversion
Get exchange rate
Convert math numeric to string
Convert character to math numeric
Get company currency code
Convert integer to math numeric
Convert string to math numeric
Convert string to JDEDate
Write to
Get decimal trigger by company and currency code
Convert CR and LR to hexadecimal
Convert math numeric to integer
Convert locai time to UTC
Convert UTC to time
Get audit information
Convert JDEDate to Julian date
Convert Juiian date to JDEDate
Convert JDEDate to
to
Business Function Object Name Description
BDDVAL Data Dictionary validation
Convert string to math numeric
M and debug
Get number
Audit InformationFieldsData Name
USER
UPMJ
UPMT
JOBN
Description
User
Date updated
Time last updated
Workstation ID
Program ID
Frequently Used Business Viewsand Their Tables
Business ViewModule Business View Title Object Name
Address Book Address Book
Financial AIR Detail Reports
AIR Account Status Summary
AIR CollectionManager
Detail Reports
Account Balances
Account Ledger
Business Units and Accounts
Fixed Assets
Cost Analyzer Balances
Human Employee MasterResources
Distribution Sales Order Detail
P
v t o t t
Tables Defined in theBusiness View
5
Module Business View Title
Order Header and Detaii
Shipment Step
Purchase Order Header
Purchase Order Detaii
Purchase Order Receiver
inventory Master, Branch, Location
item Location, Lot Join
Cost, item Master Join
Inventory Journal
item Master, Branch
Manufacturing Equipment Schedule
Equipment Orders
Work Center Master Report
of Material Report
Routing Master Report
Order Variances
Work Order Master
Manufacturing Work Order Header
Transportation Shipment Step
Load Legs
Freight Audit History
Warehouse Location Driver Processing
item Profiles
item Measure Definition
Location Detaii
WarehouseSuggestions
Management Financiai Reponing Reporting
Financial Reponing lor 52-PeriodAccounting
Cost Management System Reporting
Date Financiai Report
Business ViewObject Name
G
AJ
C
A
Tables theBusiness
.
.
.
,..
Commonly Used AcronymsAcronym
APPL
BDA
BF or BSFN
CRP
DD
DLL
DS or DSTR
ER
FDA
NER
OCM
PODA
PROCOPTS
QBE
RDA
SAR
SPECS
TAM
TBLE
TC
TDA
TER
UBE
WF
Application
Business View Aid
Business lunction
Business view
Conference Room Pilot
Data Dictionary
Dynamic link library
Data structure
Event Rule
Forms Design Aid
Named Event Rules
Object Configuration Manager
Object Library
Processing Option Design Aid
Processing options
Query By Example
Report Design Aid
Action Request
Specifications
Table Access Method
Table
Table Conversion
Table Design Aid
Table Event Rules
Universal Batch Engine (reports)
Workflow
of InteractiveApplication
Properties
by Control
Properties
Form Controi (FC)
Form lntermnnect
Grid Column
Grid
Hyper Controi (HC)
Processing Option (PO)
Column
System Literal (SL)
System Variables
Tab Page (TP)
Search!Select
F i r l Header Headerlesa inspect Detail Detail
Events by ControlAvailable Forms
Browse
Control Events
Forms Initialized 1
Dialog 2Is Initialized
Clear Screen Beiore Add
Clear Screen Add
Record 3Is Fetched
Write Grid 4Line
Write Grid 5
Last Grid Record 6Has Bean Read
Add Recordto
Addto DB
ContirmatlonChild Message
Search! F i r l Header HeaderlessSelect Detail Child Message
(Find)
Hyperltem(Cancel)
Hyperitern
HyperitemDefined)
Hyperitem(Delete)
Hyperitern
Clicked
Post Clicked
Button Clicked
Post Button Clicked
Button Clicked
Post Button Clicked
Button Clicked
Post Button Clicked
Button Clicked
Post Button Clicked
Clicked
Post Button Clicked
Button Clicked
Post Button Clicked
Available
Fix! HeaderSelect Detail Detail Message
of Propertiesfor Level-One SectionsLevel-one sections are sections in batch A t least one
level-one section mus t exist in a batch in order for i t t o
Components Available for Use by Sections
Processing Options
Report Interconnect Data Structure
Assigneda Business View
Data Selection
Data Sequencing
SubsectionJoin
Fields
Transaction Processing
Available
Report
Table
Business Function
Section Features and Functionality
Free Form Layout
Column Style Layout
Used as a Section
Used as a Subsection Join Section
Used as a Level Break Header
Used as a LevelBreak
Able to Format Headers and Footers
Implicit Totaling on Break
Auto-Generationof Grand
Data Selection at the Column Level
Auto-Population of Descriptions
DrillDown Capability
Group Columnar Tabular
Use by Sections
(RI)
(RV)
(SV)
of PropertiesLevel-Two Sections
Level-two sections are dependent sections in batch applications. At least one Level-onesection must exist in a hatch application in order for a level-two section to he used inthe application.
Components Available for Use by Sections
Processing Options
Report interconnect Data Structure
Transaction Processing
Interconnects
Report lnterconnect
Table
Business Function
Runtime Data Structures
Business View
Constant (CO)
Processing Option (PO)
Repolt Constant (RC)
Report Interconnect (RI)
Section (RS)
ReportHeader
PageHeader
PageFooter
ReportFooter
Level-Break Level-BreakHeader
Components Available Report Page Page Report Level-Break Level-Breakfor Use by Sections Header Header Footer Footer Header
Variable (RV)
System (SL)
System Variables (SV)
Summary of Events for Level-One SectionsThe following tahle provides you with all of available for use in level-one
sections and their components. The numeric values columns represent
the execution flow of the events for the section Universal Batch Engine.
Object Events
Common Refresh Section
InitializeSection
AdvanceSection
Do Section
Suspend Section
End Section
Clear Space
initialize Break Section
End Break Seclion
lnitializeLevel Break Section
End LevelBreakFooter Section
Initialize LevelBreakHeader Section
Sections
Group Columnar Tabular
End Level Break Header Section
Last Object Printed 5 5 6
Before Level Break 3 3 J
Do Tabular Break 4
Do Balance Auditor
Constant Initialize Constant
End Constant
Level-One Sections
Object Events
Suspend Constant
Skip Constant
Do Constant
Do Column Heading
Variable Initialize Variable
End Variable
Suspend Variable
Skip Variable
Do Variable
Column Inclusion
lnitialize Column
End Column
Group Columnar Tabular
3
Summary of Events for Level-Two SectionsThe following table provides you with all of the events available for use in level-two
sections and their supporting components. The numeric values in the columns represent
the execution of the events for the section by the Universal Batch Engine.
Level-Two Sections
Report Page Page Report Level-Break Level-BreakObject Events Header Header Footer Footer Header Footer
Common Refresh Section
lnitialize Section
Advance Section
Do Section
Suspend Section
End Section
Clear Space
lnitializeBreakSection
End Break Section
Level Break
Level-Two
Report Page Page Report Level-Break Level-BreakObject Events Header Header Footer Footer Header
End Level BreekFooter Section
lnitializeLevel BreakHeader Section
End Level BreekHeader Section
Last ObjectPrinted
Before Level Break
Do Tabular Break
Do Balance Auditor
Header lnitialize ReportHeader
lnitialize Page Header
End Page Header
End Report Header
Footer lnitialize ReportFooter
lnitialize Page Footer
End Report Footer
Constant lnitialize Constant
End Constant
Suspend Constant
Skip Constant
Do Constant
Do Column Heading
Variable lnitialize Variable
End Variable
Suspend Variable
Level-Two
Report Page Page ReportObject Events Header Header Footer Footer
Skip Variable
Do Variable
Column Inclusion
Initialize Column
End Column
Smart FieldsModule Description
52 Period Reporting Account Balance
52 Period Reporting Period Activity
Account Balance
Approved Budget
Create Journal Entry
Current Semester
Final Budget
First Quarter
Fourth Quarter
Inception to Date Through Current Period
Inception to Date Year End
Period Activity
Prior Semester to Date
Prior Year End Balance
Prior Year End Net Postings
Prior Year's Account Balance
Prior to Current Period
Requested Budget
Second Quarter
Third Quarter
Header
Data
WKRPTAB
WKRPTPA
Enterprise-Wide
Profitability
Fixed Assets
Description
Year to Date ThroughCurrent Period
Year to Date Through Year End
Cost Analyzer Account Balance
Cost Analyzer Period Activity
Net Balance Account Balance
Net Balance Period Activity
Account Balance
Annual Depreciation
Asset AdditionsCurrent Year
Computation Method - ITD or Rem
Create Fixed Asset Journal Entry
Date - Depreciation Started
Depreciation
Depreciation Method
Disposal Cost
First Quarter
Fourth Quarter
Inception to Date Through Current Period
Inception to Date Year End
Life Months
Method Percent
Period Activity
Prior Year End Balance Forward
Prior Year End Net Postings
Prior Year's Account Balance
Prior Year's Year to Date to Current Period
Retirement Amount
Salvage Value
Schedule 9
Second Quarter
Data
CMSRPTAB
CMSRPTPA
CMSNBAB
CMSNBPA
ASSETAB
ASSETCM
ASSETJE
ASSETDD
ASSETDC
ASSETLM
ASSETMP
ASSETPB
ASSETPY
ASSETPC
ASSETPR
ASSETRT
ASSETSV
ASSETSN
Module
Third Quarter
Transfer In Amount
Transfer Out Amount
Year to Date Through Current Period
Year to Date Through Year End
Work Order invoice Summary Alpha
Work Order Master Alpha
Work Order Master Numeric
Data
ASSETYC
ASSETYY
WRKORDA
WRKORDN
Model
Master Business Function (MBF)
Transaction name
or2 tables
Revision
lnboundprocessor
Flat-file version for inboundprocessor
Flat-filecross-referencetable
Log changeslogic for MBF
Retrieval API
Purge processor
Inbound Inbound Outbound Outbound Inbound Batch Synchronous Batch
of Transactions
Address Book
Customer
Supplier
invoice
Inbound Outbound Purge
Process MBF
WDEWM
an
,6
a.
am
m
aa
N
NO
.N
N-
,.
Group System Function
Control Clear control error
Disable control
Disable tab page
control
Enable tab page
Go to URL
Hide control
Hide tab page
Set control error
Set text
Set current tab page
Set tab page text
Set Data Dictionary item
Set Data Dictionary overrides
Set edit control color
Set edit control font
Set status bar text
Show control
Was value entered
Clear grid
Clear grid cell error
Clear column
Clear selection
Clear sequencing
Copy grid row to grid buffer
Delete grid row
Disable grid
Enable grid
Get grid row
Get max grid rows
Get selected grid row count
Get selected grid row number
Grid
Design Tool
FDA RDA NER TER TC
Group System Function
Hide column
Hide grid row
Insert grid buffer row
Insert grid
Set Data item
Data Dictionary overrides
Set grid cell error
Set grid color
grid column heading
Set grid font
Set grid row
Set lower limit
Set column compare style
Set selection
Set sequencing
Show grid column
Show grid row
Suppress
grid bufferrow
grid cell value enteredParent Child Clear grid buffer
Clear
Contract tree node
Copy grid row to grid buffer
Delete all tree nodes
Delete grid row
Expand tree node
Get grid row
Gel grid rows
Get node level
selected row count
number
Application Design Tool
RDA NER TER TC
Tree
General
Group System Function
Get tree node handle
Hide grid column
Insert grid buffer row
Set Data Dictionary item
Set Data Dictionary overrides
Set drag cursor
Set grid color
Set grid column heading
Set grid lont
Set grid row
Set tree
Set tree node
Set tree node handle
Show grid column
Suppress fetch on node expand
Suppress
Update grid buffer row
Write custom
Contract tree node
Delete grid row
Expand tree node
Get node information
Gel node level
Get tree node handle
tree node
Set scheme
Set node
Set node information
Set pre-expand mode
Set tree node handle
Cancel user transaction
custom data fetch
Application Design Tool
FDA RDA NER TER TC
J
System Function
Copy currency information
Press
Run executable
Set control locus
Set form title
Stop processing
Suppress add
Suppress default visual assist form
Suppress delete
Suppress update
Was form record fetched?
Check data
Clear user selection
Clear user sequence
Initialize local printer name
Log message
Set language preference
Set display
Set selectionappend flag
Set sequence append flag
Set error
Set user selection
Set user sequence
Stop batch processing
Stop event processing
Use data selectionand sequencingfrom a section
Delete current input row
Stop conversion processing
Stop event processing
Application Design Tool
FDA RDA NER TER TC
Table copy row
mwmw
Group Function
Messaging Delete message
Forward message
Send message
Template substitution
Update messageComplete
Get activity instance for key
Get process instance attribute
instance for key
Start composerprocess
Start process
Update process instance attribute
Update process instance attribute single Administration Change activity action
Change activity status
Copy activity definition
Delete process GUI file
Display process
Higher level override
Process activity definition
Resume process
Suspend process
Terminate process
Validate process
Workflowactivity commitment
Telephony Answer call
Conference
Drop call
Extend call
Get agent state
Get call data
call handle
Application Design Tool
FDA RDA NER TER TC
J
Group
Object
Sectlon
System Function
Get cell handle count
Get call number
Hold call
Log agent in
Log agent
Park call
call
Reject call
Retrieve call
Set agent state
Transfer
Media Object Functions item
Hide the viewer icon panel
Lock the viewer splitter bar
Set form indicator
Set grid text indicator
web browser
Combo Box Functions Select item
Get description
Text Control Functions Add segment
Get last clicked segment
Get segment information
Remove segment
Update segment
Hide object
Set object display scale
Show object
Do custom section
Do total
section
running
Application
FDA RDA NER TER TC
Group System Function
Set section display scale
Show section
Stop section processing
Suppress section write
Zero running total
Media objects Media object structures
Transaction processing Begin transaction
Commit transaction
Roll back transaction
Copy table Copy table data source
Copy table environment
Application Design Tool
FDA RDA NER TER TC
J
J
J