使用CMIS浏览器绑定的SCP文档服务查询?

2020-08-27 14:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SCP文档服务专家,

我们想使用HANA XSJS(XS Classic,XSC)的SCP文档服务。 为此,我在Java中实现了代理桥 才能通过HTTPS和OAuth/基本身份验证调用文档服务。 使用该代理,我已经可以创建一个新文档并从HANA XS中读取它。

但是在上传文档之前,我想检查该业务对象是否已经存在文档。 基于我在文档中找到的示例 CMIS浏览器绑定Proposal 我添加了以下内容

 
<表格> 查询: <输入名称="声明" type ="文本" size =" 100" maxlength =" 1000" value =" SELECT * FROM cmis:document cmis:name ='00b83148-5d86-aebe-84e0-332ef729a0c3'"> 最大项目数: <输入名称=" maxItems"类型=" text" size =" 4" maxlength =" 8" value =" 100"> 跳过次数: <输入名称=" skipCount" type =" text" size =" 4" maxlength =" 8" value =" 0"> <输入type =" submit" value =" Go"/>

针对文档中提供的示例从HTML5应用程序访问文档服务 。 不幸的是,我返回的结果没有被我要查找的cmis:name过滤。 文件夹中的所有对象都将返回。

希望有人可以指引我正确的方向。

最诚挚的问候
格雷戈尔

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SCP文档服务专家,

我们想使用HANA XSJS(XS Classic,XSC)的SCP文档服务。 为此,我在Java中实现了代理桥 才能通过HTTPS和OAuth/基本身份验证调用文档服务。 使用该代理,我已经可以创建一个新文档并从HANA XS中读取它。

但是在上传文档之前,我想检查该业务对象是否已经存在文档。 基于我在文档中找到的示例 CMIS浏览器绑定Proposal 我添加了以下内容

 
<表格> 查询: <输入名称="声明" type ="文本" size =" 100" maxlength =" 1000" value =" SELECT * FROM cmis:document cmis:name ='00b83148-5d86-aebe-84e0-332ef729a0c3'"> 最大项目数: <输入名称=" maxItems"类型=" text" size =" 4" maxlength =" 8" value =" 100"> 跳过次数: <输入名称=" skipCount" type =" text" size =" 4" maxlength =" 8" value =" 0"> <输入type =" submit" value =" Go"/>

针对文档中提供的示例从HTML5应用程序访问文档服务 。 不幸的是,我返回的结果没有被我要查找的cmis:name过滤。 文件夹中的所有对象都将返回。

希望有人可以指引我正确的方向。

最诚挚的问候
格雷戈尔

付费偷看设置
发送
5条回答
SAP砖家
1楼 · 2020-08-27 15:16.采纳回答

您的表单中还有另一个问题。 查询必须作为POST而不是GET请求执行。 在/root集合上执行GET时,这被解释为对根文件夹的getObjectByPath()调用。 在这种情况下,查询参数将被忽略。 这样就得到了根文件夹的所有子级。 要进行查询,请尝试以下操作:

 
<!-在URL末尾省略/root !!! -> ...

还有一个要点:出于性能原因,请不要执行SELECT *,仅对您感兴趣的那些属性执行SELECT。某些属性的获取成本很高,并且会导致传输大量数据。

绿领巾童鞋
2楼-- · 2020-08-27 15:25

嗨,詹斯,

感谢您的指导。 我终于使用这种形式使它起作用:

 
<表格> 查询: <输入名称="声明" type ="文本" size =" 100" maxlength =" 1000" value =" SELECT cmis:contentStreamMimeType,cmis:name 来自cmis:document cmis:name ='7ee9bab7-9b9f-0c1c-c2c5-c45ee6d9857c' AND IN_FOLDER('LJz3ItlxLloqQCVDaAwK0a9ZRUXFwKT7Dcl7R_HKA1k')"> 最大项目数: <输入名称=" maxItems"类型=" text" size =" 4" maxlength =" 8" value =" 100"> 跳过次数: <输入名称=" skipCount" type =" text" size =" 4" maxlength =" 8" value =" 0">

最诚挚的问候
Gregor

callcenter油条
3楼-- · 2020-08-27 15:37

目前,我发现了使用Atom端点的解决方法。 我发送带有以下负载的POST:

 <?xml version ='1.0'encoding ='utf-8'?>
 
 选择cmis:contentStreamMimeType,cmis:name来自cmis:document cmis:name ='00b83148-5d86-aebe-84e0-332ef729a0c3'
 
 
 
 
d56caomao
4楼-- · 2020-08-27 15:32

@ Koray Yerse l-我也面临着 同样的问题。 你能解决吗?

Sreehari

jovirus
5楼-- · 2020-08-27 15:34

您也可以使用浏览器绑定。 我不完全了解您要达到的目标。 我想您的主要问题是您没有定义动作参数。 您必须将表单发送到CMIS代理应用程序。 请尝试:

 







查询: value =" SELECT * FROM cmis:document在哪里cmis:name ='Sprint7.pdf'">
最大项目: <输入名称=" maxItems" type ="文本" size =" 4" maxlength =" 8" value =" 100">
跳过计数: <输入名称=" skipCount" type =" text" size =" 4" maxlength =" 8" value =" 0">


URL的详细信息取决于您如何配置代理应用和风景/区域。 要测试该URL,可以将其放在浏览器中并检查是否收到响应,例如:

https://cmisproxyd053421trial .hanatrial.ondemand.com/cmisproxy/cmis/json/65ac5d94148a6dc5cf5d895/root?cmisselector = children

请注意,在您的示例中,浏览器收到JSON响应并显示结果。 通常,您可以在XMLHttpRequest中执行此操作,然后在代码中处理响应。

您可以在CP Document Service中查找 getChildren()中的文档

一周热门 更多>