Is there a way to automatically report on important B2B Trading Networks events?
Our Business Intelligence (BI) system tracks company transactions end-to-end. So naturally, it wants to know information like:
- B2B order #PO123 received
- B2B invoice #INV456 delivered
- B2B invoice #INV678 delivery failed with reason=<Ariba_PO_Missing>
We have MWS, but there seems to be no programmatic way report this data. Ironically for an integration platform, B2B data seems siloed.
We do not have ‘Optimize for B2B’ or CAF development expertise. (Would either help?)
What we do have is existing IS services to report on inbound and outbound TN transactions over a specified time range (^^). I guess we can run these services with schedulers and create a sort of rough 'n ready eventing system that publishes B2B transaction metadata (order receipt, invoice delivery, and so on) to broker. I’m assuming the events can be delivered to BI using an API.
The alternative to this is the BI system uses an analytics connector to extract information direct from the TN database … this sounds bad (performance impact, undocumented schema )… but could it be workable?
Any thoughts on alternatives? Anyone done this before?
(^^) Our IS services that report on B2B transactions are described in the post below
Update:
I ended up writing a scheduled service to export B2B transaction data.
After initially exploring the issue here…
I ended up using WmTN-querying code as documented here:
The structure of this code is probably a bit more complex than it should be. Run ‘Check Dependents’ on wm.tn.enumerate:nth on more efficient ways how webMethods uses this code internally.
One of the things my code does is workaround a problem reported to webMethods in SI-518490 (‘Problems using wm.tn.enumerate:nth to get paginated data from Trading Networks’). webMethods are planned to release TNS_10.1_Fix14 to address this issue like so: “Whenever the service wm.tn.enumerate:nth is invoked, and threadRunning = false, a valid number of totalPages should return together in the service output”