JD Edwards EnterpriseOne Tools

Business Services Development Guide

Release 8.98 Update 4

E14693-02

March 2011

JD Edwards EnterpriseOne Tools Business Services Development Guide, Release 8.98 Update 4

E14693-02

Copyright © 2011, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark licensed through X/Open Company, Ltd.

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Contents

List of Figures

Preface

- Audience

- Documentation Accessibility

- Related Documents

- Conventions

1 Introduction to JD Edwards EnterpriseOne Tools Business Services Development

- 1.1 JD Edwards EnterpriseOne Tools Business Services Development Overview

- 1.2 JD Edwards EnterpriseOne Tools Business Services Development Implementation

2 Understanding Business Services Development

- 2.1 JD Edwards EnterpriseOne Business Services Architecture

- 2.2 JD Edwards EnterpriseOne as a Web Service Provider

- 2.3 JD Edwards EnterpriseOne as a Web Service Consumer

- 2.4 Business Services Server

- 2.4.1 Development Environment

- 2.4.2 Production Environment

3 Understanding the Business Services Server

- 3.1 Business Services Server Overview

- 3.1.1 Business Service Security

- 3.1.2 Business Services Server Scalability

- 3.1.3 Business Services Server Fault Tolerance

4 Working with JDeveloper

- 4.1 Understanding JDeveloper

- 4.2 Configuring Embedded OC4J

- 4.3 Installing JD Edwards EnterpriseOne Code Templates

- 4.4 Viewing JD Edwards EnterpriseOne Code Templates in JDeveloper

- 4.5 Configuring HTTP and HTTPS Proxy Servers

5 Understanding the Business Services Framework

- 5.1 Business Services Framework

6 Working with JD Edwards EnterpriseOne as a Web Service Provider

- 6.1 Understanding JD Edwards EnterpriseOne as a Web Service Provider

- 6.1.1 Published Business Services

- 6.1.2 Business Services

- 6.1.2.1 Calling a Business Function

- 6.1.2.2 Calling a Database Operation

- 6.1.2.3 Transaction Processing

- 6.1.3 Business Service Properties

- 6.2 Creating a Custom Published Business Service

- 6.3 Testing a Published Business Service

- 6.4 Creating a Custom Business Service

- 6.5 Deploying the Business Services Server to the Integrated WebLogic Server

- 6.6 Using a Deployment Profile for JDeveloper Application Level

7 Working with Business Service Properties

- 7.1 Understanding Business Service Properties

- 7.1.1 Business Service Property Utility Classes

- 7.1.2 Errors and Error Logging

- 7.2 Managing Business Service Properties

- 7.2.1 Understanding Business Service Property Information

- 7.2.2 Forms Used to Manage Business Service Properties

- 7.2.3 Adding a Business Service Property Record

- 7.2.4 Modifying a Business Service Property Record

8 Working with JD Edwards EnterpriseOne as a Web Service Consumer

- 8.1 Understanding JD Edwards EnterpriseOne as a Web Service Consumer

- 8.1.1 Communicating Between JD Edwards EnterpriseOne Servers

- 8.1.1.1 Business Function APIs for Calling a Business Service

- 8.1.2 Xerces APIs

- 8.2 Setting Up OCM for Business Functions Calling Business Services

- 8.2.1 Understanding OCM Setup for Business Functions Calling Business Services

- 8.2.2 Forms Used to Set Up OCM for Business Functions Calling Business Services

- 8.2.3 Configuring OCM for Business Functions Calling Business Services

- 8.2.4 Pinging the Business Services Server

- 8.3 Developing a Business Service for Consuming an External Web Service

- 8.3.1 Understanding How to Develop a Business Service for Consuming an External Web Service

- 8.3.2 Identifying an External Web Service

- 8.3.3 Creating a Business Service Object

- 8.3.4 Creating a Web Service Proxy Prior to JDeveloper 11g

- 8.3.4.1 Renaming the Business Service Package

- 8.3.5 Creating a Web Service Proxy for a Web Service Deployed in WebLogic Server Using JDeveloper11g with JAX-RPC Client

- 8.3.5.1 Rearranging and Renaming Packages

- 8.3.6 Creating a Value Object Class

- 8.3.6.1 Passing Data

- 8.3.7 Creating a Business Service Class

- 8.3.8 Generating a Sample XML Document

- 8.4 Testing a Business Service That Consumes an External Web Service

9 Working with Softcoding

- 9.1 Understanding Softcoding

- 9.2 Understanding Softcoding Applications

- 9.3 Understanding Encrypted and Dynamic Softcoding Values

- 9.3.1 Encrypted Values

- 9.3.2 Dynamically Replaced Values

- 9.4 Creating Softcoding Values

- 9.5 Using Softcoding with Business Service Methods

- 9.6 Managing Softcoding Templates

- 9.6.1 Understanding Softcoding Templates

- 9.6.2 Forms Used to Manage Softcoding Templates

- 9.6.3 Adding a Softcoding Template Prior to JDeveloper 11g

- 9.6.4 Adding a Softcoding Template for JDeveloper 11g Proxy

- 9.6.5 Updating a Softcoding Template

- 9.6.6 Copying a Softcoding Template

- 9.7 Managing Softcoding Records

- 9.7.1 Understanding Softcoding Records

- 9.7.2 Forms Used to Manage Softcoding Records

- 9.7.3 Add a Softcoding Record Prior to JDeveloper 11g

- 9.7.4 Add a Softcoding Record for JDeveloper 11g Proxy

- 9.7.5 Update a Softcoding Record

- 9.7.6 Copy a Softcoding Record

- 9.8 Applying Softcoding Records

- 9.8.1 Understanding Softcoding Records

- 9.8.2 Configuring the Web Service Proxy with a Softcoding Record

10 Working with HTTP Request/Response

- 10.1 Understanding Business Services and HTTP POST

- 10.2 Using Business Services for an HTTP POST Request

- 10.2.1 HTTP Adapter Methods

- 10.2.2 Correlation Data Management

- 10.2.2.1 Accessing the Correlation Data Manager

- 10.2.2.2 Getting the Callback URL

- 10.2.3 Placing Correlation Data in the HTTP Header

- 10.2.4 Posting Data to External Sites

- 10.3 Listening for an HTTP Post Response

- 10.3.1 Listener Servlet

- 10.3.1.1 HTTPCallbackListenerServlet Process

- 10.3.2 Sending the Message to the HTML Web Client

11 Using Service Error Recovery

- 11.1 Understanding Service Error Recovery

- 11.1.1 Recognizing and Storing Service Errors

- 11.1.2 Reviewing Errors and Resending Data

- 11.1.3 Code Sample: Building the Error String and Mapping It to the Message

- 11.1.4 Code Sample: Invoking the F0045 Log Service Error Business Function (B0001250)

- 11.2 Managing Service Errors

- 11.2.1 Understanding Service Error Management

- 11.2.1.1 Resending Data

- 11.2.1.2 Record Locking

- 11.2.2 Forms Used to Manage Service Errors

- 11.2.3 Setting Processing Options for the Service Error Recovery Programs (P0045 and R0045)

- 11.2.3.1 Process

- 11.2.4 Reviewing Service Errors and Resending Data

- 11.2.5 Running the Services Error Recovery Program (R0045)

12 Creating Business Services

- 12.1 Understanding Business Services

- 12.1.1 Prerequisites

- 12.1.2 Common Elements Used in This Chapter

- 12.2 Adding JDeveloper Projects for Business Services

- 12.2.1 Understanding JDeveloper Projects for Business Services

- 12.2.2 Adding a New Project

- 12.3 Creating Published Business Service Classes

- 12.3.1 Understanding Published Business Service Classes

- 12.3.2 Running the Published Business Service Class Wizard

- 12.4 Creating Value Object Classes

- 12.4.1 Understanding Value Object Classes

- 12.4.2 Running the Business Function Value Object Class Wizard

- 12.4.3 Running the Database Operation Value Object Wizard

- 12.5 Creating Business Service Classes

- 12.5.1 Understanding Business Service Classes

- 12.5.2 Running the Business Service Class Wizard

- 12.6 Creating Business Function Calls

- 12.6.1 Understanding Business Function Calls

- 12.6.2 Running the Create Business Function Call Wizard

- 12.7 Creating Database Operation Calls

- 12.7.1 Understanding Database Operation Calls

- 12.7.2 Running the Create Database Call Wizard

- 12.7.3 Creating a Select Database Operation Call

- 12.7.3.1 Select Columns Tab

- 12.7.3.2 Where Clause Tab

- 12.7.3.3 Order by Columns Tab

- 12.7.4 Creating an Insert Database Operation Call

- 12.7.5 Creating an Update Database Operation Call

- 12.7.5.1 Update Columns Tab

- 12.7.5.2 Where Clause Tab

- 12.7.6 Creating a Delete Database Operation Call

A Configuring JDeveloper to Support UTF-8

- A.1 Understanding UTF-8

- A.2 Configuring Preferences

- A.3 Configuring Default Project Properties

- A.4 Configuring a Project

B Testing a Business Service That Consumes an External Web Service

- B.1 Creating a Test Business Service

- B.2 Using the Development Business Services Server

- B.2.1 Prerequisites

- B.2.2 Preparing Configuration Files

- B.2.3 Deploying a Development Business Services Server

- B.2.4 Start or Stop a Development Business Services Server on OC4J

- B.2.5 Start or Stop a Development Business Services Server on WebSphere Express

C Business Services Framework Javadoc

- C.1 Understanding Business Services Framework Javadoc

- C.2 Reviewing Business Services Framework Javadoc from JDeveloper

Glossary

Index

List of Figures

- 2-1 JD Edwards EnterpriseOne business service architecture

- 4-1 Deploy Development Business Services Server form

- 7-1 Add BSSV Property form

- 7-2 Modify Business Service Property form

- 8-1 Service Configuration Revisions form

- 9-1 Add SoftCoding Template form

- 9-2 Update SoftCoding Template form

- 9-3 Copy SoftCoding Template form

- 9-4 Add Web Service Soft Coding Record form

- 9-5 Update Web Service Soft Coding Record form

- 9-6 Copy Web Service Soft Coding Record form

- 11-1 Process flow for service error recovery

- B-1 Deploy Development Business Services Server

- C-1 Access Business Services Foundation Javadoc from JDeveloper

- C-2 Business Services Foundation Javadoc

Preface

Welcome to the JD Edwards EnterpriseOne Business Services Development Guide.

Audience

This guide is intended for system administrators and technical consultants who are responsible for creating business services.

This guide assumes you have a working knowledge of the following:

• The principles and customary practices of your business area.

• J Developer, HTTP requests, and softcoding.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/us/corporate/accessibility/index.html.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/support/contact.html or visit http://www.oracle.com/accessibility/support.html if you are hearing impaired.

Related Documents

You can access related documents from the JD Edwards EnterpriseOne Release Documentation Overview pages on My Oracle Support. Access the main documentation overview page by searching for the document ID, which is 876932.1, or by using this link:

https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=876932.1

To navigate to this page from the My Oracle Support home page, click the Knowledge tab, and then click the Tools and Training menu, JD Edwards EnterpriseOne, Welcome Center, Release Information Overview.

This guide contains references to server configuration settings that JD Edwards EnterpriseOne stores in configuration files (such as jde.ini, jas.ini, jdbj.ini, jdelog.properties, and so on). Beginning with the JD Edwards EnterpriseOne Tools Release 8.97, it is highly recommended that you only access and manage these settings for the supported server types using the Server Manager program. See the Server Manager Guide on My Oracle Support.

Conventions

The following text conventions are used in this document:

Convention

Meaning

Bold

Indicates field values.

Italics

Indicates emphasis and JD Edwards EnterpriseOne or other book-length publication titles.

Monospace

Indicates a JD Edwards EnterpriseOne program, other code example, or URL.

1 Introduction to JD Edwards EnterpriseOne Tools Business Services Development

This chapter contains the following topics:

- Section 1.1, "JD Edwards EnterpriseOne Tools Business Services Development Overview"

- Section 1.2, "JD Edwards EnterpriseOne Tools Business Services Development Implementation"

1.1 JD Edwards EnterpriseOne Tools Business Services Development Overview

Oracle's JD Edwards EnterpriseOne Tools Business Services Development provides guidelines for creating JD Edwards EnterpriseOne web services. This document provides information for creating web services for JD Edwards EnterpriseOne to be both a provider and consumer of web services. This document identifies the tools for creating business services for JD Edwards EnterpriseOne web service interoperability.

1.2 JD Edwards EnterpriseOne Tools Business Services Development Implementation

This section provides an overview of the steps that are required to implement JD Edwards EnterpriseOne Tools Business Services Development tools.

In the planning phase of your implementation, take advantage of all JD Edwards sources of information, including the installation guides and troubleshooting information.

The following implementation steps need to be preformed before developing JD Edwards EnterpriseOne business services:

1. Install EnterpriseOne Tools.
See JD Edwards EnterpriseOne Tools Server Manager Guide on the My Oracle Support Web site

2. Configure the Business Services Server.
See JD Edwards EnterpriseOne Tools Business Services Server Reference Guide on the My Oracle Support Web site

3. Deploy the business services packages to the Business Services Server.
See "Understanding Packages for Business Services" in the JD Edwards EnterpriseOne Tools Package Management Guide

4. Create business services workspace and projects on JDeveloper using Object Management Workbench.
See "Working with Business Services" in the JD Edwards EnterpriseOne Tools Object Management Workbench Guide

2 Understanding Business Services Development

This chapter contains the following topics:

- Section 2.1, "JD Edwards EnterpriseOne Business Services Architecture"

- Section 2.2, "JD Edwards EnterpriseOne as a Web Service Provider"

- Section 2.3, "JD Edwards EnterpriseOne as a Web Service Consumer"

- Section 2.4, "Business Services Server"

2.1 JD Edwards EnterpriseOne Business Services Architecture

JD Edwards EnterpriseOne provides interoperability with other Oracle products and third-party products and systems by natively producing and consuming web services. Web services are standardized ways to interoperate among disparate enterprises. JD Edwards EnterpriseOne web services conform to industry standards. JD Edwards EnterpriseOne web services use a Service-Oriented Architecture (SOA) environment to provide and consume inbound transactions and to send outbound event notifications.

This diagram illustrates the architecture for JD Edwards EnterpriseOne web services and business services:

Figure 2-1 JD Edwards EnterpriseOne business service architecture

2.2 JD Edwards EnterpriseOne as a Web Service Provider

As a web service provider, JD Edwards EnterpriseOne exposes web services for consumption by external systems. Each operation of the web service performs a business process. Multiple Java classes are used to perform the requested business process. The JD Edwards EnterpriseOne web service is generated from a Java class called a published business service class. The methods of the published business service class receive and return data through payload classes called value objects. Within each method, internal business service and value object classes are used to access existing logic and data in the JD Edwards EnterpriseOne system. The business processes exposed through the published business service class can be accessed from an external system using a web service call or from other published business service classes.

2.3 JD Edwards EnterpriseOne as a Web Service Consumer

As a web service consumer, JD Edwards EnterpriseOne calls an external web service from within the JD Edwards EnterpriseOne business logic layer. An action that uses a business function occurs in JD Edwards EnterpriseOne. The business function calls a business service. The business service calls an external web service. A web service proxy is provided end point and security information for the external web service. The external web service returns the results of the call to the business service. The business service passes the results to the business function.

You also can call external services using XML over HTTP when a web service is not available.

2.4 Business Services Server

The business services product provides a development environment and a production environment. Integration developers create and test new business services using the development environment. Orchestration developers use the production environment to develop orchestrations including published business service classes, which are exposed as web services.

2.4.1 Development Environment

The business services server provides a business services development client for developing and testing business services as both a web service provider and a web service consumer. The business services development client provides Oracle's JDeveloper and JD Edwards EnterpriseOne Business Services Framework as tools to help you create business services. JDeveloper has wizards and code templates that provide Java code to help you develop business services that conform to web service standards. Tools are provided on the development client to enable you to test all aspects of business service development in an isolated environment prior to checking in your code. You must install JDeveloper on your development client.

Each business service class has compile and runtime dependencies on the business services framework classes. The business services framework consists of base classes from which other classes extend. The business service framework provides services such as business function processing and database access.

Reference implementations are included in your software delivery. The business service reference implementations are sample business services provided by JD Edwards EnterpriseOne. You can use the reference implementations as models for creating custom business services that can be exposed as web services. A reference implementation also shows how to enable JD Edwards EnterpriseOne consuming a web service.

2.4.2 Production Environment

The business services server production environment is used by administrators to create web services. An administrator generates web service interfaces that expose the business service logic. During the web service generation, Web Services Description Language (WSDL) files are produced. WSDL files describe the available web services and are used by external systems during orchestration development. After web services are generated from the Java classes, they can be consumed by external systems.

The production environment also enables JD Edwards EnterpriseOne to consume web services.

3 Understanding the Business Services Server

This chapter contains the following topic:

- Section 3.1, "Business Services Server Overview"

3.1 Business Services Server Overview

The business services server enables JD Edwards EnterpriseOne to natively produce and consume web services. The business services server, which is built on top of a Java 2 Platform, Enterprise Edition (J2EE) server, can be an Oracle Application Server or a WebSphere Application Server. The business services server is required for creating JD Edwards EnterpriseOne provider and consumer web services. Applications that are developed or run on the business services server are written in the Java programming language.

When you install the JD Edwards EnterpriseOne software, the Server Manager deploys an application to the application server. This application contains the business service foundation and business service reference implementations. The business service foundation is a collection of executable files that are required for running business services. The business service reference implementations are sample business services that are provided by JD Edwards EnterpriseOne. You can use the reference implementations as models for creating custom business services that can be exposed as web services. A reference implementation for creating web services for JD Edwards EnterpriseOne as a web service consumer is provided.

3.1.1 Business Service Security

Security for the JD Edwards EnterpriseOne business services consists of two main categories—authorization and authentication.

- Access to run published business services is managed through the JD Edwards EnterpriseOne Security Workbench. For published business services, JD Edwards EnterpriseOne uses a secure by default security model, which means that users cannot run a published business service unless a security record exists that authorizes access.

- Authentication for consuming JD Edwards EnterpriseOne business services uses standard JD Edwards EnterpriseOne user credentials or anonymous login.

Business service security ensures that business service consumers are authenticated in JD Edwards EnterpriseOne and are authorized to use the business services. The business services server uses the JD Edwards EnterpriseOne Login Module to ensure that consumers are authenticated. The module uses Java authentication and authorization service (JAAS) to validate the JD EnterpriseOne users against the EnterpriseOne Security Server. Alternatively, to give non-JD Edwards EnterpriseOne users access to business services, you set up an anonymous user login in the jdbj.ini file.

See Also:

- JD Edwards EnterpriseOne Tools Business Services Server Reference Guide on the My Oracle Support Web site.

- "Managing Published Business Services Security" in the JD Edwards EnterpriseOne Tools Security Administration Guide.

3.1.2 Business Services Server Scalability

Scalability for the JD Edwards EnterpriseOne business services server depends on scalability features provided by the host application server—Oracle Application Server or WebSphere Application Server.

3.1.3 Business Services Server Fault Tolerance

When a component or machine in the system goes down or is brought down, other components and machines in the system should gracefully degrade and reconnect when the component or machine is back up. A system is considered to be fault-tolerant when these conditions exist:

- Error messages to the user and administrator are meaningful when a component of the system cannot be contacted.

- Connections can be reestablished when a component of the system is restarted without administrative interaction on other components of the system.

The components that are relevant for the business services server to be fault-tolerant are the enterprise server and the security server.

The connection to the enterprise server is fault-tolerant. If the enterprise server is down, the exceptions that are returned from a called web service are descriptive and indicate the problem. When the enterprise server comes back up, subsequent web service calls connect correctly without restarting or any further administration of the business services server. If connections to the enterprise server times out, the connections are reestablished.

The connection from the business services server to the security server is based on a token. If the security server is down or cannot be contacted, the exception message that is returned to the web service caller indicates that the server login failed. When the security server comes back up, the token is validated without administrator interaction.

4 Working with JDeveloper

This chapter contains the following topics:

- Section 4.1, "Understanding JDeveloper"

- Section 4.2, "Configuring Embedded OC4J"

- Section 4.3, "Installing JD Edwards EnterpriseOne Code Templates"

- Section 4.4, "Viewing JD Edwards EnterpriseOne Code Templates in JDeveloper"

- Section 4.5, "Configuring HTTP and HTTPS Proxy Servers"

4.1 Understanding JDeveloper

Oracle's JDeveloper provides an integrated development environment for creating JD Edwards EnterpriseOne business services. Your JD Edwards EnterpriseOne package includes a JDeveloper extension, which is automatically installed when you launch JDeveloper from JD Edwards EnterpriseOne Object Management Workbench (OMW). The extension package contains JD Edwards EnterpriseOne code features that help you create business services. Among these code features are wizards that generate a structure for creating a Java class. Wizards for generating code to call a business function or a data base operation are included in the extension package. The extension package also provides code templates specifically designed to help you develop and test business services. The wizards and code templates help you by enforcing coding conventions so that your business service classes can be exposed as web services.

If you use an HTTP Proxy Server, you must configure JDeveloper with the HTTP Proxy Server host name, port number and exceptions. If you use an HTTPS Proxy Server, you must configure JDeveloper with both the HTTP and HTTPS proxy server host names, port numbers and exceptions.

For JDeveloper to successfully be installed to your development client, you should verify that your system meets the Minimum Technical Requirements (MTRs) for the hardware and software that is required to install JDeveloper.

If you use non-English characters or data in your business services, you can configure JDeveloper to support UTF-8.

See Also:

- Understanding UTF-8.

- Oracle JDeveloper Guide, http://www.oracle.com/technology/index.html.

4.2 Configuring Embedded OC4J

If your business services server is on an Oracle Application Server, you must configure the Oracle containers for Java EE (OC4J).

To configure embedded OC4J:

On your development client, run JDeveloper:

1. From the JDeveloper Tools menu, select Embedded OC4J Server Preferences.

2. On Embedded OC4J Server preferences, change the Application Directory and the Deployment Directory values from relative paths to direct paths, and then click OK.
Keep your root directory name short. For example, the root directory for the Application Directory field could be c:/jdev/applications or the root directory could be c:/applications. The deployment directory could be c:/jdev/application-deployments.

4.3 Installing JD Edwards EnterpriseOne Code Templates

JDeveloper provides code templates for generating frequently used Java code such as data iterator, BC4J calls, and so on. JD Edwards EnterpriseOne provides code templates that specifically support business services development. The code templates are JDeveloper extensions that you must copy onto JDeveloper after JDeveloper is installed on your development client.

To install JD Edwards EnterpriseOne code templates on JDeveloper:

1. Access JDeveloper on your development client.

2. Configure JDeveloper by running jdeveloper.exe from your JDeveloper installation directory (<JDEV_INSTALL_DIR>.)

3. Close JDeveloper.

4. Copy the java.tpl file from your EnterpriseOne installation directory (<EOne Install>\system\classes).

5. Paste the java.tpl file to your JDeveloper installation directory (<JDEV_INSTALL_DIR>\jdev\system\ oracle.jdeveloper.10.1.3.*.*.)
For example, oracle.jdeveloper.10.1.3.39.84.

6. Run jdeveloper.exe from your <JDEV_INSTALL_DIR> directory.
The JD Edwards EnterpriseOne code templates are now part of the JDeveloper templates.

7. View code templates by selecting the expand template option from the JDeveloper source menu.

4.4 Viewing JD Edwards EnterpriseOne Code Templates in JDeveloper

The JD Edwards EnterpriseOne code templates are preconfigured in JDeveloper11g. All of the templates you need to generate code and to support business services are provided, though you can add and create new templates if you want to.

To view the code templates, select Tools, Preferences, Code Editor, and then Code Templates.

4.5 Configuring HTTP and HTTPS Proxy Servers

If you use JD Edwards EnterpriseOne business services to consume third-party web services over an HTTP connection, you must configure JDeveloper with the HTTP Proxy Server host name, port number, and exceptions. If authentication is required, a valid user name and password is also required. The values that you configure in JDeveloper should be the same as your Internet proxy.

If you use an HTTP secure connection, you must configure JDeveloper with both the HTTP Proxy Server and the HTTPS Proxy Server host names, port numbers, and exceptions. If authentication is required for the HTTPS Proxy Server, you must provide a valid user name and password.

To configure HTTP and HTTPS Proxy Servers:

On your development client, run JDeveloper:

1. In the Applications Navigation pane, right-click the business service workspace.

2. From the context menu, click Deploy Development BSSV Server

Figure 4-1 Deploy Development Business Services Server form

JDeveloper displays the HTTP and HTTPS proxy server values that you previously set in the jde.ini configuration file. You can change any of these values. If you change a value in JDeveloper, when you click OK on the Deploy Development Business Services form, the system writes the new values to the configuration file and deploys the BSSV server to OH4A, which restarts the business server. If you manually change the parameters in the configuration file, you must restart the business services server for the new parameters to take effect.

Deployment time varies based on the various parameters. If you are using WebSphere and deploying for the first time, profile creation could take several minutes. The deploy status is visible in the JDeveloper status window with the title Apache Ant - Log. You can continue with other work while deployment is in progress. You must not stop the JD Edwards EnterpriseOne Solution Explorer (which also stops the OC4J or WebSphere Express application) while deployment is in progress.

If the development business services server is already installed on the business services server, the previous version is automatically undeployed before the system continues the deployment process. When the deployment is finished, the Apache Ant - Log window displays a message indicating that the build and deploy was successful. The development business services server is now started and ready to accept requests.

See Also:

- JD Edwards EnterpriseOne Tools Release 8.98 Business Services Server Reference Guide, Chapter 2: Configuring Business Services Server, Configuring an HTTP Proxy Server.

5 Understanding the Business Services Framework

This chapter contains the following topic:

- Section 5.1, "Business Services Framework"

5.1 Business Services Framework

JD Edwards EnterpriseOne provides interoperability with other Oracle applications and third-party systems by natively producing and consuming web services. A web service is a standardized way for disparate systems and applications to exchange information. JD Edwards EnterpriseOne web services are called published business services. A published business service is an Object Management Workbench (OMW) object consisting of one or more classes, one of which publishes methods. Each method performs a business process. You create a web service by creating a published business service and identifying the published class.

JD Edwards EnterpriseOne business services are classes that enable JD Edwards EnterpriseOne to expose a business transaction as a basic web service. A JD Edwards EnterpriseOne business service is an OMW object consisting of one or more classes that expose public methods. Each method performs a business process. These public methods can be called from other business service classes or from published business service classes. Business services are created for internal use. A business service calls a business function or database operation to perform a specific task. Business services are called by a published business service. JD Edwards EnterpriseOne provides reference implementations that you can use as a model for creating your published business services and business services. The reference implementations are for reference only; they are not intended to be used in a production environment.

If you require a feature that is not in a JD Edwards EnterpriseOne published business service, you can extend the existing published business service class by adding functionality before or after the call to the service, or you can create a new published business service. You extend a published business service by creating a new business service and calling the existing published business service from the new service. Oracle recommends that you create a new OMW object (published business service or business service) instead of modifying an existing JD Edwards EnterpriseOne object. This recommendation takes into consideration JD Edwards EnterpriseOne updates and upgrades. During an update or upgrade, any modifications that you made to a JD Edwards EnterpriseOne object will be replaced by the updated or upgraded JD Edwards EnterpriseOne code.

The JD Edwards EnterpriseOne business services framework provides a set of foundation packages. Each foundation package contains a set of interfaces and related classes that provide building blocks that you use to create the published business service or business service.

The JD Edwards EnterpriseOne business services framework includes these packages:

- oracle.e1.bssvfoundation.base

- oracle.e1.bssvfoundation.connection

- oracle.e1.bssvfoundation.exception

- oracle.e1.bssvfoundation.http

- oracle.e1.bssvfoundation.services

- oracle.e1.bssvffoundation.util

The base package contains classes upon which all published business services and business services depend. Key classes and their purposes are described briefly here. The code is commented so that you can generate a Javadoc that provides details of the packages. Appendix C discusses Javadoc.

Each published business service class extends from the PublishedBusinessService class. Processing for a published business service takes place between startPublishedMethod and finishPublishedMethod. When a published business service class is started, the Context class is created. The Context class provides access to properties related to a specific service request as well as resources and behaviors shared between requests. Context is returned from the startPublishedMethod and passed to any called business service. When a published business service class is finished, the finishPublishedMethod commits transactions, handles system logging, and releases the Context class.

To be compliant with Document/Literal SOAP message format, all published business service methods are designed to have only one parameter. This parameter is referred to as the value object. Value object is a class that holds values but has little or no business logic. Published business services receive a value object as a parameter and return another value object with the results of a successful call. A value object used in a published method is referred to as exposed. All value objects extend from the ValueObject class of the base package.

If an error occurs during processing, the published business service method returns an exception message to the caller. This exception message describes the source of the problem. If less severe problems occur (such as ones that issue warnings or informational messages), the call returns successfully, and problems are reported back to the caller in the return value object.

All internal business service classes extend from the BusinessService class. Business service methods should be static and should not contain state information. Business service methods begin processing with a call to the startInternalMethod and complete processing with a call to finishInternalMethod. Unlike published business service methods, business service methods have more than one parameter. Business services methods are passed a Context object, a Connection object, and a ValueObject on which to operate. Also unlike a published business service method, business service methods use the passed value object both for input and to return results. In addition to the values contained within the value object, a business service method conditionally returns an array of E1Message objects, which contains application error messages, warnings, and informational messages to the caller.

The generated Javadoc provides a list and description of the interfaces and classes that are grouped within each of the business service foundation packages. Other pertinent information, such as method and constructor information, is also documented. Appendix C provides more information about Javadoc.

In addition to the business services framework, sample business services that you can use as a reference for creating a new business service are included with the JD Edwards EnterpriseOne software package. You view the sample business services by adding them to an OMW project and opening JDeveloper.

See Also:

- Understanding Business Services.

- Business Services Framework.

- "Development Methodology" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

- JD Edwards EnterpriseOne Tools Interoperability Reference Implementations Guide on the My Oracle Support Web site.

6 Working with JD Edwards EnterpriseOne as a Web Service Provider

This chapter contains the following topics:

- Section 6.1, "Understanding JD Edwards EnterpriseOne as a Web Service Provider"

- Section 6.2, "Creating a Custom Published Business Service"

- Section 6.3, "Testing a Published Business Service"

- Section 6.4, "Creating a Custom Business Service"

- Section 6.5, "Deploying the Business Services Server to the Integrated WebLogic Server"

- Section 6.6, "Using a Deployment Profile for JDeveloper Application Level"

6.1 Understanding JD Edwards EnterpriseOne as a Web Service Provider

You use JDeveloper and the Business Services Framework to create published business services and business services.

Note:
Do not use JDK 1.6-specific APIs in any of the published business services code if you want to be able to build business services packages for OAS, WAS, and WebLogic.

6.1.1 Published Business Services

A published business service is an Object Management Workbench (OMW) object consisting of one or more classes. One of the classes is the published business service class, which is the class that publishes methods that are exposed to the public. This public method wraps an internal business service method, where the actual business logic is performed. The published business service contains the value object classes that are received and returned by the published methods. A web service is generated from the published business service class, and the public methods of this class are operations within that web service.

After a business service is published, you cannot change the name and signature of the business service without affecting the consumers of that service. If you change an underlying business service that the published method exposes, then you change the signature and contract of the published business service.

6.1.2 Business Services

A business service is an OMW object consisting of one or more classes. One of the classes is a business service class, which is a Java class that has public methods that are used by other business services and published business services. The methods access logic in JD Edwards EnterpriseOne and support a specific step in a business process. When you create the business service class, you should consider including methods that have similar functionality and manageability in the same business service class. If multiple processes are similar and can reuse code, then these methods should exist in the same business service.

You can modify a business service providing that the change does not alter the signature or behavior of the published business service. You can change a business service in many ways, and how you change the business service depends on the business service design and the type of change that is required. Any change to a business service should be determined as part of the design process. Business service methods can call business functions, database operations, or another business service.

6.1.2.1 Calling a Business Function

You can create business service methods that call business functions. A business function is an encapsulated set of business rules and logic that can be reused by multiple applications. Business functions provide a common way to access the JD Edwards EnterpriseOne database. A business function performs a specific task. You use the business service foundation Business Function Call Wizard to create a business function call.

6.1.2.2 Calling a Database Operation

You can create business service methods that call database operations. Database operations include query, insert, update, and delete. You use the business service foundation Database Call Wizard to create these business services.

6.1.2.3 Transaction Processing

Transaction processing is a way to update the JD Edwards EnterpriseOne database. A transaction is a logical unit of work performed on the database to complete a common task and maintain data consistency. The database is updated when a transaction is either automatically or manually committed. The business service framework provides two types of default transactions: manual commit connection and auto commit connection.

For a single manual commit transaction, the default behavior is to scope all processing within the published business service method. If any operation within this scope fails, all operations are rolled back, and the published business service method throws an exception. This behavior is recommended when you commit multiple records to multiple tables.

For a single auto commit transaction, the default behavior is for each operation to commit or roll back immediately, which means that each table update within each business function call is either committed or rolled back immediately. This behavior is recommended for queries for which no transaction is needed or when you commit a single record to a single table.

When you are deciding which type of connection to use, you should always consider the business function behavior.

Default transaction behavior should cover most scenarios, but you can define a business service method that explicitly manages transactions. When determining whether a business service requires explicit transaction processing, you should review current JD Edwards EnterpriseOne functionality in the application. If the application uses explicit transaction processing, you should carefully review whether the business service should handle transaction processing the same way.

The Business Service Development Methodology guide provides a detailed discussion about transaction processing. In addition, the chapters pertaining to creating a published business service and creating a business service provide an overview of creating a transaction.

See also:

"Transaction Processing, Auto Commit" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

6.1.3 Business Service Properties

Business service properties provide a way for you to change a value in a business service method without changing the method code. A business service property consists of a key and a value. The key is the name of the business service property and cannot be changed. Business service properties are OMW objects. You can use OMW or the Business Service Property Admin program (P951000) to create and maintain them.

See Also:

- Business Service Property Utility Classes.

6.2 Creating a Custom Published Business Service

JD Edwards EnterpriseOne provides reference implementations that you can use as a model for creating a published business service. The reference implementations are for reference only and are not intended to be used in a production environment. The following steps provide how-to information for creating a custom published business service that can be exposed as a web service:

1. Determine whether to create a new published business service or extend an existing published business service.

2. Create a new OMW object for the published business service.

3. Add classes to the published business service object.

- Create published business service class.
– Name the published business service class.

– Create a transaction.

– Name the published business service methods.

- Create value object classes.
– Create business function value object classes.

– Name the input value object classes.

– Name the response value object classes.

– Use valid data types.

- Create database operation value object classes.
– Name the input value object classes.

– Name the response value object classes.

– Use valid data types.

4. Add business logic.

- Call business services.

- Handle errors.

- Format data.

5. Test the published business service.

See Also:

- Understanding Published Business Service Classes.

- "Understanding Published Business Services" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

- "Understanding Business Services" in the JD Edwards EnterpriseOne Tools Object Management Workbench Guide.

6.3 Testing a Published Business Service

You use tooling provided by JDeveloper to test and debug published business service methods. The published business service class is generated to a web service described in Web Services Description Language (WSDL) format and run on a J2EE server (OC4J) embedded within JDeveloper.

After the published business service is tested as a web service, you verify that the WSDL is compliant. You use JDeveloper for this task.

See Also:

- Oracle JDeveloper Guide, http://www.oracle.com/technology/index.html.

6.4 Creating a Custom Business Service

JD Edwards EnterpriseOne provides reference implementations that you can use as a model for creating business services that are specific to your interoperability requirements. The following steps provide how-to information for creating a custom business service:

1. Determine whether to create a new business service or modify an existing business service.

2. Create a new OMW object for the business service.

3. Add classes to the business service object.

- Create a business service class.
– Name the business service class.

– Create a transaction, if necessary (IConnection objects).

– Declare the business service public methods.

- Create the internal value object class.
– Name the internal value object class.

– Transform data types.

4. Add business service logic.

- Create a business function call.

- Create a database call.

- Call existing business service methods.

- Use business service properties.

- Handle errors.

- Format data.

See Also:

- Understanding Business Service Classes.

- "Understanding Business Services" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

- "Understanding Business Services" in the JD Edwards EnterpriseOne Tools Object Management Workbench Guide.

6.5 Deploying the Business Services Server to the Integrated WebLogic Server

JDeveloper 11g includes the integrated WebLogic server. For convenience, the deployment profiles are automatically created while invoking JDeveloper11g from within OMW.

The deployment profile is created both at the JDeveloper project level as well as the JDeveloper application level.

A project level deployment profile is created for creating a WAR file and deploying it to the Integrated WebLogic server to test each project individually along with its dependent projects.

To deploy the business services server to the integrated WebLogic server:

1. Open the appropriate project, click Properties, and then click Deployment.
A WAR deployment profile already exists.

2. Select the Deployment profile you want to edit, and then click Edit.
The Edit WAR Deployment Profile Properties page displays.

3. Edit the profile.

4. From File Groups, click Web Files, and then click Contributors.

5. In the Contributors section, click Add, then Browse, and then select the folder <E1Install>/system/classes/ConsumerBSS.

6. In the Filter section, select the Presence of web.xml file option.

7. In the WEB-INF/lib section, click Contributor, and then select the SBFProjects library.

8. In the Filter section, select the Presence of the E1 Specific Jar Files.

9. In the Filter section, click Target Connection, and then select the Integrated WebLogic server.

10. When the deployment profile is ready, rebuild the entire project. Deploy the project to the Integrated WebLogic server.

6.6 Using a Deployment Profile for JDeveloper Application Level

To use a deployment profile for JDeveloper application level:

1. From the Application Properties form, click Deployment.
The BSSV_EAR deployment profile displays.

2. Click the BSSV_EAR profile, click Edit, and then make the necessary edits.

3. On the Application Properties form, select the non-dependent WAR modules that are deployed as war files within the BSSV_EAR.ear file.

4. Select the war modules that you want to deploy to the server independently with their own context root.

5. Click Platform, click Target Connection, and then select the IntegratedWebLogic Server.

6. Click File, and then click Save.

7 Working with Business Service Properties

This chapter contains the following topics:

- Section 7.1, "Understanding Business Service Properties"

- Section 7.2, "Managing Business Service Properties"

7.1 Understanding Business Service Properties

Business service properties are used with JD Edwards EnterpriseOne business services and provide a way for you to change a value in the business service without changing the business service code. A business service property consists of a property key and a property value. The property key is the name of the business service property and cannot be changed. The property value is the value that you provide for the property key. You can modify the property value. You can include a business service property method in the published business service.

Business service properties are unique to an environment. For example, if you change a property value in your test environment, the business service property that is in your production environment will have the original property value unless you change it, too.

Naming conventions and methodology for using business service properties are discussed in the Business Services Development Methodology guide.

See "System-Level Business Service Properties" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

7.1.1 Business Service Property Utility Classes

These utility classes are available for the business service property:

- ServicePropertyAccess

- ServicePropertyException

You use ServicePropertyAccess to access property values.

You use ServicePropertyException to find and handle errors when accessing business service properties.

You use these two APIs to retrieve a business service property:

- Public static String getSvcPropertyValue(Context context, String key) throws ServicePropertyException.

- Retrieves the property value for a given key.

- Requires context to obtain connection to the JD Edwards EnterpriseOne database.

- Returns the value stored in the database.

- Throws ServicePropertyException if an error occurs.

- Public static String getSvcPropertyValue(Context context, String key, String defaultVal) throws ServicePropertyException.

- Retrieves the property value for a given key.

- Requires context to obtain connection to the JD Edwards EnterpriseOne database.

- Returns the value stored in the database if it is not null or blank.

- Returns the passed default value if the value in the database is null or blank.

- Throws ServicePropertyException if an error occurs.

7.1.2 Errors and Error Logging

If an error occurs during retrieval of a business service property, the system rolls back any changes, logs the error, and throws an exception. Error message handling is managed by the business service method. You can design your business service method so that when the system throws an exception, an error message is sent to the caller.

The following list identifies possible business service property errors that throw an exception and cause an error message to be returned to the caller:

- Security credentials do not have authority to read business service properties.

- The specified property key does not exist.

- The value for the property key is null, and no default value is provided.

- The values for the business service property record are incomplete.

7.2 Managing Business Service Properties

This section provides an overview of managing business service properties and discusses how to:

- Add a business service property record.

- Modify a business service property record.

7.2.1 Understanding Business Service Property Information

You can use the Business Service Property Program (P951000) to manage business service property information. With this program, you can add or delete business service properties, and you can modify the property value. You can also use Object Management Workbench (OMW) to create or delete a business service property or to modify a property value. If you need to create several business service properties, consider using P951000 to create the business service property and then add each business service property to the OMW project. The benefit of using OMW to create a business service property is that the object is automatically put into your OMW project for you.

When you add a new business service property, you indicate whether it is a system-level or service-level business service property. Business service properties categorized at the system level are used by more than one business service. Business service properties categorized at the business service level are used by only one business service.

After you create a business service property, you cannot change the name, because this is the key that the business service uses to call the business service property. You can change the property value.

All business service properties are stored in the Business Service Property table (F951000). You can view system-level, business service-level, or all business service properties that are available in your login environment from the Work with the Business Service Properties form.

See Also:

- "Adding a Business Service Property" in the JD Edwards EnterpriseOne Tools Object Management Workbench Guide.

7.2.2 Forms Used to Manage Business Service Properties

Form Name

FormID

Navigation

Usage

Working with Business Service Properties

W951000F

From the System Administration Tools menu, select Business Service Property from the Business Service Property and Business Service Cross Reference Administration folder.

Find, modify, or delete business service properties.

Add BSSV Property

W951000C

From Work with Business Service Properties, click Add.

Create a new business service property or modify the value of an existing business service property.

7.2.3 Adding a Business Service Property Record

Access the Add BSSV Property form.

Figure 7-1 Add BSSV Property form

Key

A name that uniquely identifies the business service property. This name cannot be changed. The length of the property key can be up to 255 characters.

Value

An entry that defines specific criteria. When you process the business service, you can change the value of the service property key. For example, the original value might be ZJDE0001 but when you process the business service, you might want to change this value to ZJDE0002.

Description

A phrase or sentence that identifies the purpose of the business service property.

Level

Select a way to group business service properties for viewing. Values are:

- BSSV: Shows all business service properties for a specific business service.

- SYSTEM: Shows all business service properties that you have defined as system-level business service properties. These business service properties can be used by more than one business service.

- All: Shows all business service properties that you have defined in your login environment.

Group

A way to classify the business service property at the business service level. The group name must be an existing business service name.

7.2.4 Modifying a Business Service Property Record

Access the Work with Business Service Properties form, select the business service property to be changed, and then click Select.

Modify Business Service Property form

Figure 7-2 Modify Business Service Property form

8 Working with JD Edwards EnterpriseOne as a Web Service Consumer

This chapter contains the following topics:

- Section 8.1, "Understanding JD Edwards EnterpriseOne as a Web Service Consumer"

- Section 8.2, "Setting Up OCM for Business Functions Calling Business Services"

- Section 8.3, "Developing a Business Service for Consuming an External Web Service"

- Section 8.4, "Testing a Business Service That Consumes an External Web Service"

8.1 Understanding JD Edwards EnterpriseOne as a Web Service Consumer

JD Edwards EnterpriseOne can call and process external web services. Being a native consumer of web services enables JD Edwards EnterpriseOne to integrate with other Oracle products and third-party systems and products, such as order promising. To enable JD Edwards EnterpriseOne as a web services consumer, you create a business service that uses a web service proxy to call an external web service. A method in that business service can be called by a JD Edwards EnterpriseOne business function. The business service resides on the business services server and is written in the Java programming language. The business service contains a web service proxy that you generate using JDeveloper. The business function resides in your enterprise server and is written in the C programming language. The business function calls the business service method.

Note:
Do not use JDK 1.6-specific APIs in any of the published business services code if you want to be able to build business services packages for OAS, WAS, and WebLogic.

8.1.1 Communicating Between JD Edwards EnterpriseOne Servers

The business function, which resides in your enterprise server, uses an API to call the business service method, which resides on the business services server. JDENet is the communication mechanism between the servers. An Object Configuration Manager (OCM) mapping tells the enterprise server the business services server name and port for sending the JDENet messages.

8.1.1.1 Business Function APIs for Calling a Business Service

These APIs are available for a business function to call a business service method:

- jdeCallBusinessService

- jdeCallBusinessServiceNoResponse

- jdeFreeBSSVPayloadReturn

- jdeGetBusinessServiceErrorText

Two APIs are available for calling a business service method from a business function:

- jdeCallBusinessService
This API makes a synchronous call to the business services server passing in an XML document that represents the value object for the called business service method. The call waits until the business service method finishes before processing.

- jdeCallBusinessServiceNoResponse
This API makes an asynchronous call to the business services server passing in an XML document that represents the value object for the called business service method. The API returns immediately after sending the message without waiting for a response.

For both of these APIs, the caller must allocate the bssvPayloadInput structure. In addition, the caller must free the bssvPayloadReturn structure with the provided API.

This example code provides a typical C business function call to a business service method:

* jdeCallBusinessService (lpBhvrCom,
*               lpVoid,
*               _J("oracle.e1.sbf.JXXXXX")
*               _J("bssv_method_name_to_call")
*               TRUE,
*               bssvPayload,
*               &bssvPayloadReturn);
*
* /* caller must free the space allocated for the return payload when
*    finished with it */
* jdeFreeBSSVPayloadReturn (&bssvPayloadReturn);
*

Both APIs take the same set of parameters, which is shown in this example code:

* lpBhvrCom - BSFN structure pointer.
* lpVoidInfo - holds error info returned from BSFN.
* bssvName - fully qualified name of business service to be called
* bssvMethod - method within business service to be called
* autocommitTransaction - type of transaction the business service should use
*                         on the business services server.
*                         True if auto commit - False for manual commit.
* bssvPayloadInput - string representation of an XML document that represents
*                    the value object for the business service. Populated
*                    with input values to pass to the business service.
* bssvPayloadReturn - string representation of XML document representing the
*                     value object returned from the business service call
*                     populated with both return values and original input
*                     values. The caller must free the space allocated for
*                     the return payload by calling the
*                     jdeFreeBSSVPayloadReturn API.

Both APIs have the same return values, which are shown in this example code:

* CallBSSVNoError                     100L
* CallBSSVServiceDoesNotExist         101L
* CallBSSVMethodDoesNotExist          102L
* CallBSSVInvalidMethodSignature      103L
* CallBSSVNoDefaultConstructor        104L
* CallBSSVErrorUnMarshal              105L
* CallBSSVErrorMarshal                106L
* CallBSSVConnectionException         107L
* CallBSSVInvalidPacketNum            108L
* CallBSSVInvaldUserName              109L
* CallBSSVInvalidEnv                  110L
* CallBSSVInvalidRole                 111L
* CallBSSVInvalidToken                112L
* CallBSSVAuthenticationFailure       113L
* CallBSSVNoErrorWithMessages         114L
* CallBSSVInvalidParamError           201L
* CallBSSVSystemConfigurationError    202L
* CallBSSVSystemNetworkFailedError    203L
* CallBSSVSystemInternalServerError   204L

See Also:

- JD Edwards EnterpriseOne Tools API Reference Guide on the My Oracle Support Web site.

8.1.2 Xerces APIs

You can use any one or more Xerces APIs in combination with other XML generation and editing APIs to generate the XML payload for calls to a business service. You can use any of these Xerces APIs, which have been added to the Xerces wrapper:

- Xerces APIs for working with MathNumeric data types:

- XRCS_createElementFromMathNumeric

- XRCS_setMathNumericElementValue

- XRCS_getMathNumericFromElement

- Xerces APIs for working with JDEDATE data types:

- XRCS_createElementFromJDEDate

- XRCS_setJDEDateElementValue

- XRCS_getJDEDateFromElement

- Xerces APIs for working with JDEUTIME data types:

- XRCS_createElementFromJDEUTIME

- XRCS_setJDEUTIMEElementValue

- XRCS_getJDEUTIMEFromElement

- Xerces APIs for parsing/serialization ignoring encoding tags:

- XRCS_serializeDocumentToXMLStringNoEncoding

- XRCS_parseXMLStringRemoveEncoding

See Also:

- JD Edwards EnterpriseOne Tools API Reference Guide on the My Oracle Support Web site.

8.2 Setting Up OCM for Business Functions Calling Business Services

This section provides an overview of setting up OCM for business functions calling business services and discusses how to:

- Configure OCM for business functions calling business services.

- Ping the business services server.

8.2.1 Understanding OCM Setup for Business Functions Calling Business Services

Typically, a system administrator configures OCM so that your enterprise server can find the business services server. After OCM is configured with the business services server information, you can ping the business services server from OCM to ensure that the business services server is running and listening for messages.

See Also:

- "Object Configuration Manager" in the JD Edwards EnterpriseOne Tools Configurable Network Computing Implementation Guide.

8.2.2 Forms Used to Set Up OCM for Business Functions Calling Business Services

Form Name

FormID

Navigation

Usage

Machine Search and Select

W986110D

Expand the System Administration Tools folder on the EnterpriseOne Life Cycle Tools / All My Roles menu, and then select Environment / Service Configuration from the Environment Management folder.

Select the appropriate machine name and data source combination.

Work with Service Configurations

W986110J

On Machine Search and Select, select the machine name and data source combination and then click Select.

Find and select an existing configuration for the business services server and server port, or access the Service Configuration Revisions form to add a new configuration record. Also ping the business services server to determine whether the business services server is available.

Service Configuration Revisions

W986110K

On Work with Service Configurations, click Add.

Add a new configuration in OCM with the location of the business services server.

8.2.3 Configuring OCM for Business Functions Calling Business Services

Access the Service Configuration Revisions form.

Figure 8-1 Service Configuration Revisions form

Environment Name

A name that uniquely identifies the environment.

Service Name

A name that identifies the type of server. For example, BSSV identifies the business services server.

User/Role

A specific JD Edwards EnterpriseOne user name, role name, or *PUBLIC to whom the record applies.

Server

The name of the local host where the business services server is running.

Port

The port number of the business services server. This is the JDENet listening port.

8.2.4 Pinging the Business Services Server

Access the Work with Service Configurations form.

1. In the grid area, highlight the server.

2. From the Row menu, select Change Status to activate the configuration.

3. From the Row menu, select Ping Server.
You receive a Ping message indicating whether the Ping test was successful or failed.

8.3 Developing a Business Service for Consuming an External Web Service

This section provides an overview of how to develop a business service for consuming an external web service and discusses how to:

- Identify an external web service.

- Create a business service object.

- Create a web service proxy prior to JDeveloper 11g.

- Create a web service proxy for a web service deployed in WebLogic Server using JDeveloper 11g with JAX-RPC.

- Create a value object class.

- Create a business service class.

- Generate a sample XML document.

8.3.1 Understanding How to Develop a Business Service for Consuming an External Web Service

You create a business service that consumes an external web service in the same way that you create a business service that provides a web service for public consumption. But instead of using a published business service as the web service, the business service is used to consume the web service. As part of the process, you create a web service proxy and an XML document. This business service is called by a business function. The following tasks provide a scenario for creating a JD Edwards EnterpriseOne business service that consumes an external web service.

8.3.2 Identifying an External Web Service

Before you create a business service to consume an external web service, you need to identify the external web service and its location. The external web service definition determines the data to be sent to the web service and the result that is received.

8.3.3 Creating a Business Service Object

Using Object Management Workbench (OMW), create the object that will contain the business service being developed. Start JDeveloper from OMW to work with this project.

8.3.4 Creating a Web Service Proxy Prior to JDeveloper 11g

A web service proxy is a collection of classes generated by JDeveloper and is used to call external web services. JDeveloper uses the target WSDL to create all necessary classes. A JD Edwards EnterpriseOne business service method uses the web service proxy to call the external web service. You use JDeveloper to create a web service proxy in the business service project that you created using OMW.

Note:
When you create a new business service proxy project in JDeveloper 10g to consume a web service running on the Oracle Application Server (OAS), JDeveloper includes the web service WSDL in the proxy project. When you check in the business service proxy project through OMW, the WSDL file must also be checked in as part of the project. If the WSDL file includes an XSD schema, the XSD schema file must be placed in the business service proxy folder and checked in as part of the business service project through OMW. This is required when you want to run the Migration Utility on a newly created OC4J-based business service proxy.
To be able to check in WSDL & XSD files along with the business service consumer projects through OMW, ensure that the UDC H95/CA includes records for WSDL & XSD files as BSSV artifacts that can be checked in.

When you create a new business service proxy project in JDeveloper 11g to consume a web service running on the WebLogic Application Server (WLS), JDeveloper 11g includes certain XML files in the proxy project. When you check in the business service proxy project through OMW, the XML files in the proxy project must also be checked in as part of the project.

To be able to check in XML files along with the business service consumer projects through OMW, ensure that the UDC H95/CA includes records for XML files as business services artifacts that can be checked in.

Also ensure that any new business service proxy project created in JDeveloper 11g to consume a web service running on WLS is checked in through OMW with the JDeveloper install path specified as the JDeveloper 11g install path.

After JDeveloper creates the web service proxy, you must rename the package folder, and then rebuild the code to ensure that no errors occurred.

To create a web service proxy:

1. Open JDeveloper from OMW.

2. Select the business service package for which you want to create a web service proxy, and then select New from the File menu.

3. On New Gallery, select All Technologies from the Filter By drop-down menu.

4. Expand the Business Tier category, and then select Web Services.

5. In the Items pane, select Web Service Proxy, and then click OK.
The Create Web Service Proxy Wizard opens.

6. On the Welcome page, click Next.

7. On Web Service Description, enter a web service WSDL URL in the WSDL Document URL field, and then click Next.
This is an example of a WSDL URL:

http://denqwb3.mlab.jdedwards.com:7777/orabpel/default/BPELFlowToSendEmail/1.0/BPELFlowToSendEmail?wsdl

Important:
Be sure that you open the URL in your browser and copy the URL from the browser address to the WSDL Document URL field in JDeveloper.

8. On Available Services, select the name of the service that you want to call, and then click Next.

9. On Port Endpoints, click Next.

10. On Custom Mappings, click Next.

11. On Defined Handlers, click Next.

12. On Default Mapping Options, deselect the Map Headers to Parameters option, and then click Next.

13. On Support Files, click Next.

14. On Finish, click Finish.

JDeveloper generates a proxy and places it under the business services package that you selected. A portion of the proxy package name must be in upper case; however, JDeveloper named the proxy using lower case. You must rename the proxy package.

8.3.4.1 Renaming the Business Service Package

You must rename the package so that the name matches the case of the rest of the business service. After you rename the package, you should rebuild the code to ensure that no errors exist. To rename the business service package.

1. In the business service project on JDeveloper, select the business service package, and then click Replace in Files on the Search menu.

2. On the Replace in Files window, enter the name in lowercase (for example, jrh90i20).

3. Enter the name in uppercase (for example, JRH90I20).

4. In the Search Path pane, select the Active Project option.

5. Click OK.
The uppercase name appears.

6. Save the renamed file by selecting Save All from the File menu.

You should rebuild the code to make sure no errors occurred.

8.3.5 Creating a Web Service Proxy for a Web Service Deployed in WebLogic Server Using JDeveloper11g with JAX-RPC Client

You can create a proxy that consumes a web service that is deployed in the WebLogic server. This section explains how to create the proxy in the development environment.

To create a web service proxy:

1. From OMW, open JDeveloper 11g.

2. Under the BSSV package (created for the proxy project), create a subfolder named Proxy.
For example, Oracle uses the following package structure for reference implementations:

oracle.e1.bssv.JRH90I33.proxy

3. Select the OMW project and then open the project properties.

4. Add the proxy path that corresponds to the package structure in the java source path.
For example, the following structure might be added to the java source path:

c:\e812\DV812\Java\source\oracle\e1\bssv\ JRH90I33\proxy

5. Select the BSSV package for which you want to create a proxy, and then click File, and then click New.

6. On New Gallery, select All Technologies from the drop-down menu.

7. Expand the Business Tier category, and then select Web Services.

8. In the Items pane, select Web Services Proxy, and then click OK.
The Create Web Service Proxy wizard opens.

9. On the Welcome page, click Next.

10. If you receive a prompt to select a web service option, select JAX-RPC, and then click OK.

11. Enter the web service URL address.

12. On the Specify Default Mapping Option page, enter the package name or select the name using the Browse button.
For example, to use the JRH90I33 reference implementation, select oracle.e1.bssv. JRH90I33.proxy.

13. Click Next.

14. Select the name of the service that you want to call, and then click Next.

15. Verify that the default options are selected on the remaining pages, and then click Finish.

16. Select the newly created proxy folder.
This folder is the destination folder for the files that are created.

The proxy files are created.

8.3.5.1 Rearranging and Renaming Packages

You can compile and build the project you have created

To rearrange and rename packages:

1. Locate the folder path "proxy\oracle\e1\bssv\JRH90I33\proxy" in the project folder.
After you copy the files, ensure that you cross check that the package name and the folder structure match.

2. Select the newly created projects in which you place your newly created proxy files in OMW.

3. Select the value object java files that have been generated under the proxy folder.

4. Rename the value object files package name and place it in the appropriate folder.
You can use the JDeveloper refactor option to change the package name and place the files in the corresponding folder.

For example, select jpr01000.bssv.e1.oracle.RI_Address and click Refractor. Then, change the package name to:

oracle.e1.bssv.JRH90I33.proxy.valueobject.oracle.e1.bssv.jpr01000.valueobject.RI_Address

5. Check for all references and change the package structure as appropriate.

6. Compile the project and rebuild the code to ensure no error has occurred.

8.3.6 Creating a Value Object Class

After you create the web service proxy, you create the value object class. You create the value object class based on data objects in the JD Edwards EnterpriseOne business function that will be used to call this business service. Then, you must write the code to map between data types in the value object class and the data types required by the external web service.

8.3.6.1 Passing Data

You design your business service method so that it gets the data that will be passed to the web service from either the business services server or the enterprise server. When you design your business service method, you need to consider the amount of data being passed. The more data that is passed to the business service method, the larger the memory requirements are on the enterprise server. Consuming memory on the enterprise server can significantly impact other users of the enterprise server. Creating the value object that is passed to the business service method requires careful consideration. Here are some questions you might consider:

- Is it better to assemble the data from the business services server instead of the enterprise server?

- Can key information be passed instead of constructing the entire data set on the C (enterprise server) side?

- Is one approach clearly better than the other based on the requirements?

Depending on your business service design, data is either received in the business service value object, or the business service retrieves the data from a table or business function call. Either way, data type conversions occur within the business service method. Everything that is specific to the web service being called, including data type conversions, should be contained within the business service method that wraps the web service call.

8.3.7 Creating a Business Service Class

After you create the web service proxy and the value object class, you create a business service class. This business service is a wrapper for the web service proxy. The business service wrapper is necessary because:

- Only internal business services that match the JD Edwards EnterpriseOne business service methodology can be called from the enterprise server.

- Most likely some conversion between the JD Edwards EnterpriseOne data types and the data types required by the web service provider will be required.

To create a business service class:

1. Add classes to the business service object.

- Create the business service class.

- Name the business service class.

- Create a transaction, if necessary (IConnection object).

- Declare a business service public method.

2. Add business service logic:

- Map from the value object to the format needed by the external web service.

- Create a call to the web service proxy.

- Use business service properties.

- Use softcoding.

- Handle errors.

- Format data.

After you create the business service for calling an external web service, you can create a JD Edwards EnterpriseOne business function that calls this business service. You can also create or use an existing JD Edwards EnterpriseOne application to call the business function.

8.3.8 Generating a Sample XML Document

You use the XML Template utility to create a sample XML document. The sample XML document is based on the value object of the business service method that is calling an external web service. This XML document provides a model for creating the XML payload in the JD Edwards EnterpriseOne business function. The XML document represents the structure of the data that is sent from the business function. The XML Template utility is provided in JDeveloper, and you access the utility by selecting a value object Java file in the JDeveloper Application Navigator pane.

To invoke the XML Template utility that generates a sample XML document:

1. Start JDeveloper from OMW.

2. In the JDeveloper navigator pane, right-click the value object of the business service method that you want to call.

3. Select Generate XML Document Template from the context menu.
The XML Template utility creates a new XML file in the same directory as the value object. The XML file has the same name as the value object, with an extension of XML instead of Java.

4. Click the refresh icon in the JDeveloper navigator pane.

5. Open the sample XML document by double-clicking the new XML file.

8.4 Testing a Business Service That Consumes an External Web Service

You can test a business service that calls an external web service using one of these methods:

- Create a test business service.

- Use the development business services server.

Guidelines for using these methods are provided in Appendix B: Testing a Business Service That Calls an External Web Service.

See Also:

- Creating a Test Business Service.

9 Working with Softcoding

This chapter contains the following topics:

- Section 9.1, "Understanding Softcoding"

- Section 9.2, "Understanding Softcoding Applications"

- Section 9.3, "Understanding Encrypted and Dynamic Softcoding Values"

- Section 9.4, "Creating Softcoding Values"

- Section 9.5, "Using Softcoding with Business Service Methods"

- Section 9.6, "Managing Softcoding Templates"

- Section 9.7, "Managing Softcoding Records"

- Section 9.8, "Applying Softcoding Records"

9.1 Understanding Softcoding

When you create a business service that enables JD Edwards EnterpriseOne to be a web service consumer, you can use softcoding to dynamically change the endpoint and security information that you provide in the web service proxy. You develop and test your web service against a development environment, which requires an endpoint and possibly security information. The endpoint and user credentials in the production environment will be different from those that you provide in the development environment. In the production environment, the web service proxy needs to know which machine to call for the service, and it needs to know what user credentials, if any, to pass for the external web service call. Softcoding enables you to dynamically plug in the machine name and user credentials at runtime instead of hard-coding them into the business service.

The business service requires a softcoding value at runtime. At a minimum, the softcoding value provides the endpoint for calling an external web service. If user credentials are required by the web service that is being called, the softcoding value includes security information, too. Depending on how many external web services you call, you can have many softcoding values. JD Edwards EnterpriseOne provides softcoding templates and softcoding records to help you manage multiple softcoding values.

Softcoding templates are used by developers during business service development and testing. The purpose of a softcoding template is to define what type of softcoding value is used by each business service. A softcoding template defines the expected structure of the softcoding value and serves as a communication mechanism between a developer and an administrator. Softcoding templates are not used at runtime, but they specify the softcoding value that a business service uses at runtime.

Softcoding records are created by administrators to be used by the system at runtime. A softcoding record contains the actual softcoding value that is to be used by a business service to call an external web service. Typically, softcoding records are created and maintained by an administrator. You can create many softcoding records for a business service. When you create a softcoding record, you provide a softcoding key, which is the name of the business service, a user ID or role information, and the environment.

9.2 Understanding Softcoding Applications

JD Edwards EnterpriseOne provides two applications to support softcoding. You use the Web Service Soft Coding Templates program (P953000) to configure web service softcoding templates based on web service security requirements. You use the Web Service Soft Coding Records program (P954000) to configure web service softcoding records based on web service softcoding templates. Both of these applications store XML documents.

Developers create both softcoding templates and softcoding records for testing the business service in the development environment. When testing is finished, the administrator creates softcoding records for the business service to use in the production environment. The softcoding records are based on the softcoding templates that developers created. Typically, softcoding values will be different in the development and production environments.

To improve performance, softcoding records are cached on the business services server at runtime. When you modify a softcoding record, you should also clear the jdbj service cache.

9.3 Understanding Encrypted and Dynamic Softcoding Values

Typically, you will want to encrypt your security information. Both softcoding applications (template and records) enable you identify values that are to be encrypted in the XML document. Both applications also enable you to use values that are dynamically replaced in the XML document.

9.3.1 Encrypted Values

You should consider protecting information such as passwords by encrypting the password. Both softcoding applications provide a way to encrypt information within the XML document. In the XML document, the encrypted value has an alias that is surrounded by a specific sequence of characters (_||_).

This example XML document shows a password that you might want to secure:

<username-token name="User Name" password="95T763i"
password-type="PLAINTEXT" add-nonce="false" add-created="false"/>

This example code shows how the XML document encrypts the secure value:

<username-token name="User Name" password="_||_maskedpassword_||_"
password-type="PLAINTEXT" add-nonce="false"  add-created="false"/>

Both of the softcoding applications provide an area at the bottom of the form for you to enter data to be encrypted. The decryption and substitution occurs at runtime when the getSoftCodingRecord method is called. It is imperative that no logging of the softcoding value takes place between the call to getSoftCodingRecord and _setProperty.

9.3.2 Dynamically Replaced Values

Within a softcoding value, certain values can be used for dynamic replacement. Using these values in the XML means that the values are inserted and returned when getSoftCodingRecord is called. You might use dynamic replacement of values if you have multiple systems that contain the same set of user IDs and login criteria (environment and role) in both systems. You can use these values for dynamic replacement:

- $e1user

- $e1environment

- $e1role

- $ps_token

9.4 Creating Softcoding Values

A softcoding value is a segment of an XML document. The simplest softcoding includes only the machine name; no user credentials are required. The softcoding value always includes an endpoint and conditionally includes security information.

This sample code shows softcoding that provides an endpoint only:

<port-info>
<stub-property>
<name>javax.xml.rpc.service.endpoint.address</name>
<value>http://www.webservicex.net/WeatherForecast.asmx</value>
</stub-property>
</port-info>

If the web service requires user credentials to be passed, the softcoding contains that information as well.

This sample code shows a softcoding value that provides both endpoint and user credentials:

<port-info>
<stub-property>
<name>javax.xml.rpc.service.endpoint.address</name>
<value>http://dens001.mlab.jdedwards.com/Rollout/RI_AddressBookManager</value>
</stub-property>
<wsdl-port namespaceURI="http://oracle.e1.sbf.JPR01000/"
localpart="RI_AddressBookManagerHttpPort"/>
<runtime enabled=security>
<security>
<inbound/>
<outbound>
<username-token name="User Name" password="Password" password-type="PLAINTEXT"
add-nonce="false" add-created="false"/>
</outbound>
</security>
</runtime>
<operations>
<operation name='addAddressBook'>
</operation>
<operation name='addAddressBookAndParent'>
</operation>
<operation name='getAddressBook'>
</operation>
</operations>
</port-info>

You can use JDeveloper to create coding values with many different types of security information.

See Also:

- Oracle JDeveloper Guide,http://www.oracle.com/technetwork/index.html .

9.5 Using Softcoding with Business Service Methods

Softcoding within a business service requires two methods. You use the method getSoftCodingRecord to retrieve the softcoding record. You use the method _setProperty to apply the softcoding record to the web service proxy. Calling _setProperty with a softcoding value overrides hard-coded values that might have been assigned in the web service proxy when it was generated.

This code sample shows how to retrieve a softcoding record and apply the softcoding value to the web service proxy:

Element softCodingValue;

// Retrieve the softcoding record. The 'key' that is passed is a string confined
// only by methodology. It becomes part of a multipart key to retrieve a databas
// record.
softCodingValue = SoftCodingRecordAccess.getSoftCodingRecord(context,
this.SOFTCODING_KEY);

// myPort is the Web Service Proxy
myPort = new RI_AddressBookManagerHttpPortClient();

// apply the softcoding to the proxy if(softCodingValue!= null) {

(Stub)myPort.getPort())._setProperty(oracle.webservices.ClientConstants.CLIENT_
CONFIG,softCodingValue);
}
else {
// respond to missing softcoding record. Log, set default values, and/or
return error.
}

9.6 Managing Softcoding Templates

This section provides an overview of softcoding templates and discusses how to:

- Add a softcoding template prior to JDeveloper 11g

- Add a softcoding template for JDeveloper 11g proxy

- Update a softcoding template

- Copy a softcoding template

9.6.1 Understanding Softcoding Templates

You use softcoding templates to create softcoding records. Using a softcoding template is productive because softcoding records have similar values, and reusing templates helps to minimize typing errors when entering record information. Softcoding templates are basically a unique name, a softcoding key that defines a relationship (the value used in the code), and the softcoding value.

A web service proxy has at least one softcoding template and one softcoding record; however, a web service proxy can have many templates and many records. The softcoding key is a grouping mechanism that is used to tie all of the related templates and records together for a given web service proxy. The softcoding key also acts as a communication vehicle for passing information from developers to administrators.

Because the development environment and the production environment are similar but not identical, a developer needs a way to communicate with an administrator. By creating a softcoding template, the developer has a way to communicate both the softcoding key the business service is expecting and the anticipated structure of the XML element.

You use the Web Service Soft Coding Templates Program (P953000) to add new templates, update existing templates, copy existing templates to create new templates, and delete templates.

9.6.2 Forms Used to Manage Softcoding Templates

Form Name

FormID

Navigation

Usage

Work with SoftCoding Templates

W953000A

Type P953000 in the Fast Path.

Locate and review existing templates or delete a template. Deleting a template deletes the mask fields associated with the template.

Add SoftCoding Template

W953000C

On Work with SoftCoding Templates, click Add.

Add a new template.

Update SoftCoding Template

W953000C

On Work with SoftCoding Templates, click Find, select an existing template, and then click Select.

Modify the key and value of an existing template. You cannot change the template name.

Copy SoftCoding Template

W953000C

On Work with SoftCoding Templates, select an existing template, and then click Copy.

Copy an existing template to make a new template. You must change the template name.

9.6.3 Adding a Softcoding Template Prior to JDeveloper 11g

Access Add SoftCoding Template.

Figure 9-1 Add SoftCoding Template form

Template Name

Enter a name for the template. JD Edwards EnterpriseOne templates are named E1_<BusinessService>, where BusinessService is the name of the business service; for example, J34A0010. Taking into consideration system updates and upgrades, you should not modify a JD Edwards EnterpriseOne template. Instead, copy the JD Edwards EnterpriseOne template and rename it using a similar naming convention.

Description

Enter text that identifies the purpose of the template.

Softcoding Key

A way to identify related templates and records for a given business service.

Value

An XML document without the header information; for example, <?xml version=1.0?>.

Mask Field

Enter a value that you want to appear in the XML document. This value is an alias for the value that you enter in the Mask Value column. The application automatically places the characters (_||_) around the alias value you enter.

Mask Value

Enter the value for which you have created an alias. This value will appear as the alias value in the XML document.

9.6.4 Adding a Softcoding Template for JDeveloper 11g Proxy

There is a standard softcoding template for 11g proxy that you can use for all the softcoding records. A generic key is used for all the WebLogic-specific consumer proxies.

Access Add SoftCoding Template.

Enter the following information:

Template Name

Enter a name for the template. The template name is a standard name for all proxies. For example, you might name a template SC4WLS to denote a proxy named Soft Coding for WLS server.

Description

Enter text that identifies the purpose of the template.

Softcoding Key

A way to identify related templates and records for a given business service. It is a unique key, such as SC4WLS.

Value

An XML document without the header information; for example, <?xml version=1.0?>. The following is an example value:

<scwls>

<endpoint>http://host:port/context-root/PortName</endpoint>

<username>username</username>

<password>_||_password_||_</password>

<policy>xyzPolicy.cml</policy>

<trustkey>abcTrustKey.xml</trustkey>

</scwls>

Mask Field

Enter a value that you want to appear in the XML document. This value is an alias for the value that you enter in the Mask Value column. The application automatically places the characters (_||_) around the alias value you enter.

Mask Value

Enter the value for which you have created an alias. This value will appear as the alias value in the XML document.

9.6.5 Updating a Softcoding Template

Access Update Softcoding Template.

Figure 9-2 Update SoftCoding Template form

Use this form to change the Description, Softcoding Value, or Mask Field column of an existing template. You cannot change the template name.

9.6.6 Copying a Softcoding Template

Access Copy Softcoding Template

Figure 9-3 Copy SoftCoding Template form

Use this form to create a new softcoding template by copying an existing softcoding template. You must provide a new template name.

9.7 Managing Softcoding Records

This section provides an overview of softcoding records and discusses how to:

- Add a softcoding record prior to JDeveloper 11g.

- Add a softcoding record for JDeveloper 11g proxy.

- Update a softcoding record.

- Copy a softcoding record.

9.7.1 Understanding Softcoding Records

Softcoding records are used at runtime. They have a multipart key of user/role, environment, and softcoding key. Including environment in the key ensures that production and development entries are not used out of context. Including user/role in the key ensures that softcoding entries can be as specific as necessary. The softcoding key is the part that the business service passes to the getSoftCodingRecord method. The remainder of the information is provided by the context and is used in a hierarchical fashion so that the most specific records are used if available.

At runtime, when the business service passes J34A0010 as the softcoding key, the method looks for the following records in order and stops as soon as one is found, and returns the XML document.

In this example user KB123 has signed in with the role employee to environment PROD:

Sequence

User/Role

Environment

Softcoding Key

Softcoding Value

1

KB123

PROD

J34A0010

XML document segment

2

employee

PROD

J34A0010

XML document segment

3

*PUBLIC

PROD

J34A0010

XML document segment

9.7.2 Forms Used to Manage Softcoding Records

Form Name

FormID

Navigation

Usage

Work with Web Service Soft Coding Records

W954000A

Type P954000 in the Fast Path field.

Locate and review existing records or delete a record. Deleting a record deletes the mask fields associated with the record.

Add Web Service Soft Coding Record

W954000B

On Work with Web Service Soft Coding Records, click Add.

Add a new record.

Update Web Service Soft Coding Record

W954000B

On Work with Web Service Soft Coding Records, click Find, select an existing record, and then click Select.

Modify an existing record. You cannot change the user/rode, environment, template, or softcoding key.

Copy Web Service Soft Coding Record

W954000B

On Work with Web Service Soft Coding Records, select an existing record, and then click Copy.

Copy an existing record to make a new record. You must change the user/role, environment, and softcoding key.

9.7.3 Add a Softcoding Record Prior to JDeveloper 11g

Access the Add Web Service Soft Cording Record form.

Figure 9-4 Add Web Service Soft Coding Record form

User / Role

Enter your JD Edwards EnterpriseOne user ID and role (such as *Public).

Environment Name

Enter the name of the JD Edwards EnterpriseOne environment in which you are working.

Template Name

Enter the name of the template that you want to use. For example, a JD Edwards EnterpriseOne template might be E1_J34A0010.

Soft Coding Key

Enter a value that defines the relationship of this record to other softcoding templates and records. The softcoding key is a way to tie together all related templates and records for a given web service proxy.

Soft Coding Description

Displays the text that identifies the softcoding record.

Soft Coding Value

Displays the XML document without header information, such as <?xml version="1.0"?>.

The XML document is automatically created when you click the Populate Softcoding Value button that appears on the form when you enter a valid template name.

Mask Field

Enter a value that you want to appear in the XML document. This value is an alias for the value that you enter in the Mask Value column. The application automatically places the characters (_||_) around the alias value that you enter.

Mask Value

Enter the value for which you have created an alias. This value will appear as the alias value in the XML document.

9.7.4 Add a Softcoding Record for JDeveloper 11g Proxy

Access the Soft Coding Records application (P954000).

Enter the appropriate information in the following fields:

User/Role

Enter your JD Edwards EnterpriseOne user ID and role (such as *Public).

Template Name

Enter the template name that you created for the WLS proxy, for example SC4WLS.

SoftCoding Key

Enter a unique key specific to the project.

SoftCoding Description

Enter a description of the record.

SoftCoding Value

Change the value to correspond with the project. Use the information below as an example:

<scwls>

<endpoint>https://10.177.115.221:7443/DV812/RI_AddressBookManager?WSDL</endpoint>

<username>JDE</username>

<password>_\\_password_\\_</password>

<policy>Wssp1.2-2007-Https-Usernametoken-Plain.xml</policy>

<trustkey>DemoTrust.jks</trustkey>

</scwls>

Mask Field

Enter a value that you want to appear in the XML document. This value is an alias for the value that you enter in the Mask Value column. The application automatically places the characters (_||_) around the alias value you enter.

Mask Value

Enter the value for which you have created an alias. This value appears as the alias value in the XML document.

9.7.5 Update a Softcoding Record

Access the Update Web Service Soft Coding Record form.

Figure 9-5 Update Web Service Soft Coding Record form

Use this form to change the template name, softcoding description, softcoding value, or the Mask Field column on an existing softcoding record. You cannot change the softcoding key or user/role.

9.7.6 Copy a Softcoding Record

Access the Copy Web Service Soft Coding Record form.

Figure 9-6 Copy Web Service Soft Coding Record form

Use this form to create a new softcoding record by copying an existing softcoding record. When you click Copy, the Add form loads with the Mask Field column cleared.

9.8 Applying Softcoding Records

This section provides an overview of using softcoding records at design time and discusses how to configure the web service proxy with a softcoding record.

9.8.1 Understanding Softcoding Records

At design time, you add code to configure the web service proxy with the softcoding record. This involves adding import statements and using the getSoftCodingRecord API to retrieve the softcoding record. This API also replaces dynamic and encoded values if either or both of these types of values are used in the softcoding record.

9.8.2 Configuring the Web Service Proxy with a Softcoding Record

When adding code to configure the web service proxy with the softcoding record, you must add import statements to the XML document that was created by the softcoding record application. This code sample shows import statements for the business service:

import oracle.e1.bssvfoundation.util.SoftCodingRecordAccess;
import org.w3c.dom.Element;
import javax.xml.rpc.Stub;
import oracle.e1.bssvfoundation.exception.InvalidSoftCodingRecordException;

Next, you use the getSoftCodingRecord API to retrieve the softcoding record. The following sample code shows how to retrieve the softcoding record, where SAMPLE_KEY is the key that is used to retrieve the record:

Element softCodingRecord =
SoftCodingRecordAccess.getSoftCodingRecord(context,"SAMPLE_KEY");

The getSoftcodingRecord API throws these two exceptions:

- SoftCodingRecordAccessException

- InvalidSoftcodingRecord Exception.

The API throws a SoftCodingRecordAccessException when a system error occurs during the retrieval of the softcoding record from the JD Edwards EnterpriseOne database. The API throws an InvalidSoftCodingRecordException when the softcoding record is not well-formed, causing a parsing error to occur when the API is converting the softcoding record into a document object model (DOM).

The last step in the process is to configure the web service proxy with the softcoding record. Be sure to check for a null condition before setting the softcoding record. The retrieved softcoding record is null if a softcoding record does not exist for the key. The following sample code shows how to check for a null condition, where the key is SAMPLE_KEY:

myPort = new WeatherForecastSoapClient();
if (softCodingRecord!= null)
{

((Stub)myPort.getPort())._setProperty(oracle.webservices.ClientConstants.CLIENT
_CONFIG,softCodingRecord);
}

The EnterpriseOne SoftCoding (E1SC) code template is available in JDeveloper for inserting generated code in the business service. To place the template code into the source editor of JDeveloper, type E1SC and press the accelerator (Ctrl+Enter). This will also bring in any associated imports.

10 Working with HTTP Request/Response

This chapter contains the following topics:

- Section 10.1, "Understanding Business Services and HTTP POST"

- Section 10.2, "Using Business Services for an HTTP POST Request"

- Section 10.3, "Listening for an HTTP Post Response"

10.1 Understanding Business Services and HTTP POST

JD Edwards EnterpriseOne enables you to use a business service to communicate with a third-party system using HTTP POST. In this scenario, a business function is invoked by a request from a JD Edwards HTML web client, which in turn calls a business service to make an HTTP POST request. You provide callback information in the posted data for the third-party system to send an asynchronous reply to the request. When the callback reply is received from the third-party system, the published business service, which is included in the callback information, is invoked. The response is returned to the JD Edwards EnterpriseOne HTML web client.

10.2 Using Business Services for an HTTP POST Request

This feature uses the correlation data manager and HTTP adapter service. The correlation data manager maintains correlation data, which is the callback information for HTTP communication. You write code for the business service to get correlation data from the Correlation Data Manager. Correlation data can then be passed in your XML payload or in the HTTP header. You use the HTTP Adapter to post data to external sites. HTTP Adapter uses HTTPPostRequest to send data and HTTPPostResponse to receive a response.

10.2.1 HTTP Adapter Methods

This table identifies the classes that you use with the HTTP Post feature:

Method (API)

Description

HTTPAdapterService

Provides utilities to post messages to external HTTP services.

HTTPPOSTRequest

Represents the request format for an HTTP adapter service of a POST operation.

HTTPPOSTResponse

Represents the response format for an HTTP adapter service of a POST operation.

BSSVCorrelationDataManager

Provides access to correlation data. Correlation data provides the callback information for asynchronous HTTP communication.

10.2.2 Correlation Data Management

Correlation data provides the information that the third-party system needs to respond to the JD Edwards EnterpriseOne request. Correlation data consists of this information:

- Callback HTTP listener servlet.

- UserName/environment/role/token for authentication.

- Callback published business service name.

- Callback published business service method.

- DXAPIROUTE information.

10.2.2.1 Accessing the Correlation Data Manager

The correlation data is compiled into a URL that is provided to the third-party system. The third-party system uses this information to post data to the business service. Access to correlation data is provided through the CorrelationDataManager interface.

This code sample shows how to access the correlation data manager:

IBSSVCorrelationDataManager correlationData = context.getBSSVCorrelationData
Manager();

The business service sets the business service name, method, and callback business function in the correlation data. These are the methods that the business service uses:

void setCallbackBSSVName(java.lang.StringbssvName)
void setCallbackBSSVMethod(java.lang.String bssvMethod)
void setXAPICallbackBSFN(java.lang.StringxapiCallbackBSFN)

This sample code shows how to use these methods:

correlationData.setCallbackBSSVName(oracle.e1.bssv.JRH90I33.
RI_HTTPListnerProcessor.java);
correlationData.setCallbackBSSVMethod(receiveRSSRsponse);
correlationData.setXAPICallbackBSFN(NotThereYetBSFN);

10.2.2.2 Getting the Callback URL

The business service gets a callback URL from the CorrelationDataManager. This URL is passed to the third-party system so that the third-party system can post data to the business services server. You use this method for the business function to get the callback URL:

String getCallbackURL (boolean secureMod)

The getCallbackURL method requires a Boolean parameter that indicates whether the callback URL to be created is using secure mode. A secure mode URL is prefixed by https. A nonsecure mode URL is prefixed by http. This table shows the constants that you use to indicate whether the URL is to be secure:

Constant

Description

USE_NON_SECURE_MODE

Use for secureMode parameter if SSL is not required.

USE_SECURE_MODE

Use for secureMode parameter if SSL is required.

10.2.3 Placing Correlation Data in the HTTP Header

You can pass correlation data to the third-party system by placing each data item in the HTTP header. This code sample shows the version of the POST method you should use for putting data items in the HTTP header:

oracle.e1.bssvfoundation.http.HTTPPOSTResponse postMessage(oracle.e1.
bssvfoundation.http.HTTPPOSTRequest p1, int CorrInHeaderMode)

The parameter CorrInHeaderMode specifies whether correlation data needs to be passed in the HTTP header and the format.

This table defines the constants that you can use for the CorrInHeaderMode parameter:

Constant

Description

NO_CORRELATION_IN_HEADER

Tells the method that correlation data is not required in the HTTP header.

CORRELATION_IN_HEADER_WITH_NON_SECURE_CALLBACK

Tells the method to put all correlation data in the HTTP header with a nonsecure (http) callback URL.

CORRELATION_IN_HEADER_WITH_SECURE_CALLBACK

Tells the method to put all correlation data in the HTTP header with a secure (https) callback URL.

This code provides an example of how to use these constants:

res = service.postMessage(req, HTTPAdapterService.CORRELATION_IN_
HEADER_WITH_NON_SECURE_CALLBACK);

10.2.4 Posting Data to External Sites

You use the HTTPAdapterService to post XML data to external sites. You create the HTTPPostRequest object first. HTTPPostRequest contains the XML data to be posted as well as the URL where data is to be posted. Then, depending on whether you are using HTTP or HTTPS, the appropriate method from HTTPAdapterService is invoked to post the data. This example code shows how to use HTTPAdapterService to post XML data to external sites.

//Make HTTP Call
HTTPAdapterService service = context.getHTTPAdapterService();
HTTPPOSTRequest req = new HTTPPOSTRequest(internalVO.getSzPayloadIn());
HTTPPOSTResponse res = null;

req.setUrl(internalVO.getSzURL());

res = service.postMessage(req, HTTPAdapterService.CORRELATION_IN_HEADER_WITH_ NON_⇒
SECURE_CALLBACK);

10.3 Listening for an HTTP Post Response

The business services server uses a listener servlet (HTTPCallbackListenerServlet) to receive incoming messages from third-party systems. Received messages contain callback information, which is used to associate the message with the correct request.

10.3.1 Listener Servlet

The business services server uses the HTTPCallbackListenerServlet to listen for messages from third-party systems. This servlet starts when the business services server is started. The listener servlet listens for incoming XML messages that use HTTP. Third-party web sites must use the callback URL provided by the business services HTTP POST request. The address of the servlet is returned by the getCallbackURL() method. This URL is available in the XML payload or in the HTTP header. The listener servlet is responsible for calling the published business service method that is provided in the callback URL.

Note:
The listener servlet does not require any configuration.

10.3.1.1 HTTPCallbackListenerServlet Process

The listener servlet functions in this way:

- The servlet listens for XML/HTTP messages from external web sites.

- Upon receiving a message, the servlet reads all of the query parameters that were sent as part of the callback URL. If the number of query parameters do not match the number of parameters sent, the servlet throws a ServletException to the third-party web site.

- Next, the query parameters are decoded and the user is authenticated. If authentication fails, the servlet throws a ServletException.

- When authentication succeeds, the servlet sends a response to the external web site indicating that the message was successfully received.

Note:
The servlet does not wait for the response from the published business service call. The servlet returns a standard message received response or throws an exception if the message is not received correctly.

- The servlet then checks whether the authenticated user has authority to call the specified published business service method. If the user has authority, the published business service method is called, and the payload is passed in to the value object of the published business service method. The published business service method called from the listener must follow the methodology requirements.

See Also:

- "Understanding Business Services and HTTP POST" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

10.3.2 Sending the Message to the HTML Web Client

The business service can send a notification message to the JD Edwards EnterpriseOne HTML web client. The business service uses this static method in the BSSVSendXAPIMsgToClinet.java class.

public static void sendNotifyMsgToClient(IContext context, String szData)

This example shows code for sending a notification message:

//Make HTTP Call
HTTPAdapterService service = context.getHTTPAdapterService();
HTTPPOSTRequest req = new HTTPPOSTRequest(internalVO.getSzPayloadIn());
HTTPPOSTResponse res = null;

req.setUrl(internalVO.getSzURL());

res = service.postMessage(req, HTTPAdapterService.CORRELATION_IN_HEADER_WITH_
NON_SECURE_CALLBACK);

11 Using Service Error Recovery

This chapter contains the following topics:

- Section 11.1, "Understanding Service Error Recovery"

- Section 11.2, "Managing Service Errors"

11.1 Understanding Service Error Recovery

You use service error recovery functionality to store the errors that occur after a business function calls a business service. Service error recovery occurs after you call a business service and is used to handle the errors that the calling business function receives from this call. The errors can be from either the jdeCallBusinessService API error codes or from errors in the response (payload) XML.

When one of these types of errors occurs, the system saves data that was generated by the business service in the Services Error Recovery table (F0045). You can then use the Service Error Recovery program (P0045) to review the errors and reprocess the transactions that ended in error. Or you can use the Services Error Recovery batch program (R0045) to reprocess the transactions.

Note:
Service error recovery works only for business functions that use the jdeCallBusinessService API. Additionally, service error recovery can be used only if the returning payload contains a tag called <sz-errors>.

When the jdeCallBusinessService API call is successful, but an error occurs during the execution, the data that is saved in the F0045 is the content of the tag <sz-errors>, which is returned in the payload. This string is saved in the BSSVERR field in the F0045. The rest of the data associated with the transactions that end in error are known by the calling business function, which enables the user to reprocess the transaction using the P0045 or R0045 program.

These fields in the F0045 table are used to reprocess the transaction:

- BSSVPCK - BSSV Package

- SBFMDNM - BSSV Method Name

- BSSVXML - Input XML for BSSV

- BSSVTRTY - BSSV Transaction Type

Note:
The value object contains a field called szErrors that translates to the <sz-errors> XML tag when returned to the business function in the response XML. This is parsed out of the response XML to show the user the errors that are returned from the business service.

Before you can review service errors, or resend the data that was not successfully delivered by the business service, your business services must be coded to format the error strings that are returned to the business functions. The business function then processes and stores the service errors.

This diagram illustrates the process flow for service error recovery:

Figure 11-1 Process flow for service error recovery

The following sections provide an overview of the two parts of the service error recovery flow:

- Recognizing and storing service errors.

- Reviewing errors and resending data.

11.1.1 Recognizing and Storing Service Errors

This section describes how the system recognizes errors and stores them when an error occurs while processing a business service. When you call a business service, it can fail for a number of reasons. The service error recovery flow differs based on the failure reason. The two different flows are based on these types of failure reasons:

- A server connection issue or some other connection issue exists.

- A failure occurs on the third-party end of the process.

In the event of a connection issue:

1. An error status is returned from the business service to the business function.

2. The business function hard-codes the error to 007:FIS.

Note:
The error 007:FIS is hard-coded for the Order Promising and Requisition Self Service business services, but might be different for other business services.

3. The business function invokes the F0045 Log Service Errors business function (B0001250) to write data to the F0045.

In the event of a third-party error:

1. The service receives errors from the third-party system or system errors.

2. The service translates the error codes from the third-party system to JD Edwards EnterpriseOne error codes (DD alias).

3. The service creates a string in the following format:
"n1:alias1|n2:alias2|n3:alias3|...|nx:aliasx"

- if nx = 0: error is at header level, system level, or the error is unique

- nx<>0: transaction detail key where the error occurred

- nx is DD GENKEY (40 characters)

- Aliasx: error alias in E1 format

- Aliasx is DD DTAI (10 characters)

4. The service returns the error string to the calling function by means of the payload in the <sz-errors> tag.

5. The calling function checks the error string.
If the string is greater than 1,999 characters, the business function truncates the string to 1,999 characters. Some Oracle databases do not support more than two fields greater than 2KB in a table, and the XML BLOB field is already more than 2KB in the F0045 table. If the string is truncated, a truncation flag is set and sent to the error recovery business function.

6. If the string is not null, the business function invokes the F0045 Log Service Errors business function (B0001250) to write data to the F0045 table.
The error string is stored as is.

The flows differ in the way that they handle the error string. However, both flows use the F0045 Log Service Errors business function (B0001250) to write the error string to the F0045 table. The errors that occur while the system processes the call to jdeCallBusinessService are returned to the user and written to jdedebug.log.

Note:
The third party might send back multiple errors for one transaction if those errors occur on different detail records.

11.1.2 Reviewing Errors and Resending Data

After the business function processes the errors, you can review those errors using the Service Error Recovery program (P0045). The Service Error Recovery program:

1. Displays the errors in a readable format.
The system uses the Parse Service Error String (B0001270) and Service Error Cache (B0001280) business functions when the user reviews the errors.

2. Unparses the error string, retrieves the error descriptions, and displays the details in a grid.

3. If the truncation flag is set, the system displays a message indicating that the error list was truncated and that more details are available in the service logs.

4. Enables you to cancel the transaction or resend the data associated with the transaction.
The system uses the Consume Business Service business function (B0001260) to resend the xml message.

Additionally, you can use the Services Error Recovery batch program (R0045) to resend the data.

Note:
The error string returned from a service must conform to the format documented here; otherwise, the translation of the error details in the Service Error Recovery program might show unexpected results.

These business functions are used to review and reprocess service error information:

- B0001260 – Consume Business Service
This business function locks all records in the F0045 table that have the same key (BSSVPCK, SBFMDNM, GENKEY), fetches records for which the unique key identifier matches the identifier in the data structure and consumes the business service for the specified record.

- B0001270 – Parse Service Error String
This business function parses the BSSVERR error string, which is stored in the F0045 table, and saves records to cache. The function counts the number of error records in the BSSVERR string. It counts the number of pipes "|" and separates the fields when it finds a ":". If more than one record is found, it saves the records in a cache (B0001280). Otherwise, it returns the code and the key.

- B0001280 – Service Error Cache
This business function is a standard cache-managing business function.

11.1.3 Code Sample: Building the Error String and Mapping It to the Message

When you create your business service, you write code that builds the error string and maps it to the message. This business service code sample illustrates how to build the error string and map it to the message list:

//Create error list to concatenate errors for return
StringBuffer errorList = new StringBuffer();

//add message to list
if (errorList != null) {
errorList.append(DELIMITER + msgContext + ":" +
errorsVO.getF34A50_OWERROR());
}

if (!errorList.toString().equals("")) {
internalVO.setSzErrors(errorList.toString().substring(1));
}

11.1.4 Code Sample: Invoking the F0045 Log Service Error Business Function (B0001250)

The code that invokes the B0001250 business function should be the same or similar for all business functions. This is an example of the C code:

/*============================================================
*       Call BSSV API
*============================================================*/
idReturnValue = jdeCallBusinessService(lpDSInternal->lpBhvrCom,
lpDSInternal->lpVoid,
BSSV_PACKAGE,
_J("processProcurement"), TRUE,
szBSSVXMLString,
&szBSSVPayloadReturn);

if ( idReturnValue == CallBSSVNoError)
{
/*  Parse the XML String  */
xrcsStatus = XRCS_parseXMLStringRemoveEncoding(lpDSInternal->hParser,
szBSSVPayloadReturn, &hPayloadDoc);
if(xrcsStatus != XRCS_SUCCESS)
{
jdeTraceSz(NULL, _J("B34A1300 - XRCS_parseXMLStringRemoveEncoding
failed.\n"));
idReturnValue = ER_ERROR;
}
else
{
/* Get Payload Root Element */
xrcsStatus = XRCS_getDocumentElement(hPayloadDoc,&hPayloadRootElm);
if(xrcsStatus != XRCS_SUCCESS)
{
jdeTraceSz(NULL, _J("B34A1300 - XRCS_getDocumentElement failed for
Payload element.\n"));
idReturnValue = ER_ERROR;
}
else
{
/* Get Tag Element */
xrcsStatus = XRCS_getElementsByTagName(hPayloadRootElm,
_J("sz-errors"), &hElm,&nElmCount);
if(xrcsStatus != XRCS_SUCCESS)
{
jdeTraceSz(NULL, _J("B34A1300 - XRCS_getElementsByTagName failed
for szError tag.\n"));
idReturnValue = ER_ERROR;
}
else
{
/* Retrieve tag szErrors from bssvPayloadReturn into szBSSVError
string */
if(nElmCount > 0 && hElm != (XRCS_hElement*) NULL)
{
XRCS_getElementText(hElm[0],&szXMLText);
jdeStrncpyTerminate((JCHAR *)szBSSVError, szXMLText,DIM
(szBSSVError)) ;

idReturnValue = ER_ERROR;
if (jdeStrlen( szXMLText ) > MAX_ERR_LEN)
{
dsD0001250A.cServiceErrorTruncationFlag = _J('1');
}
bCallErrorRecovery = TRUE;
}
else
{
jdeTraceSz(NULL, _J("B34A1300 - Service consumed successfully.\
n"));
}                                        }
}
}/* end else parse error */
} /* ed if no error in BSSV */
else
{
/* Error when connecting to BSSV - Assign "0:007FIS" to BSSVERR */
jdeStrncpyTerminate((JCHAR *)szBSSVError, (const JCHAR *)_J("0:007FIS"),
DIM (szBSSVError)) ;
bCallErrorRecovery = TRUE;
idReturnValue = ER_ERROR;
}

if ( bCallErrorRecovery )
{
/* Call B0001250 */
dsD0001250A.idBSSVDocHandle = (ID)jdeStoreDataPtr(lpDSInternal->hUser,
lpDSInternal->hDoc);
dsD0001250A.cSuppressErrorMessage = _J('1');
jdeStrncpyTerminate(dsD0001250A.szBSSVPackage,
BSSV_PACKAGE,
DIM(dsD0001250A.szBSSVPackage));
jdeStrncpyTerminate(dsD0001250A.szBSSVMethodName,
(const JCHAR *)_J("processProcurement"),
DIM(dsD0001250A.szBSSVMethodName));
jdeStrncpyTerminate((JCHAR *)szPipe, (const JCHAR *)_J("|"),DIM (szPipe));
FormatMathNumeric(szOrderNumber, &lpdsD4302470A->mnOrderNumber) ;
jdeStrcat(szOrderNumber, szPipe);
jdeStrcat(szOrderNumber, lpdsD4302470A->szOrderType);
jdeStrcat(szOrderNumber, szPipe);
jdeStrcat(szOrderNumber, lpdsD4302470A->szOrderCompany);
jdeStrcat(szOrderNumber, szPipe);
jdeStrcat(szOrderNumber, lpdsD4302470A->szOrderSuffix);
jdeStrncpyTerminate((JCHAR *)dsD0001250A.szTransactionKey,
szOrderNumber,DIM (dsD0001250A.szTransactionKey)) ;
dsD0001250A.cActionCode = lpdsD4302470A->cOrderAction;
jdeStrncpyTerminate((JCHAR *)dsD0001250A.szBSSVTransactionType,
(const JCHAR *)_J("AUTO"),DIM (dsD0001250A.szBSSVTransactionType)) ;
jdeStrncpyTerminate((JCHAR *)dsD0001250A.szBSSVError, szBSSVError,DIM
(dsD0001250A.szBSSVError)) ;
jdeStrncpyTerminate((JCHAR *)dsD0001250A.szProgramId,
(const JCHAR *)_J("B34A1300"),DIM (dsD0001250A.szProgramId)) ;
jdeUTime_SetCurrentTime(&dsD0001250A.UniversalDateUpdated);
jdeStrncpyTerminate((JCHAR *)dsD0001250A.szCallingFunctionCode,
lpDS->szCallingBusinessFunction, DIM (dsD0001250A.szCallingFunctionCode));

idReturnValue = jdeCallObject(_J("F0045LogServicesError"),
NULL, lpDSInternal->lpBhvrCom,
lpDSInternal->lpVoid,&dsD0001250A,
(CALLMAP*)NULL,(int)0,(JCHAR*)NULL,
(JCHAR*)NULL,(int)0);

if (idReturnValue == ER_ERROR)
{
jdeTraceSz(NULL, _J("B34A1300 - Error in call to B0001250:
F0045LogServicesError.\n"));
}

} /* end if bCallErrorRecovery */
}

11.2 Managing Service Errors

This section provides an overview of service error management and discusses how to:

- Set processing options for the Service Error Recovery programs (P0045 and R0045).

- Review service errors and resend data.

- Run the Services Error Recovery program (R0045).

11.2.1 Understanding Service Error Management

If you are using service error recovery functionality, you can use the Service Error Recovery program (P0045) to determine whether the data being sent by your business service was delivered successfully. If the data was not delivered, the system stores the data, along with an error message detailing the reason that the data was not delivered, in the Services Error Recovery table (F0045). The system recovers the errors for a service in sequential order, and each error record in the F0045 is identified by a unique key. Each F0045 record includes:

- The method name, such as processProcurement.

- The service XML.

- The transaction type, which can be manual or auto.

- Reprocess information, which the system uses to determine how many times the record has been reprocessed.
The system uses this information so that the service can be consumed until it succeeds, or until a maximum reprocessing count is reached. When the maximum reprocessing count is reached, the system makes the record inactive.

Because different business transaction information and errors are stored, the transaction key is saved as generic text, in a concatenated format. For example, a procurement transaction key is stored as DOCO|DCTO|KCOO|SFXO. The action code for the transaction is also stored in the F0045. Action codes include:

- 1: Add

- 2: Change

- 3: Delete

The description of the error, user-reserved fields, and audit information is also stored in the F0045 table.

You can review these error messages to determine whether issues with your system or process exist, or whether issues with the receiving system exist. You can also attempt to resend the data until the data is delivered successfully.

11.2.1.1 Resending Data

When you receive error messages, you can resend the data associated with the transaction, or you can delete the transaction. You can resend or delete transactions one at a time, or you can select multiple transactions at once. When you resend the data, the system locks the records that are related to the transactions being processed. You can also specify, using the processing options of the P0045 program, the number of times a record can be reprocessed before the record becomes inactive. If you reach the reprocessing count, and a record becomes inactive before it is sent successfully, you can reactivate the record and attempt to resend it.

Using the Services Error Recovery program (R0045), you can choose to resend all active and inactive records at one time. If you choose to resend inactive records, the system resets those records to active before processing them. Also, if you select a particular record for processing, the system reprocesses all of the records with the same package name in chronological order.

If reprocessing is successful, the record is deleted from the F0045 table, and the P0045 program no longer displays the error message. If the attempt to resend the data was not successful, the reprocess count is updated, and the record remains in the F0045 table.

11.2.1.2 Record Locking

When you attempt to reprocess records using either the P0045 or R0045 program, the system locks a set of records that are associated with the transaction being processed. The system locks all records with the same service package name (BSSVPCK), service method name (SBFMDNM), and transaction key (GENKEY) as the record being processed. The records are unlocked when processing is complete.

11.2.2 Forms Used to Manage Service Errors

Form Name

FormID

Navigation

Usage

Work With Services Error

W0045A

Daily Operations menu (G34A/OP/ATO) Services Error Recovery Alternatively, Adv/Tech Operations menu (G43E31), PO Dispatch Error Recovery (P0045)

Review service errors and resend data.

Service Error Recovery Revisions

W0045C

On the Work With Services Error form, select a record and click the View Errors button.

View error details and update error records.

11.2.3 Setting Processing Options for the Service Error Recovery Programs (P0045 and R0045)

You use processing options to define default processing information for a program.

Note:
The R0045 and P0045 programs both use this set of processing options. However, the P0045 program uses only option 2 in this set of processing options.

11.2.3.1 Process

1. Records to Process:

Specify whether the R0045 program processes only active records from the F0045 table, or all active and inactive records. Active records have a value of A in the REPSTS field. Inactive records have a value of I in the REPSTS field. If you choose to reprocess all records, the system activates all inactive records and changes the reprocess count to 0 (zero) for those records. Values are:

Blank: Process only active records.

1: Process active and inactive records.

2. Reprocess Number:

Specify the maximum number of times that a service can be consumed and fail before the system sets the status to inactive. You must set this processing option to a value greater than zero when the Resend or Delete processing option is blank.

3. Resend or Delete:

Specify whether to resend or delete selected records when running the Service Error Recovery batch program (R0045). Values are:

Blank: Resend selected records.

1: Delete selected records.

11.2.4 Reviewing Service Errors and Resending Data

Access the Work With Services Error form.

BSSV Package (Business Service Package)

Enter the package name of the business service that is associated with the errors that you want to review. For example, to review errors that are generated by the PO Dispatch Processor business service (J43E0030), enter this package name and then click Find:

oracle.e1.bssv.J43E0030.PODispatchProcessor

Rep Num (Reprocess Number)

Review this field to determine how many times the system has attempted to resend the record to the supplier. If the value in this field is greater than the value that is set in the processing options for the allowed number of times to reprocess, the record becomes inactive and the system will not attempt to resend the record. You must manually reactivate the record to reprocess it.

Rep St (Reprocess Status)

Review the value in this field to determine whether the record is active. If the record is active, the system reprocesses the record. If the record is inactive and the R0045 is run, the system ignores the record and does not reprocess it unless you set the processing options of the R0045 program to process inactive records. Values include:

A or Blank: Active

I: Inactive

To resend the record to the external source, select the record, verify that it is active, and click the Resend button.

To review the details of the error associated with a particular record, select the record and then click the View Errors button.

Action Code

Review this field to determine the type of transaction that is in error. Values include:

1: Add a new record.

2: Change an existing record.

3: Delete an existing record.

4: Inquire on an existing record.

11.2.5 Running the Services Error Recovery Program (R0045)

Select Adv/Tech Operations menu (G43E31), PO Dispatch Error Recovery (R0045).

Note:
Two menu options are available with this name. One menu option enables you to access the P0045 program, and the other to access the R0045 program. Hover over the menu option with your mouse to view which program is associated with each menu option.

12 Creating Business Services

This chapter contains the following topics:

- Section 12.1, "Understanding Business Services"

- Section 12.2, "Adding JDeveloper Projects for Business Services"

- Section 12.3, "Creating Published Business Service Classes"

- Section 12.4, "Creating Value Object Classes"

- Section 12.5, "Creating Business Service Classes"

- Section 12.6, "Creating Business Function Calls"

- Section 12.7, "Creating Database Operation Calls"

12.1 Understanding Business Services

Published business services are Java classes that manage and run business services. Business services are Java classes that have one or more methods. Business service methods call business functions, database operations, and other business services to provide a specific, described unit of work. Business service methods cannot be exposed as web services for public consumption; instead, business service methods are called by the published business service methods. The published business service methods can be exposed as a web service. JD Edwards provides reference implementations that show how to create both published business services and business services. You can use the reference implementations as models for creating your own services. The reference implementations are not intended for production; they are for reference only.

You might need to add functionality to an existing published business service. You can do this by creating a new business service that performs the task that you require. After you create a new business service, you need to create a new published business service that calls the business service. As an alternative to creating a new business service, you can create a version of the business service and include the new functionality. Creating business service versions is discussed in the methodology guide.

See "Versioning JD Edwards EnterpriseOne Web Services" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

The concept of value objects is important for understanding JD Edwards EnterpriseOne business services. Value objects are Java classes that manage data. Each published business service method works with two value object classes, an input value object class, and an output value object class. The input and output data are the payload of the web service.

Business service methods use internal value objects. These internal value objects are not published interfaces. A business service method uses one internal value object for both input and output data. The methodology guide provides an overview of value objects for both published business services and business services.

To help you create the Java classes, JDeveloper provides these wizards:

- Published Business Service Class Wizard.

- Business Function Value Object Class Wizard.

- Database Value Object Class Wizard.

- Business Service Class Wizard.

Each of the wizards takes you through a series of steps, prompting you for information or prompting you to select an item. When you complete the series of steps, the wizard generates code that is stored as a Java file in the project that you selected before you started the wizard. The code that the wizard generates is displayed in the JDeveloper edit pane. The generated code has TODO tags to help you complete it. JDeveloper also provides visual aids, such as icons on the left-hand side of the editor and colored indicators on the right-hand side of the editor, to help you complete the code.

The first time that you launch a JDeveloper wizard within a user session, the authentication page appears. If credentials are configured, the authentication page opens with that information. You can overwrite the default credentials.

You can have a published business service class or business service class that contains more than one method. However, the Published Business Service Class Wizard and the Business Service Class Wizard create code for only one method. You add additional methods at the end of the protected method created by the wizard by applying a code template or by copying and pasting the method created by the wizard. This table identifies the code templates that are available in JDeveloper for you to use with JD Edwards EnterpriseOne business services:

Template

Name

Usage

E1DF

JD Edwards EnterpriseOne Data Formatter

Use when creating a business service to generate code that formats data that comes from the published value object.

E1JD

JD Edwards EnterpriseOne Java Doc for Published Members

Use when creating a published value object class to generate code for creating Javadoc.

E1JDI

JD Edwards EnterpriseOne Java Doc for Internal Members

Use when creating a value object class to generate code for Javadoc.

E1PM

JD Edwards EnterpriseOne Published Business Service Method Call

Use when adding a method to a published business service to generate code for the new public and private methods.

E1SC

JD Edwards EnterpriseOne Configure Web Service Proxy with Soft Coding Record

Use when creating a business service that calls an external web service to generate code for configuring the web service proxy with a softcoding record.

E1SD

JD Edwards EnterpriseOne Add Call to Service Property with Default Value

Use when creating a business service to generate code to call a service property.

E1SM

JD Edwards EnterpriseOne Business Service Method Call

Use when adding a method to a business service class to generate code for the new method.

E1TEST

JD Edwards EnterpriseOne Test Harness Class

Use when creating a test harness main method to test a published business service class.

You access a code template within the Java code. You place your cursor where you want to create the generated code and press Ctrl+Enter. A list of code templates is displayed on a context menu. Select the appropriate template from the list to generate the code.

See Also:

- Business Services Framework.

- "Published Business Services" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

- JD Edwards EnterpriseOne Tools Reference Implementation Guide on the My Oracle Support Web site.

12.1.1 Prerequisites

Before you complete the tasks in this section, verify that:

- JD Edwards EnterpriseOne is installed and running.

- The MTR version of JDeveloper is installed and running.

- JDeveloper is launched from Object Management Workbench (OMW).

- You do not use JDK 1.6 specific APIs in your business logic if you want to develop business services for OAS, WAS, and WebLogic all together.

12.1.2 Common Elements Used in This Chapter

Back Button

Click this button to return to a previous wizard page. A Back button is on all pages of any JD Edwards EnterpriseOne wizard that you run from JDeveloper.

Cancel Button

Click this button to cancel your entries and to close the wizard. A Cancel button is on all pages of any JD Edwards EnterpriseOne wizard that you run from JDeveloper.

Description

Enter text that describes the JD Edwards EnterpriseOne business function, table, or business view.

Environment

Enter the name of the JD Edwards EnterpriseOne environment in which you are working.

Finish Button

When you click this button, the wizard processes your request, closes the wizard, and returns you to JDeveloper. The Finish button is on all pages of any JD Edwards EnterpriseOne wizard that you run from JDeveloper. This button is unavailable until you have responded to all wizard requests.

Function Name

Enter the name of the business function. On wizard search pages, you can use wildcards when searching for a name, for example, *JDE*.

Help Button

Click this button to access the help feature. A Help button is on all pages of any JD Edwards EnterpriseOne wizard that you run from JDeveloper.

Library

The DLL in JD Edwards EnterpriseOne to which a business function belongs. The library name consists of the DLL name and functional group.

Module/Object Name

The OMW object name of the business function, table, or business view.

Next Button

Click this button to go to the next wizard page. The Next button is on all pages of any JD Edwards EnterpriseOne wizard that you run from JDeveloper.

Object Type

A category that allows you to select either a JD Edwards EnterpriseOne table or business view as a search option. If you completed the Object Name field, you must select the object type that is consistent with the object name. For example, if you typed FO* in the Object Name field, you must select Table as your object type. If you typed V0* in the Object Name field, you must select business view as your object type.

Password

Enter your JD Edwards EnterpriseOne password.

Reporting System Code

A user-defined code (UDC) that identifies a system or product. This code often is the same as the system code and is used for reporting purposes. On wizard search pages, you can use wildcards when searching for a reporting system code, for example, H*.

Role

Enter your JD Edwards EnterpriseOne role.

System Code

A JD Edwards EnterpriseOne-defined code that identifies a system or product, for example, 42 for Sales Order. On wizard search pages, you can use wildcards when searching for a system code, for example, 4*.

System Code and Product code are used interchangeably.

User Name

The valid name of the individual who is accessing JD Edwards EnterpriseOne.

12.2 Adding JDeveloper Projects for Business Services

This section provides an overview of JDeveloper projects for business services and discusses how to add a new project for JD Edwards EnterpriseOne.

12.2.1 Understanding JDeveloper Projects for Business Services

You access JDeveloper from JD Edwards EnterpriseOne OMW. You should have one business service workspace in JDeveloper. This workspace should have been created when JDeveloper was launched from OMW. Each published business service and business service has its own project under the business service workspace, where you can add and modify code for published business services and business services that were created using OMW. The JDeveloper project name matches the business service name in OMW. Naming conventions for JD Edwards business service classes are discussed in the Development Methodology Guide. When you create new business services, you develop each published business service and business service within its own project in JDeveloper. A JDeveloper workspace can have many projects.

When you are in OMW, you can create more than one business service object. When you launch JDeveloper, it is launched for a specific business service object, and only the JDeveloper project for that business service is added to the workspace. You can add additional JDeveloper projects for other business services by closing JDeveloper and relaunching it from OMW for other business services or by choosing New EnterpriseOne Project from the workspace context menu. Business services must be added in OMW prior to working with them in JDeveloper.

Sample business services that you can use as a reference for implementing your business services are included in your software delivery. You use OMW and JDeveloper to review the code for these reference implementations, as you would for any other business service.

See Also:

- "Package Naming and Structure" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

- JD Edwards EnterpriseOne Tools Interoperability Reference Implementations Guide on the My Oracle Support Web site.

12.2.2 Adding a New Project

To add a new project for a business service:

1. Access the business service workspace in JDeveloper

2. In the navigation pane, right-click the workspace name.

3. From the context menu, click New EnterpriseOne Project.

4. Type the existing OMW project name, and then click Finish.

5. Save the file.

The business service that you previously created in OMW appears in the JDeveloper navigation pane under the business services workspace. The project has a package name—the package prefix is the prefix specified in OMW and the last portion of the package name is the OMW object name. Any Java classes or other artifacts associated with that business service object is included as a part of the JDeveloper project.

12.3 Creating Published Business Service Classes

This section provides an overview of published business service classes and discusses how to run the Published Business Service Class Wizard.

12.3.1 Understanding Published Business Service Classes

Published business services are exposed as web services for public consumption. You can create a published business service to meet your specific needs. A published business service is composed of one or more business services, which perform specific tasks. The methodology guide provides naming conventions as well as instructions and guidelines for creating new published business services.

You use the Published Business Service Class Wizard to create the published business service Java class.

See Also:

- "Understanding Published Business Services" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

12.3.2 Running the Published Business Service Class Wizard

The Published Business Service Class Wizard creates a new published business service class by extending the business service framework PublishedBusinessService class. This foundation class, along with other business service framework foundation classes, provides the building blocks for you to create a new published business service class.

The wizard steps you through a series of tasks, prompting you for information for naming the class, the method, the input value object, and the output value object. As a final step, the wizard generates Java code for the published business service class and displays this generated code in the edit pane of JDeveloper.

You can use the prompts, visual aids, and TODO tags to complete the generated code. As previously discussed, JD Edwards EnterpriseOne provides code templates that you can apply to the generated code. If the published business service requires more than one method, you must add code for each additional method.

To run the Published Business Service Class Wizard:

1. In the JDeveloper navigation pane, select the project.

2. Right-click the project.

3. From the context menu, click New.

4. On the new Gallery window, open EnterpriseOne and select Classes, and then select Published Business Service Class.

5. Click OK to launch the wizard.

6. On the Create EnterpriseOne Published Business Service Class page, complete these fields:

- Name

- Method Name

- Input Class

- Return Class

7. Click OK.
JDeveloper displays the generated code in the edit pane.

8. Update the generated code.

9. From the JDeveloper File menu, save and exit the code.
The published business service class is saved in the project that you selected. You can open the class and the code by double-clicking the Java file.

Name

A user-defined designation for the published business service class. This name is usually the description name of the system code with Manager added at the end of the name, for example, AddressBookManager.

Method Name

A user-defined designation for a business service. In the published business service, the method name is the same name as the business service name that is called.

Input Class

A user-defined designation for the input value object class for the published business service. Each business service or business method called by the published business service must have an input class in the published value object.

Return Class

A user-defined designation for the output value object class for the published business service. Each business service or business method called by the published business service must have an output class in the published value object.

12.4 Creating Value Object Classes

This section provides an overview of value object classes and discusses how to:

- Run the Business Function Value Object Wizard.

- Run the Database Operation Value Object Wizard.

12.4.1 Understanding Value Object Classes

Value objects are Java classes that manage data. The input and output parameters of the published business service methods are called value objects. These parameters are the payload of the web service. A method defined in a published business service takes one value object as its input parameter and returns one value object as its output parameter. The input and output parameters of business service operations are called internal value objects. Business service internal value objects are not published interfaces. Business service operations use one internal value object for both input and output.

The business service foundation provides wizards to help you create value object classes that follow methodology rules and guidelines. You use the Business Function Value Object Wizard to create value objects that are based on data structures defined within a business function. You use the Database Operation Value Object Wizard to create value objects that are based on database tables or business views for database operations.

The methodology guide provides naming conventions as well as rules and guidelines for creating published value object classes and internal value object classes.

See Also:

- "Understanding Business Services" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

12.4.2 Running the Business Function Value Object Class Wizard

You use the Business Function Value Object Wizard to create value objects that are based on data structures defined within a business function.

The Business Function Value Object Wizard guides you through a series of tasks to create value objects based on a business function data structure. You use the wizard to search for and find an existing business function to use as a model. The business function that you select should have all of the input and output parameters that are required for your new value object. You can select all or some of the business function parameters to include in your value object class. At the end of the process, the wizard generates code for the value object.

If you are creating a published business service, each business service method must have an input value object and an output value object. If a published business service calls two or more business services that have the same input or output parameters, the business services can share the appropriate input or output value object.

The wizard provides different ways for you to find an existing business function. On the wizard search page you can use the Find button to return all business functions in JD Edwards EnterpriseOne. You can scroll through all of the business functions and select one. If you have some information about the business function that you want to use, you can enter information in one or more of the search fields to filter the search. You can use wildcards in the search fields. For example, if you know the business function name has a 4 in it, you can use *4* in the Object Name field. If you know the name of the business function, you can use the Advanced Search feature to find the business function.

To run the Business Function Value Object Class Wizard:

1. In the JDeveloper navigation pane, select the project.

2. Right-click the project.

3. From the context menu, click New.

4. On the New Gallery window, open EnterpriseOne and select Classes, and then select Business Function Value Object Class.

5. Click OK to launch the wizard.

6. On the Create EnterpriseOne Business Function Value Object, click Next.

7. Enter credential information if required, and then click Next.

8. On the wizard search page, find a business function by performing one of the following actions:

- If you do not have any information about the business function, click Find to list all business functions and scroll through the list. Select a business function and then click Next.

- If you have some information about the business function you want to use, complete one or more of these search fields to filter the list of business functions, and then click Find.
– Object Name

– System Code

– System Code

– Function Name

– Reporting System Code

– Description

– Library

You can use wildcards in any of these search fields.

Select a business function from the search results, and then click Next.

- If you know which business function you want to use, click Advanced Find.
Using the drop-down list box, select the appropriate information for each of these fields, and then click Next:

– Library

– Module/Object Name

– Function Name

9. The next page of the wizard opens showing the attributes of the business function that you selected.
You can sort the names of the parameters by clicking the Name column.

10. Select the parameters that you want to include in your new value object class, and then click Next.
You can select parameters individually by selecting the Include check box in the same row as the parameter that you want. When you select parameters individually, you can display the parameters that you selected by selecting the Display Select Only option. If you want to include all of the parameters in your value object, use the Select All button. Use the Clear All button to clear your selections and start over.

11. On the EnterpriseOne Java Class wizard page, enter the name of the value object that you are creating in the Value Object Name field.
Value object classes for business services should have the same name as the published business service value object name (input or output) prefaced with the word Internal.

12. Select one of these Scope options:

- Publish - if you are creating a value object class for a published business service.

- Internal - if you are creating a value object class for an internal business service.

13. Click Finish.
If the name that you entered for the value object already exists, the wizard sends you a warning message. If the name is a new name, the value object Java file appears in the JDeveloper navigation pane under the project that you selected. Generated code is displayed in the JDeveloper edit pane.

14. Use the visual aids and TODO tags to help you complete the generated code.

15. To create accessors for the members in the value object Java file, right-click anywhere in the generated code.

16. From the context menu, select generate accessors.
The Generate Accessors dialog window appears.

17. To select all members, click on the top-level check box.

18. Click OK.

19. Save the value object Java file.

12.4.3 Running the Database Operation Value Object Wizard

You use the Database Operation Value Object Wizard to create value objects that are based on database tables or business views. The Database Operation Value Object Wizard guides you through a series of tasks to create value objects based on a database schema. You use the wizard to search for and find an existing table or business view. The table (business view) that you select should have all of the fields that are required for your new value object class. The wizard automatically selects all of the key fields in the table (business view). At the end of the process, the wizard generates code for the value object class and displays the code in the JDeveloper edit pane.

If you are creating a published business service, you run the wizard twice, once to create an input value object class and once to create an output value object class. If the published business service has more than one method, you run the wizard twice for each method. If you are creating a business service, you run the wizard once to create the internal value object, which has both input and output parameters. If the business service has more than one method, you run the wizard multiple times to create an internal value object for each method.

The wizard provides three ways for you to find an existing table (business view). On the wizard search page, you select either the Table or Business View option. You can use the Find button to return all tables or business views in JD Edwards EnterpriseOne, and then scroll through the results and select one. If you have some information about the table or business view that you want to use, you can enter information in one or more of the search fields to filter the search. You can use wildcards in the search fields. For example, if you know the object name has a 4 in it, you can use *4* in the Object Name field. Scroll through the results and select the appropriate table or business view. If you know the name of the table or business view, you can use the Advanced Search feature to find the table or business view.

The methodology guide provides rules and guidelines for creating published value objects and internal value objects for each type of database operation (Select, Insert, Update, and Delete). Naming conventions for the value object classes for both published business service and business service are discussed by database operation type.

To create a database value object:

1. In the JDeveloper navigation pane, select the project.

2. Right-click the project.

3. From the context menu, click New.

4. On the New Gallery window, open EnterpriseOne and select Classes, and then select Database Value Object Class.

5. Click OK to launch the wizard that creates a value object class.

6. On the Create EnterpriseOne Database Value Object Class, click Next.

7. Enter credential information if required, and then click Next.

8. On the wizard search page, select one of these object types:

- Table

- Business View

9. Find a table (business view) by performing one of the following actions:

- If you do not have any information about the table (business view), click Find to list all tables (business views) and scroll through the list. Select a table (business view).

- If you have some information about the table (business view) that you want to use, complete one or more of these search fields to filter the search, and then click Find:
– Object Name

– System Code

– Description

– Reporting System Code

You can use wildcards in any of these search fields.

Select a table (business view) from the search results, and then click Next.

- If you know which table (business view) you want to use, click Advanced Find.
Using the drop-down list box, select the appropriate information for each of these fields, and then click Next:

– Object Type

– Object Name

10. The next page of the wizard opens showing the attributes of the table (business view) that you selected.

11. Select the parameters that you want to include in your new value object class, and then click Next.
You can select parameters individually by selecting the Include check box in the same row as the parameter that you want. When you select parameters individually, you can display only the parameters that you selected by selecting the Display Select Only option. If you want to include all of the parameters in your value object, use the Select All button. Use the Clear All button to clear your selections and start over.

12. On the EnterpriseOne Java Class page, enter the name of the value object that you are creating in the Value Object Name field.

13. Select one of these Scope options:

- Publish – if you are creating a value object class for a published business service.

- Internal – if you are creating a value object class for an internal business service.

14. Click Finish.
If the name you entered for the value object already exists, the wizard sends you a warning message. If the name is a new name, the value object Java file appears in the JDeveloper editor under the project that you selected.

15. JDeveloper displays the generated code in the edit pane.

16. Use the visual aids and TODO tags to help you complete the generated code.

17. To create accessors for the members in the value object Java file, right-click anywhere in the generated code.

18. From the context menu, select generate accessors.
The Generate Accessors dialog window appears.

19. To select all members, click the top-level check box.

20. Click OK.

21. Save the value object Java file.

See "Database Exceptions" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

12.5 Creating Business Service Classes

This section provides an overview of business service classes and discusses how to run the Business Service Class Wizard.

12.5.1 Understanding Business Service Classes

Business service classes are internal only. A business service method provides the business logic for performing a specific task and is exposed to the public by being included in a published business service. A business service method can call one or more business functions or database operations to perform a specific task, and it can call another business service. The methodology guide provides naming conventions as well as rules and guidelines for creating business services.

You use the Business Service Class Wizard to create the business service class.

12.5.2 Running the Business Service Class Wizard

The Business Service Class Wizard creates a new business service class by extending the business service framework BusinessService class. This foundation class, along with other framework foundation classes, provides the building blocks for you to create a new business service class.

The wizard steps you through a series of tasks, prompting you for information for naming the class, the method, and the internal value object. As a final step, the wizard generates code for the business service class and displays this code in the edit pane of JDeveloper.

JDeveloper provides prompts and visual aids help you complete the generated code. The generated code also has TODO tags to help you. If the business service class requires more than one method, you must add code for each additional method. JD Edwards EnterpriseOne provides code templates that you can apply to the generated code. The methodology guide provides naming conventions for the various elements of the business service, and it also provides detail guidance for creating a business service.

To run the Business Service Class Wizard:

1. In the JDeveloper navigation pane, select the project.

2. Right-click the project.

3. From the context menu, click New.

4. On the New Gallery window, open EnterpriseOne and select Classes, and then select Business Service Class.

5. Click OK to launch the wizard.

6. On the Create EnterpriseOne Business Service Class, complete these fields:

- Name

- Method Name

- Input Class

7. Click OK.
JDeveloper displays the generated code in the edit pane.

8. Update the generated code.

9. From the JDeveloper File menu, save and exit the code.

The business service class is saved in the project you selected. You can open the class and the code by double-clicking the Java file.

Name

Enter a user-defined designation for the business service class. This name is usually a functional description of the method with the word Processor added at the end of the name, for example, AddressBookProcessor.

Method Name

Enter a user-defined designation for the operation to be performed. This name is usually the same name as the method in the published business service, for example, addAddressBook.

Input Class

Enter the class name for the internal value object.

12.6 Creating Business Function Calls

This section provides an overview of business function calls and discusses how to run the Create Business Function Call Wizard.

12.6.1 Understanding Business Function Calls

A business service method contains the business logic for performing a specific task in JD Edwards EnterpriseOne. You create a business service method that calls a business function. You use the Create Business Function Call Wizard to create a business function call and the accompanying code. The business service method must exist before you can use the Create Business Function Call Wizard.

The methodology guide provides rules and guidelines for creating business services.

See Also:

- "Understanding Business Services" in the JD Edwards EnterpriseOne Tools Business Services Development Methodology Guide.

12.6.2 Running the Create Business Function Call Wizard

The business service framework provides a Create Business Function Call Wizard that generates Java code for calling a business function. You create a business function call in the code already created by the Create Business Service Wizard. You must be at an appropriate location within the code to create the business call method. A TODO tag should be available to help you find this location. The Create Business Function Call Wizard helps you select a business function to use for creating your new business function call.

To run the Create Business Function Call Wizard:

1. Open the Java file for the business service.

2. In the JDeveloper editor pane, place the cursor at a valid position for inserting the Java logic.

3. From the context menu, select EnterpriseOne, and then select Create Business Function Call.
If Create Business Function Call is disabled on the context menu, the cursor is not at a valid position in the code.

4. The Business Function Call Wizard is launched.

5. Click Next.
If the authentication page appears, enter your credentials, and then click Next.

6. On the wizard search page, find an existing business function by performing one of the following actions:

- If you do not have any information about the business function, click Find to list all business functions and scroll through the list. Select a business function and then click Next.

- If you have some information about the business function you want to use, complete one or more of these search fields to filter the list of business functions, and then click Find.
– Object Name

– System Code

– Function Name

– Reporting System Code

– Description

– Library

You can use wildcards in any of these search fields.

Scroll through the results to find a business function. If the Next Page button is active, click it to see additional results, which are added to the bottom of the list, and continue to scroll.

If you use the Find button to find a business function, select a business function from the search results and then click Next.

- If you know which business function you want to use, click Advanced Find.
Using the drop-down list box, select the appropriate information for each of these fields, and then click Next:

– Library

– Module/Object Name

– Function Name

7. The next page of the wizard opens showing the attributes of the business function that you selected.

8. Select the parameters that you want to include in your new value object class.
You can select parameters individually by selecting the Include check box in the same row as the parameter that you want. When you select parameters individually, you can display the parameters that you selected by selecting the Display Select Only option. If you want to include all of the parameters in your value object, use the Select All button. Use the Clear All button to clear your selections and start over.

9. Click Finish.
The Java code is updated with the business function call and accompanying code, which you must complete.

12.7 Creating Database Operation Calls

This section provides an overview of database operation calls and discusses how to:

- Run the Create Database Call Wizard.

- Create a Select Database Operation Call.

- Create an Insert Database Operation Call.

- Create an Update Database Operation Call.

- Create a Delete Database Operation Call.

12.7.1 Understanding Database Operation Calls

You can create business services that call select, insert, update, and delete database operations. A select operation retrieves information from JD Edwards EnterpriseOne. Select and query database operations are synonymous. An insert operation adds information to a JD Edwards EnterpriseOne table or business view. An update operation modifies existing information in a JD Edwards EnterpriseOne table or business view. A delete operation removes information from a JD Edwards EnterpriseOne table or business view. You can create a select operation to directly query against the JD Edwards EnterpriseOne tables and business views.

12.7.2 Running the Create Database Call Wizard

The business services framework provides a Create Database Call Wizard that generates Java code for calling a database operation. You create a database call in the code already created by the Create Business Service Wizard. You must be at an appropriate location within the code to create the database call method. A TODO tag should be available to help you find this location. The Create Database Call Wizard helps you select a table or business view to use for your new database operation call. After you launch the wizard, it displays a page that has the following database operations:

- Select

- Insert

- Update

- Delete

After you select the type of database operation you want to use, the wizard helps you search for a table or business view to use in your database operation call. The wizard then guides you through a series of steps prompting you for information.

After you specify the appropriate information, the wizard creates a conceptual SQL statement that you can preview. If the SQL statement does not show what you need, you can return and change your specifications. When you are satisfied with your selections, the Database Call Wizard generates the call and accompanying code, which is unique for the database operation that you selected.

The Create Database Call Wizard allows the data types and operations identified in this table:

Data Type

Data Type Shown in Wizard

Allowed Operators

EVDT_CHAR

Character

=, >, >=, <, <=, <>

EVDT_JDEDATE

Date

=, >, >=, <, <=, <>

EVD_INT

Integer

=, >, >=, <, <=, <>

EVDT_LONGVARCHAR

Character (BLOB)

Not allowed in WHERE clause

EVDT_LONGVARBINARY

Binary (BLOB)

Not allowed in WHERE clause

EVDT_STRING

String

=, >, >=, <, <=, <>, LIKE If size is greater than 255, Oracle database treats as a BLOB, which is not allowed in WHERE clause

EVDT_VARSTRING

Variable String

Not allowed in WHERE clause

EVDT_JDEUTIME

JDE Utime

=, >, >=, <, <=, <>

EVDT_MATH_NUMERIC

Numeric

=, >, >=, <, <=, <>

EVDT_ID

Identifier (ID)

=, >, >=, <, <=, <>

To run the Database Call Wizard:

1. Open the Java file for the business service.

2. In the JDeveloper editor pane, place the cursor at a valid position for inserting the Java method.

3. From the context menu, select EnterpriseOne, and then select Create Database Call.
If Create Database Call is disabled on the context menu, the cursor is not at a valid position in the code.

4. Click Next.

5. On the Create EnterpriseOne Database Call introduction window, click Next.
If the authentication page appears, enter your credentials, and then click Next.

6. On the Select a Database Operation page, select a database operation and then click Next.

7. On the wizard search page, select one of these object types:

- Table

- Business View

8. Find a table (business view) by performing one of the following tasks:

- If you do not have any information about the table (business view), click Find to list all tables (business views) and scroll through the list. Select a table (business view).

- If you have some information about the table (business view) you want to use, complete one or more of these search fields to filter the search, and then click Find:
– Object Name

– System Code

– Description

– Reporting System Code

You can use wild cards in any of these search fields.

Select a table (business view) from the search results, and then click Next.

- If you know which table (business view) you want to use, click Advanced Find.
Using the drop-down list box, select the appropriate information for each of these fields, and then click Next:

– Object Type

– Object Name

9. The next page of the wizard opens showing the operation that you selected along with the attributes of the table (business view) that you selected.

10. Depending on the database call operation you are creating, go to one of these tasks in this guide:

- Create a Select database operation.

- Create an Insert database operation.

- Create an Update database operation.

- Create a Delete database operation.

12.7.3 Creating a Select Database Operation Call

If you selected the Select Database Operation, the wizard opens the Select Operation main page and displays the attributes of the table (business view) that you selected for the Select operation. The Select operation main page has three tabs: Select Columns, Where Clause, and Order by Columns.

12.7.3.1 Select Columns Tab

The Select Columns tab shows all of the columns that are available in the table or business view that you selected. Each column from the table (business view) is displayed as a row, and includes the column name, description of the column, and column type, and indicates whether the column is a primary key. You can sort the rows by clicking in any of the column headers. For example, when you click the column header Column Name, you can sort the rows in ascending, descending, or default order by column name.

From the table (business view), you select the columns that you want to use in your Select database operation. You can select specific columns by selecting the check box in the appropriate row, or you can select all of the columns by clicking the Select All button. If you did not select all columns, you can select the Display Selected Only option to show those columns that you selected. You can clear all of your selections by clicking the Clear All button.

The Fetch All Records option and Select Distinct option are used by the system at runtime. The Fetch All Records option works with tables and business views and fetches all records that meet the search criteria. The Select Distinct option works with both tables and business views, but is more commonly used with business views. When many records meet the search criteria, you can use the Select Distinct option to select only one record for the search criteria instead of selecting all of the records. If you do not select this option, then the system returns all occurrences of these records, including all detail lines.

12.7.3.2 Where Clause Tab

You use the where clause to filter the data for your Select database operation. You can set conditions for one or more of the column names that you have selected. To add a where clause, click the Add Where Clause button. After you add a column, you can click the column name and select a new name from the drop-down list box. To remove a where clause from your operation, select the attribute that you want to remove and then click the Remove Where Clause button. You change the condition (and/or) by clicking the condition in the row that you want and selecting a condition from the drop-down list box. You change the operator by clicking the operator in the row that you want to change and selecting an operation from the drop-down list box.

The Exclude If Value Is Null option is used by the system for code generation. If you select this option, conditional logic is added to the generated code to not include fields with a null value. If a field has a null value, the field is not included in the where clause. The system builds the where clause using only those value object fields that are not null.

12.7.3.3 Order by Columns Tab

Use the Order by Columns tab to specify how you want the system to display the results. You specify sort criteria for the columns that you have selected and the order of the records for each column. Click the Add ordering button to add a column name, then change the column name by clicking the column name in the row that you want to change and selecting a new name from the drop-down list box. Use the Move Up and Move Down buttons to change the order of the column names that you enter. You can specify the order of the records within a column to be ascending or descending by selecting the row that has the column name and then clicking the ASC or DESC name under the Ordering column and selecting a new order from the drop-down list box.

After you complete the specifications for your Select call, click Next to see a preview page. The preview page shows a conceptual SQL statement based on the specifications you have entered. You can use the Back button to return to a previous page and modify your specifications. When you are satisfied with the specifications you have entered, click Finish. The wizard creates a Select database operation call where your cursor is located in the business service code, and it produces accompanying code. You must modify the Select call to include the appropriate value objects and to complete the generated code.

12.7.4 Creating an Insert Database Operation Call

If you selected the Insert database operation, the wizard opens the Insert Operation main page and displays information from the table or business view that you selected. The Insert operation main page has only one tab, Insert Columns.

The Insert Columns tab shows all of the columns that are available in the table (business view) that you selected. Each column from the table (business view) is displayed as a row and includes the column name, description of the column, column type, and column length, and indicates whether the column is a primary key. You can sort the rows by clicking in a column header. For example, when you click the Column Name header, you can sort the rows in ascending, descending, or default order by column name. You can sort by any one of the column headers.

From the table or business view, you select the columns that you want to use in your Insert database operation. You can select specific columns by selecting the check box in the appropriate row, or you can select all of the columns by clicking the Select All button. If you did not select all columns, you can select the Display Selected Only option to show only those columns that you selected for your Insert operation. You can clear all of your selections by clicking the Clear all button.

After you select the columns you want to use in your Insert database operation, click Next to see a preview page. The preview page shows a conceptual SQL statement. You can use the Back button to return to a previous page and select or clear columns from the table or business view. When you are satisfied with your selections, click Finish. The wizard creates an Insert database operation call where your cursor is located, and it produces accompanying code. You must modify the Insert call to include the appropriate value objects and you should review the generated code and update as necessary.

12.7.5 Creating an Update Database Operation Call

If you selected the Update database operation, the wizard opens the Update operation main page and displays information from the table or business view that you selected. The Update operation main page has two tabs, Update Columns and Where Clause.

12.7.5.1 Update Columns Tab

The Select Columns tab shows all of the columns that are available in the table (business view) that you selected. Each column from the table or business view is displayed as a row, and includes the column name, description of the column, and column type, and indicates whether the column is a primary key. You can sort the rows by clicking in a column header. For example, when you click the Column Name header, you can sort the rows in ascending, descending, or default order by column name.

12.7.5.2 Where Clause Tab

You use the where clause to set conditions for the attributes in your database operation. To add a where clause, click the Add Where Clause button. After you add a column, you can click the column name and select a new name from the drop-down list box. To remove a where clause from your operation, select the attribute that you want to remove and then click the Remove Where Clause button. You change the condition (and/or) by clicking the condition in the row that you want and selecting a condition from the drop-down list box. You change the operator by clicking the operator in the row that you want to change and selecting an operation from the drop-down list box.

After you complete the specifications for your Update call, click Next to see a preview page. The preview page shows a conceptual SQL statement based on the specifications you have entered. You can use the Back button to return to a previous page and modify your specifications. When you are satisfied with the specifications you have entered, click Finish. The wizard creates an Update database operation call where your cursor is located, and it produces accompanying code. You must modify the Update call to include the appropriate value objects and you must complete the generated code.

12.7.6 Creating a Delete Database Operation Call

If you selected the Delete database operation, the wizard opens the Delete operation main page, which contains no data, but has a Where Clause tab. You add a where clause by clicking the Add Where Clause button. After you add a column, you can click the column name in the row where you want to change the name and select a new name from the drop-down list box. To remove a where clause from your operation, select the attribute that you want to remove and then click the Remove Where Clause button. You change the condition (and/or) by clicking the condition in the row you want and selecting a condition from the drop-down list box. You change the operator by clicking the operator in the row you want to change and selecting an operation from the drop-down list box.

After you specify the information that you want to include in your Delete operation, click Next to see a preview page. The preview page shows a conceptual SQL statement. If you click Next without specifying a where clause, the wizard sends you a warning message. You can use the Back button to return to the Delete operation main page and modify your specifications. When you are satisfied with the specifications you have entered, click Finish. The wizard creates a Delete database operation call where your cursor is located, and it produces accompanying code. You must modify the Delete call to include the appropriate value objects and you should review the generated code and make necessary changes.

A Configuring JDeveloper to Support UTF-8

This appendix contains the following topics:

- Section A.1, "Understanding UTF-8"

- Section A.2, "Configuring Preferences"

- Section A.3, "Configuring Default Project Properties"

- Section A.4, "Configuring a Project"

A.1 Understanding UTF-8

If you use non-English characters or data in your business services, you must configure JDeveloper to support UTF-8. When you set up preferences and default project properties to support UTF-8 encoding, all existing projects and any new projects that you add show the preferences and the default project property as UTF-8 encoding. You must individually set up each project where you have non-English characters or data to show UTF-8 as the encoding value.

You are not required to set up UTF-8 encoding when you test web services.

A.2 Configuring Preferences

To configure preferences to support UTF-8:

1. On JDeveloper, select the Applications folder or any project folder and then select Preferences from the Tools menu.

2. On Preferences, select Environment.

3. In the Environment pane, select UTF8 from the Encoding drop-down list box.

4. Click OK.
All projects in the workspace show UTF8 as the value for the Encoding field when you select Preferences from the Tools menu.

A.3 Configuring Default Project Properties

To configure default project properties to support UTF-8:

1. On JDeveloper, select the Applications folder, the workspace folder, or any project folder, and then select Project Properties from the Tools menu.

2. In the navigation pane on Project Properties, select Compiler.

3. In the Compiler pane, select UTF8 from the Character Encoding drop-down list box.

4. Click OK.
All projects in the workspace show UTF8 as the value for the Character Encoding field when you select Default Project Properties from the Tools menu.

A.4 Configuring a Project

To configure a project to support UTF-8:

1. On JDeveloper, right-click the project folder that will include non-English data, and then select Project Properties from the context menu.

2. In the navigation pane on Project Properties, select Compiler.

3. In the Compiler pane, select UTF8 from the Character Encoding drop-down list box.

4. Click OK.
Only the selected project shows UTF8 as the value for the Character Encoding field.

5. Restart JDeveloper.

You can insert non-English data and run your project.

B Testing a Business Service That Consumes an External Web Service

This appendix contains the following topics:

- Section B.1, "Creating a Test Business Service"

- Section B.2, "Using the Development Business Services Server"

B.1 Creating a Test Business Service

To create a business service that tests the business service that calls a web service and passes an XML file:

1. Create a test business service object in OMW.

2. Move the generated sample XML file to the test business service folder.
See Generating a Sample XML Document

3. Add a call to the TestServiceBusinessFunction.callBSSVWithXMLFile method.

You can use this example code to create a business service to test calling a business service that passes an XML file.

Package oracle.e1.sbf.JTR"H90I10;

Import oracle.e1.sbffoundation.base.TestServiceBusiness Function;
Import oracle.e1.sbffoundation.connection.Iconnection;

Public class RI_AsyncSendEmailProcessor Test {
Public RI_AsyncSendEmailProcessorTest() {
}

public static void main(String[] args) {
Try {
//call required prior to executing test from application (main())
TestServiceBusinessFunction.startTest();
String file = "C:\\B9\STAGINGA\\java\\source\\oracle\\e1\\sbf\\
JTRH90I10\\SendEmailVO1.xml";

TestServiceBusinessFunction.callSBFWithXMLFile("oracle.e1.sbf.JRH90I20.
RI_AsyncSendEmail Processor",
"sendEmail";
File,
IConnection.AUTO);
} finally {
//call required at the end of testing from application (main())
TestServiceBusinessFunction.finishTest();
}
}
}

B.2 Using the Development Business Services Server

You can do end-to-end testing of your outgoing web service calls on a development business services server. You deploy the business service that calls a web service to a local OC4J or WebSphere Express instance. You can then use the web development client to run the application that calls the business function, which in turn calls the business service. You can perform the entire test from your web development client. The development business services server uses the OC4J or WebSphere Express instance that is being used to run HTML applications on the web development client. If you are using OC4J, note that this instance is not the same as the embedded OC4J that starts when business services are run from within JDeveloper.

Before you deploy the development business services server, you must prepare the configuration files. This topic also discusses how to start and stop the development business services server.

B.2.1 Prerequisites

Before you complete the tasks in this section, verify that:

- The web development client is installed and operational.
The development business services server and web development client use the same application (OC4J or WebSphere Express).

- You have a business function that calls a business service method, and you have an application that calls the business function.

- OCM is configured to send business service messages to a local business services server.

B.2.2 Preparing Configuration Files

The development business services server packages the business services server development configuration files, which are in <Path_Code>/ini/sbf), in an EAR file to be deployed.

You edit the JDELOG.PROPERTIES file to get the log files in the required path. The default JDELOG.PROPERTIES file that is installed with the development business services server provides a relative path to the log folder. The JDELOG.PROPERTIES file is in the <Path_Code>/ini/sbf folder. The relative path in the file is evaluated from this folder to get to the log folder location. The relative path changes when you are working with the development business services server. Because the JDELOG.PROPERTIES file is packaged in an EAR file and the EAR file is deployed either in an OC4J or WebSphere instance, the relative path to the log folder may not be valid. Oracle recommends that you use the complete path in JDELOG.PROPERTIES when working with the development business services server.

B.2.3 Deploying a Development Business Services Server

You deploy a development business services server from the JDeveloper Applications Navigator. Right-click the business service workspace, and then select Deploy Development BSSV Server from the context menu.

A dialog box for providing HTTP proxy configurations appears, as illustrated in this diagram:

Figure B-1 Deploy Development Business Services Server

The HTTP proxy server parameters that were previously set in the configuration file are displayed. You can change any of these parameters. If you change the HTTP proxy parameter values while the business services server is running, the server might send a prompt indicating that the server will be restarted. Any existing application sessions on the web development client will be terminated. You should save all work before continuing with the restart.

Deployment time varies based on the various parameters. If you are using WebSphere and deploying for the first time, profile creation could take up to 10 minutes. The deploy status is visible in the JDeveloper status window with the title Apache Ant - Log. You can continue with other work while deployment is in progress. You must not stop the JD Edwards EnterpriseOne Solution Explorer (which also stops the OC4J or WebSphere Express application) while deployment is in progress.

If the development business services server is already installed on the business services server, the previous version is automatically undeployed before the system continues the deployment process. When the deployment is finished, the Apache Ant - Log window displays a message indicating that the build and deploy was successful. The development business services server is now started and ready to accept requests.

B.2.4 Start or Stop a Development Business Services Server on OC4J

The development business services server on a standalone OC4J runs in the same application server instance used for HTML applications. Therefore, when JD Edwards EnterpriseOne Solution Explorer is started or stopped, the development business services server is started or stopped as well.

You can deploy the development business services server as many times as needed. These activities occur for each deployment of the development business services server:

1. Restart the server if it is already running and change the HTTP proxy parameters.

2. Undeploy the previously deployed application.

3. Build an EAR file from the latest code.

4. Deploy a new application.

5. Start the new application.

B.2.5 Start or Stop a Development Business Services Server on WebSphere Express

On WebSphere Express, the business services server runs in a server profile called DEVBSSVSvr. This is separate from the application server instance for HTML applications, which runs in default profile. Therefore, starting and stopping JD Edwards Solution Explorer has no effect on the business services server. The easiest way to restart the business services server is to redeploy using the Deploy menu item.

Use this code to stop the development business services server:

<WebSphere Install Location>/profiles/DevBSSVSvr/bin/stopserver server1

Use this code to start the development business services server:

<WebSphere Install Location>/profiles/DevBSSVSvr/bin/startserver server1

C Business Services Framework Javadoc

This appendix contains the following topics:

- Section C.1, "Understanding Business Services Framework Javadoc"

- Section C.2, "Reviewing Business Services Framework Javadoc from JDeveloper"

C.1 Understanding Business Services Framework Javadoc

Javadoc is a tool that parses the declarations and documentation comments in a set of Java source files and produces a corresponding set of HTML pages. The Javadoc for the business services framework (foundation packages) is generated during the package build process, and it is included in your software delivery. You can use the following path on your deployment server to access the Javadoc files:

<PACKAGE_NAME>\java\sbf\javadoc

You also view the machine-generated documentation in HTML format by extracting the contents of the SBFJavadoc.jar file. This is an example of the path you would follow to access the jar file:

C:\B9\System\Calsses\SBFJavadoc.jar

See Also:

- Business Services Framework.

C.2 Reviewing Business Services Framework Javadoc from JDeveloper

You can review business services foundation classes from within JDeveloper for all business services projects.

To review a foundation class within JDeveloper:

1. In JDeveloper, select a business service.

Figure C-1 Access Business Services Foundation Javadoc from JDeveloper

2. In the JDeveloper editor pane, right-click on a foundation business service class name, and then click Go to Javadoc from the context menu, as shown in the preceding diagram.
Other examples of foundation business service class names are PublishedBusinessService (which must be extended by every published business service) and BusinessServiceException.

The following example shows the foundation Javadoc.

Figure C-2 Business Services Foundation Javadoc

Glossary

Accessor Methods/Assessors

Java methods to “get” and “set” the elements of a value object or other source file.

activity rule

The criteria by which an object progresses from one given point to the next in a flow.

add mode

A condition of a form that enables users to input data.

Advanced Planning Agent (APAg)

A JD Edwards EnterpriseOne tool that can be used to extract, transform, and load enterprise data. APAg supports access to data sources in the form of rational databases, flat file format, and other data or message encoding, such as XML.

application server

Software that provides the business logic for an application program in a distributed environment. The servers can be Oracle Application Server (OAS) or WebSphere Application Server (WAS).

Auto Commit Transaction

A database connection through which all database operations are immediately written to the database.

batch processing

A process of transferring records from a third-party system to JD Edwards EnterpriseOne.

In JD Edwards EnterpriseOne Financial Management, batch processing enables you to transfer invoices and vouchers that are entered in a system other than JD Edwards EnterpriseOne to JD Edwards EnterpriseOne Accounts Receivable and JD Edwards EnterpriseOne Accounts Payable, respectively. In addition, you can transfer address book information, including customer and supplier records, to JD Edwards EnterpriseOne.

batch server

A server that is designated for running batch processing requests. A batch server typically does not contain a database nor does it run interactive applications.

batch-of-one

A transaction method that enables a client application to perform work on a client workstation, then submit the work all at once to a server application for further processing. As a batch process is running on the server, the client application can continue performing other tasks.

best practices

Non-mandatory guidelines that help the developer make better design decisions.

BPEL

Abbreviation for Business Process Execution Language, a standard web services orchestration language, which enables you to assemble discrete services into an end-to-end process flow.

BPEL PM

Abbreviation for Business Process Execution Language Process Manager, a comprehensive infrastructure for creating, deploying, and managing BPEL business processes.

Build Configuration File

Configurable settings in a text file that are used by a build program to generate ANT scripts. ANT is a software tool used for automating build processes. These scripts build published business services.

build engineer

An actor that is responsible for building, mastering, and packaging artifacts. Some build engineers are responsible for building application artifacts, and some are responsible for building foundation artifacts.

Build Program

A WIN32 executable that reads build configuration files and generates an ANT script for building published business services.

business analyst

An actor that determines if and why an EnterpriseOne business service needs to be developed.

business function

A named set of user-created, reusable business rules and logs that can be called through event rules. Business functions can run a transaction or a subset of a transaction (check inventory, issue work orders, and so on). Business functions also contain the application programming interfaces (APIs) that enable them to be called from a form, a database trigger, or a non-JD Edwards EnterpriseOne application. Business functions can be combined with other business functions, forms, event rules, and other components to make up an application. Business functions can be created through event rules or third-generation languages, such as C. Examples of business functions include Credit Check and Item Availability.

business function event rule

See named event rule (NER).

business service

EnterpriseOne business logic written in Java. A business service is a collection of one or more artifacts. Unless specified otherwise, a business service implies both a published business service and business service.

business service artifacts

Source files, descriptors, and so on that are managed for business service development and are needed for the business service build process.

business service class method

A method that accesses resources provided by the business service framework.

business service configuration files

Configuration files include, but are not limited to, interop.ini, JDBj.ini, and jdelog.properties.

business service cross reference

A key and value data pair used during orchestration. Collectively refers to both the code and the key cross reference in the WSG/XPI based system.

business service cross-reference utilities

Utility services installed in a BPEL/ESB environment that are used to access JD Edwards EnterpriseOne orchestration cross-reference data.

business service development environment

A framework needed by an integration developer to develop and manage business services.

business services development tool

Otherwise known as JDeveloper.

business service EnterpriseOne object

A collection of artifacts managed by EnterpriseOne LCM tools. Named and represented within EnterpriseOne LCM similarly to other EnterpriseOne objects like tables, views, forms, and so on.

business service framework

Parts of the business service foundation that are specifically for supporting business service development.

business service payload

An object that is passed between an enterprise server and a business services server. The business service payload contains the input to the business service when passed to the business services server. The business service payload contains the results from the business service when passed to the Enterprise Server. In the case of notifications, the return business service payload contains the acknowledgement.

business service property

Key value data pairs used to control the behavior or functionality of business services.

Business Service Property Admin Tool

An EnterpriseOne application for developers and administrators to manage business service property records.

business service property business service group

A classification for business service property at the business service level. This is generally a business service name. A business service level contains one or more business service property groups. Each business service property group may contain zero or more business service property records.

business service property key

A unique name that identifies the business service property globally in the system.

business service property utilities

A utility API used in business service development to access EnterpriseOne business service property data.

business service property value

A value for a business service property.

business service repository

A source management system, for example ClearCase, where business service artifacts and build files are stored. Or, a physical directory in network.

business services server

The physical machine where the business services are located. Business services are run on an application server instance.

business services source file or business service class

One type of business service artifact. A text file with the .java file type written to be compiled by a Java compiler.

business service value object template

The structural representation of a business service value object used in a C-business function.

Business Service Value Object Template Utility

A utility used to create a business service value object template from a business service value object.

business services server artifact

The object to be deployed to the business services server.

business view

A means for selecting specific columns from one or more JD Edwards EnterpriseOne application tables whose data is used in an application or report. A business view does not select specific rows, nor does it contain any actual data. It is strictly a view through which you can manipulate data.

central objects merge

A process that blends a customer's modifications to the objects in a current release with objects in a new release.

central server

A server that has been designated to contain the originally installed version of the software (central objects) for deployment to client computers. In a typical JD Edwards EnterpriseOne installation, the software is loaded on to one machine—the central server. Then, copies of the software are pushed out or downloaded to various workstations attached to it. That way, if the software is altered or corrupted through its use on workstations, an original set of objects (central objects) is always available on the central server.

charts

Tables of information in JD Edwards EnterpriseOne that appear on forms in the software.

check-in repository

A repository for developers to check in and check out business service artifacts. There are multiple check-in repositories. Each can be used for a different purpose (for example, development, production, testing, and so on).

checksum

A fixed-size datum computed from an arbitrary block of digital data for the purpose of detecting accidental errors that may have been introduced during its transmission or storage. JD Edwards EnterpriseOne uses the checksum to verify the integrity of packages that have been downloaded by recomputing the checksum of the downloaded package and comparing it with the checksum of the original package. The procedure that yields the checksum from the data is called a checksum function or checksum algorithm. JD Edwards EnterpriseOne uses the MD5 and STA-1 checksum algorithms.

connector

Component-based interoperability model that enables third-party applications and JD Edwards EnterpriseOne to share logic and data. The JD Edwards EnterpriseOne connector architecture includes Java and COM connectors.

Control Table Workbench

An application that, during the Installation Workbench processing, runs the batch applications for the planned merges that update the data dictionary, user-defined codes, menus, and user override tables.

control tables merge

A process that blends a customer's modifications to the control tables with the data that accompanies a new release.

correlation data

The data used to tie HTTP responses with requests that consist of business service name and method.

credentials

A valid set of JD Edwards EnterpriseOne username/password/environment/role, EnterpriseOne session, or EnterpriseOne token.

cross-reference utility services

Utility services installed in a BPEL/ESB environment that access EnterpriseOne cross-reference data.

database credentials

A valid database username/password.

database server

A server in a local area network that maintains a database and performs searches for client computers.

Data Source Workbench

An application that, during the Installation Workbench process, copies all data sources that are defined in the installation plan from the Data Source Master and Table and Data Source Sizing tables in the Planner data source to the system-release number data source. It also updates the Data Source Plan detail record to reflect completion.

deployment artifacts

Artifacts that are needed for the deployment process, such as servers, ports, and such.

deployment server

A server that is used to install, maintain, and distribute software to one or more enterprise servers and client workstations.

direct connect

A transaction method in which a client application communicates interactively and directly with a server application.

See also batch-of-one and store-and-forward.

Do Not Translate (DNT)

A type of data source that must exist on the iSeries because of BLOB restrictions.

embedded application server instance

An OC4J instance started by and running wholly within JDeveloper.

edit code

A code that indicates how a specific value for a report or a form should appear or be formatted. The default edit codes that pertain to reporting require particular attention because they account for a substantial amount of information.

edit mode

A condition of a form that enables users to change data.

edit rule

A method used for formatting and validating user entries against a predefined rule or set of rules.

Electronic Data Interchange (EDI)

An interoperability model that enables paperless computer-to-computer exchange of business transactions between JD Edwards EnterpriseOne and third-party systems. Companies that use EDI must have translator software to convert data from the EDI standard format to the formats of their computer systems.

embedded event rule

An event rule that is specific to a particular table or application. Examples include form-to-form calls, hiding a field based on a processing option value, and calling a business function. Contrast with the business function event rule.

Employee Work Center

A central location for sending and receiving all JD Edwards EnterpriseOne messages (system and user generated), regardless of the originating application or user. Each user has a mailbox that contains workflow and other messages, including Active Messages.

enterprise server

A server that contains the database and the logic for JD Edwards EnterpriseOne.

Enterprise Service Bus (ESB)

Middleware infrastructure products or technologies based on web services standards that enable a service-oriented architecture using an event-driven and XML-based messaging framework (the bus).

EnterpriseOne administrator

An actor responsible for the EnterpriseOne administration system.

EnterpriseOne credentials

A user ID, password, environment, and role used to validate a user of EnterpriseOne.

EnterpriseOne development client

Historically called “fat client,” a collection of installed EnterpriseOne components required to develop EnterpriseOne artifacts, including the Microsoft Windows client and design tools.

EnterpriseOne extension

A JDeveloper component (plug-in) specific to EnterpriseOne. A JDeveloper wizard

is a specific example of an extension.

EnterpriseOne object

A reusable piece of code that is used to build applications. Object types include tables, forms, business functions, data dictionary items, batch processes, business views, event rules, versions, data structures, and media objects.

EnterpriseOne process

A software process that enables JD Edwards EnterpriseOne clients and servers to handle processing requests and run transactions. A client runs one process, and servers can have multiple instances of a process. JD Edwards EnterpriseOne processes can also be dedicated to specific tasks (for example, workflow messages and data replication) to ensure that critical processes don't have to wait if the server is particularly busy.

EnterpriseOne resource

Any EnterpriseOne table, metadata, business function, dictionary information, or other information restricted to authorized users.

Environment Workbench

An application that, during the Installation Workbench process, copies the environment information and Object Configuration Manager tables for each environment from the Planner data source to the system-release number data source. It also updates the Environment Plan detail record to reflect completion.

escalation monitor

A batch process that monitors pending requests or activities and restarts or forwards them to the next step or user after they have been inactive for a specified amount of time.

event rule

A logic statement that instructs the system to perform one or more operations based on an activity that can occur in a specific application, such as entering a form or exiting a field.

explicit transaction

Transaction used by a business service developer to explicitly control the type (auto or manual) and the scope of transaction boundaries within a business service.

exposed method or value object

Published business service source files or parts of published business service source files that are part of the published interface. These are part of the contract with the customer.

fast path

A command prompt that enables the user to move quickly among menus and applications by using specific commands.

file server

A server that stores files to be accessed by other computers on the network. Unlike a disk server, which appears to the user as a remote disk drive, a file server is a sophisticated device that not only stores files, but also manages them and maintains order as network users request files and make changes to these files.

final mode

The report processing mode of a processing mode of a program that updates or creates data records.

foundation

A framework that must be accessible for execution of business services at runtime. This includes, but is not limited to, the Java Connector and JDBj.

FTP server

A server that responds to requests for files via file transfer protocol.

HTTP Adapter

A generic set of services that are used to do the basic HTTP operations, such as GET, POST, PUT, DELETE, TRACE, HEAD, and OPTIONS with the provided URL.

instantiate

A Java term meaning “to create.” When a class is instantiated, a new instance

is created.

integration developer

The user of the system who develops, runs, and debugs the EnterpriseOne business services. The integration developer uses the EnterpriseOne business services to develop these components.

integration point (IP)

The business logic in previous implementations of EnterpriseOne that exposes a document level interface. This type of logic used to be called XBPs. In EnterpriseOne 8.11, IPs are implemented in Web Services Gateway powered by webMethods.

integration server

A server that facilitates interaction between diverse operating systems and applications across internal and external networked computer systems.

integrity test

A process used to supplement a company's internal balancing procedures by locating and reporting balancing problems and data inconsistencies.

interface table

See Z table.

internal method or value object

Business service source files or parts of business service source files that are not part of the published interface. These could be private or protected methods. These could be value objects not used in published methods.

interoperability model

A method for third-party systems to connect to or access JD Edwards EnterpriseOne.

in-your-face error

In JD Edwards EnterpriseOne, a form-level property which, when enabled, causes the text of application errors to appear on the form.

jargon

An alternative data dictionary item description that JD Edwards EnterpriseOne appears based on the product code of the current object.

Java application server

A component-based server that resides in the middle-tier of a server-centric architecture. This server provides middleware services for security and state maintenance, along with data access and persistence.

JDBNET

A database driver that enables heterogeneous servers to access each other's data.

JDEBASE Database Middleware

A JD Edwards EnterpriseOne proprietary database middleware package that provides platform-independent APIs, along with client-to-server access.

JDECallObject

An API used by business functions to invoke other business functions.

jde.ini

A JD Edwards EnterpriseOne file (or member for iSeries) that provides the runtime settings required for JD Edwards EnterpriseOne initialization. Specific versions of the file or member must reside on every machine running JD Edwards EnterpriseOne. This includes workstations and servers.

JDEIPC

Communications programming tools used by server code to regulate access to the same data in multiprocess environments, communicate and coordinate between processes, and create new processes.

jde.log

The main diagnostic log file of JD Edwards EnterpriseOne. This file is always located in the root directory on the primary drive and contains status and error messages from the startup and operation of JD Edwards EnterpriseOne.

JDENET

A JD Edwards EnterpriseOne proprietary communications middleware package. This package is a peer-to-peer, message-based, socket-based, multiprocess communications middleware solution. It handles client-to-server and server-to-server communications for all JD Edwards EnterpriseOne supported platforms.

JDeveloper Project

An artifact that JDeveloper uses to categorize and compile source files.

JDeveloper Workspace

An artifact that JDeveloper uses to organize project files. It contains one or more project files.

JMS Queue

A Java Messaging service queue used for point-to-point messaging.

listener service

A listener that listens for XML messages over HTTP.

local repository

A developer's local development environment that is used to store business service artifacts.

Location Workbench

An application that, during the Installation Workbench process, copies all locations that are defined in the installation plan from the Location Master table in the Planner data source to the system data source.

logic server

A server in a distributed network that provides the business logic for an application program. In a typical configuration, pristine objects are replicated on to the logic server from the central server. The logic server, in conjunction with workstations, actually performs the processing required when JD Edwards EnterpriseOne software runs.

MailMerge Workbench

An application that merges Microsoft Word 6.0 (or higher) word-processing documents with JD Edwards EnterpriseOne records to automatically print business documents. You can use MailMerge Workbench to print documents, such as form letters about verification of employment.

Manual Commit transaction

A database connection where all database operations delay writing to the database until a call to commit is made.

master business function (MBF)

An interactive master file that serves as a central location for adding, changing, and updating information in a database. Master business functions pass information between data entry forms and the appropriate tables. These master functions provide a common set of functions that contain all of the necessary default and editing rules for related programs. MBFs contain logic that ensures the integrity of adding, updating, and deleting information from databases.

master table

See published table.

media storage object

Files that use one of the following naming conventions that are not organized into table format: Gxxx, xxxGT, or GTxxx.

message center

A central location for sending and receiving all JD Edwards EnterpriseOne messages (system and user generated), regardless of the originating application or user.

messaging adapter

An interoperability model that enables third-party systems to connect to JD Edwards EnterpriseOne to exchange information through the use of messaging queues.

messaging server

A server that handles messages that are sent for use by other programs using a messaging API. Messaging servers typically employ a middleware program to perform their functions.

Monitoring Application

An EnterpriseOne tool provided for an administrator to get statistical information for various EnterpriseOne servers, reset statistics, and set notifications.

named event rule (NER)

Encapsulated, reusable business logic created using event rules, rather that C programming. NERs are also called business function event rules. NERs can be reused in multiple places by multiple programs. This modularity lends itself to streamlining, reusability of code, and less work.

Object Configuration Manager (OCM)

In JD Edwards EnterpriseOne, the object request broker and control center for the runtime environment. OCM keeps track of the runtime locations for business functions, data, and batch applications. When one of these objects is called, OCM directs access to it using defaults and overrides for a given environment and user.

Object Librarian

A repository of all versions, applications, and business functions reusable in building applications. Object Librarian provides check-out and check-incapabilities for developers, and it controls the creation, modification, and use of JD Edwards EnterpriseOne objects. Object Librarian supports multiple environments (such as production and development) and enables objects to be easily moved from one environment to another.

Object Librarian merge

A process that blends any modifications to the Object Librarian in a previous release into the Object Librarian in a new release.

Open Data Access (ODA)

An interoperability model that enables you to use SQL statements to extract JD Edwards EnterpriseOne data for summarization and report generation.

Output Stream Access (OSA)

An interoperability model that enables you to set up an interface for JD Edwards EnterpriseOne to pass data to another software package, such as Microsoft Excel, for processing.

package

JD Edwards EnterpriseOne objects are installed to workstations in packages from the deployment server. A package can be compared to a bill of material or kit that indicates the necessary objects for that workstation and where on the deployment server the installation program can find them. It is point-in-time snapshot of the central objects on the deployment server.

package build

A software application that facilitates the deployment of software changes and new applications to existing users. Additionally, in JD Edwards EnterpriseOne, a package build can be a compiled version of the software. When you upgrade your version of the ERP software, for example, you are said to take a package build.

Consider the following context: “Also, do not transfer business functions into the production path code until you are ready to deploy, because a global build of business functions done during a package build will automatically include the new functions.” The process of creating a package build is often referred to, as it is in this example, simply as “a package build.”

package location

The directory structure location for the package and its set of replicated objects. This is usually \\deployment server\release\path_code\package\package name. The subdirectories under this path are where the replicated objects for the package are placed. This is also referred to as where the package is built or stored.

Package Workbench

An application that, during the Installation Workbench process, transfers the package information tables from the Planner data source to the system-release number data source. It also updates the Package Plan detail record to reflect completion.

Pathcode Directory

The specific portion of the file system on the EnterpriseOne development client where EnterpriseOne development artifacts are stored.

patterns

General repeatable solutions to a commonly occurring problem in software design. For business service development, the focus is on the object relationships and interactions. For orchestrations, the focus is on the integration patterns (for example, synchronous and asynchronous request/response, publish, notify, and receive/reply).

print server

The interface between a printer and a network that enables network clients to connect to the printer and send their print jobs to it. A print server can be a computer, separate hardware device, or even hardware that resides inside of the printer itself.

pristine environment

A JD Edwards EnterpriseOne environment used to test unaltered objects with JD Edwards EnterpriseOne demonstration data or for training classes. You must have this environment so that you can compare pristine objects that you modify.

processing option

A data structure that enables users to supply parameters that regulate the running of a batch program or report. For example, you can use processing options to specify default values for certain fields, to determine how information appears or is printed, to specify date ranges, to supply runtime values that regulate program execution, and so on.

production environment

A JD Edwards EnterpriseOne environment in which users operate EnterpriseOne software.

Production Published Business Services Web Service

Published business services web service deployed to a production application server.

program temporary fix (PTF)

A representation of changes to JD Edwards EnterpriseOne software that your organization receives on magnetic tapes or disks.

project

In JD Edwards EnterpriseOne, a virtual container for objects being developed in Object Management Workbench.

promotion path

The designated path for advancing objects or projects in a workflow. The following is the normal promotion cycle (path):

11>21>26>28>38>01

In this path, 11 equals new project pending review, 21 equals programming, 26 equals QA test/review, 28 equals QA test/review complete, 38 equals in production, 01 equals complete. During the normal project promotion cycle, developers check objects out of and into the development path code and then promote them to the prototype path code. The objects are then moved to the productions path code before declaring them complete.

proxy server

A server that acts as a barrier between a workstation and the internet so that the enterprise can ensure security, administrative control, and caching service.

published business service

EnterpriseOne service level logic and interface. A classification of a published business service indicating the intention to be exposed to external (non-EnterpriseOne) systems.

published business service identification information

Information about a published business service used to determine relevant authorization records. Published business services + method name, published business services, or *ALL.

published business service web service

Published business services components packaged as J2EE Web Service (namely, a J2EE EAR file that contains business service classes, business service foundation, configuration files, and web service artifacts).

published table

Also called a master table, this is the central copy to be replicated to other machines. Residing on the publisher machine, the F98DRPUB table identifies all of the published tables and their associated publishers in the enterprise.

publisher

The server that is responsible for the published table. The F98DRPUB table identifies all of the published tables and their associated publishers in the enterprise.

QBE

An abbreviation for query by example. In JD Edwards EnterpriseOne, the QBE line is the top line on a detail area that is used for filtering data.

real-time event

A message triggered from EnterpriseOne application logic that is intended for external systems to consume.

refresh

A function used to modify JD Edwards EnterpriseOne software, or subset of it, such as a table or business data, so that it functions at a new release or cumulative update level.

replication server

A server that is responsible for replicating central objects to client machines.

rules

Mandatory guidelines that are not enforced by tooling, but must be followed in order to accomplish the desired results and to meet specified standards.

secure by default

A security model that assumes that a user does not have permission to execute an object unless there is a specific record indicating such permissions.

Secure Socket Layer (SSL)

A security protocol that provides communication privacy. SSL enables client and server applications to communicate in a way that is designed to prevent eavesdropping, tampering, and message forgery.

selection

Found on JD Edwards EnterpriseOne menus, a selection represents functions that you can access from a menu. To make a selection, type the associated number in the Selection field and press Enter.

serialize

The process of converting an object or data into a format for storage or transmission across a network connection link with the ability to reconstruct the original data or objects when needed.

Server Workbench

An application that, during the Installation Workbench process, copies the server configuration files from the Planner data source to the system-release number data source. The application also updates the Server Plan detail record to reflect completion.

SOA

Abbreviation for Service Oriented Architecture.

softcoding

A coding technique that enables an administrator to manipulate site-specific variables that affect the execution of a given process.

source repository

A repository for HTTP adapter and listener service development environment artifacts.

Specification merge

A merge that comprises three merges: Object Librarian merge, Versions List merge, and Central Objects merge. The merges blend customer modifications with data that accompanies a new release.

specification

A complete description of a JD Edwards EnterpriseOne object. Each object has its own specification, or name, which is used to build applications.

Specification Table Merge Workbench

An application that, during the Installation Workbench process, runs the batch applications that update the specification tables.

SSL Certificate

A special message signed by a certificate authority that contains the name of a user and that user's public key in such a way that anyone can "verify" that the message was signed by no one other than the certification authority and thereby develop trust in the user's public key.

store-and-forward

The mode of processing that enables users who are disconnected from a server to enter transactions and then later connect to the server to upload those transactions.

subscriber table

Table F98DRSUB, which is stored on the publisher server with the F98DRPUB table and identifies all of the subscriber machines for each published table.

super class

An inheritance concept of the Java language where a class is an instance of something, but is also more specific. “Tree” might be the super class of “Oak” and “Elm,” for example.

table access management (TAM)

The JD Edwards EnterpriseOne component that handles the storage and retrieval of use-defined data. TAM stores information, such as data dictionary definitions; application and report specifications; event rules; table definitions; business function input parameters and library information; and data structure definitions for running applications, reports, and business functions.

Table Conversion Workbench

An interoperability model that enables the exchange of information between JD Edwards EnterpriseOne and third-party systems using non-JD Edwards EnterpriseOne tables.

table conversion

An interoperability model that enables the exchange of information between JD Edwards EnterpriseOne and third-party systems using non-JD Edwards EnterpriseOne tables.

table event rules

Logic that is attached to database triggers that runs whenever the action specified by the trigger occurs against the table. Although JD Edwards EnterpriseOne enables event rules to be attached to application events, this functionality is application specific. Table event rules provide embedded logic at the table level.

terminal server

A server that enables terminals, microcomputers, and other devices to connect to a network or host computer or to devices attached to that particular computer.

transaction processing (TP) monitor

A monitor that controls data transfer between local and remote terminals and the applications that originated them. TP monitors also protect data integrity in the distributed environment and may include programs that validate data and format terminal screens.

transaction processing method

A method related to the management of a manual commit transaction boundary (for example, start, commit, rollback, and cancel).

transaction set

An electronic business transaction (electronic data interchange standard document) made up of segments.

trigger

One of several events specific to data dictionary items. You can attach logic to a data dictionary item that the system processes automatically when the event occurs.

triggering event

A specific workflow event that requires special action or has defined consequences or resulting actions.

user identification information

User ID, role, or *public.

User Overrides merge

Adds new user override records into a customer's user override table.

value object

A specific type of source file that holds input or output data, much like a data structure passes data. Value objects can be exposed (used in a published business service) or internal, and input or output. They are comprised of simple and complex elements and accessories to those elements.

versioning a published business service

Adding additional functionality/interfaces to the published business services without modifying the existing functionality/interfaces.

Versions List merge

The Versions List merge preserves any non-XJDE and non-ZJDE version specifications for objects that are valid in the new release, as well as their processing options data.

visual assist

Forms that can be invoked from a control via a trigger to assist the user in determining what data belongs in the control.

vocabulary override

An alternate description for a data dictionary item that appears on a specific JD Edwards EnterpriseOne form or report.

web application server

A web server that enables web applications to exchange data with the back-end systems and databases used in eBusiness transactions.

web server

A server that sends information as requested by a browser, using the TCP/IP set of protocols. A web server can do more than just coordination of requests from browsers; it can do anything a normal server can do, such as house applications or data. Any computer can be turned into a web server by installing server software and connecting the machine to the internet.

Web Service Description Language (WSDL)

An XML format for describing network services.

Web Service Inspection Language (WSIL)

An XML format for assisting in the inspection of a site for available services and a set of rules for how inspection-related information should be made.

web service softcoding record

An XML document that contains values that are used to configure a web service proxy. This document identifies the endpoint and conditionally includes security information.

web service softcoding template

An XML document that provides the structure for a soft coded record.

Where clause

The portion of a database operation that specifies which records the database operation will affect.

Windows terminal server

A multiuser server that enables terminals and minimally configured computers to display Windows applications even if they are not capable of running Windows software themselves. All client processing is performed centrally at the Windows terminal server and only display, keystroke, and mouse commands are transmitted over the network to the client terminal device.

wizard

A type of JDeveloper extension used to walk the user through a series of steps.

workbench

A program that enables users to access a group of related programs from a single entry point. Typically, the programs that you access from a workbench are used to complete a large business process. For example, you use the JD Edwards EnterpriseOne Payroll Cycle Workbench (P07210) to access all of the programs that the system uses to process payroll, print payments, create payroll reports, create journal entries, and update payroll history. Examples of JD Edwards EnterpriseOne workbenches include Service Management Workbench (P90CD020), Line Scheduling Workbench (P3153), Planning Workbench (P13700), Auditor's Workbench (P09E115), and Payroll Cycle Workbench.

workflow

The automation of a business process, in whole or in part, during which documents, information, or tasks are passed from one participant to another for action, according to a set of procedural rules.

workgroup server

A server that usually contains subsets of data replicated from a master network server. A workgroup server does not perform application or batch processing.

XAPI events

A service that uses system calls to capture JD Edwards EnterpriseOne transactions as they occur and then calls third-party software, end users, and other JD Edwards EnterpriseOne systems that have requested notification when the specified transactions occur to return a response.

XML CallObject

An interoperability capability that enables you to call business functions.

XML Dispatch

An interoperability capability that provides a single point of entry for all XML documents coming into JD Edwards EnterpriseOne for responses.

XML List

An interoperability capability that enables you to request and receive JD Edwards EnterpriseOne database information in chunks.

XML Service

An interoperability capability that enables you to request events from one JD Edwards EnterpriseOne system and receive a response from another JD Edwards EnterpriseOne system.

XML Transaction

An interoperability capability that enables you to use a predefined transaction type to send information to or request information from JD Edwards EnterpriseOne. XML transaction uses interface table functionality.

XML Transaction Service (XTS)

Transforms an XML document that is not in the JD Edwards EnterpriseOne format into an XML document that can be processed by JD Edwards EnterpriseOne. XTS then transforms the response back to the request originator XML format.

Z event

A service that uses interface table functionality to capture JD Edwards EnterpriseOne transactions and provide notification to third-party software, end users, and other JD Edwards EnterpriseOne systems that have requested to be notified when certain transactions occur.

Z table

A working table where non-JD Edwards EnterpriseOne information can be stored and then processed into JD Edwards EnterpriseOne. Z tables also can be used to retrieve JD Edwards EnterpriseOne data. Z tables are also known as interface tables.

Z transaction

Third-party data that is properly formatted in interface tables for updating to the JD Edwards EnterpriseOne database.

Index
A  B  C  D  E  F  H  I  J  L  O  P  R  S  T  U  V  W  X

A

architecture, 2.1

authentication, 3.1.1

authorization, 3.1.1

B

business function

calling a business service, 8.1.1

overview, 6.1.2.1

business function call, 12.6.2 Business Function Value Object Class Wizard, 12.4.2 business service

calling a business function, 6.1.2.1, 12.6.2

calling a database operation, 6.1.2.2, 12.7.2

creating classes, 12.5.1

HTTP post overview, 10.1

overview, 5.1, 6.1.2, 12.1

value object class, 12.4.1

Business Service Class Wizard, 12.5.2 business service properties

handling errors, 7.1.2

overview, 7.1

using, 7.1.1

Business Service Property program (P951000), 7.2.1 business serviceconsumer business service, 5 business serviceproviderbusiness service, 5 business servicepublished business service, 5 business services architecture, 2.1 business services foundation, 3.1 business services foundation packages, 5.1 business services properties, 6.1.3 business services server

configuring, B.2.2

deploying, B.2.3

development environment, 2.4.1, B.2

overview, 3.1

production environment, 2.4.2

starting on OC4J, B.2.4

starting on WebSphere Express, B.2.5

stopping on OC4J, B.2.4

stopping on WebSphere Express, B.2.5

C

code templates

installing, 4.3

overview, 12.1

viewing, 4.3

consumer business service

creating a web service proxy, 8.3.4

generating an XML document, 8.3.8

overview, 2.3, 8.1

softcoding, 9.1

steps for creating, 8.3.1

testing, 8.4, B.1

consumer business servicebusiness service, 2.3 consumer web serviceconsumer business service, 8.3.1 correlation data, 10.2.2, 10.2.3 Create Business Function Call Wizard, 12.6.2 Create Database Call Wizard, 12.7.2

D

database operation

data type, 12.7.2

delete, 12.7.6

insert, 12.7.4

overview, 6.1.2.2, 12.7.1

select, 12.7.3

update, 12.7.5

Database Operation Value Object Class Wizard, 12.4.3 delete database operation, 12.7.6

E

error messages, 11.2.4

F

fault tolerance, 3.1.3

framework, 5.1

framework packages, 5.1

H

handling errors, 5.1

HTTP post overview, 10.1

HTTP proxy server configuration for JDeveloper, 4.5

HTTPS proxy server configuration for JDeveloper, 4.5

I

insert database operation, 12.7.4

J

javadoc

accessing, C.1

reviewing foundation classes in JDeveloper, C.2

using, C.1

JDeveloper

accessing, 12.2.1

configuring HTTP proxy server, 4.5

configuring HTTPS proxy server, 4.5

configuring to support UTF-8, A.1

features, 4.1

JDeveloper configuration for embedded OC4J, 4.2

L

listener, 10.3.1

O

Object Management WorkbenchOMW, 12.2.1

OCM configuration for consumer web service, 8.2.1

OMW, 12.2.1

Oracle application server OC4J configuration, 4.2

overview, 5.1

P

P0045 (Service Error Recovery program)

overview, 11.1, 11.2.1

processing options, 11.2.3

P951000, 7.2.1 P953000 program, 9.2, 9.6.1 P954000 program, 9.2 payload, 8.3.8 processing options

P0045 (Service Error Recovery), 11.2.3

R0045 (Services Error Recovery), 11.2.3

provider business service

customizing, 6.4

overview, 2.2

provider business servicebusiness service, 2.2 published business service

adding functionality, 5.1

creating classes, 12.3.1

customizing, 6.2

overview, 5.1, 6.1.1

testing, 6.3

value object class, 12.4.1

Published Business Service Class Wizard, 12.3.2

R

R0045 (Services Error Recovery program)

overview, 11.1, 11.2.1

processing options, 11.2.3

running, 11.2.5

reference implementation, 3.1, 12.2.1 resending data, 11.2.4 reviewing errors, 11.2.4

S

scalability, 3.1.2

security, 3.1.1

select database operation, 12.7.3

Service Error Recovery program (P0045)

overview, 11.1, 11.2.1

processing options, 11.2.3

Services Error Recovery program (R0045)

overview, 11.1, 11.2.1

processing options, 11.2.3

running, 11.2.5

softcoding

overview, 9.1, 9.2

purpose, 9.6.1

securing information, 9.3.1

softcoding records

overview, 9.2

using, 9.7.1, 9.8.1

softcoding templates

overview, 9.2

softcoding values, 9.3, 9.4 steps for creating a consumer business service, 8.3.1 steps for creating a provider business service, 6.4 steps for creating a published business service, 6.2

T

transaction processing

default behavior, 6.1.2.3

explicit behavior, 6.1.2.3

overview, 6.1.2.3

U

update database operation, 12.7.5

UTF-8, A.1

V

value object class

overview, 12.4.1

versioning business services, 12.1

W

web service consumerconsumer business service, 2.3

web service providerprovider business service, 2.2, 6.1

web service proxy, 8.3.4

Web Service Soft Coding Records program (P954000), 9.2

Web Service Soft Coding Templates program (P953000), 9.2, 9.6.1

web servicesbusiness service, 2.1

web servicespublished business services, 2.1

wizards, 12.1

X

XML document, 8.3.8

XML payload generation, 8.1.2

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2014, Oracle and/or its affiliates. All rights reserved.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Alpha and Beta Draft Documentation Notice

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.