Outbound Web Services
Outbound Services Connector (OSC)
The OSC leverages the extensibility framework to allow for outbound web service calls during math processing. The extension provides mechanisms to specify delivery targets and message templates. The latter allows users to map between the data at a given extension point and a downstream interface. Further, it avoids the need to develop individual extensions for each downstream interface, while maintaining application performance and throughput.
Note: A setup and configuration guide for the OSC is available in the current release Documentation Library under Policy Administration Libraries of Oracle Help Center.
File Received Example using Acord LOMA
Each of the following examples is meant to show how the various configuration files can be used to configure the FileReceived Web Service to integrate with other systems. A majority of these examples are from the ACORD 103 implementation, which is included in version 9.1 of OIPA.
SOAP Request
The SOAP request message must include an element indicating the service to use, which is processFileReceived in the case of the FileReceived Web Service. Inside of this parent element, two child elements need to be included: the first declaring the corresponding FileID in AsFile, and the second including the XML destined for transformation.
The <![CDATA[ ]]> section allows the system to pass the full XML message to the Web Service without it being evaluated by the initial parser of the SOAP message. If the usage of CDATA is not desired, all characters that may be misinterpreted, such as "<" and "&", must be replaced with their respective escape sequences ("<" and "&" in this case).
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fil="http://FileReceived"> <soapenv:Header> <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Username>tester</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">tester</wsse:Password> <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">kC5eI6iq8x17/qA3mzs6/g==</wsse:Nonce> <wsu:Created>2010-03-22T14:12:34.223Z</wsu:Created> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <fil:processFileReceived> <fileId xsi:type="xsd:string">AL2</fileId> <xml xsi:type="xsd:string"> <NewField> <PlanName>Functional Prototype Plan</PlanName> <FundName1>Interest Rate Calc Fund 1</FundName1> <FundName2>Interest Rate Calc Fund 2</FundName2> <FundName3>Interest Rate Calc Fund 3</FundName3> <FundName4>Interest Rate Calc Fund 4</FundName4> </NewField> </xml> </fil:processFileReceived> </soapenv:Body> </soapenv:Envelope> |
XML Message
This example shows a very small portion of a sample request that follows the ACORD 103 specification. In this example, the information can be nested in a structured manner as needed. Each element can have attributes to aid in clarifying data.
<TXLife> <TXLifeRequest> <OLife> <Holding id="Holding_1"> <HoldingTypeCode tc="2">Policy</HoldingTypeCode> <Purpose tc="21">Family Income</Purpose> <Policy> <LineOfBusiness tc="1">Life</LineOfBusiness> <ProductCode>F34523A4-7988-48E0-BED9-BE2CF82FFC5F</ProductCode> <PolicyStatus tc="21">Applied For</PolicyStatus> <IssueType tc="1">Full Underwriting</IssueType> <Jurisdiction tc="45">Pennsylvania</Jurisdiction> <ReplacementType tc="1">None</ReplacementType> <IssueDate>2008-02-15</IssueDate> <PaymentMode tc="1">Annual</PaymentMode> <PaymentMethod tc="2">Regular Billing</PaymentMethod> <Life> <QualPlanType tc="1">NonQualified</QualPlanType> <Coverage id="BaseCoverage"> <PlanName>Acme Term</PlanName> <ProductCode>04</ProductCode> <LifeCovTypeCode tc="06">Term Life</LifeCovTypeCode> <IndicatorCode tc="1">Base</IndicatorCode> <LivesType tc="1">Single Life</LivesType> <QualAddBenefitInd tc="1">True</QualAddBenefitInd> <InitCovAmt>1000000</InitCovAmt> <EffDate>2008-02-15</EffDate> </Life> </Policy> </Holding> </OLife> </TXLifeRequest> </TXLife> |
SOAP Response
The SOAP Response is the message that OIPA returns to the caller after receiving a SOAP request. There are two possible outcomes to a SOAP request: success or a fault.
Successful Response
When an inbound SOAP request is successfully processed, a SOAP response is returned to the caller along with the transformed AsXml that was inserted into the database. This default configuration can be changed and the data returned to the caller can be modified by inserting an XSLT stylesheet into the AsFileOutput table of the database. This example shows the default SOAP response.
<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""> <soapenv:Body> <ns1:processFileReceivedResponse soapenv:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"" xmlns:ns1=""http://FileReceived""> <processFileReceivedReturn xsi:type=""xsd:string""> <![CDATA[ <?xml version=""1.0"" encoding=""UTF-8""?> <AsXml> <AsAllocation> <AllocationGuid>09B57F68-0B2D-476D-AA4F-806CBA5D118A</AllocationGuid> <Value>100</Value> <GroupGuid>9FF5FE2A-D5EC-4B77-A5F5-DF44E6AB0BC7</GroupGuid> <TypeCode>03</TypeCode> <RelatedGuid>A3CCC022-A7A3-1BAD-E040-8C0A0EA651AF</RelatedGuid> <FundGuid>66E7A284-2959-4261-84E5-FB81900AC504</FundGuid> <AllocationMethodCode>01</AllocationMethodCode> <AllocationPercent>20</AllocationPercent> <AllocationAmount>10</AllocationAmount> <AllocationUnits>2</AllocationUnits> <PercentInAllocation>0</PercentInAllocation> <EffectiveDate/> </AsAllocation> <AsAllocation> <AllocationGuid>717A1C87-AFFF-4BF1-86CD-F525A941D29B</AllocationGuid> <Value>100</Value> <GroupGuid>9FF5FE2A-D5EC-4B77-A5F5-DF44E6AB0BC7</GroupGuid> <TypeCode>03</TypeCode> <RelatedGuid>A3CCC022-A7A3-1BAD-E040-8C0A0EA651AF</RelatedGuid> <FundGuid>56FE02B5-E24F-41CB-BBAB-FD5A1212210F</FundGuid> <AllocationMethodCode>01</AllocationMethodCode> <AllocationPercent>20</AllocationPercent> <AllocationAmount>10</AllocationAmount> <AllocationUnits>2</AllocationUnits> <EffectiveDate/> </AsAllocation> <AsAllocation> <AllocationGuid>914C2901-6838-495E-BF81-01DA9423E624</AllocationGuid> <Value>100</Value> <GroupGuid>98DEFD38-40EA-4562-A023-CD80F77936E8</GroupGuid> <TypeCode>03</TypeCode> <RelatedGuid>A3CCC022-A7A3-1BAD-E040-8C0A0EA651AF</RelatedGuid> <FundGuid>E5840467-A35B-44CF-8FAD-3CB03AFB2F3A</FundGuid> <AllocationMethodCode>01</AllocationMethodCode> <AllocationPercent>20</AllocationPercent> <AllocationAmount>10</AllocationAmount> <AllocationUnits>2</AllocationUnits> <PercentInAllocation>0</PercentInAllocation> <EffectiveDate/> </AsAllocation> <AsAllocation> <AllocationGuid>305A4E2E-E3B4-4756-B48A-B7399AB564E2</AllocationGuid> <Value>100</Value> <GroupGuid>98DEFD38-40EA-4562-A023-CD80F77936E8</GroupGuid> <TypeCode>03</TypeCode> <RelatedGuid>A3CCC022-A7A3-1BAD-E040-8C0A0EA651AF</RelatedGuid> <FundGuid>8DAE3947-83F6-4189-BB3F-DCA40F3AAAC9</FundGuid> <AllocationMethodCode>01</AllocationMethodCode> <AllocationPercent>20</AllocationPercent> <AllocationAmount>10</AllocationAmount> <AllocationUnits>2</AllocationUnits> <PercentInAllocation>0</PercentInAllocation> <EffectiveDate/> </AsAllocation> </AsXml> ]]> </processFileReceivedReturn> </ns1:processFileReceivedResponse> </soapenv:Body> </soapenv:Envelope> |
SOAP Fault
If, for any reason, there is an error while processing the inbound SOAP request, OIPA will return a SOAP Fault response message, along with details surrounding the error. In this example, a SOAP Fault message is being returned because the security parameters sent in the SOAP request were incorrect.
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>ns1:Receiver</faultcode> <faultstring>Authorization failed.</faultstring> <detail> <ns2:AsErrorDetail> <ns2:Error TYPE="System"> <ns2:Message>Authorization failed.</ns2:Message> </ns2:Error> </ns2:AsErrorDetail> <ns3:hostname>WS-Training</ns3:hostname> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> |