点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我有一个SAPUI5-应用程序,可在其中创建条目并通过OData-service保存它们。 可行,可以在下面找到创建操作的代码。 我现在要做的是,在我的应用程序中,需要HANA中插入记录的ID。 所以我做了一个成功的处理程序,并认为我会从OData服务的响应中获取此ID。 但是事实并非如此,我会返回提供的相同值,在这种情况下为0,因为这只是OData服务的一个伪值。 我对如何解决此问题进行了一些研究,但没有一种方法有效。 因此,我希望你们中的某人可以帮助我或获得有关如何执行此操作的提示。 在create-operation,odata-service和create.xsjs的代码下面:
亲切的问候
马克西米利安
在UI5-应用程序中创建操作:
this.getOwnerComponent()。getModel(" Mitarbeiter")。create("/img/ARB",oEntry,{ 成功:功能(oData,响应){ console.log(response); } });
OData服务的定义:(xsodata)
服务{ " ABT"导航为" MITARBEITERABTEILUNG"。(" Mitarbeiter"导航为" ARB"); ;使用" public.MitarbeiterAbteilung:mitarbeiterMethods.xsjslib :: mitarbeiterCreate"创建的" Mitarbeiter"作为" ARB"; 协会" Mitarbeiter" 主体" ABT"(" ID") 多重性" 1" 依赖的" ARB"(" Abteilung") 多重性" *"; }
OData服务(xsjslib)中的创建方法
function mitarbeiterCreate(param){ 让aAfterTableName = param.afterTableName; var oEntry = {}; 尝试{ var语句= param.connection.prepareStatement(" SELECT * FROM \"" + aAfterTableName +" \""); var rs = statement.executeQuery(); var statement2 = param.connection.prepareStatement('SELECT" MITARBEITERABTEILUNG .." MASEQUENCE" .NEXTVAL from dummy'); var rs2 = statement2.executeQuery(); 而(rs2.next()){ oEntry.ID = rs2.getInteger(1); } statement2.close(); 而(rs.next()){ oEntry.Name = rs.getString(2); oEntry.Adresse = rs.getString(3); oEntry.bz = rs.getString(4); oEntry.Abteilung = rs.getInteger(5); } statement = param.connection.prepareStatement('INSERT INTO" MITARBEITERABTEILUNG"。" Mitarbeiter" VALUES(?,?,?,?,?,?)');; statement.setInteger(1,oEntry.ID); statement.setString(2,oEntry.Name); statement.setString(3,oEntry.Adresse); statement.setString(4,oEntry.bz); statement.setInteger(5,oEntry.Abteilung); statement.execute(); statement.close(); }抓住(e){ statement.close(); }
您唯一需要做的就是更新function参数提供的" afterTableName"表中的ID值。 像这样的东西:
确定新ID后当然需要完成。 如果您的列名不是" ID",请用实际的列名替换。
致谢,
Florian
嗨,大家好,
在XSA SP04上,上述方法对我不起作用。 在后表的直接更新上,我收到错误" 功能不受支持:易失表的更新语句"。 所以我使用了描述为此处。 那个有用。
谢谢,
Anton
您是否尝试过将返回值放入xsjs? 像...
嗨,
感谢您的回答。 我尝试了您的建议,chrome的devtools记录了以下内容:
" log-dbg.js:412 2018-07-11 16:08:12.408500发生以下问题:HTTP请求失败400,错误请求, {"错误":{"代码":"","消息":{" lang":" zh-CN","值":"发生了自定义错误。 请参阅错误详细信息。"}," innererror":{" errordetail":{" msg":"该ID已成功创建""}}}}"
一周热门 更多>