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

2005/10/12

webMethods Modeler 中 Join Type 的設定

為什麼我建置的 Model 沒辦法被起動?
記得我剛開始在開發 RosettaNet 的時候,時常發生一個問題,就是當我收到一份 Document 的時候,我的 Model 卻沒有跑,然後,我檢查 Lo g的時候,看到 Log 的訊息是 “*** MODEL IS INACTIVE ***” “cannot create new instance of P54FJNQEBNZJ”,當時我第一個想法就是我的 Model 可能設錯了,於是我將原有的 Model 給刪除,然後再重新 Create 一個新的,但仍無法解決我的問題,還是一樣發生同樣的事情,其實後來才發現這個問題不難解決,只是一個簡單的設定而已。
那麼為什麼會發生上面的訊息呢?你可以進你的 Developer 的環境去執行 “wm.prt.debug:getModelIndex” 你就會發現到,你有部份的 Model 是重覆,但是狀態卻是 “INACTIVE” ,這個原因並不是一個 “Error” ,只代表你這一個 Model 被你從 Monitor Delete 而已。但當你接收到一份 Documents 的時候,原本被你刪除的 Model 剛好附合被趨動的條件,但這一個 Model 卻是被 Inactive ,所以才會出現 “*** MODEL IS INACTIVE ***” 的訊息。至於我真正要被趨動的 Model 為什麼沒有被趨動呢?其設定更改如下就可以了!
當你會發生這個原因,大部份是你的 Model 附合以下的條件:
  1. 你的 RN 是屬於 Receiver 端,所以你等待的是一份外部的 Document 。
  2. 這一個 Model 是拿原始的 Model 來更改的
  3. 你在 TN Console 中的 Transaction 看得到此筆 Transaction ( Document )
若你附合以上的條件,那麼請您就做以下的操作:
  1. 打開你的 Model ,並且打開第一個Step(Wait for……)的 Properties 。
    
  2. 在 Properties 中會看到 “Join Type” 的內容是 “Complex” ,請你把該選項下拉後,再選一次。
  
  3. 你會看到類似下面的畫面,在 “Transition/Subscriptions” 重新選擇你所要 Wait 的 Document。
  

  
  
  4. 存檔後,重新產生即可。
就依據上面的幾個動作就可以囉!

我不希望我Filepolling使用Multiple Threads

在敘述問題前,先感謝Calista, Rich, Sandra, Ls 等人的協助,希望下次有機會能再到你們公司拜訪囉^^

有個 webMethods 的朋友,前幾天問我一個 Filepolling 的問題,說實在的,雖然我 Filepolling 已經用了一段時間,但還沒有遇到跟他類似的需求,所以我想了一下,想出了一個爛的解決方法,不過此方法卻沒有解決他的問題,我先把他的需求簡單的描述一下。

“……在所 Filepolling 的 Folder ,要他以一筆一筆的方式來處理該檔案,此檔案是,當該檔案還沒有處理完畢時,不能處理下一筆檔案,但 webMethods 是 Multiple Thread 的方式,雖然他可以依順序來處理檔案,但若第一筆的資料比較多,第二筆的資料比較少的時候,有可能發生第二筆處理完畢後,第一筆才處理完,但我希望的是第一筆處理完,再處理第二筆……”

雖然我沒遇到這個 Case ,不過我想這應該不難吧,弄一個 Q DB 就可以搞定這一個 Case 才是,所以我就決定下面的做法:

流程序述:
1. 產生的檔案的檔名請依時間命名
2. Fillpolling 取得到檔案時,將檔名存放於DB中,內容暫不處理
3. 每三十秒執行一次Schedule Seriver, 此Service是去Q DB取得第一筆Record,此記錄應該為最舊尚未處理的檔案,當處理完畢後,將此Record刪除,所排定的Schedule請勾選Repeat from end of invocation 選項,可避免後來先處理的情形。

過沒多久對方跟我說,並沒有解決他們目前的問題, “……因為在這一個Case 裡,我們除了要讓 wM 依照順序丟出 Data 給 ERP 後端程式外,還希望控制到等ERP 後端程式處理完後再丟出 Data 給 ERP ……” 。顯然地,我的解決方法並沒有未他們解決這一個問題,不過他們卻跟我說有一個設定可以解決這一個問題, “……後來我們發現 wM 的 FilePooing 的機制設定中,有個 Maximum Number of Invocation Threads 這個設定 (設定為1)可以解除我們目前遇到問題……”。

我後來查了一下文件,這一個設定是可以允許你這一個 Filepolling 一次可以有多少個 Threads ,他的範圍從 1 ~ 10 ,因為我平常都不做這一個設定,所以也沒去注意到,而他的 Default 是 10 ,所以當你不去做設定時,他就是以 Multiple Threads 的方式來處理。

後記~~我想解決問題的方法,應該是先找有沒有相關的文件或案例,若找不到相關的資料再進行天馬行空會比較好,免得臭大了。

2005/09/21

Processing Rules實作(一)

案例
  我有一台webMethods Server上面運行EDI也有一段時間了,我當時也購買了五個 webMethods Partner 的License ,想說可以給我的 Partner 使用,不過最近我其它在國外的子公司也想導入,但我的 Partner License 只能連總公司,那我要怎麼做比較好。
  在不久前我有聽過有”類似”這一方面的需求,雖然我不知道這是不是大部份的公司所面臨到的問題,不過 webMethods 的 Processing Rules 應該可以符合這個需求,實作起來還蠻簡單的,以下我就舉一個案例來做簡單的步驟說明,若有不當的,還請多指教囉!
  情境:
  我的公司名稱為 Julian Company ,另有有二間子公司各為 Julian UB1 及 Julian UB2 ,他們的客戶 Customer1 在以前傳送 Invoice 都是經由傳真的方式給我的子公司,但現在想利用 EDI 的方式來傳送,選擇的標準為 EDIFACT 版本為 96B ,訊息名稱是 INVOIC ,所以我將以 Julian Company 做為公司的 Hub ,然後依據資料內容傳送給不同的子公司 UB1 或 UB2 。
  方法:
  1. Install TN Document Type
    進到 http://localhost:5555/WmEDI/ 的畫面,然後到 Doc Exchange 的 Install TN Document type ,在右側處選擇 Standard 為UN/EDIFACT 、 Version 為 96B 、 Transaction Set 為 INVOIC ,


    選完後,請按 "Add Document Type Definition to Trading Network" 。這個時候就能在 TN Console 中 Document Type 看到 UNEDIFACT 96B 的 Document 。


  2. 撰寫 Route EDI 的 service
     當我們收到 EDI 資料時,分辨出他的 Receiver 後,接下來就是轉傳給他的真正的 Receiver 而不是 HUB ,所以我們必需要寫一個簡單的 service 來做一個轉傳的動作。除此之外,在我們收到 EDI 當時, TN Console 上的 Transaction 中的 User Status 會顯示為 "IGNORED" ,在這一個 case 裡,我希望當他轉傳成功能,能變為 "DONE" ,這一個 server 的簡易寫法如下:


(可 下載 此service範例)


  3. 訂定 Route EDI 的 Processing Rule
     訂定這一個 Processing Rule 的目的是為了將收到的 EDI 交由我們剛剛所設定的 Service 處理,此設定如下:
    i. 打開 TN Console 並到 Processing Rules ,選擇 Last Tab 並按 "Above" , Processing Rule 的 Name 設定為 "EDI Processing Rule" 。


    ii. 在 Criteria Tab 中設定 Sender Name 為 "Customer1" , Document Type 為 "UNEDIFACT Envelop" ,於 Action Tab 中設定 Execute a service ,並選擇我們剛剛所撰寫的 Service 。

此 Processing Rule 就算是設定完成。(此 Processing Rule 可 下載 )


  4. 進行測試
     將我們要測試的EDI資料透由http://server:port/WmEDI 傳到 http://server:port/invoke/wm.tn/receive 即可。
     注意:請用二台機器做對傳,若僅有一台機器 Processing Rules 會出現 Loop 狀況。

2005/09/12

EDI Modeler Design實例運用(一)

前言

大部份的人除了公司有拿 webMethods 來做 EAI 的事項外,其餘的應該很少有用到 Modeler 功能,我以一個目前實際的例子來引導出 Modeler Implementation 的概念,不過, Modeler 的用法跟目的,是見人見智啦,在這邊只是用一個簡單的例子來說明而已,所以不要太介意或太在乎我的做法,畢竟每個人的想法不一樣,所以做出來的東西也不一樣,就像寫程式一樣,一個九九乘法表的程式,每個人寫出來的,也不盡相同。
範例:一個 Inbound EDI 的流程,當我收到一個 EDI 的檔案時,進行資料驗證後,將資料傳送到資料庫中,若其中的過程有問題,則必需要做 Error Handle ,並且發生 Email 通知相關人員。
這個範例,其實也可以經驗 Processing Rules 來完成,反而簡單又快速,不過,我以 Modeler 的方式,是為了能運用 Modeler 用法,並且能使用 Monitor ,來方便管理及監控我的 Process 。其步驟如下:
  1. 繪製 EDI Inbound Process
注意到,左右這二塊是跟中間這一塊的顏色不一樣,而且連接的線,是以虛線來表示,跟其它的實線不一樣,其原因在於左右這二塊是屬於External Group,External Group中的Step不會程生於程式當中,純粹只是流程的表示而已,最重要的是我們中間白色的這一塊,這是webMethods實際運作流程。
注意:藍色跟紅色線的差別是在於Step處理的結果,若此Step處理失敗則會走紅色路線,若成功則走藍色路線,只要設定Line的Properties即可。

  2. 當有 Join Step 的時候,必需要設定 Join 的條件

流程中的 Handle Error Step ,有三條 Line 都指定此 Step ,此時我們必需設定 Join Type ,否則在 Process Validate 的時候,會發生無法驗證的錯誤。


  3. 設定 Folder 以及 Package 的位置
雖然當我們的流程產生出來後, Modeler 會自動幫我們產生 Folder 以及 Package ,但為了管理方便,我們也可以自行指定我們要產生的 Package Name 以及 Folder Name ,只需要在 Properties 中設定即可。

  4. 定義被啟動的文件及條件
  幾乎每一個 Modeler 都是被一個 Document 所啟動的,也就是說,若我們所畫的 Modeler ,是要被啟動的一個 Process ,那們我們就得設定他所等待的 Document ,以及此文件所等待的條件,在此範例中,我的條件是設定此份的 EDI 的 User Status 及 Sender ,當符合我所設定的條件時,就會啟動此流程。


  5. 選擇要Invoke的Service

在開發這一個 Modeler 之前,我已經開發完所相對應的 Service 了,所以接下來,我只需要指定我所開發出來的 Service 即可。不過有的人是習慣先畫完流程再寫 Service ,我想這應該沒有一定的規則吧,應該是看每個人的開發邏輯跟方式而定。







  6. 驗證、產生、上傳流程
整個Modeler算是開發完畢,接下來只需要幾個按紐即可搞定,這其中包括:
Validate Business Process:驗證一下我畫出來的圖是否正確,如果有不對的,他會有Error Message產生,再依照所指定的錯誤去更改就好了。
Generate Business Process:產生你的 Business Process ,產生完畢後,你可以用 Developer 去看看有沒有什麼變化,這時,你應該會看到會產生一個 Package 出來,而這個 Package 的名稱,應該是你之前所指定的名稱。
Update Model for Monitoring:當你完成後,你就會在你的 Monitor 的管理畫面看到這一個 Model 的名字啦, Monitor 的管理畫面在哪呢?打開你的瀏灠器,並在網址列打上 webMethods 的位置及 Port Number 後面再加上 /WmMonitor/ 即可。
最後別忘了,把這一個 Model 給 Enable ,即可使用啦。

2005/08/29

我們提供 B2Bi & EAI 解決方案

在多變的競爭環境,整合企業內部系統以達到跨部門跨組織並整合上下游供應商,組成完整的供應鏈,已是企業已不可獲缺。讓企業提昇競爭力及客戶服務,使企業提高獲利速度。




企業目前所面臨 IT 平台整合的困境


繁亂無章的系統要進行整合

今天企業內部面臨龐大企業整合的壓力,各系統之 間不僅僅只是做單純的資料交換而已,更需要有整 合的統一標準、細緻的流程控管並且更有彈性的變 化來因應各種不同的需求及變更。
一個看似簡單的 系統整合,卻要橫跨三個以上不同 的系統,以傳統的做法,可能是以資料庫整合的模 式,來整合各個不同的系統,但此種模式並非合適 的方式,那我們遇到整合性的問題,該如何來解決?在此webMethods提供一個良好的整合解決方案。
webMethods (NASDAQ: WEBM)
webMethods為美國一間上市公司,所提供的Solution為解決公司內部系統整合及外部B2B整合的解決方案供應商,其Solution名稱與公司稱webMethods同名,所服務的客戶含蓋全球,包括知名的AT&T、SONY、Panasnic、3M、台積電、聯電等等世界名大廠,其Solution能輕易且快速的整合企業各種不同平台系統及經由RosettaNet、ebXML或是EDI的方式整合企業供應商系統,以達到水平及垂直性的供鏈管理。(其公司網站為http://www.webMethods.com)
webMethods 所提供的整合機制
webMethods提供一整合性服務平台來整合個各系統
企業內部,擁有不同的應用系統、不同的應用系統上又有不同的Function,以及外部不同的Partner,webMethods以服務為導向,將整合層次往上提昇,不只做資料庫的整合,更做功能性的整合,整合各個不同應用軟體上的功能,以達到真正的EAI。
webMethods所提供的Adapter
若企業今天要做B2Bi,webMethods有:RosettaNet Adapter、EDI Adapter、ebXML Adapter
若企業今天要連接不同的資料庫,webMethods可支援:Oracle、IBM DB2、Sybase、Informix、Microsoft SQL Server
若企業今天要整合不同的ERP,webMethods提供了:SAP Adapter、Oracle Applications Adapter、Broadvision
若企業內部有CRM系統需要連接,webMethods有:Siebel Adapter、Peoplesoft Adapter
webMethods提供商業流程管理介面來建置企業的商業流程

利用 webMethods 的 BPM(Business Process Management),經由簡單的托、拉、放的方式,

及簡易的設定,即可設計一個複雜的商業

流程。而當一個流程被啟動時,webMethods的BAM(Business Activity Monitoring),可及時知道目前此流程的狀態,並且即時產生動態報表。
webMethods提供多種應用管理媒介
企業可以利用PDA、電腦以及手機方式來操作你的webMethods整合系統。
安捷達提供整合的經驗
各種不同平台的開發經驗

企業內部所要整合的系統不僅複雜,並且各系統的開發方式不盡相同,但安捷達不管是在Portal Management 、On-line Applicatoin 以及Application Integration等等,都擁有許多的系統開發經驗。


充份的技術資源

安捷達著力於亞洲的IT市場,擁有豐富的IT資源,各分據點不僅相互支援並且緊密的合作,不管是在香港、上海或是新加坡,我們都有充份的IT經驗,是可以值得信賴的顧問公司。


台灣安捷達更擁有C + M + T的能力
   C : Creative
   M : Marketing
   T : Technology
安捷達除了提供Technology外,並且提供了Creative能力,由這次第六屆金手獎,安捷達更是獲得許多專家的肯定,安捷達在這次盛會中,共入圍了二十二項,並獲得了三銀二銅三佳作的獎項。然而有了美化的網頁,並不足稱上一個好的網站,因此在Marketing部份,安捷達更是提供了許多良好的企劃來協助網站及企業的經營,安捷達能將C + M + T的能力緊密的結合並且提供給客戶。
Julian Chou 周金龍
http://www.agenda-asia.com
Technical Consultant of eSolutoin
Division AGENDA Taiwan
WORK: +886-2-2396-7773
FAX : +886-2-2396-7926
MAIL: Julian.Chou@AGENDA-asia.com
GSM : +886-922-639894
MSN : julianchou71@hotmail.com