0

我需要创建一个 Azure 函数 (c#),它从 Project Online 站点读取项目的任务。之后,必须在不同 Project Online 站点的其他项目中创建这些任务。

我尝试使用逻辑应用程序来执行此操作,但 Project Online 连接器不允许我创建所有任务的属性。

是否有任何.net 库或任何方法可以做到这一点?

非常感谢。

4

1 回答 1

0

似乎没有可供我们使用的 c# 库。我在 java 代码中找到了一个可能对您的问题有帮助的方法,我们也可以在 azure 函数中编写 java 代码来实现您的要求:

    /**
     * Add a task to a given project
     * @param projectID The GUID of the project
     * @param feature The text of the task
     * @param startDate The start date of the task
     * @return true/false on success (see Communications.lastError for details if failed)
     * @throws IOException
     * @throws UnsupportedEncodingException
     * @throws JSONException 
     */
    public boolean addTask(String projectID, String feature, String startDate) throws IOException, UnsupportedEncodingException, JSONException
    {
        JSONObject postData = new JSONObject();
        JSONObject parms = new JSONObject();
        UUID uuid = UUID.randomUUID();
        parms.put("Id", uuid.toString());
        parms.put("Name", feature);
        parms.put("Start", startDate);
        postData.put("parameters", parms);
        CloseableHttpClient httpclient = buildClient();
        String projURL = "/_api/ProjectServer/Projects('" + projectID + "')";
        String digest = getFormDigestValue();
        String fullurl = baseURL + projURL + "/Draft/Tasks/Add";
        HttpPost post = new HttpPost(fullurl);
        post.setHeader("Accept", "application/json;odata=verbose");
        post.setHeader("Content-Type", "application/json;odata=verbose");
        post.setHeader("X-RequestDigest", digest);
        post.setEntity(new StringEntity(postData.toString(0)));
        CloseableHttpResponse response = httpclient.execute(post);
        response.close();
        httpclient.close();
        if (response.getStatusLine().getStatusCode() == 200)
        {
            GUID = uuid.toString();
            return true;
        }
        GUID = "";
        hasError = true;
        lastError = response.getStatusLine().getReasonPhrase();
        return false;
    }

有关上述方法的更多信息,您可以参考此页面

于 2019-12-13T06:56:18.260 回答