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

Get document path and ticket from action button of Alfresco

我正在写一个自定义操作按钮,我想进入我的javascript:

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

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

/Data Dictionary/Email Templates/activities/activities-email.ftl

以及身份验证的票据。

我正在共享客户端上做这个。

两者都有解决方案吗?

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

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

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

在这种情况下,您可以生成票证并将其传递给服务。该服务将使用它来访问 alfresco。

要生成票证,您可以编写网络脚本。非常简单的 webscript,带有 returns session.ticket

的 ftl

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

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

点击操作时接收事件的函数,如您在代码片段中所写,接收参数:记录。

这个对象的字段之一是你的文件的nodeRef。 为什么你认为你需要这条道路?直接用这个nodeRef不是更方便吗?

无论如何,如果你真的需要路径然后你选择了选项 1),当你调用 webscript 获取票证时,还要传递 nodeRef 并使 webscript return 一起成为节点的路径与门票。所以你会调用:

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

Webscript 会 return 一个 json 像:

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

如果您选择选项 2),调用传递 nodeRef 的网络脚本,如前例所示,网络脚本将获取必要的信息并将其传递给外部服务。