Return to site

A Better Finder Attributes 6 09

broken image


Introduction:

  1. A Better Finder Attributes 6 09 7
  2. A Better Finder Attributes 6 09 13
  3. A Better Finder Attributes 6 09 X
  4. A Better Finder Attributes 6 09 8

In this blog post, I will be sharing a scenario which I have implemented to update an employee to AD using the LDAP Search and Modify Operations.

Scenario:

A Better Finder Attributes 6 09 7

I will be getting data from an API. From that data,

  1. All the Active employees should be updated to AD.
  2. All the Terminated employees should be disabled in AD and their respective manager name should be removed.
  3. If an employee state is missing, I must raise a mail to the HR.

A Better Finder Attributes برنامه ای کامل برای تغییر تاریخ فایل ها در OS X میباشد. این برنامه عکس ها و تاریخ ان ها و تاریخ فایل ان ها را ترکیب می کند و با ابزار مخصوص خود ان ها را تغییر می دهد. با این برنامه شما قادر با بازی با تایم استمپ. From about 0.3% to about 0.6%, we might call medium carbon steel, although I see this classification only infrequently. From 0.6% to around 1.25% carbon is high-carbon steel, also known as spring steel. For most armor, weapons and tools, this is the ‘good stuff' (but see below on pattern welding). A Better Finder Attributes allows you to change JPEG & RAW shooting dates, JPEG EXIF meta-data tags, file creation & modification dates, file flags and deal with invisible files. Correct EXIF Digital Photo Shooting Timestamps. A Better Finder Attributes allows you to manipulate JPEG, CR2, NEF, ARF, RAF, SR2, CRW & CIFF EXIF timestamps at will by setting them to specific times or batch.

Prerequisites:

Cloud Connector: As AD which used here is an On-Premise system, we must establish a connectivity to CPI Tenant using SAP Cloud Connector.

Reference: https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/e4ba9b3aad764b38b9c253fdbcfde713.html

Once the Cloud Connector part is done, we can start the development in CPI.

Design:

I have used Process Calls in the Integration for better readability and error handling.

Main Integration:

  • Used Content Modifier as a Source for this Integration Process for testing.
  • Used Parallel Multicast to share the same incoming data to all the Process Calls
  1. Process Call: Active
  • As a first step, Filtered the incoming records to check the employee_status = ‘Active'.
  • Content Modifier to Add the root node after filter step as it removes the root.
  • General Splitter to separate the records as AD accepts only one record at a time for Updating.
  • Content Modifier to store the incoming attributes in Header as the structure is getting changed after the Request-Reply step. [These Header names will be used in the subsequent steps for performing the Search operation and in Updating the AD]
  • Router is used because, Manager attribute for few employees is empty in the payload and AD will not accept a Manager if empty.

So, used router to separate the incoming payload

  • Default route will used for records with Manager name.
  • Route 1 will be for the records with no Manager name.

A Better Finder Attributes 6 09 13

A Better Finder Attributes 6 09

I. Default Route:

  • Once the record is having Manager name, we need to get the Manager distinguishedName from AD as the manager name will be his DN in AD.
  • To achieve this, I have performed Search Operation to get the Manager distinguishedName from AD using his name coming in the payload.
  • For this we are using Request-Reply [1] with LDAP Adaptor.

Address: Provide the Virtual address what you have provided in the Cloud Connector.

Proxy Type: On-Premise

Authentication: Simple

Credential Name:Name what you gave to store the credentials in Security Material.

Operation: Search

Base DN: Entity from where you will begin the search.

Search Filter: Criteria which should qualify to fulfil the search.

Attributes

I. Default Route:

  • Once the record is having Manager name, we need to get the Manager distinguishedName from AD as the manager name will be his DN in AD.
  • To achieve this, I have performed Search Operation to get the Manager distinguishedName from AD using his name coming in the payload.
  • For this we are using Request-Reply [1] with LDAP Adaptor.

Address: Provide the Virtual address what you have provided in the Cloud Connector.

Proxy Type: On-Premise

Authentication: Simple

Credential Name:Name what you gave to store the credentials in Security Material.

Operation: Search

Base DN: Entity from where you will begin the search.

Search Filter: Criteria which should qualify to fulfil the search.

Attribute: Here we are getting distinguishedName.

  • XSLT to remove extra header information.
  • Content Modifier to catch the Manager distinguishedName into header using XPATH.
  • Request-Reply [2] to get the Employee Distinguished Name from AD as we need to pass the DN as reference for the employee to AD to make sure the right record gets updated.
  • For this step, I have performed the same search operation what we did in the above step to get the Manager distinguishedName but changed the (cn=${header.display_name}).
  • Content Modifier to catch the Employee distinguishedName into header using XPATH.
  • Java Script to map the attributes as per the AD Structure.

A Better Finder Attributes 6 09 X

  • Used Groovy to log the Payload for testing purpose.
  • Request-Reply [3] to Update the data into AD.

II. Route 1:

  • As we know that the records which comes in this way will not have Manager, we need to make it NULL.
  • Request-Reply [3] to get the Employee distinguishedName as we did the same to update the records with manager name.
  • Java Script to set the data. Used the same Script which I have used above except for the manager attribute.
  • For this I am changing var Manager= new BasicAttribute('Manager', null); from the above given code. [Here null is the keyword not the string]. If you pass a string, you will get Error.

2. Process Call 2:Terminated Employees

  • Filter to the incoming records to check the employee_status = ‘Terminated'.
  • Content Modifier to ADD the root node.
  • General Splitter to separate the records.
  • Content Modifier to save the incoming fields data into Header using the XPATH.
  • Request-Reply [1] to get the employee distinguishedName from AD as we for the Active Employees by performing Search
  • XSLT to remove extra header information.
  • Content Modifier to catch the Manager distinguishedName into header using XPATH.
  • Java Script to set the AD data. For this am using the same code which I have already provided in the previous step by changing userAccountControl attribute and the Manager Attribute.
  • To Disable an employee, set userAccountControl to 514.
  • Also change var Manager= new BasicAttribute('Manager', null); as Terminated employee will not have a manager
  • Request-Reply [2] to Update the Terminated employees into AD.
  • Followed the same procedure what I have done to update the Active Employees.

3. Process Call 3: Missing Data

  • Filter to the incoming records to check the work_state = ‘ '.
  • Content Modifier to ADD the root node.
  • Used Router to stop unnecessary mails which will be triggered with only as we used content modifier to ADD root node.
  • Message Mapping to Map and get the work_location from the source as I was asked to send a mail with work_location of that state for which the data is missing.
  • General Splitter to separate the records.
  • Content Modifier to catch the work_location using XPATH.
  • Gather to combine the locations.
  • Used few more steps to build the final structure for Mail body and finally used send to send a mail sing the Mail Adaptor.

Conclusion:

A Better Finder Attributes 6 09 8

  • In this blog post, you have learned the usage of Search and Modify operations on Active Directory using LDAP Adaptor in SAP CPI.

References:





broken image