SAP Cloud SDK for JavaScript:自定义查询参数

2020-08-21 03:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好,和往常一样,在我逐步浏览...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,
和往常一样,在我逐步浏览SDK的过程中又提出了另一个问题。

我正在使用SDK来使用SuccessFactors OData API,并且运行良好。 它是一个非常强大的工具,利用它可以完成许多令人惊奇的事情。
但是,我遇到了一个非常特殊的情况,目前SDK尚不支持(我必须说)。

在SuccessFactors中,我们可以查询有效日期的实体,但是标准行为是仅返回实际记录(=到今天为止有效的记录),除非URL中存在两个自定义查询参数:

 .../EmpJob?$ select = startDate,companyNav/externalCode&$ format = json&fromDate = 2000-01-01&toDate = 9999-12-31 

fromDate toDate 这两个参数指示API实际获取属于指定时间间隔的所有记录。

从SDK fluent API中,我们可以通过以下方式构造所构建查询的完整URL:

 EmpJob.requestBuilder()。getAll()。select(...)。filter(...)。build({})。url()

因此,可以通过串联将自定义查询参数轻松添加到其中。

问题是:我该如何使用新定义的URL拍摄请求? 还是更好。。。有没有办法在构建请求时注入自定义查询参数?

非常感谢

罗伯托。

5条回答
路亽曱_Ryan
2020-08-21 04:15

亲爱的 Marika Marszalkowski
I 做一个快速而肮脏的测试。 似乎有些东西起作用,但后来我被卡住了。

我首先从请求构建器获取完整的URL:

常量odataRequest:ODataRequest > =
       等待EmpPayCompRecurring.requestBuilder()。getAll()。select(
         EmpPayCompRecurring.PAY_COMPONENT,
         EmpPayCompRecurring.PAYCOMPVALUE,
         EmpPayCompRecurring。START_DATE,
         EmpPayCompRecurring.FREQUENCY_NAV.select(
           FoFrequency.ANNUALIZATION_FACTOR
         )
       ).filter(EmpPayCompRecurring.USER_ID.equals(userId))
        .build({destinationName:this.configService.get ('ACTIVE_DESTINATION')}); 

从请求中,URL和标头可以通过以下方式轻松获取:

 const fullUrl =`$ {odataRequest.url()}&fromDate = 1970-01-01&toDate = 9999-12-31`;
     const headers = await odataRequest.headers(); 

Axios请求:

 const odataResult:axios.AxiosResponse  =等待axios.default.get(fullUrl,{
        方法:odataRequest.config.method,
        标头:标头
     }); 

我能够得到结果,响应就在那里。
但是现在我陷入了对实体反序列化的困扰……我尝试使用:

 deserializeEntity(d,EmpJob.requestBuilder()._ entityConstructor);
 

但是它失败了:

错误无法读取未定义的属性'_allFields'


我相信我做错了:)

希望你能指出我的方向!

谢谢,
罗伯托。

一周热门 更多>