SlideShare a Scribd company logo
1 of 36
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

What's hot

SharePoint 2013 Sandbox Solutions for On Premise and Office 365
SharePoint 2013 Sandbox Solutions for On Premise and Office 365SharePoint 2013 Sandbox Solutions for On Premise and Office 365
SharePoint 2013 Sandbox Solutions for On Premise and Office 365Ed Musters
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012NCCOMMS
 
Custom Development for SharePoint
Custom Development for SharePointCustom Development for SharePoint
Custom Development for SharePointTalbott Crowell
 
Automating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointAutomating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointTalbott Crowell
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassEuropean Collaboration Summit
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
Automate Your Data, Free Your Mind by Aaron Swerlein
Automate Your Data, Free Your Mind by Aaron SwerleinAutomate Your Data, Free Your Mind by Aaron Swerlein
Automate Your Data, Free Your Mind by Aaron SwerleinQA or the Highway
 
database-canvas with multiple datablocks(database)
database-canvas with multiple datablocks(database)database-canvas with multiple datablocks(database)
database-canvas with multiple datablocks(database)welcometofacebook
 
WordPress Security and Best Practices
WordPress Security and Best PracticesWordPress Security and Best Practices
WordPress Security and Best PracticesRobert Vidal
 
Spca2014 keynote johnson
Spca2014 keynote johnsonSpca2014 keynote johnson
Spca2014 keynote johnsonNCCOMMS
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureTobias Lekman
 
OpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseOpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseBenjamin Cabé
 
#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT ProsPaul Hunt
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
 
Salesforce Developer Console ppt
Salesforce Developer Console  pptSalesforce Developer Console  ppt
Salesforce Developer Console pptKuhinoor Alom
 
Handling Cross-Domain calls & authentication in SharePoint 2013
Handling Cross-Domain calls & authentication in SharePoint 2013Handling Cross-Domain calls & authentication in SharePoint 2013
Handling Cross-Domain calls & authentication in SharePoint 2013BIWUG
 

What's hot (20)

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

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

Uklug 2014 connections dev faq
Uklug 2014  connections dev faqUklug 2014  connections dev faq
Uklug 2014 connections dev faqMark Myers
 
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...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...Wannes Rams
 
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...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...Klaus Bild
 
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”panagenda
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...dominion
 
The Time for Vanilla Web Components has Arrived
The Time for Vanilla Web Components has ArrivedThe Time for Vanilla Web Components has Arrived
The Time for Vanilla Web Components has ArrivedGil Fink
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
 
IBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte AdministratorIBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte AdministratorKlaus Bild
 
Metadata & Interoperability: Free Tools
Metadata & Interoperability: Free ToolsMetadata & Interoperability: Free Tools
Metadata & Interoperability: Free ToolsMike Jennings
 
Features, Exportables & You
Features, Exportables & YouFeatures, Exportables & You
Features, Exportables & Youjskulski
 
PowerShell for the Anxious ITPro
PowerShell for the Anxious ITProPowerShell for the Anxious ITPro
PowerShell for the Anxious ITProJason Himmelstein
 
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitSuite Solutions
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino DesignerPaul Withers
 

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

Uklug 2014 connections dev faq
Uklug 2014  connections dev faqUklug 2014  connections dev faq
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...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...
 
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...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”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...
 
ow.ppt
ow.pptow.ppt
ow.ppt
 
ow.ppt
ow.pptow.ppt
ow.ppt
 
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
 
The Time for Vanilla Web Components has Arrived
The Time for Vanilla Web Components has ArrivedThe Time for Vanilla Web Components has Arrived
The Time for Vanilla Web Components has Arrived
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
IBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte AdministratorIBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte Administrator
 
Metadata & Interoperability: Free Tools
Metadata & Interoperability: Free ToolsMetadata & Interoperability: Free Tools
Metadata & Interoperability: Free Tools
 
Features, Exportables & You
Features, Exportables & YouFeatures, Exportables & You
Features, Exportables & You
 
PowerShell for the Anxious ITPro
PowerShell for the Anxious ITProPowerShell for the Anxious ITPro
PowerShell for the Anxious ITPro
 
05 entity framework
05 entity framework05 entity framework
05 entity framework
 
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
 

More from LetsConnect

Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6LetsConnect
 
Oh $h@# - How to deal with emotional outbursts and hate in social situations
Oh $h@# - How to deal with emotional outbursts and hate in social situationsOh $h@# - How to deal with emotional outbursts and hate in social situations
Oh $h@# - How to deal with emotional outbursts and hate in social situationsLetsConnect
 
It is not About Connections vs Office 365 - You can have the best of the both...
It is not About Connections vs Office 365 - You can have the best of the both...It is not About Connections vs Office 365 - You can have the best of the both...
It is not About Connections vs Office 365 - You can have the best of the both...LetsConnect
 
Using ibm connections to enhance university courses
Using ibm connections to enhance university coursesUsing ibm connections to enhance university courses
Using ibm connections to enhance university coursesLetsConnect
 
IBM Connections 6 Component Pack
IBM Connections 6 Component PackIBM Connections 6 Component Pack
IBM Connections 6 Component PackLetsConnect
 
IBM Connections 6.0 CR3 New Features
IBM Connections 6.0 CR3 New FeaturesIBM Connections 6.0 CR3 New Features
IBM Connections 6.0 CR3 New FeaturesLetsConnect
 
10 years of IBM Connections
10 years of IBM Connections10 years of IBM Connections
10 years of IBM ConnectionsLetsConnect
 
IBM Collaboration Framework in action: Customer success stories
IBM Collaboration Framework in action: Customer success storiesIBM Collaboration Framework in action: Customer success stories
IBM Collaboration Framework in action: Customer success storiesLetsConnect
 
Design for the Digital Workspace
Design for the Digital WorkspaceDesign for the Digital Workspace
Design for the Digital WorkspaceLetsConnect
 
New Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
New Ways to Deliver Business Outcomes with INtelligent Workstream CollaborationNew Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
New Ways to Deliver Business Outcomes with INtelligent Workstream CollaborationLetsConnect
 
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...LetsConnect
 
There is nothing more practical than a good theory
There is nothing more practical than a good theoryThere is nothing more practical than a good theory
There is nothing more practical than a good theoryLetsConnect
 
Kubernetes Basics for Connections Admins
Kubernetes Basics for Connections AdminsKubernetes Basics for Connections Admins
Kubernetes Basics for Connections AdminsLetsConnect
 
Intelligent Collaboration driving Digital Transformation
Intelligent Collaboration driving Digital TransformationIntelligent Collaboration driving Digital Transformation
Intelligent Collaboration driving Digital TransformationLetsConnect
 
Developing IBM Connections Community Apps using Domino
Developing IBM Connections Community Apps using DominoDeveloping IBM Connections Community Apps using Domino
Developing IBM Connections Community Apps using DominoLetsConnect
 
IBM Connections - Have it YOUR Way!
IBM Connections - Have it YOUR Way!IBM Connections - Have it YOUR Way!
IBM Connections - Have it YOUR Way!LetsConnect
 
You Get What You Give
You Get What You GiveYou Get What You Give
You Get What You GiveLetsConnect
 
Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...LetsConnect
 
ICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceLetsConnect
 
Communities as the fundament of social learning
Communities as the fundament of social learningCommunities as the fundament of social learning
Communities as the fundament of social learningLetsConnect
 

More from LetsConnect (20)

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

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

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/