首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以导入SE16导出的SAP表吗?

我可以导入SE16导出的SAP表吗?
EN

Stack Overflow用户
提问于 2013-08-23 13:28:30
回答 2查看 5.4K关注 0票数 0

我已经导出了一个带有事务SE16的表的内容,方法是选择所有条目,然后选择Download,未转换。

我希望将这些条目导入到另一个系统中(在该系统中,存在相同的表并处于活动状态)。

此外,当我导入时,有可能一些条目(旧条目)已经存在特定的键。

其他条目在要导入它们的表中没有一个具有相同键的字段(新条目)。

是否有一种方法可以轻松地用第一个系统提供的文件更新第二个系统中的表?如果需要,我可以导出其他3种格式类型的数据(电子表格、富文本格式和HTML格式)。但在我看来,似乎电子表格和丰富的文本格式有时会破坏数据,而html太冗长了。

根据流行的需求,编辑,我试图导出/导入的表是一个Z表,其字段都是数字、字符、日期或时间字段(平面数据类型)。

我试图这样做,因为客户端没有任何基本资源来帮助他们传输,并且希望"kinna“自动化更新一个系统中的一个表的过程。

目前这样做是一个商业要求,但我愿意接受建议(而且客户也是开放的)

EN

回答 2

Stack Overflow用户

发布于 2013-08-26 02:34:31

编辑

好吧,我怀疑你在评论中所描述的东西是不存在的,但是你可以很容易地写出这样的东西:

创建一个接受以下条件的方法(如果浮动您的船,则创建一个函数模块):

代码语言:javascript
复制
iv_table name TYPE string and
iv_filename   TYPE string

这将是一种方法:

代码语言:javascript
复制
method upload_table.

  data: lt_table     type ref to data,
        lx_root      type ref to cx_root.

  field-symbols: <table> type standard table.

  try.

      create data lt_table type table of (iv_table_name).
      assign lt_table->* to <table>.

      call method cl_gui_frontend_services=>gui_upload
        exporting
          filename            = iv_filename
          has_field_separator = abap_true
        changing
          data_tab            = <table>
        exceptions
          others              = 4.

      if sy-subrc <> 0.
        "Some appropriate error handling
        "message id sy-msgid type 'I'
        "     number sy-msgno
        "     with sy-msgv1 sy-msgv2
        "          sy-msgv3 sy-msgv4.
        return.
      endif.

      modify (p_name) from table <table>.  
      "write: / sy-tabix,  ' entries updated'.

    catch cx_root into lx_root.
      "lv_text =  lx_root->get_text( ).
      "some appropriate error handling 

      return.
  endtry.

endmethod.

这仍然需要确保导出的文件与要导入的表匹配。但是,在这种情况下,cl_gui_frontend_services=>gui_upload应该返回sy-subrc > 0,这样您就可以在损坏任何数据之前退出。

原始答案:

我假设您希望更新z表,而不是SAP标准表。

您可能需要对数据文件进行一点格式化,使其成为选项卡或逗号分隔符。

然后可以使用cl_gui_frontend_services=>gui_upload上传数据文件。

然后,如果要覆盖表中的现有数据,则可以使用

代码语言:javascript
复制
modify zmydbtab from table it_importeddata.

如果不希望覆盖现有条目,则可以使用。

代码语言:javascript
复制
insert zmydbtab from table it_importeddata.

如果任何键已经存在,您将得到subrc=4的返回代码,但任何新条目都将被插入。

备注有很多原因说明为什么您不会在SAP标准表中这样做。最突出的是,数据模型几乎总是比我们所知道的更多。另外,在创建事务性数据时,经常会有后续事件或工作流启动,如果您直接更新数据库,情况就不会如此。根据经验,直接更新SAP标准表通常是个坏主意。

在这种情况下,尝试找到一个BADI,或者如果它不可用,记录一个BDC并以这种方式进行更新。

票数 1
EN

Stack Overflow用户

发布于 2013-08-28 12:06:56

如果系统场景设置正确,您的客户端将不需要任何类型的基本操作支持来执行传输。因此,与其重新发明车轮,我强烈建议在CTS和TMS设置合理的情况下,尽快了解它们能做些什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18404082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档