点击此处---> 群内免费提供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
嗨,
我已经通过事件AFVC_PM(已创建)完成了此任务,并将功能Z功能模块(从SWW_WI_CREATE_VIA_EVENT复制)分配给了事件。
它运行良好,正在检查其他可能性。
此致
Ramesh
嘿,
您如何解决它。 您能详细说明一下吗?
此致
Nitish
你好,
我自己没有尝试过,也许原因是AUFK-LTEXT为null,您可以尝试使用第二个方法直接更新它 FM如下:
CO_IH_GET_HEADER
CO_IH_SET_HEADER
使用lv_caufvd执行caufv_upd(SAPLCOBH)。
请参见此线程 http://scn.sap.com/thread/1259861
问候
Ziv
实际上,在此出口中,我没有得到CAUFVD_IMP作为导入参数,而是得到了HEADER_TABLE表参数。 因此,我将相应的字段移动到VAUFVD_IMP(我已经在此exit中声明了该工作区),并使用上述功能模块。 执行FM后,HEADER_TABLE-LTEXT包含空白值。
我在CREATE_TEXT之后使用了CO_IH_SET_HEADER,并且当光标位于此出口时,生产订单号尚未保存在AUFK表中。
此致
Ram
有人可以帮助解决这个问题吗?
此致
Ram
这是我的代码,
数据: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。
一周热门 更多>