As part of some work on XPages OpenLog Logger, I'm looking to not only log SSJS errors but also give the facility to push them to an Error control for the relevant component or an Errors control if they are not associated directly to a control. There have been a couple of challenges around this. First, I'm aggregating error objects into a LinkedHashSet so there are no exact duplicates - because dynamically computed properties can be calculated during a number of phases of the XPages lifecycle, the same error could be encountered a number of times during a partial refresh. The ...
The second release of org.openntf.domino has today been pushed up to OpenNTF. As I blogged earlier in the week, there are a host of enhancements as well as bug fixes. For those wanting to hit the ground running with the project, I've posted a video on what needs deploying to the server and your client, embedded below. Declan has also updated the JavaDoc and is kindly hosting it. For anyone who wants a bit more information on how to use the code and some comparisons, I've been working on a sample application. It requires M2 as a minimum. So far ...
It's been a little while since the initial release of org.openntf.domino, but as we're gearing up towards M2 release, it's worth giving an update of all the work that's been going on under the hood. M1 provided the core set of Java code that offered a host of possibilities for looping Collections, avoiding recycle, throwing generic exceptions instead of NotesExceptions and providing the MIMEBean. The jar could also be added to jvm/lib/ext for use in Java agents etc and could be added to WebContent\WEB-INF\lib for use in Java in XPages. These steps alone significantly sped up development. But for M2 we've ...
The overarching benefit to deploying Social Business solutions in customer service operations is the ability to engage with customers and understand them more deeply. This helps organisations to anticipate and meet their customers’ needs in ways that differentiate them from the competition. If companies could increase customer retention rates by 5%, they could grow their profits by 25% -100%. Frederick Reichheld, The Loyalty Effect According to a recent ITSV CEO study, ‘Getting closer to the customer is the top focus for CEOs over the next 5 years.’ Specifically, customer service teams can: Find the right people via profiles connecting customers ...
Social technologies are being used to gather insights about products and brands, opinions about competitors, and perceptions of market segments. This market research and customer insight can be used as input for product requirements and design, advertising campaigns, pricing, packaging, and other marketing and product development activities. In a recent study of 541 executives at 500 companies, 40% found that they could see specific improvements and increases in sales from social customer relationship management and 71% found that it led to a reduction in time to resolution for support issues. Social Businesses increase their customer reach by ...
In the previous part I created a ListPicker class that extends IValuePickerData and Serializable. The hasCapability() and getSourceLabels() methods that the IValuePickerData interface requires have been implemented and just return false. In addition to the default constructor public ListPicker(), I've created two more: public ListPicker(List<String>) and public ListPicker(Set<String>). Because I've just used the generic classes as parameters of the methods, List will take any type of list like an ArrayList and Set will take any kind of set like a TreeSet. Both methods store the collection passed into them into a private List variable called options_. Now we're ready to start ...
So we've added our Value Picker to the XPage, bound the component to an Edit Box or Dojo List Text Box or some other control that's bound to a field on a Notes Document or viewScope variable. Now we're ready to go. A dataProvider for a Value Picker needs to implement the Java class com.ibm.xsp.extlib.component.picker.data.IValuePickerData (implement not extend). I also needed to implement Serializable, just like we do with a bean. IValuePickerData is an Extension Library class, so the source code is freely available on the OpenNTF project and you can look at it in Eclipse. When you import the Extension Library ...
The Extension Library brings a new control to the party, the Value Picker. This gives the user an image or link that spawns a dialog from which they can select one or more options and even search for options. (The Value Picker itself doesn't differentiate whether or not multiple items can be selected. That's handled by the component into which the selected values are stored and to which the Value Picker is bound. Logically speaking, the Value Picker is bound to a component - an Edit Box, a Dojo List Text Box etc. - which is bound to a field ...
Ok. So we've seen we can pass a Vector or an ArrayList into a selectItems control for a Combo Box or Radio Button. And we've seen we can pass it via SSJS or EL (but EL is slightly more efficient). That's all well and good if your options are already unique and already sorted. But what if they're not. Well you could run an @Unique and a JavaScript sort once you've retrieved it. But part of the point of using Java is better performance, easier debugging and avoiding coding directly on your XPages. Remember that our getKeyEnts() method got values from ...
So enough of the introduction, onto passing some Java to selectors. There are two types of Collections you may have - Lists and Maps. Lists just have values. Maps have keys and values. So if you want the label and the value to be the same, use a List. If you want a different label and value, use a Map, with label in the key and value in the values. I'm going to start simple with Lists and start at the basic level with core controls. This is also relevant to the Dojo controls like Dojo Filtering Select, Dojo Radio Button. That's ...
It's no surprise that, despite coming from a background of minimal Java in the days before XPages, I now use Java as my main language in XPages back-end coding. There are a few areas where I've had to put my thinking cap on to work out how to use Java correctly when mapping between components and Domino, not least in number handling and Collections. Some time ago I put out a blog post of a useful cheat sheet for the plethora of core Collections objects available. Those Collections are very useful for managing content, but sometimes it's not obvious ...
Business Use Cases – Product Development By removing barriers between people, a successful Social Business can quickly and cost-effectively bring new solutions to market and better meet customer needs. By using social platforms for co-creation, Social Businesses can engage a larger community beyond their own R&D staff. This helps to resolve product development challenges that are too big for in-house resources to handle themselves. In ‘crowd-sourcing’ for example, a wide range of participants are asked to submit ideas, which are then evaluated, often by the crowd itself. Social Business can help organisations to increase revenue by responding to ...
Tomorrow (April 23rd) I will be speaking on the IBM Collaboration Solutions Community Meeting at 3pm BST (10am ET). The topic of this month's meeting is XPages. The main part of the community meeting will see Abby Butts and Sam Bridegroom talking about how they have used XPages to develop applications to benefit a not-for-profit healthcare system. In the community member spotlight I'll briefly talk about org.openntf.domino, a project that has got those of us involved in it enthused about the benefits and possibilities and has been well-received by a number of early adopters. Since the release one of the ...
With the inclusion of the Extension Library as core in Notes and Domino 9, there are eleven new @Functions provided for SSJS. They can be found in the Designer Help in IBM Domino Designer User Guide > Designing XPages Applications > Adding Controls from the XPages Extension Library > @Function (Extension Library). Note, you will not find these @Functions listed alongside the other XPages @Functions, so if you use search scopes in the Eclipse-based help, you'll need to add this section. And you'll want to, because they are very useful if you use a lot of SSJS. Some of them fall ...
Will Social Business be a distraction to my employees? Social Business provides a gateway for current and relevant information exchanges across geographies and organizational silos. Building trust and encouraging social interactions is key to driving social change in the workforce. A successful Social Business will not foster an environment whereby employees are constantly chatting to their Facebook friends. It is not about wasting time but about saving time and increasing efficiency, although trust is a key element for success. An organisation needs a certain level of trust to empower its employees to share their ideas and expertise, and ...






