成功因素-更新自定义选择列表

问题描述

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

我正在尝试使用该候选实体上​​的 custom 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 >
...

我能够使用Picklist外部ID通过以下方式更新候选人的PicklistOption字段:
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是数据库中的ID,这意味着我必须获得一个不同的ID才能在不同的环境中进行交互-这将迫使我创建特殊的地图,而我不想那

我的问题:
我该如何使用picklistOption_external_code呢?
我正在寻找正确的语法,因为我无法在文档中找到它。
这样一来,我就可以拥有一个单一的字段映射,因为代码(命名)在环境之间不会更改,而ID会更改。

谢谢!

编辑1
这有效:

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

但是我找不到替换picklistOption_id中的metadata的语法

编辑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>

解决方法

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

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

请参阅 SAP KBA 2773713:https://launchpad.support.sap.com/#/notes/2773713

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...