为什么用户无法从桌面上传Excel ...

2020-08-30 20:46发布

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

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


尊敬的大师,

我编写了一个自定义程序,然后使用FM: text_convert_xls_to_sap 将excel上载到SAP。

有些用户成功上传了excel,但是有些用户上传失败。

最奇怪的是,他们用自己的电脑上传同一文档

然后我尝试复制未能上载的用户ID,然后我登录SAP上载excel,上载成功。...

为什么会这样?

任何建议?

谢谢。

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

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


尊敬的大师,

我编写了一个自定义程序,然后使用FM: text_convert_xls_to_sap 将excel上载到SAP。

有些用户成功上传了excel,但是有些用户上传失败。

最奇怪的是,他们用自己的电脑上传同一文档

然后我尝试复制未能上载的用户ID,然后我登录SAP上载excel,上载成功。...

为什么会这样?

任何建议?

谢谢。

付费偷看设置
发送
12条回答
骆驼绵羊
1楼 · 2020-08-30 21:04.采纳回答

亲爱的

对不起,用户无法上传excel的原因与Spreadsheet软件有关,而不与ABAP代码有关。 用户公司中有两种办公软件,Microsoft和Kingsoft。 当用户将Excel上载到SAP时,金山词霸将弹出消息:无效的指针操作...。因此,我卸载了金山词霸,效果很好。

我真的很感谢您的帮助,即使我尝试了您提到的解决方案,也没有用,因为问题的关键不是ABAP代码。

非常感谢您!

代楠1984
2楼-- · 2020-08-30 21:03

是的

给出文件在Presentation Server中的正确路径。

或者您可以使用此FM获取F4帮助来浏览文件位置并选择路径。

参数:p_ufile,如rlgrap文件名。

在p_ufile的值请求的选择屏幕上。
执行get_file。

form get_file。
调用函数'KD_GET_FILENAME_ON_F4'
导出
mask =''
更改
file_name = p_ufile
异常
mask_too_long = 1
其他=2。
sy-subrc <> 0.
消息i003(ztmtl)。
endif。
终端格式。

这将使用正确的路径获取文件。

希望这会有所帮助。

关于...

苏丹娜

哎,真难
3楼-- · 2020-08-30 21:10

嗨Ya-Chun,

您得到什么错误?

您是否要通过变体在选择屏幕中提供输入?

在这种情况下,您需要更改文件位置的路径。

关于...

Sultana

Aaron 3364
4楼-- · 2020-08-30 20:52

这是正常情况..我想,就您而言。.文件路径超过128个字符时会发生。问题在于下一行。

参数:P_FILE TYPE RLGRAP-FILENAME MODIF ID GP2。

RLGRAP-FILENAME只能容纳128个字符。

当用户从C驱动器或D驱动器加载文件时,它可以工作;每当用户尝试从桌面加载文件时,文件路径可能会被截断,因此可能无法运行。

有两种方法可以解决您的问题。

1)您可以要求用户始终从目录加载文件,而不要从桌面加载excel文件作为文件 路径因长度而被截断。

2)更改参数:P_FILE(255)MODIF ID GP2。

并将FM(TEXT_CONVERT_XLS_TO_SAP)复制到Z *,并确保文件路径可以容纳255个字符。

我想以上信息将帮助您关闭线程。

< p>关于,

SaiRam

spaceman01
5楼-- · 2020-08-30 20:54

嗨,

您能提供给我们代码..文件格式等吗

致谢

阿莫尔

土豆飞人
6楼-- · 2020-08-30 21:10

嗨Vinodkumar,

它是.XLS格式,而不是xlsx。

zhangjiyang1323
7楼-- · 2020-08-30 21:04

嗨,

上传失败后是否检查过sy--subrc?

在这种情况下,我想建议另一种在上载按钮的选择屏幕上选择文件的方法。 调用FM text_convert_xls_to_sap之前,请检查以下代码。

为p_upload选择值的选择屏幕。

呼叫方法cl_gui_frontend_services => get_desktop_directory
更改
desktop_directory = gv_desktop
例外情况
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
其他=4。
> IF sy-subrc <>0。
消息ID sy-msgid类型sy-msgty编号sy-msgno
带sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
ENDIF。

调用方法cl_gui_frontend_services => file_open_dialog
导出
window_title ='选择Excel文件'
default_extension ='XLSX'
file_filter ='Excel文件(* .XLS)| * .XLS | Excel文件(* .XLSX)| * .XLSX |'
初始目录= gv_desktop
更改
file_table = gt_file_table
rc = gv_rc
例外情况
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
其他= 5。

如果sy-subrc = 0并且gv_rc =1。
读取表gt_file_table INTO gs_file_table索引1。
p_upload = gs_file_table-filename。
ENDIF。

******************************

现在您可以在以下程序的选择区域中使用FM TEXT_CONVERT ****

通话功能'TEXT_CONVERT_XLS_TO_SAP'
导出
i_field_seperator ='X'

i_line_header ='X'

i_tab_raw_data = lt_tab_raw_data
i_filename = p_upload
表格
i_tab_converted_data =
例外情况
conversion_failed = 1
OTHERS =2。
IF sy-subrc <> 0.
消息ID sy-msgid类型sy-msgty编号sy-msgno
带sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
ENDIF。

谢谢

Deeps

一周热门 更多>