顯示具有 PDM04 標籤的文章。 顯示所有文章
顯示具有 PDM04 標籤的文章。 顯示所有文章

2022年12月12日 星期一

V80201- WebService PDM04 & PDM02 - 顯示在 TMGrid (修改成 T1 & T1C) - ds2T1C

 目的:  V80201- 生工OSM查詢 呼叫 WebService PDM04 & PDM02

處理說明:  1>VisualStudio 2019.IDE - 參考 WebService PDM04
                   2>呼叫 WebService.method
                   3>將 WebService傳回的 ds 顯示在 Grid (改成  T1 & T1C  格式)


 1>VisualStudio 2019.IDE - 參考 WebService PDM04




2>呼叫 WebService.method
// for getWebService_M
        [HttpPost]
        public dynamic getWebService_M()
        {
            var c = HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;
            string Tmp_PN = myfunc.null2str(nvc["s_PN"]);
            string Tmp_ECNO = myfunc.null2str(nvc["s_ECNO"]);
            string Tmp_PDM_CONFIG = myfunc.null2str(nvc["s_PDM_CONFIG"]);
            string Tmp_PDTP = myfunc.null2str(nvc["s_PDTP"]);
            string Tmp_FACWC = myfunc.null2str(nvc["s_FACWC"]);
            string Tmp_ACNO = myfunc.null2str(nvc["s_ACNO"]);
            string Tmp_MKNO = myfunc.null2str(nvc["s_MKNO"]);
            string Tmp_CNDPROCCODE = myfunc.null2str(nvc["s_CNDPROCCODE"]);
            string Tmp_STAT = myfunc.null2str(nvc["s_STAT"]);
            string Tmp_PROCDT1 = "";
            string Tmp_PROCDT2 = "";
            string Tmp_CHKDT1 = "";
            string Tmp_CHKDT2="";
            //處理完成日期
            //string Tmp_PROCDT1 = myfunc.null2str(nvc["s_PROCDT1"]);
            if (!myfunc.checkisnull(nvc["s_PROCDT1"]))
            {
                Tmp_PROCDT1 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_PROCDT1"]));
            };
            //string Tmp_PROCDT2 = myfunc.null2str(nvc["s_PROCDT2"]);
            if (!myfunc.checkisnull(nvc["s_PROCDT2"]))
            {
                Tmp_PROCDT2 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_PROCDT2"]));
            };
            ////預計編審完成日期
            //string Tmp_CHKDT1 = myfunc.null2str(nvc["s_CHKDT1"]);
            if (!myfunc.checkisnull(nvc["s_CHKDT1"]))
            {
                Tmp_CHKDT1 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_CHKDT1"]));
            };
            //string Tmp_CHKDT2 = myfunc.null2str(nvc["s_CHKDT2"]);
            if (!myfunc.checkisnull(nvc["s_CHKDT2"]))
            {
                Tmp_CHKDT2 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_CHKDT2"]));
            };
            string Tmp_DT1, Tmp_DT2;
            AMM_PDM04.ServiceSoapClient PDM04 = new AMM_PDM04.ServiceSoapClient();
            DataSet ds;
            if (Tmp_STAT=="C")
            {
                Tmp_DT1 = Tmp_PROCDT1;
                Tmp_DT2 = Tmp_PROCDT2;
                ds = PDM04.AMM_PDM04(Tmp_PN, Tmp_ECNO, Tmp_PDM_CONFIG, Tmp_PDTP, Tmp_ACNO,
                                                                  Tmp_FACWC, Tmp_STAT, Tmp_DT1, Tmp_DT2, Tmp_MKNO,
                                                                  Tmp_CNDPROCCODE);
            }
            else
            {
                Tmp_DT1 = Tmp_CHKDT1;
                Tmp_DT2 = Tmp_CHKDT2;
                ds = PDM04.AMM_PDM01(Tmp_PN, Tmp_ECNO, Tmp_PDM_CONFIG, Tmp_PDTP, Tmp_ACNO,
                                                                  Tmp_FACWC, Tmp_STAT, Tmp_DT1, Tmp_DT2, Tmp_MKNO,
                                                                   Tmp_CNDPROCCODE);
            }


//3>將 WebService傳回的 ds 顯示在 Grid  (改成 TMGrid格式  - T1 & T1C )
            myfunc.ds2T1C(ds);
            /*
            DataTable dt = ds.Tables[0];
            dt.TableName = "T1";
            DataTable dt1 = ds.Tables.Add("T1C");
            dt1.Columns.Add("TOTAL", typeof(Int32));
            DataRow dr = ds.Tables["T1C"].NewRow();
            dr["TOTAL"] = dt.Rows.Count;
            ds.Tables["T1C"].Rows.Add(dr);
            */
            return ds;
        }




2022年12月6日 星期二

V80201 - WebService 定義呼叫 操作說明 & 顯示傳回資料說明 - 若資料空白,則顯示"無符合的資料!!" - 錯誤訊息: 找到多個合約端點組態

 目的: V80201 - WebService 呼叫 & 顯示傳回資料說明  - AMM_PDM04

處理說明: 呼叫 WebService的步驟
                  1>將 WebService 的網址加入 專案  
                       - 方案總管 --> 參考  --> 加入服務參考
                       Ex: http://enovia/AMM/Service.asmx Method: AMM_PDM04
                  2>完成後, 
                       - 方案總管 --> Connect Service  --> 多一 AMM_PDM04
                  3>web.config 移除重複 endpoint 
                       - web.config  --> 移除重複 endpoint of AMM_PDM04
                  4>呼叫 AMM_PDM04 函式  
                       AMM_PDM04.ServiceSoapClient PDM04 = new AMM_PDM04.ServiceSoapClient();
                       DataSet ds = PDM04.AMM_PDM04("10-43-0301-001", "","AJT", "A", "0011", 
                                                                                     "",  "C", "2000/01/01","2022/12/05","", 
                                                                                     "");
                   5>若無符合條件的資料,則顯示訊息
                         if (gridstore.data.getCount() == 0) {
                                    mywarnalert("無符合條件的資料!!");
                                }

                   6>WebService 傳回 ds.tables , 修改成 T1 & T1C


1>Visual Studio 2019 IDE 操作畫面

1.    方案總管 à 參考 à 按右鍵 à 加入服務參考

Ex:  http://enovia/AMM/Service.asmx

    Method: AMM_PDM04



 

 

 

 

 

 

 

 

 

2.於加入服務參考視窗設置參數如下圖

    Ex:    AMM_PDM01



3.確定後可至方案總管 à Connected Service查看


  

4.web.config à 將重複的endpoint 移除

  --> 否則執行時,會出現 以致出現錯誤訊息(xx找到多個該合約的端點組態xx)

  --> 將其中一個 AMM_PLM04 刪除即可

   <endpoint address="http://enovia/AMM/Service.asmx" binding="customBinding"

        bindingConfiguration="ServiceSoap122" contract="AMM_PDM01.ServiceSoap"

        name="ServiceSoap12" />





   

4.呼叫webservice所提供之function



 

程式範例

ZRFC_ZM66.ZRFC_ZM66SoapClient sap = new ZRFC_ZM66.ZRFC_ZM66SoapClient();

DataSet ds = sap.CALL_Z_RFC_ZM66("1", MATNR, null, null, null, null, null, null, null, null, null, null, null, null, null);

DataTable dt = ds.Tables[0];

 

 

Sample2:  *.cs





using TLSWEB_AMM.AMM_PDM04;

AMM_PDM04.ServiceSoapClient PDM04 = new AMM_PDM04.ServiceSoapClient();

            DataSet ds = PDM04.AMM_PDM04("10-43-0301-001", "","AJT", "A", "0011",

                     "",  "C", "2000/01/01","2022/12/05","",

                                         "");

             //將 WebService 取得的 ds , 改成 TMGrid的格式 T1 & T1C

            DataTable dt = ds.Tables[0];
            dt.TableName = "T1";
            DataTable dt1 = ds.Tables.Add("T1C");
            dt1.Columns.Add("TOTAL", typeof(Int32));
            DataRow dr = ds.Tables["T1C"].NewRow();
            dr["TOTAL"] = dt.Rows.Count;
            ds.Tables["T1C"].Rows.Add(dr);
            return ds;




實例: Web改版:  V80201 - 呼叫WebService AMM_PDM04






4>
{
                        xtype: 'button',
                        id: 'btn_Show',
                        flex: 2,
                        border: 1,
                        text: '資料顯示',
                        iconCls: 'icon-search',
                        handler: function () {
                            //檢核 [專案配置][生產工廠]不可均空白
                            var Tmp_PDM_CONFIG = Ext.getCmp('s_PDM_CONFIG').getValue();
                            var Tmp_FACWC = Ext.getCmp('s_FACWC').getValue();
                            var Tmp_Str = "";
                            if ((checkisnull(Tmp_PDM_CONFIG)) && (checkisnull(Tmp_FACWC))) {
                                Tmp_Str = "[專案配置][生產工廠]不可均空白, 敬請檢核";
                                mywarnalert(Tmp_Str);
                                return;
                            }
                         var np = s_JSON('s_form'); //TMFunction.js, 組合form上的查詢條件為json參數傳遞                            
                            np["s_STAT"] = Ext.getCmp('s_STAT').getValue();
                            console.log(" np[s_STAT]  : ", np["s_STAT"]);
                            gridstore.getProxy().url = '../api/V80201API/getWebService_M';
                            gridstore.getProxy().extraParams = np; //分頁OK,篩選條件OK                                                        
                            gridstore.on("load", function () {
                                console.log("gridstore.onload !!");
                                if (gridstore.data.getCount() == 0) {
                                    mywarnalert("無符合條件的資料!!");
                                }
                            });
                            gridstore.load();
                        }    //end of  顯示資料.handler                       
                    },  // end of 顯示資料