I have an updatable BAQ which allows updating the requested by date and Need by date on Order Header, Order Line and Order Release and also allowing updating on the Job Required Due Date. I have written custom code to update all 4 tables but something is not working correctly after clicking update in BAQ Designer.
Field Editor
Updated Fields in Analyze Grid
![]()
Field after clicking update
![]()
The line release dates are writing to bothe the Order Line and Order release. How?
Here is my BAQ Method directive code. Any ideas what is going wrong?
try
{
Erp.Contracts.SalesOrderSvcContract hSalesOrder = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.SalesOrderSvcContract>(Db);
Erp.Contracts.JobEntrySvcContract hJobEntry = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.JobEntrySvcContract>(Db);
callContextBpmData.Character01 += "--Start//n";
if (hSalesOrder != null)
{
callContextBpmData.Character01 += "--UpdateSalesOrder//n";
var resultQuery = queryResultDataset.Results.Where(row => !string.IsNullOrEmpty(row.RowMod) && row.RowMod != "P");
foreach (var ttResult in resultQuery)
{
Erp.Tablesets.UpdExtSalesOrderTableset ds = new Erp.Tablesets.UpdExtSalesOrderTableset();
bool errorOccurred;
{
var OrderHed = new Erp.Tablesets.OrderHedRow
{
Company = ttResult.OrderHed_Company,
NeedByDate = ttResult.OrderHed_NeedByDate,
OrderNum = ttResult.OrderHed_OrderNum,
RequestDate = ttResult.OrderHed_RequestDate,
};
ds.OrderHed.Add(OrderHed);
var OrderDtl = new Erp.Tablesets.OrderDtlRow
{
Company = ttResult.OrderDtl_Company,
NeedByDate = ttResult.OrderDtl_NeedByDate,
OrderLine = ttResult.OrderDtl_OrderLine,
OrderNum = ttResult.OrderDtl_OrderNum,
RequestDate = ttResult.OrderDtl_RequestDate,
};
callContextBpmData.Character01 += "-" + OrderDtl.NeedByDate.ToString() +"/n";
callContextBpmData.Character01 += "-" + OrderDtl.RequestDate.ToString() +"/n";
ds.OrderDtl.Add(OrderDtl);
var OrderRel = new Erp.Tablesets.OrderRelRow
{
Company = ttResult.OrderRel_Company,
NeedByDate = ttResult.OrderRel_NeedByDate,
OrderLine = ttResult.OrderRel_OrderLine,
OrderNum = ttResult.OrderRel_OrderNum,
OrderRelNum = ttResult.OrderRel_OrderRelNum,
ReqDate = ttResult.OrderRel_ReqDate,
};
callContextBpmData.Character01 += "-" + OrderRel.NeedByDate.ToString() +"/n";
callContextBpmData.Character01 += "-" + OrderRel.ReqDate.ToString() +"/n";
ds.OrderRel.Add(OrderRel);
}
BOUpdErrorTableset boUpdateErrors = hSalesOrder.UpdateExt(ref ds, true, true, out errorOccurred);
//BOUpdErrorTableset boUpdateErrors = hSalesOrder.UpdateExt(ref ds);
if (errorOccurred && boUpdateErrors != null && boUpdateErrors.BOUpdError != null)
{
//this.PublishInfoMessage(boUpdateErrors.BOUpdError[0]["ErrorText"].ToString(),Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual,"","");
// this.PublishInfoMessage(...,Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual,"","");
}
//ttResult.RowMod = "P";
// Object to query mapping
{
var OrderDtl = ds.OrderDtl.FirstOrDefault(
tableRow => tableRow.Company == ttResult.OrderDtl_Company
&& tableRow.OrderLine == ttResult.OrderDtl_OrderLine
&& tableRow.OrderNum == ttResult.OrderDtl_OrderNum);
if (OrderDtl == null)
{
OrderDtl = ds.OrderDtl.LastOrDefault();
}
var OrderHed = ds.OrderHed.FirstOrDefault(
tableRow => tableRow.Company == ttResult.OrderHed_Company
&& tableRow.OrderNum == ttResult.OrderHed_OrderNum);
if (OrderHed == null)
{
OrderHed = ds.OrderHed.LastOrDefault();
}
var OrderRel = ds.OrderRel.FirstOrDefault(
tableRow => tableRow.Company == ttResult.OrderRel_Company
&& tableRow.OrderLine == ttResult.OrderRel_OrderLine
&& tableRow.OrderNum == ttResult.OrderRel_OrderNum
&& tableRow.OrderRelNum == ttResult.OrderRel_OrderRelNum);
if (OrderRel == null)
{
OrderRel = ds.OrderRel.LastOrDefault();
}
if (OrderDtl != null)
{
ttResult.OrderDtl_Company = OrderDtl.Company;
ttResult.OrderDtl_NeedByDate = OrderDtl.NeedByDate;
ttResult.OrderDtl_OrderLine = OrderDtl.OrderLine;
ttResult.OrderDtl_OrderNum = OrderDtl.OrderNum;
ttResult.OrderDtl_RequestDate = OrderDtl.RequestDate;
}
if (OrderHed != null)
{
ttResult.OrderHed_Company = OrderHed.Company;
ttResult.OrderHed_NeedByDate = OrderHed.NeedByDate;
ttResult.OrderHed_OrderNum = OrderHed.OrderNum;
ttResult.OrderHed_RequestDate = OrderHed.RequestDate;
}
if (OrderRel != null)
{
ttResult.OrderRel_Company = OrderRel.Company;
ttResult.OrderRel_NeedByDate = OrderRel.NeedByDate;
ttResult.OrderRel_OrderLine = OrderRel.OrderLine;
ttResult.OrderRel_OrderNum = OrderRel.OrderNum;
ttResult.OrderRel_OrderRelNum = OrderRel.OrderRelNum;
ttResult.OrderRel_ReqDate = OrderRel.ReqDate;
}
}
}
}
if (hJobEntry != null)
{
callContextBpmData.Character01 += "--UpdateJobEntry//n";
var resultQuery = queryResultDataset.Results.Where(row => !string.IsNullOrEmpty(row.RowMod) && row.RowMod != "P");
foreach (var ttResult in resultQuery)
{
var ds = new Erp.Tablesets.UpdExtJobEntryTableset();
bool errorOccurred;
{
var JobHead = new Erp.Tablesets.JobHeadRow
{
Company = ttResult.JobHead_Company,
JobNum = ttResult.JobHead_JobNum,
ReqDueDate = ttResult.JobHead_ReqDueDate,
};
ds.JobHead.Add(JobHead);
}
BOUpdErrorTableset boUpdateErrors = hJobEntry.UpdateExt(ref ds, true, true, out errorOccurred);
if (errorOccurred && boUpdateErrors != null && boUpdateErrors.BOUpdError != null)
{
//this.PublishInfoMessage(boUpdateErrors.BOUpdError[0]["ErrorText"].ToString(),Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual,"","");
// this.PublishInfoMessage(...,Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual,"","");
}
ttResult.RowMod = "P";
// Object to query mapping
{
var JobHead = ds.JobHead.FirstOrDefault(
tableRow => tableRow.Company == ttResult.JobHead_Company
&& tableRow.JobNum == ttResult.JobHead_JobNum);
if (JobHead == null)
{
JobHead = ds.JobHead.LastOrDefault();
}
if (JobHead != null)
{
ttResult.JobHead_Company = JobHead.Company;
ttResult.JobHead_JobNum = JobHead.JobNum;
ttResult.JobHead_ReqDueDate = JobHead.ReqDueDate;
}
}
}
}
hSalesOrder.Dispose();
hSalesOrder = null;
hJobEntry.Dispose();
hJobEntry = null;
}
catch
{
}




