1. Home
  2. /
  3. References
  4. /
  5. Technical References
  6. /
  7. MDC between different DC1...

MDC between different DC1 releases

What this document contains:

The following provides a technical description of the Multi Distribution Centre routine used for companies with different releases of DC1.

Overview

Enhancements have been made to allow MDC even if the involved companies have different releases. Changes have been made in the standard software for the latest PTF level of each release, (i.e. 500E, 550L, 600I and 800A).

In the following description the term PTF level will be used instead of release. This is due to the fact that changes might have been done to MDC (modifications, corrections etc) within a release. Thus, there might be differences between, e.g., 600A and 600D.

All communication between two DC1 companies within MDC is handled by unique transactions sent through data queues. Hence, the difference in the databases between the PTF levels is not an issue when two DC1 companies are communicating.

Approximately 30 different transactions can be sent between two MDC companies. If, for example, the supplying company has a higher PTF level than the demanding company and the layout of a transaction has changed in the higher PTF level, supplying company might not receive the expected information from demanding company.

Another example is if a company sends a transaction that was introduced in a higher PTF level than the PTF level of the receiving company, that transaction must not be sent.

The solution to this is:

  • In the MDC company control file the PTF level of current company and the PTF level of the MDC company to communicate with can be defined. As a result, there is the possibility to know the PTF level of the receiving company when an MDC transaction is to be sent. If the PTF level does not support the actual transaction, then the transaction is not sent.
  • A new MDC transaction mapping control file has been introduced. This file holds information regarding all transactions whose layout has been changed and is not identical for two different PTF levels.
  • When an MDC transaction is to be sent and different PTF levels have been defined for the two companies in this MDC company control file, a check is made against the mapping file to see if a record exists for the transaction number and from-to PTF level.
  • If a record is found, a new mapping program (defined in the mapping record) is called before the transaction is sent. This mapping program will adjust the differences for the transaction. The adjustment can be to initiate a new value that the receiving company expects to get or to not send certain information if that has been removed in the receiving company’s transaction layout.
  • When the mapping has been done, the transaction is sent according to the layout defined for the receiving company’s PTF level.
  • If no record is found in the mapping control file, even though different PTF levels have been defined in this MDC company control file, then the layout of that particular transaction has not been changed and can be sent without any extra mapping.
  • If no PTF levels are defined in MDC company control file, it is assumed that the two companies have the same PTF level and no mapping at all is needed.

Prerequisites

A company with PTF level 800A or higher must be involved in the set-up of MDC between different releases. No special modifications have been made to handle, e.g., a demanding company with 500E and a supplying company with 600I.

Another prerequisite is that all involved companies must have their own unique company code across all PTF levels.

In Enterprise standard the following different PTF levels are supported:

Demanding company Supplying company
1. 500E 800A
2. 550L 800A
3. 600I 800A
4. 800A 500E
5. 800A 600I

QA reports

The following QA reports contain the necessary changes for each PTF:

PTF level QA report
500E R5DIS – 11411
550L R5DIS – 11409
R5DIS – 11410
600I R6DIS – 8038

New files

The following new files have been added in all PTF levels (500E, 550L, 600I and 800A):

File Description
SROECLEX (MDC company control file extension) Extension file to MDC company control file SROECL. Holds information regarding current company PTF level and PTF level of company to communicate with. If no information in this file, it is assumed that both companies have the same PTF level.
SROMDCTM (MDC transaction mapping control file) Holds information regarding transactions whose layout is not the same for two different PTF levels.

In each record in this file, a mapping program is also defined. This mapping program will be called, before the transaction is sent, to adjust the content of the transaction according to the layout of receiving company’s PTF level.

Records in this file will be added when a new mapping is required. When, for example, PTF 800B is shipped, no changes will be done in this file unless a new/changed mapping is required. If the layout of the MDC transaction is the same, 800B will use the same mapping (and record in this file) as used for 800A.

Set up

The base set-up is to define, in MDC company control file, the PTF level of current company and for the company/companies to communicate with. If no PTF levels are defined, it is assumed that both companies have the same PTF level (i.e. the PFT level of current company).

Note that no validation of entered PTF levels exists. It is important that entered PTF levels correspond to the PTF levels in the MDC transaction mapping file.

The MDC transaction mapping control file is pre-loaded with the different PTF levels and MDC transactions that are supported in the standard software.

New programs

The new programs are a number of mapping programs for each PTF level. These programs are defined in the MDC transaction mapping control file and are used to change the layout of the transaction so it corresponds to the layout of receiving company’s PTF level.

When an MDC transaction is to be sent, a check is made if different PTF levels are defined in MDC company control file.

If so, another check is made to see if a record exists in the MDC transaction mapping control file for the transaction number and from-to PTF level.

If a record exists, the defined mapping program is called before the transaction is sent.

The following mapping programs have been created per PTF level. The last two digits in the program name correspond to the number of the MDC transaction.

500E
DSR96021 New sales order header in supplying company
DSR96023 New sales order line in supplying company
DSR96025 Update sales order header in supplying company
DSR96027 Update sales order line in supplying company
DSR96041 Update purchase order header in demanding company
DSR96043 Update purchase order line in demanding company
DSR96052 Check item and availability in supplying company
DSR96053 Check MDC customer in supplying company
DSR96071 Send MDC invoice to demanding company
DSR96081 Crt/upd temporary reservation in supplying company
500L
DSR96021 New sales order header in supplying company
DSR96023 New sales order line in supplying company
DSR96025 Update sales order header in supplying company
DSR96027 Update sales order line in supplying company
DSR96052 Check item and availability in supplying company
DSR96053 Check MDC customer in supplying company
DSR96056 Check backlog code, sales
DSR96081 Crt/upd temporary reservation in supplying company
600I
DSR96021 New sales order header in supplying company
DSR96023 New sales order line in supplying company
DSR96027 Update sales order line in supplying company
DSR96043 Update purchase order line in demanding company
DSR96052 Check item and availability in supplying company
DSR96053 Check MDC customer in supplying company
DSR96071 Send MDC invoice to demanding company
DSR96081 Crt/upd temporary reservation in supplying company
800A
DSR96021 New sales order header in supplying company
DSR96023 New sales order line in supplying company
DSR96025 Update sales order header in supplying company
DSR96027 Update sales order line in supplying company
DSR96041 Update purchase order header in demanding company
DSR96043 Update purchase order line in demanding company
DSR96052 Check item and availability in supplying company
DSR96053 Check MDC customer in supplying company
DSR96056 Check backlog code, sales
DSR96071 Send MDC invoice to demanding company
DSR96081 Crt/upd temporary reservation in supplying company

Mapping program logic

The base logic of all mapping programs is that they will receive a parameter (A960PRMA) that will be unpacked in a data structure (e.g. R800A_PRMA).

Then all fields are move to the corresponding field in the data structure used for the layout of receiving company (e.g. R500E_PRMA). Differences in the layouts will be taken care of. Fields might be zero set, blanked out or initiated with a hard coded value.

After the mapping, the data structure of the receiving company (e.g. R500E_PRMA) is moved back to the parameter (A960PRMA) and passed back to calling program to be used when the MDC transaction is sent.

Incoming parameters are also from-to PTF level which will indicate to the program which subroutine to execute for the mapping. So far the following subroutines might exist in a mapping program:

  • SR60 – Mapping from 550L to 800A
  • SR61 – Mapping from 800A to 550L
  • SR62 – Mapping from 500E to 800A
  • SR63 – Mapping from 800A to 500E
  • SR64 – Mapping from 600I to 800A
  • SR65 – Mapping from 800A to 600I

Impact on different functionality

Some functionality within MDC has been developed in different releases and cannot therefore work exactly the same for all involved PTF levels. It depends on both the PTF level of demanding company and on the PTF level of supplying company. The following is a list of functions that behaves a bit different depending on the PTF levels of the companies. The description of the function is for a release 8.00 perspective with exceptions described if lower PTF levels are involved.

Backlog handling

When an MDC sales order is backlogged at pick confirmation in supplying company, a temporary reservation is made on the time axis for the backlogged quantity.

At purchase reception in demanding company, a backlog purchase order line is created together with a new sales order in supplying company.

Exceptions:
The backlog handling for MDC was enhanced in release 7.00. Thus, when lower levels than 700A are involved the following applies:

  • No reservation on the time axis is done during pick confirmation in supplying company.
  • For an MDC/BtB delivery, no backlog handling is performed during purchase reception in demanding company. Backlog creation is instead performed during pick list confirmation or, if it is a BtB direct delivery, during invoicing.

Automatic matching of MDC invoice sent to demanding company

When the MDC sales order is invoiced in supplying company, the invoice is sent to demanding company and received as a supplier invoice. If no errors the invoice will be automatically matched.

Exceptions:
Automatic matching of MDC invoices was introduced in release 7.00. It will not be possible to set-automatic matching for the supplying company if demanding company has a PTF level lower than 700A. In that case, the invoice will be received in demanding company as a preliminary invoice as in lower releases.

Text lines attached to order header and lines

When creating the MDC sales order in demanding company, any entered text (both for order header and lines) will be transferred to the connected purchase order and also to the corresponding sales order in supplying company.

If the text is changed after all orders have been created, updates will be performed (both for order header and lines) to the purchase order and to the sales order in supplying company.

Exceptions:
Only if both companies are on PTF level 700A or higher, order header text will be transferred to the purchase order and to the sales order in the supplying company. If one of the company has lower PFT level than 700A, no text from order header will be transferred.

Once all orders are created, no update of changed text will occur if one of the companies has PTF level lower than 700A. This applies both for header text and line text.

Order structure information sent from demanding company

If an order structure is entered on the sales order in the demanding company, information regarding the structure is sent to supplying company so that it is treated as a structure also in that company.

Exceptions:
This handling was introduced in release 7.00 so it will not be supported if any of the two companies have a PTF level lower than 700A. In that case, the order lines will be treated as individual order lines in the supplying company and not as a structure.

MDC return (credit order)

It is possible to enter an MDC/BtB direct credit order in demanding company. This order will generate a purchase order return and a sales order credit in supplying company. The return possibility also exists for stock replenishment orders.

Exceptions:
This handling was introduced in release 7.00 so it will not be supported if any of the two companies have a PTF level lower than 700A. In that case, no MDC returns can be entered.

Transfer prices

There is a possibility to define for the MDC customer in supplying company if transfer prices should be used. This means that the sales price in supplying company is automatically retrieved to become the purchase price on the purchase order in demanding company.

Exceptions:
This handling was introduced in release 7.00 so it will not be supported if any of the two companies have a PTF level lower than 700A. In that case, sales price in supplying company and purchase price in demanding company are handled individually are not synchronized.

End customer’s invoice address on transport note printed in supplying company

When printing the transport note for an MDC/BtB direct delivery in supplying company, the end customer’s invoice address is retrieved from the demanding company and printed.

Exceptions:
When the supplying company has a PTF level lower than 510A, no retrieval of invoice address will occur. Also, when supplying company’s PTF level is higher than 510A and demanding company’s PTF level is below 510A, no retrieval will be done.

Implementation/Modifications

It is very difficult to give an exact description what to do when implementing this function. It all depends on the PTF levels of the involved companies.

The base investigation is to determine how many of the MDC transactions have a different layout in the different PTF levels. If other PTF levels than supported in standard are involved, mapping programs might have to be modified or a completely new mapping program might have to be created.

In the event that a new mapping program has to be created, a corresponding record must be added to the MDC transaction mapping control file.

If the layout of the MDC transaction has been changed due to a customer modification and a mapping program exists for that transaction, the same modification must be implemented into the mapping program. Otherwise, the modified data will not be transferred to the other company.

If another set up regarding PTF levels, supplying company and demanding company than supported in standard (see above in this document) is the case, it is a much bigger job to implement this.

If, for example, PTF 650x is involved, no modifications at all have been implemented in that PTF. Then probably all basic changes made in PTF 600I have to be implemented in 650x. Refer to the list of QA reports earlier in this document.

Transaction mapping flow

The following drawing illustrates how a transaction is sent to another DC1 company and how it is checked to see if a mapping of the transaction is needed.

  1. Standard black box program DSR960 is called to send the MDC transaction.
  2. Data queue to use is retrieved from the MDC company control file SROECL. At the same time, a check is made if PTF levels have been defined in file SROECLEX (MDC company control file extension).
  3. If so, a check is made against the MDC transaction mapping control file (SROMDCTM) to see if a record exists.
  4. If a record exists, the transaction mapping program defined in the record is called to adjust the transaction layout.
  5. When the mapping has been done, the changed layout is passed back and the transaction is sent to receiving company’s MDC direct job.
  6. The MDC direct job calls the program associated with the transaction to perform the request.
  7. When the request is performed, data queue to be used when sending the answer back is retrieved from MDC company control file. Also here is a check performed to see different PTF levels are defined.
  8. If different PTF levels, a check is made against mapping control file in supplying company to see if the answer back needs to be re-mapped to fit sending company’s layout.
  9. If so, the mapping program is called to adjust the layout before the answer is sent back.

All MDC transactions

The following is a list of all MDC transactions currently used in the system:

MDC transaction When sent
21 – New sales order header in supplying company. Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
22 – New sales order delivery address in supplying company. Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
23 – New sales order line in supplying company. Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
24 – New order line text in supplying company. Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
25 – Update sales order header in supplying company. Sent when an MDC sales order or an MDC stock replenishment order is changed in demanding company.
26 – Update sales order delivery address in supplying company. Sent when an MDC sales order or an MDC stock replenishment order is changed in demanding company.
27 – Update sales order line is supplying company. Sent when an MDC sales order or an MDC stock replenishment order is changed in demanding company.
28 – New sales order header text in supplying company. Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
29 – Update sales order header text in supplying company. Sent when an MDC sales order or an MDC stock replenishment order is changed in demanding company.
30 – Update pur/sal order in demanding company with number and line. Sent when the sales order is created in supplying company to establish the connection between the orders.
31 – Update sales order line text in supplying company. Sent when an MDC sales order or an MDC stock replenishment order is changed in demanding company.
32 – Retrieve order line status in supplying company. Sent when information regarding corresponding order lines’ status is to be shown on a panel in demanding company.
33 – New sales order line structure information in supplying company. Sent when a new MDC sales order is created in demanding company.
35 – Update sales order line is supplying company with number and line. Sent when a backlog line is created in demanding company.
41 – Update purchase order header in demanding company. Sent when the MDC sales order is changed in supplying company.
42 – Update purchase order address in demanding company. Sent when the MDC sales order is changed in supplying company.
43 – Update purchase order line in demanding company. Sent when the MDC sales order is changed in supplying company.
44 – Date adjustment in demanding company. Sent from sales order re-planning in supplying company to check if the corresponding sales order in demanding company is defined for date adjustment.
46 – Update purchase order line in demanding company, batches. Sent from pick confirmation in supplying company.
47 – Update purchase order line in demanding company, serial numbers. Sent from pick confirmation in supplying company.
48 – End of order record to demanding company. Sent from pick confirmation in supplying company to indicate that the entire order has been pick confirmed.
52 – Check item and availability in supplying company. Sent from demanding company when adding/maintaining an MDC sales order or MDC stock replenishment order.
53 – Check MDC customer. Sent from demanding company when adding/maintaining an MDC sales order or MDC stock replenishment order.
54 – Check sales order line in supplying company. Sent from demanding company when maintaining an MDC sales order or MDC stock replenishment order.
55 – Validate backlog code, stock replenishment. Sent from demanding company when maintaining an MDC sales order or MDC stock replenishment order.

Also sent from pick confirmation in supplying company.

56 – Validate backlog code, sales. Sent from demanding company when maintaining an MDC sales order or MDC stock replenishment order.

Also sent from pick confirmation in supplying company.

61 – Configuration, header Sent when a new MDC sales order is created in demanding company.
62 – Configuration , attributes Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
63 – Configuration, BOM Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
64 – Configuration, BOR Sent when a new MDC sales order or MDC stock replenishment order is created in demanding company.
71 – MDC invoice to demanding company. Sent when an MDC sales order is invoiced in supplying company.

81 – Crt/upd temporary reservation in supplying company. Sent from demanding company when adding/maintaining an MDC sales order or MDC stock replenishment order.
91 – Retrieve end customer’s invoice address. Sent when an MDC sales order is printed on transport note in supplying company.

MDC transaction changes

The following is a table with all changes made for the MDC transactions. The note “Chg” indicates that the layout of the transaction has been changed since the PTF level before.

Note that the change is not necessarily performed for the PTF level indicated in the column. It only means that the change has been done after the PTF level of the column before (to the left).

The note “New” means that this transaction was introduced in the PTF level of the column.

Trans/PTF 500E 510P 550L 600I 650G 700E 800A
21 Chg Chg Chg Chg
22
23 Chg Chg Chg Chg
24
25 Chg Chg
26
27 Chg Chg
28 New
29 New
30
31 New
32 New
33 New
35 New
41 Chg Chg
42
43 Chg Chg Chg
44 New
46
47
48 Chg
52 Chg Chg Chg
53 Chg
54
55 New
56 New Chg
61
62
63
64
71 Chg
81 Chg Chg
91 New Chg