目的: V40A – [SAP工單狀態異動] – 傳回 TXT檔至前端
處理說明: 1>將勾選的資料傳至後端 (JSON2dt)
2>後端開啟TXT檔案
3>依每筆資料呼叫 WebService , 並將傳回訊息寫入檔案
4>將TXT檔案 傳至前端
5>將訊息加入 Cookie
1>將勾選的資料傳至後端
1>>*.js
var Tmp_DataAry = [];
var Tmp_DataAry = [];
var cur_rec;
for (let i = 0; i < CHK_PK_OBJ.PK_LIST.length; i++) {
cur_rec = CHK_PK_OBJ.ALL_LIST[i];
Tmp_DataAry.push(cur_rec);
} // for i=0 to
//將 DataAry轉成 JSON
var Tmp_DataString = JSON.stringify(Tmp_DataAry); var np = {}; //TMFunction.js, 組合form上的查詢條件為json參數傳遞 np["sub_DataString"] = Tmp_DataString; //存入目前勾選的資料
-->後端處理 *.cs , 將 JSON 轉成 table
string Tmp_DataString = nvc["sub_DataString"];
DataTable dt1 = myfunc.JSON2dt(Tmp_DataString); //目前子畫面所勾選的資料
2>後端開啟TXT檔案
1>>*.cs
using System.Text;
string Tmp_out_FName = "V40A_SAP工單單況異動_log.txt"; //處理_log.txt
string documentPath = HttpContext.Current.Server.MapPath("~") + "document\\"; // 取得實實的路徑
string Tmp_out_pFName = documentPath + Tmp_out_FName; //含 path 的Filename
//清除檔案內容
if (File.Exists(Tmp_out_pFName))
{ File.Delete(Tmp_out_pFName); }
File.WriteAllText(Tmp_out_pFName, String.Empty);
Tmp_Str = " 工單號碼 工單異動說明 " +"\r\n";;
File.AppendAllText(Tmp_out_pFName, Tmp_Str);
3>依每筆資料呼叫 WebService , 並將訊息寫入TXT檔案
1>>*.cs
//處理每筆工單
for (var i = 0; i < dt1.Rows.Count; i++)
{
Tmp_SAPNO = dt1.Rows[i]["SAPNO"].ToString();
//呼叫 WebService , 取得傳回 ds
Tmp_ds = myfunc.set_SAPSTAT(Tmp_SAPNO, Tmp_STAT, Tmp_EMPLYID);
var Tmp_dr = Tmp_ds.Tables[0].Rows[0];
Tmp_Str = Tmp_dr["AUFNR"].ToString() + " " + Tmp_dr["MSG"].ToString()+ "\r\n";
File.AppendAllText(Tmp_out_pFName, Tmp_Str);
}// end of for (var i = 0; i < dt1.Rows.Count; i++)
2>>呼叫 WebService
public static dynamic set_SAPSTAT(string par_SAPNO, string par_STAT,string par_EMPLYID)
{
string Tmp_Str = "";
DataSet ds=new DataSet();
if ((!checkisnull(par_SAPNO)) && (!checkisnull(par_STAT)))
{
ZCO02.ZRFC_ZCO02SoapClient ZCO02_cls = new ZCO02.ZRFC_ZCO02SoapClient();
try
{
ds = ZCO02_cls.PROCESS_TRANS_WEB_CO02(par_SAPNO, par_STAT, par_EMPLYID);
}
catch (Exception ex)
{ } //throw ex; 可能回傳 null
finally
{ };
}
return ds;
}
4>將TXT檔案 傳至前端
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode((string)Tmp_out_FName, System.Text.Encoding.UTF8) + "\"");
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.ContentType = "text/plain";
HttpContext.Current.Response.WriteFile(Tmp_out_pFName);
HttpContext.Current.Response.End();
5>訊息加入 Cookie
//記錄 " 已執行完成 Cookie "
var Tmp_finished_str = "已執行完成!!";
MyCookie = new HttpCookie("UPDATE_SAPSTAT_finished", HttpUtility.UrlEncode(Tmp_finished_str));
HttpContext.Current.Response.Cookies.Add(MyCookie);
沒有留言:
張貼留言