Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用PSI或CSOM模拟EPM_C#_Csom_Psi_Epm - Fatal编程技术网

C# 使用PSI或CSOM模拟EPM

C# 使用PSI或CSOM模拟EPM,c#,csom,psi,epm,C#,Csom,Psi,Epm,对于一个项目,我必须将外部程序的小时数同步到EPM。无需使用EPM 2013的客户端对象模型或PSI。但是因为微软在他们的网站上为所有新的应用推荐了CSOM,所以我尝试用CSOM实现它。我想测试的第一件事是利用以下代码获得所有时间:(它不是最漂亮的代码,因为它是用于测试目的的) 但是使用上面的代码,我只得到当前登录用户的代码,即使该用户有权在几个小时内查看其他用户。但我想看到的是所有在EPM中为特定项目计划预订时间的人员的所有时间。因此,我可以稍后使用此信息将时间从外部程序同步到EPM。我想我可

对于一个项目,我必须将外部程序的小时数同步到EPM。无需使用EPM 2013的客户端对象模型或PSI。但是因为微软在他们的网站上为所有新的应用推荐了CSOM,所以我尝试用CSOM实现它。我想测试的第一件事是利用以下代码获得所有时间:(它不是最漂亮的代码,因为它是用于测试目的的)

但是使用上面的代码,我只得到当前登录用户的代码,即使该用户有权在几个小时内查看其他用户。但我想看到的是所有在EPM中为特定项目计划预订时间的人员的所有时间。因此,我可以稍后使用此信息将时间从外部程序同步到EPM。我想我可以通过模仿来解决这个问题,但是:

 ProjectContext projContext = new ProjectContext("http://tfspsdemo/PWA/"); 
 projContext.Credentials = new NetworkCredentials("username", "password");
但这不是我想要的,因为我必须为每个用户都这样做。而且我也不能得到所有用户的密码

现在是否有人提出解决此问题的解决方案和/或任何建议?使用EPM PSI的解决方案也值得赞赏


提前谢谢

Proect server 2013中有两种模式。Proect服务器和SharePoint模式。我能够在SharePoint模式下运行上述内容,但遗憾的是,即使在传递凭据后,我也无法读取时间表周期,因为它在Project server模式下显示CSOMUnkownUser。您当前在服务器上运行的是什么模式这可能有点晚了,但要在提供商/自动托管应用程序中访问此类数据,您需要通过OData访问sharepoint服务器。CSOM仅用于提供当前用户上下文中的数据。

在Project Sever 2016/Project Online中尚未实现模拟。请在这里投票:

谢谢,
Werner

能否通过OData提供一些参考链接?
 ProjectContext projContext = new ProjectContext("http://tfspsdemo/PWA/"); 
 projContext.Credentials = new NetworkCredentials("username", "password");