Deploying the COM Solution for Business Function Execution

This chapter provides an overview of COM server deployment for business function execution and discusses how to:

Click to jump to parent topicUnderstanding COM Server Deployment for Business Function Execution

The COM server uses socket-based middleware to access the JD Edwards EnterpriseOne application server. The jdeinterop.ini file must be configured to specify the JD Edwards EnterpriseOne server. The COM server reads the jdeinterop.ini file and opens the socket connection to the specified application server.

This diagram illustrates COM server deployment:

COM server deployment

Click to jump to parent topicSetting Up the DCOM Server for Business Function Execution

This section provides an overview of the DCOM server and discusses how to:

Click to jump to top of pageClick to jump to parent topicUnderstanding DCOM Server Set Up

You can set up a DCOM server on a JD Edwards EnterpriseOne server machine. DCOM enables COM objects in a distributed environment. To ensure that the interoperability client works properly, you must set up DCOM for both a server environment and for a client environment.

Click to jump to top of pageClick to jump to parent topicSetting Up DCOM for a Server Environment

Use these steps to set up DCOM for a server environment:

  1. Run GenCOM on a JD Edwards EnterpriseOne client machine, with these options:

    gencom /out <path> /tempout <path> /cmd App.cmd

    Because GenCOM is a JD Edwards EnterpriseOne client-side only tool, you must perform this step on a JD Edwards EnterpriseOne client machine.

  2. Copy the App.dll file and the App.tlb file generated by GenCOM to the COM server machine.

  3. On the COM server machine, from the command line:

Click to jump to top of pageClick to jump to parent topicSetting Up Security on the COM Server

Use these steps to set up security on the COM server:

  1. From the Start menu, select Run.

  2. Enter Dcomcnfg.exe.

  3. On Distributed COM Configuration Properties, click the Default Security tab.

  4. Click the Edit Default Button in Default Access Permissions group.

    The Registry Value Permissions form appears. Some entries might already be present.

  5. On Registry Value Permissions, click Add.

  6. On Add Users and Groups, select the appropriate domain from the List Names From option.

  7. Click Everyone, and then click Add.

    Type of access should be Allow Access.

  8. Click OK.

    Repeat Steps 4 through 7 for default launch permissions. No setup is required for default configuration permissions.

Click to jump to top of pageClick to jump to parent topicSetting Up the Identity as Interactive User

Use these steps to set up the identity as interactive user:

  1. Run DCOMCnfg.

  2. On Distributed COM Configuration Properties, select JDECOMConnector2, and then click Properties.

  3. On JDECOMConnector2Properties, click the Identity tab, and then select the interactive user option.

  4. Click Apply to apply the change.

    Note. You must perform this task every time you register the connector. If you copy the JDECOMConnector2.exe using Explorer, Explorer reruns the registration, and you must repeat these steps.

To use Callbacks (Connection Points) with the COM solution, repeat the same procedure on the COM client machine. Most of the shipped examples use Callbacks and require that you open the security on the client machine.

Click to jump to top of pageClick to jump to parent topicSetting Up DCOM for a Client Environment

Use these steps to set up DCOM for a client environment:

  1. From a DOS prompt on the DCOM client machine, run jdecomconnector2.exe /RegServer.

  2. At the prompt, enter oleview.exe.

  3. From the menu bar, select oleview.

  4. Click View and select Expert Mode.

  5. In the oleview window under Object Classes, double-click All Objects, and wait for all objects to appear.

  6. Under All Objects, find and click Connector Class.

  7. Click the Implementation tab on the right-side panel, and then click the local server and remove anything that appears in the editing window.

  8. On the Activation tab, select the Launch as Interactive User option.

  9. In Remote Machine Name, enter the COM server machine name.

  10. Repeat steps 5 through 8 for MathNumeric Class.

  11. Start the DCOM client application.

    Note. Client-only business functions are not reachable.

Click to jump to parent topicInstalling COM Connector

This section discusses how to install the COM connector in a non-JD Edwards EnterpriseOne client environment.

Click to jump to top of pageClick to jump to parent topicInstalling COM Connector on a Non-JD Edwards EnterpriseOne Client Environment

Use these steps to install the COM connector on a non-JD Edwards EnterpriseOne client machine:

  1. Copy these files from the JD Edwards EnterpriseOne server (system\bin32) to a directory on the desired machine. For example, copy the files in c:\program files\JDEdwards to a non-JD Edwards EnterpriseOne client machine.

    Note. To use these DLLs for JD Edwards EnterpriseOne 8.97 you must upgrade your system with the ESU associated with SAR 8531543. These DLLs are applicable for JD Edwards EnterpriseOne 8.96, too.

  2. Create a new directory Icu\data\ on the machine where the COM server is located. Copy all of the files from the JD Edwards EnterpriseOne server in folder system\Locale\xml\*.* into Icu\data\. Create a new system variable, ICU_DATA, in the environment variables of the system properties and specify the path to the Icu\data\ as the value.

  3. Execute this command on the target location to register the COM connector components:

    JDECOMConnector2.exe /RegServer

  4. Run GenCOM on a JD Edwards EnterpriseOne client machine and copy the output DLL and the wrapper components (for example, wrapper.dll).

  5. Execute this command to register the COM wrapper components:

    regsvr32 wrapper.dll

  6. Create the JDEinterop.ini file.

    Set the JD Edwards EnterpriseOne server and port values to the JD Edwards EnterpriseOne application server with which you want the COM server to communicate.

    The COM server is now ready.

To unregister the COM server, use the /unreserved option. For example:

JDECOMConnector2.exe /unreserved

To unregister the COM wrapper, use the /u option. For example:

regsvr32 /u wrapper.dll

See Also

Understanding jdeinterop.ini for COM Connector

Click to jump to parent topicUsing OCM Support with COM Connector

You use Object Configuration Manager (OCM) to map business functions to a JD Edwards EnterpriseOne server so that the COM connector can access OCM to run business functions. You no longer configure the jdeinterop.ini file to define the JD Edwards EnterpriseOne server from which you want to execute business functions. Using OCM support should result in increased performance, scalability, and load balancing. OCM mapping enables the COM interoperability server to distribute the processes of the COM connector client to various JD Edwards EnterpriseOne servers' requests, depending on the user, environment, and role name.

To take advantage of COM connector OCM support, the system administrator should:

[INTEROP]

Setting

Explanation

EnterpriseServer = ntropt1

For COM events and backward compatibility.

SecurityServer = ntropt1

Validates the login.

Port = 6079

The port number.

The database administrator or JD Edwards EnterpriseOne administrator can provide these settings for the [OCM] section of the jdeinterop.ini configuration file. This information is used for database connectivity.

[OCM]

Setting

Explanation

DSN=ODA ITTND17

The data source name from the system DSN of the ODBC setting.

OCM Datasource = COM OCM

System data source for JD Edwards EnterpriseOne client.

DB User = JDE

User for the data source connection.

DB Pwd = JDE

Password for the data source connection.

Object Owner = SYS9

For UNIX platforms, this is the object owner in the [DB SYSTEM SETTINGS].

Seperator=.

For Oracle, SQL and UDB databases, the separator is a period (.); for iSeries, the separator is a slash (/).

If you use a client machine, the settings can be found in the client jde.ini file. An example of the database name and object owner is: JDE9.SYS9, where JDE9 is the database name and SYS9 is the object owner.

Click to jump to parent topicUsing BHVRCOM with COM

JD Edwards EnterpriseOne clients use the BHVRCOM structure to control the execution of business functions. A COM client can use the IBHVRCOM interface to set and get BHVRCOM values for business functions. The interface definition is in the jdeconnector2.idl file.

This Visual Basic code demonstrates how to query the IBHVRCOM interface and pass values to business functions:

Dim conn As New Connector '//COM Connector DIM WithEvents OW As OneWorldInterface '//OneWorldInterface Dim myBHVRCOM As IOneWorldBHVRCOM '//BHVRCOM Dim AB As JDEAddressBook '// AddressBook Dim phone As D0100032 '//Data source 1 = conn.Login("JDE", "JDE", "M7332RS02") Set OW = conn.CreateBusinessObject("OneWorld.FunctionHelper.1",1) Set myBHVRCOM = OW '// query the IOneWorldBHVRCOM interface MyBHVRCOM.iBobMode = 8 '// set BHVRCOM values MyBHVRCOM.szApplication = "myApp" MyBHVRCOM.szVersion = "myVersion" Set AB = conn.CreateBusinessObject("AddressBook.JDEAddressBook",1) Set phone = AB.CreateGetPhoneParameterset Phone.mnAddressNumber = 1 AB.GetPhone phone, OW, conn, 1 '// business function is executed with the BHVRCOM values

This table explains some of the code:

Code

Explanation

myBHVRCOM.iBobMode=

BobMode is the mode (add, update, delete) of the interactive application. Values for BobMode are:

BOB_MODE_UNDEFINED = 0

BOB_MODE_SPECIAL = 1

BOB_MODE_ADD = 2

BOB_MODE_ADD_PRIMARY = 3

BOB_MODE_ADD_SPECIAL = 4

BOB_MODE_DELETE = 5

BOB_MODE_UPDATE = 6

BOB_MODE_UPDATE_SPECIAL = 7

BOB_MODE_INQUIRE = 8

BOB_MODE_COPY = 9

myBHVRCOM.szApplication=

The value is the name of the interactive application.

MyBHVRCOM.szVersion=

The value is the version of the interactive application. This field can be used for localizations of the applications.

Click to jump to parent topicUse IJDETimeZone Interface

To modify and display the JDEUTIME data type in the appropriate format, the COM client and GenCOM must use the JDEUTIME APIs. Date and time information is displayed in a time based on the date and time that is in the personal profile or a time zone specified by an application.

These steps, along with sample code, illustrate how to use the IJDETimeZone Interface.

XML File generated by GenCOM for IJDETimeZone

For each data item whose data type is JDEUTIME in the data structure DXXXXXX, GenCOM generates this XML file:

<Signature environment="Environment Name"> <Interface name="Interface Name"> <Method name="BSFN"> <Param name="DXXXXXX" type="u" /> </Method> </Interface> </Signature>

Click to jump to parent topicRequesting Inbound XML Using COM Server

You can use the COM connector to send inbound synchronous XML requests (such as XML CallObject, XML List, and XML Transaction) to the JD Edwards EnterpriseOne server. The COM connector uses XML APIs to access the inbound XML requests.

Click to jump to parent topicUsing COM Reliability

Graceful fail-over and fault tolerance mechanisms are important, especially for applications that require high availability. The COM connector provides basic support for fault tolerance at the protocol level.

You should take additional precautions to provide further reliability. After you use the COM connector to enter an order or execute a business function, the process should:

Click to jump to parent topicUsing COM Tracing and Logging

You use COM tracing and logging to help you debug the COM applications. You use the jdeinterop.ini file to configure tracing and logging settings. The logging format is similar to the JD Edwards EnterpriseOne logging format. For example, both logging formats include the Time Thread ID [User ID] and Description, as illustrated:

Thu Mar 02 14:48:01 2000 294 [AR618238] Failed to Login to Environment <ADEVHPO2>

Errors are written to the JobFile and trace messages are written to the Debug File. When trace is enabled, error messages go into both trace and error logs.

You can change the jdeinterop.ini settings while the connector is running by completing these the steps:

  1. Modify the jdeinterop.ini file.

  2. Right-click the Connector System Tray button.

  3. Select the menu item ChangeIniSettings.

    If an option in the jdeinterop.ini file does not have an entry, the default value is used.

Click to jump to top of pageClick to jump to parent topicResolving Tracing Issues

Tracing affects performance. You do not need to use tracing unless you are debugging an application. If performance is negatively affected, ensure that the tracing level is set to zero.

If no logs are generated, complete these steps: