# Worklist Sample Readme

Introduction
Intended Audience
Installing the Sample

Set the Prerequisite Environment
Set the Domain Properties
Create the Domain
Tune the Performance Parameters (Optional)
Build the Applications
Create the Database Tables
Start the Server
Deploy the Application

Test the Installation
To Use the IDE
To Modify the Sample Defaults

Sample Installation Sequence (Windows)

Sample Directory Structure
Sample Contents
Use Case 1 – Create and Assign Tasks
Use Case 2 – Custom Worklist Queries

## Introduction

This readme describes the steps to build, deploy, and run the Worklist sample. For more information on the Worklist sample, see the Worklist Sample Description.

For an example of the installation process, see Sample Installation Sequence (Windows).

Note: This sample is provided on dev2dev for your convenience and is not supported by BEA.

## Intended Audience

This sample is intended for programmers and advanced users familiar with BEA products, DOS Command Prompt or Unix shell environment, and Ant.

## Installing the Sample

The following sections provide step-by-step instructions for installing the sample.

Note: Unzip the sample files into any directory that does not contain spaces in the directory path. For example, you can unzip the files into a directory named c:\sample_files, but not to a directory named c:\sample files. WebLogic Integration and the WLI Common Utilities must also be installed to directories that do not contain spaces.

### Set the Prerequisite Environment

Before you begin the installation, open a Command Prompt and follow the steps below to set the environment variables and bootstrap the sample environment. The worklist/scripts/ directory contains bootstrap, ant build files, and the domain properties file. Execute the bootstrap and ant tasks from this directory.

Note: ANT_HOME should be unset. ANT_HOME is not required to run the sample and may produce undesired behavior. The sample automatically uses ant contained in the WebLogic Server installation.

1. Set the environment variables as follows:

· For Windows installations, enter the following:
`set ANT_HOME=`
`set BEA_HOME=[bea_home]` (e.g., C:/bea)
`set JAVA_HOME=[java_home] (`e.g., %BEA_HOME%/jdk150_11)
`set JYTHON_HOME=[jython_home](`Default:BEA_HOME%/wlserver_10.0/common/lib`)`
`set WLI_UTIL_HOME=[wli_util_home]` (The location of WLI Common Utilities, e.g., C:/wli_util)
`set WL_HOME=[wl_home]` `(`Default:BEA_HOME%/wlserver_10.0)

`set WLI_HOME=[wl_home] (`Default: %BEA_HOME%/wli_10.2)
`set DOMAIN_HOME=[domain_home]` (e.g., %BEA_HOME%/user_projects)

`set CLIENT_HOME=[client_home]` (e.g., C:/worklist)
`set SERVER_URL=[URL of app server]` `(e.g., for single node` t3://localhost:7001 or for a cluster t3://localhost:8001,localhost:9001,localhost:1001)
`set WLS_USER=[wls admin user]` `(e.g., weblogic``)`
`set WLS_PASSWORD=[wls admin password]` `(e.g., weblogic``)`
`set SELECTOR_PROPERTY_FILE=[property file under worklist\client\resources\query]` `(e.g., TaskSelectorFilter.properties``)`
`set MODE = [interactive or batch]` `(e.g., batch``)`

· For Unix installations—bash shell, enter the following:
`export BEA_HOME=[bea_home]` (e.g., /export/home/my_bea)
`export JAVA_HOME=[java_home]` (e.g., $BEA_HOME/jdk150_11)
`export JYTHON_HOME=[jython_home] (`Default: $BEA_HOME/wlserver_10.0/common/lib`)`
`export WLI_UTIL_HOME=[wli_util_home](`The location of WLI Common Utilities, e.g., /export/home/wli_util)
`export WL_HOME=[wl_home]` `(`Default: $BEA_HOME/wlserver_10.0)

`export WLI_HOME=[wl_home] (`Default: $BEA_HOME/wli_10.2)
`export DOMAIN_HOME=[domain_home] (`e.g., $BEA_HOME/user_projects)
`export CLIENT_HOME=[client_home] (`e.g., /export/home/worklist)

`export SERVER_URL=[URL of app server]` `(e.g., for single node` t3://localhost:7001 or for a cluster t3://localhost:8001,localhost:9001,localhost:1001)
`export WLS_USER=[wls admin user]` `(e.g., weblogic``)`
`export WLS_PASSWORD=[wls admin password] (e.g., weblogic``)`
`export SELECTOR_PROPERTY_FILE=[property file under worklist/client/resources/query]` `(e.g., TaskSelectorFilter.properties``)`
`export MODE = [interactive or batch] (``e.g., batch``)`

2. Run the bootstrap as follows:

· For Windows installations, enter:
`bootstrap`
This creates the `worklist\scripts\env.properties` file and sets environment variables`.`

`·` For Unix`installations, enter:`
`. ./bootstrap.sh`
This creates the `worklist/scripts/env.properties` file and sets environment variables`.```

3. Set the WLS Environment by entering setWLSEnv.cmd ( or setWLSEnv.sh for Unix).

### Set the Domain Properties

By default, the domain user name and password are “weblogic” and “weblogic”.

Note: Use double backslashes (\\) when defining path names in the properties file.

To set the domain properties for a single node domain

Copy the samples domain property file as follows and then modify to suit your needs:

· For Windows installations, enter:

`copy domain.worklist.properties domain.properties```

`·` For Unix`installations, enter:```

## `cp domain.worklist.properties domain.properties`

Note: You can configure the domain names (e.g., DOMAIN_HOME/domains/worklist) by editing the domain.name property in the scripts/domain.properties file.

To set the domain properties for a clustered domain

Note: To use this sample in a cluster, the domain must be configured with an Oracle database.

Edit the domain.properties file as follows:

1. Comment out domain.cluster=single.

2. Uncomment #domain.cluster=<clustername>.

3. Replace <clustername> with a valid cluster name without brackets.

4. Replace the following with valid values for your environment:

`domain.cluster.multicast.address=237.0.2.1`
`domain.cluster.multicast.port=7345`
`domain.cluster.servers=2```

`domain.cluster.server1=server1`
`domain.cluster.server1.address=localhost`
`domain.cluster.server1.port=8001`

`domain.cluster.server2=server2`
`domain.cluster.server2.address=localhost`
`domain.cluster.server2.port=9001`

5. Based on domain.cluster.servers=<n>, create as many entries of domain.cluster.server<i>, domain.cluster.server<i>.address, and domain.cluster.server<i>.port.

`6.` Save the domain.properties file.``

### Create the Domain

Create the domain by entering:

`ant create_domain` ``

### Tune the Performance Parameters (Optional)

To tune the performance parameters:

1. Edit <DOMAIN_HOME>/domains/worklist/setDomainEnv.{sh,cmd} and set the following:
`set JAVA_VENDOR=BEA`
`if "%JAVA_VENDOR%"=="BEA" ( set MEM_ARGS to "-Xms512m -Xmx512m" )`

### Build the Applications

Building the applications builds ear files for all workshop applications under the `apps` directory. Build the applications as follows:

`ant build`

### Start the Server

· For Windows installations, enter:

`pushd %DOMAIN_HOME%\domains\worklist`
`start cmd /c startWeblogic`
`popd`

· For Unix installations, enter:

`pushd $DOMAIN_HOME/domains/worklist; nohup startWeblogic &; popd`

### Create the Database Tables

`Note:``If you are using Oracle, make sure the Oracle server is up and running.`

`To create the database tables:```

`1.` `Enter:```

`ant create_app_db_scripts`

2. If you are using PointBase:

· For Windows, enter:

`%DOMAIN_HOME%\domains\worklist\bin\startPointBaseConsole.cmd`

· For Unix, enter:

`$DOMAIN_HOME/domains/worklist/bin/startPointBaseConsole.sh`

This opens PointBase console window. Connect to the PointBase server by providing following values. Then you can execute the sql content in the next steps for PointBase.

`Jdbc url: jdbc:pointbase:server://localhost:9093/weblogic_eval`

`User: weblogic`

`Password: weblogic`

3. Execute the sql script <DOMAIN_HOME>/temp/worklist/appdbscripts.sql. If you are using PointBase, you can copy the sql content into the PointBase console and do execute all.

4. Stop the domain as follows:

`start %DOMAIN_HOME%\domains\worklist\stopWebLogic.cmd weblogic weblogic`

5. ant extend_domain

6. Start the server again

### Deploy the Application

Note: For a clustered domain, make sure that no other managed servers are running except the admin server.

For Windows installations, do the following:

1. `Enter:```

``

`ant deploy```

`Target` `deploy` `in turn calls targets` `create_app_queues``,` `deploy_egs``,` and`` `deploy_apps``.`

Note: At the end of the deployment, a message indicates that the deployment is deferred because no managed server is running. This is normal. Once you stop the admin server and restart with all other managed servers, the resources and the applications will appear.``

2. Stop the domain as follows:

`start %DOMAIN_HOME%\domains\worklist\stopWebLogic.cmd weblogic weblogic`

3. Start the server again.

For Unix installations, do the following:

1. `Enter:```

``

`ant deploy`

`Target` `deploy` `in turn calls targets create_app_queues``, deploy_egs``,` and `deploy_apps``.`

Note: At the end of the deployment, a message indicates that the deployment is deferred because no managed server is running. This is normal. Once you stop the admin server and restart with all other managed servers, the resources and the applications will appear.

2. Stop the domain as follows:

`$DOMAIN_HOME/domains/worklist/stopWebLogic.sh weblogic weblogic```

`3.` `Start the server again.```

### Test the Installation

To text the installation:

1. To test the Create and Assign installation, enter:
`ant test`
To verify that the sample works correctly and the data was successfully created, view the data using the Worklist administration console.

2. To test the Custom Query installation, enter:
`ant testQuery`

To run the application later:

1. Open a Command Prompt to the sample’s scripts directory.

2. Set the environment variables.

3. Run the bootstrap command.

4. Start the server(s).

5. Run the application.

### To Use the IDE

Workshop is an Eclipse based IDE. You can start Workshop by executing <BEA_HOME>/workshop_10.0/workshop4WP/workshop4WP.exe. You can use the IDE to deploy the application. If you deployed the ear files using ant and try to deploy using IDE again, the deployment will fail. IDE deploys the application as an exploded ear.

To see the application in IDE:

1. Delete the .metadata and .temp folders from <CLIENT_HOME>/apps.

2. Set wl.home environment variable to point to <`BEA_HOME>/wlserver_10.0.`

3. Open Workshop and point to <CLIENT_HOME>/apps as workspace.

4. Define WLI_HOME as a variable in Workshop and point it to <BEA_HOME>/wli_10.2( Window->Preferences->Java-> Build Path->Classpath Variables->New button )

5. Use File->Import->Existing projects into Workspace and point to the <CLIENT_HOME>/apps folder.

### To Modify Sample Defaults

To run the Create And Assign use case, run ant test. The default repeat count (number of iterations) is set to 10. This can be modified in the build_client.xml by changing the value of repeat.count under the test target.

To run the Worklist Custom Query use case, run ant testQuery. The default cursor batch size has been set to 10. This can be modified in the build_client.xml by changing the value of batch.size under the testQuery target.

## Sample Installation Sequence (Windows)

To build the applications, create the domain, deploy, and configure:

- `set BEA_HOME=[bea_home]`
  `set JYTHON_HOME=[jython_home]`
  `set WL_HOME=[wl_home]`
  `set WLI_UTIL_HOME=[wli_util_home]` `(location of WLI Common Utilities)`
  `set DOMAIN_HOME=[domain_home]`
  `set JAVA_HOME=[java_home]`
  `set SERVER_URL = [URL of app server]`
  `set WLS_USER = [WLS admin user]`
  `set WLS_PASSWORD = [WLS admin password]`
  `set SELECTOR_PROPERTY_FILE [property file under worklist\client\resources\query]`
  `set MODE = [interactive or batch]```

`set CLIENT_HOME=[client_home]```

`set WLI_HOME=[WLI_home]```

- `cd worklist\scripts\`
- `bootstrap```
- `setWLSEnv`
- copy domain.worklist.properties to domain.properties
- ant create_domain
- ant build
- ant create_app_db_scripts
- pushd %DOMAIN_HOME%\domains\worklist
  start cmd /c startWeblogic
  popd
- Wait for the server to come up.``
- If using PointBase:
  %DOMAIN_HOME%\domains\worklist\`bin\startPointBaseConsole.cmd`
- ant db_init
- Run the sql scripts manually
- start %DOMAIN_HOME%\domains\worklist\stopWebLogic.cmd weblogic weblogic
- ant extend_domain
- start the server again
- ant deploy
- `ant test`

To start the server every time after that, enter:

pushd %DOMAIN_HOME%\domains\worklist
`start cmd /c startWeblogic`
popd

## Sample Directory Structure

worklist

├───apps

│ ├───Worklist_Sample

│ │ └───APP-INF

│ ├───Schemas

│ │ └───system

│ └───Worklist_SampleWeb

│ ├───processes

│ └───WEB-INF

│ ├───lib

│ ├───processes

│ │ └───TaskCreationtaskCtrlcreateTask

│ └───xquery-functions

├───client

│ └───resources

│ ├───input_data

│ └───query

├───lib

└───scripts

## Sample Contents

### Use Case 1 - Create and Assign Tasks

The sample consists of the following files:

Application - Worklist_Sample

Process Project - Worklist_SampleWeb

processes/TaskCreationSync.java | - Accepts a JPDProxy request - Performs an XML to XML transformation on the input data - Creates and assigns a task using a Task Control
processes/TaskCreationTransformation.java | - Transformation file for XML to XML transformation
processes/MyTaskCtrl.java | - Task control used to create and assign tasks - Extends the default Task Control
processes/MyTaskWorkerCtrl.java | - Used to update task state and task data of an existing task (called during event handling)
processes/TaskCreationtaskCtrlcreateTask.xq | - Used to update task state and task data of an existing task (called during event handling)

Schemas Project

InputData.xsd | - Schema for input data used for creating a task

### Use Case 2 - Custom Worklist Queries

This use case does not require any custom server-side components.``