Table of Contents

Search

  1. Preface
  2. Introduction to Business Entity Services
  3. EJB Business Entity Service Calls
  4. REST Business Entity Service Calls
  5. REST APIs for Data Director
  6. SOAP Business Entity Service Calls
  7. Cross-reference Records and BVT Calculations Services
  8. Supporting Corporate Linkage Service
  9. External Calls to Cleanse, Analyze, and Transform Data
  10. Appendix A: Using REST APIs to Add Records
  11. Appendix B: Using REST APIs to Upload Files
  12. Appendix C: Using REST APIs to Manage Reports

Example: Call a Services Integration Framework Call from an External Call

Example: Call a Services Integration Framework Call from an External Call

For security reasons, MDM does not pass password and payload information to an external call. The BESExternalCallWithSIF example shows how to call a Services Integration Framework (SIF) call from an external call.
The external call in this example performs the following custom validation:
  1. Checks whether a phone number in a Person record has special characters in the phone extension number.
  2. If the phone number includes special characters, corrects the phone number.
  3. Checks whether only one phone number has the type PRI.
After the external call completes the validation that only one phone number exists with the type PRI, the external call performs an update using the SIF Put call.

Prerequisites

Configure an application user for calls from the external service to the MDM Hub. This example uses e360 as an application user. Replace this application user with the user you configured. For more information, see the
Multidomain MDM Security Guide
.

Calling a SIF Call from an External Call

  1. Build and deploy the bes-external-call.ear file.
  2. In the Provisioning tool, register the web service as a SOAP service.
    The following table lists the properties that you can configure for the SOAP service:
    Property
    Example Value
    Name
    besexternal
    URL
    https://<host>:<port>/bes-external-call/CustomLogicService?wsdl
  3. In the Provisioning tool, register the external call.
    The following table lists the properties that you can configure for the external call:
    Property
    Example Value
    SOAP Operation
    validate
    Business Entity
    Person
    Service Phase
    WriteCO.BeforeValidate
    • Operation: validate
    • Business Entity: Person
    • Service Phases: WriteCO.BeforeValidate
  4. Create a Person record with a phone number that has special characters in the phone extension number.
    The following sample POST request includes the special characters @ in the phone number extension:
    POST /cmx/cs/<ors>/Person?systemName=Admin { "firstName": "John", "TelephoneNumbers": { "item": [ { "phoneExtNum": "e@1", "phoneNum": "1234567", "phoneTypeCd":{ "phoneType":"PRI" } } ] } }
    The following response displays the validation error:
    <?xml version="1.0" encoding="UTF-8"?> <ns1:CsFault xmlns:ns1="urn:cs-base.informatica.mdm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ns1:errorMessage>SIP-50022: Validation failed.</ns1:errorMessage> <ns1:errorCode>SIP-50022</ns1:errorCode> <ns1:details xsi:type="ns1:ValidationErrors"> <ns1:error> <ns1:code>CUSTOM-00001</ns1:code> <ns1:message>The Phone Ext Number has special symbols.</ns1:message> <ns1:field>Person.TelephoneNumbers.phoneExtNum</ns1:field> </ns1:error> </ns1:details> </ns1:CsFault>
    The following sample is a valid POST request that does not generate a validation error:
    POST /cmx/cs/<ors>/Person?systemName=Admin { "firstName": "John", "TelephoneNumbers": { "item": [ { "phoneExtNum": "e1", "phoneNum": "1234567", "phoneTypeCd":{ "phoneType":"PRI" } } ] } }
  5. Create a Person record with a phone number that includes a letter, such as o.
    When the POST request runs, the number 0 replaces the letter o.
    The following sample POST request includes a phone number with the letter o:
    POST /cmx/cs/<ors>/Person?systemName=Admin { "firstName": "John", "TelephoneNumbers": { "item": [ { "phoneExtNum": "e1", "phoneNum": "123o4567", "phoneTypeCd":{ "phoneType":"PRI" } } ] } }
  6. Consider the following scenarios that demonstrate how the phone type value is set depending on whether a POST request includes one or multiple phone records:
    • Scenario 1. This scenario includes two POST requests that create one phone record each. The following POST request creates the first phone record with the phone type of PRI:
      POST /cmx/cs/<ors>/Person?systemName=Admin { "firstName": "John", "TelephoneNumbers": { "item": [ { "phoneExtNum": "e1", "phoneNum": "12304567", "phoneTypeCd":{ "phoneType":"PRI" } } ] } }
      When the following post request runs to create the second phone record, the phone type is set to PRI for the second phone record and the phone type from the first post request is changed to OTH.
      POST /cmx/cs/<ors>/Person/rowidObject?systemName=Admin { "TelephoneNumbers": { "item": [ { "phoneExtNum": "e2", "phoneNum": "23045678", "phoneTypeCd":{ "phoneType":"PRI" } } ] } }
    • Scenario 2. This scenario includes one POST request that creates two phone records. The following sample POST request includes two phone records with the phone type of PRI:
      POST /cmx/cs/<ors>/Person?systemName=Admin { "firstName": "John", "TelephoneNumbers": { "item": [ { "phoneExtNum": "e1", "phoneNum": "12304567", "phoneTypeCd":{ "phoneType":"PRI" } }, { "phoneExtNum": "e2", "phoneNum": "23045678", "phoneTypeCd":{ "phoneType":"PRI" } } ] } }
      When this POST request runs, the phone type for the first phone record is set to PRI. For the second phone record, the phone type is set to OTH.

0 COMMENTS

We’d like to hear from you!