我们是一家实施SAP的中小企业。我们正在尝试使用SAP中的交易数据为我们的卡车运输部门构建另一个PHP系统,用于图形报告等。这是因为我们没有内部ABAP开发专业知识,任何SAP修改都是昂贵的。
目前,我已经设法实现了我们的目标,对我们的质量 DB2 服务器进行只读访问,并且任何写入都将转到另一个 DB2 服务器。我们发现 SELECT 语句上的 CPU 使用率是可以接受的,并且用户只能被授予对特定表/视图的访问权限。
SAP's Quality DB2 -> PHP -> Different DB2 client
想就以同样的方式从生产中读取是否安全发表您的意见吗?通过 RFC 连接器再次实现所有这些似乎非常痛苦。主从配置对我们来说是一个选择,但同样会涉及外部咨询。
编辑
忘了提到我们的SAP人员甚至不想再构建6个月的报告 - 他们想保持系统完好无损。这就是为什么我们在顶部的PHP中构建它的原因。
如果你没有ABAP专业知识,那就得到它 - 这并不难,你会得到很多"理所当然"的东西(如"由平台提供"),否则你必须手动实现 - 比如用户身份验证和权限管理以及软件物流(将东西从开发转移到生产存储库)。请参阅这些文章以获取简短(尽管有偏见)的介绍。如果你仍然需要一个外部的PHP应用程序,很好 - 但你真的应该先尝试一下ABAP。对于Web应用程序,您可能需要查看Web Dynpro ABAP。使用带有商业图形元素的IGS内置图表引擎,您将免费获得大量最自定义的图表类型。您还可以集成使用 Adobe Livecycle Designer 创建的 PDF 表单。
其次,虽然"任何SAP修改都很昂贵"可能是一个很好的方法,但你建议的不是修改。这是附加开发,它既不昂贵也不比任何其他编程语言和/或环境复杂。如果您不能或不想完全使用现有基础架构实现自己的应用程序,请至少使用一个体面的接口 - Web 服务、RFC 等。从ABAP的角度来看,RFC始终是最简单的选择,但您也可以使用SOAP或REST,尽管您必须手动实现后者。这也没那么难。
永远不要直接访问 SAP 数据库。只是不要。您必须实现所有约束,例如客户端依赖项或检查有效期和取消标志 - 这几乎不比编写一个体面的界面复杂,并且每次更改结构时都容易中断。如果在某些时候你需要阅读一些更复杂的内容,比如长文本,你就完蛋了 - 句号。更不用说大多数内部或外部审计师(如果这恰好是贵公司和/或法律要求的问题)不喜欢直接访问像这个系统一样关键的数据库,这再次可能会给您带来很多麻烦你真的不想惹的人。只是不值得。