SHARK Host Integrations#
This document describes how to integrate SHARK with an overlying host system. This system will typically be an ERP system, but it may also be another warehouse management system (WMS) or production management system.
The Host interface is called SHARK Link and is a number of modules, used to provide an interface to external Host/ERP systems for on-line handling of orders and exchange of other information, like article master data, inventorying requests, etc. Orders can be transferred from the Host system and SHARK will return an acknowledge back, when the order has been processed. SHARK Link might also return stock adjustments, when the actually number of articles on stock does not fit with the expected count or when an order could not be fulfilled completely. In general, the purpose is, that SHARK and the host system can be used as one homogeneous system.
The integration is very flexible and designed to be able to meet almost all kind of demands. Possible ways to integrate, sorted by recommendation:
- The preferred way is to use the standard SHARK REST API. It is the most flexible way to integrate SHARK with other systems. It is a standard API and can be used from any programming language supporting web services. It does not require in changes in SHARK.
- Some integrations are supported by native implementation in SHARK, they can be accessed using the Flows or Scripts.
- If web services is not possible to implement by the host system, SHARK also has a standard XML file format. The XML file format can be adjusted by using an XSLT transformation file.
- Older ASCII formats are supported by "scripting". SHARK supports Groovy Scripting, that can be used to adapt to nearly all kind of file formats. The same strategy can also by used to read and write for example Excel files.
- For on-premise setups, direct to database access is possible. This is not recommended, because it is difficult to maintain and can be a security risk. It is also not supported for cloud installations.
Considerations before start#
There are many things to consider in determining how the hook-up with the Host/ERP system should function. Relevant questions are:
-
Are there more than one type of picking orders? Examples: Sales orders, rush orders, export orders, returned goods, production orders.
-
Are there more than one type of goods reception orders? Examples: Purchasing, return articles.
-
May an order be modified that already sent to SHARK from the host system?
-
May an order or order line be cancelled after it has been sent?
-
How are stock differences reported to the host system?
-
What happens if an order cannot be completely picked due to differences?
-
Is an inventory worker allowed to raise or lower the picked quantity?
-
This however, may be useful if the package dimensions are not observed and the article has a low value, or other circumstances make the ordered quantity inexpedient.
-
Should article picking be allowed without orders (manual pick)?
-
Who is in charge of prioritizing what needs to be picked first?
-
Can SHARK receive orders when the system knows the article has resdidual status?
-
What may happen if some articles are not picked in SHARK (residual status for an article)?
-
How is stock counting managed?
SHARK Link supports a number of different type of information, that can be exchanged between the two systems, the most common are:
Article Master Data. SHARK has a local database for articles. This database can either be maintained manually or by receiving the information from the ERP system. The New Article format creates a new entry or updates the information for an existing article and thereby free the user for the double work of maintaining two databases.
Order Request. By sending an Order Request, the ERP system requests the specified items to be picked from the storage. There are different type of orders, like picking orders and put-away orders.
Order Acknowledge. When an order has been picked the SHARK software acknowledge the order by an Order Acknowledge telegram. The purpose is both to indicate that the order processing has been completed, but also to adjust the order in case it could not be completely fulfilled, for example if not all the requested articles are available on the stock.
Inventorying control. SHARK can send stock adjustments to the host and the host can request stock counting for a specific article.
There are 2 basic types of orders:
- Picking orders.
- Put-away orders.
But there can be many sub order types. A unique order is identified by:
- The Order Number (50 characters).
- The Delivery Number.
- The Order Type ID, a number from 1 - 65000.
Master Data#
Master data is basic information about the articles. The most important information is the article number and description, but other information can be transferred as well. SHARK will create new articles and update the description, when met in an imported order, but the Master Data allows more information and will also work if SHARK is used with the Manual Transactions (transactions with no host-orders), this could be the case in an initial store process, where goods are moved from old locations into SHARK without orders.
Purchase Orders#
The Host may send an order when goods are ordered from a supplier. When the goods are received, it will be matched against the order.
When the goods are stored on the final location, it is reported back to the host. To tell the host that the goods are ready to be picked and an invoice for the goods can be accepted. This is typical done per stored transaction, because the reception and storiThe file is generated by the Host. It is recommended that the file is created with a temporary extension and renamed when the file is ready. This to prevent the file to be read, before it is finalized by the host.
The file is recognized in the "Import" folder.
An optional delay can be specified, that will force the import to wait for the specified time from the file is recognized to the import starts.
The file is moved to a temporary folder. This to ensure that nobody else uses the file and if the "Import" folder is on an external drive, to speed up the processing speed.
SHARK Link process the file from the temporary folder.
If the processing was successfull the file is moved to the log folder else the file will be moved to the "Error" folder. ng of incoming goods can be received in several deliveries and the put-away process may take a while.
Special Requirements#
Some special requirements can optionally be supported like:
- Reservation of articles for a specific picking order.
- Inspection of incoming goods.
- Registration of batch/lot and serial numbers.
Reserved Purchases#
A feature that support purchases reserved for a specific sales order.
Incoming Inspection#
Used to flag purchases that must be inspected before they are released for picking.
Batch Number Registration#
The batch number of incoming goods must be registrated.
Serial Number Registraition#
Serial numbers of incoming articles must be registred.
Pick Orders#
The Host sends orders to request goods to be picked. This can for example be sales orders to customers or production orders.
Confirmation back to the host can be:
When the order is finalized and confirmed.
When the order is picked completely (no confirmation).
Line by line.
Import Rules for Orders#
The following table shows the configuration parameters and how SHARK reacts in various situations when importing picking orders.
Parameter | Value | Note |
---|---|---|
AutoCreateItem | True | False |
CancelOrderLinesWithoutStock | True | False |
ItemNumberUnique | True | False |
ConfirmPickPerLine | True | False |
ConfirmPutPerLine | True | False |
LinkDeleteZeroLines | True | False |
ReleaseOrderMode | Auto | Manually |
ReplaceOrders | True | False |
File Exchange#
The most common way of connecting a host system and SHARK is by means of file exchange. The exchange of files between the host and SHARK is done by shared folders.
Importing files#
The folder used for transaction exchange can freely be selected on the local network. It is defined in the SHARK registry. The import strategy is:
The folders used for importing files.
The definition of the import folders are done from a SHARK client, in the registry setup, an example is shown below:
Figure 1 - The registry setup in SHARK defining folders used for file import.
Exporting Files#
Acknowledge information back to the host is typical done by exporting files.
Cleaning up the Log Folders#
All imported files will as default be saved in the "Log" folder. This folder will after a short period be filled up with files if nothing was done. To avoid this SHARK Link includes a folder cleaning function that automatically delete the files when they are older than a specified number of dates. For larger system 3 days can be appropriated, for smaller installation 30 days can be OK. The nice thing about the log folder is, that files can be reimported in case something goes wrong and it is easy to pin-point a problem because the original data can easily be found.
The error folder is not automatically cleaned.
Files Names#
To some extend, it is possible to customize the file names for written files. This is done using placeholders in the export file definition that will be replaced by the actually value, when the file is written.
Placeholder | Description |
---|---|
%DocType% | Name of the document as defined in SHARK |
%OrderNumber% | Order number from SHARK |
%Index% | Document index number. This is a running unique number. |
%Date% | Date when the file is written. The format is YYYYMMDD, for example is the august 2th 2012, written as 20120802 |
%Time% | Time as HHMMSS, 17:25 and 15 seconds is written as 172515. |