IBM Connections using Active Directory and Nested Groups

Posted by:

Case:
Customer wants to use nested groups in Access control for Communities, also it should be reflected in I'm a Member when user is looking for their communitys and so on. Connections was 4.5CRx

Google search Links that where tried, but did not work for me (for some reason unknown).
http://www.lbenitez.com/2015/11/how-to-enable-nested-ldap-groups-in-ibm.html
http://www-01.ibm.com/support/docview.wss?uid=swg21321308
http://www-10.lotus.com/ldd/lcforum.nsf/869c7412fe5d56b7852569fa007826e3/4aa9a40d4818785f85257b3b004e3240?OpenDocument
http://www.communardo.de/home/techblog/2014/06/04/nested-groups-ibm-connections/

Found something that worked for me (seems logical looking at the description).
http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx
coming from thread
https://social.technet.microsoft.com/Forums/scriptcenter/en-US/f238d2b0-a1d7-48e8-8a60-542e7ccfa2e8/recursive-retrieval-of-all-ad-group-memberships-of-a-user?forum=ITCG

Description:
All groups specified user belongs to, including due to group nesting (Notes 10, 19)
eg. (member:1.2.840.113556.1.4.1941:=cn=Jim Smith,ou=West,dc=Domain,dc=com)
All members of specified group, including  due to group nesting (Note 10)
eg. (memberOf:1.2.840.113556.1.4.1941:=  cn=Test,ou=East,dc=Domain,dc=com) 
Note 10.
The string 1.2.840.113556.1.4.1941 specifies LDAP_MATCHING_RULE_IN_CHAIN. This applies only to DN attributes. This is an extended match operator that walks the chain of ancestry in objects all the way to the root until it finds a match. This reveals group nesting. It is available only on domain controllers with Windows Server 2003 SP2 or Windows Server 2008 (or above).

NOTE: 
All of this is of course done in the context of Deployment Manager.
After doing the changes a full resynch needs to be done with all nodes in the cluster (sometimes also take down node and use synchNode from the node) and restart the node.

Solution is to change my setting in Websphere to reflect this:
nestgroup1
nestgroup2
nestgroup3

Also changed for performance reasons the following (optional):
Reason:
http://www.ibm.com/support/knowledgecenter/SSAW57_8.0.0/com.ibm.websphere.wim.doc/disablingnestedgroupsearches.html
Solution is to change according to instructions

How does it look in the files before and after the change, here are snippets of this:

wimconfig.xml before the change:
      <config:groupConfiguration>
        <config:memberAttributes name="member" objectClass="group" scope="nested"/>
        <config:membershipAttribute name="memberof" scope="nested"/>
      </config:groupConfiguration>

wimconfig.xml after the change:
      <config:groupConfiguration>
        <config:memberAttributes name="member:1.2.840.113556.1.4.1941:" objectClass="group" scope="nested"/>
        <config:membershipAttribute name="memberOf:1.2.840.113556.1.4.1941:" scope="nested"/>
      </config:groupConfiguration>

security.xml before the change (you can not cut and paste any of these because some parameters are unique to your environment):
  <userRegistries xmi:type="security:WIMUserRegistry" xmi:id="WIMUserRegistry_1" serverId="" serverPassword="{xor}" realm="defaultWIMFileBasedRealm" ignoreCase="true" useRegistryServerId="false" primaryAdminId="wasadmin" registryClassName="com.ibm.ws.wim.registry.WIMUserRegistry"/>

security.xml after the change (you can not cut and paste any of these because some parameters are unique to your environment):
  <userRegistries xmi:type="security:WIMUserRegistry" xmi:id="WIMUserRegistry_1" serverId="" serverPassword="{xor}" realm="defaultWIMFileBasedRealm" ignoreCase="true" useRegistryServerId="false" primaryAdminId="wasadmin" registryClassName="com.ibm.ws.wim.registry.WIMUserRegistry">
    <properties xmi:id="VMMURProperty_1" name="com.ibm.ws.wim.registry.grouplevel" value="1"/>
  </userRegistries>

 

Shortcut to this document: http:// http://http://www.infoware.eu/?p=7180
Thats all folks

0

Error when installing IBM Connections 5.5 with CCM!

Posted by:

Last week I started to install IBM Connections 5.5 in our lab to prepare my self for upcoming customer projects with installation or upgrading customers' sites to Connections 5.5. This first install was done on a single Windows server but I used LDAP from a current Sametime environment (so I can integrate Sametime and Connections later on).

Windows Server Configuration
———————————————-
4 CPU, 16 GB RAM
C:\ 50 GB, D:\ 100 GB

I used IBM Connections Wiki Documentation (http://www-01.ibm.com/support/knowledgecenter/SSYGQH_5.5.0/welcome/welcome_admin.html)  but also the great "step-by-step" document written by IBM Connections Support Engineer Charlie Price (http://alturl.com/a3if4). "Step-by-step" guides can be great but do NOT trust them all the way, ALWAYS read the official wiki/technote documentation from IBM!

I installed the following software on a Windows 2008 R2 Server.
– WAS 8.5.5.7
– IBM HTTP Server 8.5.5.7
– DB2 10.5 FP6
– TDI 7.1.1 FP3
– Installation Manager 1.8.3

After installing all the above, creating WAS cell and profiles, configuring LDAP, creating DB2 databases, populate profiles and configuring IBM HTTP Server,  is it was time to do the actual Connections install. As this test environment will be used to evaluate all the features in version 5.5, I also chose to install IBM Connections Content Manager (CCM). To be able to install CCM you have to specify a folder that contains the correct FileNet installation software. For Windows you need to download these files and add them to the folder:

– 5.2.1-P8CPE-WIN.EXE
– 5.2.1.2-P8CPE-WIN-FP002.EXE
– 5.2.1.2-P8CPE-CLIENT-WIN-FP002.EXE
– IBM_CONTENT_NAVIGATOR-2.0.3.EXE
– IBM_CONTENT_NAVIGATOR-2.0.3.5-FP005.EXE

After answering all the Connections Installation Wizard questions and settings, I could finally click on the "Install" button 🙂
But unfortunately the installation ended with an error message…. 🙁

The IBM Installation Manager logs indicated that the Connections Installation Wizard where unable to finish some of its "post-install task". After a closer look in the IM logs I could see that the installation wizard where trying to uninstall Connections. OK, I then opened the install.log in the Connections install folder, in my case D:\IBM\Connections. This log contains information about all WAS configuration and Connections application installations that is done during installing Connections. I soon found this in the log:

Create CCM data directory: [D:\IBM\Connections\data\shared\ccm]
Replace place holders in template file [D:\IBM\Connections\lib\filenet\ce_silent_install_windows.txt] to new file [D:\IBM\Connections\tmp\ce_silent_install_windows.txt].
RUN: "D:\Download\CCM\FileNet\5.2.1-P8CPE-WIN.EXE" -i silent -f "D:\IBM\Connections\tmp\ce_silent_install_windows.txt"

D:\IBM\Connections>"D:\Download\CCM\FileNet\5.2.1-P8CPE-WIN.EXE" -i silent -f "D:\IBM\Connections\tmp\ce_silent_install_windows.txt"
Exit code: 0
RUN: "D:\Download\CCM\FileNet\5.2.1.2-P8CPE-WIN-FP002.EXE" -i silent -f "D:\IBM\Connections\tmp\ce_silent_install_windows.txt"

D:\IBM\Connections>"D:\Download\CCM\FileNet\5.2.1.2-P8CPE-WIN-FP002.EXE" -i silent -f "D:\IBM\Connections\tmp\ce_silent_install_windows.txt"
Exit code: -1
ERROR:  FileNet [ce] installer [5.2.1.2-P8CPE-WIN-FP002.EXE] failed, exit code [-1]:
Traceback (most recent call last):
File "D:\IBM\Connections\lib\ccm.py", line 318, in do_install
self.install_filenet_software()
File "D:\IBM\Connections\lib\ccm.py", line 371, in install_filenet_software
self.install_fn_component(c)
File "D:\IBM\Connections\lib\ccm.py", line 413, in install_fn_component
raise Exception("FileNet [%s] installer [%s] failed, exit code [%s]:" % (comp, binary, result))
Exception: FileNet [ce] installer [5.2.1.2-P8CPE-WIN-FP002.EXE] failed, exit code [-1]:
LotusConnections Component [CCM] install is FAILED

The installation continued after this,  installing all the other applications, the "only" failed installation was the CCM application. OK, So now I started to troubleshoot this error. Was the 5.2.1.2-P8CPE-WIN-FP002.EXE file corrupt? I downloaded a new one and tried to install Connections again but I got the same error message. I then checked the VMware resources, had I enough CPU or RAM? Yes. How about free disk space for the temp folder? CCM needs at least 6 GB otherwise the installation will fail. No that wasn't it. I tried to install Connections once more, this time I made a copy of the D:\IBM\Connections\FileNet folder under installation so I could investigate all the files created in this folder during installation. This as the Connections Installation Wizard deletes this folder when it fails to make a successful installation of IBM Connections. It's hard to troubleshot if logs and other files are deleted by the installation… 🙂

So what did I find in the FileNet folder? In the log file ce_install_log_5.2.1.2.txt I found the following error:


so jan 24 20:05:08:104 Error while building the EAR file in the installer
Status: FATAL ERROR
Additional Notes: FATAL ERROR – sö jan 24 20:05:10:818 [ERROR]
BUILD FAILED
D:\IBM\Connections\FileNet\ContentEngine\lib\mergeears.xml:99: The following error occurred while executing this line:
D:\IBM\Connections\FileNet\ContentEngine\lib\mergeears.xml:135: The following error occurred while executing this line:
D:\IBM\Connections\FileNet\ContentEngine\lib\mergeears.xml:202: Unparseable date: "01/24/2016 08:05 em"
at org.apache.tools.ant.taskdefs.Touch.checkConfiguration(Touch.java:256)
at org.apache.tools.ant.taskdefs.Touch.execute(Touch.java:280)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:440)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:440)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.text.ParseException: Unparseable date: "01/24/2016 08:05 em"
at java.text.DateFormat.parse(DateFormat.java:369)
at org.apache.tools.ant.taskdefs.Touch.checkConfiguration(Touch.java:249)
… 44 more

Total time: 9 seconds


So I opened the mergeears.xml file and looked at the row 202. Hmm, something with dates??? OK, lets ask Google about "mergeears.xml:202: Unparseable date". The first hit I got was this one.
http://www-01.ibm.com/support/docview.wss?uid=swg1PJ43439 from december 15, 2015. "CPE FIX PACK INSTALLER FAILS WHEN USING FINNISH(FINLAND) ON WINDOWS". Aha! So that was the cause. Well I am not using Finnish but as I am sitting in Stockholm, Sweden my Windows Server is using Swedish as date format and location (for system locale I use English US). So it appears there is a bug in the 5.2.1.2-P8CPE-WIN-FP002.EXE fixpack, that will make the installation fail if the date format and location on the operating system is something other than English…

"… The 5.2.1.2-CPE installer fails with a fatal Unparseable date
error when Region and Language is set to Finnish(Finland) on
Windows.  It's probable that this is a general installer issue
that will fail for any Region and Language that has a different
date format.

The problem is fixed in the ant script, which should now work
for any non English locales also Resolved by 5.2.1.3-P8CPE-FP003 and higher."

The workaround for this is to always use English as date format and location during installation of IBM Connections. After the installation is done you can change date format and location to the one that you prefer. 🙂

So did it work? Yes, I changed date format and location to English, tried to install IBM Connections again and now the installation finished SUCCESSFULLY with that lovely little green icon!

3

Developing social applications with the Social Business Toolkit SDK

Posted by:

Intro

The Social Business Toolkit SDK (SBT SDK) is a set of libraries and code samples that you use for connecting to the IBM Social Platform. As a developer you can choose which web development skills fits you best: Java, (client side) JavaScript or XPages. Your social platform may reside in the cloud or on premise.

In this post I will give you guidelines and practical examples to get you started. I choose XPages as development environment.

Terminology

In the document terms are thoroughly used:

Term

Description

SBT

Social Business Toolkit

SDK

Software Development Kit

DDE

Domino Designer on Eclipse

XPages

XPages is a rapid web and mobile application development technology

OpenNTF

Open Source Community for (IBM) Collaboration Solutions

OAuth

Open standard for authorization

Managed Bean

Java Beans representing system objects and resources

Endpoint

Encapsulates the access to a service provider, like Connections or Sametime

Installation of the SDK

Prerequisites

Before you can start with development in Domino Designer on Eclipse you need to install the SBT SDK. It can be downloaded from the following address: http://ibmsbt.openntf.org/The files you need to work with the SBT SDK and Domino are located in folder ‘redist\domino’ in the downloaded ZIP file.

Extension Library

Another condition to be able to run the Social SDK within your XPages you need to have installed the Extension Library, available on OpenNTF: http://extlib.openntf.org/. You need to have the library installed on both Domino server and DDE.

Installation for Domino Server

You can find a set of instructions how to install the SBT SDK on an IBM Domino server on the address:
http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Social+Business+Toolkit+SDK+documentation#action=openDocument&res_title=Installing_on_Domino_Server_SDK1.0&content=pdcontent. I recommend the installation via an Eclipse Update site. As a result your Update site should display the following plugins:

Screenshot_4

Installation for DDE

The Domino Designer deployment of the IBM Social SDK can use the same imported update site from the Update Site NSF. On Domino Designer verify that the checkbox for "Enable Eclipse plugin install" is checked in the Domino Designer preferences. You can find a set of instructions how to install the SBT SDK on DDE on the same address:
http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Social+Business+Toolkit+SDK+documentation#action=openDocument&res_title=Installing_on_Domino_Server_SDK1.0&content=pdcontent.

Setting up a Notes application

Create a new Notes application from scratch. I called mine ‘bornsocial.nsf’. Open the Xsp Properties file in DDE. Include the following libraries:

  • com.ibm.xsp.extlib.library
  • com.ibm.xsp.sbtsdk.library

Screenshot_5

Authentication

The Social Business Toolkit leverages a credential store for single sign on. For OAuth for example the user tokens are stored in this repository so that users don’t have to authenticate and grant access to services like IBM Connections for every session. The OAuth application tokens are also stored in this repository so that all tokens can be managed in one central place. You can read more on the credential store here: http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Social+Business+Toolkit+SDK+documentation#action=openDocument&res_title=Configuring_token_stores_SDK1.0&content=pdcontent&sa=true. And it is also explained in the following video: http://www.youtube.com/watch?v=2CWD70XarX8#t=100

In basic: the implementation of the credential store is performed by the use of a managed bean. The usage of this credential store is then defined in an endpoint. An endpoint encapsulates the access to a service provider, like Connections or SameTime.

In the Package Explorer open the faces-config.xml file:

Screenshot_6

Add the following lines:

<!– Token Store memory implementation –>
<managed-bean>
    <managed-bean-name>CredStore</managed-bean-name>
    <managed-bean-class>com.ibm.sbt.security.credential.store.MemoryStore</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

<!– Password Store memory implementation –>
<managed-bean>
    <managed-bean-name>PasswordStore</managed-bean-name>
    <managed-bean-class>com.ibm.sbt.security.credential.store.MemoryStore</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

Endpoint

In the first example(s) we are only going to demonstrate to connect to IBM Connections. Add the following lines:

<managed-bean>
    <managed-bean-name>connections</managed-bean-name>
    <managed-bean-class>com.ibm.sbt.services.endpoints.ConnectionsBasicEndpoint</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>url</property-name>
      <value>https://your-connections-url.com</value>
    </managed-property>
    <managed-property>
      <property-name>authenticationService</property-name>
      <value>communities/service/atom/communities/all</value>
    </managed-property>
    <managed-property>
      <property-name>authenticationPage</property-name>
      <value>/bornsocial.nsf/_BasicLogin.xsp?endpoint=connections</value>
    </managed-property>
  </managed-bean>

For value of managed property ‘url’ you must enter the address of your connections installation or in case you are using IBM Greenhouse for demonstration purposes you can choose 'https://greenhouse.lotus.com’.

Login page

A custom login page will presented when a user initially tries to connect to IBM Connections:

Screenshot_7

The elements for the login page are in the XPagesSBT.nsf application which comes with the SBT SDK. The nsf is located in folder redist\domino. The login page consists of the following design elements:

Name

Type

_BasicLogin.xsp

XPage

sbtLoginPage

Custom Control

sbtLoginPanel

Custom Control

You can simply copy the design elements from the sample application in your application and modify them e.g. for branding.

Connecting to Connections

Your application is now ready to connect to Connections. Where you place the code to connect to Connections is up to you. A recommended approach could be to establish connections via Managed Beans.A managed bean is nothing more fancy than a registered a JAVA object.

Managed Bean

In our first example we are going to read the content under My Files in Connections. These are the files that you have uploaded and shared.

  1. Create a new Java design element (Java Class).
  2. Enter the following code:

package com.quintessens.bornsocial.sbt;
import java.io.Serializable;
import com.ibm.sbt.services.client.connections.files.FileService;
import com.ibm.sbt.services.client.connections.files.FileServiceException;
import com.ibm.sbt.services.client.connections.files.FileList;

public class ServiceBean implements Serializable{
private static final long serialVersionUID = 1L; 

    public FileList getMyFiles() {   
                FileService service = new FileService();   
                try {      
                    return service.getMyFiles();   
                } catch (FileServiceException e){
                return null;
                } 
        }
}

Code explanation

The function getMyFiles gets handle to the FileService object. Then the getMyFiles function is called to get all the files (both private and shared) the user has uploaded in Connections. Then a FileList object is returned to the caller. 

The FileList object can then be used in a suitable XPage control e.g. the DataTable or the DataView control. 

Registration

In order to access the Managed Bean you have to register it. This is done in the faces-config.xml file. Open the file and add the following lines:

 <managed-bean>
    <managed-bean-name>ServiceBean</managed-bean-name>
    <managed-bean-class>com.quintessens.bornsocial.sbt.ServiceBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

You will access the bean via its name ServiceBean.

XPages

Finally we have come to a point where we can display the files that the managed bean returns from IBM Connections. I have choosen the XPages environment to do so.

Custom Controls

A best practice in XPages development is to divide functionality in individual blocks known as Custom Controls. This make it easier to re-use the functionality across your application.

Custom Control for a ‘My Files’ overview

  • Create a new Custom Control design element.
  • Add the following code to the control:

<xe:widgetContainer id="widgetContainer1" itleBarText="#{javascript:return compositeData.widgetTitle;}">
    <xp:panel>
        <xe:dataView id="dataView1" var="file" rows="5" columnTitles="true" styleClass="filesDataView">
            <xe:this.extraColumns>
                <xe:viewExtraColumn columnTitle="Filetype"></xe:viewExtraColumn>
                <xe:viewExtraColumn columnTitle="Created"></xe:viewExtraColumn>
                <xe:viewExtraColumn columnTitle="Size"></xe:viewExtraColumn>
            </xe:this.extraColumns>

            <xe:this.summaryColumn>
                <xe:viewSummaryColumn columnTitle="Filename"></xe:viewSummaryColumn>
            </xe:this.summaryColumn>
            <xp:this.value>
                <![CDATA[#{javascript:ServiceBean.getMyFiles();}]]>
            </xp:this.value>
            <xp:this.facets>
                <xp:panel xp:key="noRows" id="topicsPanel2">
                    <xp:div styleClass="lotusWidgetBody">
                        <xp:text>
                            <xp:this.value>
                                <![CDATA[#{javascript:return (viewScope.myFilesAvailable ? “No files found.” : “My Files unavailable.”);}]]>
                            </xp:this.value>
                        </xp:text>
                    </xp:div>
                </xp:panel>
                <xp:panel id="summaryPanel" xp:key="summary" style="width:50%;white-space:nowrap;">
                    <h4><xp:link styleClass="dataViewLink" escape="true" id="link7" target="_blank" text="#{javascript:return file.getTitle();}">
    <xp:this.value><![CDATA[#{javascript:return file.getContentUrl();}]]></xp:this.value>
</xp:link></h4>
                </xp:panel>
                <xp:panel id="typePanel" xp:key="extra0" style="width: 20%;white-space:nowrap;">
                    <xp:text>
                        <xp:this.value>
                            <![CDATA[#{javascript:return file.getType();}]]>
                        </xp:this.value>
                    </xp:text>
                </xp:panel>
                <xp:panel id="sizePanel" xp:key="extra2" style="width: 15%;white-space:nowrap;">
                    <xp:text>
                        <xp:this.value>
                            <![CDATA[#{javascript:var size = file.getSize();
var kilobyte = 1024;
var megabyte = kilobyte *1024;
if(size < kilobyte) {
    return (size + " B");
}else if(size < megabyte) {
    return (Math.round(size/kilobyte) + " KB");
}else {
    return (Math.round(size/megabyte) + " MB");
}}]]>
                        </xp:this.value>
                    </xp:text>
                </xp:panel>
                <xp:panel id="panel1" xp:key="extra1" style="width: 15%;white-space:nowrap;">
                    <xp:text escape="true" id="computedField3" value="#{javascript:file.getCreated()}"></xp:text>
                </xp:panel>
            </xp:this.facets>
        </xe:dataView>
    </xp:panel>
</xe:widgetContainer>

As a result the files in IBM Connections for the authenticated user will be listed e.g.: 

Screenshot_8

Code explanation

The DataView control is using the getMyFiles function from Managed Bean ServiceBean for data binding:

 

Screenshot_9

<xe:dataView id="dataView1" var="file" rows="5" columnTitles="true" styleClass="filesDataView">            
            <xp:this.value><![CDATA[#{javascript:ServiceBean.getMyFiles();
        }]]></xp:this.value>
            …
</xe:dataView>

It iterates through the returned FileList object and for each column values from each entry in the ‘file’ collection the value is computed e.g.:

<xp:panel id="summaryPanel" xp:key="summary" style="width:50%;white-space:nowrap;">
                    <h4><xp:link styleClass="dataViewLink" escape="true" id="link7" target="_blank" text="#{javascript:return file.getTitle();}">
                        <xp:this.value><![CDATA[#{javascript:return file.getContentUrl();}]]></xp:this.value>
                    </xp:link></h4>
 </xp:panel>

API Explorer

Use the SBT API Explorer which method each object provides:

Screenshot_10

Link: http://greenhouse.lotus.com/llapiexplorer/.

Summary

As you have seen getting started with the Social Business Toolkit is not that difficult for XPages developers. As alternative you could also choose JavaScript or JAVA if those skills fit you better. The SDK will help you understanding Connections piece by piece from a developer perspective.

In the example information is read from Connections but you can also post data. The SDK allows you to create great 'social enabled' applications. This can be applications that solely work with Connections or integrate with other platforms e.g. IBM Notes. 

I hope to write more on the Social Business Toolkit in another post. Thank you for reading.

Patrick Kwinten

 

 

 

 

 

2

Infoware and Tine SA – launching a social intranet – session at Social Connections

Posted by:

A true customer story about implementing a social intranet at one of our two sessions at Social Connections Conference in Prag 16-17 June 2014.

Ulf Stider, Infoware and Per Ejnar Thomsen, Tine SA shares their experiences from the project where IBM Connections is one of the cornerstones.

We are very excited to been given this opportunity!

Read more here: Social Connections – Launching a social intranet

 

Ulf Stider

Ulf Stider – Sales Manager, Infoware

Ulf Stider is Sales manager at Infoware, a collaboration enthusiast with experience from enterprise implementation and integration projects with Domino, Sametime, Portal, Connections, Smartcloud or Tivoli as part of the solution.

PerEjnarThomsen

Per Ejnar Thomsen – IT business developer, TINE SA

Per Ejnar Thomsen is titled an IT business developer / advisor at TINE with former experience as a consultant within the ECM-area. He is a key resource in TINEs intranet team, dedicated to social and enterprise search, product owner of enterprise search and intranet development project manager.

0

Release of DomainPatrol Social 2.0

Posted by:

DomainPatrol Social 2.0

We are more than happy to announce the release of DomainPatrol Social 2.0. The release which supports IBM Connections 3, 4 and 4.5.

So.. Do not glue your business content to the bookshelves. Take control and help your organization’s shared knowledge to grow responsibly.

As you may know, DomainPatrol Social is the powerful tool to move and merge content or users in an IBM Connections environment.

What does it do?

DomainPatrol Social can move individual entries or whole Blogs, Communities, Wikis, Forums, Activities to and from Communities.

You can also merge content from two Wikis, Blogs or Forums and even move or merge whole Communities. Additionally you can administer User Access and Roles in a convenient way.

Why do I need it?

Ease the administration for your IBM Connections environment forever; perform complicated tasks in a snap.

DomainPatrol Social shapes your social business platform into and attractive meeting point that grows responsibly together with the organization.

As before, our online and free trial version is available to you at any time online.domainpatrolsocial.com

For instant inspiration, go to our Youtube channel with short clips:
Infoware Youtube Channel

[youtube=http://www.youtube.com/watch?v=kLpIDqUjQes&w=640&h=390]

If you want more information or have any questions or queries, don’t hesitate to contact us. Send us an email, or fill in the form below, and we will get back to you promptly.

sales@infoware.se

0

Infoware sponsrar konferensen Smarta Intranät (Sveriges största event inom intranät)

Posted by:

Smarta Intranät 2013

Vi ställer än en gång ut på den mest intressanta mässan under året inriktat på intranät, Smarta Intranät som ges av Kompetensinstitutet. Dagen innehåller flera exempel ur verkligheten, med talare som berättar om sina erfarenheter hur man bygger ett bra intranät med företagsnytta.

Infoware finns på plats både i utställarbås och på scen. I båset berättar vi om hur vi arbetar med lösningar som gör din vardag lättare och om hur ni på er arbetsplats kan komma närmare varandra och dela information trots stora eller små avstånd.

På scen står bl a Ralf Larsson, Director Online Employee Engagement and Development från Electrolux. Han berättar tillsammans med Ulf Stider, försäljningschef på Infoware om hur Electrolux lyckats skapa ett framgångsrikt intranät med hjälp av oss på Infoware.

Konferensen hålls den 15 oktober på Bygget Konferens i Stockholm

Antalet platser är begränsat, så anmäl dig snarast här:

Smarta Intranät 2013

Vi ses där!

0

Infoware deltar på IBM Smarter Business 2013

Posted by:

IBMSmarterBusiness2013

IBM Smarter Business är ett av årets viktigaste event inom Social Business. Under parollen Greppa möjligheterna presenterar IBM ett fullmatat program. Ett flertal experter kommer att tala inom de olika områdena, t ex social business, smarter analytics, big data, smarter commerce, mobile, cloud etc.

Bland talarna finns bl a Katarina Gospic som är filosofie doktor vid Karolinska Institutet. Katarina har skrivit boken “Välj rätt! En guide till bra beslut” som handlar om hjärnan och beslutfattande. Dagen avslutas av Teddy Goff, ansvarig för Barack Obamas valkampanj 2012.

Infoware deltar med en delegation och vi vill gärna träffa dig där!

Seminariet är gratis och hålls den 17 oktober på Stockholm Waterfront Congress Centre.

Anmälan: IBM SmarterBusiness 2013

Vi ses där!

0
Page 1 of 2 12