更新自定义选取列表的成功因素

2024-09-30 05:24:26 发布

您现在位置:Python中文网/ 问答频道 /正文

使用邮递员版本7.34.0(7.34.0)
从技术上讲,我在应用程序中使用Django/Python,但我使用Postman进行测试,在调用成功因素ATS时,我将使用相同的负载。
成功因素的文档:link

我正在尝试用该候选实体上的自定义Picklist更新候选实体,尤其是自定义PicklistOptions
我得到了每个选择列表的值列表,如下所示:

Field ID: "myCustomPicklist" (used as name field in the payload)
Field label: Some Label (irrelevant - used for UI display)
Field Type: Picklist 

对于选择列表的每个选项:

...
PicklistOption value: <Str, "some_value"> (value string displayed in the UI)
PicklistOption external code: <Str, "picklistOption_external_code">
PicklistOption external ID: <Int, picklistOption_id >
...

我能够使用PicklistOption外部ID更新候选人的Picklist字段,方式如下:
POST: https://<subdomain>.successfactors.eu/odata/v2/upsert
有效载荷:

{
    "__metadata": {"uri": "Candidate(<candidate_id>)"},
    "firstName": "some_name",
    "lastName": "some_last_name",
    ...
    "myCustomPicklist": {
        "__metadata": {"uri": "PicklistOption('<picklistOption_id>')"},
        "optionValue":"<picklistOption_id>"
    }
}

答复:

...
<d:status>OK</d:status>
<d:editStatus>UPDATED</d:editStatus>
<d:message>Candidate has been updated successfully</d:message>
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">204</d:httpCode>
...

问题:
我知道PicklistOption.external-id是DB的ID,这意味着我必须获得不同的ID才能在不同的环境中进行交互-这将迫使我创建一个特殊的映射,我不希望这样。

我的问题:
我如何使用picklistOption_external_code来代替 我正在寻找正确的语法,因为我在文档中找不到它。
这将允许我有一个单一的字段映射,因为代码(命名)在不同环境之间不会改变,而ID会改变。

谢谢大家!

编辑1
这项工作:

"myCustomPicklist": {
    "__metadata": {"uri": "PicklistOption('<picklistOption_id>')"},
    "externalCode":"<picklistOption_external_code>"
}

但是我找不到替换metadata中最后出现的picklistOption_id的语法

编辑2
这也行得通。嗯,差不多:

"myCustomPicklist": {
    "__metadata": {"uri": "PicklistOption('<PicklistOption_value>')"},
    "externalCode":"<picklistOption_external_code>"
}

这似乎通过了验证:

<d:message>Candidate has been updated successfully</d:message>

PicklistOption_valuePicklistOption的合法描述符-但是SuccessFactors中的UI似乎用null值覆盖字段的显示内容。
我验证了如果我使用假PicklistOption_value,我会看到一个错误:

<d:message>Candidate upsert failed: myCustomPicklist invalid,  with the index 0</d:message>

Tags: idfieldmessage列表valuecodeuricandidate
1条回答
网友
1楼 · 发布于 2024-09-30 05:24:26

对于任何给定的SAP SuccessFactors实体(表),选择列表必须与OptionID或externalCode一起使用的方式由SAP在产品中预定义

对实体使用OData字典,对于字段的导航数据,请检查类型列。它将是:PicklistOption或PickListValueV2

见SAP KBA 2773713:https://launchpad.support.sap.com/#/notes/2773713

正如您所指出的,如果使用OptionID,那么您的解决方案必须在不同的SuccessFactors实例中考虑不同的数值

相关问题 更多 >

    热门问题