Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

Preparing for

the Cloud
Oracle Utilities Application Framework (4.4.0.2.0)

WHITE PAPER / OCTOBER 2019


DISCLAIMER
The following is intended to outline our general product direction. It is intended for information
purposes only and may not be incorporated into any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing decisions. The
development, release, and timing of any features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.

2 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Table of Contents
Introduction .................................................................................................. 5

Overview ...................................................................................................... 5

Cloud Principles ........................................................................................... 6

Cloud is a Solution not just an install ........................................................................................... 6

Restrictions in the Cloud .............................................................................................................. 6

Cloud Migration Process .............................................................................. 7

Establish Migration Environment ................................................................................................. 9

Migrate Extensions ...................................................................................................................... 9

Import Extensions Into Cloud....................................................................................................... 9

Other Extension Types to Migrate ............................................................. 10

Migrating your Batch Schedule to the Oracle Cloud ...................................................................10

Using Meta Data to Identify Objects to Remediate .................................... 10

Custom Batch Controls To Remediate .......................................................................................11

Custom Algorithms to Remediate ...............................................................................................12

Custom Foreign Key References................................................................................................13

Custom Audit Programs .............................................................................................................15

Custom Program Components (Legacy) ....................................................................................16

File Paths on Batch Controls ......................................................................................................17

3 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Custom Tables ...........................................................................................................................19

Custom External System XSL ....................................................................................................20

Custom Inbound Web Services XSL ..........................................................................................23

Custom Database Objects ..........................................................................................................25

Objects Not Supported .............................................................................. 26

Cloud Migration Best Practices .................................................................. 27

Migrate to the Accelerator ..........................................................................................................27

Start Simple ................................................................................................................................28

4 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
INTRODUCTION

The Oracle Utilities SaaS Cloud offerings are a cost-effective way of


implementing Oracle Utilities products. In terms of Configuration
Management, the process for migrating on-premise to Oracle Cloud needs
to optimize the extensions for the target platform.

OVERVIEW
The Oracle Utilities Cloud is a fully featured Software As A Service version of the relevant Oracle Utilities
product optimized for the infrastructure. From a Configuration Management perspective, it contains the
following aspects:

• Oracle Utilities Product. This is the cloud version of the Oracle Utilities product including the
browser-based development and configuration management tools for each environment. From a
development point of view, an environment is provided to build and test extensions from the browser
interface.

• Oracle Utilities Cloud Services Foundation. This is a cloud exclusive product that provides a set of
capabilities to manage your cloud instances and aspects typically associated with implementation
such as scheduling and data maintenance. There are utilities in this product that will touch on
configuration management.

• Oracle Cloud Console. This is a console available for all Oracle Cloud offerings to allow some level
of control and some tracking capabilities at the cloud service level for you as a tenant of the cloud.
This typically will cover ANY Oracle Cloud service including IaaS and PaaS service that you may
obtain from Oracle. This component of Configuration Management will not specifically cover this
aspect of the cloud solution. It is mentioned only for completeness.

In the Oracle Cloud there are typically three groups of users, at a minimum:

• Business Users. This is a broad group of users including call center users as well as administration
accounts that maintain meta data on behalf of the business. This group of users typically uses the
main instance of the product for most of their work.

• Developers/Partners. These are users responsible for extending the cloud instance and any
configuration management activity around those extensions.

• Cloud Administration. These are users that are responsible for the technical side of the cloud
instances. In some cases, these are IT personnel and in some, these are key users responsible for
liaison with the cloud vendor. They would have access to the cloud infrastructure using the various
consoles for all Oracle Cloud services they have responsibility for.

The figure below summarizes the relationship between the group of users and the cloud aspects for an
Oracle Utilities Cloud solution:

5 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Business Users Developers Cloud Admin

Oracle Utilities
Oracle Utilities Product Oracle Cloud Console
Cloud Services Foundation

Figure 1. Relationship of users and cloud offerings.

CLOUD PRINCIPLES
Before discussing the migration of on-premise extensions and data into the Oracle Cloud there are a
few principles that need to be discussed and understood to frame the discussion.

Cloud is a Solution not just an install


A common misconception of the Oracle Utilities Cloud SaaS solutions are they are just a managed install
of the appropriate Oracle Utilities product. This is not the case in terms of SaaS. They are designed as
a solution not just an install for several reasons:

• Designed for Scalability and Availability. All the technical performance aspects of the product are
managed by the Oracle Cloud team. The customer agrees a Service Level Agreement as part of the
contract which is automatically tracked and reported as per the agreement by the Oracle Cloud team.
The customer only must manage the network connectivity to the cloud instance (directly or indirectly).

• Prebuilt Integration and Architecture. The Oracle Utilities SaaS Cloud instances are managed
using prebuilt integrations for security and architecture. The integration for security and other
integrations come in a prebuilt format ready for use.

• A Box with an API. The easiest way to visualize the cloud instance is a box containing functionality
this is accessible from several API's (some are inbuilt in ConfigTools, others are available via SOAP
and/or REST). The contents of the box are hidden to reduce risk and cost and if you live within the
API then the implementation is successful.

Restrictions in the Cloud


The reason that the Cloud is popular across the industry is the reduction of risk. Typically, within non-
cloud implementations, the risk is completely the responsibility of the customer. This applies to all on-
premise and even some cloud implementations that are non-Oracle cloud. The stack from the hardware
to the software is owned and managed by the customer. The only part of the solution Oracle is
responsible for is providing the software to download in the first place. Conversely, on the Oracle Cloud
implementations of the Oracle Utilities products, part of the risk will be worn by Oracle itself. In Oracle
IaaS and Oracle PaaS, the risk to Oracle is somewhat reduced but it is still less overall risk carried by
the customer.

6 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
In Oracle Utilities SaaS Cloud implementations, the risk is greater for Oracle in terms of provisioning a
usable system that performs up to expectations. To mitigate that risk and keep cloud cost effective
means enforcing restrictions compared to on-premise, IaaS and PaaS implementations of the same
technology. The restrictions are to keep the implementation as low as risk as possible for both parties
as well as providing some level of flexibility. These restrictions are not imposed to restrict flexibility but
to take full advantage the platform offers.

Here is a summary of the pertinent restrictions:

Restrictions

RESTRICTION REASONING COMMENTS

No Java Based There are several reasons for this This is a cost and control issue
Extension Supported restriction: mainly in the Oracle Cloud.
• Build and Deploy Needed. Java Customers should use Groovy or
requires a distinct build and ConfigTools for these types of
deployment event to implement extensions as they require no
change. This may require outages as Build/Deployment activities and
well as add manual costs for are whitelisted.
deployment.
• Java Has Low Level Access. Java
has operating system level access
which increases risk.

Whitelist Imposed Several security-based whitelists are Where a method is restricted for
imposed to restrict the direct use of low direct access and is required, a
level API's to lower risk. safe API is provided to replace
that method as necessary. For
example, file path definitions are
now defined in metadata using
File Adapters which are security
controlled to ensure compliance.

File System Access Access to the file system to access, read


Restricted and write files is restricted to specific
locations to lower risk.

Technology Access Access to underlying technology is This extends to ALL the


Restricted disallowed or severely restricted as it is underlying technology which is
part of the service aspects and reduces restricted to operations-based
both cost and risk. Oracle personnel to reduce risk.

Integration Via API Set Access to the service is via SOAP/REST


Only API's that can be used directly or via
other integration cloud offerings to reduce
cost and risk.

CLOUD MIGRATION PROCESS

7 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Note: Whilst the techniques in this document apply to migrating to the Oracle Utilities Cloud SaaS
offerings from on-premise, they can be used for other implementation types to reduce your risk and
costs. These techniques, unless otherwise indicated, are available to on-premise implementations as
well to reduce costs.

Migrating to the cloud is all about preparing your on-premise (or non-SaaS Cloud implementation) for
the Oracle Cloud SaaS by converting the parts of that implementation into Oracle Cloud friendly
technology. A generic process for this process is shown below:

On-Premise Oracle Cloud

Templates, User Exits,


Not Applicable
Domain Configuration

Java Extensions

ConfigTools Extensions
Establish
Migrate ConfigTools Extensions
Migration
Extensions
Environment
Import Extensions
Into Cloud
Configuration Data Configuration Data

File Storage
File Location References Configuration

Figure 2. Cloud Migration Process

Cloud Migration Process

STEP CONTENT COMMENTS

Establish Migration On premise install an environment to You may not have access to the
Environment match the Oracle Cloud release (product Cloud Accelerator, if desired, in
only) to act as a source of the migration. this environment but for the parts
that you want to migrate should
be included in this environment.
You may decide to defer
functional testing migrations till it
is loaded into the Cloud as a
starting point to save time and
cost.

Migrate Extensions Migrate extension using various


techniques to the recommended
technology and API set.

Import Extensions Into Export the cloud friendly extensions using From there the accelerator may
Cloud the Configuration Migration Assistant and be added and then testing on the
import them using Cloud Services cloud can commence. For other
Foundation into your non-production Data Migration, refer to the
instance. Oracle Cloud Services
Foundation documentation.

8 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Establish Migration Environment
To prepare your transition to the cloud, it is recommended to establish a compatible copy of the same
version of the Oracle Utilities product on-premise to migrate your extensions into. This would be a basic
simple installation and should be treated as an upgrade environment.

Migrate Extensions
The most crucial step in this process is to migrate your custom extensions into technologies that are
available:

Extension Migrations

EXTENSION TYPE MIGRATION RECOMMENDATION COMMENTS

Java Based Algorithms Convert to ConfigTools or adopt base They can be written in Groovy or
accelerator Scripting

Java Based Batch Convert to Plug In Batch Generally, can be in Scripting but
Processes Groovy should be used for
import/exports

XSL Files Migrate to Managed Content (4.4.0.2.0 This is only applicable to Inbound
and above) Web Services and Outbound
Messages. All other locations are
not supported.

Configuration Templates Not required on Cloud

Custom Configuration Automatically migrated using CMA


Data upon Export

Master/Transaction Data Converted as per Cloud Services


Foundation tools

Custom Batch Schedule Use API with current on-premise


scheduler or convert to inbuilt scheduler
via Cloud Services Foundation

Inbound Web Services Automatically migrated using CMA


upon Export

Custom Maintenance Not supported on cloud Consider using FACT or other


Objects generic objects

File Paths Define File Adapter settings for each Ensure all Batch Controls for
file path pointing to a valid location extracts and imports.
within Oracle Cloud instance or Oracle
Object Storage Cloud

Import Extensions Into Cloud


Note: The Configuration Migration Assistant is the ONLY tool certified for use for loading Configuration
and Code into and within the Oracle Utilities Cloud SaaS service.

The last step is to export the extensions using Configuration Migration Assistant and load them into the
Oracle Utilities Cloud SaaS service as documented in Cloud Service Foundation documentation.

9 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
OTHER EXTENSION TYPES TO MIGRATE

Migrating your Batch Schedule to the Oracle Cloud


One of the most common migration scenarios when migrating to the Oracle Utilities Cloud Service is to
migrate your batch schedule from your on-premise schedule. The Oracle Utilities Cloud Service provides
a scheduling service as part of the offering which is configured by the Oracle Utilities Cloud Service
Foundation. It is generally recommended to use that capability as it is part of the service but if the
customer has invested in a commercial scheduling product and wishes to continue to use that service
they can use the provided Scheduler API that provides a REST based interface between a scheduling
product. So therefore, there are two options:

• Use the third-party scheduler with the Scheduling API to execute processes in the Oracle Utilities
Cloud Service.

• Use the inbuilt scheduler via the Oracle Utilities Cloud Service Foundation.

Note: For detail documentation on the API and the inbuilt scheduling capability refer to the
documentation provided with your Oracle Utilities Cloud Service.

The two options are shown below:

On-Premise Oracle Utilities Cloud Service

On Premise
Scheduler
Schedule API Oracle Utilities Cloud Service

Oracle Utilities Cloud Service


Oracle Utilities Cloud Service
Foundation

Figure 3. Batch Schedule Options

Note: For customer migrating from Oracle Utilities Customer Care and Billing product and using the
Workflow based scheduler in that product. The workflow scheduler is not supported in the Oracle Utilities
Cloud Service. Customers must manually migrate to the inbuilt scheduling solution provided by the
Oracle Utilities Cloud Service

USING META DATA TO IDENTIFY OBJECTS TO REMEDIATE

Note: The SQL in this section is provided as samples only includes joins for descriptions (using
language_cd = 'ENG'). This is included to aid in easier identification. This can be removed or altered
as necessary.

Note: These SQL statements rely on record ownership and/or naming conventions to be adhered to. If
those rules are broken, then these SQL statements might miss this information.

10 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Note: If the SQL shown below does not return ANY records then the remediation may be complete for
that object.

Custom Batch Controls To Remediate


Using the Oracle Utilities SDK Java based batch extensions that are defined to the product via meta
data in the Batch Control. Batch Controls based around java need to be remediated to Plug In Batch
using the appropriate ConfigTools objects.

To remediate the batch controls:

• Execute the following SQL against the product database to identify the batch controls:

SELECT
b.batch_cd,
d.descr,
b.program_name,
b.pgm_type_flg
FROM
ci_batch_ctrl b,
ci_batch_ctrl_l d
WHERE
b.pgm_type_flg IN (
'JAVA',
'CBL'
)
AND d.batch_cd = b.batch_cd
AND d.language_cd = 'ENG'
AND lower(b.program_name) LIKE 'cm%'
AND b.owner_flg = 'CM'

Batch Control Columns

DATA ELEMENT COLUMN COMMENTS

Batch Control batch_cd Batch Control to remediate

Description descr Batch Control description. May clarify what


needs to be remediated

Program Name program_name Code to remediate

Program Type pgm_type_flg Type of program to remediate:

• CBL for COBOL. Either move to Java first


or simply convert over.
• JAVA for Java

• Once the batch controls have been identified, remediate the identified Batch Control code into a cloud
compatible technology such as Groovy and/or scripting using plug in batch using the following base
java programs:

Plug In Batch Java Programs

PLUG IN BATCH SCOPE

11 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
com.splwg.base.domain.batch.pluginDriven.PluginDrivenGenericProcess Generic Process

com.splwg.base.domain.batch.pluginDriven.PluginDrivenExtractProcess Export Process

com.splwg.base.domain.batch.pluginDriven.PluginDrivenUploadProcess Import Process

• Define a new Batch Control or replace the original Batch Control, referencing the newly remediated
code.

• If the Batch Control entry is New, then remove the original Batch Control that has been remediated.

Note: Configuration Migration Assistant will not migrate executions of Batch Controls.

Custom Algorithms to Remediate


Algorithms can be written in a variety of technologies, but Java based algorithms written using the Oracle
Utilities SDK need to be remediated to Groovy and/or scripting. To remediate these algorithms, they
need to be identified in the meta-data, migrated and the relevant meta data used to remove the original
java class from the meta data.

To remediate the algorithms:

• Execute the following SQL against the product database to identify the algorithms to remediate:

SELECT
a.alg_type_cd,
a.pgm_name,
d.descr50,
a.alg_entity_flg,
v.descr,
a.pgm_type_flg
FROM
ci_alg_type a,
ci_alg_type_l d,
ci_lookup_val_l v
WHERE
a.alg_type_cd = d.alg_type_cd
AND d.language_cd = 'ENG'
AND v.language_cd = d.language_cd
AND v.field_name = 'ALG_ENTITY_FLG'
AND v.field_value = a.alg_entity_flg
AND lower(a.pgm_name) like 'cm%'
AND pgm_type_flg IN (
'JAVA',
'CBL'
)
AND a.owner_flg = 'CM'

Algorithm Type Query Columns

DATA ELEMENT COLUMN COMMENTS

Algorithm Type batch_cd Batch Control to remediate

Program Name program_name Code to remediate

12 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Description descr50 This is the name of the Algorithm Type to
make it easily identifiable if the
alg_type_cd makes no sense.

Algorithm Entity alg_entity_flg This is the identifier for the algorithm entity
associated with the algorithm type. It is
where the algorithm is configured to be
used.

Entity Description descr This is the description of the algorithm


entity if the alg_entity_flg makes no
sense.

Program Type pgm_type_flg Type of program to remediate:

• CBL for COBOL. Either move to Java first


or simply convert over.
• JAVA for Java

• Remediate the identified Algorithm Type code into a cloud compatible technology such as Groovy
and/or scripting.

• Define a new Algorithm Type or replace the original Algorithm Type, referencing the newly remediated
code.

• If the Algorithm Type entry is New, then perform the additional tasks:

– Create the necessary Algorithms associated with the new Algorithm Type, if necessary.

– Replace the Algorithms on all the associated entities with the newly created Algorithms, if new
entries were created.

– Remove the original Algorithm entries which are no longer used.

– Remove the original Algorithm Type that has been remediated. This should remove it from the
above query.

Custom Foreign Key References


In older versions of the products, it was possible to programmatically represent foreign key references
using program objects. This was primarily to compose extensions like information strings etc. Whilst this
capability is no longer as popular as it was in the past, extensions may exist for older releases. This
information is included in this document for completeness.

To remediate this code the following process is recommended:

• Execute the following SQL against the product database to identify the foreign key references to
remediate:

13 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
SELECT
f.fk_ref_cd,
d.descr,
f.tbl_name,
f.info_prg,
f.zone_cd,
f.context_menu_name,
f.search_type_flg,
f.pgm_type_flg
FROM
ci_fk_ref f,
ci_fk_ref_l d
WHERE
f.fk_ref_cd = d.fk_ref_cd
AND d.language_cd = 'ENG'
AND f.pgm_type_flg IN (
'JAVA',
'CBL'
)
AND f.info_prg LIKE 'cm%'
AND f.owner_flg = 'CM'

Foreign Key Columns

DATA ELEMENT COLUMN COMMENTS

Foreign Key fk_ref_cd This is the foreign key reference to change.

Program info_prg Program to remediate.

Description descr This is the name of the Foreign Key


Reference to make it easily identifiable if
the fk_ref_cd makes no sense.

Table Name tbl_name This is the prime table the key is associated
with.

Zone Code zone_cd If associated with a zone, this is the code of


that zone. Provided for reference only.

Context Menu context_menu_name If associated with a context menu, this is


the code of that context menu. Provided for
reference only.

Search Type Flag search_type_flg If associated with a search, this is the type
of search. Provided for reference only.

Program Type pgm_type_flg Type of program to remediate:


• CBL for COBOL. Either move to Java first
or simply convert over.
• JAVA for Java

• Remediate the identified Foreign Key code into a cloud compatible technology such as Groovy and/or
scripting.

14 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
• Replace the original Foreign Key, referencing the newly remediated code.

Custom Audit Programs


The Oracle Utilities Application Framework has a configurable inbuilt auditing capability. Whilst most
implementations use the base provided audit programs to implement audit functionality, some
implementations have implemented custom audit capabilities using appropriate custom programs
written in Java or COBOL. These custom audit capabilities, built using the Oracle Utilities SDK, must be
remediated, or configured to revert to the base audit capability, prior to migrating to the cloud.

To remediate this code the following process is recommended:

• Execute the following SQL against the product database to identify the audit programs to remediate:

SELECT
tbl_name,
audit_pgm_name,
audit_pgm_type
FROM
ci_md_tbl
WHERE
audit_pgm_type_flg IN (
'JAVA',
'CBL'
)
AND lower(audit_pgm_name) like 'cm%'

Audit Program Query Columns

DATA ELEMENT COLUMN COMMENTS

Table Name tbl_name Name of table associated with audit


program. This is used to identify which
settings will need to be remediated.

Audit Program Name audit_pgm_name Name of the Audit Program to remediate.

Audit Program Type audit_pgm_type Type of program to remediate:


• CBL for COBOL. Either move to Java first
or simply convert over.
• JAVA for Java

• Remediate the identified Audit Program code into an Oracle Utilities SaaS Cloud compatible
technology.

• Replace the original Audit Program and on the relevant Table entries, referencing the newly
remediated code.

15 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Custom Program Components (Legacy)
In legacy versions of the Oracle Utilities Application Framework, the Oracle Utilities SDK included
support for program components to support older versions of products. Whilst, newer versions of the
products used more extensive techniques, some older implementations may still have custom program
components that may need remediation.

To remediate this code the following process is recommended:

• Execute the following SQL against the product database to identify the program components to
remediate:

SELECT
prog_com_id,
prog_com_name,
tbl_name,
comment_short,
tmpl_cd,
loc_id,
user_exit_pgm_name
FROM
ci_md_prg_com
WHERE
owner_flg = 'CM'
AND loc_id = 'COB'

Audit Program Query Columns

DATA ELEMENT COLUMN COMMENTS

Program Component Id prog_com_id This is the identifier for the program


component.

Program Component prog_com_name Name of the program component to


Name remediate.

Table Name tbl_name Table associated with program component.

Short Comment comment_short Short comment for program component to


aid in identification.

Template tmpl_cd Oracle Utilities SDK template used.

Location Id loc_id Location Identifier for component. Looking


for 'COB' only.

User Exit Program user_exit_pgm_name Program to remediate (if user exit based).

• After identification, it is recommended that the code incorporated into the appropriate algorithm in a
language compatible with the Oracle Utilities SaaS Cloud.

• Remove the Program Component before migration, after remediation.

16 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
File Paths on Batch Controls
Note: Failure to remediate these entries from the Batch Control meta data may cause batch failures for
executions on the cloud environments.

In on-premise versions of Oracle Utilities Application Framework based products, the FILE-PATH batch
parameter is configured to a physical location on the file system. On the Oracle Utilities SaaS Cloud, the
locations that can be used are limited to the approved locations of the service. The Oracle Utilities SaaS
Cloud supports a file alias capability that can be used to refer to fixed locations on the cloud. The paths
configured on any batch controls need to be changed to use this new capability and reference the new
locations.

To remediate these file locations the following process is recommended:

• Execute the following SQL against the product database to identify the batch controls that need to be
remediated:

SELECT
b.batch_cd,
d.descr,
b.batch_parm_val
FROM
ci_batch_ctrl_p b,
ci_batch_ctrl_l d
WHERE
b.batch_parm_name = 'FILE-PATH'
AND TRIM(b.batch_parm_val) IS NOT NULL
AND b.batch_parm_val NOT LIKE 'file-storage%'
AND b.batch_cd = d.batch_cd
AND d.language_cd = 'ENG'

Note: The SQL will attempt to capture any configured job that has a FILE-PATH parameter and that
parameter is not using the file-storage adapter. This includes base jobs not configured. If the
customer is not using the standard FILE-PATH as a parameter in the Batch Control then this may not
be detected.

File Paths Query Columns

DATA ELEMENT COLUMN COMMENTS

Batch Control batch_cd This is the batch control definition to


change.

Description descr This is the name of the batch control to


make it easily identifiable if the batch_cd
makes no sense.

Parameter Value batch_parm_val This is the parameter value to change for


FILE-PATH to use the file-adapter.

• Create an interim entry for the location with an appropriate name under the F1-
FileStorageExtendable Lookup Query. with an appropriate alias (as the Value) and using the
Native File Storage adapter with the current location in FILE-PATH to maintain compatibility for
remediation. For example:

17 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Figure 4. File Storage Options – Native File Storage

Note: It is recommended to define your root locations as lookups in this fashion as sub-directories of
this location are supported directly by the syntax.

• Alter the FILE-PATH parameter in the Batch Control in the query to use the file-
storage://<value> where <value> is the name of the appropriate alias configured. Directories
under this value are also supported using operating system syntax.

• After remediation, alter all aliases to use the Oracle Cloud Object Storage adapter as outlined in the
online documentation for your cloud service. No change is necessary on the batch controls as they
will now use the new storage. For example:

18 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Figure 5. File Storage Options – Object Cloud Storage

Note: Refer to URI Substitution in the online documentation for additional examples of this capability.

Custom Tables
In some implementations, custom tables were added to add functionality unique to satisfy requirements.
In the Oracle Utilities SaaS Cloud the use of custom tables is not available to reduce costs and risks. If
your implementation has used custom tables and those are defined in the meta data they must be
remediated prior to migration to the cloud, if the custom data tables are still required.

To remediate these custom tables the following process is recommended:

• Execute the following SQL against the product database to identify the custom tables that need to be
remediated:

19 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
SELECT
t.tbl_name,
d.descr
FROM
ci_md_tbl t,
ci_md_tbl_l d
WHERE
d.tbl_name = t.tbl_name
AND d.language_cd = 'ENG'
AND t.owner_flg = 'CM'

Table Query Columns

DATA ELEMENT COLUMN COMMENTS

Table Name tbl_name Name of Table.

Description descr Description of Table.

• For each table, identify the base object that might be applicable to migrate to. Additionally, you might
want to consider incorporating the data into an existing applicable base objects in the product other
than the ones listed below:

Alternative Base Tables

DATA TYPE RECOMMENDED BASE OBJECT COMMENTS

Configuration Master Configuration Use for simple configuration objects with small
number of values

Configuration Fact Use for more complex configuration objects

Master Request Used for master and transaction data if


necessary

Transaction Request Used for master and transaction data if


necessary

Note: The objects listed above are owned by Oracle Utilities Application Framework. Additional objects
may exist in each product that can be used to house your data.

• For each table to replace, create an associated set of ConfigTools objects (such as a Business Object,
etc) on the appropriate base products to maintain the data.

• Use the conversion toolset in the Oracle Utilities Cloud Service Foundation to migrate the data into
the new object or migrate into the base object prior to migration to the cloud.

Custom External System XSL


Note: This technique only applies to Oracle Utilities Application Framework V4.4.0.2.0/19C and above.

eXtensible Stylesheet Language Transformations (XSLT) provide a way of transforming XML into an
alternative format (XML, etc). Oracle Utilities Application Framework supports these transformations for
outbound transmission of data for both the request and response level (response transformation is only
supported for Real-Time Adapters). This is to allow the product to support a wide range of integration
scenarios between other applications, market hubs, etc.

20 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Typically implementation teams create the necessary transformation, in the tool of their choice, and then
configure the Oracle Utilities Application Framework to use the transformation with the relevant
transaction at the relevant time. In past releases, this meant creating an .xsl file containing the
transformation, depositing it on the file system and then, using the relevant utility, incorporating that file
into the build of the deployment of the product and finally redeploying the product to enable the
transformation to be used. These file based transformations must be defined as Managed Content to be
migrated to the cloud.

To remediate these transformations the following process is recommended:

• Execute the following SQL against the product database to identify the transformations that need to
be remediated:

SELECT
o.nt_xid_cd,
o.outmsg_type_cd,
o.outmsg_proc_meth_flg,
d.descr,
o.xai_sender_id,
o.batch_cd,
o.outmsg_xsl,
o.outmsg_resp_xsl
FROM
f1_extsys_outmsg_prof o,
ci_lookup_val_l d
WHERE
d.language_cd = 'ENG'
AND d.field_name = 'OUTMSG_PROC_METH_FLG'
AND d.field_value = o.outmsg_proc_meth_flg
AND ( TRIM(o.outmsg_xsl) IS NOT NULL
OR TRIM(o.outmsg_resp_xsl) IS NOT NULL )
AND ( ( TRIM(o.outmsg_xsl) IS NOT NULL
AND TRIM(o.outmsg_xsl) NOT IN (
SELECT
TRIM(MANAG_CONTENT_CD)
FROM
f1_manag_content
WHERE
TRIM(manag_content_type_flg) = 'F1X'
) )
OR ( TRIM(o.outmsg_resp_xsl) IS NOT NULL
AND TRIM(o.outmsg_resp_xsl) NOT IN (
SELECT
TRIM(manag_content_cd)
FROM
f1_manag_content
WHERE
TRIM(manag_content_type_flg) = 'F1X'
) ) )

Note: There is no owner flag on this query so this may return base services which can be ignored.

21 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Outbound Message XSL Query Columns

DATA ELEMENT COLUMN COMMENTS

External System Identifier nt_xid_cd Name of Table.

Outbound Message Type outmsg_type_cd Outbound Message Type attached to the


external system.

Processing Method outmsg_proc_meth_flg This is the processing method associated


with the outbound message. The Oracle
Utilities SaaS Cloud only supports the
following Processing Methods:
• Real Time (F1RT)
• Batch (BAT)

Processing Method descr The description for processing method.


Description

XAI Sender xai_sender_id If associated with a sender, the sender


specified on the external system. This
should be a real time adapter.

Batch Code batch_cd If associated with a batch job, the batch


control specified on the external system.

Message XSL outmsg_xsl Message XSL to remediate

Response XSL outmsg_resp_xsl Response XSL to remediate (used for Real-


Time Adapters only)

• For each XSL identified, create a Managed Content object of Type XSL, containing the XSL in the
schema. For example:

Figure 6. Example XSL Managed Content

22 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
• Within the External System indicate the identifier of the Managed Content on the relevant Outbound
Message Type configuration. For example:

Figure 7. Example Outbound Message XSL

Custom Inbound Web Services XSL


eXtensible Stylesheet Language Transformations (XSLT) provide a way of transforming XML into an
alternative format (XML, etc). Oracle Utilities Application Framework supports these transformations for
inbound transmission of data for both the request and response level at the operation level. As with
outbound communications, these transformations allow the product to support a wide range of
integration formats. Also as with outbound communications, the past releases supported file based
transformations. On the Oracle Utilities SaaS Cloud, these transformations should be configured as
Managed Content to retain their use.

To remediate these transformations the following process is recommended:

• Execute the following SQL against the product database to identify the transformations that need to
be remediated:

23 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
SELECT
s.in_svc_name,
d.descr,
l.descr AS "Web Service Type",
s.operation_name,
s.request_xsl,
s.response_xsl
FROM
f1_iws_svc_oper s,
f1_iws_svc_l d,

f1_iws_svc i,
ci_lookup_val_l l
WHERE
d.in_svc_name = s.in_svc_name
AND i.in_svc_name = s.in_svc_name
AND d.language_cd = 'ENG'
AND l.language_cd = d.language_cd
AND l.field_name = 'WEB_SVC_CLASS_FLG'
AND l.field_value = i.web_svc_class_flg
AND ( TRIM(s.request_xsl) IS NOT NULL
OR TRIM(s.response_xsl) IS NOT NULL )
AND i.owner_flg = 'CM'
AND ( ( TRIM(s.request_xsl) IS NOT NULL
AND TRIM(s.request_xsl) NOT IN (
SELECT
TRIM(manag_content_cd)
FROM
f1_manag_content
WHERE
TRIM(manag_content_type_flg) = 'F1X'
) )
OR ( TRIM(s.request_xsl) IS NOT NULL
AND TRIM(s.response_xsl) NOT IN (
SELECT
TRIM(manag_content_cd)
FROM
f1_manag_content
WHERE
TRIM(manag_content_type_flg) = 'F1X'
) )

Inbound Web Services XSL Query Columns

DATA ELEMENT COLUMN COMMENTS

Inbound Service Name in_svc_name Identifier for Inbound Service Name.

Description descr Inbound Service Name Description.

Web Service Type descr Web Service Type (SOAP or REST)

Web Service Operation operation_name Operation associated with XSL.

24 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Request XSL request_xsl XSL to remediate for the request.

Response XSL response_xsl XSL to remediate for the response.

• For each XSL identified, create a Managed Content object of Type XSL, containing the XSL in the
schema.

• Use of XSL is restricted to SOAP based Inbound Web Services only. If they exist on REST based
services then they must be removed from those services.

• Within the Inbound Web Service indicate the identifier of the Managed Content on the relevant
Operation configuration. For example:

Figure 8. Example Inbound Web Services XSL

Custom Database Objects


The database component on the Oracle Utilities SaaS Cloud is tightly controlled to reduce risk and costs.
Therefore any custom objects in the database are not able to be migrated to the Oracle Utilities SaaS
Cloud and therefore should be removed and any code using these objects remediated to use base
objects.

To remediate these database objects the following process is recommended:

• Execute the following SQL against the product database to identify the database objects that need to
be remediated:

SELECT
object_name,
subobject_name,
object_type,
status
FROM
user_objects
WHERE
object_name LIKE 'CM%';

Note: This must be run as the product schema owner not the application database user.

25 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Note: This SQL assumes that naming conventions outlined in the Oracle Utilities SDK are adhered to.
Non-compliant objects may not be identified by this query.

Database Object Query Columns

DATA ELEMENT COLUMN COMMENTS

Object Name object_name Name of Object to remove.

Sub Object Name subobject_name Optional, if the object is partitioned.

Object Type object_type Type of Object. See Dictionary Views


documentation for a full list of object types.

Status status Status of the object. See Dictionary Views


documentation for a full list of object status
values.

• Remove any identified custom objects identified.

• Remediate any code that uses these custom objects directly.

OBJECTS NOT SUPPORTED


The Oracle Utilities SaaS Cloud Services is a specific implementation of the product and to reduce cost
and risk has removed of support for the following legacy objects:

Objects Not Supported

OBJECT COMMENT POSSIBLE ALTERNATIVES

Custom XAI Class XAI not supported in Oracle • Migrate to base functionality
Utilities SaaS Cloud Services
and XAI Class is not
applicable in Inbound Web
Services

Custom Route Type MPL is not supported in • Oracle Integration Cloud Service
Oracle Utilities SaaS Cloud • Oracle SOA Cloud Service
Services.

Custom XAI Inbound Web XAI not supported in Oracle Migrate to Inbound Web Services (SOAP)
Service Utilities SaaS Cloud Services as outlined in Migrating from XAI to IWS
(Doc Id: 1644914.1)

Custom XAI Rules MPL is not supported in • Oracle Integration Cloud Service
Oracle Utilities SaaS Cloud • Oracle SOA Cloud Service
Services.

Custom JMS Senders JMS is not available within • Oracle Integration Cloud Service
the Oracle Utilities SaaS • Oracle SOA Cloud Service
Cloud Services.
• Oracle Messaging Service (JMS
Provider) or Oracle Event Hub Cloud
Service (Apache Kafka)

26 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Custom JMS Receivers JMS is not available within • Oracle Integration Cloud Service
the Oracle Utilities SaaS • Oracle SOA Cloud Service
Cloud Services.
• Oracle Messaging Service (JMS
Provider) or Oracle Event Hub Cloud
Service (Apache Kafka)

Custom JNDI Access to JNDI is not • See specific JNDI objects in this list.
available within the Oracle
Utilities SaaS Cloud Services.

Custom JDBC MPL is not supported in • Oracle Integration Cloud Service


Oracle Utilities SaaS Cloud • Oracle SOA Cloud Service
Services.

Note: These objects must be removed or replaced with cloud compatible alternatives as part of the
migration remediation activities in moving to the Oracle Utilities SaaS Cloud.

CLOUD MIGRATION BEST PRACTICES

Migrate to the Accelerator


As part of the Oracle Utilities Cloud SaaS offering it is possible to take advantage of the Oracle Utilities
Cloud Accelerator available for your respective Cloud service. To minimize your risk and cost it is
recommended to do the following in relation to the accelerator:

• Be familiar with the Accelerator. The accelerator is included in the Oracle Utilities Cloud Service.
Familiarize yourself with it so that you can determine the best ways of taking advantage of the
capabilities.

• Assess Gaps as part of the migration. Look at the capabilities and your current extensions. If you
can replace any extension with a capability in the accelerator, then that reduces cost and risk.

• Take your risk profile as a factor into your approach. The accelerator is only available to the
Oracle Utilities Cloud Service and not available on-premise. This means you cannot install it on-
premise as part of the migration process. There are several techniques that can be used to help
migrate efficiently:

– Migrate it all. Migrate all the remediated extensions to get to the cloud quickly and then migrate to
the accelerator over time. Whilst this might add cost to remediate, it is a low risk and calculated
migration strategy. It keeps the implementation more usable over releases. It realizes additional
cost and risk savings over a longer time.

– Assess, Migrate Overlap and Reconcile. This is slightly riskier in the short term but is lower cost
barrier in migrating to the cloud. The idea is that you assess the accelerator and identify and
overlaps in current extensions. Only remediate the gaps as part of your migration. The slight risk
that your remediated extensions do not represent the full extensions you need (as the accelerator
is not available on-premise). The risk will be alleviated once you have migrated the gaps to the
cloud where the combination of extensions and accelerator now form your total solution.

– Hybrid. This is a combination for the above two approaches. An example of this is when you find
that whist the capability you have in an extension is in the accelerator, the accelerator version may
not do everything you need.

27 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
Start Simple
One of the key benefits of the cloud is the service itself. The more of the service that is used by an
implementation the lower the risk and lower the cost. For every feature, not used may represent a cost
to the implementation. One of the other pitfalls is to not recognize what the service offers and overly
orchestrate solutions.

To avoid pitfalls in this it is recommended to adopt the following approaches:

• Start with the Service. Fully exploit the functionality in the service first. The service has been
designed with lowest cost and provides some simple integration scenarios. These scenarios provide
the lowest common denominator for integration at the service level. For example, there is a standard
capability to extract data from the service. It is basic and may be sufficient for most needs.

• Augment As Necessary. The advantage of the cloud is what is in the service, what is not in the
service and what integration techniques are available. If the requirements are complex then you can
augment a solution using other Oracle Cloud Services, foreign cloud services or even on-premise
software. The cloud provides a standard set of API's as well as standard means for using that
capability.

28 W HITE PAPER / Preparing for the Cloud - Oracle Utilities Application Framework (4.4.0.2.0)
ORACLE CORPORATION

Worldwide Headquarters
500 Oracle Parkway, Redwood Shores, CA 94065 USA

Worldwide Inquiries
TELE + 1.650.506.7000 + 1.800.ORACLE1
FAX + 1.650.506.7200
oracle.com

CONNECT W ITH US
Call +1.800.ORACLE1 or visit oracle.com. Outside North America, find your local office at oracle.com/contact.

blogs.oracle.com/theshortenspot linkedin.com/in/theshortenspot twitter.com/theshortenspot

Copyright © 2007 - 2019, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and the contents hereof
are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed
orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any
liability with respect to this document, and no contractual obligations are formed either directly or indirectly by this document. This document may not be
reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or
registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of
Advanced Micro Devices. UNIX is a registered trademark of The Open Group. 1019
Preparing for the Cloud - Oracle Utilities Application Framework
October 2019

You might also like