LIVE.CONFIG.DIFFS.OCT2014.xlsx
For the new site, we have created a single configuration called MOD that will be used for all Made on Demand items. Prior to this, each of these had their own configuration:
Bags & Sleeves BAGS
Furniture Bags FURN
Perforated Sheets SOR
Continuous Sheeting ROLLSHEET (by the roll)
Continuous Tubing ROLLTUBE (by the roll)
Marketplace MP
SHEETING and TUBING, which are currently continuous priced by the pound, will not be used for the new site so will not require conversion. We will be pricing sheeting and tubing by the roll only. In addition, item NS will remain in Avante for the time being and will not be converted to MOD.
Once we have determined which Quotes and Custom Sales Orders will be brought forward to the new system, the configurations attached to these (QUDET<39>/SODET<39>) will have to be converted to the new MOD format. Going forward, the part numbers on QUDET and SODET will remain as they were before (ie, BAGS, FURN, SOR), but the configurations will be changed to the new MOD item. We aren't sure at this time which configurations will be converted, so have the program look at either SODET/QUDET field 39 to get the configuration.revision to be converted. Once we've archived and purged data that won't be converted, the select statement in your program can be revised.
The following configuration files will require conversions:
New program: BP WEB.CONVERT.CONFIG
- CFBLDHDR:
- <3> = Replace with CPN for "MOD" item (store this in SYSCON "MOD.CONV.LAD" field 1). For now, put the CPN for the MOD item in DEV in the SYSCON. We haven't created the LIVE 'MOD' item yet, so will have to switch it when we run the conversion before going live.
- CFHDR:
- <1> = Replace with CPN for "MOD" item
- CFORDER & CFQNA:
- <1> = MOD
- <13> = answers for all criteria in the configuration. You can use EPC3003 to see the criteria# list for each custom item. Each criteria is stored in the EPCPLC file with a key of Custom Item# * Criteria#. The criteria# is the multi-value# in this field (ie, The answer to the Length question in BAGS*4 is stored in CFORDER & CFQNA<13,4>. Wherever possible, I tried to keep the same criteria# as the original BAGS configuration. Some criteria were deleted from the MOD configuration and some criteria were re-used for different info. Some criteria didn't exist in BAGS but were in sheeting or tubing, for example. You must re-configure these multi-values to match the new MOD criteria number setup. I would recommend setting up a table with the old vs. new criteria number for each original configuration item (because these can be different). Allow for the new criteria number to be null in this table (because a lot of criteria have been deleted). The item that will have the most differences is MP, which doesn't look much like any of the other configurations. Loop through the criteria and build new multi-valued data for field 13 using the table for the original configuration item#. Overlay CFORDER<13> & CFQNA<13> with the new values:
- When the new criteria is null, you will write a null to the corresponding multi-value
- When the new criteria has a value, you will write the info from <13,old criteria> to <13,new criteria)
My suggestion would be to select EPCPLC for BAGS] and load up the table with BAGS criteria numbers and descriptions (EPCPLC<1>). Then select MOD] and match up the criteria numbers (remember, a lot won't exist in MOD) and write to table along with their descriptions from EPCPLC<1>. You can then get a sense of which ones don't have a MOD equivalent and which ones I used the criteria for something different (in which case there would be nothing to convert from the old custom item). The ones where I used for a different purpose may be for another item (like MP or ROLLSHEET/ROLLTUBE). BAGS will most closely match MOD. The other items will have most of the same data but may be in a different criteria#. For the other items, you can still start the table create by selecting EPCPLC but you may have to manually enter the associated MOD item criteria# (or do the same as BAGS but will have to make sure you check the descriptions to see if they are really the same thing and manually move info around). In the end, you should have 6 tables, one for each old custom item#.
- <15> = Mask Numbers – for the most part, masks have been removed in the new MOD configuration with the exception of criteria that passes info back to Avante. I don't know that there is a one-to-one correlation between the old and new masks, so just leave this field as is.
- <16> = 'Form' when a formula is executed. If MOD EPCPLC record (using new criteria#) has anything in field 7 or field 10, write 'Form' to the associated multivalue.
- <19> = This is the Question/Criteria Description from EPCPLC<1>. Swap out old criteria question/description for new MOD criteria question/description.
- <46> = In CFORDER, these are the keys to CFSCRIPT. CFQNA has no data in this field. Since the CFSCRIPT file isn't being used going forward to display the configuration description on the web or to print on acknowledgements, I think we'll just leave this alone. Leave the real custom item number in this field. This is old data so if re-printed it should look fine. The new data will be in the format of the MOD item script.
- <56> = This is the mfg description, which should remain the same. No conversion required.
- <124> = ruleset id's for BOM. This is a multi-valued field with a 3-part id delimited by "*". Change the first 2 pieces of the id to "MOD". Leave the 3rd as is.
- <154> = ruleset id for Labor. This is a single valued field with a 3-part id delimited by "*". Change the first 2 pieces of the id to "MOD". Leave the 3rd piece as 0500.
8/18/14:
Bug Ticket opened for:
Modify WEB.CONVERT.CONFIG to remove w/o comments from CFBLD/CFBLD.USR for the following pallet comments:
- 004 - 40X48 PALLET
- 005 - 40X48 4-WAY PALLET
- 006 - EXPORT PALLET
- 007 - #PKGS PER PALLET
- 008 - MAX PALLET HEIGHT
- 009 - MAX PALLET WEIGHT
JSM 9/9/14:
TECH NOTES:
- Open CFBLD/CFBLD.USR
- CFBLD Key = Configuration# . Revision# . Bld Nbr *** Bld Nbr comes from CFBLDHDR<1>
- If any of the above comment numbers are found in CFBLD.USR<25>, then delete from CFBLD.USR<25>, CFBLD.USR<26>, CFBLD.USR<27> and also delete the same multi-value (sub-value?) in CFBLD<22>.
Make sure that create order is adding these comments to the configurator (CFBLD/CFBLD.USR) when 005, 006, 007, or 008 are chosen on the Shipping Instructions checkout screen. Comments 004 and 009 are obsolete.
= = = = = = = = = = = =
TICKET 2252
12/10/14 - Add to the existing BP WEB.CONVERT.CONFIG to take care of the web-specific files that need to be populated with quote and sales order data that will be converted to the new site:
- We will keep 3 years of Sales Order History and associated Quotes
- We will convert Active (unconverted/unexpired) Quotes - We will purge the rejected expired quotes that were never converted before the conversion is run.
- We will convert all configurations (meaning even those where the item makeup changed mid stream). When a change in the makeup of the item is seen, another MOD Item# and Configuration# must be assigned and the quote/order data changed to reflect the new configuration# and MOD#.
- We are not converting any Sheeting or Tubing - those orders need to be kept off of order history)
The following files will also be updated along with CF... files noted above:
- A new MOD.ITMMST.USR record will be created for each unique item for a billto customer. This means that if a single configuration# in Avante was used for multiple items, they will have to be split into multiple MOD items and configuration numbers. The where-used in CFHDR should be updated accordingly so that it contains only the quotes/orders for the configuration#
- A CONTACT.ITEM.XRF.USR record will be created for every quote that is converted, unless it's an NEPB customer. Use the contact# from QUHDR.USR<6>. For NEPB customers, field 6 should be blank. That's your indication not to create a saved item record. Set the 'deleted date' field to today's date. It will be up to the customer to activate these saved items.
- All active quotes (unexpired/unconverted) have to be written to a SHOPPINGCART.USR record. Not sure yet what the cart name will be. I believe they want every quote to go into a separate cart, even if there is already a cart out there for that zip code. The cart's zip code should come from CFBLDHDR<10,4>. Not sure yet how we will know which customer's should have CPU carts unless we setup preferences first???
- CUSTPART.USR records should be created along with the saved item. Cathy will update you with specifics. Should saved item records that have a customer part# be activated by the conversion program (leave delete date as null)??? 1/5/15 - Per Owen, we WILL NOT remove the 'date deleted' when updating with customer part numbers. It will be up to the customer to activate these as saved items if they wish.
TECH NOTES:
- Start with the CFHDR file - this way you can go through every revision of a configuration to see if it still exists and if all revisions are for the same item makeup (DO NOT SELECT 'NS' CFHDR recs):
- CFHDR<8.m>=Order*Line# or Quote*Line#. Note: quotes have 0-prefixed line#'2 but orders do not.
- CFHDR<9.m>=Revision# of the configuration used for associated quote/order in field 8. The quote and order usually have the same rev# but can be different.
- CFHDR<10.M>=Type of document in field 8 (1-sales order; 2=quote)
- First see if the order and/or quote exists. If it does, this rev will be converted. If not, bypass the conversion and remove the data from CFHDR fields 8-10. If quote isn't active and never converted, bypass it.
- See if the MOD.ITMMST.USR record exists for this configuration:
- See if you can execute WEB.MODITEM.MATCH passing EXACT.MATCH=1 and MODREC='' in arguments. You will need to set SHOP. variables somehow.
- If the MOD.ITMMST.USR record doesn't exist (no exact match is found):
- First determine if you've already created a MOD# for this configuration for a prior revision# (see example below where a single Avante configuration# will create multiple MOD Item Numbers). Suggestion would be to keep the first MOD# that you create when you start each CFHDR record so you know if you are now creating a second/third/fourth MOD# for this configuration.
- Create a new MOD.ITMMST.USR record with a key of Company*BilltoCustomer#*MODnnnn. Get the next MOD# from SYSCTL, CONTACT.ITEM.XRF.USR using SYS0008.
- If you've already created MOD# previously for this configuration, you will need to get a new configuration# by calling SYS0008 for the CFHDR file.
- write the base configuration# (up to the decimal point) into MOD.ITMMST.USR<46>. This will either be the config# from QUDET/SODET if this is first MOD Item# for CFHDR, or it will be the new config# you just assigned via SYS0008.
- Write the MOD# to QUHDR.USR<24> or SOHDR.USR<85>
- If you had to create a new configuration#, you must change the key to the following CF files to be the new config#:
CFBLD
CFBLD.USR
CFBLDCOST
- CFBLDHDR
- CFCOST
- CFHDR
- CFOPT
- CFORDER
- CFQNA
- CFSCRIPT
- Remove all old data from current CFHDR and write new data to new CFHDR
- If the MOD.ITMMST.USR record already exists (exact match was found):
- if the base configuration# in MOD.ITMMST.USR<46> matches the base configuration# on this order or quote (QUDET/SODET<39>), write the MOD# to SOHDR.USR<85> or QUHDR.USR<24>.
If the configuration# doesn't match on the existing MOD.ITMMST.USR record, you must replace the config.rev in QUDET<39> or SODET<39> with the new configuration from MOD.ITMMST.USR<46>. You will first have to get the next available revision# from CFHDR for the MOD item's configuration. CFHDR<2> holds the last revision# used and <3> holds multi-valued revision#'s. Increment field 2, add new rev# to end of field 3, and load up where-used fields 8-10 with the quote/order data. Change the key to all CF files for the new config# and rev# (see 4f above for list of files). If at all possible, try to keep the associated order/quote relationship together as a single revision#. For example, if quote and order are both at rev 9 of the original base config# and you are changing the configuration# and assigning a new rev#, write this new rev# to both the quote and the order. If they started with the same rev#, it means that no changes were made once the order was created from the quote (which is the norm). Maybe you can look for the same rev# within the original CFHDR.
Execute the current program logic where it is rebuilding the data in the CF files for the MOD configuration. It's using an xref record in file CONFIG.CONV to change the CF layout from the old custom item (BAGS,ROLLSHEET, etc) to the new MOD item.
For each new MOD# and contact# combination (only when a contact# exists on QUHDR.USR or SOHDR.USR), create a CONTACT.ITEM.XRF.USR record. Set the deleted date in field 5 to TODAY. Possibly don't set deleted date if there's an associated customer part# for this item.
Update CUSTPART.USR and XRF - see Cathy for specifics
EXAMPLE OF CFHDR WITH MULTIPLE ITEM MAKEUPS FOR ONE CONFIGURATION# - configuration# 10000
CFHDR<9>= 0 ] 0 ] 1 ] 2 ] 3 ] 3 ] 4 ] 5 ] 5 ] 5 ] 6 ] 6 ] 7 *** REV NBRS
Revs 0,1,2 are a 12x12x2mil bag
Revs 3 and 4 are 12x12x2mil FG bag
Revs 5 and 6 are 12x12x2mil bag
Rev 7 is 12x12x2mil FG bag
= = =
Rev 0 (order and quote) will be assigned MOD1
Revs 1 and 2 will be removed from CFHDR because they were old rejected quotes that were never ordered
Rev 3 (the quote) - no exact match because it's FG and I have already created MOD1 for this CFHDR, so I have to now create new MOD2 and assigned a new configuration# - 20000 and revision 0. Write MOD2 to QUHDR.USR and change all CF file keys to 20000 and write 20000.0 to QUDET<39>.
Rev 3 (the order) - will find an exact match for MOD2 - should write MOD2 to SOHDR.USR and change all CF files keys to 20000. Would be best if we could use rev# 0 (same as quote for previous rev3). uPDATE SODET<39> with 20000.0.
Rev 4 will be deleted (rejected)
Rev 5 and 6 will find MOD1 and have the same config# - so write MOD1 to quote/order
Rev 7 is an active quote - found MOD2 but MOD.ITMMST.USR<46> doesn't match config# in QUDET<39> - so use config# 20000 and assign rev 1. Update CFHDR, etc.
questions:
- what if order has been canceled? convert it? will it show in order history?
- make sure we run the rejected quote purge first so that unconverted/expired quotes are gone.