无法在SFTP服务器中打开Excel文件

2020-08-14 03:36发布

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

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


大家好,

我正在使用以下ABAP代码将excel文件以二进制格式传输到AL11。

"我的基础"将是执行一些基本脚本的任务,将文件从AL11移至SFTP服务器。

问题:当我在SFTP服务器中打开文件时,它就像不可读的格式。

有人有什么想法吗?

报告zdemo_excel25。

 数据:lo_excel TYPE REF TO zcl_excel,
       lo_excel_writer类型参考zif_excel_writer,
       lo_worksheet类型参考zcl_excel_worksheet,
       lo_exception类型参考cx_root。

 数据:lv_file TYPE xstring。

 常量:lv_file_name TYPE字符串VALUE'25_HelloWorld.xlsx'。
 数据:lv_default_file_name TYPE字符串。
 数据:lv_error TYPE字符串。

 通话功能" FILE_GET_NAME_USING_PATH"
   出口
     logical_path ='LOCAL_TEMPORARY_FILES''逻辑路径'
     file_name = lv_file_name"文件名
   输入
     file_name_with_path = lv_default_file_name。 带有路径的文件名
 "创建活动工作表
 创建对象lo_excel。

 "获取活动表
 lo_worksheet = lo_excel-> get_active_worksheet()。
 lo_worksheet-> set_title(ip_title ='Sheet1')。
 lo_worksheet-> set_cell(ip_column ='B'ip_row = 2 ip_value ='Hello world')。

 创建对象lo_excel_writer类型zcl_excel_writer_2007。
 lv_file = lo_excel_writer-> write_file(lo_excel)。

 尝试。
     OPEN DATASET lv_default_file_name用于二进制模式下的输出。
     将lv_file传输到lv_default_file_name。
     关闭数据集lv_default_file_name。
   捕获cx_root INTO lo_exception。
     lv_error = lo_exception-> get_text()。
     消息lv_error类型" I"。
 ENDTRY。

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

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


大家好,

我正在使用以下ABAP代码将excel文件以二进制格式传输到AL11。

"我的基础"将是执行一些基本脚本的任务,将文件从AL11移至SFTP服务器。

问题:当我在SFTP服务器中打开文件时,它就像不可读的格式。

有人有什么想法吗?

报告zdemo_excel25。

 数据:lo_excel TYPE REF TO zcl_excel,
       lo_excel_writer类型参考zif_excel_writer,
       lo_worksheet类型参考zcl_excel_worksheet,
       lo_exception类型参考cx_root。

 数据:lv_file TYPE xstring。

 常量:lv_file_name TYPE字符串VALUE'25_HelloWorld.xlsx'。
 数据:lv_default_file_name TYPE字符串。
 数据:lv_error TYPE字符串。

 通话功能" FILE_GET_NAME_USING_PATH"
   出口
     logical_path ='LOCAL_TEMPORARY_FILES''逻辑路径'
     file_name = lv_file_name"文件名
   输入
     file_name_with_path = lv_default_file_name。 带有路径的文件名
 "创建活动工作表
 创建对象lo_excel。

 "获取活动表
 lo_worksheet = lo_excel-> get_active_worksheet()。
 lo_worksheet-> set_title(ip_title ='Sheet1')。
 lo_worksheet-> set_cell(ip_column ='B'ip_row = 2 ip_value ='Hello world')。

 创建对象lo_excel_writer类型zcl_excel_writer_2007。
 lv_file = lo_excel_writer-> write_file(lo_excel)。

 尝试。
     OPEN DATASET lv_default_file_name用于二进制模式下的输出。
     将lv_file传输到lv_default_file_name。
     关闭数据集lv_default_file_name。
   捕获cx_root INTO lo_exception。
     lv_error = lo_exception-> get_text()。
     消息lv_error类型" I"。
 ENDTRY。
付费偷看设置
发送
4条回答
compass1988
1楼-- · 2020-08-14 03:42

Siong Chao Ng

由于缺少足够的特权,SFTP会发生此问题/对于要放置的文件的权限,您应该依次按以下步骤进行操作:

1)在您的BASIS团队的帮助下,以Linux为操作系统创建一个外部命令名称。

2)操作系统命令名称必须为CHMOD。

3)应用所需的参数值(为文件"完全访问"提供了777),您可以与BASIS小组讨论更多

3)创建外部命令后,必须将命令与文件路径集成。

4)在ABAP程序中,使用以下命令打开文件路径 打开数据集,调用功能模块SXPG_COMMAND_EXECUTE以应用所需的权限,该权限是通过外部命令创建的。 下面的屏幕截图供参考。 这里的命令名称将保存在SM69中创建的命令,其他参数将保存在上一步中打开的路径。

5)在上面的调用中,如果状态不等于E,那么将成功应用权限。

6)将文件放置在具有这些权限的位置后,您可以询问 基础团队将文件从Al11移到SFTP并尝试从SFTP访问文件。

7)这将帮助您访问文件。

注意!

# p#

您能否澄清一下,支持xlsx的应用程序是否可以明确读取AL11中的文件? 例如,使用Trx从AL11下载文件。 CG3Y(或在CRM系统中,请使用FM ARCHIVFILE_SERVER_TO_CLIENT)。/li>

  • 如果在AL11中可读,则您需要向基础团队解决该问题,并且他们需要评估他们将文件从SAP应用程序服务器复制到SFTP服务器的方式。
  • ZJXianG
    2楼-- · 2020-08-14 03:56

    嗨迈克尔,

    从AL11可以使用CG3Y读取。 移至SFTP时不可读。

    小熊yu生菜
    3楼-- · 2020-08-14 03:53

    如果是SFTP问题,请提供SFTP详细信息。 请用对应于SFTP的一个标签替换ABAP开发标签。

    大简至美
    4楼-- · 2020-08-14 03:54

    这很简单 Sandra Rossi :),我在使用SFTP的文件界面中遇到了类似的问题。

    致谢!

    一周热门 更多>