0

我按照 msdn 的指示通过 JSOM 获取 WorkflowSubscriptionService。

使用 SharePoint 2013 工作流服务客户端对象模型: http: //msdn.microsoft.com/en-us/library/office/dn481315 (v=office.15).aspx

var clientContext = SP.ClientContext.get_current();
var workflowServicesManager = SP.WorkflowServices.WorkflowServicesManager.newObject(clientContext, clientContext.get_web()); 
var workflowSubscriptionService = workflowServicesManager.getWorkflowSubscriptionService();

这三行总是抛出错误: TypeError: Object [object Object] has no method 'get_context' message: "Object [object Object] has no method 'get_context'" stack: (...) get stack: function () { [本机代码]}设置堆栈:函数(){[本机代码]} 原型:错误

我找不到错误。这是一个已知的错误?

4

2 回答 2

5

由于尚未加载指定的对象,因此会发生这些错误。

为了使用 SharePoint 2013 工作流服务客户端对象模型,应加载以下 JSOM 库:

  • SP.js
  • SP.Runtime.js
  • SP.WorkflowServices.js

例如,您可以使用SP.SOD.executeFunc (SharePoint JavaScript 库) 或jQuery.getScript() (jQuery ibrary) 来确保已加载指定的文件。

例子:

var scriptbase = _spPageContextInfo.webAbsoluteUrl + "/_layouts/15/";    
$.getScript(scriptbase + "SP.js", function () {    
    $.getScript(scriptbase + "SP.Runtime.js", function () {    
        $.getScript(scriptbase + "SP.WorkflowServices.js", function () {

            var clientContext = SP.ClientContext.get_current();
            var workflowServicesManager = SP.WorkflowServices.WorkflowServicesManager.newObject(clientContext, clientContext.get_web()); 
            var workflowSubscriptionService = workflowServicesManager.getWorkflowSubscriptionService();    

            //... 

        });    
    });   
});    
于 2014-03-22T21:20:44.460 回答
0

确保在尝试获取上下文之前验证 CSOM 已加载。下面是一个示例,说明如何在加载 SharePoint 的 JS 后验证您的代码是否正在执行。在这种情况下,我还将登录到 CSOM 使用 jQuery 加载的 div。

$(document).ready(function()
{
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() 
    {
        $('div#log').append("SharePoint Client Object Model Loaded<br/>");
    });
});
于 2014-03-19T21:02:59.967 回答