Troubleshooting Assignment Manager

This chapter covers the following topics:

Common Implementation Errors for Assignment Manager

In order to use the full functionality of the Assignment Manager selection criteria, Assignment Manager depends on other setup tasks outlined in the Setting up other dependencies section.

This section contains information on some of the common implementation errors associated with implementing Assignment Manager.

Unable to Find Resources

Action: Use the following solutions to return resources:

Verify If Territories Are Set Up Correctly

Perform the following steps.

  1. Create new territories for your testing and have a test plan.

    For example, which territories and resources should be returned? This will help in debugging real problems.

  2. Make sure that territories are ranked correctly. Territory Manager uses rank to determine the picking order for territories.

  3. Make sure that you have the correct transaction types defined for the territories. If you want a territory to be used for service request and task, then make sure you have "Service Request" and "Task" as transaction types. If a territory is used for a task created within a service request, then you need to select "Service Request and Task" as the transaction type.

  4. Make sure that you have resources attached to the territory.

    Rules of Territories: If there are no resources attached to a territory and the effective dates are active, then the territory will be considered a place holder territory. That is, it will not qualify as a winning territory.

    Note: If you make changes to territories, make sure that you run the territories concurrent program to reflect the changes made to the territories.

  5. Make sure that you have given the right access to resources, if you have decided to make use of the Access Type feature.

    For example: A CA Territory with transaction types "Service Request" and "Task". If you add a resource John Doe and select Service Request only in the Access Type field, then even if this territory qualifies for a task assignment, it will not return the resource John Doe, since he does not have Task access type selected, but Service Request access only.

    However, if the Access Type field is left blank, then this resource is eligible for receiving both task and service request assignments. Notice that this resource will not be selected for a task assignment created within a service request because the transaction type "Service Request and Task" is not selected in the Overview tab when defining the territory.

  6. Make sure that you run the territories concurrent program once you are satisfied with your territory setup and updates. Unless you do this, changes will not take effect.

  7. Make sure to delete and re-attach the resources again to the territories that have resource roles added later in the Resource Manager after territory creation.

    For a resource attached to a territory, we store the resource-id, resource type, and role associated with that resource. However, for a few of them, the role is blank (NULL), as there was no role defined in Resource Manager at the time you created the territory. But at some point later, someone added roles to these resources in Resource Manager and then the Territory stopped returning these resources as there was no corresponding record in Resource View (Join Failed). In order to fix the problem, you need to delete and re-attach the resources to the territory.

    The API will return the resource, but the role will be blank even though you may see a role in Resource Manager for that resource.

  8. Make sure that TCF server is up and running by using the script - adtcfctl.sh stop/start.

Recompile JTY_ALL_ENABLED_ATTRIBUTES_V View

Ask your database administrator to recompile the form where Assignment Manager is invoked if an error messageFRM-92000:ORA:1403 occurs. This refreshes the view so that data could be populated in JTY_ALL_ENABLED_ATTRIBUTES_V view.

Delete Duplicate Qualifiers

It is possible that all of the territory qualifiers were duplicated.

Action: Clear the duplicate Transaction Type field in the Overview tab and manually delete duplicate qualifiers. Test this action first by copying one of the existing territories and delete duplicate qualifiers.

Displaying Start and End Date Time Incorrectly for a Selected Resource

The Assignment Manager displays the start and end date/time incorrectly for a selected resource.

Cause: This will happen if Oracle Inventory setup steps aren't performed properly.

Action: Use the following steps for resolution:

  1. In the Task tab of the Service Requests window, select Hour in the Planned Efforts field.

  2. Click the Assignment Manager icon in the Task tab of the Service Requests window to launch the Assignment Manager.

  3. In the Document Details region of the Assignment Manager window, make sure that you see HR populated in the Duration field after the number information, such as 9 HR for 9 hours.

    Note: The unit of measure is set by the profile option JTFAM: UOM code used by Assignment Manager for Tasks. If the profile option is not set, then "HR" is the only value used for task assignment.

    If you do not see HR as the value in the Duration field, then follow the given steps to set up correct units of measure information:

    1. Log in with the Inventory Superuser responsibility. Select Setup > Units of Measure > Units of Measure.

    2. Choose your organization.

    3. Query for Time in the Class field.

    4. Add the following record:

      • Enter Hour-Task in the Name field.

      • Enter HR in the UOM field.

      • Enter Hour-Task in the Description field.

      • Leave the Base Unit field bank.

      • Enter Time in the Class field.

    5. Save the record.

      After changing the setting of UOM, use the following steps for verification:

    6. In the Task tab of the Service Requests window, select Hour-Task in the Planned Efforts field.

    7. Try to assign this task to a resource using Assignment Manager. In the Document Details region of the Assignment Manager window, make sure that you see HR populated in the Duration field after the number information.

  4. Double-click the resource that you want to assign to a task.

  5. Verify if the start and end date/time information are properly displayed in the Assignment Manager window as you expected.

Returning Individual Resources for a Group Owner

Cause: This problem can be caused by the following reasons:

Background Analysis: When Assignment Manager tries to retrieve group or team resources, it checks the usage value (such as Support usage) set in the JTFAM: Usage for Groups and Teams profile option. Based on the value (Support usage), Assignment Manager then searches for the matched groups or teams with the same usage identified in Resource Manager. Those matched group or team resources can then be displayed in the Assignment Manager. However, if there is no Support usage specified in Resource Manager for any groups or teams, then Assignment Manager returns no group resource.

Additionally, make sure to position your cursor in the Group Owner field after selecting a group type so as to enable the Assign Group button. Otherwise, the Assign Owner is enabled if your cursor is in the Owner field. Click Assign Group to launch Assignment Manager to retrieve group resources.

Action: Perform the following steps to set up Support group usage in Resource Manager:

  1. Log in with the CRM Administrator responsibility.

  2. Select Resource Manager > Maintain Resources > Groups to open the Define Groups window.

  3. Query up your group first.

  4. Select the Usages tab.

  5. Use the LOV in the Usage field and select Support for the group usage.

  6. Save your information.

Error Messages for Assignment Manager

This section contains information on some of the error messages associated with implementing Assignment Manager.

APP-JTF-210807

APP-JTF-210807: No Resource Found. Please try again.

Cause: This error usually occurs because the territories are not set up correctly.

Action: Verify territory setup process by using the procedure outlined in the Verify If Territories Are Setup Correctly section .

FRM-92000:ORA:1403

FRM-92000: ORA:1403: No data found

Cause: This error occurs while invoking Assignment Manager. This may happen when data is missing from the JTSEEDED_QUAL_USGS_V view.

Action: Ask your database administrator to recompile the form where Assignment Manager is invoked. This refreshes the view so that data could be populated in JTSEEDED_QUAL_USGS_V view.

Troubleshooting Tips for Assignment Manager

  1. Assignment Manager supports the following resource categories used in Resource Manager:

    • Employees

    • Parties

    • Partners

    • Groups

    • Teams

    • Supplier Contacts

  2. If the Unassisted assignment option is selected, predefined search criteria such as preferred resources, territories, and resource availability will not be available.

  3. Shift schedules displayed in the Gantt chart with yellow background are defined in the Forms-based Calendar module.

  4. No end dated resources are selected in the Assignment Manager with the Unassisted and Assisted assignment options. All the resources that are displayed in the Assignment Manager are valid and active resources.

Troubleshooting Tips for Gantt

In many cases, if the Gantt chart in the Assignment Manager window does not work properly, the problem stems from an incorrect configuration of the TCF server.

Common Issues

In general, problems with the configuration and setup of the Gantt chart fall into the following categories. They are:

If you are experiencing problems with the Gantt chart, then do the following:

  1. First perform the steps listed under General Advice.

  2. If this does not clear up the problem, then see the individual sections for the listed problems.

General Advice

The following items are general suggestions to follow in troubleshooting problems relating to the Gantt chart.

  1. Clear out the JInitiator jcache directory, close and restart the browser, and try again. Old, cached JAR files could be causing the problem.

  2. Shut down and restart the TCF server. If a patch is applied, then the new code is not picked up by the runtime engine until the TCF server is restarted.

  3. Check the JInitiator Console Window for exceptions or informational messages.

  4. Ensure that there are no invalid objects in the database. You can use the adadmin utility for this purpose.

  5. If an invalid object is found, correct the problem, then make sure that the offending form is recompiled (along with its libraries). This can be done through the adadmin utility.

  6. If problems continue, then perform the steps listed in the following sections as appropriate:

Gantt Chart Does Not Appear

One of the most common problems is that a Form does not display the Gantt chart properly. One, or both, of the following symptoms can occur:

  1. The Form displays an empty blue or gray area where the Gantt chart should reside.

  2. The JInitiator console window throws a ClassNotFoundException, referring to classes in oracle.apps.jtf.gantt.

Causes

The following are some of the possible causes for this condition:

  1. The jtfgantt.jar file has not been downloaded onto the client machine. The JInitiator console window must include a line similar to the following:

    Opening http://<serverHost>/OA_JAVA/oracle/apps/jtf/jar/jtfgantt.jar no proxy 
    
    

    It should not read:

    Unable to contact http://<serverHost>/OA_JAVA/<some path>/jtfgantt.jar 
    
    
  2. Class files are missing from jtfgantt.jar or fndlist.jar.

  3. An old version of jtfgantt.jar resides in the JInitiator jcache directory.

  4. The appsweb.cfg file is customized and does not include an entry for /OA_JAVA/oracle/apps/jtf/jar/jtfgantt.jar.

  5. The appsbase.html file, or the HTML page used to launch applications, is customized and does not pick up the archive tag from appsweb.cfg.

Actions to Take

  1. Clear out the JInitiator jcache directory on the client and restart browser.

  2. Verify that jtfgantt.lst is included in fndlist.jar.

    1. First take a copy of fndlist.jar, then rename it to fndlist.zip, and use Win Zip to open the file.

    2. Verify that jtfgantt.lst in fndlist.jar lists approximately 26 class files.

  3. Perform the actions described in step 2, but for jtfgantt.jar and verify that it contains the files listed in jtfgantt.lst.

  4. Ensure that the JInitiator console window does not list any class files as being individually downloaded.

    If this is the case something is wrong in the installation. Class files should be downloaded within JAR files and nowhere else.

  5. If Actions 2 through 5 do not verify properly, then perform the following additional actions:

    1. Force the regeneration of the FND and JTF JAR files through the adadmin utility.

    2. Restart the Forms (web) listener and the Forms server. Clear out the JInitiator cache directory, and restart the browser.

    3. Try Actions 2 through 5 again.

  6. Critical! Verify that all high priority FND (AOL) patches are applied.

  7. For the items listed as 4 and 5 in this section, launch the applications. In Netscape Navigator, select "View Source" and verify that /OA_JAVA/oracle/apps/jtf/jar/jtfgantt.jar is included in the archive tag.

    If it is not included, then add the entry to files appsweb.cfg and appsbase.html.

Cannot Connect to TCF Server

Note: If you are unable to establish a TCF connection, then a generic TCF setup problem could exist. Contact your System Administrator or Oracle Support representative to resolve the issue. Until this issue is resolved, Gantt will not work properly.

There are several different errors that you could encounter when attempting to connect to the TCF server, and several different reasons each error could occur.

In general, there are three basic types of errors that can affect server connection:

Each type of error is discussed in the following sections.

Unable to Connect to the TCF Server

The standard error message for this is:

"The application was unable to establish a network connection with the TCF SocketServer listening on port: <port> on host: <host>. Contact your system administrator."

The exact message may vary slightly between versions and products.

You may also see the following:

"Unable to connect to dispatcher."

Items to check:

Unable to Connect to the Database

The standard error message for this is:

"The TCF SocketServer running at <host>:<port> was unable to make a JDBC connection to database <dbname>. This may reflect heavy load on the system, or a problem with the indicated database. If this problem persists, contact your system administrator."

You may also see the following:

"Unable to set context."

Items to check:

Application Hangs Upon Connecting to the TCF Server

Try connecting using the ServerControl class if hanging problems are reported. If it still hangs, then typically this indicates one of the following:

  1. There is a bug in the code, or that there is an environment setup problem.

    Check the debug output on the server to see if there is anything obvious that needs to be corrected, and check the bug database to see if this type of problem has been previously reported.

  2. The wrong protocol was used to establish the connection.

    Ensure the TCF server is speaking the same protocol as the client. Supported protocols are SOCKETS, HTTP, and SSL. The client must use the same protocol as the Forms server.

  3. The TCF server attempts to exit the loop in which it accepts connections from the client, but does not really do so.

    This type of error is probably the most common. If the TCF server stops accepting connections from the client, then it closes the socket and exits immediately.

    Unfortunately, this does not explain why the TCF server stopped accepting connections in the first place. Determining the reason is a more involved process. One very possible reason is the TCF server ran out of memory. The most useful thing to do in this case is to check the debug output and see if any errors are logged.

No Resources Are Visible

If you experience problems with the proper display of resources in the Gantt chart, then perform the steps listed in the following table.

Trouble Shooting the TCF Server
Tip Description
View the JInitiator console window error messages. View the JInitiator console window error messages and the exceptions thrown.
Consult the TCF server log file. View the TCF server log file for relevant information.
Verify the TCF server status. Use the ServerControl class to check whether or not the TCF server is accepting connections on the host and port on which it was started.

View the JInitiator Console Window Error Messages

The single most useful thing that you can do to do to troubleshoot server problems is check the JInitiator Console window on the client machine. Some debug information is output by default, and errors raised here are often very descriptive and give a good indication of what the problem is.

If that window is no longer available, then restart the browser, set the "Show Console" check box in the JInitiator control panel, and restart the application.

The following listed items are a few of the exceptions that can be thrown, and reported in the JInitiator Console window.

  1. java.net.ConnectException: Connection refused

    Usually this means that the TCF server is not running, or that the TCF:HOST / TCF:PORT profile options are pointing to a wrong server or port.

  2. Gantt TCF HOST:<http://hostname> PORT:<port#>

    This refers to the TCF:HOST/PORT settings passed into the Gantt chart.

    Verify the TCF Host Name and Port Number:

    • If the host name is prefixed with "http://", then the client attempts to connect to the TCF server using the HTTP protocol.

    • If this prefix is missing, then the client attempts to contact the server using the SOCKETS protocol.

      Note: If the TCF server and client do not use the same mode, then the client cannot establish a connection.

  3. gantt: tcfSetAppsContext <filename>.dbc

    The <filename> listed in the error must exactly match the filename that was specified in the DBC parameter when starting the TCF server. If this is not the case, then rename the file to match that specified in the DBC parameter.

  4. java.lang.ClassNotFoundException:javax.net.ssl.SSLSocket

    The client side SSL libraries are meant to be included with JInitiator. However, in some older versions of JInitiator, this did not happen due to US export restrictions that have since been lifted.

  5. java.io.EOFException .... < 3-5 lines of text> at oracle.apps.fnd.tcf.net.SocketServerConnection.readBigUTF( SocketServerConnection.java)

    This exception usually occurs after the client tries to connect to the TCF server using the wrong communication protocol. The message indicates that the TCF:HOST profile is not set correctly. Verify the TCF Host Name and Port Number.

  6. gantt: addbar failed, resource not found (<Resource Type> - <Resource Id>)

    One common cause for this exception is described in bug 1414546, which is dependant on the Forms-based Calendar bug 1415863 for resolution. If this is the case, then ensure that the resource does not have a Calendar Exception assigned that spans the entire duration of a shift.

  7. java.net.UnknownHostException: <host>

    This exception is thrown when the TCF:HOST profile is set to a server that is not recognized by the client.

    Verify that the TCF:HOST profile is set correctly, and that the client machine can access the server using the <host> displayed in the exception.

    One way to check is to open a DOS window (on a Microsoft Windows machine) and type in "ping <host>." If the host is inaccessible from the client, then the response returns a "Bad IP address <host>" message.

Consult the TCF Server Log

You can view the TCF server log to obtain further information. To set up the log file for automatic logging, perform the following steps:

  1. Add the following to the command line:

    OUTPUTFILE=/tmp/<logfile>.log LOGLEVEL=STATEMENT
    
    
  2. Bounce (stop and restart) the TCF server.

  3. Run the application again.

  4. Check the log file to see if there is anything in the log file that may indicate what the problem may be.

    Errors of the following type can be due to bug 1510941.

    java.lang.NullPointerException
    at oracle.jdbc.oracore.OracleTypeNUMBER.unpicklerec(Compiled Code)
    at oracle.jdbc.oracore.OracleType.unpicklerec(Compiled Code)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpicklerec(Compiled Code
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle(Compiled Code)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle(Compiled Code)
    at oracle.jdbc.oracore.OracleTypeADT.unlinearize(Compiled Code)
    at oracle.sql.ArrayDescriptor.length(Compiled Code)
    at oracle.sql.ARRAY.length(Compiled Code)  
    at oracle.sql.ARRAY.getArray(Compiled Code)  
    at oracle.apps.jtf.gantt.server.GanttDataServer.getShifts 

Verify the TCF Server Status

You can also use the ServerControl class to check whether or not the TCF server is accepting connections on the host and port on which it was started.

To do this, log onto the machine where it was started and run:

jre oracle.apps.fnd.tcf.ServerControl STATUS <port#>

One of the following can occur:

TCF Server and Forms Server Mode

Make sure the TCF Server and Forms Server runs in the same mode (Socket or Http) to get the Gantt and Assignment Manager to work properly.

Resolution:

To check what modes they are running in check the following files in the $COMMON_TOP/admin/scripts:

Gantt Frequently Asked Questions (FAQs)

The following are frequently asked questions. Answers to these questions may help you in troubleshooting problems with TCF Server.

How to Check the Status of the TCF Server?

Answer: Execute the script ‘adtcfctl.sh status' or use the server control class to check jre oracle.apps.fnd.tcf.ServerControl STATUS

How Do I Start or Stop the TCF Server?

If TCF Server is not running it could be the reason the Assignment Manager will not function properly

Action: In Unix under $OAH_TOP/admin/script execute adtcfctl.sh stop/start.

Checking the TCF:HOST and TCF:PORT profile options

What type of values should they contain?

Resolution:

  1. If connectMode=http, set profile option TCF:Host to 'http://.' TCF:Host http://:/oa_servlets TCF:HOST is automatically updated to the same value as the APPS_SERVLET_AGENT Profile option. If the APPS_SERVLET_AGENT profile contained a value ending with the virtual directory OA_HTML, it should end with the name of a valid servlet zone.

  2. If connectMode=socket, set profile option TCF:Host to just '.' -- omit 'http://'

  3. Make sure that the profile option value of TCF:Port is the port that the TCF Socket Server is listening on. TCF:PORT -1.