【问题标题】:How to create site content type with id using REST API如何使用 REST API 创建带有 id 的网站内容类型
【发布时间】:2021-04-26 19:24:41
【问题描述】:

我想使用 REST API 创建新的内容类型,它将是现有内容类型 - 工作流任务 (SharePoint 2013) 的子级。 因此,当我创建请求时,我会在新 ID 中包含父内容类型 ID。

我已经尝试了以下代码。

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 内容类型并且它没有我在请求中提供的相同 ID。它随机生成任何id。

有人可以帮忙吗?

【问题讨论】:

    标签: sharepoint-online


    【解决方案1】:

    这实际上是 REST API 中的一个错误...

    这是针对 PnP JS 库提交的问题的链接,其中添加内容类型的实现方式与您所做的相同:https://github.com/pnp/pnpjs/issues/457

    Patrick Rodgers 还向 Microsoft 提交了一个问题来解决它:https://github.com/SharePoint/sp-dev-docs/issues/3276

    这意味着,不幸的是,目前还没有办法使用 REST 来做到这一点。 您可以做的是对问题进行投票以提高其知名度,并希望它会尽快得到解决。

    【讨论】:

      【解决方案2】:

      据我所知,这个错误仍然存​​在。我找到了可以帮助无法使用 CSOM 或 JSOM 的人的解决方法。您可以使用 Site script to define new site content type and specify parent content type 名称或 ID。您可以将此站点脚本包装在站点设计中并通过 REST API 应用此站点设计。 不幸的是,仅当您在不同站点上创建相同的站点内容类型时,此解决方法才有用。当然,您可以为每种内容类型创建多个站点脚本和站点设计。

      【讨论】:

        猜你喜欢
        • 2014-05-17
        • 1970-01-01
        • 2017-10-08
        • 2021-11-03
        • 2020-09-02
        • 2023-03-29
        • 2013-02-04
        • 2012-09-20
        • 2011-11-26
        相关资源
        最近更新 更多