B1 9.3 DI API库存转移错误:-10 ::在" Whse"字段中输入有效值[??????? 0-0]

2020-08-14 06:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,专家,我在调用以下方法的A...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,专家,我在调用以下方法的Add方法时收到此错误" -10 ::在" Whse"字段[??????? 0-0]中输入有效值" 库存转移对象。 我已经验证并重新验证了库存转移对象和库存转移线对象都为"到/从"仓库设置了仓库代码。 仓库和这些代码是正确的并且确实存在。 此错误消息的一些类似帖子已声明有关物料成本或单价的信息,但与错误消息不相关。 但是,当我在SAP本身中执行此操作时,没有问题。

对于此物料,评估方法设置为"标准",而未设置"物料成本"。 同样,选中"允许在不增加项目成本的情况下释放库存"。

非常感谢您能提供的所有帮助。

 $ bPass = true;
 $ trfnObj = $ this-> Useful-> apiConfig-> GetBusinessObject($ this-> Useful-> aSAPB1Objects ['Inventory Transfer']);
//让我们添加到obj
 $ trfnObj-> CardCode = $ request-> CardCode;
 $ trfnObj-> CardName = $ request-> CardName;
 $ trfnObj-> ContactPerson =(int)$ request-> CntctCode;
 $ trfnObj->地址= $请求->地址;
 $ trfnObj-> PriceList = $ request-> GroupNum;
 $ trfnObj->注释="服务呼叫"。$ request-> U_JC1_PrintJob;
 $ trfnObj-> FromWarehouse = $ request-> FromWhsCode;
 $ trfnObj-> ToWarehouse = $ request-> ToWhsCode;
 $ trfnObj-> DocDate = date('m/d/Y');
 $ trfnObj-> JournalMemo ='库存转移-'。$ request-> CardCode;
 $ trfnObj-> UserFields-> Fields-> Item('U_NB_PortalCreateUser')-> Value = $ this-> getRequest()-> getSession()-> read('Auth.User.full_name');
 $ trfnObj-> UserFields-> Fields-> Item('U_NB_PortalUpdateUser')-> Value = $ this-> getRequest()-> getSession()-> read('Auth.User.full_name');
 
 $ linesObj = $ trfnObj->线;
 
 $ binAllocatObj = $ linesObj-> BinAllocations;
 $ binAllocatObj-> BinAbsEntry = $ getData ['bin'];
 $ binAllocatObj-> Quantity = $ trnLine ['Quantity'];
 $ binAllocatObj-> BinActionType = 1;
 $ binAllocatObj-> AllowNegativeQuantity = 1;
 
 $ linesObj-> BaseEntry = $ request-> DocEntry;
 $ linesObj-> BaseType = 5;
 $ linesObj-> ItemCode = $ trnLine ['ItemCode'];
 $ linesObj-> ItemDescription = $ trnLine ['Dscription'];
 $ linesObj-> Quantity = $ trnLine ['Quantity'];
 $ linesObj-> WarehouseCode = $ request-> ToWhsCode;
 $ linesObj-> FromWarehouseCode = $ request-> FromWhsCode;

 如果($ linesObj-> Add()!= 0)
 {
     $ this-> Flash-> error(__(__ LINE __。':::由于SAP标准,无法传输项目:'。$ this-> Useful-> apiConfig-> GetLastErrorCode()。" ::"。$ this  ->有用-> apiConfig-> GetLastErrorDescription()));
     $ bPass = false;
 }

 如果($ bPass)
 {
     if($ trfnObj-> Add()== 0)//这是发生故障的地方
     {
        //继续
         $ this-> Flash-> error(__('库存转移成功创建。'));
     }
     其他
     {
         $ this-> Flash-> error(__(__ LINE __。':::由于SAP标准,无法保存传输:'。$ this-> Useful-> apiConfig-> GetLastErrorCode()。" ::"。$ this  ->有用-> apiConfig-> GetLastErrorDescription()));
     }
 } 
3条回答
歪着头看世界
2020-08-14 07:04

嗨,托德,

当您查看某项的主数据卡的库存数据标签时,其中一行(即仓库)应加粗 。 如果没有任何行以粗体显示,请选择一个,然后单击" 设置默认字符串"按钮。

我的意思是,在第二种情况下,此操作没有完成

无论如何,只是仔细看了一下您的代码,我注意到了一个常见的"新手"错误。 DI API以与客户端相同的方式处理文档。 这意味着将提供文档的第一个空行。 您填充此行,然后在必要时添加一个新的空行,然后填充,依此类推。line.Add()方法添加此新空行。 完成后,您只需要添加文档即可。

我还注意到您正在使用BinAllocations,这也可能是原因。 我没有使用这种机制的经验,但是考虑到错误消息为" Whse"(不是标头或行中的字段),我的猜测是。 请检查BinAllocations对象是否需要仓库代码。

此致

Johan

一周热门 更多>