I am trying to write a BPM to receive co-parts to stock from an updatable dashboard. The bpm code is as below, but the partTran transaction is never created.
Works fine in a customisation, the only difference there being that I use a dataset and in the bpm a tableset appears to be required.
Is the coding for my tableset correct?
Customisation code for dataset
‘’‘cs
Erp.BO.ReceiptsFromMfgDataSet JobRcptDS = new Erp.BO.ReceiptsFromMfgDataSet();
JobRcptDS.Tables[“PartTran”].Rows[0][“PartNum”]= compPart;
‘’’
BPM Code
‘’'cs if(rmfg != null)
{
writer.WriteLine(System.DateTime.Now.ToString() + " Issue co parts " + pcProcessID + " from " + refJobNum);
rmfg.GetNewReceiptsFromMfgJobAsm(refJobNum,piAssemblySeq,pcTranType,pcProcessID,ref tsRMFG);
writer.WriteLine(System.DateTime.Now.ToString() + " GetNewReceiptsFromMfgJobAsm from " + refJobNum + " part " + compPart);
string pcMessage = “”;
string pcPartTranPKs = string.Empty;
bool ipContinue = false;
rmfg.OnChangePartNum(ref tsRMFG,compPart,out pcMessage,ipContinue);
writer.WriteLine(System.DateTime.Now.ToString() + " OnChangePartNum, Job " + refJobNum);
rmfg.OnChangeActTranQty(ref tsRMFG,out pcMessage);
writer.WriteLine(System.DateTime.Now.ToString() + " OnChangeActTranQty, Job " + refJobNum);
//var ttRM = (from ttRM_r in tsRMFG.PartTran where ttRM_r.RowMod == "A" select ttRM_r).FirstOrDefault();
tsRMFG.PartTran[0]["TranQty"] = compQty;
tsRMFG.PartTran[0]["JobNum2"] = fRMA;
tsRMFG.PartTran[0]["WareHouseCode"] = "LINE 1";
tsRMFG.PartTran[0]["BinNum"] = "Lineside";
tsRMFG.PartTran[0]["ActTranQty"] = compQty;
tsRMFG.PartTran[0]["ThisTranQty"] = compQty;
tsRMFG.PartTran[0]["PartNum"] = compPart;
writer.WriteLine(System.DateTime.Now.ToString() + " After var ttrm, Job " + refJobNum + " "+ pcMessage + tsRMFG.PartTran[0]["PartNum"].ToString());
rmfg.OnChangeJobNum2(ref tsRMFG, out pcMessage);
tsRMFG.PartTran[0]["JobSeq2"] = 10;
tsRMFG.PartTran[0]["WareHouseCode"] = "LINE 1";
tsRMFG.PartTran[0]["BinNum"] = "Lineside";
tsRMFG.PartTran[0]["Plant2"] = callContextClient.CurrentPlant;
tsRMFG.PartTran[0]["PartNum"] = compPart;
tsRMFG.PartTran[0]["TranReference"] = "Co_Part " + refJobNum;
/*
tsRMFG.PartTran[0]["RowMod"] = "U";
*/
rmfg.OnChangeJobSeq2(ref tsRMFG, out pcMessage);
writer.WriteLine(System.DateTime.Now.ToString() + " OnChangeJobSeq2, Job " + refJobNum + " Msg: " + pcMessage + tsRMFG.PartTran[0]["PartNum"].ToString());
tsRMFG.PartTran[0]["PartNumAsm"] = compPart;
tsRMFG.PartTran[0]["PartNumJH"] = compPart;
tsRMFG.PartTran[0]["PartNumMS"] = pNum;
bool requiresUserInput = false;
rmfg.PreUpdate(ref tsRMFG,out requiresUserInput);
int piMsgType;
string pcBinAction, pcBinMessage;
rmfg.VerifySerialMatchAndPlanContract(ref tsRMFG, out pcMessage, out piMsgType, out pcBinAction, out pcBinMessage);
writer.WriteLine(System.DateTime.Now.ToString() + " ReceiveMfgPartToJob After PreUpdate, Job " + refJobNum + "DsPartNum = "+ tsRMFG.PartTran[0]["PartNum"].ToString());
decimal pdSerialNoQty = 0;
rmfg.ReceiveMfgPartToInventory(ref tsRMFG, pdSerialNoQty,false,out pcMessage,out pcPartTranPKs,"RcptToInvEntry");
//rmfg.ReceiveMfgPartToJob(ref tsRMFG, pdSerialNoQty, false, true,out pcMessage,out pcPartTranPKs,"RcptToJobEntry");
writer.WriteLine(System.DateTime.Now.ToString() + " ReceiveMfgPartToJob, Job " + refJobNum + " Msg: " + pcMessage);
writer.WriteLine(System.DateTime.Now.ToString() + " ds Company = "+ tsRMFG.PartTran[0]["Company"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds Plant = "+ tsRMFG.PartTran[0]["Plant2"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds JobNum = "+ tsRMFG.PartTran[0]["JobNum"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds JobNum2 = "+ tsRMFG.PartTran[0]["JobNum2"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds PartNum = "+ tsRMFG.PartTran[0]["PartNum"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds PartNumAsm = "+ tsRMFG.PartTran[0]["PartNumAsm"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds PartNumJH = "+ tsRMFG.PartTran[0]["PartNumJH"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds PartNumMS = "+ tsRMFG.PartTran[0]["PartNumMS"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds TranQty = "+ tsRMFG.PartTran[0]["TranQty"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds WareHouseCode = "+ tsRMFG.PartTran[0]["WareHouseCode"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds BinNum = "+ tsRMFG.PartTran[0]["BinNum"].ToString());
writer.WriteLine(System.DateTime.Now.ToString() + " ds RowMod = "+ tsRMFG.PartTran[0]["RowMod"].ToString());
}
} //if (tCoPartRev != null)
else
{
errorCount = errorCount+1;
writer.WriteLine(System.DateTime.Now.ToString() + " No method found for " + compPart + " Will need to create job manually.");
} '''