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

2020-07-27 13:59发布

         点击此处--->   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()));
     }
 } 

         点击此处--->   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()));
     }
 }   
付费偷看设置
发送
2条回答
1楼-- · 2020-07-27 14:28

嗨,托德,

我有两次类似的问题,最后发现,在第一种情况下,根本没有确定其中一个物品的给定仓库,在第二种情况下, 没有确定其中一项的默认仓库。

物有所值。

致谢,

Johan

2楼-- · 2020-07-27 14:37
< p>嗨,托德,

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

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

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

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

致谢

Johan

一周热门 更多>