Как создать тип контента сайта с идентификатором с помощью REST API - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу создать новый тип контента, который будет дочерним по отношению к существующему типу контента - Задача рабочего процесса (SharePoint 2013) с использованием REST API.Поэтому, когда я создаю запрос, я включаю родительский идентификатор типа контента в новый идентификатор.

Я попробовал следующий код.

const api = '/_api/web/contenttypes';

const requestBody = {
        '__metadata':   {
            'type': 'SP.ContentType',
        },
        'Description': 'This is content type',
        'Name': 'TestContentType',
        'Group': 'TestContentTypeGroup',
        'Id': {
               '__metadata':   {
                'type': 'SP.ContentTypeId'                            
                },          
            'StringValue': '0x0108003365C4474CAE8C42BCE396314E88E51F000x010056401AE39A088645AD0597364A428033'             
        }
    };

const requestHeaders = {
    'accept': 'application/json;odata=verbose',
    'content-type': 'application/json;odata=verbose',
    'X-RequestDigest': <digestValue>
};

const requestData = JSON.stringify(requestBody);

var executor = new SP.RequestExecutor(<AppWebUrl>);
executor..executeAsync({
        url: '<BaseUrl>' + api,
        method: 'POST',
        body: requestData,
        headers: requestHeaders,
        success: res => {
            console.log(res);                 
        },
        error: error => {
            console.log(error);
        }
    });

Он создает новый тип содержимого TestContentType но он наследует от Item Content Type и у него нет того идентификатора, который я указал в запросе.Он случайным образом генерирует любой идентификатор.

Может кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 05 апреля 2019

На самом деле это ошибка в REST API ...

Вот ссылка на проблему, поданную для библиотеки PnP JS, где добавление типа контента осуществляется так же, как и вы:https://github.com/pnp/pnpjs/issues/457

Патрик Роджерс также подал в Microsoft проблему для ее решения: https://github.com/SharePoint/sp-dev-docs/issues/3276

Это означает, что, к сожалению, пока нет способа сделать это с REST.Что вы можете сделать, так это активировать проблему, чтобы сделать ее более заметной и надеяться, что она скоро будет решена.

...