Alfresco 从行为中读取文档属性的值

Alfresco 从行为中读取文档属性的值,alfresco,alfresco-share,Alfresco,Alfresco Share,问题说明和代码已更新 问题1:我应该用什么替换虚拟int attachmentid=123。 (问题1由Alfrecian回答!) 问题2:我应该将DeleteAsset.class放在哪里? 我是Java和Alfresco新手,如果有人能告诉我Alfresco-4.2.c/tomcat/webapps/Alfresco/WEB-INF/classes/com/openerp/behavior/是否是放置已编译的DeleteAsset.class的正确文件夹,我会非常高兴 问题3:我应该在名称空

问题说明和代码已更新

问题1:我应该用什么替换虚拟
int attachmentid=123
(问题1由Alfrecian回答!)

问题2:我应该将DeleteAsset.class放在哪里?

我是Java和Alfresco新手,如果有人能告诉我Alfresco-4.2.c/tomcat/webapps/Alfresco/WEB-INF/classes/com/openerp/behavior/是否是放置已编译的DeleteAsset.class的正确文件夹,我会非常高兴

问题3:我应该在名称空间和资产内容类型中添加什么? 我希望不使用模型类,因为我还没有这方面的教程,我应该用什么替换
scOpenERPModel.NAMESPACE,scOpenERPModel.ASSET\u CONTENT\u TYPE

这是我的完整自定义web上下文文件:

<?xml version='1.0' encoding='UTF-8'?>
 <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'
 'http://www.springframework.org/dtd/spring-beans.dtd'>

 <beans>
<!-- Registration of new models -->
<bean id="smartsolution.dictionaryBootstrap" parent="dictionaryModelBootstrap"
 depends-on="dictionaryBootstrap">
    <property name="models">
        <list>
                <value>alfresco/extension/scOpenERPModel.xml</value>
        </list>
    </property>
</bean>

<!-- deletion of attachments within openERP when delete is initiated in Alfresco-->
<bean id="deletionBehavior" class="com.openerp.behavior.DeleteAsset" init-method="init">
    <property name="nodeService">
        <ref bean="nodeService" />
    </property>
    <property name="policyComponent">
        <ref bean="policyComponent" />
    </property>
</bean>

alfresco/extension/scOpenERPModel.xml

嗯,您还有很长的路要走……您希望通过“oracle”连接实现什么

回答您的主要问题:如何阅读物业:

  • 不要将XML模型放在com/openerp/Model/scOpenERPModel中-它应该是一个java类,定义常量来访问自定义类型、特性和道具(示例:) 但这不是强制性的,它只是帮助你

  • 读取属性

  • 注入节点服务:

    private NodeService nodeService;
    public setNodeService(NodeService nodeService){
       this.nodeService = nodeService;  
    }
    
  • 在BeforeDelete节点中

    QName attachmentID1= QName.createQName("your sc NS uri", "OpenERPattachmentID1"); // this could/shoul be defined in your OpenERPModel-class
    int attachmentid = (Integer) nodeService.getProperty(node, attachmentID1);
    

  • 嗯,您还有很长的路要走……您希望通过“oracle”连接实现什么

    回答您的主要问题:如何阅读物业:

  • 不要将XML模型放在com/openerp/Model/scOpenERPModel中-它应该是一个java类,定义常量来访问自定义类型、特性和道具(示例:) 但这不是强制性的,它只是帮助你

  • 读取属性

  • 注入节点服务:

    private NodeService nodeService;
    public setNodeService(NodeService nodeService){
       this.nodeService = nodeService;  
    }
    
  • 在BeforeDelete节点中

    QName attachmentID1= QName.createQName("your sc NS uri", "OpenERPattachmentID1"); // this could/shoul be defined in your OpenERPModel-class
    int attachmentid = (Integer) nodeService.getProperty(node, attachmentID1);
    

  • 你的行为应该在什么时候被触发?当它绑定到MyModel.ASSET\u CONTENT\u TYPE时,您希望实现什么?@alfrescan它应该在文档从alfresco删除之前触发,因此,存储在其中一个属性中的ID号可以通过url读取并传递到本地主机上的Web服务。我的意思是,您对哪种类型的节点感兴趣->您的文档有哪种内容类型?@Alfrecian
    OpenERP Document cm:content
    从jeff potts的类型和方面教程中继承过来,您的行为应该是什么触发?当它绑定到MyModel.ASSET\u CONTENT\u TYPE时,您希望实现什么?@alfrescan它应该在文档从alfresco删除之前触发,因此,存储在其中一个属性中的ID号可以通过url读取并传递到本地主机上的Web服务。我的意思是,您对哪种类型的节点感兴趣->您的文档有哪种内容类型?@Alfrecian
    OpenERP Document cm:content
    从jeff potts的类型和方面教程中继承过来我正在访问一个已连接到web.py webservice。此Web服务使用该ID删除对外部数据库中已删除文档的引用。这部分工作已经很长时间了,顺便说一句,我找不到关于如何做上述工作的好教程/文档。我现在正在做饭,但今天我将实施你的建议。你能告诉我是否需要从我的代码中删除
    导入com.openerp.model.scOpenERPModel
    ?另外,我不确定你的sc NS uri是什么意思,你必须在content scopenerpodel.xml中定义一个模型uri-这就是你需要的uri名称空间uri
    ,所以在我的例子中
    QName attachment1=QName.createQName(“http://www.someco.com/model/content/1.0“,“开放式附件1”)
    ARGH它找不到在URL[file:/home/openerp/alfresco-4.2.c/tomcat/shared/classes/alfresco/extension/custom web context.xml]中定义的名为“deletionBehavior”的bean加载类[com.openerp.behavior.DeleteAsset]的该死类
    Error]:类文件或依赖类存在问题;嵌套的异常是java.lang.NoClassDefFoundError:com/openerp/behavior/DeleteAsset(错误名称:DeleteAsset)
    我正在访问连接到web.py webservice的url。此Web服务使用该ID删除对外部数据库中已删除文档的引用。这部分工作已经很长时间了,顺便说一句,我找不到关于如何做上述工作的好教程/文档。我现在正在做饭,但今天我将实施你的建议。你能告诉我是否需要从我的代码中删除
    导入com.openerp.model.scOpenERPModel
    ?另外,我不确定你的sc NS uri是什么意思,你必须在content scopenerpodel.xml中定义一个模型uri-这就是你需要的uri名称空间uri
    ,所以在我的例子中
    QName attachment1=QName.createQName(“http://www.someco.com/model/content/1.0“,“开放式附件1”)
    ARGH它找不到在URL[file:/home/openerp/alfresco-4.2.c/tomcat/shared/classes/alfresco/extension/custom web context.xml]中定义的名为“deletionBehavior”的bean加载类[com.openerp.behavior.DeleteAsset]的该死类
    Error]:类文件或依赖类存在问题;嵌套异常为java.lang.NoClassDefFoundError:com/openerp/behavior/DeleteAsset(错误名称:DeleteAsset)