ODMA: Open Document Management API

ODMA FAQtip Q990401
Creating ODMA Document IDs
Document ID Considerations

ODMA>
FAQ>
1999>

Q990401d>
2007-07-28 -11:14 -0700


From: Dennis E. Hamilton
Sent: Friday, 20 October 2000 12:21
To: Balaz Branislav
Cc: ODMA Tech; Dal Ghotra
Subject: RE: Creating ODMA Document IDs

Thank you for your useful question.  Your question is similar to one that Mr. Dal Ghotra submitted some time ago.  I am going to address both of your questions.

There will be a new ODMA FAQ about Creating ODMA Document IDs.  It will be at

http://ODMA.info/downloads/Q000014.htm

Here is the basic response:

1.   ODMA DOESN'T WORK WITHOUT ODMA DOCUMENT IDS.

The ODMA API Depends on ODMA Document IDs to locate the correct DMS integration to use for performing individual operations.  Notice in the ODMA specification how many operations require a Document ID as a parameter.

The ODMA Document ID is how the correct DMS is located and consulted for providing the actual document-management operations.

Even at the ODMA COM interfaces provided by the DMS, such as IODMDocMan, most methods require that a valid ODMA Document ID be supplied.

It is necessary for a DMS Integration to provide and then to accept ODMA Document IDs.  On receiving an ODMA Document ID, the DMS Integration should determine that the Document ID is a valid one issued by it (or another configuration using the same DMS Integration software and name).

2.   REQUIREMENTS FOR ODMA DOCUMENT IDS

ODMA has simple requirements for a Document ID:

a.      It must be a text string in the local character set

b.      It must not be longer than ODM_DOCIDMAX, counting the terminating '\0' character.

c.      It should be used in a case-insensitive way and be formatted in such a way that it can be provided on a command line without problem.

d.      The first part of the ODMA Document ID has the following fixed structure:

::ODMA\dms-id\...

where dms-id is at least 1 and at most ODM_DMSID_MAX-1 characters.  There should be no spaces and it is recommended that the DMS-ID include only Roman letters and decimal digits for maximum international interoperability.

The dms-id is used by ODMA to determine, using the Windows Registry, the correct DMS Integration to initiate and give the request to.

3. INTEROPERABILITY CONSIDERATIONS

For ODMA DMS Integrations to interoperate successfully across multiple computers, the dms-id should be unique among DMS Integrations, so that the ID is never supplied to a DMS Integration for which it is not intended.

It is also strongly recommended that the ODMA Document ID be globally unique.  ODMA Document IDs may be stored in files, carried in documents as links to other documents, and transmitted to others using e-mail and other transfer techniques.  A globally unique ODMA Document ID allows a DMS Integration to determine whether it actually has access to the repository to which the Document ID applies, or not.

4. CREATING DMS DOCUMENT IDS

ODMA never examines the part of an ODMA Document ID that follows the dms-id portion.  Applications are also required to treat that portion as "opaque" information that is intended for use solely by the identified DMS Integration.

So long as the Document ID length, character set and character code requirements of ODMA are satisfied, the remainder of the Document ID can be encoded in any way that allows the DMS Integration to locate the identified document at any time in the future, or reliably report that the identified document cannot be located.

When a DMS Integration is atop of a document-management system that has its own identification scheme, the common approach is to recode such identifications, with useful supplemental identification, so that the original identification can be recovered by inspection of the ODMA Document ID. The supplemental information may include identification of the specific repository that was used, so that identifications applicable to one repository will not be mistaken for similarly-identified documents of other repositories.

How this is done is dependent on the implementation of the DMS Integration.

For example, the following ODMA Document ID applies for a fictitious DMS Integration, 

::ODMA\DM-FOO\AA345961-A67C-11d4-A462-F0B953C1AECD#4E7C9FA0-A67D-11d4-0001

where there is a globally-unique and privately generated identifier for the DM-FOO-integrated repository, and then a unique document identification following the "#"-separator.

There is a special case that each DMS Integration must support: The ODMNewDoc function returns a place-holder that is used temporarily until a SaveAs function is performed to establish the official ODMA Document ID for a new document.  Each DMS has its own implementation of this scheme.  For example,

::ODMA\DM-FOO\#B75B6FA0

with the number being a session-unique identifier for a pending document that the DMS is waiting for the application to define further.  Some DMS Integrations use even simpler schemes than this, having a specific constant ODMA Document ID that is used for every pending new document of that DMS.  (The hypothetical DM-FOO integration  does more work so documents from different NewDoc requests are separated when debugging and trouble-shooting.)

There are many other variations.  Here are some ODMA Document IDs produced by actual DMS Integrations:

::ODMA\ODMASAMP\11-15-50-99;
::ODMA\MHODMA\NULL;0;0
::ODMA\MHODMA\Clients;217303;1
::ODMA\GRPWISE\DXU-WG-DM.DXU_PO_DM1.WG3_CO_DM1:6302.1
::ODMA\WORLDOX\T:\DOCS\FOONARD\999\999\MISC\0647098.WPD

I will incorporate this into the new Q000014 FAQtip.

Does this help?

-- Dennis


Hard Hat Area (Construction Zone) You are navigating the
ODMA Interoperability Exchange.

created 2000-11-04-22:29 -0800 (pst) by orcmid
$$Author: Orcmid $
$$Date: 07-07-28 11:15 $
$$Revision: 23 $