2012年8月29日 星期三
HTML5 才是王道?
以兩三年前我一定說不,因為那時我都在玩 Flex,但現在的情勢我不會這麼肯定了,不過最近有一個新聞關於 facebook放棄 android, ios app 使用 html5 開發,改用 native 方式,因為速度變快很多。 相關新聞 http://www.macnewsworld.com/story/76007.html
這讓我想到有篇文章可以分享,連結如下:http://flexblog.faratasystems.com/2012/07/19/adobe-or-html5
提到有種情況是這樣的:如果你是專門開發企業內部使的的程式,而且會有需求是來自使用者可能會用手機或平板,有的用 android的,有的用 IOS的,有的是 blackberry,有的是 windows phone的。如果是這樣的話,你會怎麼作 ?
開發 pure web application or mobile applicaiton 或是像 facebook 先前的方式採用 html5 ?
如果是 pure web application的話,是否考慮到 interface for desktop and mobile user
如果是 mobile application的話,一隻相同的程式是否要寫不同的 native版本 for 不同的 mobile 作業系統
如果是用html5 的話,是否評估過其開發的時程跟其它語言開發的時程是否有差距,其效能為何,是否也會碰到 facebook 的問題
有沒有其它的 solution,寫一次就可以在任何 mobile device上執行的呀,就像 Java一樣
作者是建議 Adobe AIR,那你呢 ?
最後,在文章中學到的英文俚語要跟大家分享
men who shave in the evening love their wives, and those who shave in the morning love their work.
這讓我想到有篇文章可以分享,連結如下:http://flexblog.faratasystems.com/2012/07/19/adobe-or-html5
提到有種情況是這樣的:如果你是專門開發企業內部使的的程式,而且會有需求是來自使用者可能會用手機或平板,有的用 android的,有的用 IOS的,有的是 blackberry,有的是 windows phone的。如果是這樣的話,你會怎麼作 ?
開發 pure web application or mobile applicaiton 或是像 facebook 先前的方式採用 html5 ?
如果是 pure web application的話,是否考慮到 interface for desktop and mobile user
如果是 mobile application的話,一隻相同的程式是否要寫不同的 native版本 for 不同的 mobile 作業系統
如果是用html5 的話,是否評估過其開發的時程跟其它語言開發的時程是否有差距,其效能為何,是否也會碰到 facebook 的問題
有沒有其它的 solution,寫一次就可以在任何 mobile device上執行的呀,就像 Java一樣
作者是建議 Adobe AIR,那你呢 ?
最後,在文章中學到的英文俚語要跟大家分享
men who shave in the evening love their wives, and those who shave in the morning love their work.
早上刮鬍的男人是熱愛工作的,晚上刮的男人才是愛老婆的。所以要看看你的另一半是早上刮還是晚上刮,但不代表他們一定不會偷吃哦~~~
Oracle EBS R12 Invoice Validation 客製 (customize)
在 Oracle ERP AP的標準 Invoice Validation報表中,使用者可以針對如 Batch Name 等條件去作 validate的動作,但以會計人員的角度是以每一張 Invoice 角度來看,不是各別 batch name or supplier,所以我們會在 Invoice Header上增加一個彈性欄位,值為 Y or N,當會計人員經作業流程確認這張 Invoice沒有問題之後,才去維護這一個彈性欄位,把值設為 Y。
接下來就是客製 Invoice Validation 的部份,在 R11來說是會 copy APXAPRVL.rdf這一隻報表來改,相對來說比較簡單,只要加上 sql where string 將彈性欄位為 Y值作 validate即可。而使用者只能執行客制報表,不可以執行標準的 Invoice Validation。
為什說比較簡單呢,因為公司的政策是,如果需要客製的話,不可以直接改寫原廠的程式,必需是要作 Clone ,再來改寫,而使用者就執行改寫的那隻報表。
但導入 R12時,原本想說應該也是這麼簡單,但很快地就發現我錯了。 因為在 R12,sql string 不是放在 Report 內,而是放在 AP_APPROVAL_PKG.pck 內,要改只能在這邊修正,可是公司的政策是,如果需要客製的話,不可以直接改寫原廠的程式,必需是要作 Clone ,再來改寫,而使用者就執行改寫的那隻報表。 所以只能把 AP_APPROVAL_PKG.pck clone後,再拿來改,可是改完再 compile時,客製的 approve 程式出現了一堆錯誤,花了些時間檢查,又發現到 Oracle 原廠在開發這些 package時有用到類似物件導向的方式。pacakge A會使用 package B的變數, package B又會用到 package C 的變數,所以不得已,又去 Clone好幾隻原廠程式來改,總共 Clone
AP_ETAX_PKG.pck
AP_ETAX_SERVICES_PKG.pck
AP_APPROVAL_MATCHED_PKG.pck
拿來改,改到 compile 都沒問題,且在測試 invoice validate 時沒有問題就上線。
因為 R12導入方式是全新導入,而非升級,且導入時 AP這邊沒上什麼 patch,所以導入後一大堆問題跑出來,需要上 patch來作 data fix or root cause fix,當初因為 clone出來而改寫的 package可能都有 bug 存在,所以客製 invoice validation 相關的程式就需要重新再改寫,如果有上的 patch有更動到這些 package的話,我又要再改寫一次。 這種方式真是爛透了,而且也不保證就一定正確,最後會陷入一種情境就是 作呷流汗,嫌呷流口水,吃力不討好。 所以就跟 ERP管理者討論是否可以直接修改原廠程式 AP_APPROVAL_PKG.pck 即可,討論之後的結果是 OK,那就著手進行修改。
可是另外一個問題來了,如果下次上 patch 時有更改 AP_APPROVAL_PKG.pck 時, 程式碼會被更新,自己加上的 where 條件就會不見了,造成每一張 Invoice 都會被拿來作 validate,所以要將客製的 APXAPRVL.rdf加上檢查條件,判斷 AP_APPROVAL_PKG.pck 的程式版本是否有更新,如果有的話,就不執行 validate並丟出一個錯誤讓使用者知道。作法如下
1. 建一個 table 記錄 AP_APPROVAL_PKG.pck 程式的版本,代表這個版本是你有修改過的。
2. 客製的 APXAPRVL.rdf加上檢查條件
在BeforeReport 內讀取 AP_APPROVAL_PKG.pck的版本
SELECT trim(text) into AP_APPROVAL_PKG_VER_Current
FROM dba_source WHERE line = 2 AND type LIKE 'PACKAGE%'
and name ='AP_APPROVAL_PKG' AND owner = 'APPS'
and type = 'PACKAGE BODY'
ORDER BY name, type;
再比對 兩個程式的版本,如果不同,代表可能有上 patch把程式更新了,這時再重新到 AP_APPROVAL_PKG.pck 把 where clause 加上即可 ,沒有問題後,更新 table 記錄 AP_APPROVAL_PKG.pck 程式的版本。
AP Payment Accounting 的條件
ap_invoice_payments_all欄位 Posted_flag, 如果此 check_id的posted_flag = Y,accounting 才會是
Proceeded.
Proceeded.
AP Invoice 相對應的 PO沒有作驗收但Hold卻沒有 Quality Hold
1.檢查對對應的 PO line shipment Item 的資料,Match approval Level是否為3-way,如果是代表不檢驗即可入庫,所以沒有 Quality Hold是正常的,如果不是 (4-way)可能就是系統的問題了。
原廠文件 FAQ - ORACLE PURCHASING [ID 1264331.1]
原廠文件 FAQ - ORACLE PURCHASING [ID 1264331.1]
2-way matching verifies that Purchase order and invoice information match within your tolerances as follows:
Quantity billed <= Quantity Ordered Invoice price <= Purchase order price (<= sign is used because of
tolerances)
3-way matching verifies that the receipt and invoice information match with the quantity tolerances defined:
Quantity billed <= Quantity received
4-way matching verifies that acceptance documents and invoice information match within the quantity tolerances
defined:
Quantity billed <= Quantity accepted.
2012年8月28日 星期二
Glassfish 上管理 openmq service
參考文章:Configuring JMS Resources in GlassFish: Part 1
Configuring JMS Resources in GlassFish: Part 2
在第二個連結網址設定Object Stores java.naming.provider.url的值要以 file:///開頭,比如
file:///C:\\temp這樣才可以。 其它的按照文件設定即可。
值會儲存在 C:\Documents and Settings\userID\.imq\admin
Configuring JMS Resources in GlassFish: Part 2
在第二個連結網址設定Object Stores java.naming.provider.url的值要以 file:///開頭,比如
file:///C:\\temp這樣才可以。 其它的按照文件設定即可。
值會儲存在 C:\Documents and Settings\userID\.imq\admin
Windows 8 以及 Visual Studio 2012 RTM 同步釋出
http://www.microsoft.com/taiwan/vstudio/2012/?WT.mc_id=msdnflash
訂閱:
文章 (Atom)