gpt4 book ai didi

php - 销售行已存在。标识字段和值 : Document Type ='' , 文档编号 ='',行号 =''

转载 作者:行者123 更新时间:2023-12-04 09:16:09 24 4
gpt4 key购买 nike

使用动态 NAV SOAP 网络服务创建新的销售订单时,在尝试创建多个订单项时遇到错误。单行订单信息添加成功。

错误 - 销售行已经存在。标识字段及取值:Document Type='Order',Document No.='1111',Line No.='10000'

这是我试过的代码:

$client  = new SoapClient($soapWsdl, $options);

// Create order header
$create = new stdClass();
$sq = new stdClass();

$sq->OrderType = "Order";
$sq->OrderId = "1111";
$create->SalesOrderWS = $sq;
$result = $client->create($create);


$key = $result->SalesOrderWS->Key;

$update = new stdClass();
$sq->Key = $key;
$sq->CustomerID = "9999";


$salesLineList = new stdClass();

$salesLine = new stdClass();
$salesLine->Order_Type = 'Order';
$salesLine->OrderID = '1111';
$salesLine->LineType = 'Item';
$salesLine->OrderLineNo = '10000';
$salesLineList->Sales_Order_Lines_WS[0] = $salesLine;
$sq->SalesOrderLinesWS = $salesLineList;

$salesLine = new stdClass();
$salesLine->Order_Type = 'Order';
$salesLine->OrderID = '1111';
$salesLine->LineType = 'Item';
$salesLine->OrderLineNo = '20000';
$salesLineList->Sales_Order_Lines_WS[1] = $salesLine;
$sq->SalesOrderLinesWS = $salesLineList;


$update->SalesOrderWS = $sq;
$result = $client->Update($update);

当然,这里遗漏了一些东西,但无法确定问题所在。

谢谢。

最佳答案

在 NAV 中,Sales Line 表有一个由 3 个字段组成的主键:

  • 文件类型
  • 证件号
  • 行号

系统将不接受重复项,并且上述组合必须是唯一的。行号是使行号唯一的任意整数,可以包含任意数字。然而,按照惯例,行号通常以 10000 为增量给出,即第一行是 10000,第二行是 20000 等等。

我不是 PHP 专家(事实上我几乎一无所知),但我在上面的代码中看不到您在编写销售行时设置了行号。因此,第一行插入会起作用,但下一行将导致重复。我建议,作为编写销售行的一部分,您为您编写的每一行都包含一个唯一的行号,这样就可以正常工作了。编辑

关于php - 销售行已存在。标识字段和值 : Document Type ='' , 文档编号 ='',行号 ='',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63199305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com