1470000341将itemCode完全分配到仓库中的仓库位置,采购交货

2020-08-22 05:22发布

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

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


您好,专家!

我正在尝试通过DIAPI购买收据。 但是我收到错误:1470000341-将项目" MyItemCode"完全分配到仓库" MyWarehouse"中的仓位。 当我使用相同的数据手动插入时,效果很好。

代码在C#中是这样的:

 SAPbobsCOM.Documents myDocuments = SAP.SAPCompany.GetBusinessObject(BoObjectTypes.oPurchaseDeliveryNotes);

 myDocuments.HandWritten = BoYesNoEnum.tNO;

 myDocuments.CardCode = order.BusinessPartnerCode;
 myDocuments.CardName = order.BusinessPartnerName;
 myDocuments.Reference2 = order.Reference2;

 myDocuments.DocDate = order.StorageDate;
 myDocuments.DocDueDate = order.StorageDate;
 myDocuments.TaxDate = order.StorageDate;

 myDocuments.Printed = PrintStatusEnum.psNo;

 int sarialNum = 0;
 foreach(订单中的可变项。PurchaseOrderItems)
 {
     myDocuments.Lines.ShipDate = item.ShipDate;
     myDocuments.Lines.ItemCode = item.ItemCode;
     myDocuments.Lines.ItemDescription = item.ItemDescription;

     myDocuments.Lines.Quantity = Convert.ToDouble(item.Quantity);
     myDocuments.Lines.Price = item.Price;
     myDocuments.Lines.UnitPrice = item.UnitPrice;

     myDocuments.Lines.DiscountPercent =(double)item.DiscountPerLine;
     myDocuments.Lines.WarehouseCode = B1DlftWhsCode;
     myDocuments.Lines.BaseType = item.BaseDocumentType;
     myDocuments.Lines.BaseEntry = item.BaseDocumentEntry;
     myDocuments.Lines.BaseLine = item.BaseDocumentLineId;

    //批量
     myDocuments.Lines.BatchNumbers.BatchNumber = item.U_WEBSO_ID;
     myDocuments.Lines.BatchNumbers.Quantity = item.Quantity;
     myDocuments.Lines.BatchNumbers.Add();

    //BinAllocation
     myDocuments.Lines.BinAllocations.BinAbsEntry = 5; //SZCPRT010101(从AbsEntry = 5的OBIN中选择*)
     myDocuments.Lines.BinAllocations.Quantity = item.Quantity;
     myDocuments.Lines.BinAllocations.BaseLineNumber = sarialNum;
     myDocuments.Lines.BinAllocations.SerialAndBatchNumbersBaseLine = 0;
     myDocuments.Lines.BinAllocations.Add();

     myDocuments.Lines.Add();
     sarialNum ++;
 }

 myDocuments.DocTotal = Math.Round(double.Parse(order.DocumentTotal),2);

 int RntCode = myDocuments.Add();
 

当我尝试myDocuments.Add()时,出现此错误:

ErrorNo = -10,
ErrorDescription = 1470000341-将项目" 2001DCM"完全分配到仓库" SPOP"中的垃圾箱位置

任何帮助将不胜感激。

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

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


您好,专家!

我正在尝试通过DIAPI购买收据。 但是我收到错误:1470000341-将项目" MyItemCode"完全分配到仓库" MyWarehouse"中的仓位。 当我使用相同的数据手动插入时,效果很好。

代码在C#中是这样的:

 SAPbobsCOM.Documents myDocuments = SAP.SAPCompany.GetBusinessObject(BoObjectTypes.oPurchaseDeliveryNotes);

 myDocuments.HandWritten = BoYesNoEnum.tNO;

 myDocuments.CardCode = order.BusinessPartnerCode;
 myDocuments.CardName = order.BusinessPartnerName;
 myDocuments.Reference2 = order.Reference2;

 myDocuments.DocDate = order.StorageDate;
 myDocuments.DocDueDate = order.StorageDate;
 myDocuments.TaxDate = order.StorageDate;

 myDocuments.Printed = PrintStatusEnum.psNo;

 int sarialNum = 0;
 foreach(订单中的可变项。PurchaseOrderItems)
 {
     myDocuments.Lines.ShipDate = item.ShipDate;
     myDocuments.Lines.ItemCode = item.ItemCode;
     myDocuments.Lines.ItemDescription = item.ItemDescription;

     myDocuments.Lines.Quantity = Convert.ToDouble(item.Quantity);
     myDocuments.Lines.Price = item.Price;
     myDocuments.Lines.UnitPrice = item.UnitPrice;

     myDocuments.Lines.DiscountPercent =(double)item.DiscountPerLine;
     myDocuments.Lines.WarehouseCode = B1DlftWhsCode;
     myDocuments.Lines.BaseType = item.BaseDocumentType;
     myDocuments.Lines.BaseEntry = item.BaseDocumentEntry;
     myDocuments.Lines.BaseLine = item.BaseDocumentLineId;

    //批量
     myDocuments.Lines.BatchNumbers.BatchNumber = item.U_WEBSO_ID;
     myDocuments.Lines.BatchNumbers.Quantity = item.Quantity;
     myDocuments.Lines.BatchNumbers.Add();

    //BinAllocation
     myDocuments.Lines.BinAllocations.BinAbsEntry = 5; //SZCPRT010101(从AbsEntry = 5的OBIN中选择*)
     myDocuments.Lines.BinAllocations.Quantity = item.Quantity;
     myDocuments.Lines.BinAllocations.BaseLineNumber = sarialNum;
     myDocuments.Lines.BinAllocations.SerialAndBatchNumbersBaseLine = 0;
     myDocuments.Lines.BinAllocations.Add();

     myDocuments.Lines.Add();
     sarialNum ++;
 }

 myDocuments.DocTotal = Math.Round(double.Parse(order.DocumentTotal),2);

 int RntCode = myDocuments.Add();
 

当我尝试myDocuments.Add()时,出现此错误:

ErrorNo = -10,
ErrorDescription = 1470000341-将项目" 2001DCM"完全分配到仓库" SPOP"中的垃圾箱位置

任何帮助将不胜感激。

付费偷看设置
发送
1条回答
d56caomao
1楼-- · 2020-08-22 06:01

你好李

乍一看:

.Add()总是添加一个新的空行,因此仅应在填充数据之前使用,而不是在之后使用(仍然存在10年以上的错误,例如官方SDK帮助中的错误)。 DI API中还有多余的空行->只是不要这样做。

但是请记住,第一行已经存在,这意味着您只需在非第一行时使用.Add()

这对您来说是个难题:

 myDocuments.Lines.BinAllocations.SerialAndBatchNumbersBaseLine = 0 

您始终将第一个(0)批处理编号行分配给所有仓位分配,但是您要添加多个批处理行-必须对此进行排序。

我将纠正问题,如果问题仍然存在,请使用myDocuments.GetAsXML()查看生成的文档(在添加文档之前)

最诚挚的问候,

Maik

一周热门 更多>