In SL2018, when a user enters an inventory item on screen 40.100.00, SL is updating the alternate ID field with the first global cross reference it finds for the item.I would understand if the user entered the global cross reference item as the inventory item on the screen. However, we see this when the user enters the inventory ID, not the cross reference id.

Note:OM Setup - Auto Add Alternate ID's for Inventory Items is UncheckedCustomer Entered on Order - Customer Part Number Required is Unchecked in Customer Maintenance

For example:Inventory Part: ABC has a global cross reference of XYZ. This is the only cross reference record for item ABCWhen a User creates a new sales order and enters ABC on the Inventory ID field, the Alternate ID field is populated with XYZ

I understand this functionality for a cross reference of type "Customer Part Number" and if the user entered a global cross reference in the inventory id field and the system replaced it with the actual inventory item.

If there are multiple global cross references for an item, it appears to use the first one it finds. Seems like a defect to me. If anyone has suggestion for a way to disable this functionality or is aware of a known defect, I would appreciate your assistance.

32121-Sales Order pulls in Alternate ID of first item when an asterisk (*) is found in the Entity ID rather than giving the option to choose

Problem:If there is a valid Customer Part Nbr Cross Reference (with the matching CustID) in the ItemXRef table, it will populate the Alternate ID field on the Sales Order properly. But, if no matching ItemXRef record exists for the CustID, the code will find the first available entry in the Item XRef table that has an asterisk (*) as the EntityID and populate that value in the AlternateID field on the Sales Order.

**This field did not populate automatically in 7.0

Someone asked for a change and they went ahead an implemented it with Bug 14583 (it was likely in the notes to implementors in 2011 sp1

Item Cross Reference behavior was extremely inconsistent across screens. OM Sales Orders (4010000), OM Shippers (4011000), PO Invoice/Reciept Entry (0401000), PO Purchase Order Maintenance (0425000), RQ Item Request (RQ10000), and RQ Requisitions (RQ110000) are being changed so that they behave the same with respect to Item Cross References. This is as follows:1. When a user types a normal Inventory ID in the Inventory ID field, it will populate the Alternate ID with the first match it finds. The first found is based on the Entity ID, Type, and Alternate ID values.2. When a user types an Alternate ID in the Inventory ID or Alternate ID field and it is unique or that Vendor/Customer's only alternate ID, the Inventory ID will be populated with the matching Inventory ID and the Alternate ID field will be populated with the entered Alternate ID.3. When the Alternate ID entered in either the Inventory ID or Alternate ID field is not unique or that Vendor/Customer's only alternate ID, a message will display telling the user they need to use the Inventory ID to select the item they are looking for.4. THIS BUG FIX. All of the screens metioned will use the default Alternate ID Type specified in OM/PO Setup when automatically inserting an Alternate ID into the Item Cross References table. The Customer/Vendor ID will be used for the Entity ID when the type is Vendor/Customer Part Number, otherwise * will be used.5. The PV for Alternate ID will show all types other than C in PO and RQ screens or V in OM screens. The only Vendor/Customer Part Numbers that will show up are the ones specific to the Cutomer/Vendor entered in the screen header. Global Alternate IDs will always show. The Alternate ID field IS NOT restricted by the Inventory ID entered.6. The Mask for the Alternate ID fields have been changed to uppercase. This is consistent with the IN Item Cross References (1038000) screen.7. The OM Setup and PO Setup options to automatically add Alternate IDs now have the same options other than Customer/Vendor Part Number. Substitution has been removed from PO Setup and Manfucturer Part number and Obsolete have been added to OM Setup.

The Alternate ID and Inventory ID interaction is the same as it has been in Purchase Order Maintenance. The Automatic Adding functionality had to be fixed across the board.

With all that said, it looks like the change was made on purpose. it does seem to be working as currently designed.

one possible workaround is to customize the screen. It could be something as simple as adding the following code:

In SL2018, when a user enters an inventory item on screen 40.100.00, SL is updating the alternate ID field with the first global cross reference it finds for the item.I would understand if the user entered the global cross reference item as the inventory item on the screen. However, we see this when the user enters the inventory ID, not the cross reference id.

Note:OM Setup - Auto Add Alternate ID's for Inventory Items is UncheckedCustomer Entered on Order - Customer Part Number Required is Unchecked in Customer Maintenance

For example:Inventory Part: ABC has a global cross reference of XYZ. This is the only cross reference record for item ABCWhen a User creates a new sales order and enters ABC on the Inventory ID field, the Alternate ID field is populated with XYZ

I understand this functionality for a cross reference of type "Customer Part Number" and if the user entered a global cross reference in the inventory id field and the system replaced it with the actual inventory item.

If there are multiple global cross references for an item, it appears to use the first one it finds. Seems like a defect to me. If anyone has suggestion for a way to disable this functionality or is aware of a known defect, I would appreciate your assistance.

If we have 5 global cross reference for an inventory item, the system will randomly select (*) a global cross reference to populate the alternateid field on the sales order screen when the inventory item is entered. The user does not have any control over which global cross reference is used?

I do not agree with this logic. Specifically the random aspect of using the first found global cross reference. This eliminates any end user control.

I believe the system should only entered a global cross reference in the alternateid field when the end user actually uses the global cross reference to enter the item. This allows the end user control and the results consistent with what a customer would expect on the relevant documents. In our case, the system is auto populating this field with a global cross reference and the alternateid field is referenced on relevant documents: quotes, confirmations, ship notices, invoices, etc. Customers are questioning these random global cross reference number on their documents.

Unfortunately, the fix you suggested does not update the soline.altidtype which is used in the reports to suppress this line.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

32121-Sales Order pulls in Alternate ID of first item when an asterisk (*) is found in the Entity ID rather than giving the option to choose

Problem:If there is a valid Customer Part Nbr Cross Reference (with the matching CustID) in the ItemXRef table, it will populate the Alternate ID field on the Sales Order properly. But, if no matching ItemXRef record exists for the CustID, the code will find the first available entry in the Item XRef table that has an asterisk (*) as the EntityID and populate that value in the AlternateID field on the Sales Order.

**This field did not populate automatically in 7.0

Someone asked for a change and they went ahead an implemented it with Bug 14583 (it was likely in the notes to implementors in 2011 sp1

Item Cross Reference behavior was extremely inconsistent across screens. OM Sales Orders (4010000), OM Shippers (4011000), PO Invoice/Reciept Entry (0401000), PO Purchase Order Maintenance (0425000), RQ Item Request (RQ10000), and RQ Requisitions (RQ110000) are being changed so that they behave the same with respect to Item Cross References. This is as follows:1. When a user types a normal Inventory ID in the Inventory ID field, it will populate the Alternate ID with the first match it finds. The first found is based on the Entity ID, Type, and Alternate ID values.2. When a user types an Alternate ID in the Inventory ID or Alternate ID field and it is unique or that Vendor/Customer's only alternate ID, the Inventory ID will be populated with the matching Inventory ID and the Alternate ID field will be populated with the entered Alternate ID.3. When the Alternate ID entered in either the Inventory ID or Alternate ID field is not unique or that Vendor/Customer's only alternate ID, a message will display telling the user they need to use the Inventory ID to select the item they are looking for.4. THIS BUG FIX. All of the screens metioned will use the default Alternate ID Type specified in OM/PO Setup when automatically inserting an Alternate ID into the Item Cross References table. The Customer/Vendor ID will be used for the Entity ID when the type is Vendor/Customer Part Number, otherwise * will be used.5. The PV for Alternate ID will show all types other than C in PO and RQ screens or V in OM screens. The only Vendor/Customer Part Numbers that will show up are the ones specific to the Cutomer/Vendor entered in the screen header. Global Alternate IDs will always show. The Alternate ID field IS NOT restricted by the Inventory ID entered.6. The Mask for the Alternate ID fields have been changed to uppercase. This is consistent with the IN Item Cross References (1038000) screen.7. The OM Setup and PO Setup options to automatically add Alternate IDs now have the same options other than Customer/Vendor Part Number. Substitution has been removed from PO Setup and Manfucturer Part number and Obsolete have been added to OM Setup.

The Alternate ID and Inventory ID interaction is the same as it has been in Purchase Order Maintenance. The Automatic Adding functionality had to be fixed across the board.

With all that said, it looks like the change was made on purpose. it does seem to be working as currently designed.

one possible workaround is to customize the screen. It could be something as simple as adding the following code:

I found this in the help file on the customer maintenance screen. I never get prompted in 2018, I setup an alternate id for an inventory item and customerI can enter a sales order and the alternate id doesn't populate, I can pull one from the PV list. My guess is this is how it used to work.

Customer Part Number Required (check box)

Select if orders must show customer part numbers in addition to the sales company's inventory part numbers. If selected, Alternate ID on the Sales Orders (40.100.00) and Shippers (40.110.00), Line Items tab becomes a required field.

Note: The Inventory's Inventory Item Cross Reference (10.380.00) window is used to set up Alternate IDs used by the customers who purchase the items. Customer Alternate IDs can be indicated on a sales order or shipper so that a customer can cross reference their own part numbers for the items ordered.

If we have 5 global cross reference for an inventory item, the system will randomly select (*) a global cross reference to populate the alternateid field on the sales order screen when the inventory item is entered. The user does not have any control over which global cross reference is used?

I do not agree with this logic. Specifically the random aspect of using the first found global cross reference. This eliminates any end user control.

I believe the system should only entered a global cross reference in the alternateid field when the end user actually uses the global cross reference to enter the item. This allows the end user control and the results consistent with what a customer would expect on the relevant documents. In our case, the system is auto populating this field with a global cross reference and the alternateid field is referenced on relevant documents: quotes, confirmations, ship notices, invoices, etc. Customers are questioning these random global cross reference number on their documents.

Unfortunately, the fix you suggested does not update the soline.altidtype which is used in the reports to suppress this line.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

Original Message------

Hello Steve,

We have a design change /bug entered for version 2011

32121-Sales Order pulls in Alternate ID of first item when an asterisk (*) is found in the Entity ID rather than giving the option to choose

Problem:If there is a valid Customer Part Nbr Cross Reference (with the matching CustID) in the ItemXRef table, it will populate the Alternate ID field on the Sales Order properly. But, if no matching ItemXRef record exists for the CustID, the code will find the first available entry in the Item XRef table that has an asterisk (*) as the EntityID and populate that value in the AlternateID field on the Sales Order.

**This field did not populate automatically in 7.0

Someone asked for a change and they went ahead an implemented it with Bug 14583 (it was likely in the notes to implementors in 2011 sp1

Item Cross Reference behavior was extremely inconsistent across screens. OM Sales Orders (4010000), OM Shippers (4011000), PO Invoice/Reciept Entry (0401000), PO Purchase Order Maintenance (0425000), RQ Item Request (RQ10000), and RQ Requisitions (RQ110000) are being changed so that they behave the same with respect to Item Cross References. This is as follows:1. When a user types a normal Inventory ID in the Inventory ID field, it will populate the Alternate ID with the first match it finds. The first found is based on the Entity ID, Type, and Alternate ID values.2. When a user types an Alternate ID in the Inventory ID or Alternate ID field and it is unique or that Vendor/Customer's only alternate ID, the Inventory ID will be populated with the matching Inventory ID and the Alternate ID field will be populated with the entered Alternate ID.3. When the Alternate ID entered in either the Inventory ID or Alternate ID field is not unique or that Vendor/Customer's only alternate ID, a message will display telling the user they need to use the Inventory ID to select the item they are looking for.4. THIS BUG FIX. All of the screens metioned will use the default Alternate ID Type specified in OM/PO Setup when automatically inserting an Alternate ID into the Item Cross References table. The Customer/Vendor ID will be used for the Entity ID when the type is Vendor/Customer Part Number, otherwise * will be used.5. The PV for Alternate ID will show all types other than C in PO and RQ screens or V in OM screens. The only Vendor/Customer Part Numbers that will show up are the ones specific to the Cutomer/Vendor entered in the screen header. Global Alternate IDs will always show. The Alternate ID field IS NOT restricted by the Inventory ID entered.6. The Mask for the Alternate ID fields have been changed to uppercase. This is consistent with the IN Item Cross References (1038000) screen.7. The OM Setup and PO Setup options to automatically add Alternate IDs now have the same options other than Customer/Vendor Part Number. Substitution has been removed from PO Setup and Manfucturer Part number and Obsolete have been added to OM Setup.

The Alternate ID and Inventory ID interaction is the same as it has been in Purchase Order Maintenance. The Automatic Adding functionality had to be fixed across the board.

With all that said, it looks like the change was made on purpose. it does seem to be working as currently designed.

one possible workaround is to customize the screen. It could be something as simple as adding the following code:

Unfortunately, we do not want the customer part number to be a required field since most of our customers do not have part numbers and the customer does not want a randomly assigned cross reference number as an alternate reference number.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

I found this in the help file on the customer maintenance screen. I never get prompted in 2018, I setup an alternate id for an inventory item and customerI can enter a sales order and the alternate id doesn't populate, I can pull one from the PV list. My guess is this is how it used to work.

Customer Part Number Required (check box)

Select if orders must show customer part numbers in addition to the sales company's inventory part numbers. If selected, Alternate ID on the Sales Orders (40.100.00) and Shippers (40.110.00), Line Items tab becomes a required field.

Note: The Inventory's Inventory Item Cross Reference (10.380.00) window is used to set up Alternate IDs used by the customers who purchase the items. Customer Alternate IDs can be indicated on a sales order or shipper so that a customer can cross reference their own part numbers for the items ordered.

After reading through your documentation again, I would like to know if it is possible to define "the first match it finds." from the Item Cross Reference Screen (10.380.00) for each inventory item.

I did a little testing and it appears to choose the alternate id to populate the customer part number/alternateid based on the alphabetical sorting of the Alternate ID type (Entity ID of *). What was really entertaining was when I set the first alternateid type to "Obsolete". When I entered an order for this inventory id, It set the AlternateID to the cross reference alternateid of the obsolete item. How is that logical or anything that a customer would want to see as an customer part number/alternateid.

To make matters even more interesting, I checked the order confirmation report to see what it would do. Since the soline.altidtype is set to "O" for obsolete, it creates a note under the inventory item that states "Obsolete" and then references the obsolete alternate id. I imagine that would generate some confusion.

I certainly understand populating the alternateid/customer part number with a customer part number and the vendor part number if one is available, but any random ("the first match it finds") cross reference is not logical.

Please let me know if there is any way to control the "first match" other than the alphabetical sorting of the Alternate ID Type.

Unfortunately, we do not want the customer part number to be a required field since most of our customers do not have part numbers and the customer does not want a randomly assigned cross reference number as an alternate reference number.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

Original Message------

Hello Steve,

I found this in the help file on the customer maintenance screen. I never get prompted in 2018, I setup an alternate id for an inventory item and customerI can enter a sales order and the alternate id doesn't populate, I can pull one from the PV list. My guess is this is how it used to work.

Customer Part Number Required (check box)

Select if orders must show customer part numbers in addition to the sales company's inventory part numbers. If selected, Alternate ID on the Sales Orders (40.100.00) and Shippers (40.110.00), Line Items tab becomes a required field.

Note: The Inventory's Inventory Item Cross Reference (10.380.00) window is used to set up Alternate IDs used by the customers who purchase the items. Customer Alternate IDs can be indicated on a sales order or shipper so that a customer can cross reference their own part numbers for the items ordered.

One observation this morning that demonstrates the unusual behavior. On Sales Order screen 40.100.00 when a user enters an inventory id on the sales order line, the system will find the first global cross reference and update the alternateid field but it does not update the description on the line. However, if the user enters the global cross reference id on the inventory id, the system replaces the inventoryid with the correct inventory item, updates the alternateid value with the global cross reference id the user typed AND updates the description field with the global cross-reference item description. IMHO, This is the ONLY way that a cross-reference item should be used on this screen with the exception of a customer cross reference.

The logic is simple. Cross references should only be used to update alternateid's on any data entry screen under two conditions.

First:The screen contains a customer or vendor id and the customer or vendor part number is found during data entry. In this case, update the alternateid with the vendor or customer part number and the description field with the vendor or customers description.

SecondThe user enters an item using a cross referenced alternateid value, replace the item with the inventory id, update the alternateid with the cross reference alternatid value the user entered and update the description with the cross reference description.

Exception logic:If a user enters the item with a cross alternateid value, if the system finds a customer part number when replacing the inventory id, follow the first condition logic.

I am simply having a difficult time understanding why: "the code will find the first available entry in the Item XRef table that has an asterisk (*) as the EntityID and populate that value in the AlternateID field on the Sales Order." was deemed to be a viable option. I have never been much of a fan of potluck dinners either.

After reading through your documentation again, I would like to know if it is possible to define "the first match it finds." from the Item Cross Reference Screen (10.380.00) for each inventory item.

I did a little testing and it appears to choose the alternate id to populate the customer part number/alternateid based on the alphabetical sorting of the Alternate ID type (Entity ID of *). What was really entertaining was when I set the first alternateid type to "Obsolete". When I entered an order for this inventory id, It set the AlternateID to the cross reference alternateid of the obsolete item. How is that logical or anything that a customer would want to see as an customer part number/alternateid.

To make matters even more interesting, I checked the order confirmation report to see what it would do. Since the soline.altidtype is set to "O" for obsolete, it creates a note under the inventory item that states "Obsolete" and then references the obsolete alternate id. I imagine that would generate some confusion.

I certainly understand populating the alternateid/customer part number with a customer part number and the vendor part number if one is available, but any random ("the first match it finds") cross reference is not logical.

Please let me know if there is any way to control the "first match" other than the alphabetical sorting of the Alternate ID Type.

Unfortunately, we do not want the customer part number to be a required field since most of our customers do not have part numbers and the customer does not want a randomly assigned cross reference number as an alternate reference number.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

Original Message------

Hello Steve,

I found this in the help file on the customer maintenance screen. I never get prompted in 2018, I setup an alternate id for an inventory item and customerI can enter a sales order and the alternate id doesn't populate, I can pull one from the PV list. My guess is this is how it used to work.

Customer Part Number Required (check box)

Select if orders must show customer part numbers in addition to the sales company's inventory part numbers. If selected, Alternate ID on the Sales Orders (40.100.00) and Shippers (40.110.00), Line Items tab becomes a required field.

Note: The Inventory's Inventory Item Cross Reference (10.380.00) window is used to set up Alternate IDs used by the customers who purchase the items. Customer Alternate IDs can be indicated on a sales order or shipper so that a customer can cross reference their own part numbers for the items ordered.

Our partner, Andrew from Velosio, found the stored proc causing this issue.

Fixing it required a small change to ItemXRef_Invt_Type_Entity - remark out the "or AltIDType Not In ('C', 'V')

Select * from ItemXRef where InvtID Like @parm1 And ((AltIDType Like @parm2 And EntityID Like @parm3) --or AltIDType Not In ('C', 'V') ) Order By InvtID, Case When AltIDType In ('C','V') Then 0 Else 1 End, AltIDType, AlternateID

Since hand typed cross-references on the Sales Order Screen 40.100.00 result in the altidtype (soline.altidtype) as blank, we needed to fix all the sales order related reports. (40610,40620,40654,40645,40660,40680)

Modified the line suppression (for the shipping related reports replace soline with soshipline)

One observation this morning that demonstrates the unusual behavior. On Sales Order screen 40.100.00 when a user enters an inventory id on the sales order line, the system will find the first global cross reference and update the alternateid field but it does not update the description on the line. However, if the user enters the global cross reference id on the inventory id, the system replaces the inventoryid with the correct inventory item, updates the alternateid value with the global cross reference id the user typed AND updates the description field with the global cross-reference item description. IMHO, This is the ONLY way that a cross-reference item should be used on this screen with the exception of a customer cross reference.

The logic is simple. Cross references should only be used to update alternateid's on any data entry screen under two conditions.

First:The screen contains a customer or vendor id and the customer or vendor part number is found during data entry. In this case, update the alternateid with the vendor or customer part number and the description field with the vendor or customers description.

SecondThe user enters an item using a cross referenced alternateid value, replace the item with the inventory id, update the alternateid with the cross reference alternatid value the user entered and update the description with the cross reference description.

Exception logic:If a user enters the item with a cross alternateid value, if the system finds a customer part number when replacing the inventory id, follow the first condition logic.

I am simply having a difficult time understanding why: "the code will find the first available entry in the Item XRef table that has an asterisk (*) as the EntityID and populate that value in the AlternateID field on the Sales Order." was deemed to be a viable option. I have never been much of a fan of potluck dinners either.

After reading through your documentation again, I would like to know if it is possible to define "the first match it finds." from the Item Cross Reference Screen (10.380.00) for each inventory item.

I did a little testing and it appears to choose the alternate id to populate the customer part number/alternateid based on the alphabetical sorting of the Alternate ID type (Entity ID of *). What was really entertaining was when I set the first alternateid type to "Obsolete". When I entered an order for this inventory id, It set the AlternateID to the cross reference alternateid of the obsolete item. How is that logical or anything that a customer would want to see as an customer part number/alternateid.

To make matters even more interesting, I checked the order confirmation report to see what it would do. Since the soline.altidtype is set to "O" for obsolete, it creates a note under the inventory item that states "Obsolete" and then references the obsolete alternate id. I imagine that would generate some confusion.

I certainly understand populating the alternateid/customer part number with a customer part number and the vendor part number if one is available, but any random ("the first match it finds") cross reference is not logical.

Please let me know if there is any way to control the "first match" other than the alphabetical sorting of the Alternate ID Type.

Unfortunately, we do not want the customer part number to be a required field since most of our customers do not have part numbers and the customer does not want a randomly assigned cross reference number as an alternate reference number.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

Original Message------

Hello Steve,

I found this in the help file on the customer maintenance screen. I never get prompted in 2018, I setup an alternate id for an inventory item and customerI can enter a sales order and the alternate id doesn't populate, I can pull one from the PV list. My guess is this is how it used to work.

Customer Part Number Required (check box)

Select if orders must show customer part numbers in addition to the sales company's inventory part numbers. If selected, Alternate ID on the Sales Orders (40.100.00) and Shippers (40.110.00), Line Items tab becomes a required field.

Note: The Inventory's Inventory Item Cross Reference (10.380.00) window is used to set up Alternate IDs used by the customers who purchase the items. Customer Alternate IDs can be indicated on a sales order or shipper so that a customer can cross reference their own part numbers for the items ordered.

Our partner, Andrew from Velosio, found the stored proc causing this issue.

Fixing it required a small change to ItemXRef_Invt_Type_Entity - remark out the "or AltIDType Not In ('C', 'V')

Select * from ItemXRef where InvtID Like @parm1 And ((AltIDType Like @parm2 And EntityID Like @parm3) --or AltIDType Not In ('C', 'V') ) Order By InvtID, Case When AltIDType In ('C','V') Then 0 Else 1 End, AltIDType, AlternateID

Since hand typed cross-references on the Sales Order Screen 40.100.00 result in the altidtype (soline.altidtype) as blank, we needed to fix all the sales order related reports. (40610,40620,40654,40645,40660,40680)

Modified the line suppression (for the shipping related reports replace soline with soshipline)

One observation this morning that demonstrates the unusual behavior. On Sales Order screen 40.100.00 when a user enters an inventory id on the sales order line, the system will find the first global cross reference and update the alternateid field but it does not update the description on the line. However, if the user enters the global cross reference id on the inventory id, the system replaces the inventoryid with the correct inventory item, updates the alternateid value with the global cross reference id the user typed AND updates the description field with the global cross-reference item description. IMHO, This is the ONLY way that a cross-reference item should be used on this screen with the exception of a customer cross reference.

The logic is simple. Cross references should only be used to update alternateid's on any data entry screen under two conditions.

First:The screen contains a customer or vendor id and the customer or vendor part number is found during data entry. In this case, update the alternateid with the vendor or customer part number and the description field with the vendor or customers description.

SecondThe user enters an item using a cross referenced alternateid value, replace the item with the inventory id, update the alternateid with the cross reference alternatid value the user entered and update the description with the cross reference description.

Exception logic:If a user enters the item with a cross alternateid value, if the system finds a customer part number when replacing the inventory id, follow the first condition logic.

I am simply having a difficult time understanding why: "the code will find the first available entry in the Item XRef table that has an asterisk (*) as the EntityID and populate that value in the AlternateID field on the Sales Order." was deemed to be a viable option. I have never been much of a fan of potluck dinners either.

After reading through your documentation again, I would like to know if it is possible to define "the first match it finds." from the Item Cross Reference Screen (10.380.00) for each inventory item.

I did a little testing and it appears to choose the alternate id to populate the customer part number/alternateid based on the alphabetical sorting of the Alternate ID type (Entity ID of *). What was really entertaining was when I set the first alternateid type to "Obsolete". When I entered an order for this inventory id, It set the AlternateID to the cross reference alternateid of the obsolete item. How is that logical or anything that a customer would want to see as an customer part number/alternateid.

To make matters even more interesting, I checked the order confirmation report to see what it would do. Since the soline.altidtype is set to "O" for obsolete, it creates a note under the inventory item that states "Obsolete" and then references the obsolete alternate id. I imagine that would generate some confusion.

I certainly understand populating the alternateid/customer part number with a customer part number and the vendor part number if one is available, but any random ("the first match it finds") cross reference is not logical.

Please let me know if there is any way to control the "first match" other than the alphabetical sorting of the Alternate ID Type.

Unfortunately, we do not want the customer part number to be a required field since most of our customers do not have part numbers and the customer does not want a randomly assigned cross reference number as an alternate reference number.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

Original Message------

Hello Steve,

I found this in the help file on the customer maintenance screen. I never get prompted in 2018, I setup an alternate id for an inventory item and customerI can enter a sales order and the alternate id doesn't populate, I can pull one from the PV list. My guess is this is how it used to work.

Customer Part Number Required (check box)

Select if orders must show customer part numbers in addition to the sales company's inventory part numbers. If selected, Alternate ID on the Sales Orders (40.100.00) and Shippers (40.110.00), Line Items tab becomes a required field.

Note: The Inventory's Inventory Item Cross Reference (10.380.00) window is used to set up Alternate IDs used by the customers who purchase the items. Customer Alternate IDs can be indicated on a sales order or shipper so that a customer can cross reference their own part numbers for the items ordered.

Thank you for submitting a bug. I agree that it is working as designed. I contend the design is flawed. I would be surprised to find anyone who uses this functionality and wants random (first record found) logic in the selection process that inserts data on any screen. By making this change, we put the control back into the hands of our data entry team.

Fortunately, it appears we found a relatively easy way to fix the issues and I hope it helps any future SL users who are frustrated by the functionality or deemed it unusable due to the lack of control.

Our partner, Andrew from Velosio, found the stored proc causing this issue.

Fixing it required a small change to ItemXRef_Invt_Type_Entity - remark out the "or AltIDType Not In ('C', 'V')

Select * from ItemXRef where InvtID Like @parm1 And ((AltIDType Like @parm2 And EntityID Like @parm3) --or AltIDType Not In ('C', 'V') ) Order By InvtID, Case When AltIDType In ('C','V') Then 0 Else 1 End, AltIDType, AlternateID

Since hand typed cross-references on the Sales Order Screen 40.100.00 result in the altidtype (soline.altidtype) as blank, we needed to fix all the sales order related reports. (40610,40620,40654,40645,40660,40680)

Modified the line suppression (for the shipping related reports replace soline with soshipline)

One observation this morning that demonstrates the unusual behavior. On Sales Order screen 40.100.00 when a user enters an inventory id on the sales order line, the system will find the first global cross reference and update the alternateid field but it does not update the description on the line. However, if the user enters the global cross reference id on the inventory id, the system replaces the inventoryid with the correct inventory item, updates the alternateid value with the global cross reference id the user typed AND updates the description field with the global cross-reference item description. IMHO, This is the ONLY way that a cross-reference item should be used on this screen with the exception of a customer cross reference.

The logic is simple. Cross references should only be used to update alternateid's on any data entry screen under two conditions.

First:The screen contains a customer or vendor id and the customer or vendor part number is found during data entry. In this case, update the alternateid with the vendor or customer part number and the description field with the vendor or customers description.

SecondThe user enters an item using a cross referenced alternateid value, replace the item with the inventory id, update the alternateid with the cross reference alternatid value the user entered and update the description with the cross reference description.

Exception logic:If a user enters the item with a cross alternateid value, if the system finds a customer part number when replacing the inventory id, follow the first condition logic.

I am simply having a difficult time understanding why: "the code will find the first available entry in the Item XRef table that has an asterisk (*) as the EntityID and populate that value in the AlternateID field on the Sales Order." was deemed to be a viable option. I have never been much of a fan of potluck dinners either.

After reading through your documentation again, I would like to know if it is possible to define "the first match it finds." from the Item Cross Reference Screen (10.380.00) for each inventory item.

I did a little testing and it appears to choose the alternate id to populate the customer part number/alternateid based on the alphabetical sorting of the Alternate ID type (Entity ID of *). What was really entertaining was when I set the first alternateid type to "Obsolete". When I entered an order for this inventory id, It set the AlternateID to the cross reference alternateid of the obsolete item. How is that logical or anything that a customer would want to see as an customer part number/alternateid.

To make matters even more interesting, I checked the order confirmation report to see what it would do. Since the soline.altidtype is set to "O" for obsolete, it creates a note under the inventory item that states "Obsolete" and then references the obsolete alternate id. I imagine that would generate some confusion.

I certainly understand populating the alternateid/customer part number with a customer part number and the vendor part number if one is available, but any random ("the first match it finds") cross reference is not logical.

Please let me know if there is any way to control the "first match" other than the alphabetical sorting of the Alternate ID Type.

Unfortunately, we do not want the customer part number to be a required field since most of our customers do not have part numbers and the customer does not want a randomly assigned cross reference number as an alternate reference number.

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other us of, or acting in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

Original Message------

Hello Steve,

I found this in the help file on the customer maintenance screen. I never get prompted in 2018, I setup an alternate id for an inventory item and customerI can enter a sales order and the alternate id doesn't populate, I can pull one from the PV list. My guess is this is how it used to work.

Customer Part Number Required (check box)

Select if orders must show customer part numbers in addition to the sales company's inventory part numbers. If selected, Alternate ID on the Sales Orders (40.100.00) and Shippers (40.110.00), Line Items tab becomes a required field.

Note: The Inventory's Inventory Item Cross Reference (10.380.00) window is used to set up Alternate IDs used by the customers who purchase the items. Customer Alternate IDs can be indicated on a sales order or shipper so that a customer can cross reference their own part numbers for the items ordered.