вопрос и код был обновленчтении значения свойства документа внутри поведения
Вопрос 1: будет с тем, что я заменить в коде фиктивную int attachmentid = 123;
ниже, чтобы прочитать пользовательское СБН свойства: OpenERPattachmentID1, чтобы получить значение id в нем? (Вопрос 1 был Ответил alfrescian!)
package com.openerp.behavior;
import java.util.List;
import java.net.*;
import java.io.*;
import org.alfresco.repo.node.NodeServicePolicies;
import org.alfresco.repo.policy.Behaviour;
import org.alfresco.repo.policy.JavaBehaviour;
import org.alfresco.repo.policy.PolicyComponent;
import org.alfresco.repo.policy.Behaviour.NotificationFrequency;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.apache.log4j.Logger;
//import com.openerp.model.scOpenERPModel;
public class DeleteAsset implements NodeServicePolicies.BeforeDeleteNodePolicy {
private PolicyComponent policyComponent;
private Behaviour beforeDeleteNode;
private NodeService nodeService;
public void init() {
this.beforeDeleteNode = new JavaBehaviour(this,"beforeDeleteNode",NotificationFrequency.EVERY_EVENT);
this.policyComponent.bindClassBehaviour(QName.createQName(NamespaceService.ALFRESCO_URI,"beforeDeleteNode"),
QName.createQName(scOpenERPModel.NAMESPACE,scOpenERPModel.ASSET_CONTENT_TYPE), this.beforeDeleteNode);
}
public setNodeService(NodeService nodeService){
this.nodeService = nodeService;
}
@Override
public void beforeDeleteNode(NodeRef node) {
System.out.println("beforeDeleteNode!");
try {
QName attachmentID1= QName.createQName("http://www.someco.com/model/content/1.0", "OpenERPattachmentID1"); // this could/shoul be defined in your OpenERPModel-class
int attachmentid = (Integer)nodeService.getProperty(node, attachmentID1);
//int attachmentid = 123;
URL oracle = new URL("http://0.0.0.0:1885/delete/%20?attachmentid=" + attachmentid);
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
//System.out.println(inputLine);
in.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
Вопрос 2: где я поставил DeleteAsset.class?
Я новичок в Java и Alfresco, мне было бы здорово, если бы кто-нибудь мог сказать мне, если alfresco-4.2.c/tomcat/webapps/alfresco/WEB-INF/classes/com/openerp/behavior/is правую папку для размещения скомпилированного DeleteAsset.class
Вопрос 3: Что нужно положить в NAMESPACE и ASSET_CONTENT_TYPE? Я бы хотел работать без класса модели, поскольку у меня еще не было учебника по этому вопросу, что я могу заменить scOpenERPModel.NAMESPACE,scOpenERPModel.ASSET_CONTENT_TYPE
?
Это мой полный заказ веб-файл контекста:
<?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>
Когда должно срабатывать ваше поведение? На данный момент привязан к MyModel.ASSET_CONTENT_TYPE - это то, что вам нравится? – alfrescian
@alfrescian он должен быть запущен в момент, когда документ удаляется из alfresco, поэтому идентификационный номер, хранящийся в одном из его свойств, может быть прочитан и передан через URL-адрес веб-службы на локальном хосте. – MrHappy
Я имею в виду, какой тип узла вас интересует -> Какой тип контента имеет ваш документ? – alfrescian