我正在尝试运行一个非常基本的脚本来生成发票,现在我正处于测试阶段,试图解决我们正在使用的新InfoPlus系统的问题。无论如何,我将一个名为ordersList的二维数组声明为全局变量,然后向其添加内容,我可以在for循环中看到完美的结果,该循环遍历该数组并记录每个值,我获得了每个订单号旁边的发货数量总和。
然后,在脚本的更下面,当我再次尝试访问数组时,我得到的结果是"undefined“。我不知道为什么会发生这种情况,任何帮助都将不胜感激。
utils.log("Running Invoice Worksheet Script...");
utils.log("");
utils.log("Viewing Input Entities");
var ordersList = [[]];
var incrementerDecrementer = 0;
var firstInputEntity = utils.inputEntities.get(0);
var skuTable = infoplusApi.search("item", "lobId eq '" + firstInputEntity.lobId + "'", null, 100, 'sku');
utils.log("SKU TABLE??? " + skuTable);
for(var i = 0; i < 2; i++)
{
var itemID = skuTable.get(i);
var finalItemID = itemID.toString();
var colonPos = finalItemID.lastIndexOf(":");
finalItemID = finalItemID.slice(colonPos+1);
utils.log("Final ITEM ID: " + finalItemID);
var pleaseGiveMeItemInfo = infoplusApi.getTags("item", finalItemID);
utils.log("item info ?? " + pleaseGiveMeItemInfo);
}
//var SKUinfo =
for(var i=0; i<utils.inputEntities.size(); i++)
{
var inputEntity = utils.inputEntities.get(i);
utils.log(" " + inputEntity.orderNo + " SKU: " + inputEntity.sku + " Shipped Qty: " + inputEntity.shippedQty);
// utils.log(" " + inputEntity.shippedQty);
if(inputEntity.orderNo != ordersList[incrementerDecrementer][0])
{
var arrayToPush = [inputEntity.orderNo, parseInt(inputEntity.shippedQty)];
ordersList.push(arrayToPush);
incrementerDecrementer++;
}
else
{
ordersList[incrementerDecrementer][1] += parseInt(inputEntity.shippedQty);
}
}
utils.log("");
utils.log("Manipulate data in the original lines...");
for(var i = 0; i < ordersList.length; i++)
{
utils.log(ordersList[i]);
utils.log("");
}
var orderIncrementer = 0;
for(var i=0; i< utils.inputEntities.size(); i++)
{
var line1 = utils.inputEntities.get(i);
var line2 = null;
if(i < (utils.inputEntities.size()-1))
{
line2 = utils.inputEntities.get(i+1);
}
else
{
line2 = utils.inputEntities.get(i);
}
// utils.log(" Original Line with id: " + line.lobId);
utils.log("Line1 order num = " + line1.orderNo);
if(line1.orderNo == line2.orderNo)
{
utils.log("Order numbers Match, setting extended charge to zero... ");
line1.setExtendedCharge(0);
}
else
{
utils.log("orders list 0 1: " + ordersList[0][1]);
utils.log("Order numbers don't match, setting extended charge to qty shipped: " + ordersList[orderIncrementer][1]);
line1.setExtendedCharge(ordersList[orderIncrementer][1]);
orderIncrementer++;
}
//line.description = "Test Change Description";
//utils.setOutputLines(outputLines);
}
这里的日志输出: 16432是第一个订单号。问题是我应该获取数组值的那些未定义的东西。
正在运行发票工作表脚本...
查看输入实体SKU表?项:849,项:850,项:234,项:228,项:232,项:236,项:238,项:230,项:226,项:224,项:225,项:223,项:235,项:231,项:233,项:237,项:227,项:229,项:244,项:251,项:240,项:249,项:246,项:253,项:250,项:248,项:243,项:245,项:252,项:239,项:242,项:241,项:248,项:259,项:261,项:257,项:255,项:258,项:260,项:256,项:254,项:265,项:271,项:269,项:273,项:267,项:263,项:262,项:266,项:272,项:268,项:270,项:264,项:278,项:281,项:276,项:280,项:283,项:274,项:279,项:282,项:277,项:284,项:275,最终项目ID: 849项目信息??[]最终项目ID: 850项目信息??[] 16432.000 SKU: BBL12P-0045发货数量:0 25140.000 SKU: BBLSP-0037发货数量:0 25140.000 SKU: BBLSP-0038发货数量:0 25140.000 SKU: BBLSP-0039发货数量:0 25140.000 SKU: BBLSP 0040发货数量:0 25140.000 SKU: BBLSP-0041数量:0 25146.000 SKU: BBLSP-0037发货数量:1 25146.000 SKU: BBLSP-0038发货数量:1 25146.000 SKU: BBPSP-0037发货数量:1 25146.000 SKU: BBPSP-0038发货数量:1 25146.000 SKU: BPC13-007发货数量:1 25146.000 SKU: BPC13-008发货数量:1 25146.000 SKU: BPC13-009发货数量:1 25146.000.000 SKU: bp13-0012发货数量:1 25153.000 SKU: bp13-0007发货数量:1 25153.000 SKU: bp13-0008发货数量:1 25153.000 SKU: bp13-0009发货数量:1 25153.000 SKU: bp13-0010发货数量:1 25153.000 SKU: bp13-0012发货数量:1 25158.000 SKU: BBPSP 0034发货数量:2 25158.000 SKU: BBPSP 0035数量:2 25158.000 SKU: BRZ1-0001发货数量:2 25158.000 SKU: BRZ1-004发货数量:2 25960.000 SKU: BBPSP-0034发货数量:0 25960.000 SKU: BBPSP-0037发货数量:1 25960.000 SKU: BBPSP-0039发货数量:1 25961.000 SKU: BBPSP-0034发货数量:0 25961.000 SKU: BBPSP-0035发货数量:1 25961.000.000 SKU: BBLSP-0040发货数量:2 26144.000 SKU: BBPSP-0034发货数量:2 26144.000 SKU: BBPSP-0035发货数量:2 26144.000 SKU: BBPSP-0011发货数量:1 26146.000 SKU: BBPSP-0035发货数量:1 26146.000 SKU: BBPSP-0039发货数量:1 27793.000 SKU: BBPSP-0035发货数量:0 27793.000 SKU: BBPSP-0039发货数量:1 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:1 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:1 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-00数量:2 27793.000 SKU: BPC13-0012发货数量:1 27793.000 SKU: BRZ1-002发货数量:1 27794.000 SKU: BPC13-009发货数量:4 27794.000 SKU: BPC13-0011发货数量:5 27797.000 SKU: BBLSP-0040发货数量:3 27797.000 SKU: BBPSP-0035发货数量:3 27797.000 SKU: BBPSP-0037发货数量:2 27797.000.000 SKU: BBPSP-0039发货数量:3 27798.000 SKU: BBPSP-0037发货数量:3 27798.000 SKU: BBPSP-0039发货数量:4 27799.000 SKU: BBPSP-0037发货数量:1 27800.000 SKU: BBPSP-0037发货数量:1 27800.000 SKU: BBPSP-0039发货数量:2 27800.000 SKU: BP9I-0002发货数量:2 27800.000 SKU: BP9I-0004数量:4 27801.000 SKU: BBPSP-0035发货数量:2 27801.000 SKU: BBPSP-0037发货数量:1 27801.000 SKU: BBPSP-0039发货数量:1 27802.000 SKU: BBPSP-0037发货数量:2 27802.000 SKU: BBPSP-0039发货数量:2 27802.000 SKU: BPC13-007发货数量:2 27802.000 SKU: BPC13-009发货数量:2 27802.000 SKU: bp13-0012发货数量:2 27808.000 SKU: BBPSP-0037发货数量:1 27808.000 SKU: BBPSP-0039发货数量:2 27808.000 SKU: bp13-009发货数量:1 27812.000 SKU: BBPSP-0038发货数量:3 27812.000 SKU: BBPSP-0035发货数量:1 27812.000 SKU: BBPSP-002发货数量:3 27828.000 SKU: BBPSP-0037发货数量:1 27812.000 SKU:BBPSP-0037发货数量:3 27828.000 SKU:BBPSP-0037发货数量:3 27828.000 SKU:BBPSP-0037发货数量:1 27812.000 SKU:BBPSP-0037发货数量:3 27828.000 SKU数量:2 27828.000 SKU: BBPSP-0038发货数量:1 27828.000 SKU: BBPSP-0039发货数量:1 27828.000 SKU: BP9I-0004发货数量:4
操作原始行中的数据...
16432.000,0
25140.000,0
25146.000,8
25153.000,5
25158.000,8
25960.000,2
25961.000,1
26144.000,7
26146.000,2
27793.000,4
27794.000,9
27797.000,11
27798.000,7
27799.000,1
27800.000,9
27801.000,4
27802.000,10
27808.000,4
27812.000,7
27828.000,8
Line1订单号= 16432.000订单列表0 1:未定义的订单号不匹配,将扩展费用设置为已发货数量:未定义
发布于 2020-04-22 05:00:51
我解决了这个问题。问题出在我最初使用[[]]将ordersList声明为2D数组时。这在我的数组中创建了一个未定义的数组,当我将新值添加到数组中时,这部分工作得很好,但是当我试图访问元素0时,它返回了undefined。当我尝试访问element 1或更高版本时,它工作正常。因此,我只是使用一组括号"[]“将其声明为一个简单的数组,并对代码的其他部分进行了一些编辑,它开始工作得很好。
希望这对其他可能遇到同样问题的人有所帮助。
https://stackoverflow.com/questions/61334296
复制相似问题