本文整理汇总了C#中Session.SetInstance方法的典型用法代码示例。如果您正苦于以下问题:C# Session.SetInstance方法的具体用法?C# Session.SetInstance怎么用?C# Session.SetInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Session
的用法示例。
在下文中一共展示了Session.SetInstance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InvokeWF
public static Session InvokeWF(string sessionKey,
string station,
string pdLine,
string customer,
string editor,
Session.SessionType sessionType,
string wfName,
string wfRule,
Dictionary<string, object> sessionKeyValue)
{
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, sessionType);
if (currentSession == null)
{
currentSession = new Session(sessionKey, sessionType, editor, station, pdLine, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add(Constant.Key, sessionKey);
wfArguments.Add(Constant.Station, station);
wfArguments.Add(Constant.CurrentFlowSession, currentSession);
wfArguments.Add(Constant.Editor, editor);
wfArguments.Add(Constant.PdLine, pdLine);
wfArguments.Add(Constant.Customer, customer);
wfArguments.Add(Constant.SessionType, sessionType);
RouteManagementUtils.GetWorkflow(station, wfName, wfRule, out wfName, out wfRule);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow(wfName, wfRule, wfArguments);
//Add Current Session key/value
if (sessionKeyValue != null)
{
foreach (KeyValuePair<string, object> item in sessionKeyValue)
{
currentSession.AddValue(item.Key, item.Value);
}
}
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
throw new FisException("CHK020", new List<string> { sessionKey });
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
throw new FisException("CHK020", new List<string> { sessionKey });
}
if (currentSession.Exception != null)
{
//Check Workflow Terminate Event will resume workflow event
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
return currentSession;
}
示例2: UnpackDNByDN
///<summary>
/// 根据指定的DeliveryNo解除绑定
/// 使用工作流070UnpackDNByDN.xoml
/// </summary>
public void UnpackDNByDN(string deliveryNo, bool bSuperUI, string line, string editor, string station, string customer)
{
if (bSuperUI)
{
logger.Debug("(UnpackDNByDN[Super])Unpack start, deliveryNo:" + deliveryNo + "line:" + line + "editor:" + editor + "station:" + station + "customer:" + customer);
}
else
{
logger.Debug("(UnpackDNByDN)Unpack start, deliveryNo:" + deliveryNo + "line:" + line + "editor:" + editor + "station:" + station + "customer:" + customer);
}
FisException ex;
List<string> erpara = new List<string>();
try
{
var currentDelivery = RepositoryFactory.GetInstance().GetRepository<IDeliveryRepository, IMES.FisObject.PAK.DN.Delivery>().Find(deliveryNo);
if (null == currentDelivery)
{
throw new FisException("CHK190", new string[] { deliveryNo });//DN不存在
}
if (!bSuperUI && "98" == currentDelivery.Status)
{
throw new FisException("CHK290", new string[] { deliveryNo });//DN已上传
}
if (currentDelivery.ModelName.Substring(0, 2) == "PC")
{
throw new FisException("PAK166", new string[] { deliveryNo });//请使用整机的Unpack DN by DN!”
}
string sessionKey = currentDelivery.DeliveryNo;
//station = "80";
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, ProductSessionType);
if (currentSession == null)
{
currentSession = new Session(sessionKey, ProductSessionType, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", line);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", ProductSessionType);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("UnpackDNByDNForRCTO.xoml", "", wfArguments);
currentSession.AddValue(Session.SessionKeys.DeliveryNo, currentDelivery.DeliveryNo);
currentSession.AddValue(Session.SessionKeys.Delivery, currentDelivery);
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
erpara.Add(sessionKey);
ex = new FisException("CHK192", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
erpara.Add(sessionKey);
ex = new FisException("CHK193", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
}
catch (FisException e)
{
logger.Error(e.mErrmsg, e);
throw new Exception(e.mErrmsg);
}
catch (Exception e)
{
logger.Error(e.Message, e);
//.........这里部分代码省略.........
示例3: CheckAndGetMBInfo
/// <summary>
/// </summary>
public ArrayList CheckAndGetMBInfo(string mbsn, string line, string editor, string station, string customer)
{
logger.Debug("(PCAOQCCosmeticImpl)CheckAndGetMBInfo Start:" + mbsn);
ArrayList retValue = new ArrayList();
string currentSessionKey = mbsn;
try
{
Session currentSession = SessionManager.GetInstance.GetSession(currentSessionKey, Session.SessionType.MB);
if (currentSession == null)
{
currentSession = new Session(currentSessionKey, Session.SessionType.MB, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", currentSessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", line);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", Session.SessionType.MB);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("PCAOQCCosmeticForDocking.xoml", "", wfArguments);
currentSession.AddValue(Session.SessionKeys.MB, mbsn);
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + currentSessionKey + " Exists.");
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
string stationDesc = (string)currentSession.GetValue(Session.SessionKeys.StationDescr);
string lotNo = (string)currentSession.GetValue(Session.SessionKeys.LotNo);
string lineDesc = (string)currentSession.GetValue(Session.SessionKeys.LineCode);
string remark = (string)currentSession.GetValue(Session.SessionKeys.Remark);
int id = (int)currentSession.GetValue(Session.SessionKeys.RepairDefectID);
IList<string> defectLst = (IList<string>)currentSession.GetValue("DefectLst");
IList<string> descLst = (IList<string>)currentSession.GetValue("DescLst");
retValue.Add(stationDesc);
retValue.Add(lotNo);
retValue.Add(lineDesc);
retValue.Add(remark);
retValue.Add(id.ToString());
retValue.Add(defectLst);
retValue.Add(descLst);
return retValue;
}
catch (FisException e)
{
throw e;
}
catch (Exception e)
{
throw new SystemException(e.Message);
}
finally
{
logger.Debug("(PCAOQCCosmeticImpl)CheckAndGetMBInfo End:" + mbsn);
}
}
示例4: InputPallet_CQ
public ArrayList InputPallet_CQ(string inputID, decimal acturalWeight, string type,
string line, string editor, string station, string customer)
{
logger.Debug("(PalletWeight)InputPallet Start,"
+ " [pallletNo/UCCID]:" + inputID
+ " [line]:" + line
+ " [editor]:" + editor
+ " [station]:" + station
+ " [customer]:" + customer);
//当20 位长的时候,视为UCC ID,否则,视为PalletNo
try
{
string plt = "";
ArrayList retList = new ArrayList();
List<string> erpara = new List<string>();
if (inputID.Length == 20)
{
string strSQL = "select rtrim(PalletNo) from Pallet where [email protected]";
SqlParameter paraName = new SqlParameter("@palletId", SqlDbType.VarChar, 32);
paraName.Direction = ParameterDirection.Input;
paraName.Value = inputID;
object obj = SqlHelper.ExecuteScalar(SqlHelper.ConnectionString_GetData, System.Data.CommandType.Text, strSQL, paraName);
if (obj == null)
{
FisException e;
erpara.Add(inputID);
e = new FisException("PAK092", erpara);
throw e;
}
plt = obj.ToString();
}
else
{
plt = inputID;
}
string sessionKey = plt;
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, currentSessionType);
if (currentSession == null)
{
currentSession = new Session(sessionKey, currentSessionType, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", line);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", currentSessionType);
string wfName, rlName;
RouteManagementUtils.GetWorkflow(station, "044PalletWeight.xoml", "044PalletWeight.rules", out wfName, out rlName);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow(wfName, rlName, wfArguments);
currentSession.AddValue(Session.SessionKeys.PalletNo, plt);
//currentSession.AddValue(Session.SessionKeys.PrintItems, printItems);
currentSession.AddValue(Session.SessionKeys.ActuralWeight, acturalWeight);
//currentSession.AddValue("PalletType", type);
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
FisException ex;
//List<string> erpara = new List<string>();
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
FisException ex;
//List<string> erpara = new List<string>();
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
//=============================================================
Pallet curPallet = (Pallet)currentSession.GetValue(Session.SessionKeys.Pallet);
//.........这里部分代码省略.........
示例5: ReprintPalletWeightLabel
//.........这里部分代码省略.........
var repository = RepositoryFactory.GetInstance().GetRepository<IMES.FisObject.FA.Product.IProductRepository, IMES.FisObject.FA.Product.IProduct>();
/*IList<ProductLog> logList = repository.GetProductLogs(currentProduct.ProId,station);
if (logList.Count==0)
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(plt);
ex = new FisException("CHK860", erpara);//此Product没有打印过,无需重印
throw ex;
} */
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, currentSessionType);
if (currentSession == null)
{
currentSession = new Session(sessionKey, currentSessionType, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", line);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", currentSessionType);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("044PalletWeightReprint.xoml", "", wfArguments);
currentSession.AddValue(Session.SessionKeys.Pallet, CurrentPallet);
currentSession.AddValue(Session.SessionKeys.PrintLogBegNo, currentProduct.ProId);
currentSession.AddValue(Session.SessionKeys.PrintLogEndNo, currentProduct.ProId);
currentSession.AddValue(Session.SessionKeys.PrintLogName, currentProduct.ProId);
currentSession.AddValue(Session.SessionKeys.PrintLogDescr, "PalletWeight");
currentSession.AddValue(Session.SessionKeys.Reason, reason);
currentSession.AddValue(Session.SessionKeys.PrintItems, printItems);
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
IList<PrintItem> printList = (IList<PrintItem>)currentSession.GetValue(Session.SessionKeys.PrintItems);
retList.Add(printList);
retList.Add(CurrentPallet.PalletNo);
retList.Add(CurrentPallet.Weight);
return retList;
}
catch (FisException e)
{
logger.Error(e.mErrmsg);
throw e;
}
catch (Exception e)
{
logger.Error(e.Message);
throw new SystemException(e.Message);
}
finally
{
logger.Debug("(PalletWeight)ReprintLabel End,"
+ " [custSN]:" + custSN
+ " [line]:" + line
+ " [editor]:" + editor
+ " [station]:" + station
+ " [customer]:" + customer);
}
}
示例6: PrintTCWithProductIDForBN
/// <summary>
///
/// </summary>
/// <param name="pdLine"></param>
/// <param name="mo"></param>
/// <param name="qty"></param>
/// <param name="IsNextMonth"></param>
/// <param name="editor"></param>
/// <param name="station"></param>
/// <param name="customer"></param>
/// <param name="prouctIdList"></param>
/// <param name="printItems"></param>
/// <param name="battery"></param>
/// <param name="lcm"></param>
/// <param name="deliveryDate"></param>
/// <param name="bomremark"></param>
/// <param name="remark"></param>
/// <param name="exception"></param>
/// <returns></returns>
public IList<PrintItem> PrintTCWithProductIDForBN(string pdLine, string model, string mo,
int qty, bool IsNextMonth, string editor,
string station, string customer,
out IList<string> prouctIdList, IList<PrintItem> printItems,
out string battery, out string lcm,
string deliveryDate, string bomremark, string remark, string exception)
{
logger.Debug(" PrintTCWithProductID start, mo:" + mo + " ,pdLine:" + pdLine + " ,qty:" + qty.ToString());
string currentSessionKey = mo;
try
{
Session currentCommonSession = SessionManager.GetInstance.GetSession(currentSessionKey, Session.SessionType.Common);
if (currentCommonSession == null)
{
currentCommonSession = new Session(currentSessionKey, Session.SessionType.Common, editor, station, pdLine, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", currentSessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentCommonSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", pdLine);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", Session.SessionType.Common);
string wfName, rlName;
RouteManagementUtils.GetWorkflow(station, "TravelCardPrint_excel.xoml", "", out wfName, out rlName);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow(wfName, rlName, wfArguments);
currentCommonSession.AddValue(Session.SessionKeys.MONO, mo);
currentCommonSession.AddValue(Session.SessionKeys.Qty, qty);
currentCommonSession.AddValue(Session.SessionKeys.IsNextMonth, IsNextMonth);
currentCommonSession.AddValue(Session.SessionKeys.PrintItems, printItems);
currentCommonSession.AddValue(ExtendSession.SessionKeys.DeliveryDate, deliveryDate);
currentCommonSession.AddValue(Session.SessionKeys.ModelName, model);
currentCommonSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentCommonSession))
{
currentCommonSession.WorkflowInstance.Terminate("Session:" + currentSessionKey + " Exists.");
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentCommonSession.AddValue("BomRemark", bomremark);
currentCommonSession.AddValue("Remark", remark);
currentCommonSession.AddValue("Exception", exception);
IList<string> valueList = PartRepository.GetValueFromSysSettingByName("Site");
if (valueList.Count == 0)
{
throw new Exception("Error:尚未設定Site...");
}
else
{
if (valueList[0] == "ICC")
{
currentCommonSession.AddValue("CityType", "cq");
}
else
{
currentCommonSession.AddValue("CityType", "sh");
}
}
// currentCommonSession.AddValue("CityType", "cq");
currentCommonSession.WorkflowInstance.Start();
currentCommonSession.SetHostWaitOne();
}
else
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentCommonSession.Exception != null)
{
//.........这里部分代码省略.........
示例7: InputPizzaCheckSNforSorting
public ArrayList InputPizzaCheckSNforSorting(string custSN, string line, string curStation,
string editor, string station, string customer)
{
logger.Debug("(InputPizzaCheckSNforSorting)InputSN start, custSn:" + custSN
+ "Station:" + curStation);
try
{
ArrayList retLst = new ArrayList();
var currentProduct = CommonImpl.GetProductByInput(custSN, CommonImpl.InputTypeEnum.CustSN);
if (currentProduct == null)
{
List<string> errpara = new List<string>();
errpara.Add(custSN);
throw new FisException("SFC002", errpara);
}
string sessionKey = currentProduct.ProId;
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, SessionType);
//用ProductID启动工作流,将Product放入工作流中
if (currentSession == null)
{
currentSession = new Session(sessionKey, SessionType, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", curStation);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", currentProduct.Status.Line.Trim());
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", SessionType);
currentSession.AddValue(Session.SessionKeys.ReturnStation, station);
currentSession.AddValue("ForceNWCPreStation", currentProduct.Status.StationId.Trim());
//Session.SessionKeys.ReturnStation
//Add by Benson for Mantis 0001633
IPartRepository ipartRepository = RepositoryFactory.GetInstance().GetRepository<IPartRepository, IPart>();
IList<string> sttingLst = new List<string>();
sttingLst = ipartRepository.GetValueFromSysSettingByName("BatteryCtCheck");
if (sttingLst.Count > 0 && sttingLst[0].ToString().ToUpper().Trim() == "Y")
{ currentSession.AddValue("EnableBatteryCtCheck", true); }
else
{ currentSession.AddValue("EnableBatteryCtCheck", false); }
IList<string> sttingLst2 = new List<string>(); //OnlyCheckOneBattery
sttingLst2 = ipartRepository.GetValueFromSysSettingByName("OnlyCheckOneBattery");
if (sttingLst2.Count > 0 && sttingLst2[0].ToString().ToUpper().Trim() == "Y")
{ currentSession.AddValue("OnlyCheckOneBattery", true); }
else
{ currentSession.AddValue("OnlyCheckOneBattery", false); }
//Add by Benson for Mantis 0001633 a
string wfName, rlName;
RouteManagementUtils.GetWorkflow(station, "PAKReviewSorting.xoml", "PAKReviewSorting.rules", out wfName, out rlName);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow(wfName, rlName, wfArguments);
currentSession.AddValue(Session.SessionKeys.IsComplete, false);
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
//============================================================================
//get product data for UI
Product curProduct = (Product)currentSession.GetValue(Session.SessionKeys.Product);
//.........这里部分代码省略.........
示例8: Save
public void Save(string partNo, string begNo, string endNo, string station, string editor, string pdline, string customer)
{
logger.Debug("CNCardReceive Save:" + partNo + "," + begNo + "," + endNo);
IList<string> result = new List<string>();
string currentSessionKey = Guid.NewGuid().ToString();
try
{
logger.Debug("CNCardReceive save start!");
if (partNo == "")
{
List<string> erpara = new List<string>();
FisException ex;
ex = new FisException("CHK812", erpara);
throw ex;
}
if (begNo == "" || endNo == "")
{
List<string> erpara = new List<string>();
FisException ex;
ex = new FisException("CHK813", erpara);
throw ex;
}
Session currentCommonSession = SessionManager.GetInstance.GetSession(currentSessionKey, Session.SessionType.Common);
if (currentCommonSession == null)
{
currentCommonSession = new Session(currentSessionKey, Session.SessionType.Common, editor, station, pdline, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", currentSessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentCommonSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", pdline);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", Session.SessionType.Common);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("CNCardReceive.xoml", "", wfArguments);
currentCommonSession.SetInstance(instance);
currentCommonSession.AddValue(Session.SessionKeys.PartNo, partNo);
currentCommonSession.AddValue("BegNo", begNo);
currentCommonSession.AddValue("EndNo", endNo);
currentCommonSession.AddValue(Session.SessionKeys.PrintLogName, "CNCard");
currentCommonSession.AddValue(Session.SessionKeys.PrintLogBegNo, begNo);
currentCommonSession.AddValue(Session.SessionKeys.PrintLogEndNo, endNo);
//ITC-1360-139
currentCommonSession.AddValue(Session.SessionKeys.PrintLogDescr, partNo);
if (!SessionManager.GetInstance.AddSession(currentCommonSession))
{
currentCommonSession.WorkflowInstance.Terminate("Session:" + currentSessionKey + " Exists.");
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentCommonSession.WorkflowInstance.Start();
currentCommonSession.SetHostWaitOne();
}
else
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentCommonSession.Exception != null)
{
if (currentCommonSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentCommonSession.ResumeWorkFlow();
}
throw currentCommonSession.Exception;
}
}
catch (FisException e)
{
throw e;
}
catch (Exception e)
{
throw new SystemException(e.Message);
}
finally
{
logger.Debug("CNCardReceive save end!");
}
}
示例9: InputMBSn
public void InputMBSn(string pdLine,
string dCode,
string MB_SNo,
string editor, string stationId, string customerId,string no1397)
{
logger.Debug("(PCAShippingLabel)InputMBSn start, pdLine:" + pdLine + " dCode:" + dCode + " MB_SNo:" + MB_SNo + " editor:" + editor + " stationId:" + stationId + " customerId:" + customerId);
FisException ex;
List<string> erpara = new List<string>();
string sessionKey = MB_SNo;
try
{
Session Session = SessionManager.GetInstance.GetSession(sessionKey, TheType);
if (Session == null)
{
Session = new Session(sessionKey, TheType, editor, stationId, pdLine, customerId);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
//一个MB_SNo对应一个workflow
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", stationId);
wfArguments.Add("CurrentFlowSession", Session);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", pdLine);
wfArguments.Add("Customer", customerId);
wfArguments.Add("SessionType", TheType);
string wfName, rlName;
RouteManagementUtils.GetWorkflow(stationId, "011PCAShippingLabel.xoml", "011PCAShippingLabel.rules", out wfName, out rlName);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow(wfName, rlName, wfArguments);
Session.AddValue(Session.SessionKeys.IsComplete, false);
Session.AddValue(Session.SessionKeys._1397No, no1397);
Session.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(Session))
{
Session.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
Session.WorkflowInstance.Start();
Session.SetHostWaitOne();
}
else
{
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
//Session.SwitchToWorkFlow();
//check workflow exception
if (Session.Exception != null)
{
if (Session.GetValue(Session.SessionKeys.WFTerminated) != null)
{
Session.ResumeWorkFlow();
}
throw Session.Exception;
}
}
catch (FisException e)
{
throw e;
}
catch (Exception e)
{
throw new SystemException(e.Message);
}
finally
{
logger.Debug("(PCAShippingLabel)InputMBSn end, pdLine:" + pdLine + " dCode:" + dCode + " MB_SNo:" + MB_SNo + " editor:" + editor + " stationId:" + stationId + " customerId:" + customerId);
}
}
示例10: Reprint
public IList<PrintItem> Reprint(
string pdLine,
string dCode,
string MB_SNo,
string editor, string stationId, string customerId, IList<PrintItem> printItems, string reason, out string wcode)
{
logger.Debug("(PCAShippingLabel)Reprint start, pdLine:" + pdLine + " dCode:" + dCode + " MB_SNo:" + MB_SNo + " editor:" + editor + " stationId:" + stationId + " customerId:" + customerId);
FisException ex;
List<string> erpara = new List<string>();
string sessionKey = MB_SNo;
IList<PrintItem> printList;
try
{
Session Session = SessionManager.GetInstance.GetSession(sessionKey, TheType);
if (Session == null)
{
Session = new Session(sessionKey, TheType, editor, stationId, pdLine, customerId);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
//一个MB_SNo对应一个workflow
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", stationId);
wfArguments.Add("CurrentFlowSession", Session);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", pdLine);
wfArguments.Add("Customer", customerId);
wfArguments.Add("SessionType", TheType);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("011ReprintPCAShippingLabel.xoml", null, wfArguments);
Session.AddValue(Session.SessionKeys.PrintLogBegNo, MB_SNo);
Session.AddValue(Session.SessionKeys.PrintLogEndNo, MB_SNo);
Session.AddValue(Session.SessionKeys.PrintLogDescr, "");
Session.AddValue(Session.SessionKeys.PrintItems, printItems);
Session.AddValue(Session.SessionKeys.Reason, reason);
Session.AddValue(Session.SessionKeys.SelectedWarrantyRuleID, int.Parse(dCode));
Session.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(Session))
{
Session.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
Session.WorkflowInstance.Start();
Session.SetHostWaitOne();
}
else
{
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
//check workflow exception
if (Session.Exception != null)
{
if (Session.GetValue(Session.SessionKeys.WFTerminated) != null)
{
Session.ResumeWorkFlow();
}
throw Session.Exception;
}
//Warranty wrty = RepositoryFactory.GetInstance().GetRepository<IWarrantyRepository, Warranty>().Find(int.Parse(dCode));
//wcode = wrty.WarrantyCode;
wcode = (string)Session.GetValue(Session.SessionKeys.DCode);
return (IList<PrintItem>)Session.GetValue(Session.SessionKeys.PrintItems);
}
catch (FisException e)
{
throw e;
}
catch (Exception e)
{
throw new SystemException(e.Message);
}
finally
{
logger.Debug("(PCAShippingLabel)Reprint end, pdLine:" + pdLine + " dCode:" + dCode + " MB_SNo:" + MB_SNo + " editor:" + editor + " stationId:" + stationId + " customerId:" + customerId);
}
}
示例11: UnpackCartonForFRU
///<summary>
/// 解除绑定
/// 使用工作流UnpackCartonForFRU.xoml
/// </summary>
public void UnpackCartonForFRU(string cartonNo, string line, string editor, string station, string customer)
{
logger.Debug("(UnpackCartonForFRU)Unpack start, cartonNo:" + cartonNo + "line:" + line + "editor:" + editor + "station:" + station + "customer:" + customer);
//tet
//tet
FisException ex;
List<string> erpara = new List<string>();
carton.ICartonSSCCRepository cartRep = RepositoryFactory.GetInstance().GetRepository<carton.ICartonSSCCRepository, IMES.FisObject.PAK.CartonSSCC.CartonSSCC>();
try
{
string sessionKey = cartonNo;
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, ProductSessionType);
if (currentSession == null)
{
currentSession = new Session(sessionKey, ProductSessionType, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", line);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", ProductSessionType);
string wfName, rlName;
RouteManagementUtils.GetWorkflow(station, "UnpackCartonForFRU.xoml", "UnpackCartonForFRU.rules", out wfName, out rlName);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow(wfName, rlName, wfArguments);
if (sessionKey.Length == 9)
{ currentSession.AddValue(Session.SessionKeys.CartonSN, sessionKey); }
else
{ currentSession.AddValue(Session.SessionKeys.DeliveryNo, sessionKey); }
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
}
catch (FisException e)
{
logger.Error(e.mErrmsg, e);
throw new Exception(e.mErrmsg);
}
catch (Exception e)
{
logger.Error(e.Message, e);
throw new SystemException(e.Message);
}
finally
{
logger.Debug("(UnpackCarton)Unpack end, cartonNo:" + cartonNo + "line:" + line + "editor:" + editor + "station:" + station + "customer:" + customer);
}
}
示例12: UnpackDummyPalletNo
///<summary>
/// 根据指定的DummyPalletNo解除绑定
/// 使用工作流UnpackDummyPalletNo.xoml
/// </summary>
public void UnpackDummyPalletNo(string DummyPalletNo, string line, string editor, string customer)
{
logger.Debug("(UnpackDummyPalletNo)Unpack DummyPalletNo start, DummyPalletNo:" + DummyPalletNo + "line:" + line + "editor:" + editor + "customer:" + customer);
FisException ex;
List<string> erpara = new List<string>();
try
{
IPalletRepository iPalletRepository = RepositoryFactory.GetInstance().GetRepository<IPalletRepository, Pallet>();
Pallet CurrentPallet = iPalletRepository.Find(DummyPalletNo);
if (CurrentPallet == null)
{
erpara.Add(DummyPalletNo);
ex = new FisException("PAK049", erpara); //此Dummy Pallet No 不存在!
throw ex;
}
PalletLogInfo condition = new PalletLogInfo();
condition.palletNo = DummyPalletNo;
condition.station = "9A";
// condition = "Pass Pallet Verify_RCTO";
IList<PalletLogInfo> lstPalletLog = iPalletRepository.GetPalletLogInfoList( condition);
if (lstPalletLog == null || lstPalletLog.Count <=0)
{
erpara.Add(DummyPalletNo);
ex = new FisException("PAK119", erpara); //此Dummy Pallet No %1 状态错误,不能解绑!
throw ex;
}
string sessionKey = DummyPalletNo;
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, currentSessionType);
if (currentSession == null)
{
string station = "UD"; //UC 更新:本站站号:UD;
currentSession = new Session(sessionKey, currentSessionType, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", line);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", currentSessionType);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("UnpackPalletNoForRCTO.xoml", "", wfArguments);
currentSession.AddValue(Session.SessionKeys.DummyPalletNo,DummyPalletNo);
currentSession.AddValue(Session.SessionKeys.Pallet, CurrentPallet);
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
}
catch (FisException e)
{
logger.Error(e.mErrmsg, e);
throw new Exception(e.mErrmsg);
}
catch (Exception e)
{
logger.Error(e.Message, e);
throw new SystemException(e.Message);
}
finally
{
//.........这里部分代码省略.........
示例13: UnpackAllBySNCheck
///<summary>
/// 根据指定的sn or dn解除绑定
/// 使用工作流070UnpackDNByall.xoml
/// </summary>
public void UnpackAllBySNCheck(string prodSn, string pdline, string editor, string station, string customer)
{
logger.Debug("(UnpackAllBySN)Unpack start, prodid:" + prodSn + "line:" + pdline + "editor:" + editor + "station:" + station + "customer:" + customer);
string currentSessionKey = prodSn;
try
{
station = "SP";
Session currentCommonSession = SessionManager.GetInstance.GetSession(currentSessionKey, ProductSessionType);
if (currentCommonSession == null)
{
currentCommonSession = new Session(currentSessionKey, ProductSessionType, editor, station, pdline, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", currentSessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentCommonSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", pdline);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", Session.SessionType.Product);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("070UnpackAllBySN.xoml", "070unpackallbysn.rules", wfArguments);
currentCommonSession.AddValue(Session.SessionKeys.CN, "ALL");
currentCommonSession.AddValue(Session.SessionKeys.Pallet, false);
currentCommonSession.AddValue(Session.SessionKeys.IsComplete, false);
currentCommonSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentCommonSession))
{
currentCommonSession.WorkflowInstance.Terminate("Session:" + currentSessionKey + " Exists.");
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentCommonSession.WorkflowInstance.Start();
currentCommonSession.SetHostWaitOne();
}
else
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentCommonSession.Exception != null)
{
if (currentCommonSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentCommonSession.ResumeWorkFlow();
}
throw currentCommonSession.Exception;
}
return;
}
catch (FisException e)
{
throw e;
}
catch (Exception e)
{
throw new SystemException(e.Message);
}
finally
{
logger.Debug("(UnpackAllBySN)Unpack end, prodid:" + prodSn + "line:" + pdline + "editor:" + editor + "station:" + station + "customer:" + customer);
}
}
示例14: UnpackCarton
///<summary>
/// 解除绑定
/// 使用工作流070UnpackCarton.xoml
/// </summary>
public void UnpackCarton(string cartonNo, string line, string editor, string station, string customer)
{
logger.Debug("(UnpackCarton)Unpack start, cartonNo:" + cartonNo + "line:" + line + "editor:" + editor + "station:" + station + "customer:" + customer);
FisException ex;
List<string> erpara = new List<string>();
carton.ICartonSSCCRepository cartRep = RepositoryFactory.GetInstance().GetRepository<carton.ICartonSSCCRepository, IMES.FisObject.PAK.CartonSSCC.CartonSSCC>();
try
{
CartonStatusInfo condition = new CartonStatusInfo();
condition.cartonNo = cartonNo;
IList<CartonStatusInfo> CartonStatus = cartRep.GetCartonStatusInfo(condition);
if (CartonStatus.Count == 0)
{
//erpara.Add("Invalid Carton No!");
erpara.Add(cartonNo);
ex = new FisException("PAC001", erpara);
throw ex;
}
var currentProduct = CommonImpl.GetProductByInput(cartonNo, CommonImpl.InputTypeEnum.Carton);
if (currentProduct == null)
{
FisException fe = new FisException("CHK079", new string[] { cartonNo });
throw fe;
}
string sessionKey = currentProduct.ProId;
Session currentSession = SessionManager.GetInstance.GetSession(sessionKey, ProductSessionType);
if (currentSession == null)
{
currentSession = new Session(sessionKey, ProductSessionType, editor, station, line, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", sessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", line);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", ProductSessionType);
string wfName, rlName;
RouteManagementUtils.GetWorkflow(station, "UnpackCartonForRCTO.xoml", "UnpackCartonForRCTO.rules", out wfName, out rlName);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow(wfName, rlName, wfArguments);
currentSession.AddValue(Session.SessionKeys.Carton, cartonNo);
currentSession.AddValue(Session.SessionKeys.CustSN, currentProduct.CUSTSN);
currentSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentSession))
{
currentSession.WorkflowInstance.Terminate("Session:" + sessionKey + " Exists.");
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentSession.WorkflowInstance.Start();
currentSession.SetHostWaitOne();
}
else
{
erpara.Add(sessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentSession.Exception != null)
{
if (currentSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentSession.ResumeWorkFlow();
}
throw currentSession.Exception;
}
}
catch (FisException e)
{
logger.Error(e.mErrmsg, e);
throw new Exception(e.mErrmsg);
}
catch (Exception e)
{
logger.Error(e.Message, e);
throw new SystemException(e.Message);
}
finally
{
//.........这里部分代码省略.........
示例15: UnpackDNbySNCheck
///<summary>
/// 根据指定的Custom Sn解除绑定
/// 使用工作流070UnpackDNBySN.xoml
/// </summary>
public void UnpackDNbySNCheck(string prodSn, string pdline, string editor, string station, string customer)
{
logger.Debug("(UnpackDNbySNCheck)UnpackDNbySNCheck start, prodSn:" + prodSn + "line:" + pdline + "editor:" + editor + "station:" + station + "customer:" + customer);
string currentSessionKey = prodSn;
try
{
if (station == "91")
{
station = "9U";
}
else
{
station = "9P";
}
//Session currentCommonSession = SessionManager.GetInstance.GetSession(currentSessionKey, ProductSessionType);
Session currentCommonSession = SessionManager.GetInstance.GetSession(currentSessionKey, ProductSessionType);
if (currentCommonSession == null)
{
//currentCommonSession = new Session(currentSessionKey, Session.SessionType.Common, editor, station, pdline, customer);
currentCommonSession = new Session(currentSessionKey, ProductSessionType, editor, station, pdline, customer);
Dictionary<string, object> wfArguments = new Dictionary<string, object>();
wfArguments.Add("Key", currentSessionKey);
wfArguments.Add("Station", station);
wfArguments.Add("CurrentFlowSession", currentCommonSession);
wfArguments.Add("Editor", editor);
wfArguments.Add("PdLine", pdline);
wfArguments.Add("Customer", customer);
wfArguments.Add("SessionType", Session.SessionType.Product);
WorkflowInstance instance = WorkflowRuntimeManager.getInstance.CreateXomlFisWorkflow("070UnpackDNBySN.xoml", "", wfArguments);
currentCommonSession.AddValue(Session.SessionKeys.CN, "DN");
currentCommonSession.AddValue(Session.SessionKeys.IsComplete, false);
currentCommonSession.SetInstance(instance);
if (!SessionManager.GetInstance.AddSession(currentCommonSession))
{
currentCommonSession.WorkflowInstance.Terminate("Session:" + currentSessionKey + " Exists.");
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
currentCommonSession.WorkflowInstance.Start();
currentCommonSession.SetHostWaitOne();
}
else
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add(currentSessionKey);
ex = new FisException("CHK020", erpara);
throw ex;
}
if (currentCommonSession.Exception != null)
{
if (currentCommonSession.GetValue(Session.SessionKeys.WFTerminated) != null)
{
currentCommonSession.ResumeWorkFlow();
}
throw currentCommonSession.Exception;
}
/*
Product newProduct = (Product)currentCommonSession.GetValue(Session.SessionKeys.Product);
if (newProduct.PalletNo == null)
{
FisException ex;
List<string> erpara = new List<string>();
erpara.Add("此机器尚未结合栈板,不能进行Unpack!");
ex = new FisException("CHK292", erpara);
throw ex;
}
currentCommonSession.AddValue(Session.SessionKeys.DeliveryNo, newProduct.DeliveryNo);
*/
return ;
}
catch (FisException e)
{
throw e;
}
catch (Exception e)
{
throw new SystemException(e.Message);
}
finally
{
logger.Debug("(UnpackDNbySN)UnpackDNbySNCheck end, cartonNo:" + prodSn + "line:" + pdline + "editor:" + editor + "station:" + station + "customer:" + customer);
//.........这里部分代码省略.........