Kinetic Configurator - Can't re-configure SOMETIMES

We have re-built all of our configurators in Kinetic and the sales team are now using them, however after some configurations, the configurator button dissapears with no reason as to why…

has anyone else seen this issue? have a missed a checkbox or silly setting somewhere that Epicor love to throw in to the mix! :smiley:

screenshot shows an item that has been configured, but i am not able to re-configure the item. there has been no version changes to the configurator between this being entered and taking these screenshots.

2 Likes

Hi Tony,

Just spitballing, have you checked that you have the allow reconfiguration checked on the target entities (quote detail?) on the associated configurator as desired?

Nancy

Hi Nancy, yes these are checked (and by default i believe) we have not made any changes to these.

and thanks for the suggestion, not one of the areas i thought to check!!!

1 Like

Aren’t configurations tied to revisions? You quoted part doesn’t have a revision selected.

Could be wrong, I’m a little new to CFG stuff.

3 Likes

What are your part number creation settings? As mentioned in another reply the revision dropdown appears to be blank. Which may mean the configurator is unapproved but usually the configurator button is still there. Or the part is not approved. Or the line is no longer considered a configurable part due to part creation setting. Or there is a bug which unfortunately is a common issue with the Kinetic Configurator.

1 Like

Is the run from the client or the browser, and has the size been changed from small screen to full prior to retrieving the data?

i think this is a system bug, sometimes a revision is displayed other times it is not, and this does not always dictate if the configurator button is visible or not.

ran from the browser, i did try this one myself and made no difference

1 Like

OK i am now a step further forward in the debugging!!!

the re-configuration only applies to quotes… heres whats causing the issue

we have a customisation that slides out when we press a button
image

this is a ubaq that is hooked up to UD01

delete button is self explanatory and simply deletes the selected row(s), the apply quantity button is the little devil causing the issue!

When you press the ‘Apply Quantity’ button, this calls an epicor function
image

the ‘code for quote’ section is as follows:

decimal dApplyQty = 0.00m;

foreach (var UD01 in (from UD01_Row in Db.UD01
    where UD01_Row.Company == Session.CompanyID
    && UD01_Row.QuoteNum_c == QuoteNum
    && UD01_Row.QuoteLine_c == QuoteLine
select UD01_Row).ToList())
if(UD01 != null)
{
  dApplyQty = dApplyQty + (UD01.PanelSize_c * UD01.PanelQty_c);
}
var QuoteDtl = (from QuoteDtl_Row in Db.QuoteDtl
    where QuoteDtl_Row.Company == Session.CompanyID
    && QuoteDtl_Row.QuoteNum == QuoteNum
    && QuoteDtl_Row.QuoteLine == QuoteLine
select QuoteDtl_Row).FirstOrDefault();
if(QuoteDtl != null)
{
  var UOMConv = (from UOMConv_Row in Db.UOMConv
      where UOMConv_Row.Company == Session.CompanyID
      && UOMConv_Row.UOMClassID == "NewPanel"
      && UOMConv_Row.UOMCode == QuoteDtl.SellingExpectedUM
  select UOMConv_Row).FirstOrDefault();
  if(UOMConv != null)
  {
    dApplyQty = Math.Round(((dApplyQty/UOMConv.ConvFactor)/1000),2);
    ApplyQty = dApplyQty;
  }
}
var context = Ice.Services.ContextFactory.CreateContext<ErpContext>();
using(var svc = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.QuoteSvcContract>(context))
{
  Erp.Tablesets.QuoteTableset tsQuote  = new Erp.Tablesets.QuoteTableset();

  tsQuote = svc.GetByID(QuoteNum);
  {    
    var NewQuote_row = (from row in tsQuote.QuoteDtl
        where row.QuoteLine == QuoteLine
    select row).FirstOrDefault();
                         
    if (NewQuote_row != null)
    { 
      NewQuote_row.SellingExpectedQty = dApplyQty;
      NewQuote_row.OrderQty = dApplyQty;
      NewQuote_row.RowMod = "U";
      svc.Update(ref tsQuote);
    }
  }
  context.Dispose();
}

when this code runs, it is wiping out the base part and revision from the configured part and we are then losing the configurator button.

i know what is causing the issue but i dont know how to fix it…can anyone help?

Hi David, when we configure a part, we do not create a part in the part table so there is no revision assiciated to it, if we were creating parts in the part table, then yes we would then have a part revision

If that customization is wiping out your BasePartNum and BaseRevisionNum, I think the thing to do would be add those variables at the beginning, then set them in your first QuoteDtl query:

// Add variables
    string BasePartNum = string.Empty;
    string BaseRevision = string.Empty;
//

decimal dApplyQty = 0.00m;

foreach (var UD01 in (from UD01_Row in Db.UD01
    where UD01_Row.Company == Session.CompanyID
    && UD01_Row.QuoteNum_c == QuoteNum
    && UD01_Row.QuoteLine_c == QuoteLine
select UD01_Row).ToList())
if(UD01 != null)
{
  dApplyQty = dApplyQty + (UD01.PanelSize_c * UD01.PanelQty_c);
}
var QuoteDtl = (from QuoteDtl_Row in Db.QuoteDtl
    where QuoteDtl_Row.Company == Session.CompanyID
    && QuoteDtl_Row.QuoteNum == QuoteNum
    && QuoteDtl_Row.QuoteLine == QuoteLine
select QuoteDtl_Row).FirstOrDefault();
if(QuoteDtl != null)
{
  //
      BasePartNum = QuoteDtl.BasePartNum;
      BaseRevision = QuoteDtl.BaseRevisionNum;
  //

  var UOMConv = (from UOMConv_Row in Db.UOMConv
      where UOMConv_Row.Company == Session.CompanyID
      && UOMConv_Row.UOMClassID == "NewPanel"
      && UOMConv_Row.UOMCode == QuoteDtl.SellingExpectedUM
  select UOMConv_Row).FirstOrDefault();
  if(UOMConv != null)
  {
    dApplyQty = Math.Round(((dApplyQty/UOMConv.ConvFactor)/1000),2);
    ApplyQty = dApplyQty;
  }
}
var context = Ice.Services.ContextFactory.CreateContext<ErpContext>();
using(var svc = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.QuoteSvcContract>(context))
{
  Erp.Tablesets.QuoteTableset tsQuote  = new Erp.Tablesets.QuoteTableset();

  tsQuote = svc.GetByID(QuoteNum);
  {    
    var NewQuote_row = (from row in tsQuote.QuoteDtl
        where row.QuoteLine == QuoteLine
    select row).FirstOrDefault();
                         
    if (NewQuote_row != null)
    { 
      //
        NewQuote_row.BasePartNum = BasePartNum;
        NewQuote_row.BaseRevisionNum = BaseRevision;
      //
      NewQuote_row.SellingExpectedQty = dApplyQty;
      NewQuote_row.OrderQty = dApplyQty;
      NewQuote_row.RowMod = "U";
      svc.Update(ref tsQuote);
    }
  }
  context.Dispose();
}

Hi Kevin, thanks for your input as always! did try this already and no luck, i did also copy and paste your code and still it is wiping out the basepartnum and baserevisionnum fields…

Makes me wonder if something is being applied outside of the Update function, like in UpdateMaster, for example.

Hi Kevin if i run the browser debugger is there something i should look out for to see if i can pin point what is writing?

I am also wondering…if i need to set values in ALL the base fields rather than just these two as there is also last config date etc… only problem is i dont know exactly which of those fields would need to be written to if thats the case.

Tbh it should not even be wiping out the basepartnum etc anyways!

Tried writing the following together:

Lastconfigdate
Lastconfigtime
Lastconfiguserid
Basepart
Baserev

Still no luck…

All those fields are being ‘cleared’ on the update