Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
Works in 7.5 and 8.2 BUT NOT in 8.1.111 ???
TheGDog
Our application uses the IManage WorkSite 7.5.1 SDK in order to be able to allow the users to Browse into their DMS server.... choose a document.... return a DocID moniker string... we save that string within our app.
Once that string is saved within our app... we use the SDK to allow users to open that document (with a click of a button from within our app) from within their DMS server by using the DocID moniker string.
We have one client which uses WorkSite v8.1.111. For them... at a certain point in the execution of this same code...
an exception occurs stating only "Not implemented."
***This same client on a test workstation installed DeskSite 8.2 and the same linkage code now worked properly without error. I also confirmed this on my development machine by setting up a v8.2 server in-house.
Since the release of WorkSite v8.2 is fairly new. Their IT staff is reluctant to perform the rollout of v8.2 to all the desktop machines just yet.
Meanwhile... our client is stuck unable to utilize this functionality we've worked into our app.
I'm going to post a snippet of code from our stand-alone simple tester app.... the inner-most procedure where the exception occurs. What I would like is for somebody to help [show me]/[explain to me] why my code works against a WorkSite v7.5 server and against a WorkSite v8.2 server.... but not against a WorkSite v8.1.111 server.
////////////////////////////////////
function DoGetDocumentPrim: Boolean;
begin
WriteLog('OpenIManageDocument->DoGetDocumentPrim: Getting document from DMS.');
Result := True; // default
try
WriteLog('OpenIManageDocument->DoGetDocumentPrim: Getting preferred database.');
imNRTDatabase := imNRTSession.PreferredDatabase;
WriteLog('OpenIManageDocument->DoGetDocumentPrim: Getting preferred database name.');
txtPreferredDB.Text := imNRTDatabase.Name;
WriteLog('OpenIManageDocument->DoGetDocumentPrim: Preferred database name is ' + txtPreferredDB.Text);
// If the user specified a DMS Document number then
// try to use that to find the document.
/////////////////////////////////////////////////////
if Length(txtDocNum.text) > 0 then begin
WriteLog('OpenIManageDocument->DoGetDocumentPrim: Using user provided document number to retrieve the document.');
imNRTDocument := imNRTDatabase.GetDocument(txtDocNum.text,
txtVersionNum.text);
// OR... if they've already performed the Browse... and found
// the Document they wanted we'll use the Document.ID property
// to find the specific document instead.
//////////////////////////////////////////////////////////////
end else begin
if Length(sFNRLContents) > 0 then begin
// NOTE: The following is in excerpt from the IMANCOM.HLP file:
{ // ========================
// NRTDMS.GetObjectByID() =
// ========================
// Description :
//
// This method can be used to get an object based on its
// unique ID property. This method requires a connection
// to the same server from which the ID came.
// To regenerate an object independent of server name, use
// the GetObjectBySID method.
//
// The type of object returned by the method will vary,
// depending on what object is referenced by the ID.
// If the object already exists, the method will return
// the existing object – it will not create a new instance
// of the indexed object.}
//////////////////////////////////////////////////////////
WriteLog('OpenIManageDocument->DoGetDocumentPrim: Getting document (NRTDMS.GetOBjectByID(sNRL)) using the nrl [' + sFNRLContents + ']');
//imNRTDocument := imNRTDMS.GetObjectBySID(sFNRLContents);
imNRTDocument := imNRTDMS.GetObjectByID(sFNRLContents);
end;
end;
except
on E: Exception do begin
ShowMessage('DoGetDocumentPrim'+#13#10+ E.Message);
Result := False;
end;
end;
if Result then begin
mmoDocID.Lines.Clear;
mmoDocID.Lines.Add(imNRTDocument.ID);
end;
end; // DoGetDocumentPrim
__________________
Gary D. Hart
Software Engineer
CompuLaw, LLC
Find more posts tagged with
Comments
jny
Which method, GetDocument or GetObjectBySID, throws the "Not Implemented" error? Is this late-bound code? If so, is the dms object created as IManage.NRTDMS or IManage.ManDMS? If not, is it C#. It looks like it is but not sure. If it's the latter, did you reference the interop dll or the actual registered imanage.dll. Would you send in your DLL as an attachment so that I can try to reproduce it?