SAP OData Generator 为导航条目生成错误 URL
SAP OData Generator generates bad URL for navigated entries
使用 SAP V2 代码生成器,我们已经为成功因素创建了 classes。
当为调用导航实体的请求生成 URL 时,它会抛出 500 错误。
PerPersonFluentHelper q = service.getAllPerPerson().select(PerPerson.TO_EMAIL_NAV);
生成$select=emailNav/*&$expand=emailNav
尝试 运行 结果是
message lang="en-US">Unable to understand API request with character sequence: emailNav/* at character position number: 9 invalid characters: *
我遇到了类似的问题when/if我尝试对实体使用 ALL_FIELDS 静态字段。
如果我删除 /* 并将 url 粘贴到浏览器中,它就可以正常工作。
我们正在寻找任何解决方案。已经花了几天时间阅读博客和 运行 搜索。
是否有关于使用生成的 classes 的高级文档?
提前致谢。
找到解决方案 --
通过克隆 FluentHelperBasic class 并执行以下操作找到了解决问题的方法:
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 不接受将 *
作为 selector 用于所有字段。您可以通过在 select 子句中声明 属性 的所有字段来解决此问题:
select(PerPerson.TO_EMAIL_NAV.select(Email.FIELD_1, Email.FIELD_2));
使用 SAP V2 代码生成器,我们已经为成功因素创建了 classes。
当为调用导航实体的请求生成 URL 时,它会抛出 500 错误。
PerPersonFluentHelper q = service.getAllPerPerson().select(PerPerson.TO_EMAIL_NAV);
生成$select=emailNav/*&$expand=emailNav
尝试 运行 结果是
message lang="en-US">Unable to understand API request with character sequence: emailNav/* at character position number: 9 invalid characters: *
我遇到了类似的问题when/if我尝试对实体使用 ALL_FIELDS 静态字段。
如果我删除 /* 并将 url 粘贴到浏览器中,它就可以正常工作。
我们正在寻找任何解决方案。已经花了几天时间阅读博客和 运行 搜索。
是否有关于使用生成的 classes 的高级文档?
提前致谢。
找到解决方案 -- 通过克隆 FluentHelperBasic class 并执行以下操作找到了解决问题的方法:
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 不接受将 *
作为 selector 用于所有字段。您可以通过在 select 子句中声明 属性 的所有字段来解决此问题:
select(PerPerson.TO_EMAIL_NAV.select(Email.FIELD_1, Email.FIELD_2));