使用DI API创建销售订单,但是将默认的项目描述更改为另一个名称。

2020-08-23 20:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 在我们公司,我们对商品采...

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

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


你好

在我们公司,我们对商品采用可重复使用的商品代码系统。 示例:

商品代码 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 项目说明

REUSABLE_001。 。 。 。 。 。 。 。 。 。 。 。 MISC_GOODS。

REUSABLE_002。 。 。 。 。 。 。 。 。 。 。 。 MISC_GOODS

等等 直到...

REUSABLE_100。 。 。 。 。 。 。 。 。 。 。 。 MISC_GOODS

请注意,所有项目在 Item Master文件中都具有相同的 ItemDescription :" MISC_GOODS"。

--------------------------------------------------- ------------------

我们要使用DI API创建 销售订单 ,但我们要替换默认的 ItemDescription (" MISC_GOODS" 非常有意义),通过客户的描述(例如BANANAS)

-

我们使用foll。 技巧:

  • 填充标题
  • 填充第1 st
  • 添加新行并插入商品代码
  • 然后删除新创建的行。 因此,仅保留第1 st
  • 现在将客户的描述添加到 ItemDescription 字段中。
  • 最后,添加销售订单。

我们的把戏很完美。 当我们在SAP中打开销售订单时,我们发现客户的描述(BANANAS)正确显示在项目描述字段中(而不是" MISC_GOODS")

--------------------------------------------------- ---------------------

在Row2中添加第2个 nd 项时会出现问题。

假设客户订购了2件商品,如下所示:

商品代码 。 。 。 。 。 。 。 。 。 。 。 。 。 。 客户的描述

REUSABLE_001。 。 。 。 。 。 。 。 。 。 香蕉

REUSABLE_002。 。 。 。 。 。 。 。 。 。 玉米片

--------

运行代码时,正确添加了2 nd 行。 但是" CORNFLAKES "将转到第1 st 行,而不是第2 nd 行。

我们的SAP销售订单屏幕如下:

商品代码 。 。 。 。 。 。 。 。 。 。 。 。 项目说明

REUSABLE_001。 。 。 。 。 。 。 玉米片 ***

REUSABLE_002。 。 。 。 。 。 。 MISC_GOODS

---

注意:***最初是:" MISC_GOODS"(系统默认值)

然后替换为" BANANAS"(客户的第一项)

然后替换为" CORNFLAKES"(客户的第二项)

似乎DI API正在替换第一行而不是最后一行(第二行)

---------------------------------------

问题:

可能出了什么问题? 缺少什么?

我想我们必须告诉DI API修改哪一行。 不知道该怎么做。

如何告诉SAP修改LAST行(即第一行)的"项目描述"?

非常感谢您的帮助。

================================================ ==============================

我们的简化代码,仅显示相关行:

'HEADER-ORDR

oOrder.CardCode =" BP11518"

'//其他字段类似


1 ST ROW – RDR1

oOrder.Lines。 ItemCode =" REUSABLE_001"。 。 。 。 。 。 。 。 。 。 。 '//客户订购的第一项代码

’类似地,对于其他字段,除了自动插入的ItemDescription字段之外。

oOrder.Lines.Add()。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 ‘//添加第二行

oOrder.Lines.ItemCode =" REUSABLE_100" ‘。 。 。 。 。 。 。 '//任何代码都可以。-只是放一些东西

oOrder.Lines.Delete()。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 ‘//删除2 nd 行。 因此,我们仍然位于1 st Row。

oOrder.Lines.ItemDescription ="香蕉"。 。 。 。 。 。 。 。 ‘//用客户的描述替换系统描述。


‘2 nd ROW -RDR1

oOrder.Lines.Add()。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 ‘//添加2 nd

oOrder.Lines.ItemCode =" REUSABLE_002"。 。 。 。 。 。 。 。 。 '//客户订购的第二项代码

’类似地,对于其他字段,除了自动插入的ItemDescription字段之外。

oOrder.Lines.Add()。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 ‘///添加3 rd

oOrder.Lines.ItemCode =" REUSABLE_100"。 。 。 。 。 。 。 。 。 。 ‘//任何代码都可以-只是放一些东西

oOrder.Lines.Delete()。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。‘//删除3 rd 行。 因此,我们仍然位于2 nd 行。 (是我们吗?

oOrder.Lines.ItemDescription =" CORNFLAKES"。 。 。 。 。 。 。 。‘//用客户的描述替换系统描述。


'已添加销售订单

IRetCode = oOrder.Add


谢谢

利昂

3条回答
三十六小时_GS
2020-08-23 20:45

您好李礼Kan

在SAP Business One客户端中,您必须按项目描述列中的 CTRL + TAB 键,以设置有关以下内容的自定义描述: 该项目。 我认为DI API没有适合您的此类选项。 因此,您必须在设置项目代码本身的同时设置项目说明。 我从未遇到过任何不允许您设置项目自定义说明的问题。 我正在使用9.3 PL12。

我认为您的程序存在一些逻辑问题,该问题将项目说明设置为原始项目。

对于另一个问题: if (oSalesOrder.Lines.Count == 1)您不必担心。 我只是想检查一下。 这不会以其他方式影响您的要求。

亲切的问候,

ANKIT CHAUHAN

SAP Business One支持

一周热门 更多>