LAPI when your sole requirement is to mess with Records Management or Physical Objects Management

****************************************** ***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****************************

 

LAPI is not dead it seems.Recently some posters wanted to do something with LAPI and especially with Physical Objects Management.The RM & PO modules are very great functional mods very easily installed and configured and works for almost any condition.Excellent design thoughts by OT(or is it iRIMS). The Web services bandwagon has not exactly swept in with the folks it seems.In any case for the old timers here is the cheat sheet

LAPI you are old need 32 bit computer also VJ redistributable on the livelink server if you are on LL9.7.1 or down

win7 64 bit computer livelink server if you are on CS10 or up but a downgraded .net framework

No installer is made for CS10 so I would just go to any old lapi project and put them in a .NET project which is less than 3.5 CLR

The programmer gets into a very simple document add or folder add routine so he /she has the bearings of how to work against livelink and LAPI if you have not messed with LAPI before do not think you can code in RM/PO LAPI API’s

Here’s the Rub.The RM/PO API is written to look like it is its own product in fact it is not.They are just interface files which the programmers can add to their project and nicely hidden in the server install modules.So if LAPI was given to you as a client installer the RM & PO API is sitting inside the SDK folder of the livelink server.I have many times had need to do this in java and C# so without prejudice this  how I do those tasks.Java is a little more complicated as I am not a full time java programmer or for that matter a C# programmer

https://communities.opentext.com/communities/cs.dll?func=ll&objId=8552848&objAction=download

If you had a IIS server serving your livelink things basically it takes less than 30 mins to create an application to expose DM services,PO services and RM services so if you are in a org that likes to be modern by all means do that approach

Intelligent people on the Sharepoint side have built and safeguarded their investments by creating their own API’s revolving around LAPI(the AGA framework) so I am thinking that LAPI has not been axed and retired.

BTW the ObjectImporter product plus its add on called OI for RM will allow you to bulk add PO and RM info much easier and much less to program than the lapi or webservices approach

How to use WCF Livelink web services to create a quasi single sign on or login with cookie equivalent of lapi

Recently OT Dev said that don’t really spend time on the Search SOAP service but use the Restful search API that has been there all along these years.

Since almost everything in livelink is served off a URL one of the first things it needs is authentication.For livelink deployments who do not have Single Sign On based on web server auth it is inconvenient that a webapp designed in C# provides links to a livelink URL for e.g I may have an href called “My Assignments” and then I may link it to my livelink server url and the query string ending in personal .assignments

I really don’t think organizations using livelink still use userid/password but this will probably help those users.

http:://my livelinkurl/livelinkvd/llisapi.dll?func=personal.assignments

Now everybody reading this should know that livelink will look for a cookie if not it will present a login screen. Our attempt is to use the token (cookie) returned to us by the CWS auth routine and make sure we can pass it off to a livelink URL or making the request to livelink as if one had logged in and subsequently performing operations.

In my example I am doing this with a LL 9.7.1 version so the ref key word is not used.For newer CWS the ref keyword is needed

SETUP

LL9.7.1 Oracle,IIS6, webserver is anonymous,livelink auth scheme is livelink ,No RCS present,No Dir Svcs module in deployment

in SSO deployments calling a livelink URL from a auth user’s computer results in a pass thru experience so none of this circus is needed anyway.

What I found was if you were adding the LlCookie to the request you have to do a lot of coding as in the user in this thread.I found several hits in the web

to spoof the Cookie but a lot of code for somethingthat you know is not that secure anyway

RE RE RE RE RE Get Region Name

He first gets the auth token and uses cookie setting code to call the search API.

While that is all good and dandy  if you have access to  a web debugging tool like Fiddler if you capture traffic for the first auth call you can see your userid+password

if it is a HTTP connection.I am not sure what it will look if my livelink was HTTPS.So I would just build a userid/password url and specify everything in NextURL.

So if I was coding a C# app and wanted to call my search system in livelink I would just use the simple approach

http://llappu971vm:8080/livelink/livelink.exe?func=ll.login&username=livelinkuser&password=livelinkpassword&nextURL=%2Flivelink%2Flivelink.exe%3Ffunc=ll%26objId=670175%26objAction=browse%26viewType=1

In the above URL the Func=ll.login sets the Cookie and then the NextURL is indicated,it is just webescaped for transmission

Single Sign On and Content Web Services Update

Update 04/28/2016

Pre- Requisites– Livelink 10/10.5/16  Server configured for Single Sign On using IWA . This is for users/companies who allow REMOTE_USER to trickle into livelink. If you have configured your livelink to use OTDS or simply said if OTDS is actually responsible for providing the Authentication then this post does not address that.In CWS which involves a OTDS server you are sourcing your authentication(read a different WSDL than the livelink authentication WSDL) from that.The theory there is your wsapi computer or client will pass your kerberos authentication and OTDS will vet that with AD/DC and pass it back. This OTDS ticket is now usable in your code.

 

Sample Setup on the WSAPI WEBSERVER

  1. Copy the webservices from OpenText  to a folder in the IIS server.For ease we assume your livelink server is on the same host and knows how to handle REMOTE_USER.If you want to run your livelink on another server edit the Web.Config to give it the real server name and port.I doubt if my setup can span computers never tested it that way.
  2. Configure an application that looks like the screen capsso setup
  3. Make sure it has IWA turned onsso1and make sure Extended Protection is OFF
  4. If not already done create a logs directory that is at the same level as \bin and manage its permissions correctly.This can also be done by doing a setspn which is really an advanced topic.The intent is when the client code hits this WSDL the application pool identity will transfer your remote_user and windows will do all that mumbo_jumbo.windows acl
  5. Edit the Web.Config carefully after making a copy .I am showing you changes highlighted for Authentication,DocumentManagement& ContentService.The file is rife with several possibilities so start with these 3 and mature into SSL and others Web.Config
  6. Give the WSDL a whirl .If it cant create a service or the green lines it is not a fault of OT.This is all windows WCF configuration.Check Microsoft sites or google for your errors.Things I check is that if all is successful the logs directory will show windows logs
  7. If the WSDL can now be put into a real source code file and you get errors in your client file the log files will indicate the errors coming from livelink. Note if you were using code form anonymous livelink/wsapi  you need to rebuild the source after updating the wsdl’scode
  8. The above were tested on a CS10 with oscript directory services and patches for SSO. I wrote a client WS which uses windows authentication and gave it to our app dev team.

If you have the chance to code in this you will be very pleased

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

What Pray is Enterprise Library

Stuff from my old BLOG  ARCHIVED – Livelink Rocks– GlobalStar ECM Champ Appu

After I posted this when I look OT has basically introduced more java based code streams especially the module Directory Services is being offered in the realm of RCS.If and when I need to get into OTDS I will post my experiences

In a nut shell both livelink and archive server are not written in java.However in a situation where SAP has to export/import documents or make visible an archived document  which was done using the GOS capabilities of SAP perhaps with the intents of putting a Records Management classification  or maybe get people in SAP a collaborative workspace as in livelink this comes into play.The solution is referred as Extended ECM. For this to work the main plumbing is

SAP to Archive Server using ECMlink  (Archive link is still there I am not sure if they are one and the same)

Livelink to Archive server using Archive Storage provider

RCS(Run Time & Core Services) Lots and lots of helper java code to interact with livelink and archive server

For SAP code to create/declare objects within livelink they will send their requests to a high level wrapper.The wrapper has the code to create livelink type items,such as documents,folders etc.A enterprise library objects is nothing but a livelink object with a livelink category.From SAP and their consultants call it with a different name.Also in a ELS scenario all objects are created within a separate section(volume) like the Enterprise Data Source.Typically for integrating a SAP SID the livelink team uses RCS (the high level wrapper code on Tomcat). When an Application is created in livelink you will see a new data source  by that name.

As a programmer if you have RCS and livelink setup you can actually run code in any language using the examples provided by OT.Note this is not the same as Enterprise Web Services or Content web services that one writes to do something against livelink.

Tha actual ECM deployment is very/highly complicated so please make sure  you understand all the moving parts and players.

Getting ELS accepted will need some help

Posted by anair@alitek.com on 07/09/2010 12:04 PM Functions
My rating:
Unrated
OT has embraced ELS or Enterprise Library services as  a very cool paradigm for integrating perhaps disparate software systems.The main products in the mix are Livelink and Archive.Even though both products are OT many livelink admins including me would not necssarily know the Archive side(although I am much better at it it).The ELS install documentation is a gargantuan deal and clearly many people trying it out the first time may have a difficult time.I encourage people to ask around,keeping their inhibitions to themselves and usually will get help from the community.I answered a recent KB post on ELS and I published my cheat sheet on it as well.I enclose a link thinking that it may help a potential livelink or ELS admin some day.https://knowledge.opentext.com/knowledge/llisapi.dll?func=ll&objId=17841798&objAction=download