1

I work for a software company that makes business information systems for a large enterprise. We do systems for invoicing, payment, planning, etc. The enterprise uses SAP for their core system, and our systems use SQL Server with PHP as the application layer.

So far we've always used XML files to communicate between SQL Server and SAP, if SQL wants to send data to SAP, it would write an XML file to a certain folder, which SAP will consume on a daily schedule, and write an XML file response back to another folder, which SQL will consume on a schedule as well. This scheme has been rather error prone, and generating the XML file is extremely slow using cursor operations, and it often causes timeout errors which needs manual correction.

Is there a better way to communicate? The SAP system is from a different software vendor but we can ask them to make modifications if necessary.

1 Answer 1

3

Apache Kafka works in realtime, and is somehow in vogue for solving the subsystem communication problems that used to be solved with centralized databases or queue management systems.

As to the XML, there shouldn't be any errors if a plain-object model and an adequate library are used to translate objects from-and-to XML.

But the preferred format nowadays is JSON:

  • It's more brief and succinct
  • It's much more humanly readable
  • It has compact, binary representations
  • It's well supported in every programming language
2
  • The XML is manually generated using a stored procedure, concatenating strings of XML tags. I'm not the database programmer responsible for doing that. What libraries might be usable to do the translation? As for JSON, I've suggested using JSON as the standard interchange format for a long time, but due to the corporate enterprise resistant-to-change culture, I haven't succeeded
    – d.a.vorm
    Commented Feb 9, 2017 at 5:30
  • For data coming out of SQL Server, XML is not necessarily a bad choice. But don't concat XML tags... Use the SQL-Server built-in XML functionality which is pretty good!
    – Lucero
    Commented Feb 9, 2017 at 8:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.