Thursday, November 25, 2010

Workflow là gì?

Định nghĩa đơn giản nhất của workflow: là các định nghĩa của các qui trình đã chuẩn hóa. Và khi mình viết các module cho từng công việc, workflow là 1 chuỗi công việc phải làm. Thường thì các công ty nước ngoài hoặc các doanh nghiệp lớn mới có được sự ổn định trong các quy trình làm việc, nên workflow của họ thường là 1 dòng chảy thống nhất, ví dụ: A –> B –> C –> D. Tuy nhiên ở các doanh nghiệp Việt Nam, sự ổn định trong dòng chảy đó thường là hiếm, nên nhiều khi các ERP có workflow phải thường là workflow động. VD, tại một thời điểm X thì workflow của phòng SX là A –> B –> C –> D, tuy nhiên có thể tại thời điểm Y thì workflow đó được thay đổi là: B –> A –> C –> D, và … Tuy nhiên để rộng đường tìm hiểu workflow, tôi xin mượn ý kiến của 1 bài viết mà tôi đã có dịp đọc được trên mạng (hình như là của PAT). Theo bài viết đó thì workflow trong một ERP thể hiện ở các yếu tố căn bản sau :

1. Các quy trình và khả năng xử lý công việc theo trình tự công việc. Ví dụ trình tự công việc cho việc mua hàng trong hệ thống ERP minh hoạ như sau : Các bộ phận có nhu cầu mua hàng xây dựng yêu cầu mua hàng POP (Purchase order Proposal) -> phòng mua hàng -> Nhân viên phụ trách mua ứng với từng loại hình xem xét -> Đề nghị mua hàng của bộ phận mua hàng -> phê duyệt của lãnh đạo phòng -> đề nghị báo giá hoặc đấu thầu -> đánh giá nhà cung cấp -> lựa chọn NCC-> lập đơn hàng chính thức PO -> nhận khẳng định cung ứng từ NCC -> theo dõi nhận hàng -> nhận hóa đơn từ NCC -> chuyển hoá đơn đến kế toán thanh toán….

2. Khả năng xem xét trình tự công việc và phê duyệt công việc trên hệ thống . Lúc này việc hoạch định phân quyền cho từng bước xử lý công việc của mỗi một quy trình phải nghiêm ngặt để đảm bảo tính đúng đắn của thông tin và truy cứu trách nhiệm sau này.

3. Giống như ví dụ workflow động mà tôi nêu trên, cái này được thực thi qua hệ thống tham số quy trình nghiệp vụ và khả năng ánh xạ tham số vào thiết lập quy trình nghiệp vụ (mapping). Đây cũng là một chỉ tiêu rất quan trọng để đánh giá khả năng của một ERP. Một vài ví dụ trong hệ thống tham số mà mình đã thiết lập. DN vừa có một Khách hàng mới. Do thời gian ban đầu muốn có những ưu đãi DN có thể quyết định không tính phạt chậm trả cho thanh toán trễ cũng như vẫn cho phép xuất hàng khi tổng công nợ + doanh thu lớn hơn tín dụng (tất nhiên là trong một phạm vi nào đó) lúc này các tham số phạt chậm trả bằng “No”, giao hàng có giá trị “Yes”. Một thời gian sau DN có thể thay đổi quy trình này bằng tham số phạt chậm trả bằng “Yes”, giao hàng có giá trị “No” hệ thống sẽ tự động tính phạt lãi suất chậm trả ứng với từng lần thanh toán chậm và khi khách hàng mua vượt quá tín dụng hệ thống sẽ bắt buộc phải phê duyệt lệnh xuất hàng này từ lãnh đạo.

Nói chung đây là một ví dụ về tham số và còn rất nhiều tham số khác

khongianit

Sunday, November 14, 2010

Reducing the Size of your Database in SQL Server 2005/SP2

An exciting new feature in SQL Server 2005/SP2 is Vardecimal Storage Format. This storage format lets you reduce the size of your table significantly if the table has one of more columns of type decimal or numeric without requiring any changes to your application.

Up until now, the decimal and numeric types are stored as fixed length data in SQL Server. Both of these types are functionally equivalent and have a format of (p, s) where p is the precision (number of decimal digits) and s is the scale representing number of digits after the decimal. Depending on the precision (it can be declared in the range from 1 to 38), the decimal value can take anywhere from 5 bytes to 17 bytes. This can bloat the size of the table, especially when you have small decimal values for a column declared with high precision requirement. This issue is similar to char (17) vs. varchar(17). In this case, if most of your character data is 1 or 2 characters long but the max value is 17 characters long, you can reduce the size of the table by declaring the column to be of type varchar(17) instead of char(17).

The new vardecimal storage format stores the decimal/numeric values in a variable length storage format. It provides efficient storage of decimal/numeric data by eliminating the leading/trailing zeros and only storing the minimum required bytes. Using this format, you can get significant space savings (depending on your data distribution) in the space required to store decimal/numeric data. You can enable vardecimal storage format at a table level.

In our in-house testing, we have seen significant reduction in the size of the FACT table(s) that has large number of decimal columns. FACT tables are typically the largest table in a Data Warehouse. Here are some the numbers from our testing.

Best case reduction in the size of the table

57%

69%

51%

In my next post http://blogs.msdn.com/sqlserverstorageengine/archive/2006/11/13/estimating-the-space-savings-with-vardecimal-storage-format.aspx , I will describe when and how to enable Vardecimal storage format on one or more tables in your database.