点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在做一个场景,我需要使用Odata从SFSF LMS中获取数据并将报告发送给第三方。 在使用SAP CPI Successfactor适配器进行get调用时,出现如下错误:
错误详细信息:" com.sap.gateway.core.ip.component.exception.ODataProcessingException:HTTP/1.1 500内部服务器错误,原因:org.apache.olingo.client.api.communication .ODataServerErrorException:HTTP/1.1 500内部服务器错误 "
我要呼叫的实体是:
端点:/learning/odatav4/public/user/learningplan-service/v1
实体:LearningItemDetails,LearningItemDocuments
端点:/learning/odatav4/public/user/learningHistory/v1
实体:学习历史,学习历史等。
示例适配器屏幕截图:
有人可以帮助我解决实际问题吗?
此致
苏维克
(14.1 kB)
苏维克,你好
对于您的情况,这不是一个好的设计/解决方案,我完全同意。 这对于某些呼叫可能有用,但是当您需要共享所有数据时,这根本不是一个好主意。
由于要与第三方共享,因此可以在SuccessFactors中使用LMS模块的导出功能。 可以将这些数据导出为.CSV文件,该文件可以将该文件放置在Successfctors SFTP上。 将文件存储到此处后,您可以将文件从SFTP提取到CPI流中。 然后,在此流程中,您可以使用CSVto X转换器并最后以您喜欢的格式共享它。 是JSON XML和电子邮件或其他内容。 您可以安排此时间,甚至可以公开CPI的终结点(可能与之一起使用API管理),然后您的流可以充当中间件来从SFTP中获取数据,并以数据作为响应。
亲切的问候,
干
您好干范范伯格(Dries Van Vaerenbergh)
感谢您分享您的想法。 我还向SF LMS团队询问了同样的问题,以生成报告,然后根据要求进行CPI转换。
此致
苏维克
嗨苏维克,
您首先尝试使用Postman之类的工具执行请求吗?
我想说的是,先仔细检查一遍,看看是否可行。
此SAP帮助文档描述了"学习OData API"的使用情况:
https://help.sap.com/viewer/ 5aab9bef78fc4c4fa199c1f7aa142720/1908/zh-CN/ed0b38ff14e74e1891a7170405e102a6.html
Ringarding LearningItemDetails如果我没有记错的话,我认为必须通过以下过滤器
如果您可以在Postman中进行这样的呼叫,请尝试在CPI中尝试,也许可以像本博客中那样首先使用HTTP尝试(并使用OAuth):
https://blogs.sap.com/2019/11/17/cloud-platform-integration-oauth2-credentials/
之后,您可以尝试返回到OData请求。 但是我认为您的情况下可能缺少HTTP强制过滤器。
亲切的问候,
干
嗨,干范范伯格(Dries Van Vaerenbergh),
感谢您的回复。
是的,我没有应用任何过滤条件。 应用过滤器后,我仅获得一项的详细信息。 但是要求是获取对象LearningItemDetails的所有记录并将其发送给第三方。 所以我的问题是如何实现这种情况? 我尝试了多种方法,但是没有运气。 请让我知道我如何克服这种情况?
我也尝试了以下情形。 在这里,我也无法使用过滤器获取数据。 如果我们无法在没有过滤器的情况下获取数据,那么通过SAP CPI进行集成将是一项挑战。
请在这里建议。
此致
苏维克
此致
苏维克
嗨苏维克,
前段时间,我自己使用了这些Learning API,并且有类似的要求。 这里的问题是学习API非常有限,您几乎必须对每个请求都应用过滤器。 您可以通过遍历请求并根据参数构建请求来解决。 这将意味着很多呼叫,这根本不是最佳实践。 或者,您构建一些逻辑并将结果缓存在NodeCache中,或者将必要的数据复制到其他位置,然后在cpi中使用它。 解决方法有很多可能性,但是在这种情况下,它正在寻找性能最佳的方法。
遗憾的是这些API是如此有限。
亲切的问候,
干
您好干范范伯格(Dries Van Vaerenbergh),
要解决的变通方法是,我需要为每个调用构建参数,因为结果是构建一个流或文件的调用数量很大。 因为对于每个项目,每个用户或参数值的每种组合,我都需要调用SF LMS Odata API并逐个捕获记录,这在我看来非常复杂,而且设计也不佳。 由于LMS API每次调用仅返回一项/记录。
您对此有何看法?
此致
苏维克
一周热门 更多>