2016-11-04 90 views
0

将直接回答这个问题。程序从参数中更新数据库表格从ABAP中的选择选项中选择选项

有2个参数如文件名和表名。要求是将数据从Excel工作表上载到数据库表中输入其他参数。这应该在运行时间。没有字段名称的硬编码,并且该程序应该足够灵活以适应任何表格。请帮忙。

+1

请花些时间阅读帮助页面,尤其是名为[“我可以询问什么主题?”(http://stackoverflow.com/help/on-topic)和[“什么类型的我应该避免提问?“](http://stackoverflow.com/help/dont-ask)。更重要的是,请阅读[Stack Overflow问题清单](http://meta.stackexchange.com/q/156810/204922)。您可能还想了解[最小,完整和可验证示例](http://stackoverflow.com/help/mcve) – hering

+0

@hering说什么 - 另外,直接更新任意数据库表通常是一个坏主意。为什么我们有像LSMW这样的东西是有原因的。 – vwegert

+0

Excel数据读取或保存到数据库表时是否存在问题?第二个问题,你是从XLS文件还是从Excel工作表读取数据? –

回答

0

我能想到的两种可能的方法:

  1. 动态代码生成 - 编写一个程序,写一个程序
  2. 使用动态类型的工具

对于1.尽量使用Google

有关2.请参阅https://wiki.scn.sap.com/wiki/display/Snippets/Example+-+create+a+dynamic+internal+table - 此wiki显示了一种方法(不确定它是否过分,因为它从头开始创建类型,而SAP系统中的任何表m在数据字典中已经是定义的类型)。

您可以轻松地在Open SQL中引用参数化表格,例如MODIFY(p_tab)...

也许你可以做一个通过分隔符从文件中读入行的通用SPLIT到字段表 - 然后你可以使用ASSIGN COMPONENT来匹配你已经读入的字段内部类型的字段。

如果你这样做,我认为允许的表的白名单将是明智的 - 和验证检查。否则,有人可能无权授权上传SAP标准表。