Не получить проект с помощью JSOM PS.ProjectContext get_projects - PullRequest
0 голосов
/ 30 апреля 2020

В веб-приложении Microsoft Project Server Я пытаюсь получить список проектов, используя JSOM .

Я следую коду в этих примерах:

Это то, что я запускаю для проверки:

var projectContext = PS.ProjectContext.get_current();
var projects = projectContext.get_projects();
projectContext.load(projects, "Include(Name)");
projectContext.executeQueryAsync(IterateThroughProjects, handleError);

function IterateThroughProjects(response) {
    var enumerator = projects.getEnumerator();
    var i = 0;
    while (enumerator.moveNext()) {
        i++;
        var project = enumerator.get_current();
        console.log("Name: " + project.get_name());
    }
    console.log("Done. " + i + " projects found.");
}

function handleError(sender, args) { 
    console.log("Request failed: " + args.get_message()); 
}

Сценарий выполняется без ошибок, но результат всегда Готово. Найдено 0 проектов. , хотя в PWA есть опубликованные проекты.

Это ответ, который я получаю от сервера:

[
    {"SchemaVersion":"15.0.0.0","LibraryVersion":"16.0.4756.1000","ErrorInfo":null,"TraceCorrelationId":"fcde4d9f-9755-2050-31d1-da0833d8ce31"},
    362,
    {"_ObjectType_":"PS.ProjectCollection", "_Child_Items_":[]}
]

Я пытался использовать Project Online , Project Server 2013 и Project Server 2016 .

Есть ли какие-либо настройки в SharePoint или PWA, которые мне не хватает? Кто-нибудь с такой же проблемой?

1 Ответ

0 голосов
/ 05 мая 2020

Моя проблема заключалась в том, что я запускал этот код из приложения SharePoint , а манифест приложения не включал разрешения для проектов (http://sharepoint/projectserver/projects -> Чтение):

<?xml version="1.0" encoding="utf-8"?>
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest" ...>
    <Properties>...</Properties>
    <AppPrincipal>...</AppPrincipal>
    <RemoteEndpoints>...</RemoteEndpoints>
    <AppPermissionRequests>
        ...
      <AppPermissionRequest Scope="http://sharepoint/projectserver/projects" Right="Read" />
    </AppPermissionRequests>
</App>

После добавления разрешения я получаю список проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...