点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好。 我正在处理此演示报告,其中有一个.txt格式的本地文件,其中包含销售订单标题数据。 我必须获取数据并稍后将其添加到内部表中,该数据应该在已经存在数据的ztable中进行更新。 我将我的代码附加到设法将数据从本地文件移动到内部表的位置。 并且需要帮助将相同的数据更新到ztable中。 ztable中的字段与我在structure中创建的字段相同。请做必要的工作。 谢谢。 报告ztst1 LINE-SIZE 500。 类型:ty_headr的开头, zzsdoc TYPE CHAR15," zordh_t-zzsdoc, zzdcat TYPE CHAR15," zordh_t-zzdcat, zzdtyp TYPE CHAR15,"-zzdtyp, zzsorg TYPE CHAR15,"-zzsorg, zzdist TYPE CHAR15," zordh_t-zzdist, zzdivi TYPE CHAR15," zordh_t-zzdivi, zzcust TYPE CHAR15," zordh_t-zzcust, zzcpur TYPE CHAR15," zordh_t-zzcpur, zzdcur TYPE CHAR15," zordh_t-zzdcur, zznamt TYPE CHAR15," zordh_t-zznamt, zzerdat TYPE CHAR15," zordh_t-zzerdat, ty_headr的结尾。 类型:开始于ty_item, zzsdoc TYPE CHAR15," zordi_t-zzsdoc, zzsitm TYPE CHAR15," zordi_t-zzsitm, zzmatr TYPE CHAR15," zordi_t-zzmatr, zzmdes TYPE CHAR15," zordi_t-zzmdes, zzoqty TYPE CHAR15," zordi_t-zzoqty", zzunit TYPE CHAR15," zordi_t-zzunit, zznamt TYPE CHAR15," zordi_t-zznamt", ty_item结束。 数据:ty_headr的gt_headr类型标准表, gt_item TYPE标准表ty_item, wt_headr TYPE ty_headr, wt_item TYPE ty_item, gt_file TYPE FILETABLE, gs_file TYPE FILE_TABLE, gv_rc类型i。 参数:p_path类型字符串。 跳过2。 参数:r1单选按钮组grp1默认'X'用户命令actn, r2单选按钮组grp1。 在p_path值请求的选择屏幕上。 呼叫方法cl_gui_frontend_services => file_open_dialog *出口 * window_title = * default_extension = * default_filename = * file_filter = * with_encoding = * initial_directory = *多选= 改变 file_table = gt_file rc = gv_rc * user_action = * file_encoding = *例外情况 * file_open_dialog_failed = 1 * cntl_error = 2 * error_no_gui = 3 * not_supported_by_gui = 4 *其他= 5 。 如果sy-subrc <> 0。 *在这里实施适当的错误处理 其他。 将表gt_file读入gs_file索引1。 如果sy-subrc = 0。 p_path = gs_file-文件名。 万一。 万一。 选择开始。 案例" X"。 当r1。 呼叫方法cl_gui_frontend_services => gui_upload 出口 文件名= p_path filetype ='DAT'" ASC * has_field_separator =空格 * header_length = 0 * read_by_line ='X' * dat_mode =空格 *代码页=空格 * ignore_cerr = ABAP_TRUE *替换='#' * virus_scan_profile = *重要 *文件长度= *标头= 改变 data_tab = gt_headr * isscanperformed =空格 *例外情况 * file_open_error = 1 * file_read_error = 2 * no_batch = 3 * gui_refuse_filetransfer = 4 * invalid_type = 5 * no_authority = 6 *未知错误= 7 * bad_data_format = 8 * header_not_allowed = 9 * spacer_not_allowed = 10 * header_too_long = 11 * unknown_dp_error = 12 * access_denied = 13 * dp_out_of_memory = 14 * disk_full = 15 * dp_timeout = 16 * not_supported_by_gui = 17 * error_no_gui = 18 *其他= 19 。 如果sy-subrc <> 0。 *在这里实施适当的错误处理 万一。 将gt_headr循环到wt_headr。 写:/wt_headr-zzsdoc,wt_headr-zzdcat,wt_headr-zzdtyp,wt_headr-zzsorg,wt_headr-zzdist,wt_headr-zzdivi,wt_headr-zzcust,wt_headr-zzcpur,wt_headr-zzdcur,wt_headr-zznamt,wt。 结局。 当r2。 通话功能'GUI_UPLOAD' 出口 文件名= p_path FILETYPE ='DAT' * HAS_FIELD_SEPARATOR ='' * HEADER_LENGTH = 0 * READ_BY_LINE ='X' * DAT_MODE ='' * CODEPAGE ='' * IGNORE_CERR = ABAP_TRUE *替换='#' * CHECK_BOM ='' * VIRUS_SCAN_PROFILE = * NO_AUTH_CHECK ='' *重要 *文件长度= *标题= 桌子 data_tab = GT_ITEM *变化 * ISSCANPERFORMED ='' *例外情况 * FILE_OPEN_ERROR = 1 * FILE_READ_ERROR = 2 * NO_BATCH = 3 * GUI_REFUSE_FILETRANSFER = 4 * INVALID_TYPE = 5 * NO_AUTHORITY = 6 * UNKNOWN_ERROR = 7 * BAD_DATA_FORMAT = 8 * HEADER_NOT_ALLOWED = 9 * SEPARATOR_NOT_ALLOWED = 10 * HEADER_TOO_LONG = 11 * UNKNOWN_DP_ERROR = 12 * ACCESS_DENIED = 13 * DP_OUT_OF_MEMORY = 14 * DISK_FULL = 15 * DP_TIMEOUT = 16 *其他= 17 。 如果sy-subrc <> 0。 *在这里实施适当的错误处理 万一。 * * 在gt_item INTO wt_item中循环。 写:/wt_item-zzsdoc,wt_item-zzsitm,wt_item-zzmatr,wt_item-zzmdes,wt_item-zzoqty,wt_item-zzunit,wt_item-zznamt。 结局。 端盖。
Karon,您的wt_header应该与Z_HEADER_TABLE类型兼容。
请参阅下文。
转移到与ZTABLE行兼容的内部表并将此内部表插入数据库表中会发生什么问题?
这些行应该起作用。
将gt_headr中的您可以为上述要求导出一个简单的示例代码还是请修改我的代码。 因为第一个对话将是内部标签中的标题数据。 我如何将数据移动到ztable。
您好 Karon Christydoss
"修改"和"插入"两个选项均已 已经提供了,您还有一个选择是update语句,通常这对于自定义表更新不是必需的,插入和修改应该可以工作。
Karon Christydoss ,您可以使用此方法。
第1步:定义一个selection-scree变量,以便在运行时确定文件中是否包含标题。
第2步:在循环内添加此代码段,以绕过内部表处理的第一行。
一周热门 更多>