我想使用 SoftLayer_User_Customer::editObjects 更新大量用户的 parentID。但面临如下问题

I want to update parentID of bulk of user using SoftLayer_User_Customer::editObjects. But facing issue as below

我想使用 SoftLayer_User_Customer::editObjects 更新大量用户的 parentID。但面临如下问题:

{ 消息: { 错误:'属性 \'parentId\' 对 \'SoftLayer_User_CustomerArray\' 无效。', 代码:'SoftLayer_Exception_Public'}, 状态码:500 }

我的代码在 nodejs 中

slClient
    .auth(slUserID, slApiKey)
    .path('User_Customer', childIds, 'editObjects')
    .parameters([{"parentId":parentID}])
    .put()
    .then(res => {
        resolve(res);
    })
    .catch(err => {
        reject(err);
    });  

这里的 childIds 是软层 ID 的数组。

SoftLayer_User_Customer::editObjects 方法不需要 header 中的 InitParameter,所以我建议删除路径中的 childIds

您要编辑的每个用户的 ID 必须位于参数部分,如下例所示:

{
    "parameters":[
        [
            {
                "id": 1111111,         <----- user id you want to edit
                "parentId": 6666666    <----- the new parent id
            },
            {
                "id": 2222222,
                "parentId": 6666666
            }
        ]
    ]
}

以下代码对我有用: 这里的输入是 JSON 对象的数组,其中包含 SL ID 的详细信息。我在我的 JSON 对象中仅保存这些 SL ID 的 ID,如下所示。

    let childIds = [];
    for(var i = 0; i < aInput.length; i++) 
    {
            var myObj = new Object();
            myObj.id = aInput[i].id;
            myObj.parentId = parentID;
            childIds.push(myObj);
    }

    console.log(childIds);
    slClient
    .auth(slUserID, slApiKey)
    .path('User_Customer','editObjects')
    .parameters([childIds])
    .put()
    .then(res => {
        resolve(res);
    })
    .catch(err => {
        reject(err);
    });