点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我开发了一个bdc程序来显示错误记录并下载这些错误记录,但是我没有正确地获得输出。请您帮忙找出我代码中的问题 TYPES:开始于LINE_TYPE, lifnr类型lfbk-lifnr, * koinh型lfbk-koinh, 银行型LFBK银行, bankl型lfbk-bankl, 银行类型lfbk-bankn, koinh型lfbk-koinh, banka型bnka-banka, 分支类型bnka-branch, 迅捷型bnka-swift, LINE_TYPE的结尾。 *使用结构LINE_TYPE创建内部表IT_MAT。 LINE_TYPE和HEADER LINE的DATA IT_MAT TYPE TABLE。 *使用结构ALSMEX_TABLINE创建内部表IT_EXCEL。 带标题行的ALSMEX_TABLINE的数据IT_EXCEL类型表。 *用结构BDCDATA创建内部表IT_BDCDATA。 带有标题行的BDCDATA的DATA IT_BDCDATA TYPE表。 *使用结构BDCMSGCOLL创建内部表IT_MSG。 带标题行的BDCMSGCOLL的数据IT_MSG类型表。 *创建内部表IT_ERRORS。 数据:开始时间为IT_ERRORS,发生次数为10, lifnr类型lfbk-lifnr, * koinh型lfbk-koinh, *银行类型LFBK银行, * bankl型lfbk-bankl, * bankn类型lfbk-bankn, * koinh型lfbk-koinh, * banka类型bnka-banka, *分支类型bnka-branch, * swift类型bnka-swift, TEXT(100), 结束于IT_ERRORS。 *创建变量 数据:S1类型I,E1类型I. *创建文件以输入EXCEL文件 参数P_FILE类型IBIPPARMS-PATH。 *创建字段以下载FLATFILE。 参数P_EFILE类型IBIPPARMS-PATH。 在P_FILE值请求的选择屏幕上。 使用P_FILE执行BROWSE_FILE。 在P_EFILE值请求的选择屏幕上。 使用P_EFILE执行BROWSE_FILE。 选择开始。 执行UPLOAD_EXCELFILE。 进行CONVERT_EXCEL_TO_IT_MAT。 进行VALIDATE_DATA。 选择结束。 如果IT_ERRORS不是INITIAL。 执行DOWLOAD_ERRFILE。 万一。 *&------------------------------------------------ --------------------- * *&表格BROWSE_FILE *&------------------------------------------------ --------------------- * 使用FILE1来形成BROWSE_FILE。 通话功能'F4_FILENAME' *出口 * PROGRAM_NAME = SYST-CPROG * DYNPRO_NUMBER = SYST-DYNNR * FIELD_NAME ='' 输入 FILE_NAME = FILE1 。 ENDFORM。 " BROWSE_FILE *&------------------------------------------------ --------------------- * *&表格UPLOAD_EXCELFILE *&------------------------------------------------ --------------------- * 表格UPLOAD_EXCELFILE。 通话功能'ALSM_EXCEL_TO_INTERNAL_TABLE' 出口 档案名称= P_FILE I_BEGIN_COL = 1 I_BEGIN_ROW = 1 I_END_COL = 5 I_END_ROW = 10 桌子 INTERN = IT_EXCEL 例外情况 INCONSISTENT_PARAMETERS = 1 UPLOAD_OLE = 2 其他= 3 。 *如果SY-SUBRC = 0。 *停留在IT_EXCEL。 *写:/IT_EXCEL-ROW,IT_EXCEL-COL,IT_EXCEL-VALUE。 * ENDLOOP。 *在这里实施适当的错误处理 *万一。 ENDFORM。 " UPLOAD_EXCELFILE *&------------------------------------------------ --------------------- * *&表格CONVERT_EXCEL_TO_IT_MAT *&------------------------------------------------ --------------------- * 表格CONVERT_EXCEL_TO_IT_MAT。 环聊在IT_EXCEL。 案例IT_EXCEL-COL。 何时1。 IT_MAT-LIFNR = IT_EXCEL-VALUE。 何时2。 IT_MAT-BANKS = IT_EXCEL-VALUE。 何时3。 IT_MAT-BANKL = IT_EXCEL-VALUE。 何时4。 IT_MAT-BANKN = IT_EXCEL-VALUE。 何时5。 IT_MAT-KOINH = IT_EXCEL-VALUE。 时间6。 IT_MAT-BANKA = IT_EXCEL-VALUE。 何时7。 IT_MAT-BRNCH = IT_EXCEL-VALUE。 何时8。 IT_MAT-SWIFT = IT_EXCEL-VALUE。 APPEND IT_MAT。 清除:IT_MAT,IT_EXCEL。 结束。 结局。 ULINE。 环聊IT_MAT。 写:/IT_MAT-LIFNR,IT_MAT-BANKS,IT_MAT-BANKL,IT_MAT-BANKN, IT_MAT-KOINH,IT_MAT-BANKA,IT_MAT-BRNCH,IT_MAT-SWIFT。 结局。 ENDFORM。 " CONVERT_EXCEL_TO_IT_MAT *&------------------------------------------------ --------------------- * *&表格VALIDATE_DATA *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * *-> p1文字 * <-p2文字 * ------------------------------------------------- --------------------- * FORM VALIDATE_DATA。 环聊IT_MAT。 刷新:IT_BDCDATA,IT_MSG。 使用'SAPMF02K''0101'执行bdc_dynpro。 使用'BDC_CURSOR'执行bdc_field 'RF02K-D0130'。 使用'BDC_OKCODE'执行bdc_field '/00'。 使用'RF02K-LIFNR'执行bdc_field IT_MAT-lifnr。 使用'RF02K-D0130'执行bdc_field 'X'。 使用'SAPMF02K''0130'执行bdc_dynpro。 使用'BDC_CURSOR'执行bdc_field 'LFBK-KOINH(01)'。 使用'BDC_OKCODE'执行bdc_field '/00'。 使用'LFBK-BANKS(01)'执行bdc_field IT_MAT-BANKS。 使用'LFBK-BANKL(01)'执行bdc_field IT_MAT-bankl。 使用'LFBK-BANKN(01)'执行bdc_field IT_MAT-银行。 使用'LFBK-KOINH(01)'执行bdc_field IT_MAT-koinh。 使用'SAPLBANK''0100'执行bdc_dynpro。 使用'BDC_CURSOR'执行bdc_field " BNKA-SWIFT"。 使用'BDC_OKCODE'执行bdc_field '= ENTR'。 使用'BNKA-BANKA'执行bdc_field IT_MAT-banka。 使用'BNKA-BRNCH'执行bdc_field IT_MAT分支。 使用'BNKA-SWIFT'执行bdc_field IT_MAT快速。 使用'SAPMF02K''0130'执行bdc_dynpro。 使用'BDC_CURSOR'执行bdc_field 'LFBK-KOINH(01)'。 使用'BDC_OKCODE'执行bdc_field '= ENTR'。 使用IT_BDCDATA进行交易'xk02' 更新'A' 模式" N" 到IT_MSG的消息。 使用键MSGTYP ='E'读取表IT_MSG。 如果SY-SUBRC = 0。 IT_ERRORS-LIFNR = IT_MAT-LIFNR。 通话功能" FORMAT_MESSAGE" 出口 ID = SY-MSGID 朗='-D' 否= SY-MSGNO V1 = SY-MSGV1 V2 = SY-MSGV2 V3 = SY-MSGV3 V4 = SY-MSGV4 ** V5 = SY-MSGV5 * V6 = SY-MSGV6 * V7 = SY-MSGV7 * V8 = SY-MSGV8 输入 MSG = IT_ERRORS-TEXT 例外情况 NOT_FOUND = 1 其他= 2 。 APPEND IT_ERRORS。 E1 = E1 + 1。 其他。 S1 = S1 + 1。 万一。 结局。 如果SY-SUBRC = 0。 带有S1"记录已成功转移" E1的消息I100(ZMSG1) "记录包含错误,请参考下载文件"。 万一。 ENDFORM。 " VALIDATE_DATA *&------------------------------------------------ --------------------- * *&表格BDC_DYNPRO *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * *-> P_0241文字 *-> P_0242文字 * ------------------------------------------------- --------------------- * 使用PROG SCRNO的BDC_DYNPRO表格。 IT_BDCDATA-PROGRAM = PROG。 IT_BDCDATA-DYNPRO = SCRNO。 IT_BDCDATA-DYNBEGIN ='X'。 APPEND IT_BDCDATA。 清除IT_BDCDATA。 ENDFORM。 " BDC_DYNPRO *&------------------------------------------------ --------------------- * *&表格BDC_FIELD *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * *-> P_0301文字 *-> P_IT_MAT_MAKTX文字 * ------------------------------------------------- --------------------- * 使用FNAME FVAL形成BDC_FIELD。 IT_BDCDATA-FNAM = FNAME。 IT_BDCDATA-FVAL = FVAL。 APPEND IT_BDCDATA。 清除IT_BDCDATA。 ENDFORM。 " BDC_FIELD *&------------------------------------------------ --------------------- * *&表格DOWLOAD_ERRFILE *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * *-> p1文字 * <-p2文字 * ------------------------------------------------- --------------------- * 表格DOWLOAD_ERRFILE。 *创建类型字符串的变量。 DATA F_EFILE TYPE STRING。 F_EFILE = P_EFILE。 通话功能'GUI_DOWNLOAD' 出口 * BIN_FILESIZE = FILENAME = F_EFILE FILETYPE ='ASC' * APPEND ='' WRITE_FIELD_SEPARATOR ='X' * HEADER ='00' * TRUNC_TRAILING_BLANKS ='' * WRITE_LF ='X' * COL_SELECT ='' * COL_SELECT_MASK ='' * DAT_MODE ='' * CONFIRM_OVERWRITE ='' * NO_AUTH_CHECK ='' * CODEPAGE ='' * IGNORE_CERR = ABAP_TRUE *替换='#' * WRITE_BOM ='' * TRUNC_TRAILING_BLANKS_EOL ='X' * WK1_N_FORMAT ='' * WK1_N_SIZE ='' * WK1_T_FORMAT ='' * WK1_T_SIZE ='' * WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE * SHOW_TRANSFER_STATUS = ABAP_TRUE *重要 *文件长度= 桌子 DATA_TAB = IT_ERRORS * FIELDNAMES = 例外情况 FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6 HEADER_NOT_ALLOWED = 7 SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED = 9 HEADER_TOO_LONG = 10 DP_ERROR_CREATE = 11 DP_ERROR_SEND = 12 DP_ERROR_WRITE = 13 UNKNOWN_DP_ERROR = 14 ACCESS_DENIED = 15 DP_OUT_OF_MEMORY = 16 DISK_FULL = 17 DP_TIMEOUT = 18 FILE_NOT_FOUND = 19 DATAPROVIDER_EXCEPTION = 20 CONTROL_FLUSH_ERROR = 21 其他= 22 。 如果SY-SUBRC <> 0。 *在这里实施适当的错误处理 万一。 ENDFORM。 " DOWNLOAD_ERRFILE 您能通过为我的程序提供解决方案来帮助我吗? 问候, 巴瓦尼
您说有些东西不能正常工作。 您能解释症状和期望吗?
一周热门 更多>