点击此处---> 群内免费提供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
谢谢
利昂
您好莱恩赖,
如果您只想更改商品说明和 项目代码将有所不同,您是否可以尝试使用以下示例代码并检查其是否有用?
希望有帮助!
亲切的问候,
ANKIT CHAUHAN
SAP Business One支持
您好李礼Kan ,
在SAP Business One客户端中,您必须按项目描述列中的 CTRL + TAB 键,以设置有关以下内容的自定义描述: 该项目。 我认为DI API没有适合您的此类选项。 因此,您必须在设置项目代码本身的同时设置项目说明。 我从未遇到过任何不允许您设置项目自定义说明的问题。 我正在使用9.3 PL12。
我认为您的程序存在一些逻辑问题,该问题将项目说明设置为原始项目。
对于另一个问题: if (oSalesOrder.Lines.Count == 1)您不必担心。 我只是想检查一下。 这不会以其他方式影响您的要求。
亲切的问候,
ANKIT CHAUHAN
SAP Business One支持
嗨,Ankit
您的示例代码可以创造奇迹。 正是我想要的!
SetCurrentLine()是我的代码中缺少的内容。
但是,这让我完全感到困惑!
--------------------------------------
第一个谜题:
在之前的尝试中,我发现不可能同时输入 ItemCode 和 ItemDescription 。
这是因为,当我们输入 ItemCode 时,SAP自动显示默认的 ItemDescription (" MISC_GOODS"),并且不接受您想要的" BANANAS" 强制。
这就是为什么我必须添加新行的原因:强制SAP完成第一行。
然后删除刚才添加的行。 然后,我用"香蕉"覆盖了" MISC_GOODS"。
------
此过程类似于手动填写SAP中的销售订单表格的过程:
我们输入 ItemCode ,然后用 past 标签 ItemDescription 字段允许SAP填充它。
只有这样,我们才能用我们自己的任意描述覆盖默认的 ItemDescription 。
-------
但是您的代码似乎表明您可以同时输入 ItemCode 和任何任意 ItemDescription 。 为什么? 是什么让您的代码正常工作?
我能发现的唯一区别是您执行oOrder.Lines.SetCurrentLine(i-1)。
这可以解释为什么您成功但我失败了吗? 真的很困惑!
--------------------------------------------------- ----------------------------------
第二个拼图:
测试 Lines.Count = 1 的原因是什么?
--------------------------------------------------- ----------------------------------
最好的问候
利昂
我将按照今天晚些时候的回答关闭此线程。
一周热门 更多>