点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好同事
我检查了查询,它有15列8个属性和7个度量值。我已经使用执行带有数组的更新来在hana中填充表
代码如下
///让有效负载= $ .request.body.asString(); 让有效负载= $ .request.body.asString(); let参数= JSON.parse(有效载荷); var i = parameters [" root"] [" row"]。length; var Ojson,j = 0; var tempArray2 = []; 对于(i; i> 0;){ var tempArray = []; //var TRANSACTION_ID = parameters [" root"] [" row"] [i-1] .TRANSACTION_ID; 自动递增,因此无需 var MaterialNumber = parameters [" root"] [" row"] [i-1] .MaterialNumber; var MaterialDescription = parameters [" root"] [" row"] [i-1] .MaterialDescription; var Period = parameters [" root"] [" row"] [i-1] .Period; var Brand = parameters [" root"] [" row"] [i-1] .Brand; var Size = parameters [" root"] [" row"] [i-1] .Size; var Pack = parameters [" root"] [" row"] [i-1] .Pack; var Client = parameters [" root"] [" row"] [i-1] .Client; var ClientType = parameters [" root"] [" row"] [i-1] .ClientType; var Volume = parameters [" root"] [" row"] [i-1] .Volume; var GrossSales = parameters [" root"] [" row"] [i-1] .GrossSales; var Discounts = parameters [" root"] [" row"] [i-1] .Discounts; var NetSales = parameters [" root"] [" row"] [i-1] .NetSales; var CostofGoodsSold = parameters [" root"] [" row"] [i-1] .CostofGoodsSold; var Distribution = parameters [" root"] [" row"] [i-1] .Distribution; var Warehousing = parameters [" root"] [" row"] [i-1] .Warehousing; //tempArray.push(TRANSACTION_ID.toString()); tempArray.push(MaterialNumber.toString()); tempArray.push(MaterialDescription.toString()); tempArray.push(Period.toString()); tempArray.push(Brand.toString()); tempArray.push(Size.toString()); tempArray.push(Pack.toString()); tempArray.push(Client.toString()); tempArray.push(ClientType.toString()); tempArray.push(Volume.toString()); tempArray.push(GrossSales.toString()); tempArray.push(Discounts.toString()); tempArray.push(NetSales.toString()); tempArray.push(CostofGoodsSold.toString()); //在表中这些是整数/十进制 tempArray.push(Distribution.toString());//在表中这些是整数 tempArray.push(Warehousing.toString()); //在表中这些是整数 tempArray2.push(tempArray); i = i-1; } var conn = $ .hdb.getConnection(); conn.executeUpdate('插入" TEST"值中(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',tempArray2); conn.commit(); $ .response.status = $ .net.http.OK; $ .response.contentType ="文本/html"; $ .response.setBody(tempArray.length +"已插入记录" + tempArray2); ////////////////////EOF//////////////////////////////////////////////////////////////// JSON有效负载就是这样 { "根": { "行":[ { " MaterialNumber":" 11504000", " MaterialDescription":" Crocky 250ML 4X", "句点":" 201601", " Brand":" Crocky", "大小":" 250ML", " Pack":" 4X", "客户":"克罗格", " ClientType":"超级市场", "音量":" 206.0", " GrossSales":" 170.8", "折扣":"-3.1", " NetSales":" 167.7", " CostofGoodsSold":"-79.2", "发行":"-4.0", "仓储":"-1.5" }, { " MaterialNumber":" 11506000", "材料描述":" Crocky 250ML 6X", "句点":" 201601", " Brand":" Crocky", "大小":" 250ML", " Pack":" 6X", "客户":"克罗格", " ClientType":"超级市场", "音量":" 147.9", " GrossSales":" 96.2", "折扣":"-1.7", " NetSales":" 94.4", " CostofGoodsSold":"-44.6", "分布":"-2.3", "仓储":"-0.8" } ] } }
。错误:" msg":" POST/index.xsjs返回状态500:值不足::15:第1行第56行(在pos 55)"}
请帮助!
问题是您的insert语句没有列出列,而只是列出值:
但是在前面的代码表中,您提到了一个名为TRANSACTION_ID的列,该列是自动递增的:
但是您没有告诉INSERT语句各列,那么如何知道不将第一个值放入该列呢? 这就是为什么您缺少值的原因,因为您已忽略了此基于ID的列。 这是假设有关目标列的任何事情的危险。 我认为您还应该在插入语句中指定与值顺序匹配的目标列。
>请您向我展示一个如何在XSJS代码中的insert语句内列出列的示例。
使用INSERT中所述的列列表子句 声明帮助:
https://help.sap。 com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.04/en-US/20f7f70975191014a76da70c9181720e.html
>第二,您是否处理了字符串和整数列中的数据。 因为我对转换为string的toString方法感到困惑。 因此,如果我将整数值传递给它,它将起作用吗?
这是JavaScript,因此它不是强类型的,将尝试转换。 如果您知道要混合使用SQL TO_以确保安全,则仍是最好的选择:
https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.04/zh-CN/209ddefe75191014ac249bf78ba2a1e9.html
一周热门 更多>