BPS V1.82.1 and up.
Scenario
In Migros Valais there are house-bakeries located at four different stores. These four bakeries produce the bread for all 50 stores and restaurants of the cooperative. In total there are about 1'200 articles, where every article exists in 2 numbers: article numbers xxx.xxx.002.00 are for sale in stores, and article numbers xxx.xxx.012.00 are for gourmessa / restaurants.
Solution outline
- There is a distinct BPS instance set up for the bakeries (schema PBM/TBM).
- BPS manages a distinct trip for each bakery (BOULANGERIE MARTIGNY, BOULANGERIE SION, BOULANGERIE GLIS and BOULANGERIE MONTHEY)
- The bakeries are equipped with a standard PC and laserprinter (no special hardware for picking).
- The program used by the bakeries mainly is “open trips”.
- The built-in production lists (from stock and bulk break) may be printed to produce and pick the articles. (However it seems some similar list is also available on SAP).
- By default all orders are allready recorded as “fully delivered”, so in case every order could be completed there is nothing more to do but run the trip completion with archiving. In case there were differences between order and delivery, those changes have to be edited in the open trip before closing and archiving it.
Special explanationary notes
- The mask for trip names is rather short by default. To use such long trip names as here, you need to change the mask in the configuration program:
- Every bakery is instructed to only process its own open trips. There is no technical measure to avoid a bakery to see or process another bakeries trips. However the selection window of the open trips program may be used to show only the bakery of interest and so avoid accidently accessing the wrong open trips:
- In case articles or stores need to be moved short-term from one bakery to another, this can be done with the shift-functions of the open trips program.
Orders from SAP to BPS
- The bread orders of all stores are sent together in one KO10 file to BPS. SAP does not separate these orders by bakery, so it is up to BPS to manage this. (Side note: Within SAP there exists a mapping between the bakeries and stores, however that mapping is only implemented to create some production list, but cannot be used to separate the orders).
- Every store and restaurant gets assigned to exaclty one of the bakery trips. BPS uses this information to create the open trips while importing the KO10 order file:
- In case a store or restaurant needs to be assigned to another bakery permanently, this is done by changing the trip assignment in the partner record. For short-term there is also the option of using the shift operations within the open trips program as mentioned before.
Pickdata from BPS to SAP
- SAP requires the 4-digit company id (“Betriebe-Nr”) of the bakery to be returned within the KO21 record in the field Faktura_Nr. The number shall be filled in left bounded, since the field is not numeric (as stated falsely in the excel docs) but is a text field.
- Depending on the trip the order is in at time or sending pickdata back to SAP, BPS fills in the corresponding company id. The mapping from trip name to company id is done within the interface configuration file RwwConfig.hss.
Interface configuration
Below is the RwwConfig.hss file for the scenario described above:
/* Copyright (c) 2002-2007 IBK Software AG. All rights reserved.
*
* Module : RwwConfig.hss
* Application : IBK Business Process System
* Purpose : Configuration file for RWW routines
* Author : Peter Koch, IBK
*
* Date Description Who
* --------------------------------------------------------------------------
* 23.08.2007 Customized version for GMVS P.Koch, IBK
*/
// schema specific settings (1)
switch (schema) {
case 'PBM': // production boulangerie maison
case 'TBM': // test boulangerie maison
{
// valid trips whith company id for auto-assignment
addValidTrip('BOULANGERIE MARTIGNY', 7806);
addValidTrip('BOULANGERIE GLIS', 7805);
addValidTrip('BOULANGERIE SION', 7804);
addValidTrip('BOULANGERIE MONTHEY', 7802);
// Autocompleted Trips
for (var t = 0; t < validTripCnt; t++)
addAutocompleteTrip(validTrip[t]);
// Sample Articles
addArtSample('0000.000.000.00', '9999.999.999.98', '9999.999.999.99');
// basic settings
dirTransfer = 'trans_'|strLower(schema); // transfer directory
defaultTrip = validTrip[0]; // default trip
collection = 'GMVS'; // collection id
system_id = '0008'; // system id
invoiceIdent = 5; // 0 = pal_id, 1 = sscc, 2 = inv_id,
// 3 = partner+inv_id,
// 4 = partner+inv_id+inv_run
// 5 = tripIdent
break;
}
default:
throw 'Schema '|schema|' is not defined in RwwConfig.hss';
} // switch
// schema specific settings (2)
switch (schema) {
case 'TBM': // test boulangerie maison
verbose = 9; // 0-minimum 9-maximum
break;
default:;
} // switch



