创建生产订单时如何通过ABAP更新生产订单长文本?

2020-08-16 20:28发布

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

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


大家好,


在创建生产订单时,需要将Project长文本附加到生产订单长文本上(即使我们不为生产订单输入任何长文本,也需要将Project中的文本复制到生产订单长文本中 文字)。

为此,我在客户出口" EXIT_SAPLCOBT_001"中编写了以下代码。

首先,我正在使用READ_TEXT读取项目的长文本。

然后使用READ_TEXT读取生产订单长文本。

将项目长文本追加到生产订单长文本并使用SAVE_TEXT保存。

使用COMMIT_TEXT进行提交。

以上逻辑在一种情况下有效。

情况1:生产订单长文本不为空。

如果我们在生产订单长文本中输入内容,则效果很好。


情况2:生产订单长文本为空白。

当我们不在生产订单长文本下输入任何文本时,它不起作用。

保存文本后,我可以看到STXH表已使用相应的条目进行了更新,但长文本未在生产订单中更新。 并且AUFK-LTEXT字段也不会使用语言字段更新。 对于第二种情况,我也尝试使用CREATE_TEXT而不是SAVE_TEXT,但它也不起作用。


可以帮您解决此要求吗?


谢谢



此致

Ramesh

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

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


大家好,


在创建生产订单时,需要将Project长文本附加到生产订单长文本上(即使我们不为生产订单输入任何长文本,也需要将Project中的文本复制到生产订单长文本中 文字)。

为此,我在客户出口" EXIT_SAPLCOBT_001"中编写了以下代码。

首先,我正在使用READ_TEXT读取项目的长文本。

然后使用READ_TEXT读取生产订单长文本。

将项目长文本追加到生产订单长文本并使用SAVE_TEXT保存。

使用COMMIT_TEXT进行提交。

以上逻辑在一种情况下有效。

情况1:生产订单长文本不为空。

如果我们在生产订单长文本中输入内容,则效果很好。


情况2:生产订单长文本为空白。

当我们不在生产订单长文本下输入任何文本时,它不起作用。

保存文本后,我可以看到STXH表已使用相应的条目进行了更新,但长文本未在生产订单中更新。 并且AUFK-LTEXT字段也不会使用语言字段更新。 对于第二种情况,我也尝试使用CREATE_TEXT而不是SAVE_TEXT,但它也不起作用。


可以帮您解决此要求吗?


谢谢



此致

Ramesh

付费偷看设置
发送
6条回答
lukcy2020
1楼 · 2020-08-16 21:15.采纳回答

嗨,

我已经通过事件AFVC_PM(已创建)完成了此任务,并将功能Z功能模块(从SWW_WI_CREATE_VIA_EVENT复制)分配给了事件。


它运行良好,正在检查其他可能性。



此致

Ramesh

compass1988
2楼-- · 2020-08-16 21:24

嘿,

您如何解决它。 您能详细说明一下吗?

此致

Nitish

太Q了
3楼-- · 2020-08-16 21:10

你好,

我自己没有尝试过,也许原因是AUFK-LTEXT为null,您可以尝试使用第二个方法直接更新它 FM如下:

CO_IH_GET_HEADER

CO_IH_SET_HEADER

使用lv_caufvd执行caufv_upd(SAPLCOBH)。

请参见此线程 http://scn.sap.com/thread/1259861

问候

Ziv

nice_wp
4楼-- · 2020-08-16 21:20

实际上,在此出口中,我没有得到CAUFVD_IMP作为导入参数,而是得到了HEADER_TABLE表参数。 因此,我将相应的字段移动到VAUFVD_IMP(我已经在此exit中声明了该工作区),并使用上述功能模块。 执行FM后,HEADER_TABLE-LTEXT包含空白值。


我在CREATE_TEXT之后使用了CO_IH_SET_HEADER,并且当光标位于此出口时,生产订单号尚未保存在AUFK表中。

此致

Ram

土豆飞人
5楼-- · 2020-08-16 21:12

有人可以帮助解决这个问题吗?

此致

Ram

悻福寶寶
6楼-- · 2020-08-16 21:24

这是我的代码,

数据:lv_prod_tdname TYPE stxh-tdname。
数据:lv_proj_tdname TYPE stxh-tdname。

数据:lt_prod_lines TYPE STANDARD TABLE OF TLINE。
DATA:lt_proj_lines TYPE STANDARD TABLE。 br>数据:lt_lines类型标准行表。
数据:ls_header TYPE thead。
数据:lv_insert TYPE c。
数据:wa_caufvd TYPE caufvd。
数据:wa_aufk TYPE aufk。

DATA caufvd_imp TYPE caufvd。
DATA tc10_wa TYPE tc10。
DATA rc27s_imp TYPE rc27s。
DATA caufvd_imp_old TYPE caufvd。
DATA allocd_imp TYPE alloced。 br> *读取项目文本

读取表position_table索引1。
将'E'position_table-projn并入lv_proj_tdname。

调用函数'READ_TEXT'
导出
客户端 = sy-mandt
id ='LTXT'
语言= sy-langu
名称= lv_proj_tdname
对象='PMS'
表格
行= lt_proj_lines
例外
> id = 1
语言= 2
名称= 3
not_found = 4
对象= 5
reference_check = 6
错误_ac cess_to_archive = 7
其他=8。
IF sy-subrc EQ 0.

*读取生产订单文本

READ TABLE header_table INDEX 1.
合并sy-mandt header_table-aufnr INTO lv_prod_tdname。
呼叫功能'READ_TEXT'
导出
客户端= sy-mandt
id ='KOPF'
语言= sy-langu
名称= lv_prod_tdname
对象='AUFK'
表格
行= lt_prod_lines
例外情况
id = 1
语言= 2
名称= 3
not_found = 4
对象= 5
reference_check = 6
错误_access_to_archive = 7
其他=8。
*使用新表将项目文本追加到生产订单文本
将lt_prod_lines添加到lt_lines。
追加lt_proj_lines 到lt_lines。
ENDIF。

*保存新的生产订单长文本
如果不是lt_lines是INITIAL的话。
ls_header-tdobject ='AUFK'。
ls_header-tdname = lv_prod_tdname。
ls_header-tdspras = sy-language。
ls_header-tdid ='KOPF'。

*如果生产订单长文本不为空白
IF lt_prod_lines []无效。
调用功能'SAVE_TEXT'
导出
客户端= sy-mandt
标头= ls_header
插入='X'
表格
行= lt_lines
例外情况
id = 1
语言= 2
名称= 3
对象= 4
其他= 5
如果sy-subrc EQ 0.
调用 功能'COMMIT_TEXT'
导出
对象= ls_header-tdobject
名称= ls_header-tdname
id = ls_header-tdid
语言= ls_header-tdspras。
ENDIF。
ENDIF 。

*如果生产订单lon文本为空白

如果lt_prod_lines []是INITIAL。
通话功能'CREATE_TEXT'
导出
fid = ls_header-tdid
语言= ls_header-tdspras
fname = ls_header-tdname
fobject = ls_header-tdobject
save_direct ='X'
TABLES
flines = lt_lines
EXCEPTIONS
no_init = 1
no_save = 2
其他=3。
如果sy-subrc EQ0。
调用功能'COMMIT_TEXT'
导出
object = ls_header-tdobject
name = ls_header- tdname
id = ls_header-tdid
语言 年龄= ls_header-tdspras。

将header_table移动到caufvd_imp。
caufvd_imp-ltext ='X'。

通话功能'CO_IH_SET_HEADER'
导出
caufvd_imp = caufvd_imp。
执行caufv_upd(saplcobh),使用caufvd_imp。
ENDIF。
ENDIF。
ENDIF。

一周热门 更多>