標籤: 庫存量

模具行業管理軟體-ERP軟體開發、客製化軟體

            就在上個月一家在印尼多年(印尼石通企業),再從事生產模具開發、維修服務的台商找上我 Allen,希望我可以協助量身定做模具行業的生產管理流程,開發符合他們的軟體系統,因為之前他們委託過其他軟體合作廠商,但總覺得系統無法真的流程整合,因此該公司總經理在印尼9月份就透過Line 與我聯繫,先確定我是否在行業的流程整合可以給予整合意見,並提供他們現在的軟體系統畫面給我,告知他們使用上遇到的瓶頸,線上討論幾次確認我們是可以提供客製化服務,就回台灣時與我們當面討論許久,並正式分多次階段委託我們正式進行客製化軟體開發,幫工廠端可以提升資訊化管理能力。

LINE_ALBUM_AI產生圖_240211_266LINE_ALBUM_AI產生圖_240211_287

網智數位-軟體開發,專門針對客戶進行量身設計的客製化軟體,已有多年經驗,也在不同產業領域都有實作成功案例。

 

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

my_qrcode_1519621481105

在非同步作業時,如何取消非同步任務(軟體開發、程式設計、軟件開發)

  在之前我寫過一篇關於用 Task 類別來撰寫非同步化作業(使用 Task 自行控制非同步任務作業),來利用多CPU、多核心處理器的優勢,這樣可以避免某些邏輯需要較長的時間去執行,而造成主界面程式停頓卡卡,讓使用者誤以為當機、或程式有問題,所以透過.Net 的 Task 任務,可以讓系統自行的調度限制可以用的執行緒(Thread)。

   既然有了 Task 任務類別的支援,可以讓我們輕易的撰寫多工、非同步作業的程式,讓長時間執行的程式透過另外一個執行緒(Thread)在背後執行,例如我常幫工廠或企業寫物料需求計算(MRP、MPS計算)、業績獎金計算、APS先進排程規劃,這些都是需要執行讀取大量的系統資料來進行運算,這就可以充分利用 ThradTask的技術再背後另外一個執行緒去執行,使用者,在前端主畫面還可以繼續執行其他作業,而不用只能等待程式執行完畢。

    不過我們也常常遇到常時間執行的程式,我們可以提供一個按鈕讓使用者去選擇【取消】背後執行的任務,那麼這篇技術文章我就是想講解,如何在.Net 平台取消非同步化作業的任務 ,.net 平台裡有個類別專門跟 Task 、Task<TResult> 類別搭配使用,使得完成取消非同步任務作業的執行,這個類別就是 CancellationTokenSource 類別


我在這邊一樣透過 Step By Step 來建立一個範例程式,來說明整個程式的撰寫技巧…


1.這邊我簡單為了好示範,我建立一個 Windows Form 視窗專案,命名為 CancellationTokenSource_Demo,如下圖:

繪圖


2.在 Form1 表單,我設計了一下畫面

繪圖2

在Form1表單,我為了示範,所以放置了2個 Label (分別顯示 輸入一個正整數、運算結果顯示),2個 Button 按鈕(分別為 進行運算、取消非同步任務),還有一個 ProgressBar (作用於非同步任務執行時,可以顯示進度條狀態)。


3.在 Form1.cs 的後端程式,是最重要的,我把程式標註註解,這樣大家就可以容易理解了。


public partial class Form1 : Form
{
     public Form1()
     {
         InitializeComponent();
     }


    /// <summary>
     /// 宣告一個 用於支援取消非同步任務的變數
     /// </summary>
     private CancellationTokenSource cts = null;


    private void btnCalc_Click(object sender, EventArgs e)
     {
         //取得的正整數
         int currNum = 0;
         if (!int.TryParse(txtInputInt.Text, out currNum))
         {
             MessageBox.Show(“必須輸入一個正整數數字!");
             return;
         }


        //清楚執行結果
         txtFinalResult.Clear();


        btnStartCalc.Enabled = false; //將【進行運算】按鈕啟用狀態取消
         btnCancel.Enabled = true; //將【取消非同步任務】按鈕啟用狀態啟用


        //用於顯示報告進度條的變數
         IProgress<int> progRpt = new Progress<int>((p) =>
         {
             this.progressBar1.Value = p;
         });


        //如果 CancellationTokenSource 物件變數不是為 null , 比較進行釋放(務必)
         if (cts != null)
         {
             cts.Dispose();
         }


        //實體化 CancellationTokenSource 物件
         cts = new CancellationTokenSource();


        //宣告一個任務變數
         Task<string> task = new Task<string>(() =>
         {
             BigInteger bint = new BigInteger(1d);
             double totalProgress = (double)currNum;


            //如果CancellationTokenSource 物件的 IsCancellationRequested 值為 true ,代表使用者已經將非同步任務進行取消
             for (int i = 1; i <= currNum && !cts.IsCancellationRequested; i++)
             {
                 bint *= i; //相乘
                 double progressVal = Convert.ToDouble(i) / totalProgress * 100d;


                //顯示非同步任務執行的進度表
                 progRpt.Report(Convert.ToInt32(progressVal));
             }


            //傳回執行結果
             return bint.ToString();


        }, cts.Token, TaskCreationOptions.LongRunning);


        //開始執行非同步任務
         task.Start();


        //等待任務操作完成,等待1秒
         while (!task.Wait(1000))
         {
             Application.DoEvents();
         }


        //顯示運算結果
         txtFinalResult.Text = task.Result;
         btnStartCalc.Enabled = true;
         btnCancel.Enabled = false;
     }


    private void btnCancel_Click(object sender, EventArgs e)
     {
         //使用者執行取消非同步任務
         if (cts != null)
         {
             cts.Cancel();
         }
     }
}


1

2

3


4


4.經過步驟3核心程式碼後,就可以編譯執行,執行結果畫面如下:


4-1.

執行運算中…
r1

4-2.

中途,我執行【取消非同步任務】按鈕

r2


完成上述這樣的示範,就可以撰寫讓使用者中途取消任務的執行。



參考文章
C#多工作業與平行處理技術講解
1.透過 Thread 類別撰寫多執行緒多工作業。
2.透過 Delegate 委託支援的方法,撰寫非同步任務。
3-1.透過 Parallel 類別操控多任務平行作業(一)。
3-2. 透過 Parallel 類別操控多任務平行作業(二)。
4.使用 Task 自行控制非同步任務作業。
5.在非同步作業時,如何取消非同步任務。
6.多執行緒多任務存取相同變數,但卻各自隔離保留各自任務的值。
7.非同步存取變數的問題。
8.非同步資源鎖定解決方式。




網智數位-軟體開發(軟件開發)

針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

進銷存-進口買賣業解決方案 (軟體開發、客製化軟體、程式開發、程式設計)

     去年被一家經營國際貿易美妝護膚用品的客戶委託開發符合該客戶營運流程與產品特性的進銷存管理系統委託案,該客戶事實上很久以前就找過網智數位進行量身定做的軟體開發要求,但因為當時我們與一家國外知名玩具的代工廠合作一系列的工廠自動化、MRP/ERP軟體開發案,因為時程問題覺得無法在時間點協助客戶完成軟體客製化需求,所以遲遲沒有承接,而經過1~2年該客戶還是找上我們,因為這期間客戶找了好多家市面上的套裝進銷存軟體、庫存管理軟體,但就是都無法滿足客戶在處理進出口成本計算、庫存銷量的分析角度來輔助跟國外進口物品的參考統計數字,所以又再次與我們細談,覺得我們量身定做可以滿足客戶的需求,合作案就正式開始了…

 

進貨單-部分功能畫面

image

進貨多筆新增-便利操作

image

週期性庫存銷售量分析

image

 

    今天,我帶工程師正式將開發完畢的軟體上線,到客戶端進行教育訓練,看到一個好的軟體可以真的讓客戶滿足、協助客戶的管理、分析、流程整合, 也可以進行各種成本、不同角度的成本查看、不同週期的銷售量分析、業務負責區域業績查看,這也是軟體所帶來的一種無形的價值,我與客戶也深信我們的用心開發,未來客戶的軟體需求只會不斷的加強、藉由軟體的管理輔助,客戶提高管理績效、我們也有軟體開發的成就感,這就是打造雙贏的合作案。

    網智數位-軟體開發團隊成員幾乎以前都是在知名軟體公司、上市公司服務超過10年以上的經驗,在商用軟體、工業軟體、系統整合都有非常好的經驗,也是知名航空公司的教育訓練委託合作案、電腦大廠清華同方的軟體開發解決方案合作廠商等等。

 

 

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

ERP 各種計劃階段的差異

      企業資源規劃(ERP)就是通過資訊科技技術等手段,實現企業內部資源的共享和協同,克服企業中的官僚制約,使得各業務流程無縫平滑地銜接,從而提高管理的效率和業務的精確度,提高企業的盈利能力,降低交易成本。 ERP系統是由計劃驅動的。它有5個層次:經營規劃、銷售與運營計劃(生產規劃)、主生產計劃、物料需求計劃和車間作業計劃(或採購作業計劃),如圖1所示。其中,經營規劃和生產規劃屬於宏觀層次,主生產計劃是宏觀向微觀過渡的層次,物料需求計劃是微觀計劃的開始,車間作業計劃(或採購作業計劃)則是​​進入執行或控制計劃的階段。通常把前3個層次稱為主控計劃,說明它們是製定企業經營戰略目標的層次。

christina-wocintechchat-com-Q8IgAlmHAUA-unsplash

    一、經營規劃

    企業的計劃是從長遠的戰略規劃開始的,這個戰略規劃在ERP系統中稱為經營規劃。企業的經營規劃是計劃的最高層次,是企業總目標的具體體現。企業的高層決策者,根據市場調查和需求分析、國家有關政策、企業資源能力和歷史狀況、同行競爭對手的情況等有關信息,制定經營規劃。它包括在未來2~7年的時間內,本企業生產產品的品種及市場定位、預期的市場佔有率、產品的年銷售額、年利潤額、生產率、生產能力規劃、職工隊伍建設等。

    企業經營規劃的目標,通常以貨幣或金額表達。這是企業的總體目標,也是ERP系統其他各層計劃的依據。所有層次的計劃,歸根結底,只是對經營規劃的進一步具體化,而不允許偏離經營規劃。經營規劃的製定要考慮企業現有的資源情況以及未來可以獲得的資源情況,具有較大的預測成分。

    二、銷售與運營計劃

    銷售與運營計劃S&OP(Sales and Operation Panning)也叫生產規劃,是根據經營規劃的目標,確定企業的每一類產品在未來的1―3年內,每年每月生“多少及需要哪些資源。其作用是:

    1. 將經營規劃中用貨幣表達的目標轉換為用產品系列的產量來表達。

    2. 制定一個均衡的月生產率,以便均衡地利用資源,保持穩定生​​產。

    3. 控制拖欠量(對MTO)或庫存量(對MTS)。

    4. 作為編制主生產計劃(MPS)的依據。

    此外,銷售與運營計劃還要整合規劃過程。這是因為,銷售規劃並不一定和生產規劃完全一致。例如,有些產品的銷售規劃要反映季節性需求變化,而生產規劃則要考慮生產線的均衡生產。另外,在不同的生產銷售環境下,生產規劃的側重點也會不相同,例如,對現貨生產(MTS)類型的產品,生產規劃在確定月產率時,需要考慮已有的庫存量。如果要提高成品庫存資金周轉次數,年末庫存就要低於年初,那么生產規劃的月產量就必須低於銷售規劃的預測值,不足部分用消耗庫存量來彌補。

    三、主生產計劃

    主生產計劃MPS(Master Production Schedule)是以生產計劃大綱為依據,按時間段計劃企業應生產的最終產品的數量和交貨期,並在生產需求與可用資源之間作出平衡。

    四、物料需求計劃

    物料需求計劃是根據主生產計劃對最終產品的需求數量和交貨期,推導出構成產品的零部件及材料的需求數量和需求日期,直至導出自製零部件的製造訂單下達日期和採購件的採購訂單發放日期,並進行需求資源和可用能力之間的進一步平衡。

    五、車間作業計劃與採購作業計劃

    車間作業計劃也叫車間作業控制PAC(Production Activity Control),是企業計劃的最底層。其任務就是根據MRP生成的零部件生產計劃編制出工序排產計劃。對於採購件,則編制出物料採購計劃,但採購作業計劃不涉及企業本身的能力資源。

    總之,ERP任何一個計劃層次都應包括需求和供給兩個方面,也就是需求計劃和能力計劃。要進行不同深度的供需平衡,並根據反饋的信息,運用模擬方法加以調整或修訂。上一層的計劃是下一層計劃的依據,下層計劃要符合上層計劃的要求。如果下層計劃偏離了企業的經營規劃,即使計劃執行得再好也將是沒有意義的。整個企業遵循一個統一的計劃,只是ERP系統最基本的要求。劃分ERP系統計劃層次的目的是為了體現計劃管理由宏觀到微觀、由戰略到戰術、由粗到細的深化過程。計劃和控制是ERP的目標手段。計劃是為達到一定的目標而製定的行動方案;控制是為保證計劃完成而採取的措施。

(其他參考文章)
MPS主生產計畫專文介紹(一)
MRPⅡ/ERP 能力需求計畫原理
庫存管理-概念與釐清
庫存管理探討-VMI
真正的庫存量形成探討
庫存管理的中樞控管法則(上)
庫存管理的中樞控管法則(下)
BOM表管理與設定﹣輔料是否需輸入BOM
何謂 進銷存、ERP、WMS?三者差異性【軟體開發、軟件開發、程式設計】
ERP 產品成本管理與計算
庫存量正確性衡量法則
粗能力需求計畫(RCCP) – 專文介紹
ERP 系統的淺談與優勢
庫存目標6大範疇

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

 

軟體公司與網路(互聯網)公司之差異性(軟體開發、客製化軟體、程式設計)

    在現行許多軟體公司與網路(互聯網)公司在客戶面、獲利來源、以及市場區隔性、差異性,讓很多人有點分不清楚,這兩者在本質上是有一定的落差,不論是商業模式、獲利來源、團隊人才取捨,而 Allen 我自2003年進入.NET程式平台開發領域(早起是開發 LAMP,Linux + Apache + MySQL +PHP),這快15年的.Net技術迭代更新,我能跟隨學習的就盡力,當然也犧牲了生活品質質量,我期間經歷過專業的管理軟體公司、網路公司,也有國內上市企業服務、傳統產業擔任資訊部經理,深感其中的差異,撰寫文件分析兩者的聯繫和區別,供其他疑惑者的朋友可以進行思考我的論點(當然不一定是對)。

LINE_ALBUM_AI產生圖_240212_750

IT 技術的選擇差異性

(一)管理軟體公司著重於業務實現、產業領域知識的導入、企業流程的整合,網路公司著重於高並發、高可用、使用者體驗、操作介面友善性等;在企業管理軟體的使用者一般是企業或各工廠各部門行政人員,一個大公司也不過10~300個使用者同時上線,所以相對一定是對與企業的業務流程的實現與整合相對要求高,這樣才可以節省人力、降低人事成本,而不是增加成本,當然有的管理軟體提供了大量的簽核審批的機制、功能,每走一個流程,每確認一個步驟(下訂單,發貨,產生發票,請收款)都要審核,我個人認為這樣的管理軟體是增加使用者的成本,進而降低效率,我們把企業、工廠當成一個合作的整體存在,業務部負責下訂單,生產部負責在規定的時間完成訂單生產,採購負責及時的購買所需要的生產物料,這是一個密不可分的整體化運作,任何一個環節卡住會造成訊息溝通的不流暢,更甚至會導致生產停滯、呆料,我在多年以前,我們在網上註冊一個帳號,輸入帳號、密碼等,提交時提示電子郵件必須輸入,這時我們輸入的密碼也會被清空,對於非常重視使用者經驗的網路公司,勢必一定會考慮到這種案例,系統需要幫忙我們記住之前輸入的密碼,這時只需要輸入電子郵件即可再次發送。

(二)單純的軟體開發公司用的技術相對來說一般是比較老的,穩定的,成熟的技術。比如.WCF、Windows Forms、WPF、Web Forms、ASP.MVC,而網路公司走向一般會追求新的技術,比如Spark、Redis、Micro Servie(所謂的微服務)、Hadoop、Node.js 等。單純軟體公司會使用 SQL Server Analysis Services作為 OLAP 的分析工具,而新的網路公司可能會採用 Spark + Hadoop 等大數據技術來達成實作的可能性,如果工程師在喜歡搞技術創新的管理軟體公司上班,常常會活的比較痛苦。如Linq to SQL出了沒多久,Entity Framework出現,Silverlight,WPF後來也是逐漸從公眾視野中消失。 ASP.NET MVC的出現,大批Web Forms程序員找工作變難了。現在ASP.NET Core 的又出現,不曉得會不會導致ASP.NET MVC 程式設計師的資訊焦慮症候群。

(三)管理軟體公司的技術升級常常來自於內部本身的程式開發人員,而網路公司的技術變更多的來源於客戶、業務需求。正所謂成也蕭何,敗也蕭何;但處於軟體行業頂端的軟體公司創造技術解決問題,提供開發工具維持企業利潤,中小公司則應用技術解決業務問題。軟件業相當頻繁的技術更新,造成了大批老技術程序開發人員失業,從而進一步增加了軟件公司的生存成本,例如現在市場上幾乎找不到或是很少能找到VB6 或 Cobol 程式設計師,還有一些我們沒有聽說過的技術(他們的確存在於現實的公司中、例如 cobol,今年我們就有要評估一個大型系統是 cobol要轉變為.Net平台的評估案),VB6 開發人員要嗎失業,要嗎轉型,那麼軟體公司呢,大量的用Delphi開發人員的,非常優秀的VB6 開發還是需要人員維護,軟體公司面臨兩個選擇:要嗎用新技術重寫,要嗎養幾個老開發人員一直做維護。軟體公司的老闆都是人精,不可能將公司的未來受一兩個程序開發人員控制,所以就用前一種方案,用新技術改寫,這樣的目的主要是好招人,老程式員離職了再招新開發人員,努力將公司的命運控制在自己手中。以前我們公司的C/S(Windows Forms、WPF)程式開發人員常常會擔憂以後找不到工作,當時身為他們的直接主管,常常需要體會他們的這種壓力。技術上要將一些通用的重要的技術方案交給他們做,讓他們建立信心,同時也給他們安排一些熱門技術的培訓課程,作為管理人員,也需要對他們的未來負責,對他們的績效給予一定的相對優質的評定。網路公司的IT技術變更,比如大數據的需求,數據的來源形式和格式多種多樣,原有數據挖掘方案解決不了,迫切需要做技術變更以適應這種變化。於是就有對Hadoop,Spark這種大數據技術的需求,更厲害的網路公司甚至於重建一套大數據平台,以保證一直處於行業領先地位。

團隊組織文化的差異性

(一)軟體公司適合純技術人員生存,網路公司則相對重運維+技術。比如上一節我提到的緩存技術,網路公司將此發揚光大,提供一整套的分散式解決方案(Redis,MongoDB)。程式開發人員不僅僅要會調用API,還需要Deploy部署服務器,理解它們的內部運作機制原理,而在軟體公司,為了增加產品的高可用性,我們提供集群,鏡像,資料庫複寫,資料庫記錄檔(日誌)等技術,我們可以保證系統 7*24 不間斷運作。而網路公司對此要求更高,他們還要求高並發。我們知道資料存在硬碟上,讀取資料或保存資料是一個很合理的操作,管理軟體增刪查詢修改都是這樣模式,但網路公司對此還不滿意,因為多人並發的存在,資料必須要保存在記憶體中才能滿足快速的高並發地需求,當然還有高可擴展性,為了升級管理軟體,我們停止伺服器程式,或者直接重新啟動下機器是很常見的操作,但網路公司對此零容忍,他們要求更新系統時,不能停止服務,或是非常短暫(秒級)的停止服務。後者要求系統可以做到熱插撥,這跟USB接口做到熱插撥並成為業界標準是同一個趨勢,我們知道Oracle升級補丁包時,可以不用停止資料引擎服務,這個特性對網路公司非常重要(SQL Server用鏡像技術也可以達到此目的)。總體來說,管理軟體公司只需要把技術做好,而互聯網公司要求在技術之外,還需要了解運維層面的知識。

( 二)單純的軟體公司的同事頭腦相對固定(當然也聰明,能從事軟體業,相對一定是邏輯思維能力一定不錯),網路公司則靈活一些,它們存在的理由是創新。管理軟體作為一種管理思想的軟體整合實現,應該是一種管理模式,方法和思路與流程的固化,不允許或是少量允許變化。試想一下,規定的流程不跑,數據沒經過運算,自然沒有想要的結果。舉例說明,大部分的ERP軟件約定的流程,客戶下訂單,物控部跑MRP計劃,產生物料採購需求和半成品的加工需求,最後成品完成入庫,向客戶發貨,財務結算等。這是製造業ERP的基本流程,不過貿易公司的ERP則可以不這樣跑,可以直接向供應商下訂單,然後發貨到客戶,自己甚至都不用租賃倉庫,直接提供供應商到用戶的端到端(直運業務)業務模式。這些思路決定了管理軟件不需要創新,按照約定俗成的或是上司規定的流程完成即可。常此在這樣的思路下工作,人會失去創新血液。管理軟件的員工常常會被產品設計人員的思路導向,創新會自食惡果。而網路公司則相對充滿著創新的動力。

(三) 在管理軟體公司是人才培養的搖籃,通常軟體公司規模也偏小,但確實是產生高級工程師的地方。網路公司因為業務變更頻繁,技術更新迭代快,不適合純技術人員生存,常常是技術人員走管理,轉業務銷售的地方,在軟體公司有明確的人才培養方案,一個資深開發人員帶幾個年輕程式設計師,像老母雞帶小雞一樣,一步步教導這個怎麼實現,那個如何設計會更有效率一些,直到新人變老手,初級程序員變中級工程師。比如我們在管理軟體公司學到的,借助於緩存可以提高效率,改善性能,用反射技術可以做成插件式系統,用動態語言可以把系統做成可擴展的,這些技術隨著程序員年歲的增長,慢慢學會並靈活應用。網路公司因為技術變更快,Web 2.0、雲計算、物聯網、車輛網,大數據,技術更新非常頻繁,只有達到壟斷級別的公司才可以生存。我們都是凡人,能進入各個領域的壟斷級別的公司都非常不容易,即使進入,項目迭代周期短,KPI壓力大。 (我這裡說的適合於中小公司,大公司不適合於此小節描述。)

銷售模式與市場競爭差異性

(一)單純軟體公司的人員相對比較起來缺少銷售觀念,而網路公司員工更多的會關注到到商機,常常會考慮把技術轉化為價值,而管理軟體公司的員工則比較缺乏市場的積極性、參與了解動能不足,他們可能還在研究新版本的開發工具有哪些產品特性,期待以拖放的方式就能設計出工作流的軟體廠商,所以如果能把幾年工作的成果抽象提煉出來,形成一些公共的開發類庫,方便以後的開發,這是一個小小的進步。進一步的,能把管理軟體中相同的操作界面和模式總結出來,做出一些相對通用的界面和控制箱,比如資料的輸入Entry,資料的查詢Query,資料的清單 List,設計報表Report,資料查找Lookup,自定義查詢Query等,初步形成一個開發框架。再進一步,我們用自己提煉的開發框架,用自己參與和理解的技術理念,做出一套產品,這也算是一個小小的進步。技術進步的每一個階段都可以為你的職業發展帶來無窮的好處。熟練的程序員再也不擔心找工作沒人要。成為一個領域的資深開發人員,可以為自己贏取技術主管或經理的職位。做出一個領域或行業的產品,如果在合適的時機碰上會做市場的銷售人員,創業也是非常有可能的,記得一句話,夢想是要有的,萬一實現了呢?

(二) 網路公司相對容易產出新概念,新名詞以吸引大眾眼球,以此創造概念經濟,而單純軟體公司相對比較墨守成規,比如我在2006年所經歷的Web 2.0,那時滿大街的都是這種宣傳材料,沒過多久這種概念就過時了。正如現在鼓勵創業氛圍,雲計算服務,物聯網、車聯網、智慧家庭以及大數據等等,相信不久也會從我們的公眾視野中消失,當然也可能產生非常大的市場規模,但我相信市場一定會大洗牌,取而代之的是大批的網路公司、物聯網消失不見,而管理軟體公司則很少會這樣,MRP,ERP還是上世紀90年代的概念,現在仍然適合於企業管理軟體的設計思路。儘管ERP之後還有產生ERP II概念,不過也不怎麼流行。管理軟件公司相對務實,能把物料需求計劃(MRP)跑流暢,基本上公司的信息化水平就上了一個大台階,也不會再去追求管理創新。金融也是一個不適合創新的領域,記得 一個經濟學家說過,我們應該將所有的經濟學家從社會上去除,因為金融改革就是擾亂社會秩序。國際金融炒家索羅斯的至理名言也曾表述,我們就是為了創造一種假象,然後在人們認識到真相前提前退出遊戲。

     在這幾天連假看到網路詢問未來趨勢、以及思考許多資深從業人員後,隨意整理撰寫的文章,希望新的2017年有嶄新的開始,軟體業、網路業、IT技術 我依然熱愛,一生與它為伍。

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

庫存目標6大範疇(程式開發、程式設計、軟體開發、系統開發)

      這一個月去一家經營40幾年的代工廠,委託我們協助分析他們現行 ERP系統,很多庫存數量都一直無法精確,當然這邊所謂的精確,不完全是軟體系統庫存數字的正確,或進行盤盈盤虧進行調整數字動作,而是他們想要一個方式可以進行一個針對各種產品品項設定一個好的庫存量控制,我就詢問他們如何定義跟衡量一個產品、零件、材料的庫存數字(安全庫存、現有庫存量),我發現真的很多企業主管、工廠倉庫管理人員、採購人員大多數針對庫存量的控管都是只有幾個原則,一、庫存量越低現金流動率越高。二、針對常用物品、通用零材料設定安全庫存數字。

LINE_ALBUM_AI產生圖_240211_107LINE_ALBUM_AI產生圖_240211_287

    上述二大原則方向,一定正確無誤,但我會幾乎都會接著直接問客戶,那麼安全庫存您怎麼決定【數字 (QTY)】,我相信大多數都是說經驗法則,訂單銷售量、生產領料過程的用料量、耗損量等考慮因素,不過我幾乎都會根據實際情況、產業特性、企業流程各種因素給予調整建議,這也是很多客戶委託我們量身定做開發最具有價值的一環,絕對不是只有一個軟體使用,我們是整個進行流程討論,在討論過程我們會把相關產業的做法提出來,雙方共同腦力激蕩,因為客戶的流程與瓶頸客戶最知道,但往往發覺跟我們討論完,才發覺有許多創新變革的流程管理可以導入。

    在這篇分享文,我要特別提出一些對於庫存管理的實施做法(針對加工業、代工廠,單純的買賣業就不需要如此做法),在一個比較複雜的生產過程中,每個產品會經過一連串的製程(或稱工序),而庫存量不是只有針對最終完成品(產品)來控管,必須在各個環節都需進行設定控管基準線,在針對各個工序間我們也必須認真看待每一道工序完成後移交到下一個工序之前的轉移、未轉移的數量,也成為半成品,這些在一個好的管理軟體系統,必須有個工序對應的物料編碼(跟產品編碼是有所區隔),而針對工序角度思考的庫存控管,我們在此可以稱為【流動庫存(Flow)】, 其他的庫存控管稱之為【常備庫存(Stock)】,另外再針對這2種性質的庫存觀念又可以再次各自分類為 【計劃庫存】、【調整庫存】、【偶發庫存】。

    這樣解釋或許大家很難懂,我整理一下表格

計劃庫存 調整庫存 偶發庫存
常備庫存 (1)
以生產目標的庫存控制、季節性的庫存量控管、定期維修措施應變等
(3)
所有品項的安全庫存、JIT看板方式中的加工品
(5)
因疏忽導致過度生產的庫存量、或按生產訂單如期製作,但訂單忽然取消,造成的庫存量增加。
流動庫存 (2)
就是所謂的【帳齡庫存】
(4)
在工序之前進行緩衝調整庫存量、運輸過程的庫存量等。
(6)
工序之間生產速度不一致、或者調度部順利,造成某個工序的半成品特別異常。

(1)計劃常備庫存:

       它是一種依據“生產目標”為目的的庫存控制觀念,非常適合用於按照標準量劃分的產品,維持其庫存水平的情況,以及我們常發生的季節性庫存也是屬於這種類型,因為有些產業受到季節性等因素影響,月生產量非常不平均的行業我相信也是非常多,而這些行業的工廠設備普遍來說,都不具備可以在高峰季節(旺季)有相對應的生產能力,所以我們必須在這些行業中,積極主動地在需求量較少的淡季,生產較多的產品進行庫存,來因應旺季的到來。

      在該庫存量的制定方式,主要是根據一整年的宏觀需求預測為基礎來進行,這個軟體系統就必須根據多年來的歷史訂單、或者市場調查進行預測分析。

(2)計劃流動庫存

        存貨帳齡(帳齡庫存)就是典型屬於這一類,這也是產品工程設計中,都必須提前準備的庫存量。

(3)調整常備庫存

        這就是我們一直常聽到的JIT看板方式中的加工數量控制、或者大家最知道的【安全庫存量】設定,它是一種用於應對需求方的緊急變動,或為吸收生產作業線因為供應方問題導致供應數量的瓶頸,主動安全防範的庫存量。

(4)調整流動庫存

      這類型就是在工序與工序間,在加工製造過程中用於緩衝調整加工品的數量、或者運輸過程中的庫存量,都歸於這個類型。

     以及我要而外一提,常常因為原物料供應商和工廠製造商因為在“批量”的不一致,例如生產時採用件數為單位,而供應商發貨包裝是採用貨板單位,在這種狀況下,產品到了裝滿1貨板就需要臨時保管;相反來看就是,購買原物料時採用貨板單位,而供應商發貨是採用件數單位,這樣同樣都需要等到填補批量差異的調整庫存。

(5)偶發常備庫存

       就是因疏忽導致過度生產的庫存量、或按生產訂單如期製作,但訂單忽然取消,造成的庫存量增加。

(6)偶發流動庫存

     工序之間生產速度不一致、或者調度部順利,造成某個工序的半成品特別異常。

     也因為調度的不順暢、先前作業完成之後,需要接續的工序作業無法繼續進行生產,也是屬於這類性庫存定義。

而我特別整理上述這些庫存管理的範疇,在好的一個軟體管理系統(ERP、MRP、進銷存、POS系統、MES等),都應該在某個功能進行輔助,例如(1)計劃常備庫存和 (3)調整常備庫存,就是常看到的設定品項安全庫存量、根據訂單跑出生產計劃需求量,這個我建議可以參考我其他寫的文章,當然如果您有任何問題,也跟歡迎聯繫我們,任何問題我們都可以提出一些看法,也針對客戶產業流程特性進行專業的系統分析。

(其他參考文章)

MPS主生產計畫專文介紹(一)

MRPⅡ/ERP 能力需求計畫原理

庫存管理-概念與釐清

庫存管理探討-VMI

真正的庫存量形成探討

庫存管理的中樞控管法則(上)

庫存管理的中樞控管法則(下)

BOM表管理與設定﹣輔料是否需輸入BOM

何謂 進銷存、ERP、WMS?三者差異性【軟體開發、軟件開發、程式設計】

ERP 產品成本管理與計算

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

ERP 產品成本管理與計算

       目前很多企業多少都有導入ERP系統,但不管是用到什麼樣的ERP,SAP、Oracle、其他等,基本上幾乎都有一個共同的特點,就是目前的應用還局限於企業的各部門組織資料的輸入,然後將這部分的數據加工應用,形成一些簡單的統計分析報表,也就是說,事實上這還算是處於基礎的ERP應用階段,竟然這樣,那麼企業到底應該如何更加充分地發揮ERP的作用呢?這也是我想從這篇文章來講解,我主要從成本控制方面來加以闡述。

tyler-franta-iusJ25iYu1c-unsplash

      第一,我們先來了解一下企業製造生產商品的成本構成因素,產品的成本主要由材料成本 + 人工成本 + 製造費用等部分組成,而其中製造業最主要的成本是材料成本(比例相對比較大),其次是人力成本,第三是製造費用成本,而要控制好各項成本,就是要了解其中各成本項目分別是多少,在沒有應用ERP的時候,通常成本會計計算成本方式很簡單,就是將本月生產的產品數量作為基數,計算出材料,人工及製造費用,按一定的規則,將所有成本分攤至本月所有產生的產品中,從總體成本來說計算是沒有什麼問題,但由於是平均分攤的方式,相對每種產品而言,所看到的成本就不一定真實了,而且如果發現成本有異常,也比很難去追著問題的來源,但是很難去做改善了。但是,企業在應用了ERP以後,管理的精度和側重點就完全不一樣了,因為ERP系統可以自動歸集材料成本,自動計算人工成本和製造費用的分攤,不再只是一個所謂的【平均值】,每個個產品甚至每一張訂單的成本都可以精確地計算出來,我們知道成本會計的工作重點不再是核算成本,而是對成本產生過程的監控進而追溯,也對可能產生的異常情況進行預測和預防警惕,並在成本計算完成後對成本異常的數據分析原因並解決,這樣一步步地降低成本,在所有第一步就是要利用ERP來計算各種成本,只有有了這些數據才能發現問題和設定改善目標。

        再來通常,計算完成本我們就會發現很多的異常情況,比如有些訂單產品的材料按標準投入,產出卻遠遠高於預計的產量,有些訂單產品有材料投入卻沒有產出,更或者有些訂單超產特別大,而有些訂單卻沒有生產數據,所有這些異常發生的原因在在車間管理不規範造成的,車間存在挪料或不按生產計劃領料,不按生產任務單入庫的情況。如果ERP上線的時候顧問有特別的說明提醒或者成本會計有經驗,在一開始就嚴格要求車間規範作業,這種情況就會比較少發生,但很多企業做不到這一點。發現這些異常後,成本會計自然會去去,在追問問題的過程中,一方面讓相關部門,尤其是製造部門更加熟悉了解規範化作業流程的重要性,同時也讓這些部門人員慢慢樹立起成本意識,養成節省成本的觀念和習慣。

       ERP能精確計算產品成本,成本產生的過程ERP是否就無能為力了呢?非常.ERP計算成本只是減少了人工計算的工作量和增加了計算的精確度,過程控制才是ERP能產生效益的最大通常,材料成本在製造行業的產品成本中佔了絕大部分,而ERP可用於控製材料成本但是非常有效的一個面,在材料領用的時候,ERP可以按產品BOM的標準用量控製材料的領用,不可以隨意超標;而對於因為報廢等原因造成的材料超耗,ERP按設定的特殊流程處理,在這個流程中,所設定的審查和知會人員跟正常另一方面,當車間材料的領用都很規範後,我們就可以非常容易地檢查BOM數據的精度,因為我們完全可以根據領料的數量和產出,及車間剩餘的庫存來檢驗BOM是偏大,偏小或者剛好。這樣一來,成本控制的源頭就更加精確。在此基礎上,再去分析各項材料是否還有壓縮的空間,配套相關的操作規程和工具,方法,進一步節省成本。我們有個客戶就做到了這一點,在該企業的車間領用材料中,有個材料就是我們常用的膠帶,通常很多企業認為它的成本低用也不是特別大,所以在管理上也不重視,但這家企業是這樣做的:在需要使用的工序上,劃出刻度,然後給相關的作業人員培訓,做什麼產品用多少厘米毫米、公分、臺尺)的長度,這樣做以後,一卷膠帶可以做多個產品基本上都可以計算出來,可見其管理的深度。當然,這些改善的結果最後還是會反饋到ERP系統中,讓ERP來控制。

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

美容香水保養品 – 進銷存系統開發 (軟體開發、軟件開發、程式設計)

         感謝 水晶香國際股份有限公司 委託 網智數位量身定做開發符合保養品貿易公司的進銷存系統,雖然市面上很多套進銷存系統,但進銷存套裝軟體往往在某行業領域就是需要個別客製化,例如利潤分析的報表、商品出貨的統計、跨倉的寄存買買、各產品不同經銷商的折扣差異等等,這些都不是一般市面上的套裝可以完全符合店家客戶需求的,而該客戶專門是代理國際品牌,水晶香國際的謝董事長因為曾經也是知名通路商擔任主管多年,所以對數字管理有獨特的思維看法,也特別設計在這次的委託軟體開發案。

photo_l_146277617861
photo_b_110_142952199702

 

水晶香國際為台灣香水香氛及保養品專業代理商,以代理國際知名香水及保養品類為主,目前代理品牌如下所示:
瑞士-MUSK Collection香水香氛-總代理商
瑞士-ATHANOR有機保養品-總代理商

     https://www.facebook.com/SWISS.MUSK.COLLECTION
     https://www.facebook.com/Athanor.Taiwan

 

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

庫存量正確性衡量法則

我在協助企業導入資訊管理系統時,不論小至進銷存系統、POS系統、MRP管理系統到大型的ERP企業資源管理系統,最常被問到的議題之一,就是我們公司用貴公司的開發的資訊系統後,我們公司的庫存量可以“完全信賴”於資訊系統嗎?以及存貨的成本價值正確性如何?以及大概多久需要進行人工實際盤點?這些疑問是不斷地重覆提起…..因為這些客戶期待用了花費購買的資訊系統後,可以有效控制合理以及正確的庫存量。

LINE_ALBUM_AI產生圖_240211_78LINE_ALBUM_AI產生圖_240211_138

或許我可以這樣大膽地說,一個導入進銷存、POS、MRP、ERP管理系統成功的店家或企業,一個必須衡量的指標就是系統庫存數字必須到達 95% 的正確性,(而如果是導入 MRP的一定還需包含可以透過系統自動計算所需生產計劃的工單和採購計劃的採購單),那麼各位您們有仔細思考,所謂庫存量 95%正確性如何計算呢?我導入的客戶,幾乎都這樣回答我,就是系統的庫存數量與實際倉庫的盤點數量,兩者誤差之絕對值,再除以倉庫實際數量,得出誤差率,但這絕對不是一個準確的衡量庫存量正確性的方法,所以我特別寫了這篇文章,就是想跟大家說說可以正確衡量庫存量的方式。

比較正規的庫存量衡量目前有5種計算法,分別為以下
1.金額盤盈盤虧抵消法
2.金額絕對差異法
3.數量絕對差異法
4.數量絕對差異平均百分比法
5.計數容限法

現在我用一個表格來說明講解這5種計算方式

料號庫存試算表1

金額盤盈盤虧抵消法
這種計算方式,就是把所有物料盤點後,盤虧的金額加上盤盈的金額,正負抵消後取絕對值,接著再除以系統的帳面價值
60,900(金額差異的絕對值) ÷ 6,106,000(系統帳面價值) = 0.010
(1 – ( 60,900(金額差異的絕對值) ÷ 6,106,000(系統帳面價值)) ) * 100% = 99.0026 %

金額絕對差異法
這種計算方式,是不管倉庫盤點後是盤盈或盤虧,都絕對採用盤點金額的絕對值來相加計算,接著再除以系統的帳面價值
61,900(金額差異-絕對值) ÷ 6,106,000(系統帳面價值) = 0.010
(1 – (61,900(金額差異-絕對值) ÷ 6,106,000(系統帳面價值)) ) * 100% = 98.986 %

數量絕對差異法
這種計算方式,是不管倉庫盤點後是盤盈或盤虧,都絕對採用盤點數量的絕對值來相加計算,接著再除以系統的帳面庫存數量

58(數值差異) ÷ 1200(系統數量) = 0.0483
(1- (58(數值差異) ÷ 1200(系統數量)))* 100% = 95.166 %

數量絕對差異平均百分比法
這種計算方式,針對每個物料盤點後的誤差去絕對值後,再分別除以每個物料系統的庫存數量,最後再加總,並總平均

由上圖 料號庫存試算表1 數量差異(絕)/系統數量 欄位可以看到最後計算結果為 97 %

計數容限法
這也是我最推薦的法則,因為它是充分利用ABC分類法,針對每個分類設定一個可以允許的誤差率,例如這個案例,我設定A類可以接受的誤差為 0%(因為A類價值較昂貴,單價成本較高),
B類設定為 2% , C類為 5% ,但設定好符合企業或店家自己衡量的準則後,就可以針對每個物料盤點除以每個物料系統帳面的數量,得出庫存數量誤差率,再比對每項物料的分類是否高於設定的界限,
如果高於就是有誤差率,最後相加,就是庫存最終誤差率,看上圖料號庫存試算表1 計數容限法 欄位可以看到最後計算結果為 95.67 %

(何謂ABC分類法)
“A類"產品: 這類產品的價值占庫存總價值的80%,而其數量只佔庫存總產品數量的20%
“B類"產品: 這類產品的價值占庫存總價值的15%,而其數量占庫存總產品數量的30%
“C類"產品: 這類產品的價值只佔庫存總價值的5%,而其數量占庫存總產品數量的50%

以上我很仔細的介紹了,評估庫存數量的衡量 5 種計算方式,希望各位企業或店家能夠仔細從頭好好深思如何有效益的做好庫存控管,不過最後我還是要補充,這篇只是利用數學科學計算的方式去驗證庫存量正確性,
但企業如何有效減低庫存,或者提供庫存周轉率,是要針對每個企業的營運環節去思考,例如採購部門是否提早購進太多物料或太晚,生產部門部門領料入單據是否落實,造成系統帳面數量虛的,
不管如何,有效控制庫存量正確性,對企業的營運是即為關鍵,但好的軟體系統是絕對對企業有極大的效益。

網智數位-軟體開發