Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Correcting the SAP Business Connector

by DrHyde (Prior)
on Jul 29, 2003 at 08:22 UTC ( #278765=CUFP: print w/replies, xml ) Need Help??

SAP has an "easy" to use tool called the Business Connector for querying your SAP system. You throw some XML at a URL, it does Java-ish things to poke and prod SAP, and gives you XML back. It - correctly - dies if you give it bad XML. Unfortunately, it returns broken XML itself. So I use a little shell script to fetch the data and clean it with perl. I use perl instead of sed because I also need to do a few other transformations on the data for which my sed-fu is not strong enough:

if test `curl -s -w %{http_code} -u $SAP_USER:$SAP_PASS -d $BC_XMLDAT +A -o $TEMPFILE $BC_URL` == 200 ; then echo Successfully retrieved data, now correcting it (cat $TEMPFILE && echo -n '</xml>') | perl -pne ' s/&/&amp;/g; # and a few other corrections ' > corrected.xml else echo Error fetching data from Business Connector exit 1 fi
In the long term I want to switch to using sap::rfc so I don't have to do this - and hopefully avoid all that XML nastiness.

Now I'll admit that the perl involved is utterly trivial, but I think this demonstrates just how good a "glue" perl can be for sticking other languages and software packages together. The shell script above is in fact embedded in a Makefile, and the resulting XML file is later munged with more perl.

NB, the perl code here originates with a colleague; the shell and make wrapper is mine.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://278765]
Approved by ybiC
[erix]: hard to implement, hmm
[Corion]: erix: Well, they also seem to have changed the server, or some software, or whatever, and seem to be in the process of changing the DB schema from having the "username" as primary key to something else.
[Corion]: Far too many things being done at once, or maybe only now has it become apparent that nobody knows that piece of software anymore
[marto]: good morning all
[Corion]: I consider having an abstract key as userid in your system good, because the "real" company-wide (or even larger) user id will likely not fit your criteria well
[Corion]: A good morning marto!

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (10)
As of 2017-01-23 09:38 GMT
Find Nodes?
    Voting Booth?
    Do you watch meteor showers?

    Results (192 votes). Check out past polls.