Bulktrak Integration Business DLL

When would I use it?

The majority of classes in this dynamic-link library (DLL) are designed to support querying for much of the same data that is exported by the Bulktrak Integration Export DLL. The aggregated material movement transaction and stockpile or location balance categories of data based on the IMS Transaction Service are available for querying; the shipment operations management and financials are not. It is the same data, in the same format. The difference is that with this DLL, it is available for pulling on demand instead of being pushed as it is available.

Two of the classes in this DLL also accept incoming data being pushed or published as events from external systems. These classes (ImportDailyTransactions & ImportMPASurveys) are used by the IMS Transaction Service.

To use this DLL, your external system must poll for the data it wants (for example, at a regular time interval). If your system is not capable of pulling data and prefers to be event driven, then Bulktrak Integration Export DLL would be more appropriate.

In some customer site integrations, the external system is IMS Integration Hub, and it polls the BulkTrak Integration Business DLL classes at regular intervals, and then publishes the results using IMS Integration Hub’s IMS Transaction Service to external subscribers. This is done to provide aggregated data summary exports to external systems such as Production Accounting at regular time intervals (for example, daily or monthly).

What does it do?

This DLL contains a group of classes used to:

  • Create objects in MineMarket based on data received from external integrated systems via Windows Communication Framework (WCF) calls.
  • Allow querying by an external integrated system over WCF channels for data aggregated from objects in MineMarket.

How does it work?

This DLL contains a variety of query classes that query MineMarket for aggregated material movements and stockpile or location balances on individual objects that have defined export mappings. Without defined export mappings, no data is exported for an object. See Map Objects to Third-party Systems.

Two of the query classes also support receipt of incoming data from Production Accounting. See IMS Transaction Service.

One established usage pattern for the query classes is that of scheduled polling, carried out by the IMS Integration Hub Integration Task Manager Adaptor. This IMS Integration Hub adaptor queries the query classes in BulkTrak.Integration.Business.dll at regular intervals (for example, daily and monthly) to provide summaries of aggregated material movements of stockpile or location balances over those time intervals. The querying is done over WCF Transmission Control Protocol (TCP) channels, and the results are passed to the IMS Transaction Publishing Service to be pushed to subscribers.

Another usage pattern that would require coding to implement would be to write a module to send queries to IMS Integration Hub, which are forwarded to the query classes, effectively bypassing the Integration Task Manager Adaptor to pull from the query classes on demand, rather than at a scheduled time interval.

Diagram of BulkTrak Integration Business DLL integration

How would I use it?

These DLLs self-register their subscription endpoints with IMS Integration Hub and then wait for querying on the topics that they have registered with IMS Integration Hub. The querying is done by an external application publishing queries on the topics.

If you are using the Integration Task Manager Adaptor to do the querying for you, you need to code your external system to subscribe to the scheduled updates it publishes, and to receive and process the updates.

If you want to query the query classes on your own terms, you need to write code to publish your queries to IMS Integration Hub’s IMS Transaction Publishing Service, which forwards your queries to the query classes. Effectively, you must replace the functionality of the Integration Task Manager Adaptor outside of IMS Integration Hub in your own code.

MineMarket export mappings need to be configured on each individual MineMarket object that you want to export in their Properties window.