我需要创建一个 Azure 函数 (c#),它从 Project Online 站点读取项目的任务。之后,必须在不同 Project Online 站点的其他项目中创建这些任务。
我尝试使用逻辑应用程序来执行此操作,但 Project Online 连接器不允许我创建所有任务的属性。
是否有任何.net 库或任何方法可以做到这一点?
非常感谢。
我需要创建一个 Azure 函数 (c#),它从 Project Online 站点读取项目的任务。之后,必须在不同 Project Online 站点的其他项目中创建这些任务。
我尝试使用逻辑应用程序来执行此操作,但 Project Online 连接器不允许我创建所有任务的属性。
是否有任何.net 库或任何方法可以做到这一点?
非常感谢。
似乎没有可供我们使用的 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;
}
有关上述方法的更多信息,您可以参考此页面。