设为首页 收藏本站
查看: 1240|回复: 0

[经验分享] SAP 上传TXT文件夹

[复制链接]
累计签到:3 天
连续签到:1 天
发表于 2015-9-19 09:59:22 | 显示全部楼层 |阅读模式
  1. cl_gui_frontend_services类
  这个类提供了很多对操作系统文件的操作,例如拷贝,列出文件名等等。这些方法和java里还有我写过的VBA里那些放都差不多,所以以后如果要有一些对文件的操作可以用这个类提供的静态方法。顺便说下TEST_FRONTEND_SERVICES在IDES是个范例程序可以在里面看看,不过只写了几个方法的运用。
  2.WS_UPLOAD和GUI_UPLOAD
  这两者的区别我就从今天碰到的一个问题里用现象去表明他们的区别吧,从底层代码看太痛苦了。我写了一个小的测试程序用来读取一个txt文本,再输出list中。txt文本是中文的。我分别用WS_UPLOAD和GUI_UPLOAD实现,发现怎样都实现不了,只能实现英文。我觉得这不可能了啊!装了Unicode不可能读不了中文的,后来在同事的提醒下用中文登陆系统程序就可以实现了!可是我觉得仍然不对,在英文系统下也应该能读中文,毕竟GUI和server都有Unicode,在参数列表里我发现了code page这个参数,于是我加上code page = '8400' 。呵呵,终于发现可以在英文登陆状态下上传中文文本了,不过使用WS_UPLOAD仍然不能上传中文,而GUI_UPLOAD此时就可以。
  我又查阅了相关资料果然,WS_UPLOAD是一个要被GUI_UPLOAD替代的funtion,所以以后写程序就都用GUI_UPLOAD就好了。
  3.调用GUI_UPLOAD的两种方式
  GUI_UPLOAD虽然是cl_gui_frontend_services类的静态方法但是也可以用function的方法调用!SAP估计将某些静态方法封装了一层所以就可以用调用函数的方式调用GUI_UPLOAD方法。我又测试了下GUI_DOWNLOAD和GET_WINDOWS_DIRECTORY,不过只有GUI_DOWNLOAD可以用函数调用。看来不是所有的静态方法都可以用函数调用。下面的代码提供了一个简单的调用GUI_UPLOAD的代码:
  
  data: filename type string VALUE 'd:ToolsReadme.txt'.
TYPES: begin of itab,
      fl1(300)  type c,
end of itab.
DATA: data_tab type STANDARD TABLE OF itab,
      wa_tab LIKE LINE OF data_tab.
  call method cl_gui_frontend_services=>gui_upload
         exporting
              filename                = filename
              filetype                = 'ASC'
              codepage                = '8400'
         changing
              data_tab                = data_tab
         exceptions
              file_open_error         = 1
              file_read_error         = 2
              no_batch                = 3
              gui_refuse_filetransfer = 4
              no_authority            = 6
              unknown_error           = 7
              bad_data_format         = 8
              unknown_dp_error        = 12
              access_denied           = 13
              others                  = 17.
LOOP AT data_tab INTO wa_tab.
  WRITE:/ wa_tab-fl1.
ENDLOOP.
  经测试读取中文文档是没有问题的,但是filetype是不能设置为BIN。
  4.分享小程序
  这是在SDN上查找资料的过程中发现的,觉得比较有启发的程序。完成的功能是打开一个对话框,选择多个文件,接着将这些文件名打印输出。程序如下:
  
  SELECT-OPTIONS: so_file FOR file_table NO INTERVALS.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_file-low.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
*    WINDOW_TITLE            =
*    DEFAULT_EXTENSION     =
*    DEFAULT_FILENAME        =
*    FILE_FILTER             =
      initial_directory       = 'e:study'
      multiselection          = 'X'
    CHANGING
      file_table                      = lt_file_names[]
      rc                                 = lv_subrc
*    USER_ACTION             =
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error                        = 2
      error_no_gui                    = 3
      OTHERS                                 = 4.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  so_file-sign = 'I'.
  so_file-option = 'EQ'.
  LOOP AT lt_file_names INTO lwa_file_name.
    so_file-low = lwa_file_name.
    APPEND so_file.
  ENDLOOP.
START-OF-SELECTION.
  LOOP AT so_file.
    WRITE: / so_file-low.
  ENDLOOP.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-115688-1-1.html 上篇帖子: [SAP IDES ECC 6.0] FW: SAP Default instance Config. 下篇帖子: SAP Installation Procedure on WIN 2k Adv Server
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表