Thursday, January 03, 2013

Install DocService to Enable Edit Locally

Here a note which describes a solution for a user account with restricted rights:

The Edit Locally ActiveX will be installed based on following installation steps:

The browser will recognize that the KM DocService ActiveX has to be started. In case of the ActiveX isn't installed on the the PC, it will be downloaded from the KM server (...etc/docservice/docservice.cab) The browser will extract two DLLs from the docservice.cab file (docservice.dll and sapkmprogressplayer.dll) and register them on the local PC.

To see if the installation succeed you can open within the browser following dialog: Tools/Internet Options/Settings/View Objects, look for program file SAP KM DocService Control.

Registry keys in following areas will be created:

HKEY_CLASSES_ROOT:
HKCR\AppID\{5F8983A6-347C-46B9-BA7A-1B87E5DAE0BC}
HKCR\ProgressPlayerMod.ProgressPlayer
HKCR\ProgressPlayerMod.ProgressPlayer.1
HKCR\CLSID HKCR\TypeLib

HKEY_LOCAL_MACHINE:
HKLM\Software\Microsoft\Windows\CurrentVersion\ModuleUsage\C:/WINNT/Down Downloaded Program Files/DocService.dll
HKLM\Software\Microsoft\Code Store Database\Distribution Units\

When finishing these steps successfully the installed version can be located within the browser dialog Tools/Internet Options/Settings/View Objects SAP KM DocService Control and the KM DocService will start loading the document content from the KM server and starting the corresponding application for editing.

With restricted user accounts e.g. no access rights to create registry keys in the area of HKCR or HKLM etc., which lets the described installation fail, following installation procedure leads to success: Register the needed DLLs manually on the PC (e.g. via a shell command script) with a user account having enough access rights.

1. Create an installation folder (don't use /windows/system32) on the PC and copy the DLLs (docservice.dll and sapkmprogressplayer.dll) to it (extract them from docservice.cab with a tool e.g. winzip).
2. Open a command shell on this installation folder.
3. Unregister possible existing versions with the following command: "regsvr32 docservice.dll /U " and "regsvr32 sapkmprogressplayer.dll /U "
4. Register the both DLLs with: "regsvr32 docservice.dll" and "regsvr32 sapkmprogressplayer.dll "
5. If the two registration steps fail check the permissions to write into the system registry.
6. The installation folder do not need special permissions, the linkage to the DLLs will be done via the system registry.
7. Additionally the following setting is mandatory to succeed the installation: Disable the "ActiveX Version Check" function within the KM Configuration SystemAdministration->SystemConfig->KnowledgeManagement-> ->Configuration->ContentManagement->Utilities->Editing->LocalEditing-> ActiveX Version Check (Uncheck the checkbox)

Setting a different TEMP directory: In cases that it is problematic to use the standard %TEMP% directory, setting the environment variable SAPKM_USER_TEMP pinpointing to a corresponding directory path (e.g. X:\SHARES\USERS\xxx\CheckedOutDocuments) will be also supported. If the access to that directory fails the standard %TEMP% directory will be used as fallback.