Tuesday, March 23, 2010

LiveLink Object Importer Quick Check List And Tips

0 comments
  1. For Livelink 9.7: Make sure the entire Object Importer file is surrounded with <import>...</import> tags.
  2. When dealing with category attributes, always enclose the actual attribute value with the xml CDATA tags. Why? Because you never know when some piece of data will contain a character that should be escaped or not even allowed! (ampersands, quotes, ticks, colons, etc...)
  3. Use the sync tag even when you are creating new folders or objects. It just makes life easier.
  4. Depending on how your Object Importer module is set up, either put the entire Livelink object path in the tag or include the <title> tags afterward. 
  5. Watch out for colons in a name. That's a huge no-no. 
  6. If you enclose your attribute values with cdata, then you can just put in a normal carriage return for values that are multiline. Otherwise, use the &amp;br; or &amp;nl; escape.
  7. Keep multiple Object Importer files small and manageable. 
  8. Build the folder structure out first, permissions second, categories third, classifications forth, and everything else last.
  9. You cannot do a move with Object Importer. Don't even bother wasting your time researching that.
  10. Make sure your categories, ACL groups and classifications exist on the server before doing a file load. 
  11. You CAN import files from external sources... like images and docs from a network share. Just make sure the Livelink server processing the OI files can access the external source.
  12. Order of preference in Object Importer is actually based on Windows alphabetical ordering. 
  13. Don't put a shortcut link in the object importer watch folder... you can and will bring down the server.
  14. It is case sensitive!!!
  15. There is a lot of trial and error with OI files, but once you get that one record to load successfully with the correct permissions, classifications, categories, etc, then base the rest of the import process on that. 
  16. Object Importer is a good option if you need to migrate Terabytes of legacy data into Livelink. 
  17. If you are good at SQL, then you have a huge advantage to using Object Importer.
  18. If you have Automatic Document Numbering (ADN) installed, then your Object Importer routine just got more difficult.
  19. Always remember to at least populate the required attributes. 
I like Object Importer.

Tuesday, March 16, 2010

Enabling Full Livelink Logging to Capture LAPI Problems

0 comments
In trying to troubleshoot the 101107 LAPI error and 0-byte size documents, I learned there are some specific settings in the OT.ini file (not the actual name btw) to allow for LAPI logging.

In the file:
[general]
debug=2
 
[options]
WantLogs=TRUE
WantLAPILogs=TRUE
WantTimings=TRUE
WantVerbose=TRUE
 
Restart services, replicate the issue as many times as you want, and start comparing GB's worth of logs!
Have fun!

Tuesday, March 9, 2010

Speeding up a Livelink Web Report

1 comments
Slow-as-molasses Livelink Web Report??? Try using a saved search as your data source. "But I have a bunch of attributes as my starting filters," you say. You can work through that too... Example:

  1. Go to Advanced search.
  2. Do a full text search.
  3. Look for All words
  4. Find out what the actual field name of the attributes you want to search for are (Attr_####_##). This information is found in a table in the database. I'm not going to mention the actual name because I don't know what legal issues this post can cause. It rhymes with fatregionnap.
  5. Build your advanced query like so: Attr_33353557_3:%2 AND Attr_33353557_4:%3 AND Attr_33353557_6:%4 AND Attr_33353557_12:%5 AND Attr_33353557_11:%6 AND Attr_33353557_10:%7 AND Attr_33353557_20:%8 AND Attr_33353557_2:%9 AND Attr_33353557_19:%10 AND OTSubType:144
  6. The above will get you specifically documents that have two categories and the values you pass into attribute parameters. The middle number in those field names are the actual category id.
  7. Optionally, to speed up the results even more, Add a scope to the search. 
  8. Save it.
  9. Reference it in the Web Report.
  10. Format your web report as you would.

I will post more on building an entire web report with this data source pull method later on.

Error: Unique constraint on dtree, LAPI add object, 101107

0 comments
Environment: Livelink 9.7.1, .NET 3.5, Oracle 10, ADN module, heavy category/attributes
Problem: Multithreaded LAPI app loads several documents into Livelink and creates new folder structures, permissions, RM Classifications, and categories. Once in a while, we run into this error on the Livelink server side: Oracle error: (1) --> ORA-00001: unique constraint (LINK_OWNER.ADNIDS_INDEX1) violated

The LAPI error is CreateObjectEx Failed. Message=Error adding categories to node errMsg=Error saving generated number. Status=101107 (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
LapiException: CreateObjectEx Failed. Message=Error adding categories to node errMsg=Error saving generated number. Status=101107

Theories:
  • ADN is blowing up again. 
  • The LAPI port is getting overloaded.
  • LAPI sucks.
  • The database is being overwhelmed by multiple transactions from multiple users (adding one object to Livelink is usually about 100-200 various transactions, so do the math if there are 100+ users).

Wednesday, March 3, 2010

Error: The provider already exists in this session

0 comments
I've been trying to troubleshoot a LAPI error and perused through the Livelink connect logs. This one error kept showing up.

"The provider already exists in this session"

Looks like you can ignore this one. It is a warning message that is to be expected. It is saying that the EFS required has already been identified. It is common and can be ignored.

Link to the discussion thread here.

Wednesday, February 24, 2010

LAPI Error 107404

0 comments
Session Status=107404
Error=Error setting the category or attributes for this node. Error saving generated number.
Happening When=Updating multiple documents with latest attribute values.

The "Error saving generated number" points to an Automatic Document Numbering module specific error... but who knows. More research to follow....

Thursday, February 18, 2010

LAPI Error 101107

0 comments
LapiException: CreateObjectEx Failed. Message=Error adding categories to node errMsg=Error saving generated number. Status=101107

Scenario: Bunch of categories need to be applied to a newly created folder structure and sub objects. I was trying to add a document into Livelink via LAPI. If the folder structure for where document goes does not exist, then the LAPI app creates it with the correct categories, attributes, permissions, RM Classifications, etc... However, if the structure exists, even though the category may have been applied incorrectly, then the app will just load the document into the folder structure.

Potential cause: I'm still looking into since there are so many moving parts and factors involved with this enterprise solution.... for loading documents non-natively (if that's a word) into Livelink. (DAMN architects)
What I think is happening is that -
  • The category DNE at the expected parent level.
  • The attributes were not populated correctly.
  • ADN (automatic document numbering) had an issue
I strongly believe it has something to do with ADN because I have found issues with SQL Injections. You attempt to load a document with reserved SQL words like UNION and JOIN and ADN freaks out. Special characters like apostrophe mess it up too. We have patched ADN with a quick fix from the vendor but still run into this 101107 error. It's like Livelink is failing during the database writes into ADN along with the external file store and the attribute tables. WTF....

What a pain in the ass to resolve. Logging on the Livelink is so process intensive.