如何从Alfresco脚本启动FTR复制作业

如何从Alfresco脚本启动FTR复制作业,alfresco,alfresco-share,Alfresco,Alfresco Share,与本主题一样,我已经配置了一个文件传输复制作业,可以手动运行该作业 现在,我想在脚本(不是Web脚本或Java)的末尾启动它。但是,我找不到关于如何实现这一点的文档或示例。我在官方文档中发现了一个传输对象,但是我没有找到更多的API细节 我的Alfresco版本是4.2。注意-我没有使用FTR,所以我没有实际测试它,但我知道类似的Alfresco是如何工作的 从脚本开始,您需要利用FTR作为一个操作可用的优势。如果您查看的源代码,您将看到操作名称是ftr action。(也由官方确认) 接下来,

与本主题一样,我已经配置了一个文件传输复制作业,可以手动运行该作业

现在,我想在脚本(不是Web脚本或Java)的末尾启动它。但是,我找不到关于如何实现这一点的文档或示例。我在官方文档中发现了一个传输对象,但是我没有找到更多的API细节


我的Alfresco版本是4.2。

注意-我没有使用FTR,所以我没有实际测试它,但我知道类似的Alfresco是如何工作的

从脚本开始,您需要利用FTR作为一个操作可用的优势。如果您查看的源代码,您将看到操作名称是
ftr action
。(也由官方确认)

接下来,您需要按照创建、配置并运行它

您需要执行以下操作:

var ftr = actions.create("ftr-action");
ftr.parameters["ftr"] = "name of the ftr to run";
ftr.execute(nodeRef);

这将创建一个FTR操作,使用要运行的FTR配置它,然后运行它直到完成
executeAsynchronously
如果您想在后台运行它,也可以使用它

我花了一段时间才弄明白,但最终我找到了两种解决方案

第一个解决方案

在关于该部件的官方文档中,有一个映射到
org.alfresco.repo.replication.script.ScriptReplicationService的
replicationService
,但它并没有说太多

如果您熟悉Alfresco,您可以通过进入Alfresco文件夹并打开
WEB-INF/classes/Alfresco/replication services context.xml
,找到impl类。我猜到了文件名,但您可以使用replicationService作为键搜索所有xml文件。以下是相关部分:

   <bean id="replicationService" class="org.alfresco.repo.replication.ReplicationServiceImpl" >
      <property name="actionService" ref="ActionService"/>
      <property name="scheduledPersistedActionService" ref="scheduledPersistedActionService" />
      <property name="replicationDefinitionPersister" ref="replicationDefinitionPersister" />
   </bean>
就这样,你的内容被转移了

var nodes = // your array of ScriptNodes
transfer.transfer('MyTargetName', nodes);
第二种解决方案

另一个不太容易的选项是调用
传输
根对象,这是复制服务所依赖的对象,它也可以工作,但是您必须手动构建要传输的ScriptNodes数组

var nodes = // your array of ScriptNodes
transfer.transfer('MyTargetName', nodes);

如果您更进一步,您也可以异步调用并进行回调,但我还没有对其进行实验。

uhm…我还没有查看源代码,但从Javascript控制台执行时出现了这个错误:“没有定义名为“ftr action”的bean”应该是这样的,这就是它们都调用它的原因。你安装了什么版本的FTR代码?我的Alfresco版本是4.2.f。然而,如果我查看源代码,我会注意到一条注释“仅用于测试目的”。这个类是否可能不被调用?Javascript控制台对调用某些类型的操作也有一些限制吗?您必须询问Philippe,但从我对代码的阅读来看,它应该可以用于您的目的。如果我调用
actions.registered
ftr操作,可能会在安装中查找ftr上下文文件,并查看该操作的定义。我将对此进行进一步调查,也许只是需要曝光。