99 lines
4.0 KiB
C#
99 lines
4.0 KiB
C#
|
using System;
|
|||
|
using System.Data;
|
|||
|
using Microsoft.VisualBasic;
|
|||
|
using Microsoft.VisualBasic.CompilerServices;
|
|||
|
using static iMESCore.Base.iMESConst;
|
|||
|
using static iMESCore.Base.iMESComXML;
|
|||
|
using static iMESCore.Base.iMESComSubroutine;
|
|||
|
|
|||
|
namespace tcEAI_C
|
|||
|
{
|
|||
|
|
|||
|
public class clsEAP
|
|||
|
{
|
|||
|
|
|||
|
public static string strDataBaseType;
|
|||
|
public static string strConnectionString;
|
|||
|
|
|||
|
#region EAP 客制接口
|
|||
|
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 共用功能 ConbineXMLFunction
|
|||
|
|
|||
|
public static string CombineXMLRequest_AutoExecutionLot(string InXml, string functionid, string computername, DataTable dtLotInfo, string OPNo, string CurUserNo, string SendTime, bool blnRuleChk = true)
|
|||
|
{
|
|||
|
string CombineXMLRequest_AutoExecutionLotRet = default(string);
|
|||
|
|
|||
|
string strLotXML = "<lotinfo>";
|
|||
|
string strLotNoColumnName = "";
|
|||
|
if (dtLotInfo.Columns.Contains("Lot_ID"))
|
|||
|
{
|
|||
|
strLotNoColumnName = "Lot_ID";
|
|||
|
}
|
|||
|
else if (dtLotInfo.Columns.Contains("LotNo"))
|
|||
|
{
|
|||
|
strLotNoColumnName = "LotNo";
|
|||
|
}
|
|||
|
|
|||
|
string strrulecheckTag = "";
|
|||
|
if (!blnRuleChk)
|
|||
|
{
|
|||
|
strrulecheckTag = "<chkrule>false</chkrule>";
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow drTemp in dtLotInfo.Rows)
|
|||
|
strLotXML = Conversions.ToString(strLotXML + Operators.ConcatenateObject(Operators.ConcatenateObject("<value><lotno>", drTemp[strLotNoColumnName]), "</lotno></value>"));
|
|||
|
strLotXML += "</lotinfo>";
|
|||
|
CombineXMLRequest_AutoExecutionLotRet = "" + "<request><identity> " + "<transactionid>" + Strings.Format(DateTime.Now, "yyyyMMddHHmmssfff") + "</transactionid>" + "<functionid>" + functionid + "</functionid>" + strLotXML + "<computername>" + computername + "</computername>" + "<opno>" + OPNo + "</opno>" + "<curuserno>" + CurUserNo + "</curuserno>" + "<sendtime>" + SendTime + "</sendtime>" + strrulecheckTag + "</identity>" + "<datainfo>" + InXml + "</datainfo>" + "</request>";
|
|||
|
return CombineXMLRequest_AutoExecutionLotRet;
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region ReverseTriggerOP
|
|||
|
|
|||
|
public static bool ExeReverseTriggerOP_NotUseUndo(string pUserNo, string pLotNo, string pLotSerial = defString, int pLotStamp = defInteger, string ComputreName = "EAI")
|
|||
|
{
|
|||
|
|
|||
|
string InXml, OutXml, strIdentity, strParameter;
|
|||
|
bool blnExecResult = false;
|
|||
|
|
|||
|
// 2020/3/17 Ning, Mantis: 0068960, WIP_Kit 增加ExeReverseTriggerOP_NotUseUndo共用函式
|
|||
|
try
|
|||
|
{
|
|||
|
// 檢查此 BR 是否此站第一次執行,若是第一次執行則以刪除Temp, Cont, LotLog...的方式取消Trigger OP的動作
|
|||
|
strIdentity = CombineXMLIdentity(ComputreName, pUserNo, DateTime.Now.ToString(defDateTimeFormat));
|
|||
|
|
|||
|
strParameter = CombineXMLParameter("lotno", "LotNo", "String", CInput(pLotNo), "");
|
|||
|
// 因FormLoad不見得會成功取得Lot的資料,有可能失敗,故使用變數來決定是否傳出參數.
|
|||
|
if ((pLotSerial ?? "") != defString)
|
|||
|
{
|
|||
|
strParameter += CombineXMLParameter("lotserial", "LotSerial", "String", CInput(pLotSerial), "");
|
|||
|
}
|
|||
|
if (pLotStamp != defInteger)
|
|||
|
{
|
|||
|
strParameter += CombineXMLParameter("lotstamp", "LotStamp", "Long", pLotStamp.ToString(), "");
|
|||
|
}
|
|||
|
InXml = CombineXMLRequest(strIdentity, strParameter);
|
|||
|
// OutXml = InvokeSrv("wsWIP.ReverseTriggerOP_NotUseUndo", InXml)
|
|||
|
|
|||
|
object[] aryPars = clsCom.funGetMethodParameters("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo");
|
|||
|
aryPars[0] = InXml;
|
|||
|
OutXml = clsCom.funExecuteMethod("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo", ref aryPars) as string;
|
|||
|
|
|||
|
blnExecResult = true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return blnExecResult;
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
}
|