Alfresco:手动更改节点属性的值

Alfresco:手动更改节点属性的值,alfresco,Alfresco,我是alfresco的新手,尽管进行了一些研究,但我没有发现如何做这个基本的事情:更改节点属性的值 它可以通过接口或webscript实现。这是出于测试目的(如果节点属性Y的值为Z,我将显示消息X),因此要进行测试,我需要能够手动快速修改属性的值 你通常是怎么做的 非常感谢你的帮助 编辑:我选择了skuro建议的OpenCMIS工作台解决方案。但是,当我使用它修改属性时,会出现以下异常: Exception thrown org.apache.chemistry.opencmis.common

我是alfresco的新手,尽管进行了一些研究,但我没有发现如何做这个基本的事情:更改节点属性的值

它可以通过接口或webscript实现。这是出于测试目的(如果节点属性Y的值为Z,我将显示消息X),因此要进行测试,我需要能够手动快速修改属性的值

你通常是怎么做的

非常感谢你的帮助

编辑:我选择了skuro建议的OpenCMIS工作台解决方案。但是,当我使用它修改属性时,会出现以下异常:

Exception thrown

org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Internal Server Error

    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:450)

    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:552)

    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getObjectInternal(AbstractAtomPubService.java:776)

at org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.getObject(ObjectServiceImpl.java:471)

at org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:393)

at org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:371)

at org.apache.chemistry.opencmis.client.api.Session$getObject.call(Unknown Source)

at ConsoleScript0.run(ConsoleScript0:7)
知道是什么原因吗

编辑2:服务器日志(显然节点ref未正确传输):


要在Alfresco Explorer上实现这一点,您需要添加包含属性的特性。之后,您还可以在Alfresco共享上找到properties文本框。

要在Alfresco Explorer上完成此操作,您需要添加包含属性的特性。之后,您还可以在Alfresco Share上找到properties文本框。

有多种方法可以完成此任务。我将在这里向您展示我将如何做到这一点,这将提供一定程度的灵活性

Javascript+

将以下Javascript文件放入
/Company Home/Data Dictionary/Scripts/testupdate.js

document.properties["my:property"] = "qwerty";
document.save();
通过调用以下url调用脚本命令处理器:

确保相应地更改URL和上下文路径查询参数

CMIS工作台

下载并打开,连接到alfresco(例如)。然后在菜单中单击
Console->-basictemplate-
项打开groovy控制台。填写以下脚本(将nodeRef更新为要更新的节点之一),然后单击“执行Groovy脚本”按钮:


有许多方法可以完成这项任务。我将在这里向您展示我将如何做到这一点,这将提供一定程度的灵活性

Javascript+

将以下Javascript文件放入
/Company Home/Data Dictionary/Scripts/testupdate.js

document.properties["my:property"] = "qwerty";
document.save();
通过调用以下url调用脚本命令处理器:

确保相应地更改URL和上下文路径查询参数

CMIS工作台

下载并打开,连接到alfresco(例如)。然后在菜单中单击
Console->-basictemplate-
项打开groovy控制台。填写以下脚本(将nodeRef更新为要更新的节点之一),然后单击“执行Groovy脚本”按钮:


谢谢,这个CMIS工具似乎非常有用。然而,当我试图通过属性编辑器或使用您描述的脚本更改属性时,我得到了一个非常不明确的异常,我将其添加到了我的问题中。如果您想使用javascript方式,您应该在share extras项目(我编写的无耻插件)中查看javascript控制台:谢谢,这个CMIS工具似乎非常有用。然而,当我试图通过属性编辑器或使用您描述的脚本更改属性时,我得到了一个非常不明确的异常,我将其添加到了我的问题中。如果您想使用javascript方式,您应该在share extras项目中查看javascript控制台(正如我编写的无耻插件):您连接的是哪个版本的Alfresco?这很奇怪,我正在运行workbench v0.5.0,运行的是Alfresco v3.4.0企业版,一切都很顺利。您有权访问Alfresco服务器日志吗?该异常与客户端异常类似。服务器上应该有一个匹配的异常,可以告诉您出了什么问题,您可以发布这个异常吗?我添加了服务器端异常。您的存储库中有一个自定义规则,可以在更新时触发。这将调用SelexArticleCreateUpdate操作,该操作以某种方式尝试检索具有空nodeRef的属性(getProperty())。检查您的自定义代码或禁用规则。您要连接到哪个版本的Alfresco?这很奇怪,我正在针对Alfresco v3.4.0企业运行workbench v0.5.0,一切都很顺利。您有权访问Alfresco服务器日志吗?该异常与客户端异常类似。服务器上应该有一个匹配的异常,可以告诉您出了什么问题,您可以发布这个异常吗?我添加了服务器端异常。您的存储库中有一个自定义规则,可以在更新时触发。这将调用SelexArticleCreateUpdate操作,该操作以某种方式尝试检索具有空nodeRef的属性(getProperty())。检查自定义代码或禁用规则。
import org.apache.chemistry.opencmis.commons.*
import org.apache.chemistry.opencmis.commons.data.*
import org.apache.chemistry.opencmis.commons.enums.*
import org.apache.chemistry.opencmis.client.api.*

// def cmis = new scripts.CMIS(session)
// println session.repositoryInfo.name
// cmis.printObjectSummary "/"
def node = session.getObject("workspace://SpacesStore/38dee96f-e028-4bed-821f-0ed25cc2ba07");
def newProps = ["cmis:name" : "qwerty"]
def oldVal = node.getProperty("cmis:name").getValue();
node.updateProperties(newProps);
def newVal = node.getProperty("cmis:name").getValue();

println oldVal + " -> " + newVal;