2010年3月14日 星期日

利用電腦結算成本,這也是導入 Smart ERP的主要目的

利用電腦結算成本,這也是導入 Smart ERP的主要目的??

用人工也可節成本!!
算成本算正確很不簡單!!
因為 BOM 會更改
因為 用料會替用
但是結構對就不會困難
很多公司成品完成無法入庫??
是因為領料不齊全無法入庫??
是生產線已產出
品保已經檢驗
產品已入成品區!!!!
為何沒領料單可以生產??
是線邊倉沒有自動化以倒沖帳自動提領用料 ??
是 BOM 與 批次用料不相同 ??
是 沒有設立 批次用料標准 ??
是 沒有設立 批次替代料申請流程 ??


因完全依照 Smart ERP的作業流程,並未做太多個案修改 , 這不僅減少公司軟體費用的支出,更對於系統導入過程及後來資料維護上,都減少很多不必要的困擾 。

  整個上線過程中許多令人感動的點滴,其中之一就是當 USER遇到問題時,張總經理常說:「先聽聽顧問怎麼說」,他總是在員工面前極力支持顧問師。再者,無論電腦化出現任何問題,他亦總會說:顧問師請您儘量教我們的員工,我相信他們亦是很Smart。

  目前達佛羅已能利用電腦結算成本,這也是導入 Smart ERP的主要目的。透過雙方願意充份溝通並共同解決問題,相信導入ERP是可以創造出最佳的e化效益 。

ERP 這種關聯圖示大腦與身體的關連

這種關聯圖示大腦與身體的關連

大家都知道有關連

但是如何關連

用什麼關連


http://www.ares.com.tw/ArgoERP/img/b2_01l.jpg

ERP 核心技術轉移顧問

商業軟體 ERP 導入顧問 用經驗告訴你 如何避開 現有 ERP 的限制
開源軟件 技術轉移顧問 用經驗告訴你 如何修正 現有 ERP 的限制

我是 ADempiere/Compiere 核心技術轉移顧問
Skype: ADempiere/Compiere

例如::

開帳時的試算表:
將"庫存"改成"開帳庫存"
借: 開帳庫存
貸: xx

開帳時的盤點載入其出明細:
再將"盤盈(虧)"改成"開帳庫存"
借: 庫存
貸: 開帳庫存

因此就有正確的庫存明細帳
但是還要在 開帳之後將
盤點的對應會計科目改回"盤盈(虧)"

但這是不道德的
明知有開帳的盤點
為何不加一個開帳的單據類別
用開帳類別去對應"開帳庫存"

明明是系統的問題
顧問還自認他很偉大可以避開系統限制...

ERP 大師不一定會用對 SQL

ERP 大師不一定會用對 SQL

ERP 大師不一定會用對 SQL


if (client.isUseASP())
ASPFilter =
" AND ( AD_Tab_ID IN ( "
// Just ASP subscribed tabs for client "
+ " SELECT t.AD_Tab_ID "
+ " FROM ASP_Tab t, ASP_Window w, ASP_Level l, ASP_ClientLevel cl "
+ " WHERE w.ASP_Level_ID = l.ASP_Level_ID "
+ " AND cl.AD_Client_ID = " + client.getAD_Client_ID()
+ " AND cl.ASP_Level_ID = l.ASP_Level_ID "
+ " AND t.ASP_Window_ID = w.ASP_Window_ID "
+ " AND t.IsActive = 'Y' "
+ " AND w.IsActive = 'Y' "
+ " AND l.IsActive = 'Y' "
+ " AND cl.IsActive = 'Y' "
+ " AND t.ASP_Status = 'S') " // Show
+ " OR AD_Tab_ID IN ( "
// + show ASP exceptions for client
+ " SELECT AD_Tab_ID "
+ " FROM ASP_ClientException ce "
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID()
+ " AND ce.IsActive = 'Y' "
+ " AND ce.AD_Tab_ID IS NOT NULL "
+ " AND ce.AD_Field_ID IS NULL "
+ " AND ce.ASP_Status = 'S') " // Show
+ " ) "
+ " AND AD_Tab_ID NOT IN ( "
// minus hide ASP exceptions for client
+ " SELECT AD_Tab_ID "
+ " FROM ASP_ClientException ce "
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID()
+ " AND ce.IsActive = 'Y' "
+ " AND ce.AD_Tab_ID IS NOT NULL "
+ " AND ce.AD_Field_ID IS NULL "
+ " AND ce.ASP_Status = 'H')"; // Hide



求求你 快快改 這樣用好不好 !!

+ " EXISTS ( " -- 只要顯示要隱藏的頁籤
// + show ASP exceptions for client
+ " SELECT * "
+ " FROM ASP_ClientException ce "
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID()
+ " AND ce.IsActive = 'Y' "
+ " AND ce.AD_Tab_ID = AD_Tab.AD_Tab_ID "
+ " AND ce.AD_Field_ID IS NULL "
+ " AND ce.ASP_Status = 'S') " // Show

+ " NOT EXISTS (" -- 不要顯示要隱藏的頁籤
// minus hide ASP exceptions for client
+ " SELECT * "
+ " FROM ASP_ClientException ce "
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID()
+ " AND ce.IsActive = 'Y' "
+ " AND ce.AD_Tab_ID = AD_Tab.AD_Tab_ID "
+ " AND ce.AD_Field_ID IS NULL "
+ " AND ce.ASP_Status = 'H')"; // Hide

2010年3月13日 星期六

ERP MDA UML 有夠笨跟真正笨中間是什麼!!

ERP MDA UML 有夠笨跟真正笨中間是什麼!!

以下的笨問題

有個現代聰明人

用更笨的方法提出更笨的看法

看完如有不良反應請自行就醫


文章來源::
http://myblog-erp.blogspot.com/search/label/%E7%B3%BB%E7%B5%B1%E6%9E%B6%E6%A7%8B


有了新方法還需要舊觀念嗎?


文-楊振源

ERP 系統當中有許多的交易檔,都與庫存帳息息相關,
比如驗收入庫則庫存增加,銷售出貨則庫存減少。

=========================================
>我最討厭這些人將 Unix 時代 講成 Dos 時代
>你知道當時就是 Unix / AS400 / Novell
>Dos 是前端展現工具之一
>我們當時也有些用終端機
>我們 20年前的架構 Unix/IBM AIX/HP-UX
>今天大潤發還是覺得他很好用
==========================================

記得20幾年前 DOS 的時代,
老是為了電腦系統上的庫存量正確性大傷腦筋,
因為當一筆出貨交易完成更新以後,
又要再做數量的修改,就必須加舊減新。
若再加上同時又修改了料號,
則計算邏輯就更複雜了,
這樣的程式撰寫方式又被稱為 On-line Update 。

============================================
>領料 有無更改料號都是
>加 更改前 料號數量
>減 更改後 料號數量
>拜託大大你麼聰明
>為何故意裝糊塗
>這樣騙學生不好
============================================

為了解決技術上的難題,大家就創造了 Batch Update 的方式,也就是出貨單 key-in 完畢存檔的時候,並不去 Update 庫存主檔,必需在 User 按了過帳的時候才批次更新庫存。這樣解決了程式的難度問題、 DB Commit / Rollback 的技術問題、以及 DB Performance 的問題。
時至今日,20年過去了,現有國內多數 ERP 系統廠商,卻仍停留在20年前,僅僅把資料庫 Database 當作儲存資料的地方而已。仍沿襲舊的做法繼續採取批次過帳的方式。

這樣的方式有哪些問題呢?

1. 庫存即時性的問題,必需按 「 過帳 」
( 或稱「 確認 」或稱「 核准 」)
才會更新庫存,庫存不即時。

==============================
>拜託大大你麼聰明
>為何故意裝糊塗
>你是把敲單當成流程跑完補上系統
>哪有還在敲單
>都沒確認都沒審核就過帳
>一有敲單就過帳
>這是 On-Line ??
>拜託大大你麼聰明
>為何故意裝糊塗
>這樣騙學生不好
===============================

2. 疊床架屋的問題,假如出貨通知單 ( 或稱「備貨單」) 可為 Locking 庫存用,則未過帳的出貨單顯然是重覆的單據。
3. 操作便利性的問題,假如過完帳後要修改資料,則必須過帳還原,而往往在過帳還原的時候庫存被不當的搶走,或還原的時候造成庫存不足,而必須採取其他補庫存的特殊奇怪作業。


是什麼新方法可以解決程式的難度問題? DB Commit / Rollback 的技術問題?以及DB Performance 的問題?答案很簡單,運用 DB的Trigger 功能。

1. 程式的難度問題, DB Trigger 可以分開處理 Insert / Update / Delete 的程式碼。
2. DB Commit / Rollback 的技術問題,程式只要控制出貨單的 Master / Detail 就好了,只有在出貨單被 Commit 成功, Trigger 才會被執行,所以不需要擔心資料寫入一半的問題。
3. DB Performance 的問題,使用 Trigger 則它的所有資料處理都在 DB Server 上完成,可徹底解決 DB Performance 的問題。

總而言之,過了20年,都已有了新方法、新工具,是不是應該放棄舊的觀念與做法才算聰明!

2010年3月12日 星期五

ERP 2010 預測:開源ERP難有大作為

近日,一篇名為《2010 預測:開源ERP難有大作為》在網上流傳頗為廣泛。該文認為,開源軟體最後都難免走向商業化運作的道路。畢竟追求利潤是商人的根本目的。進而,該 文作者認為:“現在很多企業都是拿’開源’作為一個炒作的手段。企業推出一個軟體的時候,先通過開源的手段積累一定的客戶數量。而隨著SaaS軟體的日趨 成熟,商業性質的開源ERP軟體會脫去其神聖的外衣,走SaaS軟體的發展道路。”
  面對於這樣的質疑,近幾年來一直從事開源ERP研發的恩信科技公司CEO劉有濤發表了反駁的觀點。
  從必死到難有大作為
  劉有濤表示:“類似的質疑每年都有,只不過以前的聲音更刺耳,以往這個時候我聽到的淨是開源ERP必死,今年溫和多了,變成開源ERP難有大作為了。”
  談起作為,劉有濤給出了一組數位:“截止到2009年10月1日,恩信科技開源ERP已經有200萬的下載量,企業安裝用戶80萬家,成功使用 的企業用戶至少12萬家,ERP實施成功率超過15%,已大大超過目前國內ERP軟體實施成功率;目前已有3000多家軟體企業在恩信科技開源ERP基礎上在自行做二次開發,而且已簽約加盟的合作夥伴超過50家,這些鬆散的、緊密的合作夥伴在本地為無數的行業客戶創造了巨大的價值,同時也賺取了巨大的利潤;上百家高校、培訓機構用開源ERP軟體做教材自行培訓學生實戰能力,簽約高校加盟合作夥伴的已超過20家,這些高校合作夥伴通過開源ERP幫助學生在 校期間就能實現與企業的資訊化、軟體公司的開發工作近距離接觸,提高了就業能力,同時,這些學生走上工作崗位,更能為企業最低成本的建立資訊化平臺。”
  基於這些數字,劉有濤問了一個問題:“這些算不算作為呢?”
  而談起開源ERP對整個ERP產業的促進作用,劉有濤還有一肚子的話要說。
  開源ERP的價值
  在不少人眼中,開源還只是局限在Linux上。單以Linux而論,Linux這個當年芬蘭大學生帶頭開發的系統,在今天已經演變成為了紅帽、Ubuntu、 紅旗、中標軟等在內的上千個Linux發行版。因此,單以Linux而論,開源作業系統是大有作為的,但推廣開來,開源作業系統之上的開源應用,也是在作 為的嗎?
  對此,劉有濤算了一筆帳:“在恩信科技沒有推廣開源ERP 之前,ERP主打產品的價格至少為30萬元以上,現在國內號稱一流的ERP廠商已經將主打產品降到3萬元上下,國外的壟斷巨頭也降到10萬元上下,這難道 不是開源ERP反壟斷的功勞嗎?這又算不算有作為?”
  劉有濤認為:“這些評論實際上和Sun被Oracle收購等大事件有很大關係。Sun被收購之後,直接導致了Java和MySQL這樣的開源支 撐軟體前途未蔔。”但劉有濤接下來表示:“我個人認為,無論Sun這家公司何去何從,類似於Java和MySQL這樣的開源軟體都會繼續發展下去。這源於 開源軟體深厚的群眾基礎,在這一點上,開源軟體有點象電影’魔鬼終結者’中的天網那樣,一但打開就將永遠無法關閉。”
  劉有濤進而介紹說:“開源軟體的前途往往與開源軟體貢獻廠商的前途並無關係,這就象脫離了恩信公司,恩信ERP也可能在用戶和開源愛好者的支持 下繼續發展下去。”
  而談起開源ERP向SaaS轉變這一問題時,劉有濤認為:“開源軟體的生命力決定著它也處在一個變革的狀態之中,象恩信在2009年就推出了雲 計算ERP軟體服務,這些創新業務保證了恩信科技的健康成長。”
  無論是開源增值服務還是雲計算ERP服務,都繼承了把軟體當服務的關鍵要素。由此看來,開源與SaaS,在提供服務的角度上存在著共通的地方。 同時,開源與SaaS又都不意味著完全免費,因此二者在未來完全可能走向融合。但另一方面,開源與SaaS 之間,又存在著差異性,所以並不能說誰完全代替誰。
即將過去的2009年,對於開源ERP是跌宕起伏的一年。一方面,以恩信科技等為首的企業將開源ERP推向新一輪的高潮。另一方面,由於開源軟體最 大的貢獻者Sun被收購,無疑是向開源軟體市場扔下了一顆重型的炮彈,讓開源軟體的使用者無所適從。在此情況下,2010年開源軟體將何去何從?
Sun收購事件意味著開源軟體難逃商業化命運
誰是開源軟體最大的貢獻者?這個答案是無庸質疑的。Sun公司開發的Java平臺是最大的開源平臺。在這個平臺上開發出了很多免費的和商業的軟體。 但是,2009年4月20日卻傳來一個令人吃驚的消息。就在這一天,甲骨文公司宣佈將以74億美元的價格收購Sun公司。這個事件再一次證明,開源軟體最 後都難免走向商業化運作的道路。畢竟追求利潤是商人的根本目的。
歷史往往有驚人的相似。類似的事情很早就已發生。比如最早Linux等作業系統也都是開源的。用戶不僅可以免費使用,而且還可以在原有功能的基礎來 進行自定義開發。
其中,紅帽的Linux作業系統無疑是最成功的產品。可惜的是,沒有幾年時間,當積累到一定的用戶數量之後,也被商業化包裝了。現在和微 軟的作業系統一樣,需要收費。只是價格沒有微軟那麼高而已。
從這一個個事件中,我們可以得出一個結論。現在很多企業都是拿“開源”作為一個炒作的手段。
企業推出一個軟體的時候,先通過開源的手段積累一定的客戶數量。而且軟體開源、免費,往往意味著企業不用為軟體的漏洞買單。
這也在很大程度上降低軟體的測試成本,有很多用戶可以為企業進行免費地測試。等用戶數 量達到一定規模的時候,其軟體本身也已經比較完善,此時再通過商業化包裝推向市場,無論是軟體發展者,還是包裝者,都可以從中獲取很大的商業價值。
所以, 開源-商業化包裝成為一款成功的商業化軟體無法擺脫的命運。畢竟天下沒有免費的午餐。只要是商人,都會追求利潤。
開源軟體的運作或許會走SaaS的道路
國內開源ERP軟體也有不少。比如全球第一家開源ERP企業Cmpiere在國內也設有分支機搆,再如北京恩信創業也憑藉著開源ERP軟體進入到信 息化管理軟體領域。那麼,這些企業又是靠什麼來盈利的呢?
難道他們真的有如此善心,虧本為企業免費開發軟體?
天下沒有免費的午餐,這是一個真理。這些從事開源軟體設計、開發的企業,在招募人才的時候可不是免費的。
企業仍然要為員工買單、為設備買單。如果沒 有收入來源,企業都將難以維持生計。因此,軟體雖然是開源的,但是企業仍然有利潤來源。這個利潤來源就是服務與二次開發。
眾所周知,ERP系統不像其他辦公軟體那麼簡單。對於大部分企業來說,即使他們擁有一個ERP軟體,但是如果沒有專業的顧問進行實施的話,企業也很難取得成功。也就是說,此時即使企業免費地擁有一款ERP軟體,但對於企業來說,就好像只有汽車沒有駕駛員,只能夠當作擺設,而不能夠帶來任何的價值。
為此,企業要部署好ERP系統,必然要尋找專業的實施顧問來負責企業EPR系統的實施。通過軟體提供商推薦顧問,無疑是不錯的選擇。因為他們瞭解這個公司的 產品與設計流程。軟體公司雖然免費提供軟體,但是卻可以從系統實施服務那裏取得不錯的收益。
還有一點需要提醒的是,開源ERP軟體無論在功能上,還是業務邏輯上,總是與商業軟體之間存在一定的差距。
如果往好的方面想,由於軟體本身是開源的,免費為企業所用,由於資金、技術等方面的限制,無論在設計還是測試上,都沒有商業軟體那樣完善、嚴謹。
所以,出現漏洞或者功能不夠完善也是可以接受的。如果往壞的方面想,難道企業在這方面真的沒有一點惡意嗎?
因為軟體不完善或者存在一定Bug,企業要使用這款軟體的話,則必須進行大量的二次開發。
二次開發可不是免費的,企業必須要為其買單。不可否認的是,在二次開發的功能上,有不少是因為企業自身的個性需求來決定的。由於軟體本身功能不足或者缺陷只 占其中一部分。
從中我們可以看出,從事開源軟體發展、推廣的企業,其利潤來源主要是服務,其中包括ERP系統實施、維護服務和系統二次開發的服務。其實這種商業推 廣的模式與現在比較流行的SaaS(軟體即服務)運作模式非常相似。
因此,筆者大膽預測,或許在不久的將來,帶有一定商業性質的開源ERP軟體會脫去其神 聖的外衣,走SaaS軟體的發展道路。
商業軟體就是商業軟體,何必再套上一件開源的大衣呢?
開源ERP領域難有大的前途
雖然現在市場上的很多開源軟體,大部分是批著開源軟體外衣的商業軟體。
但是,隨著國內開發人員不斷增多,開源意識增強,筆者相信,
一些小型開源軟體 仍然會層次不窮地出現。
比如郵件系統、OA系統、看板系統等,由於其設計、開發難度不大,參與的人數也不用很多,故其在國內仍然會有一定的發展。
但是筆者認為,其發展範圍可能只限於小型的管理軟體或者辦公軟體。因為其不需要十分嚴格的組織與業務邏輯,
大部分情況下,可能幾個人花幾個月時間就可以開發出一套小型管理軟體。
但如果要開發ERP這種大型資訊化管理軟體,筆者認為開源軟體是很難有大作為的。
即使面對中小型企業的ERP軟體,其背後的 業務邏輯仍然是非常複雜的。
無論是後臺資料表,還是業務流程,都是數以萬計的。如果沒有嚴格的組織、嚴密的測試,同時大量開發人員的參與,很難設計開發出一個比較完善的ERP系統。
即使號稱全球第一大的開源ERP產品Ccmpiere其功能仍然有很大的限制,如物料需求計畫等都沒有實現,所以更像是一個進銷存系統和財務管理系統的結合產品。從功能與技術角度來說,遠遠沒有達到一個ERP系統所要求的程度。
所以,開源軟體如果想在ERP領域內發展,會遇到很大的阻礙。最大的阻礙就是開發成本問題。除非走商業化道路,通過服務來獲取利潤,彌補軟體發展成 本,否則很難有進一步的發展。
從以上分析可以看出,2010年,筆者並不看好開源ERP軟體發展。
筆者相信,由於商人的本質,當開源ERP軟體積累到一定用戶,
功能上也比較完善 時,必然走向商業化道路。
只是各家走的道路可能會不同,要麼像紅帽靠出售軟體使用權來收費;
要麼像恩信通過實施服務或者二次開發來收費。
不過無論走哪一條 道路,都無疑從一定程度上偏離開源軟體的本質,
走上商業化發展的道路。

2010年3月11日 星期四

ERP 四大理由 将开源ERP软件拒之门外

以下文件來自::
http://www.linuxeden.com/html/news/20100301/70860.html

四大理由 将开源ERP软件拒之门外

有一段時間,我受雇於一家企業,
幫他們實施一個開源的ERP專案。
經歷了半年多的折騰,
以前我對於開源軟體的一點熱情都被徹底消滅了,
讓我看清了開源ERP軟體的面目。
我想,我以後再也不會用開源的ERP軟體了。
我採用的是號稱最大的開源ERP軟體-Compiere。

==========================================
>好一個顧問..
>自己一個人就想實施 Compiere ERP..
>OpenSource ERP 開源企業管理軟體..
>
>你應該去找一個通通不能改的商業軟體..
>
==========================================


一、開源ERP的軟體BUG,讓我“頭疼不已”。

像ERP這麼複雜的管理軟體,
有幾個BUG也是難免的事情。
但是,若一個軟體到處是BUG,
到處是陷阱,那可真的讓人受不了。
開源的ERP軟體,漏洞之多,
實在出乎我所料。

如在產品基本資料處,
有個屬性的欄位,
但是,奇怪的是,
這個屬性竟然不能夠帶到採購單、領料單等相關單據,

==========================================
>好一個顧問..
>不暸解屬性宣告的意義..
>不同屬性共用一個料號
>帶到採購單??
>帶到領料單??
>為何用屬性宣告
>因為使用同一料號的基本假設
>是使用同一價格與相同成本的
>你的狀況是不該使用同一料號
>
>你應該去找一個通通不能改的商業軟體..
>
==========================================

讓人想不通,後來讓專門的服務商進行測試,
說是軟體的BUG,
但是因為這是開源的軟體,
所以,這個費用還是要企業自己來承擔。

如某個材料有多個供應商,
而不同的供應商價格又有所不同。
如某個原材料A,
其有兩個供應商甲與乙,
價格分別為6.6元與6.7元,
企業設定的標準價格與列表價格為6.5元(採購參考價格),
但是,在實際生成採購單時,
無論是向甲供應商還是向乙供應商採購,
帶出來的價格竟然都是6.5。

==========================================
>好一個顧問..
>不暸解價目表..
>有宣告價目表清單版本
>當然是使用價目表清單版本的價格
>
>SELECT
>bomPriceStd(p.M_Product_ID,pv.M_PriceList_Version_ID) AS PriceStd
>...
>FROM M_Product p
>INNER JOIN M_ProductPrice pp ON
(p.M_Product_ID=pp.M_Product_ID)
>
>INNER JOIN M_PriceList_Version pv ON >(pp.M_PriceList_Version_ID=pv.M_PriceList_Version_ID)
>
>INNER JOIN M_PriceList pl ON
>(pv.M_PriceList_ID=pl.M_PriceList_ID)
>...
>
>你應該去找一個通通不能改的商業軟體..
>
==========================================



這是在讓 我想不通,軟體設計者為何如此設計,
我想,這應該是一個軟體的BUG。
沒辦法,我只好來做一回產品設計工程師,
把這個BUG解決了。

這些漏洞真是數不甚數。
在軟體的測試階段,時常讓我頭疼不已。
每測試一個流程,都是提心吊膽的,
擔心,不知道哪里又有陷阱。

二、功能不足讓我“廢寢忘食”。

我從來沒有見過Compiere功能如此不全的ERP軟體。
雖然其實開源的,
但是,功能如此不全,也讓人意料不及。

如 我採購價格想保留更改歷史,
但是無論如何配置,都無法實現。
有些單據時可以保留歷史變更記錄的,
如產品基本資訊,但是,材料價格卻不行。
後來發現,只要單據中有兩個關鍵字的頁簽,
都無法保留歷史更改記錄。
而原材料採購價格處,有兩個關鍵字,
一是關聯原材料基本資訊,
二是關聯供應商資訊,所 以,
就無法保存歷史變更記錄。

如沒有專門的單據 變更單。如我因為某些原因,
採購單需要變更採購數量或者採購交期,
但是沒有採購變更,
需要把原有的採購單作廢掉或者重新撤銷 審核
(系統還沒有直接撤銷的功能,要在後臺資料庫中更改),
我真是要叫上帝保佑了。企業需要怎麼辦呢?
只好自己動手,
先探尋各個單據之間的關係及資料庫的 結構,
然後再開發出一個採購變更單頁簽,
實現採購單變更功能。
生產變更單、銷售變更單等也都沒有,
我也只好熬幾個通宵,把這些單據開發出來。

再 如,倉庫成品入庫時,竟然不能分批入庫,
這真讓人哭笑不得。
如一張生產訂單我有10000個產品,
能夠保證一次性入庫嗎?
難道要生產部門把生產完成的產品暫時放在車間,
等生產全部完工後,再一次性入庫嗎?
這用戶可不會答應。如何辦呢?
進行二次開發了,還能怎麼辦呢。
先要把原先的入庫單功能屏 蔽掉,
然後再新建一個入庫的單據,
設計能夠從生產訂單自動生成入庫單,
並且,在入庫時對領料數量、入庫數量進行檢驗,
判斷有沒有超領、多入庫的情況,
同時,入庫的數量還要更新生產訂單的完工數量。
小小的一個入庫單,
就要我加入如此多的功能,這是煩心。

一個專案下來,開源軟體在功能開發前後可是大變樣,
大概增加了50%左右的功能。
“廢寢忘食”用來形容我當時的努力,
可是一點都不過份。

三、缺乏服務技術支援,讓我“求救無門”。

開源軟體雖然是開源的,免費提供源代碼,
但是,相關的技術文檔確實少的可憐,
中文參考資料更是鳳毛麟角。
我有點懷疑,
他們開發這麼複雜的開源ERP系統是怎麼實現的,
難道沒有系統設計文檔嗎,
還是他們故意不拿出來,想憑此賺錢?

我公司在實施這個開源的ERP項目時,
花了萬把塊錢買了一個軟體的實施文檔,
其他資料,如開發指南等沒有購買。
所以,什麼資料都要我自己去網上查詢,
但是,資料實在是少的可憐。
沒有辦法,只好自己研究源代碼,研究資料庫結構。

雖然市場上已經有不少的公司在打開源Compiere軟體的主意,
他們付費提供Compiere的實施開發服務。
但是,我找了幾家公司,效果實在不滿意。
一方面,他們顧問能力不強,我們提出一個需求,
他們反而讓我提供解決方案,這真讓人哭笑不得呀。

一般情況下,我們提出一個需求,
對方實施顧問給我解決方案,
然後我們判斷是否可行。
現在倒反過來了,能不讓我感到奇怪嗎?
而且,收費又比較貴,
讓他們提供服務與技術支援的話,
就失去了開源的好處了。

怎 麼辦呢?我只要自力更生,閉門造車,研究了一個月,
總給我弄出來一點門堂。
還好我在之前有比較豐富的ERP實施經驗,
對於ERP實施中可能出現的一些問題有所瞭解,
在事先做了比較充分的準備工作,
不然,在如此情況下,
實施ERP專案,沒有外部的支持,
肯定是要出亂子的。

如我在事先,對於員工的需求做了具體的調研,
做的非常的詳細、具體,在後續的實施過程中,
儘量減少了需求的變更。
如此,是為了減少以後二次開發的數量。
雖然如此做,時間浪費了一點,
但是,後來回頭來看看,花點時間在需求調研上,
對以後專案的順利開展還是很有幫助的。

四、實施、開發,集與一身,讓我“心力交瘁”。

一開始,公司雇傭我時,
說讓我做ERP實施顧問,負責企業的ERP實施。
但是,沒有想到,在後來實施的過程中,
開發占了我大部分的時間。
這讓我這個不是技術出身、
沒怎麼接觸過軟體發展的ERP實施顧問,
英雄無用武之地。

上面我說過,無論是開源ERP軟體本身的BUG,
還是因為其功能的嚴重缺乏,
都需要我們進行大量的二次開發。
而因為缺乏外部的服務與技術支援,
還出於專案實施成本的考慮,
所以,我這個實施顧問,
不得已,只得兼任程式開發員,
負責ERP軟體的二次開發。

在這個開發的過程中,
資料缺乏、沒有外部支援、沒有開發經驗,
一切從零開始。如此熬了幾個月後,
終於有所成就。
但是,這個過程,讓我心力交瘁。

一般的開源ERP軟體,肯定需要進行很多的二次開發,
而企業本身決定使用開源的ERP項目,
本來就是出於節省項目成本的考慮,
所以,他們不可能把二次開發外包給專門的軟體公司,
不然專案成本比那些商業的ERP軟體來說,不會便宜多少;
同時,企業本來就不是專門的IT公司,
所以,也不會專門雇傭程式開發人員,來協助你。
所以,一切都只有靠我自己來完成。

經過半年的努力,
雖然開源的ERP系統基本上線了,
但是,
其使用效果根我以前實施的商業軟體還是有一定差距的。
有了這段經歷後,
我對開源的 ERP軟體有了新的認識。
以後若讓我選擇商業軟體還是使用開源ERP軟體,
我想,我絕對會選擇商業軟體。
對開源的ERP軟體專案,我會退避三舍。
看新聞發表評論,獎品瘋狂送!!

2010年3月8日 星期一

ERP ADempiere/Compiere 已有領料的工單

SELECT o.C_MfgOrder_ID, p.Name AS "工單成品", o.MOQty AS "工單量", ol.C_MfgOrderLine_ID,c.Name AS "用料", ol.MOQty AS "用料量",

(SELECT SUM(NVL(MovementQty,0)) FROM M_ProductionMILine ml
INNER JOIN M_ProductionMI m ON(ml.M_ProductionMI_ID=m.M_ProductionMI_ID AND m.DocStatus='CO' AND m.IsReturnTrx='N' AND m.IsActive='Y')
WHERE ml.IsActive='Y' AND ml.C_MfgOrderLine_ID=ol.C_MfgOrderLine_ID) AS MovementQtyCO,

(SELECT SUM(NVL(MovementQty,0)) FROM M_ProductionMILine ml
INNER JOIN M_ProductionMI m ON(ml.M_ProductionMI_ID=m.M_ProductionMI_ID AND m.DocStatus='VO' AND m.IsReturnTrx='N' AND m.IsActive='Y')
WHERE ml.IsActive='Y' AND ml.C_MfgOrderLine_ID=ol.C_MfgOrderLine_ID) AS MovementQtyVO,

(SELECT SUM(NVL(MovementQty,0)) FROM M_ProductionMILine ml
INNER JOIN M_ProductionMI m ON(ml.M_ProductionMI_ID=m.M_ProductionMI_ID AND m.DocStatus='CO' AND m.IsReturnTrx='Y' AND m.IsActive='Y')
WHERE ml.IsActive='Y' AND ml.C_MfgOrderLine_ID=ol.C_MfgOrderLine_ID) AS ReturnQtyCO,

(SELECT SUM(NVL(MovementQty,0)) FROM M_ProductionMILine ml
INNER JOIN M_ProductionMI m ON(ml.M_ProductionMI_ID=m.M_ProductionMI_ID AND m.DocStatus='VO' AND m.IsReturnTrx='Y' AND m.IsActive='Y')
WHERE ml.IsActive='Y' AND ml.C_MfgOrderLine_ID=ol.C_MfgOrderLine_ID) AS ReturnQtyVO


FROM C_MfgOrderLine ol
INNER JOIN C_MfgOrder o ON(o.C_MfgOrder_ID=ol.C_MfgOrder_ID)
INNER JOIN M_Product p ON(o.M_Product_ID=p.M_Product_ID)
INNER JOIN M_Product c ON(ol.M_Product_ID=c.M_Product_ID)
WHERE (SELECT SUM(NVL(MovementQty,0)) FROM M_ProductionMILine ml
INNER JOIN M_ProductionMI m ON(ml.M_ProductionMI_ID=m.M_ProductionMI_ID AND m.DocStatus='CO' AND m.IsReturnTrx='N' AND m.IsActive='Y')
WHERE ml.IsActive='Y' AND ml.C_MfgOrderLine_ID=ol.C_MfgOrderLine_ID) > 0 --已有領料的工單

2010年3月6日 星期六

ERP JDE 我恨我恨我恨我恨你你我恨你你我恨你

大恨與大愛是執著與堅持的動力

ERP JDE 我恨我恨我恨我恨你你我恨你你我恨你

ERP JDE 當你會規劃會系統開發;;笑你不懂管理不懂會計
ERP JDE 當你懂管理懂會計;;笑你不懂規劃不懂系統開發
ERP JDE 當你懂管理懂會計懂規劃懂系統開發
他笑一個人抵擋不了 JDE 一百個博士
當 JDE 作不出功能時
他說 JDE 用的是一個世界知名品牌
因為用材料屬性自動判斷轉用代用
真的不是很簡單的事
除了我之外很少人作得到
除了我更少有人2O年以上經驗還擔任 技術顧問
...................................................


客戶主檔

成立時檢查哪一些是不可重複的

beforeSave();

BPartner[] m_BPartners = getBPartners(columnName, value);
if (BPartners.length()>0)
warrning columnName duplicate.

客戶主檔建檔需有防呆機制(ex.統編…)


客戶主檔異動申請單::
不可以直接去更改客戶主檔,,
透過異動申請單

建檔後如需異動重要項目
(Ex.統編,付款條件,信用額度,物料類別)
需要由財務解除鎖定,
並提示告知財務。
並須有表單可查詢並可列出異動人員、日期、修改項目…。
若有短期授信及額度變更需求,
是否有異動表單編號,
可自行訂定交易條件及額度的生效日及失效日

ERP 讓國中畢業生 直接讀ERP 技術顧問學院 :: Oracle+JAVA

ERP 讓國中畢業生 直接讀ERP 技術顧問學院 :: Oracle+JAVA
分類: 未分類資料夾
2010/03/07 00:19

ERP 讓國中畢業生 直接讀ERP 技術顧問學院 :: Oracle+JAVA

3000 小時 * 100= 30萬學費 (不用繳)

3000 小時 * 100= 30萬實習 (可以領) - 5萬學費

3000 小時 *200= 60萬實習 (可以領) - 10萬學費

3000 小時 *300= 90萬實習 (可以領) - 15萬學費

3000 小時 *400=120萬正式顧問

大學畢業生也寫不出
(1)依據正規化 是無需將客戶所屬國家的國家地區帶到客戶檔案中::
(2)但是反正規化 是解決單擋拋出作後續分析的必要措施

::
輸入國家別可自行帶出所屬區域別
::
客戶主檔之國家別為下拉式選單,
選擇後可帶出銷售區堿別:
EX.國家:越南、地區別:東南亞
::

ERP 日本株式会社アルマスCEO兼首席专家吉日木图学术报告会

日本株式会社アルマスCEO兼首席专家吉日木图学术报告会暨中小企业ERP应用研究室揭牌仪式在我校举行

2009年12月28日下午,内蒙古财经学院网络中心暨网络应用技术研究所在我校西区新教学楼网络中心会议室举行学术报告会暨“中小企业ERP应用研究室”揭牌仪式。日本株式会社アルマスCEO兼首席专家吉日木图先生应邀为我校相关专业教师作了一场主题为“Compiere ERP & CRM—全球中小企业信息化解决方案”的学术报告。
会议由网络信息中心主任唐建平教授主持,科研处、计算机信息管理学院、工商管理学院、会计学院、实验中心、职业学院计算机系等相关教学、科研部门的领导和部分教师参加了报告会,我校副校长刘文清教授参加会议并与吉日木图先生共同为“中小企业ERP应用研究室”揭牌。
吉日木图先生的报告围绕着全球中小企业ERP应用模式,阐述Compiere ERP & CRM开源软件的MDA架构、柔性定制开发思想的优势以及全球中小企业应用开发情况,着重介绍了Compiere ERP & CRM在日本中小企业适应版研发思路、企业导入实施与定制开发的成功经验,以及日本早稻田大学、大阪工业大学在研究生、本科生教学中引入Compiere ERP & CRM的基本情况,并和与会教师们针对国内中小企业ERP应用开发、大学ERP教学中引入Compiere ERP & CRM等议题进行了热烈讨论。

(网络信息中心 供稿)


日本株式会社アルマスCEO兼首席专家吉日木图学术报告会

ERP POGenReceiptWS 收料抵搞為何掛了!!

[2010/3/5 下午 02:30:14] Ju: org.compiere.process.POGenReceiptWS
[2010/3/5 下午 02:34:59] Ju:

SELECT SUM(NVL(l.MovementQty,0))
FROM M_InOutLine l, M_InOut m
WHERE m.M_InOut_ID=l.M_InOut_ID
AND m.IsActive='Y'
AND m.DocStatus IN ('CO','CL')
AND l.C_OrderLine_ID=1003063
AND 1=1
AND m.IsSOTrx='N'
AND m.IsReturnTrx='N' [722]
-----------> MInOutWSLine.set_Value: Virtual Column - Name [722]
-----------> MInOutWSLine.set_Value: Virtual Column - ProductSize [722]
>
>
>
>
===========> DB.executeUpdate: INSERT INTO M_InOutWSLine (UpdatedBy,CreatedBy,Up
dated,TargetQty,ScrappedQty,QtyUnDelivered,QtyShipmentAvailable,QtyOrdered,QtyEn
tered,QtyDelivered,Processed,PriceEntered,PriceActual,PickedQty,MovementQty,M_Wa
rehouse_ID,M_Locator_ID,M_InOut_ID,M_InOutWSLine_ID,LineNetAmt,Line,IsInvoiced,I
sDescription,IsActive,DateRequired,DatePromised,DateOrdered,Created,ConfirmedQty
,C_UOM_ID,C_Order_ID,C_OrderLine_ID,AD_Org_ID,AD_Client_ID) VALUES (100,100,TO_D
ATE('2010-03-05 14:34:43','YYYY-MM-DD HH24:MI:SS'),0,0,1,1,1,0,0,'N',159,159,0,1
,1000002,0,1001965,1007702,0,10,'N','N','Y',TO_DATE('2010-02-10','YYYY-MM-DD'),T
O_DATE('2010-02-10','YYYY-MM-DD'),TO_DATE('2010-02-10','YYYY-MM-DD'),TO_DATE('20
10-03-05 14:34:43','YYYY-MM-DD HH24:MI:SS'),0,100,1003321,1004493,1000000,100000
0) [SvrProcess_1267770882671] [722]
java.sql.SQLException: ORA-02291: integrity constraint (C302.M_INOUTWSLINE_LOCAT
OR) violated - parent key not found
; State=23000; ErrorCode=2291
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:623)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.
java:181)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedS
tatement.java:543)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:1028)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatem
ent.java:3753)
at oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate
(OraclePreparedStatement.java:8829)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrep
aredStatement.java:2886)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java:2960)
at org.compiere.util.CPreparedStatement.executeUpdate(CPreparedStatement
.java:215)
at org.compiere.util.DB.executeUpdate(DB.java:840)
at org.compiere.util.DB.executeUpdate(DB.java:747)
at org.compiere.framework.PO.saveNewInsertSQL(PO.java:2839)
at org.compiere.framework.PO.saveNew(PO.java:2688)
at org.compiere.framework.PO.save(PO.java:2251)
at org.compiere.process.POGenReceiptWS.createWSLine(POGenReceiptWS.java:323)
at org.compiere.process.POGenReceiptWS.doIt(POGenReceiptWS.java:229)
at org.compiere.process.SvrProcess.startProcess(SvrProcess.java:91)
at org.compiere.apps.ProcessCtl.startProcess(ProcessCtl.java:483)
at org.compiere.apps.ProcessCtl.run(ProcessCtl.java:251)

-----------> DB.saveError: DBExecuteError - ORA-02291: integrity constraint (C302.M_INOUTWSLINE_LOCATOR) violated - parent key not found
[722]
-----------> MInOutWSLine.saveNewInsertSQL: [SvrProcess_1267770882671]Not inserted - M_InOutWSLine [722]
-----------> POGenReceiptWS.startProcess: Could not create Shipment Line=MInOutWSLine[1007702,M_Product_ID=0,QtyEntered=0,MovementQty=1,M_AttributeSetInstance_ID=0] [722]
14:34:43.890 Trx.rollback: **** SvrProcess_1267770882671 [722]
>
>

2010年3月5日 星期五

ERP 工單開立流程 建議事項 Oracle ERP / SAP

ERP 工單開立流程 建議事項 Oracle ERP / SAP

工單建立時::機台欄位 下拉選項的精準化

因目前有部分產品之使用機台皆為單一固定機台,
若能在開工單時,
設備選項部分能依據產品名稱及途程自動判定
帶出已預設的使用機台
或過濾其他非同類型所用到的機台,
縮小機台類型選項範圍。
??

這需要問嗎??
這是 MDA 架構的基本功能
這叫做 Dynamic_Valuation_Rule
SELECT * FROM 機台TBL WHERE

<<以下是動態驗證 正面列舉
<<帶出已預設的使用機台
EXISTS (SELECT * FROM 料號途程機台TBL WHERE
料號途程機台TBL.產品編號=@產品編號@ AND
料號途程機台TBL.途程編號=@途程編號@)

<<以下是動態驗證 負面列舉
<<過濾其他非同類型所用到的機台
NOT EXISTS (SELECT * FROM 產品類別途程機台TBL
INNER JOIN 產品類別TBL ON(產品類別TBL.產品類別=料號類別途程機台TBL.產品類別)
INNER JOIN 產品TBL ON(料號類別TBL.料號類別=料號TBL.料號類別)
WHERE
產品TBL.產品編號 <> @產品編號@ AND
產品類別途程機台.途程編號=@途程編號@
)

2010年3月1日 星期一

ERP 証照 教育騙局

kentyeh wrote:
剛剛看到電視廣告,是一個面試場景,前面的幾人很多都有人罩,
可是最後一個人沒有人罩卻有多張電腦證照,可是面試官卻哭了,
然後畫面出現"三個月取得電腦證照"。

多年來也看過一些短期取得證照,卻不會寫程式的人,
我想碰到這樣的人,如果我是主管我也要哭了吧,
還不如用一些有人罩的人,
讓長官高興一點,
至少長官會心理有數吧!



面試官哭了之後,接著就換主管哭了....
(因為廣告秒數關係...後面那段沒播出來啦....XD)