ORMB Integration via SFTP

Oracle Insurance Gateway might require communicating to Oracle Revenue and Billing Management (ORMB) for various use cases, for example, 1) to synchronize group information between Policies and ORMB 2) to send the financial messages produced by Claims or Policies for billing to ORMB

In this chapter both the use cases mentioned above are outlined.

Synchronized Group Data

In this case, Policies invokes Oracle Insurance Gateway using the file upload mechanism whenever the data gets changed in Policies. This is made possible by configuring change event rules of type - "Message" in Policies. For details on configuring change event rule, refer to Policies - "Change Events" chapter in the Configuration Guide.

The ORBM specific file gets produced by Policies, and gets uploaded to Oracle Insurance Gateway using multipart/form-data. The gateway saves the Data File contents for each Data File in the Data File Set and sends these contents via SFTP/REST to the destination (ORMB).

integration connector gateway deployment.drawio

If Oracle Insurance Gateway needs to transmit the contents of each Data File to a configured SFTP location, then an SFTP Destination ORMBSFTP must be set up. Such a destination can be set up by sending in the following request to Generic API /sftpdestinations :

{
  "code": "ORMBSFTP",
  "type" : "SFTP",
  "typeConfig": {
      "hostname" : "somehost.somedomain.com",
      "port" : 22,
      "strictHostKeyChecking" : false,
      "directoryName" : "/some_root_dir/sub_dir"
  }
}

The next step is to create an Integration. This is done by sending the following request using POST Method to Generic API resource /integrations.

{
  "code": "OHI_ORMB_GroupSFTPIntegration",
  "type": "integration",
  "descr": "SFTP group changes from OHI to ORMB ",
  "integrationSteps": [
    {
      "code": "file_upload_SFTP",
      "sequence": 1,
      "subtype": "DELIVERY",
      "destination": {
        "code": "ORMBSFTP"
      }
    }]
}

This integrating gets invoked by Policies Connector Configuration. For details on Connector configuration refer to Policies Developer Guide.

Financial Integration with ORMB

Using Oracle Insurance Gateway, a set of processes can be orchestrated to run one after another. This feature is especially useful in the chaining of financial activities. An Integration can be set up to call the financial activities one by one.

Given below is a sample request that can be used to set up such an integration :

{
    "code": "financialCalculation",
    "type": "integration",
    "descr": "Financial Calculation",
    "integrationSteps": [
       {
            "code": "invokeCalculatePremium",
            "indicatorExpectNotification": true,
            "subtype":"ACTIVITY",
            "sequence":"1",
             "destination": {
                  "code": "policies"

             },
            "typeConfig": {
              "code": "CALCULATE_PREMIUM",
    		  "description": "{description}",
              "level":"GL",
              "parameters": [

                    {
                        "name": "calculationInputDate",
                        "value": "{calculationInputDate}"
                    },
                    {
                        "name": "lookBackDate",
                        "value": "{lookBackDate}"
                    },
                    {
                    	"name": "groupAccount",
                        "value": "{groupAccount}"

                    },
                    {     "name":"finTransDynLogic",
                         "value": "{finTransDynLogic}"
                     }
                  ]
            }

        },
          {
            "code": "invokeSelectTransactionIntoSet",
            "indicatorExpectNotification": true,
            "subtype":"ACTIVITY",
            "sequence":"2",
             "destination": {
                  "code": "policies"

             },
            "typeConfig": {
              "code": "SELECT_TRANSACTIONS_IN_SET",
    		  "description": "{description}",
              "level":"GL",
              "parameters": [

                    {
                        "name": "financialTransactionSetCode",
                        "value": "{financialTransactionSetCode}"
                    }
                ]
            }

        },
        {
            "code": "invokeSupersede",
            "indicatorExpectNotification": true,
            "subtype":"ACTIVITY",
            "sequence":"3",
             "destination": {
                  "code": "policies"

             },
            "typeConfig": {
              "code": "SUPERSEDE",
    		  "description": "{description}",
              "level":"TS",
              "contextFields": [

                    {
                        "name": "transactionSet",
                        "value": "{financialTransactionSetCode}"
                    }
                ]
            }

        },

        {
            "code": "invokeGenerateFinancialMessage",
            "indicatorExpectNotification": true,
            "subtype":"ACTIVITY",
            "sequence":"4",
            "outputName":"finanicalMessageOHI",
            "destination": {
                  "code": "policies"

             },
            "typeConfig": {
              "code": "GENERATE_FIN_MSG_XML",
    		  "description": "{description}",
              "level":"TS",
              "contextFields": [

                    {
                        "name": "transactionSet",
                        "value": "{financialTransactionSetCode}"
                    }
                ],
                 "parameters": [

                    {
                        "name": "createInvoiceDynLogic",
                        "value": "{createInvoiceDynLogic}"
                    } ,
                     {
                        "name": "createInvoiceLineDynLogic",
                        "value": "{createInvoiceLineDynLogic}"
                    } ,
                   {
                        "name": "createAccountingDetailDynLogic",
                        "value": "{createAccountingDetailDynLogic}"
                    } ,
                     {
                        "name": "cutOffDate",
                        "value": "{cutOffDate}"
                    } ,

                     {
                        "name": "cutOffTime",
                        "value": "{cutOffTime}"
                    }

                ]

            }

        },
           {
            "code": "finMessageTransDeliver",
            "sequence": 5,
            "subtype":"DELIVERY",
            "outputName":"finMessageTransformation",
            "functionTransformation": {"code" :"FinMessageTransformation"},
            "destination": {
                  "code": "ORMBSFTP"

             }

        }
    ]
}

Note that in this configuration all the activity parameters are parameterized. This means they must be supplied at the time of integration invocation. Optionally If there are/is step(s) before calculating premium then these parameters can be added as exchange properties in the preceding dynamic logic. For more details on the parameterization of the configuration refer to the section Integration Parameters and Exchange Properties of the chapter Integration in this guide.

Also, note that activity invocation in Policies applications is an asynchronous processes, and therefor indicatorExpectNotification is set to true for all the ACTIVITY steps. Oracle Insurance Gateway expects notification from the interfacing OHI application to resume an integration invocation that is currently in waiting status.

For Policies application to send the notification back to Oracle Insurance Gateway, configure the outbound notification endpoint - in this case activity notification endpoint - to the Oracle Insurance Gateway notification endpoint. This requires the system property ohi.activityprocessing.notification.endpoint.<ACTIVITY_TYPE> to be set to:

http(s)://{host:port}/{oig application context}/notifications

Also, in the Policies application, the credential and the authentication property must be set for the key <`ACTIVITY_TYPE`>.

The image below shows the invocation of this integration using Exchange Integration Point - With Parameters

finanicalIntegration

The financial message generated by Oracle Health Insurance is accessible to FinMessageTransformation dynamic logic through bind variable 'finanicalMessageOHI'. The financial message gets transformed into ORMB message using transformation dynamic logic and is SFTP to ORBM (via destination 'ORMBSFTP') (see the previous example, for destination configuration) using DELIVERY step 'finMessageTransDeliver'