<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ebasso.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Customizing_the_IBM_Sametime_Business_Card</id>
	<title>Customizing the IBM Sametime Business Card - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ebasso.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Customizing_the_IBM_Sametime_Business_Card"/>
	<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;action=history"/>
	<updated>2026-06-02T10:07:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9625&amp;oldid=prev</id>
		<title>Ebasso: /* Recursos */</title>
		<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9625&amp;oldid=prev"/>
		<updated>2025-08-15T12:49:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Recursos&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:49, 15 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l730&quot;&gt;Line 730:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 730:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I hope this article is useful in your day-to-day work as a Sametime Administrator.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I hope this article is useful in your day-to-day work as a Sametime Administrator.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Recursos =&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ver também =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ver também =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key ebasso_wikidb:diff::1.12:old-9624:rev-9625 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ebasso</name></author>
	</entry>
	<entry>
		<id>https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9624&amp;oldid=prev</id>
		<title>Ebasso: /* Conclusão */</title>
		<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9624&amp;oldid=prev"/>
		<updated>2025-08-15T12:49:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Conclusão&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:49, 15 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l723&quot;&gt;Line 723:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 723:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Restart the Sametime Community server&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Restart the Sametime Community server&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Conclusão &lt;/del&gt;=&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Conclusion &lt;/ins&gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Este artigo descreveu como extender o &lt;/del&gt;IBM Sametime &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;para prover informações aos usuários armazenadas em diversos repositórios&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mostramos como criar um repositório próprio buscando informações de outras fontes como um base &lt;/del&gt;SQL&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. E importando as fotos dos perfis do &lt;/del&gt;IBM Connections.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This article described how to extend &lt;/ins&gt;IBM Sametime &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to provide user information stored in various repositories&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;We showed how to create a custom repository by retrieving information from other sources, such as an &lt;/ins&gt;SQL &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;database, and importing photos from &lt;/ins&gt;IBM Connections &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;profiles&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Caso voce tenha um Cluster de &lt;/del&gt;IBM Sametime Community Server, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;basta criar uma &lt;/del&gt;replica &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;da base &lt;/del&gt;secbookstore.nsf &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e copiar o arquivo &lt;/del&gt;UserInfoConfig.xml &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;para os demais servidores&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;If you have an &lt;/ins&gt;IBM Sametime Community Server &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cluster&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;simply create a &lt;/ins&gt;replica &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of the &lt;/ins&gt;secbookstore.nsf &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;database and copy the &lt;/ins&gt;UserInfoConfig.xml &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;file to the other servers&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Espero que o artigo seja útil no seu dia como Administrador &lt;/del&gt;Sametime.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I hope this article is useful in your day-to-day work as a &lt;/ins&gt;Sametime &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Administrator&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Recursos =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Recursos =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ebasso</name></author>
	</entry>
	<entry>
		<id>https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9623&amp;oldid=prev</id>
		<title>Ebasso: /* 3. Apresentar a foto do usuário armazenada no Perfil do IBM Connections */</title>
		<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9623&amp;oldid=prev"/>
		<updated>2025-08-15T12:48:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;3. Apresentar a foto do usuário armazenada no Perfil do IBM Connections&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;amp;diff=9623&amp;amp;oldid=9622&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Ebasso</name></author>
	</entry>
	<entry>
		<id>https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9622&amp;oldid=prev</id>
		<title>Ebasso: /* Adicionar campos provenientes do Sistema de RH da Empresa */</title>
		<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9622&amp;oldid=prev"/>
		<updated>2025-08-15T12:47:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Adicionar campos provenientes do Sistema de RH da Empresa&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;amp;diff=9622&amp;amp;oldid=9621&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Ebasso</name></author>
	</entry>
	<entry>
		<id>https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9621&amp;oldid=prev</id>
		<title>Ebasso: /* 1.3. Adicionando atributos através do UserInfoConfig.xml */</title>
		<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9621&amp;oldid=prev"/>
		<updated>2025-08-15T12:46:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;1.3. Adicionando atributos através do UserInfoConfig.xml&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;amp;diff=9621&amp;amp;oldid=9620&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Ebasso</name></author>
	</entry>
	<entry>
		<id>https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9620&amp;oldid=prev</id>
		<title>Ebasso: /* 1.2. O subsistema de Cartão de Visita */</title>
		<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9620&amp;oldid=prev"/>
		<updated>2025-08-15T12:44:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;1.2. O subsistema de Cartão de Visita&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:44, 15 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l88&quot;&gt;Line 88:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Despite the ease of using the Sametime Administration Console, we are limited to the available fields. Moreover, not all user information is stored in a single repository, such as an LDAP directory, due to performance reasons. For example, user photos.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Despite the ease of using the Sametime Administration Console, we are limited to the available fields. Moreover, not all user information is stored in a single repository, such as an LDAP directory, due to performance reasons. For example, user photos.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1.2. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;O subsistema de Cartão de Visita &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1.2. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The Business Card Subsystem &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;O subsistema de Cartão de Visita do &lt;/del&gt;IBM Sametime &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;busca as informações dos repositórios configurados no arquivo &lt;/del&gt;UserInfoConfig.xml.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The Business Card subsystem of &lt;/ins&gt;IBM Sametime &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;retrieves information from the repositories configured in the &lt;/ins&gt;UserInfoConfig.xml &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;file&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Estes repositórios podem ser&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;These repositories can be&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Um diretório &lt;/del&gt;LDAP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;An &lt;/ins&gt;LDAP &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;directory&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Um aplicação &lt;/del&gt;Notes&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A &lt;/ins&gt;Notes &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;application&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Uma classe &lt;/del&gt;Java, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;que por sua vez busca informações em uma base &lt;/del&gt;SQL &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ou em um &lt;/del&gt;ERP/SAP.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A &lt;/ins&gt;Java &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;class&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which in turn retrieves information from a &lt;/ins&gt;SQL &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;database or an &lt;/ins&gt;ERP/SAP &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;system&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A &lt;/del&gt;interface (API) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;que faz acesso a esses repositório que é chamada de &lt;/del&gt;BlackBox.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The &lt;/ins&gt;interface (API) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;that accesses these repositories is called the &lt;/ins&gt;BlackBox.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;O processo de busca das informações pelo Cliente no repositório é descrito abaixo&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The process of retrieving information by the Client from the repository is described below&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1) o Cliente &lt;/del&gt;Sametime &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;faz uma requisição &lt;/del&gt;HTTP (GET) a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;um servidor &lt;/del&gt;Sametime Community.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# The &lt;/ins&gt;Sametime &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Client makes an &lt;/ins&gt;HTTP (GET) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;request to &lt;/ins&gt;a Sametime Community &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;server&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# When the request reaches the &lt;/ins&gt;Sametime/Domino &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HTTP server&lt;/ins&gt;, Domino &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;redirects the &lt;/ins&gt;request &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to the UserInfoServlet &lt;/ins&gt;servlet&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2) Quando a requisição chega no servidor HTTP do &lt;/del&gt;Sametime/Domino, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;o &lt;/del&gt;Domino &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;redireciona o &lt;/del&gt;request &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;para o &lt;/del&gt;servlet UserInfoServlet&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# The &lt;/ins&gt;UserInfoServlet servlet &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reads the &lt;/ins&gt;UserInfoConfig.xml &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;file&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which contains the connection information for the repositories&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# The &lt;/ins&gt;servlet &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;queries each repository to retrieve the information.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3) O &lt;/del&gt;servlet &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;UserInfoServlet, por sua vez lê o arquivo &lt;/del&gt;UserInfoConfig.xml, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a qual tem as informações de conexão aos repositórios&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# The data from the repositories is returned to the UserInfo &lt;/ins&gt;servlet&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# The &lt;/ins&gt;servlet &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;combines the responses from these repositories and converts them into an &lt;/ins&gt;XML &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;document&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4) O &lt;/del&gt;servlet &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;consulta cada repositório em busca das informações&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# The &lt;/ins&gt;HTTP &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;server sends the &lt;/ins&gt;XML &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;document to the client&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which extracts the data and displays it on the client&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5) Os dados dos repositórios são retornadas ao &lt;/del&gt;servlet &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;UserInfo&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6) O &lt;/del&gt;servlet &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;combina as respostas destes repositórios e converte em um documento &lt;/del&gt;XML.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;7) O servidor &lt;/del&gt;HTTP &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;envia o documento &lt;/del&gt;XML &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;para o cliente&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;que extrai os dados e apresenta no cliente&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:SametimeCustomizando03.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:SametimeCustomizando03.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Figura &lt;/del&gt;3: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Configuração do Cartão de Visita no &lt;/del&gt;Sametime System Console&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Figure &lt;/ins&gt;3: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Business Card Configuration in the &lt;/ins&gt;Sametime System Console&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1.3. Adicionando atributos através do UserInfoConfig.xml ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1.3. Adicionando atributos através do UserInfoConfig.xml ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ebasso</name></author>
	</entry>
	<entry>
		<id>https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9619&amp;oldid=prev</id>
		<title>Ebasso: Created page with &quot;I migrated the article &quot;Customizing the IBM Sametime Business Card&quot; from IBM developerWorks, after the sale of Sametime to HCL.  =Summary=  Having access to information about coworkers in day-to-day work should be quick and easy. This article describes, in a practical way, how to make such information available through the IBM Sametime Connect Client and the IBM Sametime Web Client (Sametime Proxy Server).  =Introduction=  Our story begins with a multinational company th...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ebasso.net/wiki/index.php?title=Customizing_the_IBM_Sametime_Business_Card&amp;diff=9619&amp;oldid=prev"/>
		<updated>2025-08-15T12:43:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;I migrated the article &amp;quot;Customizing the IBM Sametime Business Card&amp;quot; from IBM developerWorks, after the sale of Sametime to HCL.  =Summary=  Having access to information about coworkers in day-to-day work should be quick and easy. This article describes, in a practical way, how to make such information available through the IBM Sametime Connect Client and the IBM Sametime Web Client (Sametime Proxy Server).  =Introduction=  Our story begins with a multinational company th...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;I migrated the article &amp;quot;Customizing the IBM Sametime Business Card&amp;quot; from IBM developerWorks, after the sale of Sametime to HCL.&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
&lt;br /&gt;
Having access to information about coworkers in day-to-day work should be quick and easy. This article describes, in a practical way, how to make such information available through the IBM Sametime Connect Client and the IBM Sametime Web Client (Sametime Proxy Server).&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Our story begins with a multinational company that, a year ago, made IBM Sametime and IBM Connections available to its employees. Today, thanks to these two tools, employees communicate better and more effectively.&lt;br /&gt;
&lt;br /&gt;
One morning, the company’s IT Director returns from a meeting with the Vice President of Marketing. The Marketing Department requested that new information be displayed in the IBM Sametime Business Card.&lt;br /&gt;
&lt;br /&gt;
The IBM Sametime Connect Client and Web Client Business Card displays information about a contact, including Name, Title, Telephone, and even Photos. Users view this information when they are in a Chat window or when they hover the mouse pointer over a contact in the Contact List.&lt;br /&gt;
&lt;br /&gt;
ADD SCREENSHOT WITH BUSINESS CARD&lt;br /&gt;
&lt;br /&gt;
Figure 1: Business Card Screen&lt;br /&gt;
&lt;br /&gt;
The IT Director challenges the IBM Sametime Administrator to meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Add new fields from LDAP;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Add fields from the Company’s HR System;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Display the user’s photo stored in the IBM Connections Profile;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
With these needs in hand, the IBM Sametime Administrator begins the customizations.&lt;br /&gt;
&lt;br /&gt;
= 1. Adding New Fields from LDAP =&lt;br /&gt;
&lt;br /&gt;
By default, the configuration interface of the Sametime System Console Business Card allows you to select which information will be displayed in the Sametime client.&lt;br /&gt;
&lt;br /&gt;
== 1.1. Changing Attributes through the Sametime System Console ==&lt;br /&gt;
&lt;br /&gt;
The available attributes are:&lt;br /&gt;
&lt;br /&gt;
* Name&lt;br /&gt;
* Company&lt;br /&gt;
* E-mail&lt;br /&gt;
* Telephone&lt;br /&gt;
* Location&lt;br /&gt;
* Title&lt;br /&gt;
* Photo&lt;br /&gt;
&lt;br /&gt;
Since the Business Card information is obtained from the LDAP Directory to which the IBM Sametime Community Server is connected, we must map the attributes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Attribute Name !! LDAP Attribute&lt;br /&gt;
|-&lt;br /&gt;
| Name || cn&lt;br /&gt;
|-&lt;br /&gt;
| Title || title&lt;br /&gt;
|-&lt;br /&gt;
| Location || postalAddress&lt;br /&gt;
|-&lt;br /&gt;
| Telephone || telephoneNumber&lt;br /&gt;
|-&lt;br /&gt;
| E-mail Address || mail&lt;br /&gt;
|-&lt;br /&gt;
| Photo || jpegPhoto&lt;br /&gt;
|-&lt;br /&gt;
| Company || ou&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You can change the Business Card through the Sametime System Console.&lt;br /&gt;
&lt;br /&gt;
Follow these steps:&lt;br /&gt;
&lt;br /&gt;
1) Access the Sametime System Console&lt;br /&gt;
&lt;br /&gt;
2) In the navigation panel (on the left), click on &amp;#039;&amp;#039;&amp;#039;Sametime System Console&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
3) Expand &amp;#039;&amp;#039;&amp;#039;Sametime Servers&amp;#039;&amp;#039;&amp;#039; and click on &amp;#039;&amp;#039;&amp;#039;Sametime Community Servers&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
4) Click on the &amp;#039;&amp;#039;&amp;#039;Deployment Plan&amp;#039;&amp;#039;&amp;#039; of the Sametime Community Server.&lt;br /&gt;
&lt;br /&gt;
5) Click on the &amp;#039;&amp;#039;&amp;#039;Business Card&amp;#039;&amp;#039;&amp;#039; tab.&lt;br /&gt;
&lt;br /&gt;
6) Change the attributes, click &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; to save the settings.&lt;br /&gt;
&lt;br /&gt;
Restart the Sametime Community Server.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando02.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Business Card Configuration in the Sametime System Console&lt;br /&gt;
&lt;br /&gt;
Despite the ease of using the Sametime Administration Console, we are limited to the available fields. Moreover, not all user information is stored in a single repository, such as an LDAP directory, due to performance reasons. For example, user photos.&lt;br /&gt;
&lt;br /&gt;
== 1.2. O subsistema de Cartão de Visita ==&lt;br /&gt;
&lt;br /&gt;
O subsistema de Cartão de Visita do IBM Sametime busca as informações dos repositórios configurados no arquivo UserInfoConfig.xml.&lt;br /&gt;
&lt;br /&gt;
Estes repositórios podem ser:&lt;br /&gt;
&lt;br /&gt;
* Um diretório LDAP&lt;br /&gt;
* Um aplicação Notes&lt;br /&gt;
* Uma classe Java, que por sua vez busca informações em uma base SQL ou em um ERP/SAP.&lt;br /&gt;
&lt;br /&gt;
A interface (API) que faz acesso a esses repositório que é chamada de BlackBox.&lt;br /&gt;
&lt;br /&gt;
O processo de busca das informações pelo Cliente no repositório é descrito abaixo:&lt;br /&gt;
&lt;br /&gt;
1) o Cliente Sametime faz uma requisição HTTP (GET) a um servidor Sametime Community.&lt;br /&gt;
&lt;br /&gt;
2) Quando a requisição chega no servidor HTTP do Sametime/Domino, o Domino redireciona o request para o servlet UserInfoServlet&lt;br /&gt;
&lt;br /&gt;
3) O servlet UserInfoServlet, por sua vez lê o arquivo UserInfoConfig.xml, a qual tem as informações de conexão aos repositórios.&lt;br /&gt;
&lt;br /&gt;
4) O servlet consulta cada repositório em busca das informações&lt;br /&gt;
&lt;br /&gt;
5) Os dados dos repositórios são retornadas ao servlet UserInfo&lt;br /&gt;
&lt;br /&gt;
6) O servlet combina as respostas destes repositórios e converte em um documento XML.&lt;br /&gt;
&lt;br /&gt;
7) O servidor HTTP envia o documento XML para o cliente, que extrai os dados e apresenta no cliente.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando03.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 3: Configuração do Cartão de Visita no Sametime System Console&lt;br /&gt;
&lt;br /&gt;
== 1.3. Adicionando atributos através do UserInfoConfig.xml ==&lt;br /&gt;
&lt;br /&gt;
O arquivo UserInfoConfig.xml permite uma maior flexibilidade na customização dos dados apresentados no Cartão de Visita. &lt;br /&gt;
&lt;br /&gt;
O arquivo é gerado durante a instalação do Servidor Sametime Community e fica localizado no seguinte diretório (conforme a plataforma):&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MS Windows&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;DOMINO_INSTALL_DIR&amp;amp;gt;\UserInfoConfig.xml. &lt;br /&gt;
 &lt;br /&gt;
 Exemplo: C:\IBM\Domino\UserInfoConfig.xml.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Linux/AIX&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;DOMINO_DATA&amp;amp;gt;\UserInfoConfig.xml&lt;br /&gt;
 &lt;br /&gt;
 Exemplo: /local/notesdata&lt;br /&gt;
&lt;br /&gt;
Ao abrirmos o arquivo UserInfoConfig.xml, você poderá observar, basicamente, duas seções:&lt;br /&gt;
&lt;br /&gt;
Na seção &amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;Storage type=&amp;amp;quot;LDAP&amp;amp;quot;&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;, temos as informações de conexão ao servidor LDAP &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;Storage type=&amp;amp;quot;LDAP&amp;amp;quot;&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;StorageDetails&lt;br /&gt;
     HostName=&amp;amp;quot;ldapserver_hostname&amp;amp;quot; Port=&amp;amp;quot;636&amp;amp;quot; &lt;br /&gt;
     UserName=&amp;amp;quot;&amp;amp;quot; Password=&amp;amp;quot;&amp;amp;quot; SslEnabled=&amp;amp;quot;false&amp;amp;quot; SslPort=&amp;amp;quot;636&amp;amp;quot; &lt;br /&gt;
     BaseDN=&amp;amp;quot;&amp;amp;quot; Scope=&amp;amp;quot;2&amp;amp;quot; &lt;br /&gt;
     SearchFilter=&amp;amp;quot;(&amp;amp;amp;amp; (objectclass=organizationalPerson)(|(cn=%s)(givenname=%s)(sn=%s)(mail=%s)))&amp;amp;quot; /&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;!-- Add another StorageDetails tag to support another ldap server. The listing order implies the searching order --&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;!-- Scope: 0=OBJECT_SCOPE 1=ONELEVEL_SCOPE 2=SUBTREE_SCOPE--&amp;amp;gt; &lt;br /&gt;
&lt;br /&gt;
Listagem 1: Seção com as informações de conexão ao LDAP&lt;br /&gt;
&lt;br /&gt;
Enquanto na seção &amp;#039;&amp;#039;&amp;#039;Details&amp;#039;&amp;#039;&amp;#039;, temos o mapeamento entre os Atributos do Sametime e do LDAP&lt;br /&gt;
&lt;br /&gt;
     &amp;amp;lt;Details&amp;amp;gt; &lt;br /&gt;
       &amp;amp;lt;Detail Id=&amp;amp;quot;MailAddress&amp;amp;quot; FieldName=&amp;amp;quot;mail&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
       &amp;amp;lt;Detail Id=&amp;amp;quot;Name&amp;amp;quot; FieldName=&amp;amp;quot;cn&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
       &amp;amp;lt;Detail Id=&amp;amp;quot;Title&amp;amp;quot; FieldName=&amp;amp;quot;title&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
       &amp;amp;lt;Detail Id=&amp;amp;quot;Location&amp;amp;quot; FieldName=&amp;amp;quot;postalAddress&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
       &amp;amp;lt;Detail Id=&amp;amp;quot;Telephone&amp;amp;quot; FieldName=&amp;amp;quot;telephoneNumber&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
       &amp;amp;lt;Detail Id=&amp;amp;quot;Company&amp;amp;quot; FieldName=&amp;amp;quot;ou&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot; /&amp;amp;gt; &lt;br /&gt;
       &amp;amp;lt;Detail Id=&amp;amp;quot;Photo&amp;amp;quot; FieldName=&amp;amp;quot;jpegPhoto&amp;amp;quot; Type=&amp;amp;quot;image/jpeg&amp;amp;quot; /&amp;amp;gt; &lt;br /&gt;
     &amp;amp;lt;/Details&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;/Storage&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/Resources&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;ParamsSets&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;0&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;1&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/ParamsSets&amp;amp;gt; &lt;br /&gt;
&lt;br /&gt;
Listagem 2: Seção com o mapeamento dos atributos&lt;br /&gt;
&lt;br /&gt;
Vamos começar então o procedimento para adicionar novos campos: &lt;br /&gt;
&lt;br /&gt;
Procedimento: &lt;br /&gt;
&lt;br /&gt;
Antes de iniciarmos devemos por precaução realizar um backup do arquivo UserInfoConfig.xml&lt;br /&gt;
&lt;br /&gt;
1) Edite o arquivo &amp;#039;&amp;#039;&amp;#039;UserInfoConfig.xml&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
2) Localize a seção &amp;#039;&amp;#039;&amp;#039;Details&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
3) Localize a entrada &amp;#039;&amp;#039;&amp;#039;Telephone&amp;#039;&amp;#039;&amp;#039; e vamos incluir o número do Celular.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;Detail Id=&amp;amp;quot;Telephone&amp;amp;quot; FieldName=&amp;amp;quot;telephoneNumber,&amp;#039;&amp;#039;&amp;#039;mobile&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot; &amp;#039;&amp;#039;&amp;#039;DisplaySeparator=&amp;amp;quot; / &amp;amp;quot;&amp;#039;&amp;#039;&amp;#039; /&amp;amp;gt; &lt;br /&gt;
&lt;br /&gt;
4) Antes da tag &amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;/Details&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;, vamos adicionar agora dois novos campos, como abaixo:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;Detail Id=&amp;amp;quot;State&amp;amp;quot; FieldName=&amp;amp;quot;stateOrProvince&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;Detail Id=&amp;amp;quot;City&amp;amp;quot; FieldName=&amp;amp;quot;city&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) Localize a seção ParamsSets e adicione os novos campos&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;ParamsSets&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;0&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company&amp;#039;&amp;#039;&amp;#039;,City,State&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;1&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company&amp;#039;&amp;#039;&amp;#039;,City,State&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/ParamsSets&amp;amp;gt; &lt;br /&gt;
&lt;br /&gt;
6) Salve e Feche o arquivo.&lt;br /&gt;
&lt;br /&gt;
O arquivo final fica da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;Details&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;MailAddress&amp;amp;quot; FieldName=&amp;amp;quot;mail&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;Name&amp;amp;quot; FieldName=&amp;amp;quot;cn&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;Title&amp;amp;quot; FieldName=&amp;amp;quot;title&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;cod/&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;Location&amp;amp;quot; FieldName=&amp;amp;quot;postalAddress&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;Telephone&amp;amp;quot; FieldName=&amp;amp;quot;telephoneNumber,&amp;#039;&amp;#039;&amp;#039;mobile&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot; &amp;#039;&amp;#039;&amp;#039;DisplaySeparator=&amp;amp;quot; / &amp;amp;quot;&amp;#039;&amp;#039;&amp;#039; /&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;Company&amp;amp;quot; FieldName=&amp;amp;quot;ou&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot; /&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;Photo&amp;amp;quot; FieldName=&amp;amp;quot;jpegPhoto&amp;amp;quot; Type=&amp;amp;quot;image/jpeg&amp;amp;quot; /&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;State&amp;amp;quot; FieldName=&amp;amp;quot;stateOrProvince&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
      &amp;amp;lt;Detail Id=&amp;amp;quot;City&amp;amp;quot; FieldName=&amp;amp;quot;city&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
     &amp;amp;lt;/Details&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;/Storage&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/Resources&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;ParamsSets&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;0&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company,&amp;#039;&amp;#039;&amp;#039;City,State&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;1&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company,&amp;#039;&amp;#039;&amp;#039;City,State&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/ParamsSets&amp;amp;gt; &lt;br /&gt;
&lt;br /&gt;
Listagem 3: Resultado das alterações sobre o arquivo UserInfoConfig.xml&lt;br /&gt;
&lt;br /&gt;
7) Reinicie o servidor Sametime Community&lt;br /&gt;
&lt;br /&gt;
Para testar o resultado da alteração do UserInfoConfig.xml, você pode verificar o resultado retornado pelo servlet UserInfoServlet.&lt;br /&gt;
&lt;br /&gt;
Em um navegador, entre com o endereço&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;amp;lt;Sametime_Server&amp;amp;gt;/servlet/UserInfoServlet?operation=3&amp;amp;amp;setid=2&amp;amp;amp;userid=&amp;amp;lt;Test_Account_Name&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parâmetro !! Descrição&lt;br /&gt;
|-&lt;br /&gt;
| operation || Operação a ser executada. Utilize o valor 3.&lt;br /&gt;
|-&lt;br /&gt;
| setid || Conjunto de parâmetros que devem ser retornados, definidos na seção ParamsSets do arquivo UserInfoConfig.xml&lt;br /&gt;
|-&lt;br /&gt;
| userid || Chave de pesquisa &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;http://stserver/servlet/UserInfoServlet?operation=3&amp;amp;amp;setid=2&amp;amp;amp;userid=uid=ebasso&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o resultado&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;userinfo&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;user id =&amp;amp;quot;uid=ebasso&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;field name=&amp;amp;quot;MailAddress&amp;amp;quot; type=&amp;amp;quot;&amp;amp;quot; error=&amp;amp;quot;&amp;#039;&amp;#039;&amp;#039;UNAVAILABLE&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;field name=&amp;amp;quot;Name&amp;amp;quot; type=&amp;amp;quot;text/plain&amp;amp;quot;&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;Enio Rubens Basso&amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;/field&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;field name=&amp;amp;quot;Title&amp;amp;quot; type=&amp;amp;quot;text/plain&amp;amp;quot;&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;Especialista de TI&amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;/field&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;field name=&amp;amp;quot;Location&amp;amp;quot; type=&amp;amp;quot;&amp;amp;quot; error=&amp;amp;quot;&amp;#039;&amp;#039;&amp;#039;UNAVAILABLE&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;field name=&amp;amp;quot;Telephone&amp;amp;quot; type=&amp;amp;quot;text/plain&amp;amp;quot;&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;61-3333-4444 / 61-9999-9999&amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;/field&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;field name=&amp;amp;quot;City&amp;amp;quot; type=&amp;amp;quot;text/plain&amp;amp;quot;&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;Brasilia&amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;/field&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;field name=&amp;amp;quot;State&amp;amp;quot; type=&amp;amp;quot;text/plain&amp;amp;quot;&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;DF&amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;/field&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;/user&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/userinfo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listagem 4: Retorno do servlet&lt;br /&gt;
&lt;br /&gt;
Como você pode ver, caso o valor de uma atributo no LDAP não esteja populado, o UserInfoServlet retorna  &amp;#039;&amp;#039;&amp;#039;error=&amp;amp;quot;UNAVAILABLE&amp;amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= Adicionar campos provenientes do Sistema de RH da Empresa =&lt;br /&gt;
&lt;br /&gt;
Para atender o segundo desafio do departamento de Marketing, o Administrador do Sametime, precisa buscar as informações que se encontram no Sistema de RH da Empresa.&lt;br /&gt;
&lt;br /&gt;
Para evitar realizar consultas a todo momento no Sistema de RH, vamos criar um repositório local para armazenar as informações a serem apresentadas no Cartão de Visita do Sametime.&lt;br /&gt;
&lt;br /&gt;
Para realizar esta tarefa precisamos realizar 3 atividades:&lt;br /&gt;
&lt;br /&gt;
* Criar o repositório local&lt;br /&gt;
* Importar os dados do Sistema de RH&lt;br /&gt;
* Configurar o UserInfoConfig.xml.&lt;br /&gt;
&lt;br /&gt;
Como pré requisito da tarefa, você vai precisar ter um Domino Designer instalado no seu computador, e configurado para acessar o servidor do Sametime Comunity. Utilize o usuario Administrador do Sametime para que nao tenha restricoes na criacao da database e de execucao no servidor.&lt;br /&gt;
&lt;br /&gt;
== 2.1. Criando o repositório local ==&lt;br /&gt;
&lt;br /&gt;
Vamos criar uma aplicacao Notes (NSF) para armazenar os dados.&lt;br /&gt;
&lt;br /&gt;
1) Abra o Domino Designer&lt;br /&gt;
&lt;br /&gt;
2) Crie a nova base, atraves do menu &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Application&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Informe os seguintes campos&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Campo !! Valor&lt;br /&gt;
|-&lt;br /&gt;
| Server || &amp;lt;Nome do Servidor do Sametime&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Title || Secondary Book Store&lt;br /&gt;
|-&lt;br /&gt;
| File name || secbookstore.nsf&lt;br /&gt;
|-&lt;br /&gt;
| Server || Local&lt;br /&gt;
|-&lt;br /&gt;
| Template || Selecione &amp;#039;&amp;#039;&amp;#039;-Blank-&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Clique em &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando04.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 4: Caixa de Dialogo para criar uma nova aplicação&lt;br /&gt;
&lt;br /&gt;
Vamos criar agora o formulário&lt;br /&gt;
&lt;br /&gt;
4) Crie o novo formulario, atraves do menu &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Design&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Form&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Campo !! Valor&lt;br /&gt;
|-&lt;br /&gt;
| Name || person&lt;br /&gt;
|-&lt;br /&gt;
| Alias || person&lt;br /&gt;
|-&lt;br /&gt;
| Comment || &lt;br /&gt;
|-&lt;br /&gt;
| Application || Secondary Book Store:\\&amp;lt;Nome do Servidor do Sametime&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Clique em &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
5) Crie o campo chave, denominado &amp;#039;&amp;#039;&amp;#039;uid&amp;#039;&amp;#039;&amp;#039;. Atraves do menu &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Design&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Field&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Informe no campo &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;, o valor &amp;#039;&amp;#039;&amp;#039;uid&amp;#039;&amp;#039;&amp;#039; , defina como tipo &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando05.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 5: Caixa de Dialogo para criar uma novo campo&lt;br /&gt;
&lt;br /&gt;
6) Vamos criar os demais campos usados neste artigo.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nome do Campo !! Tipo !! Descrição&lt;br /&gt;
|-&lt;br /&gt;
| dpto || Text || Departamento&lt;br /&gt;
|-&lt;br /&gt;
| updated || Text || Data de atualização da foto&lt;br /&gt;
|-&lt;br /&gt;
| PhotoURL || Text || URL da Imagem&lt;br /&gt;
|-&lt;br /&gt;
| Photo || Rich Text Lit || arquivo da imagem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Salve o formulario, atraves do menu &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Save&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando06.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 6: Novos campos criados&lt;br /&gt;
&lt;br /&gt;
Vamos criar a visao de indice&lt;br /&gt;
&lt;br /&gt;
7) Crie uma nova visao, atraves do menu &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Design&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Informe:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Campo !! Valor&lt;br /&gt;
|-&lt;br /&gt;
| View Name || vwIndex&lt;br /&gt;
|-&lt;br /&gt;
| View Type || Shared&lt;br /&gt;
|-&lt;br /&gt;
| Select Conditions || By Formula&lt;br /&gt;
|-&lt;br /&gt;
| Select Conditions || Select @All&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Clique em &amp;#039;&amp;#039;&amp;#039;Save and Customize&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando07.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 6: Caixa de Dialogo para criar visão&lt;br /&gt;
&lt;br /&gt;
8) Clique na coluna &amp;#039;&amp;#039;&amp;#039;#&amp;#039;&amp;#039;&amp;#039;, selecione &amp;#039;&amp;#039;&amp;#039;Field&amp;#039;&amp;#039;&amp;#039; e selecione &amp;#039;&amp;#039;&amp;#039;uid&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando08.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 7: Definindo o valor da coluna&lt;br /&gt;
&lt;br /&gt;
9) Na caixa de diálogo de propriedades, clique na segunda aba e em sort clique em &amp;#039;&amp;#039;&amp;#039;Ascending&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando09.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 8: Definindo o tipo de ordenacao&lt;br /&gt;
&lt;br /&gt;
Salve a visao, atraves do menu &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Save&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Agora ja possuímos os uma repositório secundário local.&lt;br /&gt;
&lt;br /&gt;
== 2.2. Importando os dados do Sistema de RH ==&lt;br /&gt;
&lt;br /&gt;
O Sistema de RH da empresa fica armazenado em um banco de Dados DB2.&lt;br /&gt;
&lt;br /&gt;
Nesta seção o vamos criar um agente na linguagem Java para buscar as informacoes da base de dados SQL , e popular o repositorio NSF local.&lt;br /&gt;
&lt;br /&gt;
O nosso agente esta divido em 5 partes:&lt;br /&gt;
&lt;br /&gt;
# Definição das variáveis&lt;br /&gt;
# Inicialização do Driver JDBC do DB2&lt;br /&gt;
# Execução da query&lt;br /&gt;
# Criação ou Atualização do documento no repositório NSF&lt;br /&gt;
# Método principal&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Preparação&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
Como preparação para o acesso ao DB2, devemos adicionar os drivers JDBC (tipo 4) do DB2.&lt;br /&gt;
&lt;br /&gt;
Dentro do diretorio &amp;amp;lt;DOMINO_INSTALL_DIR&amp;amp;gt;\ibm-jre\jre\lib\ext, devemos copiar os arquivos:&lt;br /&gt;
&lt;br /&gt;
* db2jcc.jar&lt;br /&gt;
* db2jcc_license_cu.jar&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando10.png]]&lt;br /&gt;
&lt;br /&gt;
Figura 9: Configuracao dos drivers JDBC do DB2&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Procedimento&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
Crie o novo atraves do menu &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Design&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Agent&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Campo !! Valor&lt;br /&gt;
|-&lt;br /&gt;
| Name || ImportPersonInfo&lt;br /&gt;
|-&lt;br /&gt;
| Alias || ImportPersonInfo&lt;br /&gt;
|-&lt;br /&gt;
| Comment ||&lt;br /&gt;
|-&lt;br /&gt;
| Type || Java&lt;br /&gt;
|-&lt;br /&gt;
| Application || Secondary Book Store:\\&amp;lt;Nome do Servidor do Sametime&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Clique em &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
2) Em &amp;#039;&amp;#039;&amp;#039;Basics&amp;#039;&amp;#039;&amp;#039;, defina &amp;#039;&amp;#039;&amp;#039;On Schedule&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Daily&amp;#039;&amp;#039;&amp;#039;, em Target defina &amp;#039;&amp;#039;&amp;#039;None&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando11.png]]&lt;br /&gt;
&lt;br /&gt;
3) Em &amp;#039;&amp;#039;&amp;#039;Security&amp;#039;&amp;#039;&amp;#039;, defina &amp;#039;&amp;#039;&amp;#039;3. Allow restricted operations with full administration rights&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando12.png]]&lt;br /&gt;
&lt;br /&gt;
4) Click em JavaAgent.java para criarmos o código&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:SametimeCustomizando13.png]]&lt;br /&gt;
&lt;br /&gt;
5) Dentro da Classe &amp;#039;&amp;#039;&amp;#039;JavaAgent&amp;#039;&amp;#039;&amp;#039;, devemos definir as contantes de conexao ao DB2, variaveis globais a classe, ...&lt;br /&gt;
&lt;br /&gt;
 // CONSTANTES&lt;br /&gt;
 private static final String JDBC_CLASS = &amp;amp;quot;com.ibm.db2.jcc.DB2Driver&amp;amp;quot;; &lt;br /&gt;
 private static final String JDBC_URL = &amp;amp;quot;jdbc:db2://db2srv.empresax.com.br:50000/RHS&amp;amp;quot;; &lt;br /&gt;
 private static final String JDBC_USERID = &amp;amp;quot;STUSER&amp;amp;quot;; &lt;br /&gt;
 private static final String JDBC_PASSWORD = &amp;amp;quot;STUSER&amp;amp;quot;; &lt;br /&gt;
 private static final String UID_LOOKUP_VIEW_NAME = &amp;amp;quot;vwIndex&amp;amp;quot;; &lt;br /&gt;
 private static final String SQL = &lt;br /&gt;
 &amp;amp;quot;SELECT UID, DPTO &amp;amp;quot; + &lt;br /&gt;
 &amp;amp;quot;FROM EMPLOYEE &amp;amp;quot; + &lt;br /&gt;
 &amp;amp;quot;ORDER BY UID&amp;amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
 // VARIAVEIS GLOBAIS A CLASSE&lt;br /&gt;
 Connection con; &lt;br /&gt;
 String uid = &amp;amp;quot;&amp;amp;quot;; &lt;br /&gt;
 String dpto = &amp;amp;quot;&amp;amp;quot;;&lt;br /&gt;
&lt;br /&gt;
6) Inicializacao do Driver JDBC do DB2&lt;br /&gt;
&lt;br /&gt;
 private void initDB() throws Exception { &lt;br /&gt;
  // Load the requested JDBC driver type &lt;br /&gt;
  Class.forName(JDBC_CLASS).newInstance(); &lt;br /&gt;
 &lt;br /&gt;
 con = DriverManager.getConnection(JDBC_URL, JDBC_USERID, JDBC_PASSWORD); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
7) Execucao da query&lt;br /&gt;
&lt;br /&gt;
Para cada linha retornada pelo SELECT, vamos chamar o metodo &amp;#039;&amp;#039;&amp;#039;updateOrCreateDocument&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
 private void runMain(Database db) throws Exception { &lt;br /&gt;
 &lt;br /&gt;
  Statement stmt = con.createStatement(); &lt;br /&gt;
  System.out.println(&amp;amp;quot;runQuery - start&amp;amp;quot;); &lt;br /&gt;
  ResultSet rs = stmt.executeQuery(SQL); &lt;br /&gt;
  System.out.println(&amp;amp;quot;runQuery - end&amp;amp;quot;); &lt;br /&gt;
  int i=0; &lt;br /&gt;
 &lt;br /&gt;
  System.out.println(&amp;amp;quot;Iterating: &amp;amp;quot; + i); &lt;br /&gt;
 &lt;br /&gt;
  while (rs.next()) { &lt;br /&gt;
    if (++i % 1000 == 0) { &lt;br /&gt;
      System.out.println(&amp;amp;quot;Iterating: &amp;amp;quot; + i); &lt;br /&gt;
    } &lt;br /&gt;
    uid = rs.getString(&amp;amp;quot;UID&amp;amp;quot;); &lt;br /&gt;
    if (uid == null) uid = &amp;amp;quot;&amp;amp;quot;; &lt;br /&gt;
    dpto = rs.getString(&amp;amp;quot;DPTO&amp;amp;quot;); &lt;br /&gt;
    if (dpto == null) dpto = &amp;amp;quot;&amp;amp;quot;; &lt;br /&gt;
    updateOrCreateDocument(db,uid); &lt;br /&gt;
  } &lt;br /&gt;
  stmt.close(); &lt;br /&gt;
  System.out.println(&amp;amp;quot;Total: &amp;amp;quot; + i); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
8) Criação ou Atualização do documento no repositorio NSF&lt;br /&gt;
&lt;br /&gt;
Com a chave primária, armazenada na string &amp;#039;&amp;#039;&amp;#039;key&amp;#039;&amp;#039;&amp;#039;, verificamos a existencia ou nao do documento. Se o resultado for vazio, criamos um novo documento senao verificamos por mudancas e entao atualizamos o documento.&lt;br /&gt;
&lt;br /&gt;
 private void updateOrCreateDocument(Database db, String key) throws Exception { &lt;br /&gt;
  View view = db.getView(UID_LOOKUP_VIEW_NAME); &lt;br /&gt;
  Document doc = null; &lt;br /&gt;
  boolean saveDoc = false; &lt;br /&gt;
  doc = view.getDocumentByKey(key, true); &lt;br /&gt;
  if (&amp;#039;&amp;#039;&amp;#039;doc == null&amp;#039;&amp;#039;&amp;#039;){ &lt;br /&gt;
    doc = db.createDocument(); &lt;br /&gt;
    doc.replaceItemValue(&amp;amp;quot;Form&amp;amp;quot;,&amp;amp;quot;person&amp;amp;quot;); &lt;br /&gt;
    doc.replaceItemValue(&amp;amp;quot;uid&amp;amp;quot;, uid); &lt;br /&gt;
    doc.replaceItemValue(&amp;amp;quot;dpto&amp;amp;quot;, dpto); &lt;br /&gt;
    saveDoc = true; &lt;br /&gt;
  } else { &lt;br /&gt;
   if (!uid.equals(&amp;amp;quot;&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; !uid.equals(doc.getItemValueString(&amp;amp;quot;uid&amp;amp;quot;))){ &lt;br /&gt;
      doc.replaceItemValue(&amp;amp;quot;uid&amp;amp;quot;, uid); &lt;br /&gt;
      saveDoc = true; &lt;br /&gt;
    } &lt;br /&gt;
    if (!dpto.equals(&amp;amp;quot;&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; !dpto.equals(doc.getItemValueString(&amp;amp;quot;dpto&amp;amp;quot;))){ &lt;br /&gt;
      doc.replaceItemValue(&amp;amp;quot;dpto&amp;amp;quot;, dpto); &lt;br /&gt;
      saveDoc = true; &lt;br /&gt;
    } &lt;br /&gt;
  } &lt;br /&gt;
  if (saveDoc) { &lt;br /&gt;
    doc.save(true, false, true);    &lt;br /&gt;
  } &lt;br /&gt;
  doc.recycle(); &lt;br /&gt;
  view.recycle(); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
9) No metodo principal &amp;#039;&amp;#039;&amp;#039;NotesMain&amp;#039;&amp;#039;&amp;#039;, chamamos os demais metodos.&lt;br /&gt;
&lt;br /&gt;
 public void NotesMain() { &lt;br /&gt;
  try { &lt;br /&gt;
    Session session = getSession(); &lt;br /&gt;
    AgentContext agentContext = session.getAgentContext(); &lt;br /&gt;
 &lt;br /&gt;
    // (Your code goes here) &lt;br /&gt;
    Database notedDb = agentContext.getCurrentDatabase(); &lt;br /&gt;
    System.out.println(&amp;amp;quot;ImportPersonInfo - start&amp;amp;quot;); &lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;initDB&amp;#039;&amp;#039;&amp;#039;(); &lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;runMain&amp;#039;&amp;#039;&amp;#039;(notedDb); &lt;br /&gt;
    System.out.println(&amp;amp;quot;ImportPersonInfo - end&amp;amp;quot;); &lt;br /&gt;
  } catch(Exception e) { &lt;br /&gt;
    e.printStackTrace(); &lt;br /&gt;
  } &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==2.3. Configurando o UserInfoConfig.xml para utilizar o repositorio local==&lt;br /&gt;
&lt;br /&gt;
Como um pre-requisito para a desta secao eh termos uma chave primaria entre o primeiro repositorio LDAP e o segundo repositorio NSF. Neste caso o valor do campo uid sera populado com os mesmos valores.&lt;br /&gt;
&lt;br /&gt;
1) Edite o arquivo &amp;#039;&amp;#039;&amp;#039;UserInfoConfig.xml&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
2) Localize a tag &amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;/Storage&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;, e adicione o novo repositorio:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;Storage type=&amp;amp;quot;NOTES_CUSTOM_DB&amp;amp;quot;&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;StorageDetails DbName=&amp;amp;quot;secbookstore.nsf&amp;amp;quot; View=&amp;amp;quot;vwIndex&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;Details&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;Detail Id=&amp;amp;quot;Dpto&amp;amp;quot; FieldName=&amp;amp;quot;Dpto&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;Detail Id=&amp;amp;quot;PhotoURL&amp;amp;quot; FieldName=&amp;amp;quot;PhotoURL&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;Detail Id=&amp;amp;quot;Photo&amp;amp;quot; FieldName=&amp;amp;quot;photo&amp;amp;quot; Type=&amp;amp;quot;image/jpeg&amp;amp;quot; /&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/Details&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/Storage&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) Localize a seção &amp;amp;lt;&amp;#039;&amp;#039;&amp;#039;ParamsSets&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039; e adicione os novos campos&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;ParamsSets&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;0&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company,City,State,&amp;#039;&amp;#039;&amp;#039;Dpto&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Set SetId=&amp;amp;quot;1&amp;amp;quot; params=&amp;amp;quot;MailAddress,Name,Title,Location,Telephone,Photo,Company,City,State,&amp;#039;&amp;#039;&amp;#039;Dpto&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/ParamsSets&amp;amp;gt; &lt;br /&gt;
&lt;br /&gt;
4) Localize a seção &amp;amp;lt;&amp;#039;&amp;#039;&amp;#039;BlackBoxConfiguration&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039; e adicione os novos blackbox&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;BlackBox type=&amp;amp;quot;NOTES_CUSTOM_DB&amp;amp;quot; name=&amp;amp;quot;com.ibm.sametime.userinfo.userinfobb.UserInfoNotesCustomBB&amp;amp;quot; MaxInstances=&amp;amp;quot;4&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) Salve e Feche o arquivo.&lt;br /&gt;
&lt;br /&gt;
6) Reinicie o servidor Sametime Community&lt;br /&gt;
&lt;br /&gt;
=3. Apresentar a foto do usuário armazenada no Perfil do IBM Connections=&lt;br /&gt;
&lt;br /&gt;
Por fim iremos utilizar as fotos armazenadas nos Perfis do IBM Connections para serem apresentadas nos IBM Sametime.&lt;br /&gt;
&lt;br /&gt;
No IBM Connections, as fotos do Perfis ficam armazenados no banco de dados, dentro da tabela EMPINST.PHOTO. O acesso direto às tabelas do Perfis não é suportado pela IBM, mas iremos utilizar aqui neste artigo.&lt;br /&gt;
&lt;br /&gt;
Aqui vamos adicionar adicionar 2 campos princípais:&lt;br /&gt;
&lt;br /&gt;
* Photo: Campo RichText utilizado para armazenar o binario da foto utilizada pelo Sametime Connect Client&amp;lt;/li&amp;gt;&lt;br /&gt;
* PhotoURL: Url da foto utilizado pelo Sametime Web Client (Sametime Proxy)&lt;br /&gt;
&lt;br /&gt;
Para evitar a comparação de 2 arquivos, criamos o campo &amp;#039;&amp;#039;&amp;#039;updated&amp;#039;&amp;#039;&amp;#039;, a qual possui a data de alteração do arquivo de foto.&lt;br /&gt;
&lt;br /&gt;
==3.1. Importando as fotos do IBM Connections==&lt;br /&gt;
&lt;br /&gt;
O nosso agente está divido em 6 partes:&lt;br /&gt;
&lt;br /&gt;
1) Definição das variáveis&lt;br /&gt;
&lt;br /&gt;
2) Inicialização do Driver JDBC do DB2&lt;br /&gt;
&lt;br /&gt;
3) Execucao da query&lt;br /&gt;
&lt;br /&gt;
4) Criar o arquivo de Imagem&lt;br /&gt;
&lt;br /&gt;
5) Criação ou Atualização do documento no repositório NSF&lt;br /&gt;
&lt;br /&gt;
6) Método principal&lt;br /&gt;
&lt;br /&gt;
Por se tratar da mesma abordagem usada na seção anterior, vamos apresentar apenas as diferenças&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Procedimento&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
1) Crie o novo através do menu &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Design&amp;#039;&amp;#039;&amp;#039; -&amp;amp;gt; &amp;#039;&amp;#039;&amp;#039;Agent&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Campo !! Valor&lt;br /&gt;
|-&lt;br /&gt;
| Name || ImportaFotosConnections&lt;br /&gt;
|-&lt;br /&gt;
| Alias || ImportaFotosConnections&lt;br /&gt;
|-&lt;br /&gt;
| Comment ||&lt;br /&gt;
|-&lt;br /&gt;
| Type || Java&lt;br /&gt;
|-&lt;br /&gt;
| Application || Secondary Book Store:\\&amp;lt;Nome do Servidor do Sametime&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Clique em &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Repita os passos 2, 3, 4 do item 2.2.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
5) Dentro da Classe &amp;#039;&amp;#039;&amp;#039;JavaAgent&amp;#039;&amp;#039;&amp;#039;, vamos adicionar novas contantes de conexao ao DB2, variaveis globais a classe, ...&lt;br /&gt;
&lt;br /&gt;
 private static final String PHOTOS_TEMP_DIRECTORY = &amp;amp;quot;c:\\temp\\fotos\\img_&amp;amp;quot;; &lt;br /&gt;
 private static final String PHOTO_URL_PREFIX = &amp;amp;quot;&amp;lt;nowiki&amp;gt;http://connections.empresax.com.br/profiles/photo.do?uid=&amp;amp;quot;&amp;lt;/nowiki&amp;gt;; &lt;br /&gt;
 private static final String SQL = &lt;br /&gt;
         &amp;amp;quot;SELECT E.PROF_UID UID, P.PROF_UPDATED UPDATED, P.PROF_IMAGE IMAGE &amp;amp;quot; + &lt;br /&gt;
         &amp;amp;quot;FROM EMPINST.PHOTO P, &amp;amp;quot; + &lt;br /&gt;
         &amp;amp;quot;EMPINST.EMPLOYEE E &amp;amp;quot; + &lt;br /&gt;
         &amp;amp;quot;WHERE P.PROF_KEY=E.PROF_KEY&amp;amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
 String updated = &amp;amp;quot;&amp;amp;quot;; &lt;br /&gt;
 byte[] photo_bytes ; &lt;br /&gt;
&lt;br /&gt;
A variável PHOTOS_TEMP_DIRECTORY armazena o diretorio temporario para armazenar as fotos. &lt;br /&gt;
&lt;br /&gt;
A variável PHOTO_URL_PREFIX armazena a url para busca das fotos no IBM Connections.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Repita os passos 6 do item 2.2.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
7) Execucao da query&lt;br /&gt;
&lt;br /&gt;
Para cada linha retornada pelo SELECT, eh necessario criar um arquivo com a foto do usuario em um diretorio temporario, atraves do metodo &amp;#039;&amp;#039;&amp;#039;createImageFile&amp;#039;&amp;#039;&amp;#039;, logo depois devemos chamar o metodo &amp;#039;&amp;#039;&amp;#039;updateOrCreateDocument&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
 private String createImageFile(String uid) throws Exception { &lt;br /&gt;
 &lt;br /&gt;
  String filename = PHOTOS_TEMP_DIRECTORY + uid + &amp;amp;quot;.jpg&amp;amp;quot;; &lt;br /&gt;
  File outFile = new File(filename); &lt;br /&gt;
  FileOutputStream fos = new FileOutputStream(outFile); &lt;br /&gt;
  fos.write(photo_bytes); &lt;br /&gt;
  fos.close(); &lt;br /&gt;
  return filename; &lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 private void runMain(Database db) throws Exception { &lt;br /&gt;
  Statement stmt = con.createStatement(); &lt;br /&gt;
  System.out.println(&amp;amp;quot;runQuery - start&amp;amp;quot;); &lt;br /&gt;
  ResultSet rs = stmt.executeQuery(SQL); &lt;br /&gt;
  System.out.println(&amp;amp;quot;runQuery - end&amp;amp;quot;); &lt;br /&gt;
  int i=0; &lt;br /&gt;
  System.out.println(&amp;amp;quot;Iterating: &amp;amp;quot; + i); &lt;br /&gt;
  while (rs.next()) { &lt;br /&gt;
    if (++i % 1000 == 0) { &lt;br /&gt;
      System.out.println(&amp;amp;quot;Iterating: &amp;amp;quot; + i); &lt;br /&gt;
    } &lt;br /&gt;
    uid = rs.getString(&amp;amp;quot;UID&amp;amp;quot;); &lt;br /&gt;
    if (uid == null) uid = &amp;amp;quot;&amp;amp;quot;; &lt;br /&gt;
    updated = rs.getString(&amp;amp;quot;UPDATED&amp;amp;quot;); &lt;br /&gt;
    photo_bytes = rs.getBytes(&amp;amp;quot;IMAGE&amp;amp;quot;); &lt;br /&gt;
    String filename = createImageFile(uid); &lt;br /&gt;
    updateOrCreateDocument(db,uid,&amp;#039;&amp;#039;&amp;#039;filename&amp;#039;&amp;#039;&amp;#039;);&lt;br /&gt;
  } &lt;br /&gt;
  stmt.close(); &lt;br /&gt;
  System.out.println(&amp;amp;quot;Total: &amp;amp;quot; + i); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8) Criacao ou Atualizacao do documento no repositorio NSF&lt;br /&gt;
&lt;br /&gt;
Com a chave primaria, armazenada na string &amp;#039;&amp;#039;&amp;#039;key&amp;#039;&amp;#039;&amp;#039;, verificamos a existencia ou nao do documento. Se o resultado for vazio, criamos um novo documento senao verificamos por mudancas e entao atualizamos o documento.&lt;br /&gt;
&lt;br /&gt;
 private void updateOrCreateDocument(Database db, String key) throws Exception { &lt;br /&gt;
 &lt;br /&gt;
  View view = db.getView(UID_LOOKUP_VIEW_NAME); &lt;br /&gt;
  Document doc = null; &lt;br /&gt;
  boolean saveDoc = false; &lt;br /&gt;
 &lt;br /&gt;
  doc = view.getDocumentByKey(key, true); &lt;br /&gt;
 &lt;br /&gt;
  if (&amp;#039;&amp;#039;&amp;#039;doc == null&amp;#039;&amp;#039;&amp;#039;){ &lt;br /&gt;
    doc = db.createDocument(); &lt;br /&gt;
    doc.replaceItemValue(&amp;amp;quot;Form&amp;amp;quot;,&amp;amp;quot;person&amp;amp;quot;); &lt;br /&gt;
    doc.replaceItemValue(&amp;amp;quot;uid&amp;amp;quot;, uid); &lt;br /&gt;
    doc.replaceItemValue(&amp;amp;quot;updated&amp;amp;quot;, updated); &lt;br /&gt;
    doc.replaceItemValue(&amp;amp;quot;PhotoURL&amp;amp;quot;, PHOTO_URL_PREFIX + uid); &lt;br /&gt;
    photo = doc.createRichTextItem(&amp;amp;quot;photo&amp;amp;quot;); &lt;br /&gt;
    photo.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null, filename, null); &lt;br /&gt;
    saveDoc = true; &lt;br /&gt;
  } else { &lt;br /&gt;
    if (!uid.equals(&amp;amp;quot;&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; !uid.equals(doc.getItemValueString(&amp;amp;quot;uid&amp;amp;quot;))){ &lt;br /&gt;
      doc.replaceItemValue(&amp;amp;quot;uid&amp;amp;quot;, uid); &lt;br /&gt;
      saveDoc = true; &lt;br /&gt;
    } &lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039; if (!updated.equals(&amp;amp;quot;&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; !updated.equals(doc.getItemValueString(&amp;amp;quot;updated&amp;amp;quot;))){ &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
      doc.replaceItemValue(&amp;amp;quot;updated&amp;amp;quot;, updated); &lt;br /&gt;
      doc.removeItem(&amp;amp;quot;photo&amp;amp;quot;); &lt;br /&gt;
      doc.replaceItemValue(&amp;amp;quot;PhotoURL&amp;amp;quot;, PHOTO_URL_PREFIX + uid); &lt;br /&gt;
      photo = doc.createRichTextItem(&amp;amp;quot;photo&amp;amp;quot;); &lt;br /&gt;
      photo.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null, filename, null); &lt;br /&gt;
     saveDoc = true; &lt;br /&gt;
    } &lt;br /&gt;
  } &lt;br /&gt;
  if (saveDoc) { &lt;br /&gt;
    doc.save(true, false, true);    &lt;br /&gt;
  } &lt;br /&gt;
  doc.recycle(); &lt;br /&gt;
  view.recycle(); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
9) No metodo principal &amp;#039;&amp;#039;&amp;#039;NotesMain&amp;#039;&amp;#039;&amp;#039;, chamamos os demais metódos.&lt;br /&gt;
&lt;br /&gt;
==3.2. Configurando o UserInfoConfig.xml para retornar as fotos==&lt;br /&gt;
&lt;br /&gt;
1) Edite o arquivo &amp;#039;&amp;#039;&amp;#039;UserInfoConfig.xml&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
2) Localize a secao &amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;Storage&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;, e adicione o novos campos:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;Storage type=&amp;amp;quot;NOTES_CUSTOM_DB&amp;amp;quot;&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;StorageDetails DbName=&amp;amp;quot;secbookstore.nsf&amp;amp;quot; View=&amp;amp;quot;vwIndex&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;Details&amp;amp;gt; &lt;br /&gt;
   &amp;amp;lt;Detail Id=&amp;amp;quot;Dpto&amp;amp;quot; FieldName=&amp;amp;quot;Dpto&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt; &lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;Detail Id=&amp;amp;quot;PhotoURL&amp;amp;quot; FieldName=&amp;amp;quot;PhotoURL&amp;amp;quot; Type=&amp;amp;quot;text/plain&amp;amp;quot;/&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;&amp;amp;lt;Detail Id=&amp;amp;quot;Photo&amp;amp;quot; FieldName=&amp;amp;quot;photo&amp;amp;quot; Type=&amp;amp;quot;image/jpeg&amp;amp;quot; /&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
   &amp;amp;lt;/Details&amp;amp;gt; &lt;br /&gt;
 &amp;amp;lt;/Storage&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) Salve e Feche o arquivo.&lt;br /&gt;
&lt;br /&gt;
4) Reinicie o servidor Sametime Community&lt;br /&gt;
&lt;br /&gt;
= Conclusão =&lt;br /&gt;
&lt;br /&gt;
Este artigo descreveu como extender o IBM Sametime para prover informações aos usuários armazenadas em diversos repositórios. Mostramos como criar um repositório próprio buscando informações de outras fontes como um base SQL. E importando as fotos dos perfis do IBM Connections.&lt;br /&gt;
&lt;br /&gt;
Caso voce tenha um Cluster de IBM Sametime Community Server, basta criar uma replica da base secbookstore.nsf e copiar o arquivo UserInfoConfig.xml para os demais servidores.&lt;br /&gt;
&lt;br /&gt;
Espero que o artigo seja útil no seu dia como Administrador Sametime.&lt;br /&gt;
&lt;br /&gt;
= Recursos =&lt;br /&gt;
&lt;br /&gt;
= Ver também =&lt;br /&gt;
&lt;br /&gt;
* [[Configurando conversão de documentos do Sametime 8.5]]&lt;br /&gt;
* [[Sametime: Comandos Uteis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Lotus Sametime|  Mais Artigos sobre IBM Sametime]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: IBM Sametime]]&lt;br /&gt;
[[Category: Sametime]]&lt;/div&gt;</summary>
		<author><name>Ebasso</name></author>
	</entry>
</feed>