Administering Oracle Service Fulfillment Manager

This chapter covers the following topics:

Workflow Procedure Guidelines

Use the following rules during procedure definition.

Example Procedure Definition

The procedure builder provides a structure for building your procedures. For example, to build a new procedure, you simply insert your code into the following procedure definition.

/*******************************************************************************

This procedure calculate a new value for the Work Item parameter.

It has the follwoing input and output parameters:

p_order_id           IN NUMBER   -- order ID

p_wi_instance_id     IN NUMBER   -- wprlote, omstamce OD

p_param_val          IN VARCHAR2 -- parameter initial value

p_param_ref_val      IN VARCHAR2 -- reference value (if order amendment)

                     

p_parmam_eval_val    OUT VARCHAR2 -- parameter new value

p_param_eval_val     OUT VARCHAR2 -- parameter new value

p_param_eval_ref_val OUT VARCHAR2 -- new reference value (if order ammendment)

*******************************************************************************/

-- Enter your procedure below:

DECLARE

-- Your declarations...

BEGIN

-- Your procedure body...

END;

:

EXCEPTION

WHEN OTHERS THEN

RAISE

END;

Compiling Procedures

After creating a new procedure, you must compile it. The procedure builder prompts you with compilation errors if you have either of the following conditions exist:

The AOL Generic Loader

The Oracle Application Object Library loader is a general purpose data migration tool that is used for patching seed data, delivering translations, or copying setup or transaction data from development to production systems.

The loader is a concurrent program named FNDLOAD. Enter the following command at a UNIX prompt.

FNDLOAD apps/pwd 0 Y mode configfile datafile entity [ param ... ]

The table following lists the parameters used with this executable and describes them.

FNDLOAD Parameter List
Parameter Description
apps/pwd Specifies the APPS schema and password.
  • If the connect_string is omitted, it is taken in a platform-specific manner from the environment using the name TWO_TASK

0 Y Concurrent program flags
mode Specifies either UPLOAD or DOWNLOAD operation.
  • UPLOAD causes the specified data file to be uploaded to the database.

  • DOWNLOAD causes the loader to fetch rows and write them to the specified data file.

configfile Specifies the configuration file to use. .
  • The configuration file usually ends with a suffix of .lct, but this rule is neither enforced nor supplied by the loader

datafile Specifies the data file to write.
  • (DOWNLOAD) If the data file already exists, then it is overwritten.

  • The configuration file usually ends with a suffix of .lct, but this rule is neither enforced nor supplied by the loader.

entity Specifies the entity type to begin the download or upload.
  • If you wish to upload all of the entity types in a data file (.ldt), specify a dash (-) as the entity type.

param Specifies zero or more additional parameters that are used to provide bind values in the access SQL (for both the UPLOAD and DOWNLOAD operations).
  • Each parameter is of the form NAME=VALUE. The given NAME must not conflict with an attribute name for the entities being loaded.

Loader File Definitions

The table following lists the Loader files and provides a description of each.

Loader File Description
Name Description Conditions Parameters
xnpcbevt.lct Callback Events First run xnpmsgps.lct XNP_CALLBACK_EVENTS
  • MSG_CODE

xnpevtsb.lct Event Subscribers First load the fulfillment element data XNP_EVENT_SUBSCRIBERS
  • MSG_CODE

  • FE_NAME

xnpgeoas.lct Geographic Areas and Hierarchy First load the Areas, then the Hierarchy XNP_GEO_AREAS
  • CODE


XNP_GEO_HIERARCHY
  • CODE

xnpmsgak.lct Message Acknowledgments First run xnpmsgps.lct XNP_MSG_ACKS
  • MST_CODE

xnpmsgps.lct Messages None XNP_MSG_TYPES
  • MSG_CODE

xnpsnumr.lct Served Number Ranges First load the fulfillment element data, then run xnpsptre.lct XNP_SERVED_NUM_RANGES
  • STARTING_ NUMBER

  • FE_NAME

  • FEATURE_TYPE

xnpsptre.lct Service Providers None XNP_SERVICE_PROVIDERS
  • CODE

xnpstats.lct Porting Status Types None XNP_SV_STATUS_TYPES
  • STATUS_TYPE_CODE

xnptmrpb.lct Timer Publishers First run xnpmsgps.lct XNP_TIMER_PUBLISHERS
  • MSG_CODE

References

For additional information, see the files in the following application directories.

Creating an Activity or Process Timer

Perform the following steps to create either an Activity or Process Timer.

Prerequisites

None

Steps

  1. Open the iMessage Studio.

  2. Define the Activity Timer:

    • Specify the Internal Name.

    • Select Timer from the Type LOV.

    • Specify a Display Name.

    • Specify a Description.

    • Select a value from the Priority LOV.

    • Select Timer Queue from the Queue Name LOV.

    • Specify a Responsibility.

  3. Select the Data Source tab.

  4. Define the Delay and Interval for the Activity Timer:

    • Select the tree root for the timer.

    • Select SQL Query from the Data Source Type LOV.

    • Select One and Only One from the Data Source Cardinality LOV.

  5. Specify the Source for the timer.

  6. Select the Detail tab.

  7. Click Compile to compile the timer.

    If all goes well, the timer will compile without errors. If an error is encountered, verify that you have followed steps 2 - 5 above correctly.

  8. Click the View button to examine the PL/SQL package that is generated as a result of compiling the Activity Timer (if desired).

  9. Click Apply.

Source Guidelines

The source SQL structure for the Activity Timer must be of the following format:

SELECT D delay, I interval FROM dual

After setting the source SQL, you need to also:

  1. Select the Delay branch from tree root for the Activity Timer.

  2. Specify a reference for the Delay branch.

Delay Guidelines

The reference value Delay branch must map to the select-list specified in step 4 above. The reference value must be of the following format:

xnp$<activity_timer_name>.<select-list column name>

After setting the Delay reference value, you need to also:

  1. Select the Interval branch from tree root for the Activity Timer.

  2. Specify a reference for the Interval branch.

Interval Guidelines

The reference value Interval branch must map to the select-list specified in step 4. The reference value must be of the following format:

xnp$<activity_timer_name>.<select-list column name>

Creating a Message Timer

Perform the following steps to create a message timer.

Prerequisites

Before creating the message timer, you must first create the message with which it is associated.

Steps

  1. Open the iMessage Studio.

  2. Define a Message Timer:

    • Specify an Internal Name.

    • Select Message from the Type LOV.

    • Specify a Display Name.

    • Specify a Description.

    • Select a value from the Priority LOV.

    • Select Outbound Message Queue from the Queue Name LOV.

  3. Click Apply.

    You must then use the Event Subscriber to associate a Timer Message (Different Timer which is an Activity Timer) to this newly created message.

  4. Define Event Subscriber which is associated with a Timer

    • Access the Event Subscriber screen from the Configuration tab

    • Select the event defined in step 3 above

    • Click the Timers tab

    • Select the Activity Timer defined in step 3 above from the Timer LOV

    • Click Apply

Event Subscription

Applications register with the Event Manager if they need information on specific messages (events) or all instances of that message type. An application can be an external system, an operating system or a mediation layer.

Every message and event is sent to the Event Manager which becomes the source of distribution for events and messages. This is known as event subscription. Event subscription is a business process handled within Workflow.

Setting Up Event Subscription

In the Event Manager, it is possible for default subscribers to subscribe to specific events of the application. When a message occurs, the Event Manager ensures that an outbound message is automatically sent to the subscriber identified by a Fulfillment Element, OSS or gateway.

Responding to an Event

The Steps in Creating a Response to an Event

  1. Create the message or event that is to the trigger for a response.

  2. Configure an Acknowledgment/ Response to the message or event that you created in step 1.

  3. Link the Acknowledgment that you created in step 2 to the message/event that you created in step 2.

Automatic Responses

If desired, you can associate one or more responses with an event. A response is an acknowledgment to a message.

For example, valid message responses for the message "Is this an existing customer?" are:

These responses are messages in themselves and must be configured in Oracle Provisioning before they can be linked as responses to a message.

Administering the Oracle Service Delivery Platform

The Concurrent Manager framework provided by Oracle Applications is used to administer the Oracle Service Fulfillment Manager Concurrent Manager. The Concurrent Manager includes a specialized Controller program that is used by the Oracle Service Delivery Platform to start (or stop) adapters and/or dequeuers.

Orders within the Service Delivery Platform are processed using various queues. The processing of items of a queue is done with the help of dequeuers. These dequeuers are background processes which continuously poll a queue and process the items from the queue.

The Service Fulfillment Manager of various network elements is accomplished with the use of adapters. Adapters are processes which are specialized in certain protocols. (Telnet, FTP, or other protocols.). You direct the adapters to perform various tasks in the system.

Note: To administer the Oracle Service Fulfillment Manager Concurrent Manager, open the Administer Concurrent Managers form window available through Concurrent > Administer Manager.

Oracle SDP Start

Application Start is a concurrent request that is performed by the Oracle Service Fulfillment Manager Concurrent Manager.

You use the Application Start process to perform the following tasks:

The system automatically starts all the dequeuers and the Controller during the start process. If any dequeuers are already started, the number actually running is first determined, and matched against the number that are required to be started. The system automatically starts as many dequeuers as needed.

Note: You set the number of running dequeuers through the Queue Console, available through Administration > Queue Console.

Perequisites

Application Start and Stop are mutually exclusive processes. If one is pending, the opposite operation does not proceed until the first finishes. In addition, the Oracle Service Fulfillment Manager Concurrent Manager processes must be up and running.

Steps

  1. In the a Navigator, select Applications > Start.

    The Parameters box opens.

  2. Enter a value in the Options field from the drop-down list of values.

    See the Guidelines following for information on these choices.

  3. Enter a value in the Fulfillment Element field that is to be included (or excluded) from the application start process.

    This choice depends on the value that you chose in step 2, preceding. Again, see the Guidelines for details.

  4. Enter a value (0 - 3) for the Debug Mode.

    This value sets the level of logging that can be used for debugging purposes.

  5. Click OK.

    The Oracle SDP Start dialog box becomes available. Parameters that you set in the previous dialog box display in the Parameters field.

  6. (Optional) Click Copy, if you wish to use start parameters from a prior start request, otherwise proceed to step 7.

    If you chose this option, then select from the provided list and continue to step 10.

  7. (Optional) Click Languages..., if you wish to change the default language used in generating the log entries, otherwise proceed to step 8.

    If you chose this option, then place a check mark in the box next to the language, or languages, you wish to add. Continue to step 8.

  8. (Optional) Click Schedules..., if you wish to change the default time at which this request is to be run. Perform either a or b, following.

    1. Click Apply a Saved Schedule... to choose from a list of predefined schedules.

    2. Chose an option from the Run the Job... list.You can set how often, and when, you wish the start request to run. Depending on which radio button you check, a number of additional fields display so that you may specify exact dates and times.

  9. (Optional) Click Options..., to specify to whom, and in what language, you wish a notification to be sent. You can also direct the output log files to be sent to a specific printer.

  10. Click Submit to initiate the start process and to close the dialog box.

Note: Each request generates a Request ID. You can use this Request ID to view the request status and the log entries through the View Requests form window, available through Concurrent > View Requests.

Guidelines

Options: The table following lists the available choices. This option indicates which adapters are to be started. You must select from the provided list of values.

Fulfillment Element Select Options
Option Description
ALL All adapters (for all fulfillment elements) marked AUTOMATIC are started.
(You set an adapter to AUTOMATIC through Administration > Connection Manager. You can also use the Adapter Properties form window to configure adapter properties.)
INCLUDE Only adapters marked AUTOMATIC that are associated with the designated fulfillment element are started.
EXCLUDE All adapters marked AUTOMATIC are started, except for those associated with the designated fulfillment element.
NONE No adapters are started.

Fulfillment Element: Select the fulfillment element that is to be included or excluded (see the preceding table) from the application start. You must select from the provided list of values.

Debug Mode: Select the debugging mode to be used for the Controller and the dequeuer processes. You must select from the provided list of values.

The table following lists the available options.

Debug Options
Debug Level Description
0 No trace
1 Minimum trace
2 Medium trace
3 Maximum trace

Note: Adapters are started with the debug level configured through the Adapter Properties window.

Oracle SDP Stop

Application Stop is a concurrent request that is performed by the Oracle Service Fulfillment Manager Concurrent Manager.

You use the Application Stop process to perform the following tasks:

Prerequisites

Application Start and Stop are mutually exclusive processes. If one is pending, the opposite operation does not proceed until the first finishes. In addition, the Oracle Service Fulfillment Manager Concurrent Manager processes must be up and running.

Steps

  1. In the a Navigator, select Applications > Stop.

    The Parameters box opens.

  2. Enter a value in the Options field from the drop-down list of values.

    See the Guidelines following for information on these choices.

  3. Enter a value in the Fulfillment Element field that is to be included (or excluded) from the application stop process.

    This choice depends on the value that you chose in step 2, preceding. See the Guidelines for details.

  4. Enter a value for the Stop Mode.

    See the Guidelines following for information on these choices.

  5. Click OK.

    The Oracle SDP Stop dialog box becomes available. Parameters that you set in the previous dialog box display in the Parameters field.

  6. (Optional) Click Copy, if you wish to use stop parameters copied from a prior stop request, otherwise proceed to step 7.

    If you chose this option, then select from the provided list and continue to step 10.

  7. (Optional) Click Languages..., if you wish to change the default language used in generating log entries, otherwise proceed to step 8.

    If you chose this option, then place a check mark in the box next to the language, or languages, you wish to add. Continue to step 8.

  8. (Optional) Click Schedules..., if you wish to change the default time at which this request is to be run. Perform either a or b, following.

    1. Click Apply a Saved Schedule... to choose from a list of predefined schedules.

    2. Chose an option from the Run the Job... list.You can set how often, and when, you wish the start request to run. Depending on which radio button you check, a number of additional fields display so that you may specify exact dates and times.

  9. (Optional) Click Options..., to specify to whom, and in what language, you wish a notification to be sent. You can also direct the output log files to be sent to a specific printer.

  10. Click Submit to initiate the stop process and to close the dialog box.

    Note: Each request generates a Request ID. You can use this Request ID to view the request status and the log entries through the View Requests form window, available through Concurrent > View Requests.

Guidelines

Options: The table following lists the available choices. This option indicates which adapters are to be stopped. You must select from the provided list of values.

Fulfillment Element Select Options
Option Description
ALL All adapters, for all fulfillment elements, dequeuers and the Controller are stopped. This option signifies the complete application stop.
INCLUDE Only adapters marked AUTOMATIC that are associated with the designated fulfillment element are stopped.
EXCLUDE All adapters marked AUTOMATIC are stopped, except for those associated with the designated fulfillment element.

Fulfillment Element: Select the fulfillment element that is to be included or excluded (see the preceding table) from the application stop. You must select from the provided list of values.

Stop Mode: Select the mode to be used. You must select from the provided list of values.

The table following lists the available options.

Stop Mode Options
Debug Level Description
NORMAL This specifies the standard shutdown mode. Depending on the choice that you made under Options, this could be the entire system, or only a subset of it.
For example, if you select the NORMAL mode, and the Options value is set to ALL, then the following occurs:
  • If there are no adapters still processing orders, then all the dequeuers and the Controller are stopped.

  • If some of the adapters are still processing orders, all the dequeuers stop, except for the Event Manager. Once an adapter has finished processing an order, the Event Manager shuts the adapter down and a database job shuts down the Event Manager and Controller.

ABORT Specifies an abnormal mode of shutdown. All the running processes (as specified in the Options selection) are terminated at the operating system level.

Service Fulfillment Manager Procedure Macros

Oracle Service Fulfillment Manager comes with a set of predefined constructs that can be used to build procedures. These constructs are.

Send

The SEND macro accepts a command string as an argument. This command string is sent to the fulfillment element as the command to be executed. You use the SEND macro to “send” commands to the network elements.

Signature

The signature of the SEND construct is as follows:

SEND(<command > <varchar2>, <encrypt flag> <varchar2>, <prompt (optional)> <varchar2>, <err code (out)> <number>, <error string (out)> <varchar2>)

The application stores all the transactions sent and received, to and from the fulfillment elements in its audit trail. However, it also provides a mechanism that allows you not to store, or write sensitive information contained in the service order request to the audit trail, if desired. Responses from fulfillment elements may also carry the same sensitive information.

Therefore:

Syntax

The usage of the construct is defined as follows:

SEND(

<command> string which contains the command to be sent,this is where you specify your service parameters in $variable_name format. 

<‘Y' or ‘N'> to indicate whether the command response must be logged into the audit trail,

<prompt> is an optional field which indicates the prompt at the Network Element after the execution of <command>>

<a number place holder for the out parameter error_code>,

<a varchar2 place holder for the out parameter error string>

);

Restrictions

Note the following restrictions on the use of the SEND macro.

  1. For parameter values with white spaces, specify the corresponding $variable_names in double quotes.

  2. Eliminate white spaces between SEND and the "(" following it.

    Correct Usage: SEND(

    Incorrect Usage: SEND (

  3. Do not use SEND inside comments.

SEND_HTTP

The SEND_HTTP macro accepts a command string as an argument. This command is then sent to the fulfillment element as the command to be executed using the HTTP protocol. Typically, in this scenario, the command is an URL.

Signature

The signature of the construct is as follows:

SEND(

 <a string which contains the URL to be sent>  ,

<‘Y' or ‘N' indicator which indicates whether the URL should be logged into the audit trail>,

<a number place holder for the out parameter error_code>,

<a varchar2 place holder for the out parameter error string>

);

Restrictions

Note the following restrictions on the use of the SEND_HTTP macro.

  1. Eliminate white spaces between SEND_HTTP and the "(" following it.

    Incorrect Usage: SEND_HTTP (

    Correct Usage: SEND_HTTP(

LOGIN

The LOGIN macro accepts a command string as an argument. It uses the argument to initiate a connection. Use this macro to initiate a connection to a fulfillment element which has an interactive interface (for example, Telnet).

Note: The LOGIN construct should appear before the first SEND construct in the procedure.

Signature

The signature of the LOGIN construct is as follows:

LOGIN(

<a string which contains the command to be sent>  ,

< a string which contains the command response expected>,

<a number place holder for the out parameter error_code>,

<a varchar2 place holder for the out parameter error string>

);

SEND (Connection Procedure)

This SEND macro accepts a command string as an argument. It uses the argument to send the command set (connect) to the fulfillment element. One of the connection commands is executed.

Signature

The signature of the LOGIN construct is as follows:

SEND(

 <a string which contains the command to be sent>  ,

< a string which contains the command response expected>,

<a number place holder for the out parameter error_code>,

<a varchar2 place holder for the out parameter error string>

);

Restrictions

Note the following restrictions on the use of the LOGIN macro.

  1. Use the LOGIN macro once only before any SEND construct.

  2. Use the LOGIN macro only in a connect procedure.

  3. Do not use order, line, work item, and fulfillment action as service parameters. The $ variables are fulfillment element attributes, and, as such, can not be used as service parameters.

RESPONSE_CONTAINS

The RESPONSE_CONTAINS procedure macro is a PL/SQL function that compares a user-defined string against the string returned by a fulfillment element in response to the last command that it received. The macro returns TRUE if the two strings match, otherwise it returns FALSE.

Signature

The signature of the construct is as follows:

RESPONSE_CONTAINS(

    <a string which contains the string to be matched>

  ) 

    return BOOLEAN;

Restrictions

Note the following restrictions on the use of the RESPONSE_CONTAINS macro.

  1. Do not use $ variables.

  2. Eliminate white spaces between RESPONSE_CONTAINS and the "(" following it.

    Incorrect Usage: RESPONSE_CONTAINS (

    Correct Usage: RESPONSE_CONTAINS(

GET_RESPONSE

The GET_RESPONSE macro returns the response string from the fulfillment elements for the last command sent.

Signature

The signature of the construct is as follows:

GET_RESPONSE return VARCHAR2

Syntax

The usage of the construct is defined as follows:

  err_code number;

  err_str     varchar2(400);

  lv_user varchar2(80);

BEGIN

  lv_user := GET_PARAM_VALUE(‘$WI.user');

SEND(‘AddProfile -h $WI.hostname -p $FA.dbport -u $WI.user', ‘Y', err_code, err_str);

IF RESPONSE_CONTAINS(‘profile already exist') THEN

  NOTIFY_ERROR(‘Error when Service Fulfillment Manager Cisco Secure HA Server. Subscriber ‘ || lv_user || ‘ already exists','A'); 

  RETURN;

END IF;

EXCEPTION

  WHEN OTHERS THEN

  RAISE;

END;

Restrictions

Note the following restrictions on the use of the GET_RESPONSE macro.

  1. Do not use $ variables.

  2. Eliminate white spaces between RESPONSE_CONTAINS and the "(" following it.

    Incorrect Usage: GET_RESPONSE (

    Correct Usage: GET_RESPONSE(

GET_PARAM_VALUE

Use the GET_PARAM_VALUE procedure macro to obtain the value of the parameter during run-time.

Signature

The signature of the construct is as follows:

GET_PARAM_VALUE (<parameter name> <varchar2>) return VARCHAR2

When using this macro, specify the parameters as a $ variable. For example, parameter TN (if used inside a Service Fulfillment Manager procedure), is specified as $ORDER.TN.

Restrictions

Note the following restriction on the use of the GET_PARAM_VALUE macro.

  1. Eliminate white spaces between GET_PARAM_VALUE and the "(" following it.

    Incorrect Usage: GET_PARAM_VALUE (

    Correct Usage: GET_PARAM_VALUE(

NOTIFY_ERROR

The NOTIFY_ERROR procedure macro indicates an abnormal exit point from the procedure. The Service Fulfillment Manager of a service order request at a fulfillment element has an ERROR status.

This macro appends or replaces a response initiated by the fulfillment element / network element. This is the input string.

Signature

The signature of the construct is as follows:

NOTIFY_ERROR(<user's string> <varchar2>, <mode> <char>)

Guidelines

  1. You use this macro under the following conditions:

    • You want to identify errors coming from the fulfillment element during the Service Fulfillment Manager process.

    • You want to identify errors when exiting from the Service Fulfillment Manager procedure.

  2. You use the NOTIFY_ERROR macro to abort a Service Fulfillment Manager procedure.

  3. You must follow every NOTIFY_ERROR instance in the procedure by a RETURN statement. This is the only way to abort the execution of the Service Fulfillment Manager procedure.

  4. The Service Delivery Platform uses the <user's string> to display the Service Fulfillment Manager errors of a failed Service Order Request. Make this name user-friendly. This name provides the ability to translate cryptic network element error messages into those that are more user friendly.

Example Service Delivery Platform Procedures

Following are several example workflow procedures:

Example Service Fulfillment Manager Procedure

DECLARE

err_code number;

err_str     varchar2(400);

lv_user varchar2(80);

BEGIN

lv_user := GET_PARAM_VALUE (‘$user');

  SEND(‘AddProfile -h $hostname -p $dbport -u $user', ‘Y', err_code, err_str);

  IF RESPONSE_CONTAINS (‘profile already exist') THEN

     NOTIFY_ERROR(‘Error when Service Fulfillment Manager Cisco Secure HA Server. Subscriber ‘ || lv_user || ‘ already exists','A'); 

RETURN;

 END IF;

EXCEPTION

WHEN OTHERS THEN

   RAISE;

END;

Example Connect Procedure

DECLARE

err_code number;

err_str     varchar2(400);

lv_user varchar2(80);

BEGIN

LOGIN(‘telnet $ip_address', ‘login:', err_code, err_str);

SEND(‘$username', ‘$Password:', err_code, err_str);

SEND(‘$Password', ‘$', err_code, err_str);

EXCEPTION

WHEN OTHERS THEN

   RAISE;

END;