a great bit of research by Dan Keldsen and the Information Architected group.
Archive for the ‘Uncategorized’ Category
Tapping the Power of your Enterprise Crowd
August 19, 2010Calculating E20 ROI: Lack of Information Management costs $2700 per USER per YEAR
July 23, 2010
And you say you cannot afford it?
Newly updated research (independently conducted but sponsored by Oracle) finds that the average worker spends approximately 60 minutes a week hunting for information NOT in a content management system. Furthermore, users creating information spend 74 minutes a week copying, pasting and duplicating data between documents.
terms of percentages this means that 2.5% of work time is lost to looking for the right information in paper drawers, email and shared drives. Lets call this search Lag.
Over 3% of work time is spent reinventing the wheel as people move digital bits from one document or form into another. Lets call this productivity Drag. Add it up and workers spend over 5% of their time hunting for or reinventing information.
All this lag and drag on the organization costs real money in salary. It doesn’t begin to calculate the cost of synchronizing information across all those duplicates, the cost of storing all that duplicate information, the cost of using the WRONG or OUTDATED version of something they found.
Got Oracle ECM Questions? Ask them on the OTN Forum
July 12, 2010If you’ve just found out that Oracle ECM products were thrown into your enterprise license agreement and now you have to do something with it…
If you are always at the front of the new-release-install-it-without-reading-the-docco curve…
If you want access to a ton of Oracle ECM experts who have been there and done that…
If you want to be a part of the larger community who actually help eachother (whether partners, competitors, here or there)…
Then you need to head over to the OTN forums for Oracle ECM.
An ECM 11g 1-2 Punch
June 21, 2010
Fishbowl Solutions and Oracle Product Management will both be holding separate webinars discussing the new release of ECM Suite 11g.
This Wednesday, June 23, at 12pm CDT Fishbowl will host a webinar featuring a UCM 11g Overview, information on 11g compatibility with Fishbowl’s Portal Integration Suite, and an 11g Fishbowl Project Automation Success Story.
Next Wednesday, June 30, at 11am CDT Oracle will host their quarterly customer update and present on the latest updates to Oracle Content Management highlighting the Universal Content Management (UCM) and Universal Records Management releases.
Don’t miss this chance to get informed on the latest updates to Oracle Content Management!
Register for Fishbowl’s Webinar
| Title: | Road to the Future with Oracle ECM 11g & Fishbowl Solutions | |
| Date: | Wednesday, June 23, 2010 | |
| Time: | 12:00 PM – 1:30 PM CDT |
Register for Oracle’s Webinar
| Title: | Quarterly Customer Update Webcast | |
| Date: | Wednesday, June 30, 2010 | |
| Time: | 11:00 AM – 12:00 PM CDT |
jQuery and UCM – Client Side Ajax UCM Interaction
June 11, 2010The web is evolving, and users are wanting better interaction with their apps within the web browser. This means faster site loads and action feedback to the user and not a browser loading a page.
Bex recently posted about his jQuery plugin to UCM to make service calls, and I thought I’d share something that I whipped up a few months back that has been an internal project of mine. I think it’s about time it saw the light of day and help give more options to the web developers of the world.
My prototype is a javascript service wrapper javascript object, called fb.js, creates several util functions to help aid the execution of service calls with a max of 1 line of IdocScript on your site.
The first thing to do is to set the url for the ajax call. The preferred method is to override the variable in fb.js that holds all of this. Do this by defining this line in your javascript file.
fb.vars.cgiRoot = "<$HttpCgiRoot$>";
Now we can build out our function. Each function takes 2 parameters objects, a callbacks object and a parameters object. The callbacks object has the hooks into the 5 events jQuery ajax method gives you. These are, beforeSend, success, failure, complete, and error. By defining functions in the callback object, you can hook into any event and change you page very easily.
For example:
var callbacks = new Object();
callsbacks.beforeSendFunction = function(){alert("about to ping server")};
callbacks.successFunction = function(responseText){
alert(responseText.LocalData.StatusMessage);
};
The second object is the parameters object. This one is as easy as passing in parameters as you would for service calls. For example :
var parameters = new Object(); parameters.IdcService = "MY_CUSTOM_SERVICE"; parameters.MyCustomParameter = "VariableValueHere"; parameters.IsJson = "1";
Now we can execute the service.
fb.util.executeService(callsbacks, parameters);
Now the real power comes when you want to start interpreting result sets. you can use a method I created to get back a 2D array object that contains the row and then the item. An example of this would be.
var callbacks = new Object();
callbacks.successFunction = function(responseText){
var contentItem = fb.util.returnResultSetObject(responseText, "DOC_INFO");
alert(contentItem[0]["dDocTitle"]);
alert(contentItem[0]["xComments"]);
};
var parameters = new Object();
parameters.dDocName = "ID_10000";
fb.util.getDocInfoByName(callbacks, parameters);
This can also be applied to search results to loop and create your table.
var callbacks = new Object();
callbacks = fb.defaultCallbacks(callbacks);
callbacks.successFunction() = function(responseText){
var searchObj = fb.util.returnResultSetObject(responseText, "SearchResults");
for (var i = 0; i < searchObj.length; i++){
var htmlString = "tr td" + searchObj[i]['dDocName'] + "/td td" + searchObj[i]['dDocTitle'] + "/td td" + searchObj[i]['dDocAuthor'] + "/td /tr";
$("#resultsTable > tbody:last").append(htmlString);
}
};
var parameters = new Object();
parameters.pageCount = "4";
parameters.resultCount = "50";
parameters.QueryText = "Press Release";
parameters = fb.defaultParameters(parameters);
fb.util.getSearchResults(callbacks, parameters);
Now, you may be saying at this point that this is a lot to define to execute the method. That is why I have started some functions in the main js file called “fb.defaultParameters(parameters)” and “fb.defaultCallbacks(callbacks)”. By passing in your objects to these methods before you run your service, it will fill in the blanks, so to speak, with default parameters needed to execute the function.
Because I have defined the GET_SEARCH_RESULTS service call within my default parameters, I know there are certain required parameters that need to passed before I execute the service. These are, QueryText, startRow, endRow, resultCount and others. I also decided that, I don’t really want to deal with start and end row, so I decided that when I pass in the pageNumber parameter, I calculate the start and end row based off of either the default resultCount parameter set in fb.vars or the one passed into the function. This can be seen in the above method where I create the table rows.
I currently have 3 predefined for you to use with the ability to add execute any service you want.
fb.util.pingServer(callbacks); fb.util.getSearchResults(callbacks, parameters); fb.util.docInfoByName(callbacks, parameters);
with the master execute service function being
fb.util.executeService(callbacks, parameters);
What I have done is allow you to hook into as many events that you want with the ajax functions, but also incorporate a “defaultFunctions” and “defaultParameters” functions that will assume and fill in parameters that may have been missed or not necessary to keep defining.
For your viewing pleasure, I have set up a prototype site that is Mobile device friendly using 100% javascript hosted on a 10gR3 content server. Keep in mind that this has not be polished, but a POC of what you can do with the proper execute service javascript wrapper calling the shots.
Please visit http://www.fishbowlsolutions.com/mobile for the example.

