Wednesday, 31 July 2019

MFT Event Driven Integration with SOA

Use the following steps to create MFT flow.

  1.  Create a transfer. 
  2.  After you create a transfer , select create a source option
  3. Provide source name and source type ex: SFTP or FILE
  4. Provide the SFTP login credentials and source location. 
  5. Submit create.
  6. Open the source , Go to Source schedule
  7. Select Event option.   Next event option click the link and get the WSDL URL . 
    • http://localhost/mftapp/services/MFTEventService?WSDL 
      • Source Encryption or Decryption
        • We can encrypt or decrypt a file at source before transfer. 
        • Select actions in source page. 
        • select the Encryption or Decryption option
        • Provide the encryption or decryption key. 
        •  For encryption, you must reference the public PGP key alias. For decryption, you must reference the private PGP key alias.
      • We can archive or delete the file by providing necessary details in advanced/operations tab. 
  8. Select create target and provide the target details and submit create button. 
  9. Save all the changes and deploy. 
Use the following steps to configure SOA integration to invoke MFT. 
  1. Create a composite.
  2. Create a SOAP target with above MFT WSDL . 
  3. Select submitEvent operation to process the source files. 
  4. Provide Source name in the request message. 
  5. MFT will submit the event and provide the event id. 
  6. Use the event id and invoke getEventStatus operation to get the status of the MFT file transfer. 
    • Alternatively we can use following rest API's
      • /mftapp/rest/v1/events
      • /mftapp/rest/v1/events/{eventSessionId}
  7. Response will have multiple status if there are more than one file. 
  8. If the status says in process then wait for few mins and re submit the get status operation. 
  9. Check the status of each file transfer and take action. 
     
      







Friday, 26 July 2019

ORACLE SOACS - Invoke a WebService using OAuth


Create a Keystore for OWSM  -- One Time Configuration
  • Go to the WebLogic Domain → Security → Keystores page.
  • Click on “Create Stripe” button
  • Enter the name “owsm”
  • Click on the newly created “owsm” stripe
  • Click on the “Create Keystore” button..
  • Fill in the Keystore name as “keystore”
  • Ensure the Protection type is “Policy”
  • Click on “OK”
Create a credentials map for OWSM  -- One Time Configuration
  • Go to WebLogic Domain → Security → Credentials
  • Click on the “Create Map” button
  • Fill in the name “oracle.wsm.security”
  • Click "OK

Create a Credential Key - csfkey for OAuth
  • Click on the map created in the previous step
  • Click on the “Create Key” button
  • Ensure that the Type field has “Password” selected
  • Enter the OAuth Client ID in the “User Name” field
  • Enter the OAuth Client Secret in the “Password” field
  • Enter the same value in the “Confirm Password” field
  • Click “OK”

Create a composite and attach following policies to the reference/target component.
  • "oracle/oauth2_config_client_policy" (This policy is used to configure the OAuth settings)
    • Edit the policy configurations to update the following values
      • token.uri
      • oauth2.client.csf.key
  • "oracle/http_oauth2_token_client_policy" ( This policy acquires the OAuth Access Token and attaches it to the request )
    • Edit the policy configurations to update the following values. 
      • outh2.client.csf.key
      • set federated.client.token to flase
      • set subject.precedence to false
      • Scope - provide scope name. 
Grant OWSM access to the Keystore for the Composite
  • Go to the WebLogic Domain → Security → System Policies page
  • In the search field, search for Type of “Codebase”
  • Use the Name “Includes” option
  • Enter “wsm-agent-core” in the Name field
  • Press the button to search
  • Click on the policy name to select it
  • Click on the “Edit” button
  • Click the “Add” button to add a new permission
  • Click on the “Select here to enter details for a new permission” check box
  • In the The “Permission Class” field enter “oracle.wsm.security.WSIdentityPermission”
  • In the “Resource Name” enter the SOA Composite name in the following format exactly, substituting your composite name for <composite_name>:“resource=<composite_name>,mapName=oracle.wsm.security”
  • In the “Permission Action” enter “getKey”
  • Click “OK” to create the permission

Thursday, 25 July 2019

HCM LOADING WORKER RECORD

HDL - HCM Data Loader is the recommended way of loading data to HCM.

HDL load can be done manually or through Web Service.

Pre requisites are :
  1. Configure Source System Owner
    • Navigator  > Setup and Maintenance > Search
    • Search for - Manage Common Lookups
    • Lookup Type = HRC_SOURCE_SYSTEM_OWNER
    • Update or add new source system owner.
    • Use this value while loading worker data. 
  2. Configure Legal employer and Business Units.  
    • Verify existing LE and BU 
    • Navigator  > Setup and Maintenance > Search
    • Search for Manage Legal Entity HCM Information
    • Lookup type = Use existing LE value 
  3. Business Units
    • Navigator  > Setup and Maintenance > Search
    • Search for Manage Business Units
    • Lookup type = Use existing BU value.  
  4. Create a required worker files. 
  5. Zip the files. 
  6. Go to Menu > My Workforce > Data Exchange
  7. Go to Tasks > Import and Load Data
  8. Import the zip file. 
  9. Load the Business Objects. 
Worker Data :
SourceSystemOwner
VK
SourceSystemId
VK_PER<SEQ> (example VK_PER1, VK_PER2)
PersonNumber
VK<SEQ> (example VK1, VK2...)
ActionCode
HIRE

PersonName :
SourceSystemOwner
VK
SourceSystemId
VK_PERNAME<SEQ> (example VK_PERNAME1, VK_PERNAME2)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
NameType
GLOBAL

PersonNationalIdentifier :
SourceSystemOwner
VK
SourceSystemId
VK_NID<SEQ> (example VK_NID1, VK_NID2)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
NationalIdentifierType
SSN


PersonEmail
SourceSystemOwner
VK
SourceSystemId
VK_EMAIL<SEQ> (example VK_EMAIL1, VK_EMAIL2)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
EmailType
W1

 PersonPhone
SourceSystemOwner
VK
SourceSystemId
VK_WPH<SEQ> / VK_HPH<SEQ> (example VK_WPH1, VK_HPH1)
PhoneType
W1 / H1 (  W1 for WorkPhone and H1 for HomePhone)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)

PersonAddress
SourceSystemOwner
VK
SourceSystemId
VK_ADDR<SEQ>   (example VK_ADDR1, VK_ADDR2)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
AddressType
HOME


 PersonEthnicity
SourceSystemOwner
VK
SourceSystemId
VK_ETHNIC<SEQ>   (example VK_ETHNIC1, VK_ETHNIC2)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
Ethnicity
1 , 2, 8 , 6 , 7 (Check for valid codes in application)

 PersonLegislativeData
SourceSystemOwner
VK
SourceSystemId
VK_LEG<SEQ>   (example VK_LEG1, VK_LEG2)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
LegislationCode
US

 WorkRelationship
SourceSystemOwner
VK
SourceSystemId
VK_PDSERVICE<SEQ>(example VK_PDSERVICE1)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
LegalEmployerName
US1 Legal Entity
WorkerNumber
VK<SEQ> (example VK1, VK2 …)

WorkTerms
SourceSystemOwner
VK
SourceSystemId
VK_WRKTERM<SEQ>(example VK_WRKTERM1)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
PeriodOfServiceId(SourceSystemId)
VK_PDSERVICE<SEQ>  (example VK_PDSERVICE1)
ActionCode
HIRE
AssignmentNumber
VK_WRKTERM<SEQ>(example VK_WRKTERM1)
AssignmentType
ET / CT ( ET for Employee , CT for Contingent Worker)
BusinessUnitShortCode
US1 Business Unit
LegalEmployerName
US1 Legal Entity
SystemPersonType
EMP / CWK ( EMP for Employee , CWK for Contingent Worker)

Assignment
SourceSystemOwner
VK
SourceSystemId
VK_ASSIGN<SEQ>(example VK_ASSIGN1)
PersonId(SourceSystemId)
VK_PER<SEQ> (example VK_PER1, VK_PER2...)
ActionCode
HIRE
AssignmentName
E-VK<SEQ> (example E-VK1 , E-VK2 )
AssignmentNumber
VK_ASSIGN<SEQ>(example VK_ASSIGN1)
AssignmentType
E / C ( E for Employee , C for Contingent Worker)
BusinessUnitShortCode
US1 Business Unit
LegalEmployerName
US1 Legal Entity
SystemPersonType
EMP / CWK ( EMP for Employee , CWK for Contingent Worker)
JobId(SourceSystemId)
VK_JOB<SEQ> (example VK_JOB1)
LocationId(SourceSystemId)
VK_LOC<SEQ> (example VK_LOC1)
OrganizationId(SourceSystemId)
VK_DEPT<SEQ> (example VK_DEPT1)
PositionId(SourceSystemId)
VK_POS<SEQ> (example VK_POS1)
GradeId(SourceSystemId)
VK_GRADE<SEQ> (example VK_GRADE1)
PeriodOfServiceId(SourceSystemId)
VK_PDSERVICE<SEQ> (example VK_PDSERVICE1)
WorkTermsAssignmentId(SourceSystemId)
VK_WRKTERM<SEQ> (example VK_WRKTERM1)


Wednesday, 24 July 2019

SOACS - Dynamic Routing

Use the following steps to invoke target composites dynamically.

  • Create a schema file using below given schema. 
  • Create a variable (CustomEndPoint) to hold the dynamic URL. 
  • Select variable type as Element and select the element from the above created schema file. 
  • Assign the following endpoint elements to the variable - $CustomEndPoint.
    • use literal option (next to expression builder)
    • Use append rule. 
             <wsa:EndpointReference xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
             <wsa:Address/>
            </wsa:EndpointReference>

  • assign the variable end point to following target element.
    • $CustomEndPoint/wsa:EndpointReference/wsa:Address 
  • Assign the variable - $CustomEndPoint to target partnerlink (Target side select the partner links and select the target reference)
  • Add the following name space to BPEL. 
    • xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"

Schema:


<?xml version='1.0' encoding='UTF-8'?>
<xsd:schema targetNamespace="http://docs.oasis-open.org/wsbpel/2.0/serviceref" 
xmlns:sref="http://docs.oasis-open.org/wsbpel/2.0/serviceref" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" blockDefault="#all">
   <xsd:annotation>
      <xsd:documentation>Service Reference Schema for WS-BPEL 2.0</xsd:documentation>
   </xsd:annotation>
   <xsd:element name="service-ref" type="sref:ServiceRefType">
      <xsd:annotation>
         <xsd:documentation>This element can be used within a from-spec.</xsd:documentation>
      </xsd:annotation>
   </xsd:element>
   <xsd:complexType name="ServiceRefType">
      <xsd:annotation>
         <xsd:documentation>This type definition is for service reference container.
This container is used as envelope to wrap around the actual endpoint reference value,
when a BPEL process interacts the endpoint reference of a partnerLink.
It provides pluggability of different versions of service referencing schemes
being used within a BPEL program. The design pattern here is similar to those of
expression language.</xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:any namespace="##other" processContents="lax"/>
      </xsd:sequence>
      <xsd:attribute name="reference-scheme" type="xsd:anyURI"/>
   </xsd:complexType>
</xsd:schema>

Sample NXSD for Writing HDL file

<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
            xmlns:tns="http://www.oracle.com/TaleoToHCMPrimaryWriteFile" targetNamespace="http://www.oracle.com/TaleoToHCMPrimaryWriteFile"
            elementFormDefault="qualified" attributeFormDefault="unqualified" nxsd:version="NXSD" nxsd:stream="chars"
            nxsd:encoding="US-ASCII">
  <xsd:element name="Root-Element">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Worker" type="tns:Worker_Type" maxOccurs="unbounded"/>
        <xsd:element name="PersonLegislativeData" type="tns:PersonLegislativeData_Type" maxOccurs="unbounded"/>
<xsd:element name="PersonName" type="tns:PersonName_Type" maxOccurs="unbounded"/>
<xsd:element name="WorkRelationship" type="tns:WorkRelationship_Type" maxOccurs="unbounded"/>
<xsd:element name="WorkTerms" type="tns:WorkTerms_Type" maxOccurs="unbounded"/>
<xsd:element name="Assignment" type="tns:Assignment_Type" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="Worker_Type">
    <xsd:sequence>
      <xsd:element name="METADATA" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="Worker" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveStartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveEndDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="BloodType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="CorrespondenceLanguage" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="StartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="DateOfBirth" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="DateOfDeath" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="CountryOfBirth" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="RegionOfBirth" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="TownOfBirth" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ApplicantNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="WaiveDataProtectFlag" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="CategoryCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ActionCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ReasonCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="GUID" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PER_PERSONS_DFF" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SOURCE_HIRE" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemOwner" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="SourceSystemId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PersonLegislativeData_Type">
    <xsd:sequence>
      <xsd:element name="METADATA" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonLegislativeData" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonLegislativeId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveStartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveEndDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="LegislationCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="HighestEducationLevel" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="Sex" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemOwner" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="GUID" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PersonName_Type">
    <xsd:sequence>
      <xsd:element name="METADATA" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonNameId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveStartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveEndDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="LegislationCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="NameType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="MiddleNames" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="KnownAs" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="Suffix" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemOwner" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="GUID" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WorkRelationship_Type">
    <xsd:sequence>
      <xsd:element name="METADATA" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="WorkRelationship" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="LegalEmployerName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="DateStart" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="WorkerType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="LegalEmployerSeniorityDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="ActualTerminationDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="EnterpriseSeniorityDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="LastWorkingDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="NotifiedTerminationDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PrimaryFlag" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="RehireRecommendationFlag" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ActionCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ReasonCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemOwner" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WorkTerms_Type">
    <xsd:sequence>
      <xsd:element name="METADATA" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="WorkTerms" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="ActionCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveStartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveEndDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveSequence" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveLatestChange" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="AssignmentNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="PersonNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PeriodOfServiceId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PersonId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="LegalEmployerName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="DateStart" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="WorkerType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="AssignmentStatusTypeCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProjectedStartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProposedUserPersonType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProposedWorkerType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="BusinessUnitShortCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemOwner" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Assignment_Type">
    <xsd:sequence>
      <xsd:element name="METADATA" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="Assignment" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="ActionCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveStartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveEndDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveSequence" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="EffectiveLatestChange" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="AssignmentNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
      <xsd:element name="WorkTermsNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="WorkTermsAssignmentId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="AssignmentType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="AssignmentStatusTypeCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="BusinessUnitShortCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="DateProbationEnd" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="AssignmentCategory" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="GradeCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="HourlySalariedCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="JobCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="LocationCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="NormalHours" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="Frequency" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="DepartmentName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PersonNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PeriodOfServiceId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PersonId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="WorkerType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="LegalEmployerName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PersonTypeCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SystemPersonType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="PrimaryAssignmentFlag" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProbationPeriod" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProbationUnit" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProjectedEndDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ReasonCode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProjectedStartDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProposedUserPersonType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="ProposedWorkerType" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="FLEX_PER_ASG_DF" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="FLEX_PER_ASG_LEG_DDF" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="VACATION_CODE" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="VAC_ADJ_DATE" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="WorkAtHomeFlag" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemOwner" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|"/>
  <xsd:element name="SourceSystemId" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

Tuesday, 23 July 2019

Taleo to HCM Integration using Taleo Webservices


Use the following steps to extract the data from Taleo .


  • Use the following catalog WSDL to get the existing service details .  Following URL includes services which will provide candidate information. 
  • Open the WSDL using internet explorer. 
  • Right click the service and download the WSDL files.  We cant use the WSDL URL directly in SOAP UI.  Because of this reason we need to download the file. 
    • https://TaleoHostName/enterprise/soap?ServiceName=IntegrationManagementService?WSDL

  • Use the following catalog WSDL to get the transaction related service details.
  • Follow the above mentioned steps to download the WSDL files. 
    • https://TaleoHostName/transition/soap?ServiceName=IntegrationManagementService?WSDL

  • Get the required service WSDL URL's from above catalog service. 
  • Sample Service WSDL's for getting transaction and candidate details from Taleo are
    • To Get Transaction Entities
      • https://TaleoHostName/transition/soap?ServiceName=FindService?WSDL
    • To Get Candidate Entities. 
      • https://TaleoHostName/enterprise/soap?ServiceName=FindService?WSDL

  • Use the following sample request to get the Transaction details.
             TransactionRequest


  • Use the following sample request message to get the Candidate Information.
            CandidateRequest



  • Get the respons from Taleo for above requests. 
  • Create a response XSD using above response messages from Taleo
  • Use the response XSD message to map the response from Taleo to a structured response message using XSLT. 
  • Map the values from Taleo response message to corresponding HDL file. 
  • Use the following NXSD to write a HDL file. 
            NXSD_For_HDL