SlideShare a Scribd company logo
Making your user happy –
how to create a perfect profile
Andreas Artner
Fritz & Macziol
That's me….
Andreas Artner
• IBM Software Consultant
• Working with Fritz & Macziol www.fum.de
• Focusing on Integration, Interfaces, SSO and
other fun stuff
• Tivoli Directory Integrator (TDI) enthusiast
aartner@fum.de
@AnderlArtner
http://tdiblog.anderls.com
PLATINUM & CHAMPAGNE SPONSORS
GOLD SPONSORS
SILVER SPONSORS
BRONZE SPONSORS
What we will cover today…
• Some TDI basics
• Building custom TDI AssemblyLines for IBM
Connections
• Best practices and Tips
• Real world examples
What is TDI ?
• (Tivoli) IBM Security Directory Integrator
• Don’t get fooled by the name
• Incredible powerful and flexible
• The most valuable add-on that IBM gives to
you
• To make your Users happy you just need to
identify the data sources and push the info to
their profiles !
TDI Terms
• Solution Directory
• TDI‘s working Directory
• Workspace
• Here you store your projects
• Project
• One or more AssemblyLines and related resources
• A single XML-File
• AssemblyLine
• The Interface logic
• Connector
• Connection to a Data source or target
Customizing TDI for IBM Connections
• Many choices:
• Configure Standard TDI Solution
• Simple Attribute mapping
• Custom Functions
• Extension Attributes
• Custom AssemblyLines
• that work in combination with the standard
AssemblyLines
• that are independent
• What is the right approach ?
Customizing TDI for IBM Connections
• Keep it simple and easy to maintain
• Can it be done with standard functionality ? Do it.
• Don’t mess up with the standard AssemblyLines –
rather create your own project.
• Know what you are doing, make your changes
error proven
Example - profiles_function.js
• TDI Sync fails with every run
• "exception": java.lang.NullPointerException“
Small difference – great impact
TDI Development environment
• Install TDI
• Use exactly the same Version as in your Connections
installation – but don’t do it on the same box !
• You can run multiple TDI Versions on the same
machine
• Setup your Directory Structure
• <TDI Development>
• <Version>
• Release
• TDISOL
• Workspace
TDI Development environment
• Grab the TDISOL directory from your
Connections installation – the easy way.
• Or extract it from the install sources and
adjust the properties / xml files.
• Create a .bat /.sh to launch your TDI
Development instance
TDI Development environment
• Launch TDI and select the workspace folder
that you just created
TDI Development environment
• CTGDKD004E Could not create RMI custom socket
factories. Exception occurred: {0} : Keystore was
tampered with, or password was incorrect.
TDI Development environment
• Create a new Project
• Add profiles_tdi.xml as Reference
TDI Development environment
• Add the profiles property store:
TDI Development environment
• The values from the Property store should
look familiar to you
TDI Development environment
• Not a must but sometime useful – import the
original profiles_tdi project in your workspace
TDI Development environment
• Your environment should
now look like this:
• Ready to go 
How to connect to IBM Connections
• Available TDI Connectors:
• ProfileConnector
• PhotoConnector
• PronunciationConnector
• CodesConnector
• API
• Profiles Administration API
• openntf: TDI Connectors for IBM Connections
Profile Connector & custom Attributes
• Custom extension Attributes are defined in
the data model
• tdi-profiles-config.xml & profiles-types.xml
• If you miss that part, your AssemblyLine will run
without any error but no Data will be updated.
• They have a defined format.
• Array of three string fields:
• ["name:" , "dataType:", "value:“]
Profile Connector & custom Attributes
• Use scripts to retrieve and manipulate these
values
• Accessing an existing Attribute value:
• Creating a new Attribute:
Profile Connector & custom Attributes
• TDI Debugger is a great tool to check and
manipulate your data – even during runtime
• Richtext Attributes are not “Update aware”,
you need to discover and trigger updates
based on some logic in your AssemblyLine.
Photo Connector
• This Connector is not “update aware“
• If you want to run your AssemblyLine on a
scheduled basis detect the necessary updates
in your logic.
• How to do that ?
• I’ll show you in a moment
• http://tdiblog.anderls.com/2015/01/handling-
photos-for-ibm-connections.html
Photo Connector
• As Link Criteria you can specify the profile uid
or key
• To update a user photo you need to feed in
the attributes:
• uid – Profile uid
• image – byte array containing the photo
Photo Connector
• How to get the byte array ?
• The good news - since TDI is Java based you can
do anything you want
• Based on your data source this can be easy or may
need some tweaking..
• LDAP or Web Service – easy just grab the attribute
• Domino Database – extract the file to a local disk
• SAP BAPI – a nightmare – let me know if you need that
Demo
How to deploy and run your solution
• Follow the same method IBM is using to run their standard
TDI Solutions
• Create a separate .bat or .sh to run your solution based on
a existing one.
• Modify the necessary parts:
• LOCK_FILE
• Remove the parts handling the Return code from TDI (RC) - unless you
use it in your solution
• Modify the code to launch the TDI AssemblyLine ${TDIPATH}/ibmdisrv
-s . -c <your project>.xml –r <your AssemblyLine>
• The command to clear the lockfile
• Create a .bat or .sh to remove your lockfile
• Add these files to your release folder
How to deploy and run your solution
• Copy the following files to your release folder:
• Your <TDI_Project>.xml
• Your <TDI_Project>.properties (only if you created your
own property store)
• both are available in your
TDI_workspace/Projectname/Runtime folder
• Copy all files in the release folder to your Connections
TDI Server Solution Directory
• Test the solution and schedule execution
Tips
• Understand the IBM Connections default
synchronization
• Avoid updating the same Info from different sources
• The TDI Connectors for Connections offer
different modes
• Have you ever thought about publishing Data from
Connections to other systems ?
• Define a synchronization Flow that fits your
needs
• Often I start with a ProfileConnector as Data Feed
Tips
• Use logging – task.logmsg()
• Write your own log files
• Define Error handling in the “on Error” Hooks
• Use try – catch blocks in your scripts
• Utilize a Property Store
Tips
• Define the Attributes you want to read / write
in the Connectors Attribute Mapping
• Or even better use external Attribute Mappings
• Use meaningful and unique names for your
Attributes that help you to identify the source
Thank you !
• Go and make your users happy !
• Questions, comments, ideas, … are always
welcome
• just right now
• or reach out to me….
THE SSL Challenge
• If any of the involved systems requires a SSL
connection per default TDI will run into an
error.
• TDI can handle SSL – you just need to
configure keystores and import the certificates
• To make it easy – you can have multiple
keystores in TDI.
THE SSL Challenge
• Create a new keystore using the IBM Key
Management utility – or use your existing one
THE SSL Challenge
• Import all required Server Certificates
including the complete certificate chain
• Add the following lines to your
solution.properties file
• As alternative you also can define multiple
independent keystores
Links and resources
• http://www.slideshare.net/curiousmitch/sho
w304
• http://de.slideshare.net/pgodby/ic50-l02-
profilescustomization
• http://www.slideshare.net/palmke/show301-
make-your-ibm-connections-deployment-
your-own-customize-it-30628456
• https://www.ibm.com/developerworks/lotus/
documentation/connectionstdi/

More Related Content

PPTX
How to get your theme in WordPress
PPTX
Nsc 2013 06-17 - random rants on 2013
PPTX
Asp.Net MVC 5 in Arabic
PPTX
Develop business apps cross-platform development using visual studio with x...
PPTX
SharePoint 2013 Sandbox Solutions for On Premise or Office 365
PDF
Five Enterprise Development Best Practices That EVERY Salesforce Org Can Use
PPTX
Access share point-2013-data-with-provider-hosted-apps
PPTX
Implementing Engineering Standards through Autodesk Vault
How to get your theme in WordPress
Nsc 2013 06-17 - random rants on 2013
Asp.Net MVC 5 in Arabic
Develop business apps cross-platform development using visual studio with x...
SharePoint 2013 Sandbox Solutions for On Premise or Office 365
Five Enterprise Development Best Practices That EVERY Salesforce Org Can Use
Access share point-2013-data-with-provider-hosted-apps
Implementing Engineering Standards through Autodesk Vault

What's hot (20)

PPTX
SharePoint 2013 Sandbox Solutions for On Premise and Office 365
PPTX
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
PPT
HTML Intro
PPTX
Custom Development for SharePoint
PPT
Automating SQL Server Database Creation for SharePoint
PPTX
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
PPTX
Sitecore mvc
PPTX
Custom Development in SharePoint – What are my options now?
PPTX
Automate Your Data, Free Your Mind by Aaron Swerlein
PDF
database-canvas with multiple datablocks(database)
PPTX
WordPress Security and Best Practices
PDF
Spca2014 keynote johnson
PPTX
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
PPTX
OpenSocial gadgets at Eclipse
PPTX
#SPSLondon - Session 2 JSLink for IT Pros
PDF
Service-Oriented Design and Implement with Rails3
PPTX
Salesforce Developer Console ppt
PPT
Sharepoint Presentation
PPTX
Handling Cross-Domain calls & authentication in SharePoint 2013
SharePoint 2013 Sandbox Solutions for On Premise and Office 365
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
HTML Intro
Custom Development for SharePoint
Automating SQL Server Database Creation for SharePoint
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
Sitecore mvc
Custom Development in SharePoint – What are my options now?
Automate Your Data, Free Your Mind by Aaron Swerlein
database-canvas with multiple datablocks(database)
WordPress Security and Best Practices
Spca2014 keynote johnson
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
OpenSocial gadgets at Eclipse
#SPSLondon - Session 2 JSLink for IT Pros
Service-Oriented Design and Implement with Rails3
Salesforce Developer Console ppt
Sharepoint Presentation
Handling Cross-Domain calls & authentication in SharePoint 2013
Ad

Similar to Making your user happy – how to create a perfect profile (20)

PPT
Uklug 2014 connections dev faq
PDF
The lazy administrator, how to make your life easier by using tdi to automate...
PDF
The lazy administrator, how to make your life easier by using tdi to automate...
PPTX
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
PDF
Populating your domino directory or any domino database with tivoli directory...
PPT
kjdiakdnfdifjadsjkjklljlldasgjdjdljgfldjgldjgldjgl.ppt
PPT
ow.ppt
PPTX
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
PDF
The Time for Vanilla Web Components has Arrived
PDF
presentation
PDF
Add-On Development: EE Expects that Every Developer will do his Duty
PDF
IBM Connect Switzerland - Der entspannte Administrator
PPT
ow-123123123123123123123123123123123123123
PPT
Metadata & Interoperability: Free Tools
KEY
Features, Exportables & You
PPTX
PowerShell for the Anxious ITPro
PPTX
05 entity framework
PPTX
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
PDF
Add-On Development: EE Expects that Every Developer will do his Duty
Uklug 2014 connections dev faq
The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Populating your domino directory or any domino database with tivoli directory...
kjdiakdnfdifjadsjkjklljlldasgjdjdljgfldjgldjgldjgl.ppt
ow.ppt
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
The Time for Vanilla Web Components has Arrived
presentation
Add-On Development: EE Expects that Every Developer will do his Duty
IBM Connect Switzerland - Der entspannte Administrator
ow-123123123123123123123123123123123123123
Metadata & Interoperability: Free Tools
Features, Exportables & You
PowerShell for the Anxious ITPro
05 entity framework
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
Add-On Development: EE Expects that Every Developer will do his Duty
Ad

More from LetsConnect (20)

PDF
Installing Component Pack 6.0.0.6
PPTX
Oh $h@# - How to deal with emotional outbursts and hate in social situations
PPTX
It is not About Connections vs Office 365 - You can have the best of the both...
PPTX
Using ibm connections to enhance university courses
PPTX
IBM Connections 6 Component Pack
PPTX
IBM Connections 6.0 CR3 New Features
PDF
10 years of IBM Connections
PDF
IBM Collaboration Framework in action: Customer success stories
PDF
Design for the Digital Workspace
PDF
New Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
PDF
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
PDF
There is nothing more practical than a good theory
PDF
Kubernetes Basics for Connections Admins
PDF
Intelligent Collaboration driving Digital Transformation
PDF
Developing IBM Connections Community Apps using Domino
PDF
IBM Connections - Have it YOUR Way!
PDF
You Get What You Give
PDF
Building Custom ibm Watson Workspace Templates to make you and your team more...
PDF
ICS INtegration with Node-RED and Open Source
PDF
Communities as the fundament of social learning
Installing Component Pack 6.0.0.6
Oh $h@# - How to deal with emotional outbursts and hate in social situations
It is not About Connections vs Office 365 - You can have the best of the both...
Using ibm connections to enhance university courses
IBM Connections 6 Component Pack
IBM Connections 6.0 CR3 New Features
10 years of IBM Connections
IBM Collaboration Framework in action: Customer success stories
Design for the Digital Workspace
New Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
There is nothing more practical than a good theory
Kubernetes Basics for Connections Admins
Intelligent Collaboration driving Digital Transformation
Developing IBM Connections Community Apps using Domino
IBM Connections - Have it YOUR Way!
You Get What You Give
Building Custom ibm Watson Workspace Templates to make you and your team more...
ICS INtegration with Node-RED and Open Source
Communities as the fundament of social learning

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Big Data Technologies - Introduction.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Machine learning based COVID-19 study performance prediction
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Assigned Numbers - 2025 - Bluetooth® Document
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Weekly Chronicles - August'25-Week II
Big Data Technologies - Introduction.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Programs and apps: productivity, graphics, security and other tools
Advanced methodologies resolving dimensionality complications for autism neur...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A comparative analysis of optical character recognition models for extracting...
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
MIND Revenue Release Quarter 2 2025 Press Release
sap open course for s4hana steps from ECC to s4
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
Machine learning based COVID-19 study performance prediction
Dropbox Q2 2025 Financial Results & Investor Presentation
Assigned Numbers - 2025 - Bluetooth® Document

Making your user happy – how to create a perfect profile

  • 1. Making your user happy – how to create a perfect profile Andreas Artner Fritz & Macziol
  • 2. That's me…. Andreas Artner • IBM Software Consultant • Working with Fritz & Macziol www.fum.de • Focusing on Integration, Interfaces, SSO and other fun stuff • Tivoli Directory Integrator (TDI) enthusiast aartner@fum.de @AnderlArtner http://tdiblog.anderls.com
  • 3. PLATINUM & CHAMPAGNE SPONSORS GOLD SPONSORS SILVER SPONSORS BRONZE SPONSORS
  • 4. What we will cover today… • Some TDI basics • Building custom TDI AssemblyLines for IBM Connections • Best practices and Tips • Real world examples
  • 5. What is TDI ? • (Tivoli) IBM Security Directory Integrator • Don’t get fooled by the name • Incredible powerful and flexible • The most valuable add-on that IBM gives to you • To make your Users happy you just need to identify the data sources and push the info to their profiles !
  • 6. TDI Terms • Solution Directory • TDI‘s working Directory • Workspace • Here you store your projects • Project • One or more AssemblyLines and related resources • A single XML-File • AssemblyLine • The Interface logic • Connector • Connection to a Data source or target
  • 7. Customizing TDI for IBM Connections • Many choices: • Configure Standard TDI Solution • Simple Attribute mapping • Custom Functions • Extension Attributes • Custom AssemblyLines • that work in combination with the standard AssemblyLines • that are independent • What is the right approach ?
  • 8. Customizing TDI for IBM Connections • Keep it simple and easy to maintain • Can it be done with standard functionality ? Do it. • Don’t mess up with the standard AssemblyLines – rather create your own project. • Know what you are doing, make your changes error proven
  • 9. Example - profiles_function.js • TDI Sync fails with every run • "exception": java.lang.NullPointerException“ Small difference – great impact
  • 10. TDI Development environment • Install TDI • Use exactly the same Version as in your Connections installation – but don’t do it on the same box ! • You can run multiple TDI Versions on the same machine • Setup your Directory Structure • <TDI Development> • <Version> • Release • TDISOL • Workspace
  • 11. TDI Development environment • Grab the TDISOL directory from your Connections installation – the easy way. • Or extract it from the install sources and adjust the properties / xml files. • Create a .bat /.sh to launch your TDI Development instance
  • 12. TDI Development environment • Launch TDI and select the workspace folder that you just created
  • 13. TDI Development environment • CTGDKD004E Could not create RMI custom socket factories. Exception occurred: {0} : Keystore was tampered with, or password was incorrect.
  • 14. TDI Development environment • Create a new Project • Add profiles_tdi.xml as Reference
  • 15. TDI Development environment • Add the profiles property store:
  • 16. TDI Development environment • The values from the Property store should look familiar to you
  • 17. TDI Development environment • Not a must but sometime useful – import the original profiles_tdi project in your workspace
  • 18. TDI Development environment • Your environment should now look like this: • Ready to go 
  • 19. How to connect to IBM Connections • Available TDI Connectors: • ProfileConnector • PhotoConnector • PronunciationConnector • CodesConnector • API • Profiles Administration API • openntf: TDI Connectors for IBM Connections
  • 20. Profile Connector & custom Attributes • Custom extension Attributes are defined in the data model • tdi-profiles-config.xml & profiles-types.xml • If you miss that part, your AssemblyLine will run without any error but no Data will be updated. • They have a defined format. • Array of three string fields: • ["name:" , "dataType:", "value:“]
  • 21. Profile Connector & custom Attributes • Use scripts to retrieve and manipulate these values • Accessing an existing Attribute value: • Creating a new Attribute:
  • 22. Profile Connector & custom Attributes • TDI Debugger is a great tool to check and manipulate your data – even during runtime • Richtext Attributes are not “Update aware”, you need to discover and trigger updates based on some logic in your AssemblyLine.
  • 23. Photo Connector • This Connector is not “update aware“ • If you want to run your AssemblyLine on a scheduled basis detect the necessary updates in your logic. • How to do that ? • I’ll show you in a moment • http://tdiblog.anderls.com/2015/01/handling- photos-for-ibm-connections.html
  • 24. Photo Connector • As Link Criteria you can specify the profile uid or key • To update a user photo you need to feed in the attributes: • uid – Profile uid • image – byte array containing the photo
  • 25. Photo Connector • How to get the byte array ? • The good news - since TDI is Java based you can do anything you want • Based on your data source this can be easy or may need some tweaking.. • LDAP or Web Service – easy just grab the attribute • Domino Database – extract the file to a local disk • SAP BAPI – a nightmare – let me know if you need that
  • 26. Demo
  • 27. How to deploy and run your solution • Follow the same method IBM is using to run their standard TDI Solutions • Create a separate .bat or .sh to run your solution based on a existing one. • Modify the necessary parts: • LOCK_FILE • Remove the parts handling the Return code from TDI (RC) - unless you use it in your solution • Modify the code to launch the TDI AssemblyLine ${TDIPATH}/ibmdisrv -s . -c <your project>.xml –r <your AssemblyLine> • The command to clear the lockfile • Create a .bat or .sh to remove your lockfile • Add these files to your release folder
  • 28. How to deploy and run your solution • Copy the following files to your release folder: • Your <TDI_Project>.xml • Your <TDI_Project>.properties (only if you created your own property store) • both are available in your TDI_workspace/Projectname/Runtime folder • Copy all files in the release folder to your Connections TDI Server Solution Directory • Test the solution and schedule execution
  • 29. Tips • Understand the IBM Connections default synchronization • Avoid updating the same Info from different sources • The TDI Connectors for Connections offer different modes • Have you ever thought about publishing Data from Connections to other systems ? • Define a synchronization Flow that fits your needs • Often I start with a ProfileConnector as Data Feed
  • 30. Tips • Use logging – task.logmsg() • Write your own log files • Define Error handling in the “on Error” Hooks • Use try – catch blocks in your scripts • Utilize a Property Store
  • 31. Tips • Define the Attributes you want to read / write in the Connectors Attribute Mapping • Or even better use external Attribute Mappings • Use meaningful and unique names for your Attributes that help you to identify the source
  • 32. Thank you ! • Go and make your users happy ! • Questions, comments, ideas, … are always welcome • just right now • or reach out to me….
  • 33. THE SSL Challenge • If any of the involved systems requires a SSL connection per default TDI will run into an error. • TDI can handle SSL – you just need to configure keystores and import the certificates • To make it easy – you can have multiple keystores in TDI.
  • 34. THE SSL Challenge • Create a new keystore using the IBM Key Management utility – or use your existing one
  • 35. THE SSL Challenge • Import all required Server Certificates including the complete certificate chain • Add the following lines to your solution.properties file • As alternative you also can define multiple independent keystores
  • 36. Links and resources • http://www.slideshare.net/curiousmitch/sho w304 • http://de.slideshare.net/pgodby/ic50-l02- profilescustomization • http://www.slideshare.net/palmke/show301- make-your-ibm-connections-deployment- your-own-customize-it-30628456 • https://www.ibm.com/developerworks/lotus/ documentation/connectionstdi/