0

DotCMISを問題なく使用して、Alfresco と FileNet に接続しています。

IBM Connectionsアカウントに登録し、Web インターフェースを介していくつかのファイルを追加し、その CMIS エンドポイントhttps://greenhouse.lotus.com/files/basic/cmis/my/servicedocに接続しようとしました

GetRepositoriesこの URL では、次の 2 つのフォルダーを含む 1 つのリポジトリが提供されます。

My Files
My Folders

しかしGetObjectByPath("/My Files")、同じリポジトリで実行すると、次のようになります。

DotCMIS.Exceptions.CmisObjectNotFoundException was unhandled
 Message=Not Found
 Source=DotCMIS
 ErrorContent=<?xml version="1.0" encoding="UTF-8"?><lcmis:error xmlns:lcmis="http://www.ibm.com/xmlns/prod/sn/cmis"><lcmis:code>objectNotFound</lcmis:code><lcmis:message>EJPVJ9023E: Unable to find object at path /My Files</lcmis:message><lcmis:userAction></lcmis:userAction></lcmis:error>

リポジトリーのルートにフォルダーがあるにUnable to find object at path /My Filesもかかわらず、 IBM Connections は何と言っていますか?My Files

4

1 に答える 1

2

cmis:name プロパティ (「My Files」、「My Folers」) はローカライズされています。英語以外のユーザーは、これら 2 つのオブジェクトに対して異なる cmis:name プロパティ値を取得します。

これらのリソースから子をフェッチするには、各オブジェクトで返された cmis:path プロパティを使用してパスを構築するか、cmisra:pathSegment を使用してその親に対する相対パスを構築する必要があります。

たとえば、シナリオの「マイ ファイル」というラベルの付いたリソースの cmis:object には、次の内容があります。

<cmis:propertyString propertyDefinitionId="cmis:path"
 localName="cmis_path" displayName="Path" queryName="cmis:path">
 <cmis:value>/files</cmis:value>
</cmis:propertyString>

したがって、実際にユーザーのファイルを取得するには、呼び出すパスは次のとおりです。

GetObjectByPath("/files")

ユーザーのフォルダーを取得するために、呼び出すパスは次のとおりです。

GetObjectByPath("/collections")

ネットは、cmisra:pathSegment または cmis:path プロパティを使用してパスを構築することを保証するものであり、cmis:name はすべてのシナリオで有効ではない可能性があるためです (つまり、リポジトリに同じ名前の兄弟がある場合など)。

于 2012-10-10T18:46:32.810 に答える