点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们遇到这样的情况,仓库中发生了很大的混乱,为多个订单选择的批号实际上无法发货。 我正在尝试找到一种以编程方式修改现有"交付"文档的方法,因为取消和重新发行它们会在公司工作流程中的其他地方引起头痛。.到目前为止,我已经尝试了多种尝试,但都没有运气。 所有交货都是开放的,没有行运或发票。
尝试1,更改批号:
Company oCompany = new SAPbobsCOM.Company(); ///公司配置在这里... 文档doc = oCompany.GetBusinessObject((int)BoObjectTypes.oDeliveryNotes); doc.GetByKey(docEntry); doc.Lines.BatchNumbers.BatchNumber = newBatchNumber; doc.Update();
Update()返回0,并且没有给出错误代码,但是批处理编号实际上没有更改。
尝试2,删除原始行,添加新行:
//使用与#1相同的oCOmpany和doc init //从现有行获取值 doc.Lines.SetCurrentLine(0); int BaseEntry = doc.Lines.BaseEntry; int BaseType = doc.Lines.BaseType; int BaseLine = doc.Lines.BaseLine; 字符串ItemCode = doc.Lines.ItemCode; double数量= doc.Lines.Quantity; 字符串FreeText = doc.Lines.FreeText; int UoMEntry = doc.Lines.UoMEntry; 双倍价格= doc.Lines.Price; 字符串WarehouseCode = doc.Lines.WarehouseCode; //删除旧行 doc.Lines.Delete(); //添加新行 doc.Lines.Add(); //为删除的行分配相同的值 doc.Lines.BaseEntry = BaseEntry; doc.Lines.BaseType = BaseType; doc.Lines.BaseLine = BaseLine; doc.Lines.ItemCode = ItemCode; doc.Lines.Quantity =数量; doc.Lines.FreeText = FreeText; doc.Lines.UoMEntry = UoMEntry; doc.Lines.Price =价格; doc.Lines.WarehouseCode = WarehouseCode; doc.Lines.BatchNumbers.BatchNumber = newLot; doc.Lines.BatchNumbers.Quantity =数量; doc.Update();
引发错误-5002:项目编号丢失; 指定商品编号{DLN1.ItemCode] [行:1]
尝试3,添加新行,然后删除原始行:
//与尝试2相同的复制值和添加行 //删除旧行 doc.Lines.SetCurrentLine(0); doc.Lines.Delete(); doc.Update();
引发错误-5002:10001221-指定"单位项目"大于零[INV1.NumPerMsr] [行:1]
尝试4,添加新行,原始行归零:
//与尝试2相同的复制值和添加行 //将旧行清零 doc.Lines.SetCurrentLine(0); this.doc.Lines.BaseEntry = 0; doc.Lines.BaseType = 0; doc.Lines.BaseLine = 0; doc.Lines.Quantity = 0; doc.Lines.BatchNumbers.Quantity = 0; doc.Update();
引发错误-5002:项目编号丢失; 指定商品编号{DLN1.ItemCode] [行:1]
我不确定为什么它会在#2和#4中给出缺少项的错误,如果我在Update()之前打印doc.Lines.ItemCode,它会给出正确的值。 我将非常感谢您的帮助。
克里斯,你好,
我认为不存在任何更改交货或发票批次的方法。 无论是SDK还是客户端。
可能的解决方案,如下所示:
https://archive.sap.com/discussions/thread/3686536
希望有帮助。
亲切的问候,
迭戈兄弟
感谢您的链接。 不幸的是,如果交货尚未关闭或未开发票,您将无法编辑批号,这似乎很愚蠢。 我希望抛出的错误代码能够使人们清楚地知道是否应该禁止该操作,而不是误导有关项目代码或单位的错误。
一周热门 更多>