BPM data not totally committed

Am I missing somethign in my code to totally commit to the DB. I have a BPM when user starts activity on a job that puts data on a Job UD table.
I can see the data, but then sometimes after ending activity it goes back to zero.
I even check to see if the value is 0 before writing to it.
Below is my code post processing directive.

var jobNum = ipJobNum;

var jobHead_xRow = (from JobHead_Row in Db.JobHead where JobHead_Row.JobNum == jobNum select JobHead_Row).FirstOrDefault();

string partNum = jobHead_xRow.PartNum;
string partSeg = partNum.Substring(0,5);

var mill = “Mill 2”;
var UD14_xRow = (from UD14_Row in Db.UD14 where UD14_Row.ShortChar06 == partSeg && UD14_Row.Key4 == mill select UD14_Row).FirstOrDefault();

var rate = UD14_xRow.Number07;

using (var txscope = IceDataContext.CreateDefaultTransactionScope())
{

var job_xRow = (from JobHead_Row in Db.JobHead where JobHead_Row.JobNum == jobNum select JobHead_Row).FirstOrDefault();
var curRate = job_xRow.quoteRate_c;
if(curRate == 0 )
{
job_xRow.quoteRate_c = Convert.ToInt32(rate);
Db.Validate(job_xRow);

txscope.Complete();
}
}