点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我想在xsodata服务中调用hdbprocedure。 并通过xsodata服务将记录插入表中。
在Hana云中创建表
创建列表" SYSTEM"。" DEMO_TABLE"( 默认情况下,DEMOULT产生的" DEMOID"整数CS_INT不为空, " DEMONO" VARCHAR(50), " LOGDATE" LONGDATECS_LONGDATE, 首要的关键 ( " DEMOID" ) )卸载优先级5自动合并;
创建hdbprocedure(insertDemo.hdbprocedure)
过程"系统"。" PODDEMO :: insertDemo"( IN in_demo" SYSTEM"。" TT_DEMO_TABLE_IN", OUT out_demoId" SYSTEM"。" TT_DEMO_TABLE_OUT" ) 语言SQLSCRIPT 如 开始 DECLARE DEMO_NO VARCHAR(50); (选择" DEMONO"进入DEMO_NO FROM:in_demo); 插入"系统"。" DEMO_TABLE"(DEMONO,LOGDATE)值(DEMO_NO,NOW()); out_demoId = SELECT MAX(DEMOID)作为DEMOID FROM" SYSTEM"。" DEMO_TABLE"; END
在hdbprocedure中为输入和输出创建两个表类型
TT_DEMO_TABLE_OUT-用于输出
创建类型" SYSTEM"。" TT_DEMO_TABLE_OUT"为表(" DEMOID" INT CS_INT);
TT_DEMO_TABLE_IN-用于输入
创建类型" SYSTEM"。" TT_DEMO_TABLE_IN"如表(" DEMONO" VARCHAR(50)CS_STRING);
创建了XSODATA服务(insert.xsodata)并称为hdbprocedure。
服务{ " SYSTEM"。" DEMO_TABLE"作为"表" 使用" PODDEMO :: insertDemo"创建; }
我面临的问题是无法将记录插入表中。
请帮助。
好的,这里的问题是,您试图将OUT参数用于其他应使用的参数。 对于存在基于过程的OData,将OUT参数始终解释为包含发生的错误的参数(在您的响应中,您将看到返回的值被解释为错误。由于该"错误"信息,因此写入操作(您的插入内容将按如下所述回滚) 在文档)中。
如果要返回创建的ID,则必须切换到 XS JavaScript OData写出口。此处。因此,插入后,您必须像现在一样确定ID(仅使用XSJS逻辑即可)并更新 " afterTableNam中的值 e"。
您遇到可以与我们分享的任何错误吗?
我正在通过邮递员测试上述xsodata服务并获得以下错误 状态为400错误的请求。
仅" DEMOID"在递增(由于创建表时我保留了"自动递增"字段),但记录未登录到" SYSTEM"。" DEMO_TABLE"表。
您能帮我吗?
一周热门 更多>