Introduction
With Business Central you use the the extension model.
- The underlying Mobile WMS source code is now sealed and can no longer be modified directly.
- You create new objects, and extend existing objects depending on what you want your extension to do.
This necessitated a refactoring of our model for making custom changes to the Xml Requests and Xml Responses which are being communicated between the mobile devices and the backend in Business Central.
As a part of this refactoring, we are introducing new "accessor" layer to manipulate the Xml content, but with no need to manipulate the Xml Documents directly as to date.
Past model (C/SIDE)
Changes to XML Response was made directly in handler codeunits, e.g. "MOB WMS Receive" etc.
Changes implied writing directly to the XML output, and required knowledge of the XML element, case sensitive tags and using correct namespaces.
...
// The choices are: None, Warn, Block
// MobXMLMgt.AddElement(XMLOrderLine, 'UnderDeliveryValidation', 'Warn', BaseDataModelNS, XMLCreatedNode);
MobXMLMgt.AddElement(XMLOrderLine, 'UnderDeliveryValidation', 'Block', BaseDataModelNS, XMLCreatedNode);
New model (AL)
Changes to XML Responses now requires Event Subscriber procedures to be declared in your own code.
Changes are now strictly in your own project, and the underlying Mobile WMS source code is no longer modified.
You can subscribe to (among others) a number of "On After Set From XXX"-events .
Rather than manipulating the Xml output directly, values are now set in new "accessor table" that hides all underlying Xml considerations. By using Set/Get accessor methods in these accessor tables, content is automatically formatted and inserted at correct nodes and namespaces in the Xml documents.
...
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Receive", 'OnGetReceiveOrderLines_OnAfterSetFromAnyLine', '', true, true)]
...
Introduction
License Plating is a concept covering different activities in the warehouse where you can benefit from grouping items and other Licenses Plates into a single entity.
This entity is identified by a unique License Plate number and will enable you to handle a large number of mixed and tracked Items in a simple process.
License Plating
A single License Plate can contain multiple items and other License Plates.
This enables you to build a hierarchy structure with License Plates, an example could be a pallet (License Plate) containing multiple boxes (License Plates) containing Items.
Data Structure
The License Plate definition is created in these tables "MOB License Plate" and "MOB License Plate Content" in Business Central.
The definition of each License Plate is built and maintained when using Mobile WMS features.
Table "MOB License Plate"
License Plate has a mandatory unique "Number", "Location Code", and "Bin Code".
If the License Plate is related to a Warehouse Document, the fields "Warehouse Document Type" and "Warehouse Document Number" will be used.
Table "MOB License Plate Content"
License Plate Content is always related to only one parent License Plate, specified in the "License Plate No." field.
License Plate Content has a "Type" of either Item or License Plate and the "No." field specifies the related number of the Item or License Plate.
Unbound to standard Business Central tables
License Plate is unrelated to the standard entry tables in Business Central like "Item Ledger Entries" and "Warehouse Entries".
This also means that it is possible to "break" a definition of a License Plate if you use the standard journals in Business Central and start to adjust or move Items in your inventory.
Example
...