AddressBook

Today I just chanced to see a post where somebody could not get the famous AddressBook module working.This module was part of the Oscript documentation and is usually introducing the user to the various concepts livelink programming entails.Like a “Hello World” for Oscript :).I thought of helping the person and the person had deleted the post.which was originally here  He later removed it because many people do not want to appear wrong.However there is no harm in asking or being wrong.failedaddressbook

 

Anyways I had done this for another friend so releasing into public domain here….

I did not fix many problems in the module so it is a challenge to the person doing it that is how I learned:)

Advertisements

Oscript what is it what and would I use it?

Oscript is  a 4GL that is the basis of the application that the OpenText company adopted when they chose to market Livelink the Document Management System.It is safe to say that anything  the Livelink product lacks and  is a valid requirement can be coded in this language.The power of the the Oscript language takes root in the philosophy that was prevalent in the 60’s . Oscript is a superior offering to traditional OOP languages such as Java or C++ that is what Pundits say.

To a trained Oscripter one is able to understand how livelink code is received as well as change it.Now change to any COTS product comes at a cost.That is where the strategy as well as overall grasp in the product comes into mind.If the organization has decided for itself that it will spend the big bucks on livelink, one approach is to identify the ways to use it more.Where the organization is going to make mistakes is when it sees the cost of the “customization”.Many decision makers wrongly decide to go after fly by night programmers/vendors to be totally left in the fray.OT has a professional vested interest to sell customers more code and services so I have been in decisions where sales and marketing  will say do not customize livelink, but that is only half truth in them.If you buy these OT customizations, they are almost certain to be written in Oscript .In many cases it would have been written by senior Oscripters with thought on maintenance aspects  and upgrade ability as well.The same kind of service can be bought by other Oscript houses,in many cases these are extremely talented ex OT ‘ers. Many of the Professional Services modules sometimes outgrows the intents and becomes a marketable module as well.I have no knowledge and am just speculating on that.Once you have identified and  decided to use livelink the best avenue is to hire or ask services of reputed vendors.Modules that contained Oscript code that I used to code in 1999 (first time was on a livelink 8 system) livelink 9.1 version I can almost compile in the modern 10.5 version.My entire career was  and is fruitful because I tried to interact/collaborate and share with the OT team in the KB as well as smaller websites like Greg Griffiths.I was also able to mentor myself amongst very die hard oscripters that I knew from work and just by tracing code to find bugs that needed closure before OT could provide fixes.The knowledge of OT code also allows me to become a better application architect,administrator and integrator.

If the organization is strong in Java and .Net skills then note that the user interface at this time cannot be changed using those languages,however you may use exposed API’s to make functioning applications that use Livelink as the data store

Typical things organizations can and should do.

  1. Create implementations of Nodes just like Folder or Document if there is a need for it to be there.Just because OT shows you a “Addressbook” or “Contacts” module not every livelink installation in the world needs new subtypes.It is there if you want to use it ,if there is a complex business requirement that involves a “document” like implementation or a “folder” like implementation.Do search in the KB for such terms as “invasive customizations”, overrides,orphans,subclasses, customizationsRT, weblingo customization.
  2. Add Commands in the Nodes these are basically very easy to do in a short order.These two are taught very nicely in class as well.
  3. Put a lot of functioning logic into workflows also heard as event scripting.
  4. Write code so that livelink can interact with other systemslike using the POJO object.
  5. Write agents,distributed agents,expose to columns and facets api something that OT does not give you OOB.
  6. Extending SOAP and REST can only be done using Oscript.If you are a shop who has a need to program a integration using java or C# and you see a “GAP” in existing offering it is rather easy for a Oscripter to extend that.

Opentext Programmers have black boxed thing so that many things acts as internal API’s.For e.g we are able to do work without understanding how the “Node” itself is created in livelink. Other examples are the way Oscript can talk to the search system.

Not many people know that livelink uses a api to search.

Out of the world Oscript Offerings.

Christopher Meyer a Long OT veteran his website . It is un believable stuff that I have seen.

Patrick Vitali the maker of AnswerModules

IDE’s one can use

CSIDE a eclipse jar file for versions CS10.5

Livelink Builder CS10 and Versions prior.

LAPI What is It and Should I use it ?

Update:06/12/2017

Realized that OT is supporting old LAPI for their product called Enterprise Scan,Escan used to be completely a client app so if the Livelink server connecting to it is CS16 then OT ask you to install a module.Surreptitiously they call it “Private Bridge Interface” which is all the LAPI Oscript code conveniently bundled into its own Ospace.My guess is this will continue until ESCAN and AGA and other OT bread winners convert to SOAP or REST.

 

Update:12/29/2015 OT has announced that with the launch of CS 16 there will be no server side oscript to receive lapi calls so don’t waste your time reading this or programming in it.Just keeping this for vestigial reasons.

At time of this writing circa Feb 2013. Open Text’s livelink has been in the market for about 18 years and a fairly loyal fan share.The core software was always enhanced /added on by Oscript but for programmers who wished to do utilities such as adding user’s en masse, deleting things en masse et there was LAPI which stood for Livelink Application Programming Interface  .In its inception what I used to see in around 2000,you could program in Java,which I did,there was VB6,there was then C & C++. Vended products such as Livelink Explorer,Authorlink, Autocad Integration etc was around there.In a nut shell these were the steps that one used to take.

  1. Install or copy lapi client files in your computer
  2. Write a program
  3. Compile it and run.

@RunTime the first call which everybody knew as Session creation was akin to Tel netting to the livelink server on Port 2099(default livelink server listening port). As time went by OT added a lot of calls at the LAPI server side so people built a lot of cool things.But there were problems in a way that as modern OOP languages came along they abhorred the idea that livelink was giving them Data structures(LLValue Objects) and making them work thru that.So OT did a small stint they loaded the LAPI libraries on top of a web server and called it Live Services but at that point one could write a web service call.I think it died like the OT’s foray into JavaObjects to replace or do side by side coding as in Oscript. I never understood what one would use JavaObjects for. Note I am not talking about the Oscript to Java Bridge which I have messed with and is very useful.

With the release of 9.7.1 they bundled livelink web services as part of the livelink install the idea bing a company would just use the existing IIS or Tomcat investment and start creating a plumbing conduit into livelink.At CS10 they stopped making a installer for LAPI. I am told that this is because  they do not have the development resources to make libraries in several different languages.

The new web services are strongly typed,you never need to guess what you ask livelink and what you get in return.But while that is easy for a programmer to say and do the majority of programmers are called /hired to do something against livelink has no clue how livelink works.So that is where beautifully written /working hand holding programs are needed.Also a programmer need to understand what he is trying to do which may be as simple as logging into livelink and observing the different things.Jason Smith,Scott Grasley,Kyle Swidrowich these are all great OT programmers who are putting such structure into the new web services paradigm.Whenever I find time and needs some challenging stuff I also do put up some samples but most of my time nowadays are in oscript.

Coming back to LAPI the server side remains and will there be for what I can see. If OT basically puts their foot down and remove the API on the server then your program will not work. But then gain it probably is so far around you have no cause for concern.Not having an installer should be less worrying as any old API edition will work in java or a .NET language.That is what I do.I have a new 64 bit computer.I just copy the dll’s from a 32 bit machine and work on a .Net 2.0 framework.I also lost touch of java somewhere along the way.I guess I will have to brush up because OT is going to get us all programming in Eclipse 🙂

So in conclusion it really is your preference on how to code and how well to save your investment

A LAPI call received in the heart of livelink in oscript.If the AccessEnterprise call one sample was not there your investment would suffer

apicall

Going by the same token a web services call received in livelink

webservicecall

As you can see when you program in a client application your call needs to come into livelink.In web services they use the web server to get into livelink code.

At this point you are able to create a lapi code page and call the web services code or a web services code piece and call lapi .Increasingly over time lapi server side will cease to be and no effort will go into its up keep.In older versions of web services they used the LAPI dispatcher to send in the web services command now I don’t think it has a dependency on that.

Chris Morley’s comment a little more computer trained person than me

https://knowledge.opentext.com/knowledge/cs.dll?func=ll&objId=33077212&objAction=viewincontainer

Almost Diatribe from an angry user it is fun

Using the New Storage Rules Wizard on a LES9.7.1

Friday April 24, 2009

Using the New Storage Rules Wizard on a LES9.7.1

Posted by anair@alitek.com on 04/24/2009 08:57 AM
My rating:(1 rating )
Using the New Storage Rules Wizard on a LES9.7.1Recently I was playing with LEA as an alternate storage provider.So the storage provider rules dawned on me and I saw a rule that looks like this Attribute ‘?’ Value is ‘?’.I looked at how one would go about it and the help had nothing.I asked OT support who added me to a ticket and said they would let me know in a patch later.So I just asked around other friends etc who did not know either.But John Simon my good friend from COP asked me this “so did they ever tell you what to put in?  Or have they decided it is bugged and you can’t put anything in to make it work?”That challenged me so I decided to look at what the  code was doing or how one would do this.Without further ado here’s one way that works.My category name is called ‘CoreCatAtts’

My attribute Name is called ToStoreWhere its index is 4.This is to deliberately mislead you.

So the Attribute Spec has to be written like this

CoreCatAtts[1].ToStoreWhere[1] picture of the rule will make it more worthwhile to the reader

llisapi.dll

For Developers who want to see what all that means

The way you are supposed to use it is like that

CategoryName[1].AttributeName[1]

Don’t be tempted by putting the attribute index it is figuring that from the name.

the number 1 after category name specifies the Root Set

and the number 1 after attribute name says the row where it is found(they have generic function for row number to handle MVA)

{{3762.2},{1,1.4,1}} that is what they are making it do

what it means is find the category with defid 3762 and version 2

and the Root Set 1,Row 1,ID and first value of that ID

So in oscript if I wanted to find the value of attribute (ID=4) at its 4 th row

will be like this {{3762.2},{1,1.4,4}}

Try it out and see if that works for you 🙂

The Perils of Using Default Access List

Thursday November 12, 2009

The Perils of Using Default Access List

Posted by anair@alitek.com on 11/12/2009 01:22 PM Functions
My rating:
4 star overall rating. (1 rating )
The famous Default Access List that stays with every object in LES.Every now and then people get into all kinds of arguments on how to use a ACL effective for the organization.Recently as of today somebody had a 911 on it and my dear friend John Simon commented.I did and Jim Coursey wrote an exctensive good reply.I wanted to see if I had forgotten what I learned so I wrote this little document to help.Discussion Thread on thishttps://knowledge.opentext.com/knowledge/llisapi.dll/open/16960219Most experienced Livelink administrators understand ACL’s really well and are guided by Open Text or some other experienced persons in setting up a organizational security model .However when writing this we are in a severe economic downturn so most new people have no inkling on how livelink works,how security works and that sort.All they get is the standard OT training and I really don’t think they cover this at all.Most think of Scare Point as the ultimate and it is just a call to the SP admin who logs on clicks a link adds the AD group to the ACL and lo and behold you have a link where you can all communicate/ collaborate while the system is up and running.This is just written for upcoming people so that they understand what they can avoid.I got into this after a user started having qns on some stuff that RecMan poses and my good friend and mentor John Simon COP said something very straightforward.I added to the reply and Jim Coursey also contributed.The trouble is the default access list that Livelink provides out of the box is really geared for a system administrator who understands the livelink owner role.However in a roll out all these get really muddled and then you have a chaotic security model that nobody can ever comprehend. .I wrote an article to complement John’s KISS(Keep It Simple ,S*****)  method  it and hopefully somebody may find it useful.This has already been attempted at OT by another article but mine has some screen shots for the impatient 🙂
https://knowledge.opentext.com/knowledge/llisapi.dll?func=ll&objId=3498977&objAction=ArticleView

Please do let me know if this article has factual errors.I would not want to mislead anyone.So post why you think this is problematic and why you would like to give Owner a lot of unwanted perms.

Attachments:
Document Perils of using the high privs associated with Owner.docx (254 KB) Functions Download
Hide Recent Comments

Re The Perils of Using Default Access List – kenneth.huie@mantech.com  Wed Nov 18 11:04:09 2009
Appu,   This is a great write up!  I appreciate your document and the references you provided. You are so right, this is such a huge topic in that its impact is often not fully understood and the results of incorrect usage of the OWNER …
Attachments:
Document Access Control TIP.doc (23 KB) Functions Download