目前我正在解决 SAP Analytical Cloud 中的一个问题。我正在尝试通过 HTTP 请求加载包含主数据的维度。为此,我在我们的测试系统上使用 Postman。我们不想在 sac 中手动创建导入作业。
在 SAC 中创建了 OAuth 2.0 API 客户端。这用于访问 x-csrf-token。使用该令牌,可以使用以下链接创建作业并将其加载到 publicDimension ALM_TEST_SHORTSTRING 上。我尝试使用 JSON 和 CSV 格式加载。两者都有效并且工作已加载。
创建就业岗位的 POST:https://(tenant)/api/v1/dataimport/publicDimensions/Xxxxxxxxx:ALM_TEST_SHORTSTRING/publicDimensionData
使用正文中的数据填充作业的 POST: https://(租户)/api/v1/dataimport/jobs/cc1daaaf-2376-4c55-9cf6-83bec0fbb11c
正文(JSON):
{
"Mapping":{
"ID":"ID",
"Description":"Description"
},
"DefaultValues":{
"ID":"ST_99"
},
"Data":[
{
"ID":"ST_05",
"Description":"Berlin"
}
]
}
这里映射和DefaultValues可以省略。
正文(CSV):
ID,Description
ST_05,Berlin
加载响应如下。因此,这份工作充满了记录。
{
"totalNumberRowsInCurrentRequest": 1,
"upsertedNumberRows": 1,
"failedNumberRows": 0,
"failedRows": [],
"validateJobURL": "https://tenant/api/v1/dataimport/jobs/cc1daaaf-2376-4c55-9cf6-83bec0fbb11c/validate",
"runJobURL": "https://tenant/api/v1/dataimport/jobs/cc1daaaf-2376-4c55-9cf6-83bec0fbb11c/run",
"totalNumberRowsInJob": "1"
}
最后在“validate”和“run”过程中出现如下错误:
{
"error": {
"code": "2069c8ab-2fbc-484f-4e8a-e112f9374ce2",
"message": "Failed during validation for job [2901]"
}
}
正文为空,授权和令牌均有效,对于标头,仅设置了 x-csrf-token 和 Postman 的默认标头。
为什么验证失败,作业执行也失败?我在这里测试和尝试了很长时间,但还没有想出解决方案。
提前非常感谢, 阿尔伯特
检查本博文中的 Python 运算符以创建 post call 部分。 x-csrf-token 标头还不够。您还需要转发收到的 cookie。遗憾的是,该文档没有在任何地方指定这一点。