2020-09-04 09:10发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我们正在使用标准的DM包"导出交易数据",并且已激活标头选项。 但是我想知道我们是否可以更改文件的标准标头(模型,用户,日期,时间)以用不同的数据填充它。
先谢谢您
此致
亚历克斯
我刚刚删除了我的名字。
我正在提取主数据,但正在更改文件的格式和名称,因此撤消badis不适用于此任务。 对于自定义逻辑badis,我必须从表中选择数据,而在ujd_routine中,我只是在ir_data表中接收映射和转换的数据。
致谢!
P.S。 抱歉,ROUTINE badi与您的要求有何关系????
您好Vadim,
键入UJD_ROUTINE
完整代码是:
方法if_ujd_routine〜runroutine。
类型: ty_ascta的开始, cod_ctacargabal(30)c类型, descr_ctacargabal(45)c类型, cod_tipocta(2)c类型, cod_ctacargabal_p(30)类型 c, ty_ascta的结尾。
数据:lo_dataref类型REF TO数据, lv_docname类型ujf_doc-docname, imess类型uj0_t_message, xmess imess行, lv_str类型字符串, ruta类型字符串, is_user类型uj0_s_user, gcl_objeto类型REF到cl_ujf_file_service_mgr, lo_file_service_mgr类型REF到cl_ujf_file_service_mgr, lo_exception类型s REF, > lt_ascta类型标准表ty_ascta, ls_ascta类型ty_ascta。
数据:lv_dia(2)TYPE n, lv_mes(2)TYPE n, lv_ano(4)TYPE n, lv_fecha_info(10)TYPE n, lv_timestamp TYPE字符串,< br> tsl TYPE timestampl, lv_3seg(3)TYPE n。
字段符号:类型标准表, 任何类型。
常量:lc_environment_id TYPE uj_appset_id VALUE'PROJECT', lc_application_id TYPE uj_appl_id VALUE'Accounting', lc_root_webfolders(17)TYPE c VALUE'\ ROOT \ WEBFOLDERS_data(s), tata ta c值'\ DATAMANAGER \ DATAFILES \ FILE。', lc_formato(4)类型c值'.txt', lc_sep(1)TYPE c值';'。
ASSIGN ir_data-> *至。创建数据lo_dataref类似于的行。 ASSIGN lo_dataref-> *至。
移动到lt_ascta。
lv_ano = sy-datum(4)。 lv_mes = sy-datum + 4(2)。 lv_dia = sy-datum + 6(2)。合并lv_ano'/'lv_mes' /'lv_dia INTO lv_fecha_info。
将lt_ascta循环到ls_ascta中。如果sy-tabix =1。 lv_str = lv_fecha_info && lc_sep &&"" Fecha deenvío sy-uzeit。 "" Hora deenvío ls_content-line = lv_str。 APPEND ls_content到lt_content。 ENDIF。
使用'&'来翻译ls_ascta-cod_ctacargabal。使用'&'来翻译ls_ascta-descr_ctacargabal。使用'&'来翻译ls_ascta-cod_tipocta。翻译ls_ascta-ga'_usta_ctacargabal。 > lv_str = ls_ascta-cod_ctacargabal && lc_sep && ls_ascta-descr_ctacargabal && lc_sep && ls_ascta-cod_tipocta && lc_sep && ls_ascta-co-al。 ls_content至lt_content。 ENDLOOP。
CONCATENATE lc_root_webfolders lc_environment_id'\'lc_application_id lc_datamanager_datafiles_ascta sy-datum lc_formato INTO ruta。 is_user-user_id = sy-uname。
lv_docname =芸香。
cl_ujf_file_service_mgr =>工厂(导出 is_user = is_user i_appset = lc_environment_id 接收 r_manager = gcl_objeto)。
尝试。 gcl_objeto-> delete_document(导出i_docname = lv_docname)。捕获cx_ujf_file_service_error INTO lo_exception。 ENDTRY。
尝试。呼叫方法gcl_objeto-> put_document_data_mgr 导出 i_docname = lv_docname i_append = abap_true i_doc_content = lt_content。捕获cx_ujf_file_service_error = into lo_ion。 convert_ex_to_message(lo_exception)。如果不是imess。读取表imess到xmess索引1。带有xmess-message的e001(00)消息。 ENDIF。 ENDTRY。 >
终结法。
最多设置5个标签!
我刚刚删除了我的名字。
我正在提取主数据,但正在更改文件的格式和名称,因此撤消badis不适用于此任务。 对于自定义逻辑badis,我必须从表中选择数据,而在ujd_routine中,我只是在ir_data表中接收映射和转换的数据。
致谢!
P.S。 抱歉,ROUTINE badi与您的要求有何关系????
您好Vadim,
键入UJD_ROUTINE
完整代码是:
方法if_ujd_routine〜runroutine。
类型:
ty_ascta的开始,
cod_ctacargabal(30)c类型,
descr_ctacargabal(45)c类型,
cod_tipocta(2)c类型,
cod_ctacargabal_p(30)类型 c,
ty_ascta的结尾。
数据:lo_dataref类型REF TO数据,
lv_docname类型ujf_doc-docname,
imess类型uj0_t_message,
xmess imess行,
lv_str类型字符串,
ruta类型字符串,
is_user类型uj0_s_user,
gcl_objeto类型REF到cl_ujf_file_service_mgr,
lo_file_service_mgr类型REF到cl_ujf_file_service_mgr,
lo_exception类型s REF, > lt_ascta类型标准表ty_ascta,
ls_ascta类型ty_ascta。
数据:lv_dia(2)TYPE n,
lv_mes(2)TYPE n,
lv_ano(4)TYPE n,
lv_fecha_info(10)TYPE n,
lv_timestamp TYPE字符串,< br> tsl TYPE timestampl,
lv_3seg(3)TYPE n。
字段符号:类型标准表,
任何类型。
常量:lc_environment_id TYPE uj_appset_id VALUE'PROJECT', tata ta c值'\ DATAMANAGER \ DATAFILES \ FILE。',
lc_application_id TYPE uj_appl_id VALUE'Accounting',
lc_root_webfolders(17)TYPE c VALUE'\ ROOT \ WEBFOLDERS_data(s),
lc_formato(4)类型c值'.txt',
lc_sep(1)TYPE c值';'。
ASSIGN ir_data-> *至。的行。。
创建数据lo_dataref类似于
ASSIGN lo_dataref-> *至
移动到lt_ascta。
lv_ano = sy-datum(4)。
lv_mes = sy-datum + 4(2)。
lv_dia = sy-datum + 6(2)。
合并lv_ano'/'lv_mes' /'lv_dia INTO lv_fecha_info。
将lt_ascta循环到ls_ascta中。
如果sy-tabix =1。
lv_str =
lv_fecha_info && lc_sep &&"" Fecha deenvío
sy-uzeit。 "" Hora deenvío
ls_content-line = lv_str。
APPEND ls_content到lt_content。
ENDIF。
使用'&'来翻译ls_ascta-cod_ctacargabal。
使用'&'来翻译ls_ascta-descr_ctacargabal。
使用'&'来翻译ls_ascta-cod_tipocta。
翻译ls_ascta-ga'_usta_ctacargabal。 > lv_str =
ls_ascta-cod_ctacargabal && lc_sep &&
ls_ascta-descr_ctacargabal && lc_sep &&
ls_ascta-cod_tipocta && lc_sep &&
ls_ascta-co-al。 ls_content至lt_content。
ENDLOOP。
CONCATENATE lc_root_webfolders lc_environment_id'\'lc_application_id lc_datamanager_datafiles_ascta sy-datum lc_formato INTO ruta。
is_user-user_id = sy-uname。
lv_docname =芸香。
cl_ujf_file_service_mgr =>工厂(
导出
is_user = is_user
i_appset = lc_environment_id
接收
r_manager = gcl_objeto)。
尝试。
gcl_objeto-> delete_document(
导出i_docname = lv_docname)。
捕获cx_ujf_file_service_error INTO lo_exception。
ENDTRY。
尝试。
呼叫方法gcl_objeto-> put_document_data_mgr
导出
i_docname = lv_docname
i_append = abap_true
i_doc_content = lt_content。
捕获cx_ujf_file_service_error = into lo_ion。 convert_ex_to_message(lo_exception)。
如果不是imess。
读取表imess到xmess索引1。
带有xmess-message的e001(00)消息。
ENDIF。
ENDTRY。 >
终结法。
一周热门 更多>