B2MML Adaptors - What's New
Note: Words in coloured text refer to node names in the XML file. Words in bold refer to field names or data in MineMarket, or required text strings. Words in italics refer to field values in MineMarket.
MineMarket 5.6.0
- All B2MML adaptors have been updated to be compatible with the B2MML V7.1-2023 schema. The changes only affected the object model. No changes to XML structures for MineMarket integration are required.
- When importing sample results, any non-numeric or invalid analyte values (for example, "LessThan 0.01" to indicate values below detection limits) are set to null.
Updated:
- NotifyWorkExecutedEvent—For train tonnage corrections, the JobResponse » WorkMasterID must be the text string for the Train Tonnage Correction name-value pair set in the Configuration Parameters for the NotifyWorkExecutedEvent subscriber. A default option of "Weigh Train" or "Adjust Train" can be selected or a custom value can be defined.
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—When importing data, stockpile categories are read and created from the MaterialActual » StorageLocation node rather than the HierarchyScope. The Equipment ID » EquipmentLevel values "StorageZone" and "StorageUnit" have been deprecated.
- NotifyWorkReconciledEvent—An issue has been fixed where updating transaction data caused an error and wrongly deleted samples.
Deprecated:
- NotifyOperationsScheduledEvent—This class, previously used to import mine sources and surveys, is no longer supported. Mine source and survey data can be imported with NotifyWorkExecutedEvent and NotifyWorkReconciledEvent classes.
MineMarket 5.5.10 Hot Fix 1
Updated:
- NotifyPerformanceTrackedEvent—An issue with exporting contributor information for transactions in a stockpile state has been fixed. Contributor information now comes from the stockpile state and the ValueString is the contributor tonnage.
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—For sample results, messages with a HierarchyScope location that is not in MineMarket (for example, a laboratory) are assumed to contain sample data only and are successfully processed. MineMarket matches the sample results to the applicable samples and process flows using the MaterialLotID and OperationsTestRequirementID.
MineMarket 5.5.10
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—Can be used to import mine sources and surveys when the JobResponse » WorkMasterID node is "Grade Control Modelling" and the JobResponse » MaterialActual » MaterialUse node is "Inventoried". Analyte, contributor and geological attribute information in the mine source survey can be included via the MaterialActual » MaterialActualProperty node. (The functionality to import mine sources and surveys with NotifyOperationsScheduledEvent has been retained for backwards compatibility but does not include contributor or geological attribute information.)
- NotifyWorkExecutedEvent andNotifyWorkReconciledEvent—For transactions, the process flow is determined from the EquipmentActual node details, or if that fails, then from the MaterialActual node details. When a NotifyWorkReconciledEvent message updates the source or destination (and therefore, the associated process flow) for a transaction that was created previously via a NotifyWorkExecutedEvent message, MineMarket now determines the correct process flow, deletes the original transaction and creates a new transaction for the correct process flow.
- NotifyPerformanceTrackedEvent—When exporting a stockpile state, MaterialLotProperty nodes with nested MaterialLotPropertyChild nodes can be used to export contributor information, including contributor groups, contributor percentages and contributor analytes.
- NotifyPerformanceTrackedEvent—To improve the processing of stockpile state data by third-party systems, a NotifyPerformanceTrackedPerStockpile message type option is included on the MineMarket Export Settings screen. If selected, NotifyPerformanceTrackedEvent messages are sent per stockpile or despatch and include their sequence number in the transaction state order.
- If the date/time data used for MineMarket objects contained in B2MML import files has an associated time zone, the date/time is converted to local machine time.
- If a B2MML message includes a transaction date or survey date that is earlier than the opening date or later than the closing date of the associated stockpile, the B2MML adaptor updates the opening or closing date of the stockpile so that the message is successfully processed.
MineMarket 5.5.8
Updated:
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—For shipment loading, the MaterialDefinitionID in the transaction destination can be the text string "Product On Ship" or "Bauxite Shipped".
- NotifyPerformanceTrackedEvent—The product with the export mapping called ShipmentNotifyPerformanceTracked must have an Alias1 of "Product On Ship". (However, "Bauxite Shipped" is an accepted alternative to "Product On Ship" for backwards compatibility.)
MineMarket 5.5.7
Updated:
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—The sample template name is read from MaterialActual » TestResult » OperationsTestRequirementID. The previous ID node is still mandatory for schema validity, but does not need any value and is not used in processing.
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—Analyte property measurements can be included via the JobResponse » MaterialActual » TestResult » PropertyMeasurement nodes. Measurements provided via [Added/Changed]MaterialLotRecord » MaterialLot » MaterialLotProperty » Value are also still accepted.
MineMarket 5.5.4
- All B2MML adaptors have been updated to be compatible with the B2MML V7-2020 schema. There are node name or structural changes for all XML files imported into MineMarket or exported from MineMarket.
- Required node name changes include:
- HierarchyScopeChild and EquipmentActualChild for nested nodes.
- The renaming of MaterialTestSpecificationID to TestSpecificationID in NotifyWorkExecutedEvent.
- Required structural changes include:
- The addition of an ID node in AssemblyActual, EquipmentActual, EquipmentRequirement, JobResponse, MaterialActual, MaterialRequirement, OperationsRequest, SegmentRequirement and WorkRequest nodes, although the ID node can be left empty.
- The addition of ProcessSegmentID, OperationsDefinitionID and OperationsSegmentID nodes in NotifyOperationsScheduledEvent, although these nodes can be left empty.
- The relocation of WorkMasterID nodes.
- A simpler structure for MaterialLotProperty for analyte sample results in NotifyWorkExecutedEvent.
- Optional structural changes include the removal of some nodes that were previously included in examples, but were not directly relevant to the examples.
Important: See the Class Descriptions for detailed examples.
MineMarket 5.5.3 Hot Fix 2
- The key for whether to use .NET Remoting or gRPC is in the DistributionManager.Service.exe.config, DistributionManager.Server.exe.config and DistributionManager.Interface.exe.config files by default. If you use .NET Remoting as the communication technology for MineMarket, you must edit this key in these IMS Integration Hub configuration files so that the adaptors can use the same communication technology. See the Configure the IMS Integration Hub Service and Summary of Changes to the IMS Integration Hub Distribution Manager Interface Config File topics in the IMS Integration Hub Installation Guide for more information.
MineMarket 5.5.3
- All B2MML adaptors have been updated to use gRPC by default. If you use .NET Remoting as the communication technology for MineMarket, you need to add a key to the IMS Integration Hub configuration file so that the adaptors can use the same communication technology. See the Summary of Changes to the IMS Integration Hub Distribution Manager Interface Config File topic in the IMS Integration Hub Installation Guide for more information.
MineMarket 5.1.19
Updated:
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—Can be used to change the source or destination of an existing transaction; for example, if a ship is to be loaded from a stockpile instead of from a service trip.
MineMarket 5.1.18
New:
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—Can be used to update actual route point times for trains and service trips. For a service trip, these updates can include assignment of a new barge to the service trip.
- NotifyWorkExecutedEvent and NotifyWorkReconciledEvent—Can be used to import shipment loading transactions.
Updated:
- NotifyWorkScheduledEvent—When creating a service trip or shipment, a composite sample is created for the despatch via an object event script and using details in a second JobOrder node in the message.
- NotifyWorkScheduledEvent—Scheduling information about trains, service trips and shipments is exported when these despatches are created or their planned loading or unloading route point dates are modified in MineMarket.
- NotifyOperationsScheduledEvent—If the mine source with the same Alias1 already exists, a new survey is created instead of editing the existing survey.
- NotifyPerformanceTrackedEvent—An issue with exporting deleted stockpile states has been corrected.
MineMarket 5.1.17
Updated:
- NotifyWorkExecuted and NotifyWorkReconciled—If a matching sample does not exist, a sample is created for any matching sample template, but is not associated with any transaction.
- NotifyWorkExecuted and NotifyWorkReconciled—The JobResponse » EndTime is stored as the Sample Date for any new samples. The AddedMaterialLotRecord or ChangedMaterialLotRecord timestamp is stored as the Results Requested date for samples to indicate the date assayed.
- NotifyWorkScheduledEvent—The ChangedWorkScheduledRecord »WorkSchedule » ID is the Alias2 of the service trip, train or shipment as applicable.
- NotifyPerformanceTrackedEvent—When exporting shipment stockpile states, the MaterialDefinitionID in the NotifyPerformanceTracked message cannot be a customised product name. The export mapping value of the product with an export mapping called ShipmentNotifyPerformanceTracked is used; however, its Alias1 must be Bauxite Shipped. Only one product can have this export mapping. If there is no product with this export mapping, the text string "Product On Ship" is used.
- NotifyPerformanceTrackedEvent—When exporting a stockpile state, the value of the Status is the value at the time of the stockpile state.
- NotifyPerformanceTrackedEvent—The MaterialLotProperty nodes for analyte values for bulk transactions are included for loading transactions; and for unloading transactions when the best known result is not Assume Source.
- NotifyPerformanceTrackedEvent—For the "Sample ID", "Sample Date", "Date Assayed" and "Sample LIMS Date" MaterialLotProperty nodes, the sample template name is in the ID node rather than a separate Key node.
- NotifyPerformanceTrackedEvent—The MaterialLotProperty node with an ID of "Date Assayed" is only included in the export if there are results for the sample.
- NotifyPerformanceTrackedEvent—The MaterialLotProperty node with an ID of "Sequence" has been removed.
MineMarket 5.1.16
Updated:
- NotifyPerformanceTrackedEvent—The recordTimestamp on the ChangedMaterialLotRecord node is the time of the latest modification date (DateLastModified) of the stockpile state or of any of the stockpile's analytes.
MineMarket 5.1.15
Updated:
- NotifyOperationsScheduledEvent—Stores the MaterialDefinitionID as the current product of the mine source if an applicable product is configured.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord node)—Can create a mine source if the message includes an appropriate HierarchyScope.
- NotifyPerformanceTrackedEvent—The recordTimestamp on the ChangedMaterialLotRecord node is the time of the latest modification date (DateLastModified) of the stockpile state.
- NotifyPerformanceTrackedEvent—Simplified MaterialLotProperty nodes for base analytes, sample analytes and survey analytes.
MineMarket 5.1.14
Updated:
- NotifyPerformanceTrackedEvent (with ChangedMaterialLotRecord or DeletedMaterialLotRecord node)—Includes many more data fields when exporting stockpile and despatch stockpile states.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord node)—If a MaterialActual node includes a Quantity node with a Key of "Volume", the quantity is saved in the Double1 extended data field of the transaction.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord node)—The date in the StartTime node is saved as the Start Date of the transaction.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord and MaterialActual nodes)—The WorkMasterID is used as an Alias1 segment for any samples. That is, the Alias1 of a new sample is TestSpecificationID_MaterialLotID_WorkMasterID.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord and MaterialActual nodes)—The JobResponse » End Time is used as the Sample Date and the Results Requested date for any new samples. For existing samples, the Sample Date and the Results Requested date are only updated if the EndTime is earlier than the current Sample Date.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord and ChangedMaterialLotRecord nodes)—The date in the JobResponse » StartTime node is saved as the Start Date of the tonnage correction. (The End Date of the tonnage correction is still from the timestamp in the ChangedMaterialLotRecord node or else the WorkExecutedEvent » EventTimeStamp node.) Results Received is set to True when the sample results have been processed.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord and ChangedMaterialLotRecord nodes)—The results are updated in any sample with an Alias1 starting with MaterialTestSpecificationID_ID.
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent—The MaterialActual » TestSpecificationID and ChangedMaterialLotRecord » MaterialLot » MaterialTestSpecificationID are the name of the sample template (not the Alias1).
- NotifyWorkScheduledEvent—The JobOrder » End Time node stores the estimated time of arrival at the unloading point; or if there is no unloading point, the estimated time of departure at the loading point.
MineMarket 5.1.13
Updated:
- NotifyPerformanceTrackedEvent—Added EventTimestamp, EventEffectiveTime, recordTimestamp and effectiveTimestamp.
- NotifyWorkExecutedEvent—MaterialDefinitionID is optional when importing a transaction that is not a train or barge (un)loading transaction.
- NotifyWorkExecutedEvent—In the MaterialActual node of the transaction destination, there may be multiple Quantity nodes. However, there can only be one with a Key of "Mass". Quantity nodes with other keys are ignored in processing.
- NotifyWorkExecutedEvent—For service trips, the MaterialLotID must be a concatenation of the Alias1 of the service trip plus the suffix in the Alias1 of the hold of the assigned barge.
- NotifyWorkExecutedEvent—For a transaction to or from a stockpile, if the transaction date is earlier than the opening date of the stockpile, the B2MML adaptor updates the opening date of the stockpile.
- NotifyWorkScheduledEvent—When exporting service trip schedules, the MaterialDefinitionID can be a customised product name. The Alias1 of the product with an export mapping called BargeScheduledMaterialDefinitionID is used. Only one product should have this export mapping. If there is no product with this export mapping, the text string "Product On Barge" is used.
- NotifyWorkScheduledEvent—When exporting train schedules, the MaterialDefinitionID can be a customised product name. The Alias1 of the product with an export mapping called TrainScheduledMaterialDefinitionID is used. Only one product should have this export mapping. If there is no product with this export mapping, the text string "Product On Rail" is used.
- NotifyWorkScheduledEvent—When exporting shipment schedules, the MaterialDefinitionID can be a customised product name. The Alias1 of the product with an export mapping called ShipScheduledMaterialDefinitionID is used. Only one product should have this export mapping. If there is no product with this export mapping, the text string "Product On Ship" is used.
- Additional validation of hierarchy scopes.
MineMarket 5.1.12
Updated:
- NotifyWorkExecutedEvent or NotifyWorkReconciledEvent (with AddedJobResponseRecord node)—JobResponse » EndTime is used as the transaction date.
- Support for nested locations in NotifyWorkExecutedEvent or NotifyWorkReconciledEvent messages.
- Consistent validation of hierarchy scopes in NotifyWorkExecutedEvent or NotifyWorkReconciledEvent messages.
- Improvements to error messages.
MineMarket 5.1.10
New:
- NotifyWorkScheduledEvent (with ChangedWorkScheduleRecord node)—Export basic scheduling information about shipments.
- NotifyPerformanceTrackedEvent (with ChangedMaterialLotRecord node)—Export stockpile state.
Updated:
- NotifyWorkScheduledEvent (with ChangedWorkScheduleRecord node)—When exporting service trips, the MaterialLotID is the service trip Alias1.
MineMarket 5.1.7
New:
- NotifyWorkScheduledEvent (with AddedJobResponseRecord and ChangedMaterialLotRecord nodes)—Import train tonnage corrections.
Updated:
- NotifyWorkScheduledEvent (with ChangedWorkScheduleRecord node)
- HierarchyScope uses Alias1 values of business areas instead of hard-coded text strings.
- WorkSchedule » ID has the Alias1 of the despatch.
- The default number of locomotives is 1.
- Changes were made to conform to the latest XSD file.
- Only service trips and trains that have a despatch state of 'None' are included in the export to XML.
- Data is exported from MineMarket to an MSMQ queue in an XML format that can be read by systems not using Windows Communication Framework (WCF)
- NotifyOperationsScheduledEvent
- If the MaterialDefinitionID is missing or does not match one of the specified values, all data in the AddedOperationScheduleRecord node is ignored.
MineMarket 5.1.5
New:
- NotifyWorkExecutedEvent (with AddedJobResponseRecord node)—Import transactions from one stockpile to another stockpile; from a stockpile to a train or service trip (despatch loading); from a train or service trip to a stockpile (despatch unloading); or from one train or service trip to another train or service trip (despatch direct loading).
- NotifyWorkExecutedEvent (with DeletedJobResponseRecord node)—Cancel transactions.
- NotifyWorkScheduledEvent (with ChangedWorkScheduleRecord node)—Export basic scheduling information about service trips or trains.
Updated:
- Updated NotifyWorkExecutedEvent to be able to process transactions between stockpiles, between despatches, and between a despatch and a stockpile. Supported despatch types are trains and service trips.
MineMarket 5.1.3
- All B2MML adaptors are new with this release.