Workflow Service Example to get a Attachment ID

****************************************** ***START UPDATE 10/3/2016*****************

LAPI and its client installer has become very hard to find. Moreover clients written in LAPI  in say Java/.NET will only work if your Livelink a.k.a Content Server is of version less than CS16.Readers who are new to LL programming is encouraged to read this to the approach and not to the exact lines of the code.What I mean is when you used to program in LAPI you were basically passing parameters to discrete calls by modelling it based on the webgui of livelink .SOAP based webservices called CWS is also the same,so if you do not try to do the task in the webgui and try to understand the business rules you will almost have no success in CWS too. OT is notorious for not putting fully functioning use cases and a walk through,so whenever possible I write code assuming the user has not worked in Livelink for X number of years and try to educate you all. Livelink,Content Server,Enterprise Server all of this has been Livelink’s marketing brand name changes over the years.CS i sused in many of the integrations like AGA, XECM, RMLINK  and you know you are programming against livelink if you see a link that looks like this  http(s)://somefriendlyURL/livelink.exe|cs.exe|llisapi.dll|cs.dll|livelink.In many places SAP/ SP /Exchange will be configured to talk to Archive Server and then they will use Livelink to read into archive server and turn that into LL objects for better presentment/RM and other aspects. The AGA product is moving away from LAPI(not sure totally or not) to REST API in LL.

**********************************************END UPDATE****************************

 

 

 

A fellow poster in KB is asking for help with Workflow Service examples. KB

Again my guess is the programmer does not no enough about how livelink handles workflow data structures so hopefully my article does some help. A frustrated developer in this case because there ain’t official samples from OpenText will start to trash the product which I hate to be happening. OT is busy with Core and Appworks(nothing was said about this at conference so is it already dead?) it seems and to this day I cannot understand why OT responses to WebReports is such a high pleasurable experience whereas everything else is basically a lukewarm thing.

I needed to brush my new java skills so I downloaded java samples from KB and started looking at it. It looks to me there is a lot of setup one does with java in C# alsl one does is type a little bit of code….Anyway the poster was using System.out so I am guessing he was a java programmer.There might be several better ways to do it but what I did was convert my old C# code to do that

which was here https://communities.opentext.com/communities/cs.dll?func=ll&objId=10153785&objAction=download&viewType=1.The site is free to the public.

 

  1. Workflows are Churned by a map created in livelink See Pic of the new 10.5 Map wf
  2. When you Click Initiate a WF Record is inserted with a pair of dataids called WorkID, SubWorkID in most simple workflows they are the same when you or livelink creates subworkflows they differ.
  3. By programming all you are doing is making sure you can get to the running instance and look at its internals
  4. It never seldom one changes the logic of map with CWS or LAPI programming.
  5. The livelink workflow carries several packages of the workflow,when you say you want Attachments you get a Container much like a folder to put documents,if you say Attributes you get that,if you put a Form template you get that and so on and so forthwf
  6. The above map is reproduced faithfully in a table that is how livelink knows the evaluate conditions etc, if you change the real master map then only instances churned form that will be affected not earlier ones
  7. Attributes and Forms are basically going to borrow/rely heavily on categories and attributes code
  8. The code for finding the Attachments in a Workflow Instance and downloading it.
  9. My code shows how to get one item in the WF Data Structure a.k.a Container ID .You will need to write recursive algorithms if there were folders within that particular id.

The Cobra Post

Moral Turpitude,

Rather than try to write her actual name Devayani Kbobragade we Indians or naturalized seem to come up with easy to pronounce american western names.I chose my indian nickname of Appu  which is not my official name.So I have Peter who is actually Pramvir,Mike who is no where near mike and so on.So let us dub her Cobra for shortness sake.

The hullabaloo has gone viral but here’s what the Cobra case will finally entail

  1. Because of extreme money and political standing it will look like US would have won but they will make it look like both sides have one.I am more or less reminded of how my father used to say this when we were kids .My father Achan, enjoyed a particular game of cards popular in kerala called 56.The intend of the game is to start a bidding war and try to win the bid .Assume my Achan’s opposite team bid 44 clubs and my Achan’s team could not defeat them by securing 13 more points ,then when I was standing near him and learning I would say dad you lost,but he would correct me and say no they won.Almost Zen like .So that is what will happen here US wins and India Wins
  2. Who lost-The poor Maid who the Indian Diplomat screwed literally.Also a bunch of Indian people who wants to rock the boat like the Aam Aadmi Party but would like the vip treatment to go on
  3. Why is it justful -Because US diplomats do not want to go to Indian jails for breaking arcane laws.We don’t even have good toilets in lockups/prisons let alone good ones for non criminals.We may do cavity searches but may not have gloves or it could be used ones.

So Cobra will get out scott free and it will really be point #3 of my blog that opens the eyes of the US diplomats

There isn’t a good proverb in english to say this but the closest I can put here

Heres’ the real one in malayalam “Aarante Ammakku Pranthu Vannal Kaanam Nalla Rasam”

Which roughly can be like “kick the can down the road”. The literal translations is basically it is rather fun to watch if someones mother not my mother is gone postal.

 

 

 

Event Scripts Debugging

 

I LOST ALL CONTENT WHICH WAS STORED IN COMMUNITIES.OPENTEXT.COM.IF YOU ARE A STARTER READING THIS AND WOULD LIKE TO SEE THE ORIGINAL CONTENT DEPENDING ON TIME I HAVE I CAN SEND YOU SNIPPETS.LEAVE A COMMENT TO SUCH EFFECT.

Getting Old.One of the most productive ways one uses Oscript is to create Event scripts in livelink workflow.

Workflows in livelink are perhaps the most easy ways to impress your clients and a lot of partners and ecosystems are built on top of that.Event scripting is taught or learned by one who has been introduced in livelink.But in a nut shell if you know how to paint a livelink workflow and thought of somethings like,how I wish OT gave me code to do this small thing which I am trying to do in a “kludge”. You may have noticed the “kludge” with how one uses XML WF Extensions ,to get to a document in the attachments area and do something with it.So a XML WFExt map looks very weird there will be a Export step,modify step for anything/ everything you want with it kind of very silly when you look at at the map.Fortunately when I was learning this XMLWfExt was high priced so we did not get to use it,hence we had to do it via event scripting. Once you get hooked into it man are you gonna love it. WR getting to attachments is also another inefficient way to do your stuff but the standard by line is oscript can break your investment.But when anybody wants anything done they would go to OT or Vendors who would you guessed it use Oscript to provide the magic.There is nothing more untruthful than this . Oscript when learned and done the correct way will survive years.To basically make a point I am going to attempt to see if a eventscript I wrote on 9.1 Sp3(circa 2003) can be made to work in 9.7.1(2013).I will even try to make it work in CS10 ,but then I will have to spin up a 2008 VM and so on.

Task At Hand:WF is initiated with a custom title made up of attributes, strings etc. The WF has four forms loaded into them and the template has a label and a field called TITLE  My job is to take the title and replace it on the form fields. Seems pretty  easy to do.

See My Map-10-24-2013 4-26-10 PM

My template looks like this and I tried not to write code it does not work when initiating the workflow

2

Ok so as most of developers do I put a break in that script with just a echo statement to start doing my work so that I can see the variables etc. so as most new people will face I get this

3

and more importantly the debugger my task info is an ERROR.Without which I cannot proceed.I say this after 10 years because now I know how to do this.I did not at that time and so many of you will also go thru this.

4

So what do you do.After pondering for a while I resignedly said let me put it in another step and tell the user that it is a livelink limitation you will get an extra step in your workflow so click it to run the event script

so here’s my experience when I put the event script on the next step

5

Now we still have a error but that is actually joyous because we can now start debugging

6

But look at the TaskInfo variable now it has what we are looking for and trying to debug all the rest of the script

7

I managed to figure out the rest with echos etc and finished the script

Now HERES WHAT THE UNBELIEVABLE PART WAS .I JUST EXPERIMENTED PUTTING IT BACK TO HOW I WANTED , TO THE START PLACE AND IT WORKED

Since the project was a go I was very overjoyed.Later as I started reading articles by Jeff Lang,a great guy,who incidentally wrote livelink workflow he kind of explained the C++ firing and so on.We are friends and he has helped me and many other people when we got into a bind.I loved a post where he kind of admonished the developers who wrote XMLWFEXT….:(

See his post in 2007 I wish I had asked him in 2003 or learned it the proper way 🙂

In continuation here’s what you will definitely succeed start small,take baby steps and try some of these best practices

  1. Event scripts can be debugged only if the work is committed in the database,means it has to initiate.What I mean is basically in WWORK the row is available.what looks as a “chicken & egg” situation may only be in development and really not in the real wf operation as I found by trial and error.Nowadays there is the IH step which you can put and assign it as a scheduled time.At the time I was doing this I did not have the liberty of such a step.
  2. Do not chain event scripts into the start step,milestone that kind it makes debugging difficult.Start to a milestone these are auto done steps.Milestones later in the map should not have problems.
  3. Do not have many things that a IH will do.Break it into manageable pieces.You will be grateful you did.

See where i posted this 

A really bad WF map made up of XMLWFEXT,WR,eSIGN etc the reason why the “kludge” is arrived is because of the designer not resorting to event script programming.Nor is the logic very sound.Stay away form those kinds.A business user should understand the wf map that is what the process is designed to support.Whenever I design a map I give the business user a standard swim lane diagram I find in the web.9 times out of 10 the map becomes much better that way.I also encourage my users to paint and change maps so it does not become a specialized livelink job.

8

Java Samples for Content Webservices

 
I LOST ALL CONTENT WHICH WAS STORED IN COMMUNITIES.OPENTEXT.COM.IF YOU ARE A STARTER READING THIS AND WOULD LIKE TO SEE THE ORIGINAL CONTENT DEPENDING ON TIME I HAVE I CAN SEND YOU SNIPPETS.LEAVE A COMMENT TO SUCH EFFECT.

Java Samples for Content Webservices are few and far in between.OT mainly puts samples in C# and many  a times I myself wonder if my company did not allow me to do that how I would do that in Java.In all truth OT ships a massive application called TreeView.java and TreeView.s ln for both languages .But the java thing takes a lot of setup especially if one was not keeping active in that world.However I used the NetBeansIDE to actually do most of that so I use that debugging environment to try all my java stuff Recently I debugged how to run a Live Report in livelink via C# webservices.Then somebody wanted me to show them how to do it via Java.One of these days I want to return to seeing if I can do all this command line with nothing else other than notepad.

Well I created two word documents, my guess is the poster did not speak english  very well,did not know livelink nor did know java to start with  .Hence I dumbed it enough for people to follow in almost any criteria.

 

Having livelink and its builder helps me in my endeavours and so Oscript remains my first love although I am getting farther and farther from it all

 

I have these files in the Communities website

If I had a LR taking a string parameter  how to write that in Java(C# is available aplenty)

If I had a LR taking a integer parameter how to write that in Java(C#is available aplenty)

There is a bug with Live Report Extensions.A poster in KB said that OT is aware of it.

Why Having LR Extensions(something that Webreports) company produces breaks Livereport calling with Webservices of OT