This chapter provides information on modifying custom client applications and custom reports to work with the Oracle Communications Billing and Revenue Management (BRM) Account Migration Manager (AMM) software. It also provides the list of AMM return codes that are used for automating AMM.
This chapter is for system administrators, database administrators, and programmers. Modifying applications for AMM requires knowledge of the following:
BRM error handling
BRM database schema
BRM opcodes
BRM Reports
Custom client applications that connect to a specific database schema and try to access an object based on a POID may receive a PIN_ERR_INVALID_OBJ error if the object was migrated to another database schema. You must modify any custom client applications to handle that error and then perform a global search to find the object's correct location.
To obtain the correct POID of a storable object, modify your application to call the PCM_OP_GLOBAL_SEARCH opcode from its exception handling routine.
This example shows a call to the PCM_OP_GLOBAL_SEARCH opcode when the PIN_ERR_INVALID_OBJ error is returned from the Oracle DM:
/* Error? */
if (PIN_ERR_IS_ERR(ebufp)) {
PIN_ERR_LOG_EBUF(PIN_ERR_LEVEL_ERROR,
"sample_read_obj_search error", ebufp);
}
/* Call the DM to do a global search.*/
PCM_OP(ctxp, PCM_OP_GLOBAL_SEARCH, 0, flistp, &r_flistp, ebufp);
return;
The following opcodes return the PIN_ERR_INVALID_OBJ error when a POID specified in an input flist is invalid:
PCM_OP_READ_OBJ
PCM_OP_READ_FLDS
PCM_OP_WRITE_FLDS
PCM_OP_INC_FLDS
PCM_OP_DELETE_OBJ
PCM_OP_DELETE_FLDS
PCM_OP_TRANS_OPEN
After account migration, any custom BRM reports created before Infranet Release 6.2 ServicePak1 might retrieve and process duplicate data from your source and destination database schemas. For example, if an account object is migrated from database schema 0.0.0.1 to database schema 0.0.0.2, your report might retrieve the account object from both database schemas.
To prevent this, use the Oracle Business Intelligence Publisher to add the following line to the WHERE clause of each custom report's query:
TABLE_T.POID_DB > 0
where TABLE_T satisfies these conditions:
It is a database table used by the report.
It is one of the tables moved from the source database schema to the destination database schema when account data is migrated.
It is associated with every record the report must retrieve.
Note:
If a single table does not satisfy the last condition, add the same line for several tables that together satisfy the last condition.AMM uses the return codes and messages shown in Table 37-1. To automate account migration, you can modify your external application to check for the following return codes and respond appropriately.
Table 37-1 AMM Return Codes and Messages
| Return Code Number | Return Code | Return Message |
|---|---|---|
|
100 |
CONTROLLER_STARTED_SUCC |
controller is started |
|
101 |
CONTROLLER_STOPPED_SUCC |
controller is stopped |
|
102 |
CONTROLLER_PAUSED_SUCC |
paused controller |
|
103 |
CONTROLLER_CONTINUED_SUCC |
continued controller |
|
104 |
CONTROLLER_UP_SUCC |
controller status is up |
|
105 |
CONTROLLER_DOWN_SUCC |
controller status is down |
|
106 |
SUBMIT_JOB_SUCC |
submitted job |
|
107 |
DELETE_JOB_SUCC |
deleted job |
|
108 |
PURGE_DATABASE_SUCC |
purged database |
|
109 |
ENABLE_JOB_SUCC |
enabled job |
|
110 |
REPORT_SUCC |
generated report |
|
111 |
ENABLE_BATCH_SUCC |
enabled batch |
|
200 |
CONTROLLER_RUNNING_ERROR |
ERROR: controller is already running |
|
201 |
CONTROLLER_PAUSED_ERROR |
ERROR: controller is already paused |
|
202 |
CONTROLLER_SPEC_ACCESS_ERROR |
ERROR: controller specification does not exist |
|
203 |
CONTROLLER_COMM_ERROR |
ERROR: controller cannot be reached |
|
204 |
SEARCH_SPEC_IO_ERROR |
ERROR: account search specification could not be accessed |
|
205 |
OPERATION_ROLLBACK_ERROR |
ERROR: operation rollback |
|
206 |
SEARCH_SPEC_PARSE_ERROR |
ERROR: account search specification cannot be parsed |
|
207 |
OPERATION_PERM_ERROR |
ERROR: operation not permitted for current user OR job_id/batch_id does not exist |
|
208 |
CONTROLLER_UNKNOWN_HOST_ERROR |
ERROR: controller host not found |
|
209 |
CONTROLLER_PROCESS_ERROR |
ERROR: controller process could not be created |
|
210 |
REPORT_PROCESS_ERROR |
ERROR: external process interruption |
|
211 |
REPORT_SCRIPT_ACCESS_ERROR |
ERROR: reporting tool not found or report type does not exist |
|
212 |
OPT_PARAM_REQ_ERROR |
ERROR: one optional parameter is required |
|
213 |
CONFIG_FILE_ACCESS_ERROR |
ERROR: configuration file cannot be accessed |
|
214 |
INIT_ERROR |
ERROR: could not create new object |
|
215 |
EMPTY_RESULTSET_ERROR |
ERROR: account search resulted in 0 accounts, job submission failed |
|
216 |
CONVERSION_CLASS_LOAD_ERROR |
ERROR: dynamic loading of custom Conversion class failed |