我们正在运行一个非常罕见的小型企业的erp系统,它不允许我们以广泛的方式修改数据。我们考虑通过直接从数据库导出我们想要更改的数据来执行数据更新,并使用Excel VBA更新不同表的一堆数据。现在我们在excel中更新了数据,该数据应该写入Oracle DB。 it-business支持告诉我们不要这样做,因为在他们的程序中定期更新数据期间所有触发器都在后台运行。我们非常害怕破坏数据库,因此我们正在寻找最佳方式来进行数据更新,而不会绕过任何触发器。更具体地说,我们在不同的列中进行了数千次更改,并且表在一个Excel文件中合并在一起。现在我们必须确保将修改后的数据插入数据库并触发erp-software在数据更新期间所做的所有触发器。
有没有人知道这样做的好方法?
答案 0 :(得分:0)
我不知道您使用的是哪种ERP系统,但我可以通过Oracle的电子商务套件了解一些经验。
如今,Oracle的ERP包含一套强大的API,可让您的自定义程序安全地维护ERP数据。例如,如果要修改销售订单,则可以使用Oracle的API来确保应用所有必要的相关验证和逻辑。
因此,步骤1 - 了解您的ERP系统是否提供任何API以允许您安全地更新数据。
早在Oracle ERP的早期,就没有那么多的API了。在那些日子里,当我们需要更新大量表并且没有可用的API时,下一个方法是使用某种数据加载器工具。事实上,最流行的是#34; Data Loader"。这样做是从Excel电子表格中读取数据并将其发送到ERP的用户界面 - 就像用户输入的一样。由于数据通过了ERP的UI,因此将自动应用所有必要的验证和逻辑。
在非常极端的情况下,当没有API和DataLoader,无论出于何种原因,不实用时,它仍然有时被认为是必要的,并且值得尝试我们自己直接更新ERP表的风险。总的来说,这是冒险和不良做法,但有时我们会做我们必须做的事。
在这些情况下,我们会在用户会话中启动数据库跟踪,因为他们通过ERP的用户界面键入了一些更新。然后,我们将使用跟踪来确定在我们的自定义直接更新期间需要应用的验证和相关逻辑。我们还将分析ERP系统的源代码(因为我们在Oracle的ERP情况下可以使用它)。然后,我们将广泛测试它。毕竟,它仍然存在风险,升级后也容易破裂。但是,总的来说,它是最后的手段。
答案 1 :(得分:0)
我的问题不是我需要通过在我的流程中进行一些自动化来快速完成工作。这项工作已经在excel上完成了,但是无论如何都需要进行修改。只有当我通过我们的ERP手动将c& p手动放入数据库或者一次性将其全部放入我不知道的内容时。 但我猜Mathew是对的。 ERP中有验证过程,因此我们无法将其直接写入数据库。 我不知道如果您有线索以非风险的方式绕过ERP,也许可以联系我。