从Alfresco的操作按钮获取文档路径和票证

时间:2016-02-16 17:37:24

标签: javascript alfresco alfresco-share alfresco-webscripts

我正在撰写自定义操作按钮,我希望进入 javascript

(function() {
    YAHOO.Bubbling.fire("registerAction",
    {
        actionName: "onActionVerify",
        fn: function JSC_onActionVerify(record) {
             var ticket = sessiontickets.getTicket();
        }
    });
})();

我点击操作按钮的文件路径如下:

  

/数据字典/电子邮件模板/活动/活动-mail.ftl

验证票证。

我在共享客户端进行此操作。

两者都有解决方案吗?

我的问题没有重复,因为我想要操作中文件的路径,而我关于门票的问题是传递给Web服务......我需要的不仅仅是假设“重复”的问题..

1 个答案:

答案 0 :(得分:3)

像往常一样,有不同的选择:

1)直接从浏览器调用您的外部服务。

在这种情况下,您可以生成故障单并将其传递给服务。该服务将使用它来访问露天。

要生成票证,您可以编写webscript。非常简单的webscript与ftl返回session.ticket

您不需要发送用户名和密码,因为您可以使用共享作为代理:您调用/ share / proxy / alfresco而不是/ alfresco / service,并且呼叫会自动进行身份验证。

2)浏览器调用Alfresco webscript(使用share作为代理),webscript调用您的外部服务。 webscript可以从会话中获取票证并将其传递给外部服务。

单击操作时接收事件的函数(如您在代码中所写的那样剪切)会收到一个参数:record。

此对象的一个​​字段是文件的nodeRef。 为什么你认为你需要这条路?是不是更容易直接使用这个nodeRef?

无论如何,如果你真的需要路径然后你选择了选项1),当你调用webscript获取票证时,也传递nodeRef并使webscript返回节点的路径和票证。所以你会打电话给:

/share/proxy/alfresco/your-custom-webscript?nodeRef=workflow://SpaceStore/xxx...

webscript会返回一个json,如:

{
    "ticket": "TICKET_121321_...",
    "qnamePath": "...."  
} 

如果您选择了选项2),请调用webscript传递nodeRef,如上例所示,webscript将获取必要的信息并将其传递给外部服务。