Archive for the ‘App For That’ Category

There’s an App For That 11: GroupViewer

Tuesday, March 5th, 2013

Today’s app selection is a pretty simple one, but one that several clients have found remarkably useful: the ability to manage group membership in a simple, AJAX-type portlet.

There aren’t many frills here; when the portlet loads, the list of groups populates on the left. You can further filter the list by entering a search term in the box. Clicking on a group lists the members on the right side, as well as details about those users – including what other groups they’re a member of. From there, admins can add and remove users from the group directly within the portlet, and even export the entire list to a CSV file.



As usual, drop us a line if you’re interested in checking it out!

There’s an App For That 10: LogAnalyzer

Monday, June 11th, 2012

A while back I suggested that you turn on response time monitoring in your IIS or Apache instances. But what good are log files if you can’t make sense of them?

If you’ve got the budget, I totally recommend Splunk for your data processing needs, but today’s App For That is a home-brew log parsing system that simply processes server logs and breaks down the response times by a time interval (such as 1 hour) and type (such as portal gateway requests or imageserver requests), calculating the number of hits and response time during that interval.

It’s a pretty simple .NET application that can process a large number of log files:

It also allows you to export that data for any particular filter to a .tsv so you can produce charts like this and really tease out some significant information:

We’ll be open-sourcing it soon, so stay tuned – or drop us a line and we’ll share it with you now.

There’s a WCI App For That 9: OpenerFilter (aka Office 2010 MIME Types)

Thursday, November 3rd, 2011

By now you’re probably tired of the Knowledge Directory saga related to opening KD documents in WebCenter Interaction, but it’s a pretty serious problem. I’ve posted several solutions, but have come across a new problem with the original OpenerFilter configuration. Specifically, for some IE and Office configurations, Office 2007 and Office 2010 documents don’t open properly because the original configuration file used non-specific MIME types.

You can view the original post for the source code and a description of how this filter works, but recently I’ve discovered that the MIME types in the original post should be updated for recent Office documents (.docx and .xlsx). Instead of “application/msword”, the config file should use the MIME types provided by Microsoft. Specifically, the configuration file for OpenerFilter should look more like the following:

<?xml version="1.0"?>
  <removeContentDisposition value="0" />
  <replaceContentDispositionWithInline value="1" />
  <fixContentType value="1" />

  <doc value="application/msword" />
  <dot value="application/msword" />
  <dotx value="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
  <docx value="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
  <xlt value="application/" />
  <xls value="application/" />
  <xlst value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
  <xlsx value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />

  <pdf value="application/pdf" />
  <gif value="application/octet-stream" />
  <jpg value="application/octet-stream" />
  <png value="application/octet-stream" />


There’s a WCI App For That 8: SMTP2Collab

Tuesday, June 7th, 2011

WebCenter Collaboration Server has a decent feature that allows end users to email documents directly to Collaboration Server by using a dedicated SMTP address for each folder:

Properly configured, attachments (but not message text) on any email coming in to that address are created as documents in the Collab Folder. But what if you want to capture the text of that email? And what if the user doesn’t have an account in Collab? Also, wouldn’t it be nice if inbound documents to the few folders you care about allowing (possibly anonymous) document submissions could have “vanity email addresses” like for the pirates in your organization?

That’s exactly what SMTP2Collab does. Like Collab, it sets up an inbound SMTP server. Any mail delivered to it – whether the user has an account in the portal or not – gets created as a document in the specified folder, and a linked discussion is also created containing the text of the email. Oh, and you can create any vanity aliases you want for the folders:

Wanna see it in action? You know the drill.

There’s a WCI App For That 7: LockDown

Tuesday, February 15th, 2011

LockDown is an Integryst product that has been around for years and provides the best security management functionality available in the WebCenter Interaction space.

It is a full-featured security management add-on for Oracle’s WebCenter Interaction (WCI) / AquaLogic User Interaction (ALUI), providing an intuitive user interface for managing and reporting on the security of objects within the portal in a logical way. Featuring the ability to propagate security changes to child objects and folders and export comprehensive security reports, the latest update includes manipulation and reporting of Knowledge Directory, Publisher, and Collaboration Server security in addition to Plumtree Administrative Objects.

For more information, check out our product page, and contact us if you’d like a demo!

There’s a WCI App For That 6: User Auth Source Flipper

Monday, January 10th, 2011

I recently worked on a project with a client that was migrating from LDAP to Active Directory.  Because we didn’t want to lose all the group memberships of the existing users, or any of their history (such as Collaboration Server authors), we needed to come up with something a bit more… creative… than just creating a new Authentication Source and telling users to start using the new accounts.  Kenan Shifflet wrote a great post about migrating Plumtree Authentication Sources a while back, but I took a different approach because we were going from LDAP to AD, and the GUIDs and CRCs were all different.  In fact, the only thing that was the same between the two authentication sources was the login names.

Swapping the Auth Source IDs would have resulted in each of the users getting deleted and recreated, since these GUIDs didn’t match.  But by swapping the OBJECT IDs of corresponding users, we were able to preserve all group membership and security.  Why did this work?  Well, in the PTUSERS table, all user objects have an Object ID, a mapping auth name, and other values that allow the respective Authentication Web Services to match a user to the source repository, whether it’s LDAP or AD.  But in every other portal table, only the Object ID is used for things like security and group membership.

So, for example, let’s say I have an mchiste account in LDAP that’s been fully configured; I’m a member of a bunch of groups, I’ve uploaded documents to Collaboration, and my user ID is in the Access Control List for various portal objects.  Then we run the AD Synch and there’s now a new mchiste account, but it doesn’t have any of that configuration associated with the old user.  If I just swap the object IDs for the two users, then all of a sudden my AD account will has all the correct group memberships and security settings, and the LDAP one looks like it’s brand new.

That’s exactly how User Auth Source Flipper works – it matches users from two authentication sources, then swaps out the ObjectID if there’s a match:

Got an idea for an interesting app?  Interested in developing your own Auth Source Flipper?  Give us a shout.

Oh, and “There’s a WCI App For That” can’t possible be confused with “There’s an app for that“, right?

There’s a WCI App For That 5: SearchFixer

Monday, October 18th, 2010

We’ve discussed a tiny bit about Knowledge Directory cards and how the WCI Search Update plays into the crawler ecosystem, and seen that it’s possible to directly query the WebCenter Search Service, so how ’bout a quick real-world application example, expanding both of those concepts?

Here’s the scenario:  I had a client that was showing discrepancies between “Browse” and “Edit” modes in the ALUI Knowledge Directory, and in Snapshot Queries.  I suppose I owe you all a more detailed explanation of these topics – which I’ll put up in a couple of days – but for the purposes of this article, suffice it to say that the “Search Index” and “Database” were mis-matched, and the WCI search index didn’t match the database.  Worse, the regular method of repairing this discrepancy (using the Search Update job after scheduling a Search Repair) wasn’t working.

So, to fix this issue, I developed another quick and dirty application that enumerated all folders in the Knowledge Directory, doing a search for cards within the folder, then querying the database.  The application would then compare the results, and if they were different, would allow the admin to “fix” the problem by deleting all cards from the Search Index for that folder.  When the Search Repair job next ran, it would re-create these entities without all the extraneous records in there.

Like this post, I’m not particularly proud of the code as a well-architected solution, but it works and I’d be happy to help you out if you want to get in touch.  Some of the relevant code is after the break. (more…)

There’s a WCI App For That 4: CardMigrator

Tuesday, September 28th, 2010

In my last post, I talked about the need to update both a cards’ location AND its CRC in the WebCenter Interaction database to migrate cards from one UNC path to another.  Today’s post is about an “App For That“, which is a utility I had written last year but essentially abandoned until Fabien Sanglier’s great tip about the CRC value needing to be changed.

The app is one of those “thrown together” .NET jobs where I was more focused on the need to update tens of thousands of cards for a client, rather than building a pretty and usable UI.  As such there isn’t a whole lot of error checking, and I’m not comfortable sharing the whole code base here – mostly because I’m just embarrassed about how it was hacked together.  But, if you’ve got a need for something like this, drop me a line and hopefully I can help you out or just send you the code as long as you promise not to make fun of me :).

The code is pretty straight-forward:

  1. After entering the connection strings for the API and the DB (since, as mentioned, we haven’t yet found an ALUI / WebCenter API to make the change to the CRC), you click “Load Crawlers”. 
  2. The crawler list shows up in the tree on the left, grouped by Content Source since you’re likely only updating cards based on the NTCWS, and not WWW or Collaboration Server crawlers. 
  3. Clicking on a crawler shows you all the cards associated with that crawler, as well as a bunch of useful metadata. 
  4. From there, you can do a search and replace on the UNC paths for all the cards.  The update process uses the API and Database methods to update the cards and the crawler, so the next time the crawler or Search Update jobs run, no cards are updated since everything matches up – assuming, of course, you’ve already moved the physical files to the new location! 

Some relevant code is after the break; again, drop me a line if you’re looking for more.


There’s a WCI App For That 3: Automater

Friday, June 4th, 2010

Let’s face it: sometimes even the simplest actions in the portal can take WAY too many clicks.  Take creating a single community:  you need to pick a community template, create pages, create Publisher portlets and add them to the pages, create Collab Projects, set security, etc.  And many times, most of this information is the same for every new community.  Community Templates help, but it still requires a LOT of clicks.

Integryst’s Automater product tackles this problem by allowing you to script multiple portal actions, only prompting for the unique information each time.  For example, at one client they wanted to create a “Network”, which consists of 7 communities, dozens of portlets, and multiple admin and regular users.  It literally would take over 100 clicks each time – and eventually there are going to be 100+ of these “networks”.  Tha’ts a lot of clicks!

Not using Automater, though.   Administrators just enter the information that’s unique to each network, and those 100 clicks are rolled into one:

All kinds of actions can be scripted – and secured so that only certain groups have access to specific actions:


There’s A WCI App For That 2: PublisherManager

Friday, May 7th, 2010

You’ve read about Integryst’s PublisherEditor.  You’ve seen the video and read the product page.  The product continues to evolve, and is still the best WYSIWYG editor for AquaLogic / WebCenter Publisher on the market.  This post, though, is about an additional utility that comes included with PublisherEditor, called PublisherManager.

Articles have been written about finding published content URLs and changing publishing targets, but to date there hasn’t been a safe way to do a global search and replace of text in Content Items and Presentation Templates, or generate a report on publishing targets.  PublisherManager fills that void with a clean UI and the ability to download a report as a CSV so you can identify :

PublisherManager and PublisherEditor work with WebCenter Interaction 6.0 –, and AquaLogic Publisher 6.1 – 6.5. 

Interested in a demo?  Drop me a line.