XSJS值不足

2020-08-24 19:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好同事 我检查了查询,它有1...

         点击此处--->   EasySAP.com群内免费提供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)"}

请帮助!

2条回答
DafaDDDa
2020-08-24 20:05

问题是您的insert语句没有列出列,而只是列出值:

'插入" TEST"值(?,?,?,?,?,?,?,?  ,?,?,?,?,?,?,?,?)'

但是在前面的代码表中,您提到了一个名为TRANSACTION_ID的列,该列是自动递增的:

//var TRANSACTION_ID =参数[" root"] [" row"] [i-1] .TRANSACTION_ID; 自动递增,因此不需要

但是您没有告诉INSERT语句各列,那么如何知道不将第一个值放入该列呢? 这就是为什么您缺少值的原因,因为您已忽略了此基于ID的列。 这是假设有关目标列的任何事情的危险。 我认为您还应该在插入语句中指定与值顺序匹配的目标列。

一周热门 更多>