SAP OData 生成器为导航条目生成错误的 URL

问题描述

使用 SAP V2 代码生成器,我们为成功因素创建了类。

为调用导航实体的请求生成 URL 时,它会引发 500 错误。

PerPersonFluentHelper q = service.getAllPerPerson().select(PerPerson.TO_EMAIL_NAV);

生成$select=emailNav/*&$expand=emailNav

尝试运行结果

message lang="en-US">无法理解带有字符序列的 API 请求:emailNav/* 在字符位置编号:9 个无效字符:*

当/如果我尝试对实体使用 ALL_FIELDS 静态字段时,我会遇到类似的问题。

如果我删除 /* 并将 url 粘贴到浏览器中,它工作正常。

我们正在寻找任何解决方案。已经花了几天时间阅读博客和进行搜索。

是否有关于使用生成的类的高级文档?

提前致谢。

找到了解决方案 -- 通过克隆 FluentHelperBasic 类并执行以下操作,找到了解决问题的方法:

for (int i = 0; i < selections.size(); i++) {
        String select = selections.get(i);
        if (select.endsWith("/*")) {
            selections.set(i,select.substring(0,select.length()-2));
        }
    }
fieldNames.addAll(selections);
selections.forEach(delegateSelect);

此代码需要在代码设置委托扩展后移动。

解决方法

不幸的是,SFSF 不接受 * 作为所有字段的选择器。您可以通过在 select 子句中声明要展开的属性的所有字段来解决此问题:

select(PerPerson.TO_EMAIL_NAV.select(Email.FIELD_1,Email.FIELD_2));

相关问答

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