Captiva Scripting: what-is and where-to-use

I’ve seen/heard developers talk about Captiva Scripting in confusing ways and given that we have new ways of scripting, I figured it wouldn’t be a bad idea to take a moment to discucss the break down on a  high-level, to help ease the discussion on this subject.

Captiva scripting is essentially used to customize two different behaviors of a process flow:

1) Process Behavior: In customizing the behavior of a process, you have two choices:

Capture Flow Scripting:
This is the traditional scripting that should be familiar to all Captiva developers, where one would be able to customize the standard process flow routines (prepare, finish, error). It is to be kept in mind that these routines are expected to be simple functions, primarily used for exchanging IA values between capture flow steps. As you’d imagine, this type of scripting applies to all batches which are created from the relevant process; however it’s to be kept in mind that it’s triggered on the IA Server. Any changes made to this script would obviously require the process to be recompiled & redeployed for the changes to take effect.

.NET Code Module (if one could call that scripting):
This is a standalone module that could be incorporated as a step into any process. This is by far the most powerful scripting feature available and is typically used to manage critical business logic. This could also be treated as a reusable cookie-cutter library that could be applied to processes across the Organization (you could also build a custom setup-form to pass design time parameters to this library). It’s ability to be a executed independently as its own step in the process, allows it to easily access & integrate into other legacy systems in the Organization. Additionally, you could use it to manipulate the batch tree in this step. Last but not the least, please be sure to keep your eye on the DLL file size… because the IA server, which downloads the assemblies & any associated files during run-time to the machine where dotNET code module is running, has a file size limitation of 2MB.

2) Module Behavior:

This type of scripting is primarily used for mid-task data manipulation, with the ability to be used by any number of processes without any dependency on the process binary. With that said, this needs to be kept concise so it could perform quickly & efficiently. In customizing the behavior of a module, you also have two choices:

Client Side scripting (CSS):
This helps modify module behaviors, specifically Scan Plus, Nuance OCR, Documentum Export & Web Services. There are two main events that you’d deal with in this type of scripting — one is TASK, which applies to specific batches; and the other is MODULE, which applies to all processes which uses this module. As you could guess, these events would be fired where the cleint module is running (not necessarily on IA server). Please note that any process which directly uses this module doesn’t require to be recompiled to pick up these changes — meaning, any CSS changes would immediately impact all the current batches on the system. Lastly, moving processes or batches from one server to another doesn’t bring all the related CSS dependencies with it and would have to be performed manually (in other words, copy the DLL to the binnt folder on the workstation where it’s expected to execute and register).

Profile Scripting
This is a new & powerful concept to customize document type & image processor profiles. For those who are new to this, a good example to understand a document type scripting is to imagine configuring a pick list table for the Index users in a non-standard query format. In other words, if your enterprise architecture prevents you to submit a standard query to a database and could only query via proprietary API’s and such, profile scripting for the document type is where you are heading to. Alternatively, if you need to manage which filters or annotations should be applied to the input image based on image color, tones etc., profile scripting for image processors is where your answer lies. The independence of the module scripting from the Capture Flow process gives the ability to effectively reuse across multiples processes. Please note that all the related assemblies created as part of the scripting is managed in IA Database.

RIP Documentum!

Too hasty you say? But seriously though, what are the real alternatives?

First a disclosure. I’ve been away from blogging for few years to pursue another passion of mine which effectively consumed every waking moment outside my work. I enrolled in film school and here’s the trailer of my film for the curious minds.

Read more of this post

Sharepoint/Documentum: Today and tomorrow…

Its always interesting when a company as big as Microsoft makes it way into a new niche and the leader in that domain accommodates to co-exist. Make no mistake, its a strategic move from both sides but the challenge is to help our customers strategize ECM solutions keeping long-term in mind. This is my $0.02 to understand where we are heading and how to plan for it.

Read more of this post

EMC Documentum Support

I had experienced various interesting encounters with EMC support, but lately, I feel like they are just getting arrogant… I guess it comes with the size (Documentum to EMC) and its layers. Here are some to ponder…
Read more of this post

BOF 1.0 and BOF 2.0

BOF is critical in getting business logic and processes implemented accurately *enterprise* wide. And its capabilities play significant role with development, deployments and migrations. First of all, I have to be honest and say how much I adore the BO framework in Documentum. When the first version came out, I loved it and loved the control it offered. And soon realized how the BO functionality wasn’t being invoked on machines where BO registration wasn’t done. And it was taken care of in 2.0, but it was not recommended to use dbor.prop although it was backward compatible. This intangible setup on a machine (using 2.0), leaves you hanging when things do not work. And the fact that individual interfaces/implementations for each business object need to be deployed OR define the same jar over and over for each business object if you decide to club all together – not perfect yet…
Read more of this post

Are all your scanned documents accounted for?

The most important aspect of integrating two systems is to assure that there is a solid hand-shake and that the communication is accurately handled. Consider this transaction between Input Accel & Documentum:

Export Module> Request is made to create an object type for document
Content Server> returns Object id
Export Module> Set attributes for document
— network error —

Read more of this post

ECM Market at a snapshot in time

For those who hadn’t had a chance to review Magic Quadrant for Enterprise Content Management, 2007 from Gartner Inc., would be interested to know that IBM is positioned as the Leader for its ability to execute and completeness of vision. EMC is immediately following it and according to Mark Lewis, President, Content Management and Archiving Division at EMC, launch of Documentum 6 Platform and recent acquisition of X-Hive Corporation, supports organization’s in place vision and strategy. Unless IBM makes any major releases or strategic moves, EMC might very well be in the leading position next year. OpenText and Oracle are also positioned in the Leader’s quadrant.

Read more of this post

XML – the heart of the future CMS Infrastructure

Content, by definition, is difficult to categorize and provide structure; and XML technology, by definition, is a general-purpose markup language and is classified as an extensible language because it allows its users to define their own tags. The flexibility offered by XML technology makes it a natural fit for the complexity posed by the Content Management Systems.

Read more of this post

Free-Form Taxonomy

When designing Content Management System for an organization, the architects inevitably spend time designing the Taxonomy for the content. It is enormously important from the business stand point to organize the content to be able to logically access it the way we would find paper based files in the huge locked away cabinets (this very line exposes the disconnect).

Now, I am here to question the ROI on this.

Read more of this post