点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在将SAP 9.2与UI和DI API和C#一起使用。 我需要一个一个地插入项目,但会自动在后台插入,而无需显示该项目的任何UI表单。 我了解我需要使用SDK进行此操作。 像这样。
公共项InsertItem(InsertItemParameters p) { SAPbobsCOM.Items newItem = oCompany.GetBusinessObject(BoObjectTypes.oItems); var itemCode ="在这里获得自动增量?"; newItem.ItemCode = itemCode; newItem.ItemType = p.ItemType; newItem.ItemsGroupCode = p.ItmsGroupCod; 如果(p.ItemName!= null) newItem.ItemName = p.ItemName; 如果(p.SWW!= null) newItem.SWW = p.SWW; 如果(p.SuppCatNum!= null) newItem.SupplierCatalogNo = p.SuppCatNum; 如果(p.BuyUnitMsr!= null) newItem.PurchaseUnit = p.BuyUnitMsr; 如果(p.PurPackMsr!= null) newItem.PurchasePackagingUnit = p.PurPackMsr; 如果(p.SalUnitMsr!= null) newItem.SalesUnit = p.SalUnitMsr; int res = newItem.Add(); 如果(res!= 0) { int errorCode = 0; 字符串errorDesc =""; oCompany.GetLastError(out errorCode,out errorDesc); 如果(errorCode == -10 && errorDesc.Contains("已经存在")) { 抛出新的InsertFailedException($" ItemCode自动递增失败。ItemCode:{itemCode}"); } 抛出新的InsertFailedException("插入项目失败(" + errorCode +"," + errorDesc +")。基于" + newItem.ToString()); } //检查newItem.ItemCode是否有效->插入并返回? 返回null; }
我的问题是ItemCode,如何使用SDK进行设置,以便保留默认编号?
我试图找到一种解决方案,但我发现的只是这个。: https://stackoverflow.com/a/8798397/840315
理论上,我应该只使用sdk运行查询,但是我查看了ONNM表,对于对象类型4(项主数据),存储的值(自动键)为28779,而最新的键用于 当前的项目为38767。同样,令我困扰的是,即使数字匹配,我也应该对ONNM表运行此查询,并将Item插入事务中。
是否可以从SDK请求新的ItemCode? 像这样:
oCompany.GetNewNumber(int objectCode);
编辑。
好的,我发现NNM1表保存了正确的下一个号码。 我是自己运行更新还是有任何SDK方法?
Edit2。:
我以某种方式想出了如何获取当前号码,现在我只需要以某种方式对其进行递增。.在事务内部:(
SeriesService seriesService = oCompany.GetCompanyService()。GetBusinessService(ServiceTypes.SeriesService); DocumentTypeParams typeParams = seriesService.GetDataInterface(SeriesServiceDataInterfaces.ssdiDocumentTypeParams); typeParams.Document =" 4"; 系列series = seriesService.GetDefaultSeries(typeParams); var itemCode ="" + series.NextNumber; newItem.ItemCode = itemCode;
嗨Szabolcs
为什么不呢?
1。 为物料创建文档编号系列,然后让SAP处理编号。
2。 使用以下代码添加项目
致谢
Edy
正是我想要实现的目标。 有趣的是我在任何地方都找不到此文件。
一周热门 更多>