Business Flows
The integration scope supports the following business processes:
Refer to the Oracle Utilities Customer to Meter Integration to Oracle Utilities Network Management System Implementation Guide for information on Notification Preferences Sync BPEL flow.
Oracle Utilities OCI Stream Notif linkChannel (Oracle Integration Cloud initiated)
This integration process enhances the notification messages to be sent to the Oracle Responsys application.
It links the notifications coming from the source stream to the account's notification channel information coming from Oracle Utilities Customer Care and Billing. The combined information is published to the target stream to be processed by the Send Notifications to Oracle Responsys OIC process which sends the information to Oracle Responsys.
The following diagram shows a graphical representation of the Link Notification to Channel Information integration process.Shows the Create Update Field Activity integration process.
Processing Details
This integration process deployed on Oracle Integration Cloud performs the following activities:
1. Polls the Oracle Integration Cloud Stream 1 called “SourceNotification Stream”. This process consumes the notification messages by batches - the maximum records fetch is 200 and it polls the source stream every sixty (60) seconds.
Note: The Maximum Number of Records to be fetched and Polling Frequency are configured on the Oracle Integration Cloud Streaming Adapter as a Trigger (Poller) at design time.
2. Invoke the CCB REST service - C1-NotificationPreferencesForAccounts to get the notification preferences for the list of account id and notification type combination provided. This input list is the list of account Id and notification type combination coming from the messages consumed in the source stream.
3. For each message fetched from Oracle Integration Cloud Source Stream, do the following:
Find the corresponding Account Id and Notification Type record in the Oracle Utilities Customer Care and Billing response.
If the response for that account ID and notification type combination record:
Is in error, skip the notification message and process the next notification message.
Most of the time Oracle Utilities Customer Care and Billing returns an error response if the account ID and notification type combination is not found in Oracle Utilities Customer Care and Billing. This scenario will be encountered when the account's notification preference has changed, i.e. customer remove subscription to a notification type, and that information has not yet been synced to Oracle Utilities Network Management System.
No error, proceed to the next step.
For each delivery type and contact ID record in the collection:
Transform the notification message and Oracle Utilities Customer Care and Billing response record to the format needed by the Oracle Integration Cloud Stream 2 (TargetNotification Stream).
Note: Refer to Chapter 10: Sample Messages to understand what message is published to the target stream.
Append to a temporary target message output collection.
4. When all the notification messages coming from the Source stream are processed, invoke Oracle Integration Cloud Streaming adapter to publish the notification messages in batches to Oracle Integration Cloud Target Stream.
5. Error Handling for this integration process. Email notification is sent for any errors encountered in Oracle Integration Cloud. Email notifications are optional but by default it is enabled.
Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
Refer to the Oracle Utilities Notifications Hub Data Mapping Guide about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities OCI Stream Notif linkChannel
Integration Package Name
outl.ba.notifications_hub.1.22.1000
OCI Streaming Adapter
Poller to Consume Message
Operation: Consume messages from Stream
Stream: Source Notification Stream
ConsumerGroup: SourceNotificationGroup
Partition: Default
Polling Frequence: 60 s
Maximum Number of records to Fetch: 200
Message Structure: JSON
Publish to Stream
Operation: Publish messages to Stream
Stream: Target Notification Stream
Partition: Default
Message Structure: JSON
 
Connection Name: Oracle Utilities OCI Streaming for Notif Hub
CCB REST IWS (REST Adapter)
Web Service Name: C1-NotificationPreferencesForAccounts
 
Computed URL: https://{host}:{port}/{tenant}/{domain}/ccs/rest/apis/customer/v-model/notificationPreferencesForAccounts
 
Method: POST
URI: /
Connection Name:
Oracle Utilities REST CCB for Notif Hub
CCBDirectRESTNotifPref
OIC Lookup
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_Email_ID
OUTL-BRT-NOTIFHUB_DeliveryRouting
Oracle Utilities NMS OCI Stream Notif Upload (Oracle Integration Cloud initiated)
This integration process picks up the Oracle Utilities Network Management System notification messages from NMS MYC_CSS_PARAM_VIO_TEXT table, transforms the message and publish to OCI Source stream. The Oracle Utilities Network Management System notification message is transformed in two data categories - header and optional data. The accountId, notificationType, messageId, origin and notificationTemplate are part of header and data with key value pair is part of the data section.
Note: Kindly refer a sample incoming XML message received from NMS and sample JSON message output shown under Sample Messages section.
Note: Refer to Chapter 10: Sample Messages for a sample incoming XML message received from Oracle Utilities Network Management System and sample JSON message outputto understand what message is published to the target stream.
The following diagram shows a graphical representation of the Get Outage Notification from Oracle Utilities Network Management System integration process.Shows the Cancel Field Activity integration process.
Processing Details
This integration process deployed on Oracle Integration Cloud performs the following activities:
1. The integration is a DB poller and listens to the NMS MYC_CSS_PARAM_VIO_TEXT table for any notification record. The polling time is set to “1minute” by default.
2. Oracle Utilities Network Management System stores notification in XML format in MYC_CSS_PARAM_VIO_TEXT in database table. The column VIO_TEXT contains the actual XML message.
3. The column CSS_NOTIFIED is set to 'N' by Oracle Utilities Network Management System for integration to pick the notification record for further processing.
4. Once the poller receives a Oracle Utilities Network Management System notification record, the XML notification data is tranformed to JSON format for OCI stream.
5. OCI stream requires the JSON in header and optional data format.
6. The JSON header information holds the following information:
accountId
notificationType
messageId
origin
notificationTemplate
The origin is defaulted to “NMS” as the notification is generated by Oracle Utilities Network Management System system. The notificationTemplate is defaulted to empty and the field is populated once the Get Nofitification preference process is completed.
Sample:
{
"accountId": "6386568150",
"notificationType": "ZZ-UOUT",
"messageId": "2088",
"origin": "NMS",
"notificationTemplate": ""
}
 
7. The JSON “data” information is collection of key and value pairs. By default, Cause, CrewETA, Outagetime, EstRstTime, CompletionTime and CustomerOut are populated and provided as base. In addition, data elements under PICKLIST, AFFECTEDCUSTOMERLIST(CUSTOMERADDRESS1,2..) are aslo populated as key value pairs as part of base. The lookup OUTL-BRT-NOTIFHUB_ConfigProps holds the default property list as below:
Lookup Name: OUTL-BRT-NOTIFHUB_ConfigProps
PropertyName
Value
nms.datafield.propertylist
OUTAGETIME,CUSTOMERSOUT,CAUSE,ESTRESTTIME,CREWETA,COMPLETIONTIME
8. After the transformation, the JSON payload is generated as per the below format:
{
"accountId": "6386568150",
"notificationType": "ZZ-UOUT",
"messageId": "2088",
"origin": "NMS",
"notificationTemplate": "",
"data": [{
"key": "CUSTOMERADDRESS1",
"value": "10375 Newbury Ave NW, Uniontown, OH 44685"
}, {
"key": "CAUSE",
"value": "TROUBLE_CALL"
}, {
"key": "CREWETA",
"value": "0"
}, {
"key": "OUTAGETIME",
"value": "1646921959"
}, {
"key": "ESTRESTTIME",
"value": "1646926759"
}, {
"key": "COMPLETIONTIME",
"value": "-1"
}, {
"key": "CUSTOMERSOUT",
"value": "1"
}
]
}
 
9. The integration then publishes the notification JSON to OCI source stream. The transaction is marked as success by updating the CSS_NOTIFIED='Y'.
10. On technical error such as invalid XML message or OCI stream being down or unavailable, an email is sent with error details including Instance ID and Violation ID. The failed transaction is marked as error by updating the CSS_NOTIFIED='E'.
Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
Refer to the Oracle Utilities Notifications Hub Data Mapping Guide about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities NMS OCI Stream Notif Upload
Integration Package Name
outl.ba.notifications_hub.1.22.1000
Identifier
OUTL-BA-NMS_STREAM_NOTIF_UPLOAD
DB Adapter
DB Poller to consume NMS DB record
 
Operation: select/update
Polling Frequence: 60 s
Message format: XML
Connection Name: Oracle Utilities DB NMS for Notif Hub
OCI Streaming Adapter
Publish message to source OCI stream
 
Operation: Publish messages to Stream
Stream: Source Notification Stream
Partition: Default
Message Structure: JSON
Connection Name: Oracle Utilities OCI Streaming for Notif Hub
OIC Lookup
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_Email_ID
OUTL-BRT-NMS_STREAM_TROUBLE_CODE
Oracle Utilities OCI Stream Responsys Notif Send (Oracle Integration Cloud initiated)
This integration process reads the final transformed notification messages from different application in the OCI Stream and sends to Oracle Responsys to be delivered via email or SMS.
The following diagram shows a graphical representation of the Send Notifications to Oracle Responsys process.Shows the Appointment Window Request integration process.
Processing Details
Integration Properties
Description
Initial Value
responsysInstance
This is the responsysInstance representing an Oracle Responsys instance. It is used to sort the messages read from the Target Notification Stream, belonging to the Oracle Responsys instance linked to this particular OIC instance.
 
The lookup table OUTL-BRT-NOTIFHUB_DeliveryInstance is used to translate responsysInstance to a value that is populated in the email notifications to identify the Oracle Responsys instance.
 
The integration process includes the following activities:
1. This Oracle Integration Cloud process reads the final transformed notification messages dropped in the TargetNotificationStream through OCI Streaming Adapter poller. The messages are read in batches and assigned to “ConsumedNotifCollection” global variable through data stitch.
2. For each message in the ConsumedNotifCollection:
a. Assign the deliveryChannel, notificationTemplate from the first notification message and responsysInstance(Integration Property) to variables for sorting.
b. Iterate over messages in the ConsumedNotifCollection.
c. Sort the messages. If the messages match the sort parameters for deliveryChannel, notificationTemplate and responsysInstance(Integration Property), copy them to the SortedNotifCollection global variable.
d. If the messages do not match the sort parameters, copy them to the UnprocessedNotifCollection global variable.
e. The messages in SortedNotifCollection are checked for the Oracle Responsys instance by examining the deliveryInstance field.
f. The grouped messages in the SortedNotifCollection are transformed to Oracle Responsys Email or SMS format based on the deliveryChannel of the group.
g. Oracle Responsys API for the particular campaign identified by notification template is invoked.
h. The error thrown during API invocation is handled by respective fault handlers.
Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
Refer to the Oracle Utilities Notifications Hub Data Mapping Guide about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities OCI Stream Responsys Notif Send
Integration Package Name
outl.ba.notifications_hub.1.22.1000
OCI Streaming Adapter
Poller to Consume Message
Operation: Consume messages from Stream
Stream: TargetNotificationStream
Consumer Group: NotificationGroup
Partition: Default
Polling Frequence: 60 s
Maximum Number of records to Fetch: 200
Message Structure: JSON
Publish to Stream
Operation: Publish messages to Stream
Stream: TargetNotificationStream
Partition: Default
Message Structure: JSON
Connection Name: Oracle Utilities OCI Streaming for Notif Hub
Responsys Web Service
WebService:
/rest/api/v1.3/campaigns/{notificationTemplate}/email
/rest/api/v1.3/campaigns/{notificationTemplate}/sms
 
Method: POST
 
Connection Name:
Oracle Utilities REST Responsys for Notif Hub
OIC Lookup
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_Email_ID
OUTL-BRT-NOTIFHUB_DeliveryChannel
OUTL-BRT-NOTIFHUB_DeliverynInstance
Oracle Utilities CCB OCI Streams Notifications Upload Process (Oracle Integration Cloud initiated)
This integration process is used to process Oracle Utilities Customer Care and Billing notifications as outbound messages from Oracle Utilities Customer Care and Billing and publish it into Oracle OCI Streams. The information is sent synchronously from Oracle Utilities Customer Care and Billing, regardless of the notification type, and OIC sends back a synchronous response. Oracle Utilities Customer Care and Billing does not use the externalId sent as part of the response.
The following diagram shows a graphical representation of the CCB Notifications to OCI Stream process.Shows a graphical representation of the Interim Activity Status integration process.
Processing Details
The integration process includes the following activities:
1. Oracle Utilities Customer Care and Billing sends the template based outbound notification message to the Oracle Utilities CCB OCI Stream Notif Upload integration process deployed on Oracle Integration Cloud.
2. The Oracle Utilities CCB OCI Stream Notif Upload integration process transforms the outbound message from Oracle Utilities Customer Care and Billing to the standard message format of the OCI Target Notification Stream. There is a separate notification message created for each delivery info going into OCI Stream. The messages are published in bulk into OCI Target Notification Stream using the OCI Stream Adapter based on the Notification Type priority.
3. In case of error, the integration will send a notification email to the recipient “to” configured in the OUTL-BRT-NOTIFHUB_Email_ID dvm.
4. In case of successful batch write to the OCI Streams the OIC instance ID is returned to Oracle Utilities Customer Care and Billing.
Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
Refer to the Oracle Utilities Notifications Hub Data Mapping Guide included in this release about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities CCB OCI Stream Notif Upload
Identifier
OUTL-BA-CCB_STREAM_NOTIF_UPLOAD
Integration Package Name
outl.ba.notifications_hub.1.22.1000.par
CCB BO
C1-TMPLNTFRQ
Oracle Utilities Adapter Connection
Oracle Utilities REST CCB for Notif Hub
Oracle Streams Adapter
OUTL-BRT-STREAM-NOTIF_HUB
 
Publish to Stream
Operation: Publish messages to Stream
Stream: Target Notification Stream
Partition: Default
Message Structure: JSON
OIC Lookup
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_Email_ID
OUTL-BRT-NOTIFHUB_DeliveryInstance
OUTL-BRT-NOTIFHUB_Priority
Oracle Utilities Responsys CCB Pref Unsubscribe (Oracle Integration Cloud initiated)
This scheduled integration process unsubscribes a customer's email from a specific notification type. The integration calls a Oracle Utilities Customer Cloud Service API which in turn inactivates the email notification preference (Unsubscribe) for transactional messages.
The following figure shows the representation of a user flow:Representation of a user flow.
1. User clicks the “Unsubscribe” link in the notification email received.
2. User confirms the Unsubscribe action on the confirmation page.
3. The information required for unsubscription is stored in the Oracle Responsys supplemental table.
4. An export job to export supplemental table data is scheduled in Oracle Responsys.
5. This job exports the data stored in the supplemental table to a csv file and stores the file in the Oracle Responsys SFTP location.
6. Oracle Utilities Responsys CCB Pref Unsubscribe process is scheduled to read and process these files in the SFTP location.
The following diagram shows a graphical representation of the process.
Processing Details
This is a scheduled integration process deployed on Oracle Integration Cloud that performs the following activities:
1. This process is triggered by a schedule and has one schedule parameter. Define the integration schedule for this process according to your business requirement.
Integration Properties
Description
Initial Value
fileNamePattern
This is the filename pattern to use to read the unsubscribe files from the Oracle Responsys SFTP location. File name pattern may satisfy a single file or multiple files.
Unsubscribe*
2. Invoke the FTP Adapter to list the unsubscribed files in the Oracle Responsys SFPT server given the filename Pattern criteria.
3. If the filelist is not empty:
Yes: Go to step 4.
No: Rename the file name to prefix the “PROCESSED-” in front of the filename. And move on to the next file, if any.
4. For each unsubscribe record in the file, the process does the following:
Check if the encoded flag is true, decode the record.
Transform the unsubscribe information received from Oracle Responsys to the CCS Rest service format.
Invoke the CCS REST service - C1-UnsubscribeNotification to unsubscribe a customer's email from a notification type.
If the CCS REST API returns:
Status 200 (OK), process the next record in the file.
Error status 400 or 500, add the record in error to a temporary error collection. Then, it continues to process the next job record.
Error status NOT 400 or 500, stop the process and send out an error email notification from the global fault handler. These errors are considered technical or remote faults (Sample Error Status: 401, 404, 503, etc.)
Check if the error count in the temporary errorcollection reached the value for property name maxerrorcount.per.emailnotification defined in the configuration properties lookup.
If yes, send an error email notification with the unsubscribe records in error.
Note: This property max.error.count determines the number of errors to be sent out in an error email notification and how frequent an error email notification is sent out.
Integration Properties
Description
Initial Value
ResponsysInstanceId
This is the ResponsysInstanceId representing a Responsys instance. The lookup table OUTL-BRT-NOTIFHUB_DeliveryInstance is used to translate the ResponsysInstanceId to a value that is populated in the email notifications to identify the Responsys Instance which is generating errors.
RESP1
5. If the processed file has no errors, rename the .zip and .txt files to prefix them with “PROCESSED-”.
6. After all records in the files are processed, send a process completed email notification with the name of the file processed, record processed count, records in error count, if any and the total records.
7. Error Handling for this integration process. Email notification is sent for any errors encountered in Oracle Integration Cloud. Email notifications are optional but by default it is enabled.
Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
Refer to the Oracle Utilities Notifications Hub Data Mapping Guide included in this release about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities Responsys CCB Pref Unsubscribe
Integration Package Name
outl.ba.notifications_hub.1.22.2000
CCB BO
C1-TMPLNTFRQ
Oracle FTP Adapter
Operation: List Files
Input Directory: /
File Name Pattern: *
Max Files: 100
Minimum Age: 0 seconds
List Files Recursively
Operation: Read File
Operation: Download File
Operation: Move File (Rename to PROCESSED”_fileName)
Connection Name: Oracle Utilities SFTP for Notifican Hub
CCB REST IWS (Utilities Adapter)
Web Service Name: C1- UnsubscribeNotifications
 
Computed URL: https://{host}:{port}/{tenant}/{domain}/ccs/rest/apis/customer/v-model/C1UnsubscribeNotifications
OIC Lookup
Method: POST URI: /
Connection Name:
Oracle Utilities REST CCB for Notif Hub
 
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_Email_ID
OUTL-BRT-NOTIFHUB_DeliveryChannel
OUTL-BRT-NOTIFHUB_DeliveryInstance
Oracle Utilities Responsys CED Process (Oracle Integration Cloud Initiated)
This integration process picks the CED file, processes it and sends a request to create Customer Contact in Oracle Utilities Customer Care and Billing.
The following diagram shows a graphical representation of the Create Customer Contact process:
Processing Details
This is a scheduled integration process deployed on Oracle Integration Cloud that performs the following activities:
1. This process is triggered by a schedule and has one schedule parameter. Define the integration schedule for this process according to your business requirement.
Schedule Parameters
Description
Initial Value
EmailFilePattern
Email CED file pattern to be processed
“SENT,FAIL,SKIPPED”
SMSFilePattern
SMS CED file pattern to be processed
“SMS_SENT, SMS_FAIL, SMS_SKIPPED”
2. Responsys CED file processing is handled using two integration process. This integration is the main process, and the child process is “Oracle Utilities Responsys CCB Cust Contact Create”. The main integration flow sends file pattern to the child integration flow using the REST API call.
3. Capture the file pattern and if the file pattern is “PENDING” as per scheduled parameters, call the child integration (Oracle Utilities Responsys CCB Cust Contact Create) and mention the resource path as CEDPending/PENDING. The child integration in invoked and processes the “PENDING” status files.
4. Capture the file pattern and if the file pattern is “EmailFilePatten”, call the child integration (Oracle Utilities Responsys CCB Cust Contact Create) and mention the resource path as CED/emailFilePattern. The child integration in invoked and processes the email CED status files.
5. Capture the file pattern and if the file pattern is “SMSFilePatten”, call the child integration (Oracle Utilities Responsys CCB Cust Contact Create) and mention the resource path as CED/smsFilePattern. The child integration in invoked and processes the sms CED status files.
6. Email notification is sent for any errors encountered in Oracle Integration Cloud. Email notifications are optional but by default it is enabled.
7. Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
8. Refer to the Oracle Utilities Notifications Hub Data Mapping Guide included in this release about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities Responsys CED Process
Integration Package Name
outl.ba.notifications_hub.1.22.2000
Identifier
OUTL-BA-RESP_CED_PROCESS
Local OIC Integration (Invoking PENDING status file)
OIC integration name: Oracle Utilities Responsys CCB Cust Contact Create
API path: oicinstance/ic/api/integration/v1/flows/rest/
OUTL-BA-RESP_CCB_CC_CREATE /1.0/metadata
Resource path: /CEDPending/{statusFile}
Response media type: application/json
Operation: processPendingFile
Http Method: POST
Connection Name: Oracle Utilities SFTP for Notif Hub
Local OIC Integration (Invoking EMAIL status file)
OIC integration name: Oracle Utilities Responsys CCB Cust Contact Create
API path: oicinstance/ic/api/integration/v1/flows/rest/
OUTL-BA-RESP_CCB_CC_CREATE /1.0/metadata
Resource path: /CED/{statusFile}
Response media type: application/json
Operation: processCEDFile
Http Method: POST.
Connection Name: Oracle Utilities SFTP for Notif Hub
Local OIC Integration (Invoking SMS status file)
OIC integration name: Oracle Utilities Responsys CCB Cust Contact Create
API path: oicinstance/ic/api/integration/v1/flows/rest/
OUTL-BA-RESP_CCB_CC_CREATE /1.0/metadata
Resource path: /CED/{statusFile}
Response media type: application/json
Operation: processCEDFile
Http Method: POST
Connection Name: Oracle Utilities SFTP for Notif Hub
OIC Lookup
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_Email_ID
Oracle Utilities Responsys CCB Cust Contact Create (Oracle Integration Cloud Initiated)
This integration creates customer contact in Oracle Utilities Customer Care and Billing by picking up the Oracle Responsys CED and pending files from Oracle Responsys SFTP location. The integration is the sub/child process and will be initiated by its main/parent integration service called “Oracle Utilities Responsys CED Process”. The Oracle Utilities Responsys CED Process integration will invoke this integration multiple times with different file pattern in a single run. The main/parent process sends request to this integration process with CED EMAIL/SMS and pending file pattern.
The following diagram shows a graphical representation of the Create Customer Contact process.
Processing Details
This is a scheduled integration process deployed on Oracle Integration Cloud that performs the following activities:
1. This process is triggered by a schedule parameters.
Integration Parameters
Description
Initial Value
pendingTargetDirectory
SFTP Directory location where the pending files should be created and placed.
download/pending
pendingSourceDirectory
SFTP Directory location where the pending files needs to be picked for file processing.
download/pending
ResponsysAcctId
Responsys account ID
81290
sourceDirectory
Responsys CED file's SFTP folder location. From this location, the integration process will pick the files and process further.
download/ced
targetDirectory
CED processed file's SFTP folder location. The integration will place the processed files in the target directory and will mark as processed by prefixing the file name with “PROCESSED”.
download/ced
ResponsysInstanceId
Responsys instance ID
RESP1
2. This integration is the sub/child process and will be called by its main/parent integration service called “Oracle Utilities Responsys CED Process”.
3. Once the integration is initiated by “Oracle Utilities Responsys CED Process”, capture the file patten to process. The integration can process the pending, sms and email CED file patterns.
4. The integration has two main flows, one is process CED files which included EMAIL AND SMS both and the second one is to process “PENDING” status files.
5. The processCEDFile (EMAIL and SMS file pattern) flow is as below:
Oracle Responsys generates compressed CED file in zip format and generates a .cnt file as well with same file name format. The .cnt file contains information about the record size present in compressed CED file.
List all the count (.cnt) file.
Loop through each count file and check if the record count in not zero.
Mark the .cnt file and the compressed CED file as processed by adding “PROCESSED” before the file name if the record count is zero.
Pick the compressed CED file and unzip the compressed CED file in a temporary location if the record count is not zero for further processing.
Read the unzipped file (CED txt file), transform the content based on CED status file for example, SENT, CLICKED, FAILED, SKIPPED to json payload to call CCB API to create customer contact.
Provide External Identifier and Notification System Identifier and call the CCB API to create customer contact.
If the CCB API call returns the HTTP status code as 200 (OK), process the next record in the file.
If HTTP status code 400 or 500 is received, capture the record in error to a temporary error collection and proceed further to process the next job record.
If HTTP status code is not 400 or 500, stop the process and send out an error email notification from the global fault handler. These errors are considered technical or remote faults (Sample Error Status: 401, 404, 503, etc.)
On error scenarios specially 400 or 500 http status code:
Log error on every error occurred.
Capture the failed records. This can be later used to send out an email to have the file process status.
6. The processPendingFile (“PENDING” file pattern) flow is as below:
The pending status xml file is generated in a separate process by Oracle Utilities Responsys SFTP File Create integration service. The count .cnt file is not generated in this process.
List all the pending file.
Loop through each pending file, download in a temporary location and process each xml message.
Prepare and transform the xml message to json message.
Mark the flag called customerContactIdentifier with Originating System Identifier and sourceOriginatingId in the JSON payload.
Invoke the CCB Create Customer Contact API and pass the Json payload.
On success API call, CCB Create Customer Contact API will return HTTP status code 200. On success response, rename the pending file as processed by prefix with “PROCESSED” and send a completion email with details.
On error, send an uncompleted process email with details. As part of error handler, if HTTP status code is 400 or 500, capture the record in error to a temporary error collection and proceed further to process the next job record. Using maxErrorCount counter variable, an error email will be sent and the tempMaxErrorCount temporary variable will reset back to 0 until its reach the maxErrorCount.
If HTTP status code is not 400 or 500, stop the process and send out an error email notification from the global fault handler. These errors are considered technical or remote faults (Sample Error Status: 401, 404, 503, etc.)
7. Email notification is sent for any errors encountered in Oracle Integration Cloud. Email notifications are optional, but by default it is enabled.
Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
Refer to the Oracle Utilities Notifications Hub Data Mapping Guide included in this release about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities Responsys CCB Cust Contact Create
Integration Package Name
outl.ba.notifications_hub.1.22.2000
Identifier
OUTL-BA-RESP_CCB_CC_CREATE
Oracle Utilities Adapter
Business Object: C1-CustomerContactNotification
Operation: syncCustomerContact
Request Payload Type: JSON
Response Payload type: JSON
API type: REST
API url: https://{domain}:port/ouaf/rest/ouaf/openapi/iws/catalog
Http Method: POST.
Connection Name: Oracle Utilities REST CCB for Notif Hub
Oracle FTP Adapter
Endpoint name: GetAllTheCountFile
Endpoint description: Get the list of count files.
Operation: List File
Input Directory: /tmp
File Name Pattern: *.cnt
Max Files: 100
Minimum Age: 0 seconds
List Files Recursively: Checked
Ignore File Permissions: Unchecked
Connection Name: Oracle Utilities REST CCB for Notif Hub
Oracle FTP Adapter
Endpoint name: ReadCountFile
Endpoint description: Read the count file
Operation: Read a file
Input Directory: Directory name from Oracle FTP Adapter (GetAllTheCountFile)
File Name: File name from Oracle FTP Adapter (GetAllTheCountFile)
Select the transfer mode: ASCII
Do you want to specify the structure for the content of file: No
Connection Name: Oracle Utilities SFTP for Notif Hub
Oracle FTP Adapter
Endpoint name: DownloadActualFile
Endpoint description: Download file with file pattern in scheduler parameters.
Operation: Download File
Input Directory: Directory name from Oracle FTP Adapter (GetAllTheCountFile)
File Name: File name from Oracle FTP Adapter (GetAllTheCountFile)
Select the transfer mode: Binary
Download Directory: /temp/resp
Perform unzip on compressed file downloaded from external FTP server: Checked
Connection Name: Oracle Utilities SFTP for Notif Hub
Oracle FTP Adapter
Endpoint name: MarkCountFileAsProcess
Endpoint description: Rename the count file as processed
Operation: Move a File
Input Directory: Directory name from Oracle FTP Adapter (GetAllTheCountFile)
Input Filename: Prefixed with “PROCESSED” and current timestamp
Connection Name: Oracle Utilities SFTP for Notif Hub
Oracle FTP Adapter
Endpoint name: MarkZipFileProcess
Endpoint description: Rename the CED compressed file as processed.
Operation: Move a File
Input Directory: Directory name from Oracle FTP Adapter (GetAllTheCountFile)
Input Filename: Prefixed with “PROCESSED” to the existing processed filename.
Connection Name: Oracle Utilities SFTP for Notif Hub
Oracle FTP Adapter
Endpoint name: ListPendingFile
Endpoint description: List the pending xml file
Operation: List File
Input Directory: /tmp
File Name Pattern: PENDING*.xml
Max Files: 100
Minimum Age: 0 seconds
List Files Recursively: Checked
Ignore File Permissions: Unchecked
Connection Name: Oracle Utilities SFTP for Notif Hub
Oracle FTP Adapter
Endpoint name: DownloadPendingFile
Endpoint description: Get all the pending files.
Operation: Download File
Select the transfer mode: ASCII
Input Directory: Directory name from Oracle FTP Adapter (ListPendingFile)
File Name: File name from Oracle FTP Adapter (ListPendingFile)
Download directory: /tmp/resp
Connection Name: Oracle Utilities SFTP for Notif Hub
Oracle FTP Adapter
Endpoint name: RenamePendingFile
Endpoint description: Rename the processed pending files
Operation: Move a File
Directory path: /
File Name: *
Target Directory path: /
Target File Name: *
Overwrite File: Unchecked
Connection Name: Oracle Utilities SFTP for Notif Hub
OIC Lookup
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_Email_ID
OUTL-BRT-NOTIFHUB_CustContactStatus
OUTL-BRT-NOTIFHUB_OriginSystem
OUTL-BRT-NOTIFHUB_DeliveryInstance
Create Pending SFTP File Process (Oracle Integration Cloud Initiated)
This integration process creates pending status file from the OCI notification message. The integration is scheduled to pick messages from OCI stream, converts the JSON message to XML format and create a Pending status xml file for further processing. The integration “Oracle Utilities Responsys CCB Cust Contact Create” further processes each xml messages and invokes CCB Create Customer API to create a customer contact with a pending status. The job of the current integration is just to convert the OCI JSON messages to XML and write an XML file prefixed with “PENDING” to an Oracle Responsys SFTP location.
The following diagram shows a graphical representation of the Create Pending Status file.
Processing Details
This is a scheduled integration process deployed on Oracle Integration Cloud that performs the following activities:
1. This process is triggered by a schedule and has one schedule parameter.
Schedule Parameters
Description
Initial Value
maxRecords
Maximum records to be fetched from the OCI Stream
300
 
Integration Parameters
Description
Initial Value
targetDirectory
Oracle Responsys SFTP directory location where the Pending files will be written/created.
SFTP location where Oracle Responsys is installed
2. Define the integration schedule for this process according to your business requirement.
3. Invoke OCI Stream adapter to consume the message from TargetNotificationStream and set the maxfetch records with maxRecords from schedule parameters.
4. The consumer group is set to CustomerContactGroup as part of OCI stream adapter configuration.
5. Assign the total number of messages fetch to a count variable.
6. Check the message count and if exits any messages, transform the json payload from OCI stream to XML format.
7. Invoke the FTP adapter and create a file with the following format:
“PENDING” + current time stamp
8. A xml file with prefixed with “PENDING” and timestamp file will be created in the specified targetDirectory location, configured as part of integration parameter.
9. On any error during this process, the consumed message will be placed back to the OCI target stream for further process in next run.
10. Email notification is sent for any errors encountered in Oracle Integration Cloud. Email notifications are optional, but by default it is enabled.
Refer to Chapter 6: Configuring Lookups, Error Handling, and Email Notifications for error handling information on error scenarios and retry options.
Refer to the Oracle Utilities Notifications Hub Data Mapping Guide included in this release about mapping information for data elements.
Technical Details
The following table describes the integration processes and the respective artifacts used in this integration process.
Artifacts
Value
Integration Process Name
Oracle Utilities Responsys SFTP File Create
Integration Package Name
outl.ba.notifications_hub.1.22.2000
Identifier
OUTL-BA-RESP_SFTP_FILE_CREATE
Oracle FTP Adapter Identifier
OUTL-BRT-SFTP_NOTIF_HUB
Operation: Write Files
Output Directory: /
Select a Transfer Mode: Ascii
File Name Pattern: *
Append to Existing File: Unchecked
PGP encryption/description: No PGP Encryption/Decryption on the file to be sent to external FTP server
Connection Name: Oracle Utilities SFTP for Notif Hub
Oracle Streams Adapter Identifier
OUTL-BRT-STREAM-NOTIF_HUB
Operation: Consume message from stream
Stream Selected: TargetNotificationStream
Partition: Default
Consumer Group: CustomerContactGroup
Max No of records to be fetched: 400
Specify the option for consuming message: Read Latest
Connection Name: Oracle Utilities OCI Streaming for Notif Hub
OIC Lookup
OUTL-BRT-NOTIFHUB_ConfigProps
OUTL-BRT-NOTIFHUB_EmailSubject
OUTL-BRT-NOTIFHUB_Email_ID