blog ของภูวเดช : ว่าด้วย Open Source ERP

กันยายน 16, 2010

การติดตั้ง PostgreSQL 8.4 บน Ubuntu

Filed under: ข้อมูลทางเทคนิค — ภูวเดช @ 10:27 am

PostgreSQL เป็น open source DBMS ที่มีผู้นิยมใช้มากตัวหนึ่ง โปรแกรมใช้งานระบบใหญ่ๆ อย่าง ERP หลายตัวใช้ PostgreSQL เป็นตัวจัดการฐานข้อมูล และที่สำคัญ PostgreSQL เป็น open source ที่อนุญาตให้ผู้ใช้ download ไปใช้ได้ฟรี ทั้ง source code และ prebuilt code ซึ่งหมายความว่า ผู้ใช้ไม่ต้องจ่ายเงินซื้อ PostgreSQL เลย

นอกจากแหล่งที่กล่าวข้างต้นแล้ว OS ตระกูล Unix และ Linux ก็ได้รวมเอา PostgreSQL ติดเข้าไปในแผ่นแจกจ่ายด้วย ทำให้การติดตั้งและการใช้งาน PostgreSQL ง่ายขึ้นกว่าเดิมมาก

ในบทความนี้จะกล่าวถึงการติดตั้ง PostgrSQL 8.4 บน Ubuntu 10.04 LTS เพื่อจะใช้เป็นฐานข้อมูลสำหรับ Adempiere ERP บทความนี้มุ่งหวังให้ผู้ใช้ทั่วไปลงมือปฏิบัติเองได้ จึงจะใช้คำสั่งต่างๆผ่าน GUI เพื่อให้ผู้ใช้ทั่วไปเข้าใจได้ง่าย

PostgreSQL มีขั้นตอนติดตั้งง่ายๆดังต่อไปนี้

1. ติดตั้งตัว software PostgreSQL : บน Ubuntu สามารถทำได้หลายวิธี ขอแนะนำวิธีที่คิดว่าง่ายที่สุดคือสั่งติดตั้งผ่าน terminal โดยให้ทำดังนี้

  1. เปิด terminal ขึ้นมา และใส่คำสั่ง $ sudo apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-client-common postgresql-common postgresql-contrib-8.4 libossp-uuid16 libpq5 libwxbase2.8-0 libwxgtk2.8-0 แล้วกด Enter
  2. จากนั้นคอมพิวเตอร์จะถามรหัสผ่านของท่าน ก็ให้ใส่รหัสผ่านเข้าไป
  3. ต่อไปจากนั้น โปรแกรมต่างๆที่เลือกก็จะถูกติดตั้งลงในคอมพิวเตอร์จนเสร็จโดยอัติโนมัติ

ตามความจริงเมื่อคอมพิวเตอร์ กลับมาที่ prompt ของ terminal ก็หมายความว่า PostgreSQL ได้ถูกติดตั้งเรียบร้อยอย่างสมบูรณ์พร้อมที่จะทำงานต่อไปได้แล้ว แต่ด้วย default parameter ที่มากับตัวโปรแกรมนั้นตั้งไว้เพื่อให้ติดตั้งได้สำเร็จเท่านั้น ยังไม่สะดวกที่โปรแกรมของผู้ใช้จะเข้าถึงฐานข้อมูลได้ จึงต้องแก้ไข parameter เหล่านั้นเพื่ให้สะดวกต่อผู้ใช้และโปรแกรมของผู้ใช้จะเข้าถึงฐานข้อมูล

2. ตั้งค่าโปรแกรม เพื่ออนุญาตผู้ใช้เข้าใช้งานฐานข้อมูล : มีขั้นตอนดังต่อไปนี้

  1. สร้างพื้นที่ทำงานของฐานข้อมูล ใน terminal เดิม ใส่คำสั่ง $ sudo mkdir /u01 แล้ว Enter
  2. ให้ผู้ใช้ postgres มีสิทธิ์การเข้าถึง /u01 แต่ผู้เดียว โดยใส่คำสั่ง $ sudo chown postgres /u01
  3. สั่ง initialize ฐานข้อมูลใน /u01 โดยใช้คำสั่ง $ sudo -u postgres /usr/lib/postgresql/8.4/bin/initdb -D /u01 แล้วปล่อยให้คอมพิวเตอร์ทำงานไปจนเสร็จกลับออกมาที่ prompt
  4. copy ไฟล์อีก 2 ไฟล์จากพื้นทีทำงานเดิมมาไว้ใน /u01 ด้วย โดยใช้คำสั่งข้างล่างนี้
    sudo cp /var/lib/postgresql/8.4/main/server.key /u01
    sudo cp /var/lib/postgresql/8.4/main/server.crt /u01
    sudo chown postgres:postgres /u01/server.key
    sudo chown postgres:postgres /u01/server.crt
  5. ลบไฟล์ .s.PGSQL.5432.lock ด้วยคำสั่ง sudo rm /var/run/postgresql/.s.PGSQL.5432.lock
  6. แก้ไขไฟล์ postgresql.conf โดยใส่คำสั่ง sudo nano /etc/postgresql/8.4/main/postgresql.conf ให้มองหาส่วน File Location แล้วแก้ให้ได้อย่างภาพตัวอย่างข้างล่างนี้ และมองหาส่วน Connections แล้วแก้ไขดังภาพข้างล่างนี้
  7. แก้ไขไฟล์ pg_hba.conf โดยใช้คำสั่ง $ sudo -u postgres nano /u01/pg_hba.conf  ในterminal และเพิ่มเติม host ที่จะเข้าถึงฐานข้อมูล PostgreSQL ได้ ดังตัวอย่าง
  8. สั่งเริ่มต้นฐานข้อมูล PostgreSQL และตรวจสอบสถานะการทำงานของฐานข้อมูล ด้วย คำสั่งต่อไปนี้ใน terminal
  • $ sudo -u postgres /usr/lib/postgresql/8.4/bin/pg_ctl -D /u01 -l /u01/pglog -o “-h $PGHOST” start
  • $ sudo -u postgres /usr/lib/postgresql/8.4/bin/pg_ctl -D /u01 -l /u01/pglog -o “-h $PGHOST” status

ซึ่งถ้าทุกอย่างถูกต้องควรจะได้ผลดังภาพ

3. เข้าใช้โปรแกรม เมื่อมาถึงตรงนี้ก็แสดงว่า ฐานข้อมูล PostgreSQL ทำงานแล้ว และพร้อมที่จะถูกนำมาใช้งาน ติดตั้ง Adempiere ต่อไปตามที่ได้กล่าวมาแล้วในบทความเรื่อง การติดตั้งระบบ ADempiere ERP บน Ubuntu

จึงขอจบการติดตั้ง PostgreSQL 8.4 บน Ubuntu แค่นี้ครับ

สิงหาคม 19, 2010

การติดตั้ง Ubuntu 10.04 LTS Desktop

Filed under: ข้อมูลทางเทคนิค — ภูวเดช @ 5:58 am

Ubuntu 10.04 LTS Desktop เป็น ระบบปฏิบัติการสำหรับคอมพิวเตอร์ ซึ่งช่วยให้ผู้ใช้ ใช้คอมพิวเตอร์ได้เต็มความสามารถของเครื่อง Ubuntu รุ่นนี้ ผู้ใช้สามารถเรียนรู้และใช้งานได้ง่ายมาก บางเรื่องง่ายกว่า Windows มาก เช่น การติดตั้งที่จะพูดต่อไป

นอกจากจะใช้ง่ายแล้วที่สำคัญ ผู้ใช้ทุกคนสามารถดาวน์โหลดมาใช้ได้ฟรีๆ แถมถ้าไม่สามารถดาวน์โหลดได้ด้วยเหตุใดๆก็ตาม ก็สามารถส่ง email ไปขอ CD มาใช้ได้ฟรีๆ เขาไม่คิดค่าใช้จ่ายใดๆแม้แต่ค่าส่ง CD นั้นทางไปรษณีย์

ผมจึงไม่เห็นความจำเป็นที่จะต้องซื้อระบบปฏิบัติการ Windows อีกเลย ต่อแต่นี้ไป ผมเป็นอิสระจาก MS แล้ว

ขอกลับมาเข้าเรื่องการติดตั้ง Ubuntu 10.04 LTS Desktop การติดตั้ง Ubuntu นั้นมีขั้นตอนไม่วุ่นวาย และง่ายๆ ดังต่อไปนี้

1. สำรวจสเปคของเครื่องคอมพิวเตอร์ที่ใช้ ว่ามี CPU ขนาด 64 bits หรือ 32 bits แล้ว เลือกแผ่น CD OS Ubuntu 10.04 LTS ที่เหมาะสมกับเครื่องคอมพิวเตอร์ที่ใช้ ถ้าเป็นเครื่องขนาด 64 bit ก็ใช้ แผ่น ubuntu-10.04-desktop-amd64 หรือถ้าเป็นขนาด 32 bit ก็ใช้แผ่น ubuntu-10.04-desktop-i386

2. เมื่อเลือกได้แล้ว ก็ใส่แผ่น CD Ubuntu นั้นเข้าไปในช่อง CD/DVD แล้ว restart คอมพิวเตอร์ หลังจากนั้นสักครู่ควรจะเห็นหน้าจอต้อนรับและคอยให้เลือกภาษา และเลือกว่า จะติดตั้ง หรือจะลองใช้ Ubuntu จากแผ่น CD นั้น ดังภาพ
ถ้าคอมพิวเตอร์ไม่ขึ้นหน้าจอนั้นโดยอัตโนมัติ ก็อาจจะต้องแก้ไขการตั้งค่า BIOS โดย restart คอมพิวเตอร์ใหม่ แล้วก็คอยดูข้อความที่จะบอกว่าให้กด key ไหนเพื่อจะเข้าหน้าต่างแก้ไข BIOS ซึ่งโดยทั่วไปจะเป็นอันหนึ่งต่อไปนี้ F1, F2, DEL, ESC or F10. ให้กด key นั้นในขณะที่คอมพิวเตอร์กำลังบูทก็จะเข้าไปแก้ BIOS ได้ ที่สำคัญคือต้องแก้ลำดับการบูทให้เครื่องยูทจาก CD/DVD drive ก่อน

เพื่อจะแก้ไข ให้กด key ที่ถูกต้องในขณะบูท ก็จะปรากฏเมนูของการแก้ไข BIOS  ขึ้น ให้มองหาเมนูเลือกลำดับการบูท จะเห็น CD/DVD drive ในเมนูนั้น แล้วเลื่อน CD/DVD drive ขึ้นไปบนสุดเพื่อให้ คอมพิวเตอร์บูทจาก CD/DVD ก่อน ฮาร์ดดิสค์ แล้วบันทึกการเปลี่ยนแปลงและทำงานต่อไป
เมื่อเลือกภาษาที่จะใช้ทำงานแล้ว ก็กดปุ่ม ”Install Ubuntu 10.04″ จากการทดลองใช้ ผมเลือกภาษาไทย ปรากฏว่ามีภาษาไทยให้มาเรียบร้อย ตัวหนังสือสวยงามดีด้วย และนอกจากการเลือกภาษาที่นี่แล้วก็ยังสามารถเลือกใช้ภาษาต่างๆเพิ่มเติมได้อีกภายหลัง

3. เลือกตำแหน่งที่อยู่เพื่อกำหนดเขตเวลา สำหรับประเทศไทย เลือก Asia/Bangkok แล้ว กดปุ่ม “Forward” เพื่อทำงานต่อไป

4. เลือกรูปแบบ keyboard ที่จะใช้

5. เลือกลักษณะการติดตั้ง Ubuntu โดยใช้หน้าต่างนี้เลือก

ถ้าเลือก ‘install side by side’ ก็จะติดตั้ง Ubuntu ลงบนที่ว่างบนฮาร์ดดิสค์ของคอมพิวเตอร์ และสามารถใช้บรรทัดเลื่อนเพื่อเปลี่ยนแปลงขนาดที่ว่างที่จะใช้ได้
ถ้าเลือก “Erase and use the entire disk” ก็จะลบระบบเดิมที่อยู่บนฮารฺดดิสค์ทิ้งไปและติดตั้ง Ubuntu ระบบใหม่นี้แทนเลย

6. ใส่รายละเอียดบัญชีผู้ใช้ของคุณ

7. ทบทวนการเลือกต่างๆ ในการติดตั้งครั้งนี้แล้วกด “Install”

หลังจากนั้นการติดตั้งก็จะดำเนินไปอย่างอัตโนมัติ และมีข้อมูลให้เรียนรู้เพิ่มเติมปราฏกบนหน้าจอ ซึ่งสามารถอ่านเพื่อรู้เรื่องเกี่ยวกับ Ubuntu เพิ่มเติม หรือไม่เช่นนั้นก็ไปหากาแฟดื่มสักแก้ว!

เมื่อทุกอย่างเรียบร้อยก็ restart คอมพิวเตอร์ใหม่ แล้วก็เริ่มใช้ Ubuntu ต่อไปได้

สิงหาคม 18, 2010

การติดตั้งระบบ ADempiere ERP บน Ubuntu

Filed under: ข้อมูลทางเทคนิค — ภูวเดช @ 12:30 pm

ก่อนที่จะติดตั้ง Adempiere ERP ในขั้นนี้ได้ ต้อง ติดตั้ง OS Ubuntu 10.04 และ PostgreSQL DBMS บน คอมพิวเตอร์ที่จะใช้งานให้เรียบร้อยก่อน

การติดตั้ง ADempiere บน Ubuntu ประกอบด้วยขั้นตอนหลักๆ คิอ
1. สร้างผู้ใช้ใหม่ชื่อ adempiere
2. ตั้งค่า environment สำหรับการติดตั้ง Adempiere
login ด้วยชื่อผู้ใช้ adempiere
ใน terminal ที่ $HOME ให้ใส่คำสั่ง emacs .profile แล้วเพิ่มเติมข้อมูลดังภาพ

การปรับ System Variableslogout แล้ว login ด้วย user adempiere ใหม่อีกครั้งเพื่อให้ environment variables ที่ตั้งขึ้นใหม่ถูกนำไปใข้

หมายเหตุ : emacs นั้นคือ edittor ซึ่งสามารถเลือกใช้ตัวอื่นได้เช่น gedit, vi, nano เป็นต้น

3. copy ไฟล์ Adempiere_360LTS.zip ลงที่ $HOME directory
แตกไฟล์ Adempiere_360LTS.zip ลงไว้ใน $HOME

4. execute ไฟล์ ./RUN_setup.sh
cd $HOME/Adempiere
ใน terminal ใส่คำสั่ง $sh ./RUN_setup.sh
ถ้าเป็นการติดตั้งครั้งแรกจะปรากฏหน้าต่าง


ให้กรอกข้อมูลชื่อโฮสต์ ที่ฟีลด์ Application Server และ Database Server ตามที่ท่านใช้ ส่วนฟีลด์อื่นๆให้ใช้ตามตัวอย่าง หลังจากที่ท่านเข้าใจว่าฟลีด์ต่างๆนั้นคืออะไร ค่อยเปลี่ยนภายหลังได้ครับ เมื่อกรอกเสร็จแล้วให้กดป่ม Test

จะปรากฏหน้าจอ Ketstore ขึ้น ให้ใส่ข้อความตามที่ต้องการลงไป

ให้กรอกข้อความตามที่ท่านต้องการลงไป แล้วกดเครื่องหมาย ถูก สีเขียว

ถ้าทุกอย่างถูกต้อง จะปรากฏสถานะ OK ที่บริเวณใต้ปุ่ม Test นั้น ถ้าเกิด error ก็ให้ดูว่าเกิดขึ้นที่ไหน แล้วแก้ไขให้เรียบร้อยก่อน

เมื่อได้สถานะ OK แล้วก็ให้กดปุ่ม Save

จะปรากฏหน้าต่าง

ให้กดปุ่ม ยอมรับ

จะปรากฏ กล่องโต้ตอบดังภาพให้กดปุ่ม OK จากนั้นโปรแกรมจะติดตั้ง Adempiere ต่อไปเองจนเสร็จโดยอัตโนมัติ

5.การนำเข้า ERP database
copy ไฟล์ ExpDatYYYYMMDD_hhmmss.jar ไว้ที่ $HOME/Adempiere/data
แตกไฟล์ ExpDatYYYYMMDD_hhmmss.jar ไว้ใน directory นั้น
cd $HOME/Adempiere/utils
execute ไฟล์ ./RUN_DBRestore.sh
คอยจนโปรแกรมทำงานเสร็จเรียบร้อย

ระบบ Adempiere ก็พร้อมที่จะเริ่มทำงาน

ตุลาคม 15, 2009

กาลามะสูตร

Filed under: ข้อมูลทั่วไป — ภูวเดช @ 8:25 pm

ปัจจุบัน ด้วยอินเตอร์เน็ตกับซอฟท์แวร์ใหม่ๆ เช่น Twitter, Facebook และอื่นๆ ในกลุ่มที่เรียกว่า social media ได้อำนวยให้มวลชนทั่วโลกสื่อสารถึงกันได้ด้วยความสะดวกตลอดเวลา เหมือนกับว่ามวลชนทั้งหมดนั้นอยู่ใกล้กันในห้องเดียวกัน  ด้วยเหตุที่ข้อมูลต่างๆที่มวลชนส่งถึงกันนั้นผ่านระบบสื่อสารไปอย่างรวดเร็วไม่ผิดเพี้ยน อย่างไม่มีข้อจำกัดใดๆเลย จึงก่อให้เกิดโอกาสที่จะใช้ข้อมูลหลอกลวงมวลชนได้ง่ายอย่างที่ไม่เคยปรากฏมาก่อนเลย

เรายังมีคำสอนของพระพุทธเจ้าที่ได้สอนในเรื่องการเชื่อข้อมูลต่างๆไว้เมื่อกว่า 2500 ปีที่ซึ่งยังสามารถใช้ได้ดี เหมาะกับสมัยปัจจุบันเป็นอย่างยิ่ง พระพทุธเจ้าทรงตรัสกับ ชาวนิคมกาลามะ ซึ่งกลายเป็นชื่อของสูตรคำสนอนี้ คือ กาลามะสูตร ดังต่อไปนี้

ท่านทั้งหลาย ๑.อย่าได้ยึดถือตามถ้อยคำที่ได้ยินได้ฟังมา ๒.อย่าได้ยึดถือตามถ้อยคำสืบๆกันมา
๓.อย่าได้ยึดถือโดยตื่นข่าวว่าได้ยินอย่างนี้ ๔.อย่าได้ยึดถือโดยอ้างตำรา ๕.อย่าได้ยึดถือโดยเดาเอาเอง
๖.อย่าได้ยึดถือโดยคาดคะเน ๗.อย่าได้ยึดถือโดยความตรึกตามอาการ ๘.อย่าได้ยึดถือโดยชอบใจว่าต้องกันกับทิฐิของตัว
๙.อย่าได้ยึดถือโดยเชื่อว่าผู้พูดสมควรจะเชื่อได้ ๑๐.อย่าได้ยึดถือโดยความนับถือว่าสมณะนี้เป็นครูของเรา
เมื่อใดท่านทั้งหลายพึงรู้ด้วยตนเองว่า ธรรมเหล่านี้เป็นอกุศล ธรรมเหล่านี้มีโทษ ธรรมเหล่านี้ผู้รู้ติเตียน
ธรรมเหล่านี้ใครสมาทานให้บริบูรณ์แล้วเป็นไปเพื่อสิ่งไม่เป็นประโยชน์ เพื่อทุกข์ เมื่อนั้น ท่านทั้งหลายควรละธรรมเหล่านั้นเสีย
เมื่อใด ท่านทั้งหลายพึงรู้ด้วยตนเองว่า ธรรมเหล่านี้เป็นกุศล ธรรมเหล่านี้ไม่มีโทษ ธรรมเหล่านี้ท่านผู้รู้สรรเสริญ
ธรรมเหล่านี้ใครสมาทานให้บริบูรณ์แล้วเป็นไปเพื่อประโยชน์ เพื่อสุข เมื่อนั้น ท่านทั้งหลายควรเข้าถึงธรรมเหล่านั้นอยู่

ท่านทั้งหลาย

๑.อย่าได้ยึดถือตามถ้อยคำที่ได้ยินได้ฟังมา

๒.อย่าได้ยึดถือตามถ้อยคำสืบๆกันมา

๓.อย่าได้ยึดถือโดยตื่นข่าวว่าได้ยินอย่างนี้

๔.อย่าได้ยึดถือโดยอ้างตำรา

๕.อย่าได้ยึดถือโดยเดาเอาเอง

๖.อย่าได้ยึดถือโดยคาดคะเน

๗.อย่าได้ยึดถือโดยความตรึกตามอาการ

๘.อย่าได้ยึดถือโดยชอบใจว่าต้องกันกับทิฐิของตัว

๙.อย่าได้ยึดถือโดยเชื่อว่าผู้พูดสมควรจะเชื่อได้

๑๐.อย่าได้ยึดถือโดยความนับถือว่าสมณะนี้เป็นครูของเรา

เมื่อใดท่านทั้งหลายพึงรู้ด้วยตนเองว่า ธรรมเหล่านี้เป็นอกุศล ธรรมเหล่านี้มีโทษ ธรรมเหล่านี้ผู้รู้ติเตียน ธรรมเหล่านี้ใครสมาทานให้บริบูรณ์แล้วเป็นไปเพื่อสิ่งไม่เป็นประโยชน์ เพื่อทุกข์ เมื่อนั้น ท่านทั้งหลายควรละธรรมเหล่านั้นเสีย

เมื่อใดท่านทั้งหลายพึงรู้ด้วยตนเองว่า ธรรมเหล่านี้เป็นกุศล ธรรมเหล่านี้ไม่มีโทษ ธรรมเหล่านี้ท่านผู้รู้สรรเสริญ ธรรมเหล่านี้ใครสมาทานให้บริบูรณ์แล้วเป็นไปเพื่อประโยชน์ เพื่อสุข เมื่อนั้น ท่านทั้งหลายควรเข้าถึงธรรมเหล่านั้นอยู่

ดังนั้นเมื่อใดก็ตามที่ท่านได้รับข้อมูลอะไรมาก็ใช้ กาลามะสูตรนี้ช่วยไตร่ตรองเลือกเอาสิ่งควรนำมายึดถือ ก็จะช่วยให้ไม่ต้องเป็นเหยื่อของผู้หลอกลวงในสังคมข่าวสารเช่นปัจจุบันนี้

ที่มา พระไตรปิฎก เล่มที่ ๒๐ พระสุตันตปิฎก เล่มที่ ๑๒ อังคุตตรนิกาย เอก-ทุก-ติกนิบาต

ตุลาคม 8, 2009

ปัญหาตัวจริง

Filed under: ว่าด้วยปัญหา — ภูวเดช @ 8:17 pm

เราได้คุยกันมา 2 เรื่อง คือ ปัญหาคืออะไร และ ลักษณะประจำตัวของปัญหา ในบทความนี้เราจะได้พูดกันถึง การมองให้เห็นตัวปัญหาจริงๆ ซึ่งจะทำให้เรา พบทางออกของปัญหาที่กำลังประสบอยู่ได้ง่ายขึ้น

ปัญหาตัวจริง

เวลาเกิดสิ่งที่ไม่ได้ดังใจขี้น คนมักจะพูดว่าเรื่องนี้มีปัญหา เรื่องนั้นเป็นปัญหา ก็อาจจะจริงในความรู้สึกของผู้พูด ว่าสิ่งนั้นคือปัญหาของเขา แต่มันอาจไม่ใช่ในความรู้สึกของคนอื่นๆ ดังนั้นจึงต้องมีวิธีกรองเอาปัญหาตัวจริงที่ทุกคนเห็นตรงกัน เข้าใจตรงกัน ออกมาจากคำพูด คำบ่นต่างๆ เพื่อว่าจะได้ช่วยกันคิดหาทางแก้ปัญหา ช่วยกันลงมือทำเพื่อให้การแก้ปัญหาลุล่วงไปได้

การกรองปัญห

ใช้ลักษณะประจำตัว 2 อย่างคือ ปัญหามีขนาดและทิศทาง และ ปัญหาชี้ทางออกอยู่ในตัวมันเองเสมอ เมื่อพูดถึงปัญหาใดๆ ถ้ายังมองไม่เห็นขนาดและทิศทางของปัญหา มองไม่เห็นทางออก สิ่งที่พูดถึงนั้นไม่ใช่ปัญหา

โดยธรรมชาติ การที่ปัญหาปรากฏขึ้นต่อหน้าเราก็เพื่อจะแจ้งให้รู้ว่า มีเรื่องที่ต้องทำ ต้องแก้ไขแล้ว และจะมีรายละเอียดบอกถึง ขนาดและทิศทาง ของมัน และเกือบจะโดยทันทีเราจะเห็น ทางออกไม่น้อยกว่า 1 ทาง เสมอ ทุกทางออกที่ลงมือทำไปถ้าทำสำเร็จ เราจะรู้โดยทันทีว่าปัญหาได้ถูกแก้แล้ว ถ้าไม่เป็นเช่นนี้ อย่าเสียเวลาพูดถึงสิ่งนั้นเลย มันไม่ใช่ปัญหาที่เราสนใจจะแก้

ลองพิจารณาตัวอย่าง ปัญหาการจราจร ต่อไปนี้

ไม่ใช่ปัญหา

คนมักจะพูดว่า ปัญหาการจราจรคือ “รถติดมาก” หรือ “เสียเวลากับการเดินทางมาก” ถ้าพูดแค่นี้ ก็ต้องบอกว่า “รถติดมาก” หรือ “เสียเวลากับการเดินทางมาก” นี้ไม่ใช่ปัญหาจราจร เพราะ ไม่มีขนาดที่วัดได้คือ ไม่บอกว่ารถติดมากแค่ไหน และไม่ได้บอกว่า ติดอย่างไร ทำให้มองไม่เห็นทางออกว่าจะแก้ปัญหาการจราจรนี้อย่างไร และไม่ว่าทำอะไรลงไป ก็ไม่มีอะไรยืนยันได้ว่า ปัญหาการจราจรได้ถูกแก้ไขแล้ว

ปัญหาตัวจริง

การจราจรโดยธรรมชาติคือการเคลื่อนย้ายสรรพสิ่งซึ่งส่วนใหญ่คือคนโดยใช้ยานพาหนะต่างๆผ่านระบบจราจรเท่าที่มีอยู่ เรามีความมุ่งหวังว่าอย่างน้อย สรรพสิ่งในยานพาหนะทั้งหมดในระบบจราจร ควรจะมีอัตราการเคลื่อนตัวไม่น้อยกว่า 50 กม.ต่อชม. แต่ปรากฏว่ายานพาหนะบนถนนโดยเฉลี่ยเคลื่อนตัวไปได้เพียง 30 กม.ต่อชม. ดังนั้นปัญหาการจราจรของเราคือ อัตราการเคลื่อนตัวของยานพาหนะบนถนนช้าไป 20 กม.ต่อชม. เมื่อถึงตรงนี้ ก็จะเห็นทางออกแล้ว คือ ทำให้การจราจรเคลื่อนตัวเร็วขึ้น อีก 20 กม.ต่อชม. ไม่ว่าจะทำอะไรบ้างที่จะทำให้การจราจรเคลื่อนตัวเร็วขึ้นอีก 20 กม. ก็ใช้ได้ทั้งนั้น นี่คือตัวอย่างของปัญหาที่แท้จริง

ในบทความนี้มุ่งชี้ให้เห็นถึงการกรองเอาตัวปัญหาที่แท้จริงออกจาก คำพูด คำบ่น หรืออะไรทำนองนี้ ถึงแม้ว่าจะได้พูดถึงการหาทางออกอยู่บ้าง แต่การหาทางออก ถึงขั้นลงมือปฏิบัตินั้นไม่ใช่เรื่อง ง่ายๆอย่างที่พูดในบทความนี้

บทความต่อไปจะพูดถึง การหาทางออกของปัญหา ซึ่งลักษณะประจำตัวของปัญหา อีก 3 ลักษณะจะส่งผลอย่างยิ่งทำให้การแก้ปัญหาเป็นไปด้วยความยุ่งยาก

ตุลาคม 6, 2009

ลักษณะประจำตัวของปัญหา

Filed under: ว่าด้วยปัญหา — ภูวเดช @ 11:53 am

ลักษณะประจำตัวของปัญหา

เมื่อมองปัญหาได้อย่างภาพจำลองแล้ว ก็จะพบว่าปัญหามีลักษณะประจำตัวดังต่อไปนี้

1. ปัญหาเป็นส่วนหนึ่งของความคิดคน: ปัญหาปัญหาจะไม่เป็นปัญหาเลยถ้าผู้เป็นเจ้าของปัญหานั้น ไม่สนใจว่าผลลัพธ์จะเป็นอย่างไร หรือไม่ตั้งความมุ่งหวังใดๆก่อนหน้านั้น ถ้าสังเกตุให้ดี ภายใต้เรื่องเดียวกัน สถานะการณ์เดียวกัน สำหรับบางคนรู้สึกว่ามันมีปัญหาที่ใหญ่หลวงมากแทบล้มประดาตาย แต่สำหรับคนบางคนมันไม่เห็นจะมีความสลักสำคัญใดๆเลย (ข้อความตรงนี้ขอเน้นว่าเพียงต้องการชี้ให้เห็นลักษณะประจำตัวของปัญหาเท่านั้น ไม่ได้แฝงความหมายโดยนัยเลยไปถึงว่าจะให้ตัดปัญหา,แก้ปัญหาด้วยการไม่สนใจมัน) อีกประการหนึ่ง จากการที่ปัญหาเป็นส่วนหนึ่งของความคิดคน ดังนั้นจึงไม่มีปัญหาใดเกิดขึ้นเอง ปัญหาทุกปัญหา คนเป็นผู้ทำให้เกิดขึ้น

2. ปัญหามีขนาดและทิศทาง: ถ้าเรามองปัญหาที่กำลังประสบอยู่ ในลักษณะตามภาพจำลองข้างต้น ก็จะเห็นว่า เราพลาดเป้าหมายไปในทิศทางใด ด้วยระยะทางเท่าไร ตัวอย่างปัญหาที่จะทำให้เข้าใจเรื่องนี้ง่ายขึ้นคือ ปัญหาประจำตัวของฝ่ายขายคือ ยอดขายเดือนที่ผ่านมาต่ำกว่าเป้าหมายไป 3 ล้านบาท  เมื่อวิเคราะห์ลงไปในรายละเอียด พบว่าจากสินค้า 10 รายการ มีเพียง 2 รายการที่ยอดไม่ถึง สินค้า A ยอดต่ำไป 1 ล้านบาท สินค้า B ยอดต่ำไป 2 ล้านบาท  ยอดขายสินค้า A และ B ก็คือตัวปัญหา ที่มีทิศทาง ต่ำกว่าเป้า ไปด้วยขนาด 1ล้านบาท และ 2 ล้านบาทตามลำดับ

3. ปัญหาชี้ทางออกอยู่ในตัวมันเองเสมอ: ตัวปัญหาที่แท้จริง จะมีทางออกอยู่ในตัวเสมอ ถ้าพูดถึงปัญหาแล้วมองไม่เห็นทางออกแสดงว่าสิ่งที่พูดนั้นไม่ใช่ปัญหา ดังตัวอย่างต่อจากข้อ 1 เมื่อพบว่า ปัญหาคือยอดขายสินค้า A ที่ต่ำกว่าเป้า 1 ล้านบาท และยอดขายสินค้า B ต่ำไป 2 ล้านบาท ทางออกของปัญหานี้ก็จะเห็นได้ง่ายๆคือ ทำยอดขายสินค้า A และสินค้า B ในเดือนถัดไปให้เพิ่มขึ้นอีก 1 ล้านบาทและ 2 ล้านบาทตามลำดับ เพื่อชดเชยกับยอดขายที่ขาดไปในเดือนที่ผ่านมา  ถ้าทำได้เช่นนี้ปัญหาก็จะได้รับการแก้ไขในเดือนถัดไป (ผมยังใช้คำว่า ถ้าทำได้ เพราะในโลกแห่งความเป็นจริง ปัญหาไม่ได้เกิดจากเหตุเพียงเหตุเดียวดังตัวอย่าง แต่จริงๆแล้วปัญหายังมีลักษณะสลับซับซ้อนต่อเนื่องกันหลายแง่มุม ซึ่งจะได้พูดถึงในหัวข้อถัดๆไป)

4. ปัญหาเปลี่ยนแปลงตลอดเวลา: ในขณะที่เรากำลังสังเกตปัญหาใดๆ ปัญหานั้นๆจะไม่ได้หยุดนิ่งเหมือนภาพถ่าย แต่มันเปลี่ยนแปลงไปตามเวลาตลอดเวลาเสมอ ดังตัวอย่างปัญหายอดขายที่กล่าวมาแล้ว อะไรก็ตามที่ทำให้ยอดขายสินค้า A และ B ต่ำกว่าที่ตั้งเป้าหมายไว้ ก็ยังคงทำหน้าที่ของมันตลอดเวลา คือทำให้ยอดขายไม่ถึงเป้าไปเรื่อยๆไม่หยุดไม่หย่อน ผลก็คือยอดขายจะขาดสะสมขึ้นเรื่อยตามเวลาที่เปลี่ยนไป และโดยทั่วๆไป ปัญหาจะเพิ่มขนาดขึ้นตามเวลาที่เนิ่นนานออกไปเสมอ

5. ปัญหามีความซับซ้อน: ไม่มีปัญหาใดๆที่เกิดขึ้นจากสาเหตุเดียว แต่จะเกิดจากหลายเหตุที่เกี่ยวโยงกันอย่างไม่ขาดสาย และปัญหาที่เราสังเกตุเห็นก็จะเป็นหนึ่งในสาเหตุของปัญหายังตรวจไม่พบซึ่งจะต้องเกิดขึ้นในอนาคต โดยลักษณะเช่นนี้ การแก้ปัญหาแท้จริงแล้วเป็นการเปลี่ยนเหตุของเหตุการณ์ที่จะเกิดขึ้นในอนาคต ถ้าแก้ปัญหาให้ถูกวิธีเหตุการณ์ในอนาคตก็จะไม่เป็นปัญหา แต่ถ้าแก้ปัญหาไม่ถูกต้องก็จะกลายเป็นการสร้างปัญหาใหม่ในอนาคตอย่างหลีกเลี่ยงไม่ได้เลย

ทั้งหมดข้างต้นนั้นคือลักษณะประจำตัวของปัญหา ที่จะช่วยให้เราเห็นปัญหาที่แท้จริงได้ และเข้าถึงทางออกในที่สุด

ตุลาคม 5, 2009

ปัญหาคืออะไร ?

Filed under: ว่าด้วยปัญหา — ภูวเดช @ 7:01 pm

คำนำ

เป้าหมายหลักของการประยุกต์ใช้ซอฟท์แวร์ระบบวางแผนทรัพยากรองค์กร (ERP) นั้น คือ การแก้ปัญหาที่องค์กรกำลังประสบอยู่ ถึงแม้งานหลักๆจะเป็นเรื่องเกี่ยวกับระบบสารสนเทศที่ใช้คอมพิวเตอร์ประมวลผล แต่มันก็เป็นเรื่องจำเป็นที่จะต้องเข้าใจให้ตรงกันก่อนว่า ปัญหา ที่เรากำลังพูดถึงและจะแก้นั้น จริงๆแล้วคืออะไร ?

ปัญหาคืออะไร ?

ผมเคยถามคำถามนี้กับหลายๆคน ปรากฏว่าได้คำตอบต่างกันไป ตามแต่ความรู้ ความคิด และประสบการณ์ ของแต่ละคน ถ้าหลายคนยังมีความคิดเกี่ยวกับปัญหากันไปคนละทางอย่างนี้ การแก้ปัญหานั้นก็จะกลายเป็นสิ่งที่ยากยิ่ง

ลองดูภาพข้างล่างนี้

ภาพแสดงความคิดเกี่ยวกับปัญหา

ภาพจำลองแสดงความคิดเกี่ยวกับปัญหา

เมื่อคนเกิดมาก็จะเริ่มที่ จุดเริ่มต้น และเป็นไปโดยธรรมชาติ คนก็จะต้องการบางอย่างหรือหลายอย่าง ต้องการได้สิ่งนั้นสิ่งนี้ ต้องการเป็นอย่างนั้นอย่างนี้ จึงตั้ง เป้าหมาย ขึ้นว่าเมื่อถึงเวลาหนึ่งจะให้ได้ ให้เป็นไปตามที่ต้องการนั้น แต่เมื่อถึงเวลาที่กำหนด ก็กลับพบว่า สิ่งที่เกิดขึ้น ณเวลาที่วัด นั้นไม่ได้เป็นไปตามที่ได้คาดหวังไว้ ด้วยเหตุต่างๆที่ไม่ได้คาดคิดไว้ ทำให้ยังอยู่ห่างจากเป้าหมายไป เมื่อรู้ตัวก็พยายามแก้ไข พยายามทำทุกวิถีทางเท่าที่ปัญญามี เพื่อให้เข้าใกล้เป้าหมายมากที่สุด บางคนทำได้ บางคนทำไม่ได้ บางคนยิ่งทำก็ยิ่งห่างเป้าหมายไปทุกทีๆ ความแตกต่างระหว่าง เป้าหมาย กับ สิ่งที่เกิดขึ้น ณเวลาที่วัด นี้แหละคือตัว ปัญหา

บทความต่อๆไปจะกล่าวถึง ลักษณะประจำตัวของปัญหา ซึ่งจะนำทางไปสู่การจับประเด็นปัญหาหรือมองให้เห็นตัวปัญหาที่แท้จริงของเรื่องต่างๆ และท้ายที่สุดก็จะไปถึงการกำหนดทางออกเพื่อการแก้ไขปัญหานั้น

กันยายน 14, 2009

ประโยชน์จากการใช้ Adempiere

Filed under: ข้อมูลทั่วไป — ภูวเดช @ 4:50 pm

Adempiere เป็นระบบซอฟท์แวร์ ERP ที่มี CRM และระบบงานอื่นๆอีกหลายระบบ รวมอยู่ในระบบเดียวกัน สิ่งที่ Adempiere ทำได้ดีที่สุดคือ ทำให้องค์กรธุรกิจของผู้ใช้ เป็นองค์กรธุรกิจอัตโนมัติ ที่มีข้อมูลสำหรับการดำเนินงานอย่างสมบูรณ์ โดยไม่มีข้อจำกัดเรื่องเวลา, ระยะทาง และลักษณะทางภูมิศาสตร์

นั่นคือประโยชน์ที่จะเกิดขึ้นจากการใช้ Adempiere ก็คือ ประโยชน์ที่องค์กรได้จากการเป็นองค์กรอัตโนมัติที่มีข้อมูลสมบูรณ์ โดยไม่มีข้อจำกัดข้างต้น ฟังดูก็ง่ายๆ แต่อัตโนมัติแล้วดีอย่างไร ? มีข้อมูลสมบูรณ์ดีตรงไหน ?

คำถามข้างต้นนั้นมักจะถูกถามกันขึ้นมาในวงสนทนาเสมอๆ เพื่อจะตอบคำถามนั้นลองนึกถึง ภาพของพนักงานขายประจำบริษัท ซึ่งทำหน้าที่รับโทรศัพท์เพื่อรับคำสั่งสินค้าจากลูกค้า โดยปกติก็จะคอยรับโทรศัพท์จากลูกค้า แล้วก็เจรจาต่อรองกับลูกค้าด้วย ข้อมูลสินค้าต่างที่อยู่ในเอกสารตั้งไว้ตรงหน้า ซึ่งมักจะเป็น รายการสินค้า, จำนวนสินค้านั้นในสต็อค, และราคาของสินค้านั้น ข้อมูลทั้งหมด อาจถูกปรับปรุงครั้งสุดท้ายเมื่อเช้าวันนี้ และเป็นข้อมูลที่ตายตัวอยู่บนกระดาษ ดูๆก็ไม่น่าจะมีปัญหาอะไร ลูกค้าถามมาก็ตอบไป, เสนอราคา, ต่อรองกันบ้างตามสมควร, แล้วก็นัดส่งของ, ทำรายการส่งแผนกอื่นๆที่เกี่ยวข้อง ก็เท่านั้นเอง

แต่ ในความเป็นจริงนั้นวุ่นวายกว่านี้มาก ลูกค้าอาจจะต้องการสินค้าหลายรายการ ซึ่งอยู่ในหลายๆหน้าของรายการสินค้า ลูกค้าอาจจะต้องการจำนวนมากกว่าที่แสดงไว้ในสต็อคสินค้า และขอราคาพิเศษเพราะสั่งซื้อเป็นจำนวนมาก และต้องการของด่วนมาก เมื่อเป็นเช่นนี้ข้อมูลที่พนักงานขายคนนั้นมีอยู่ในมือจะไม่พอที่จะปิดการ ขายครั้งนี้ได้ ต้องโทรศัพท์ถามเจ้าหน้าที่คลังสินค้าว่าสินค้าตามรายการที่ลูกค้านั้นจริงๆ มีอยู่เท่าไร และอาจจะต้องติดต่อฝ่ายจัดซื้อเพื่อขอให้สั่งซื้อสินค้าเพิ่ม และกำหนดเวลาสินค้าเข้า นอกจากนี้อาจต้องติดต่อฝ่ายการเงินขอข้อมูลเครดิตลูกค้าและขออนุมัติราคา โดยปกติเรื่องจึงมักออกมาในแบบที่พนักงานขายรับรายการสินค้าที่ลูกค้า ต้องการ แล้วทำใบเสนอราคาให้ภายหลัง อาจจะเป็นชม.ต่อมาหรือวันถัดไปก็แล้วแต่ลูกค้าจะอนุมัติและออกใบสั่งซื้อ พนักงานขายก็เพียงแต่ทำสำเนาใบสั่งซื้อนั้นให้แผนกต่างๆ ที่เกี่ยวข้องแล้วก็หมดหน้าที่ เรื่องต่อจากนั้นจะเป็นความรับผิดชอบของแผนกอื่นไป

จากตัวอย่างข้างต้นนั้นแน่ๆ ว่าการขายนั้นใช้เวลาเป็นชม., เป็นวัน หรือหลายๆวัน นั่นคือสินค้าคงต้องอยู่ในสต๊อคไปอีกอย่างน้อยก็เท่ากับเวลาที่ทอดยาวออกไปนั้น ผลก็คือ เงินทุนหมุนเวียนก็จะเข้าไปอยู่ในสินค้าคงคลังมากขึ้น โอกาสการขายน้อยลง ถ้ามีคู่แข่งที่สามารถทำได้เร็วกว่าเรา คู่แข่งก็อาจจะได้การสั่งซื้อจากลูกค้าของ เราไปแทน

ถ้าระบบงานของเราอัตโนมัติ การขายครั้งนี้คงจะปิดได้ในครั้งแรกที่ลูกค้าโทรเข้ามา เพราะพนักงานขายมีข้อมูลทุกอย่างที่จำเป็นพร้อมอยู่ในคอมพิวเตอร์ตรงหน้านั้น ถ้าทำระบบให้ดีกว่านั้นก็เป็นไปได้ว่าลูกค้าจะเข้ามาที่ระบบรับคำสั่งซื้อของเราจากที่ทำงานของลูกค้า สร้างคำสั่งซื้อ, กำหนดวันส่งของที่ต้องการได้เอง

ตัวอย่างนี้ยังเป็นเพียงบางส่วนของประโยชน์เกิดขึ้นจากการใช้ Adempiere ทำให้บริษัทเป็นบริษัทอัตโนมัตเท่านั้น ยังมีประโยชน์อื่นๆอีกผู้เขียนจะค่อยๆนำมาเสนอไว้ต่อไป

กันยายน 13, 2009

การประยุกต์ใช้ Adempiere

Filed under: การวางระบบ ERP — ภูวเดช @ 8:58 am

Adempiere ถูกออกแบบมาให้ สามารถนำไปใช้งานได้เร็ว ตัวผลักดันสำคัญในเรื่องนี้คือ คุณลักษณะที่สำคัญ ของ Adempiere อันหนึ่งซึ่งทำให้คุณสามารถ เปลี่ยนแปลงอะไรก็ได้ แม้จะอยู่ในขั้นใช้งานจริงแล้ว ดังนั้นจึงไม่จำเป็นต้องวิเคราะห์ และปรับแต่งระบบอย่างละเอียดนัก เพราะว่าถ้าคุณลืมบางอย่าง หรือตั้งค่าอะไรผิดไป คุณก็เปลี่ยนแปลง แก้ไขมันได้ทุกเมื่อ มีอยู่หลายโครงการ ที่ต้องมีการเปลี่ยนแปลง ขนานใหญ่ ในขณะที่กำลังจะนำออกใช้งาน แต่โครงการก็สำเร็จได้ด้วยดี

ข้อมูล ต่อไปนี้ เป็นคำแนะนำเบื้องต้น สำหรับการนำ Adempiere ไปใช้งานอย่างรวดเร็ว และง่ายๆ แต่คำแนะนำ ทั้งหมดนั้น เป็นคำแนะนำสำหรับโครงการทั่วๆไปด้วย ไม่ใช่จะใช้ได้กับ Adempiere อย่างเดียวเท่านั้น เพียงแต่ ว่า Adempiere ทำให้งานมันง่ายขึ้นเท่านั้น

1. สร้างระบบต้นแบบ


ซอฟท์แวร์ ทุกตัวนั้น มีวิธีนำไปใช้งานให้ได้ผลตามแบบของมันเอง ถ้าคุณบังคับให้ SAP ทำงานให้เหมือน Oracle Apps หรือเหมือนวิธีทำงานที่คุณกำลังใช้อยู่ คุณก็กำลังเพิ่มความเสี่ยงที่จะล้มเหลว ความล้มเหลวที่เกิดขึ้นกับการประยุกต์ใช้ Oracle, SAP, หรือ PeopleSoft, เป็นต้นนั้น ส่วนใหญ่เกิดขึ้นจากสาเหตุในทำนองนี้ และการล้มเหลวหลายครั้งไม่ได้มีสาเหตุมาจากตัวซอฟท์แวร์ เลย แต่มาจากความมุ่งหวังที่เกินจริง และทัศนคติที่ไม่อ่อนตัวของผู้ดำเนินโครงการ หรือของลูกค้า

ดังนั้น ,เพื่อความสำเร็จ, คุณจำเป็นต้องมีระบบทดลอง สำหรับการเรียนรู้วิธีที่ดีที่สุดที่จะให้ได้วัตถุประสงค์ ของคุณ และเพื่อลองทางเลือกอื่นๆที่ต่างออกไป ถ้าคุณข้ามขั้นตอนนี้ ระบบใช้งานของคุณก็จะกลายเป็น ระบบต้นแบบไป แต่กรณีของ Adempiere เรื่องนี้จะไม่มีผล Adempiere จะยังคงทำงานได้อย่างดี คุณเพียงแต่ จะมีข้อมูลทดลองอยู่ในระบบเท่านั้น

2. ใช้ Use Cases


“Use Case” เป็น diagram เพื่อจำลองกระบวนการทางธุรกิจ เช่น การรับคำสั่งสินค้า, การรับเงิน, การส่งสินค้า เป็นต้น โดยพื้นฐาน “Use Case” เป็นรายการของสิ่งต่างๆที่คุณทำในธุรกิจของคุณ สร้างมันขี้นมาในความสำคัญ 3 ระดับคือ

(1) วิกฤต – กระบวนการพื้นฐานของธุรกิจ ซึ่งจำเป็นในการดำเนินธุรกิจของคุณ
(2) สะดวก – กระบวนการที่ทำให้ธุรกิจของคุณเร็วขึ้น, ง่ายขึ้น, มีประสิทธิผลมากขึ้น
(3) สนับสนุน – กระบวนการที่ช่วยให้คุณตัดสินใจได้ถูกต้อง เช่นการออกรายงาน, การวิเคราะห์ เป็นต้น

แต่ก็น่าแปลกใจ ที่มีบางโครงการให้ระดับความสำคัญที่ตรงกันข้ามโดยสิ้นเชิง ตือเน้นให้ความสำคัญที่ ระบบช่วยตัดสินใจ (3) สูงสุด แต่ (3) นั้นจะช่วยตัดสินใจได้ก็ต้องมีข้อมูลในระดับดีเสียก่อน ซึ่ง (1) นั้น จะช่วยให้คุณมีข้อมูลในระดับดีพอที่ (3) จะช่วยตัดสินใจได้ ในเรื่องนี้ลองพิจารณาดูให้ดีว่ามี (3) อยู่กี่ระบบ ที่ไม่สามารถจะคอยให้เริ่มระบบใช้งานเสียก่อนได้

ดังนั้น, ระบบต้นแบบจะสิ้นสุดเมื่อใด ก็ขึ้นกับระดับความเสี่ยงที่ยอมได้ของคุณ, อย่างน้อยที่สุดระบบ (1) ทั้งหมดต้องทำงานได้อย่างดี เมื่อนั้นคุณจะได้ความรู้สึกที่ดีขึ้น และมีความคิดดีๆ ว่ามีอะไรบ้าง ที่คุณจะทำได้ในระดับ (2) และ (3) เมื่อมีระบบในกลุ่ม (1) ทำงานได้แล้วเท่านั้น, คุณจึงจะแน่ใจได้ว่า คุณจะไม่ทำให้เกิดผลในทางลบขึ้น

3.ใช้การพัฒนาแบบซ้ำๆ (Iterative Development)


ลองพิจารณาวงจรนี้:
1. ตั้งเป้าหมายเล็กๆ,
สำเร็จได้ใน 2-3 วัน
2. ทำให้มันทำงานได้
3. เรียนรู้จากมัน เพื่อการพัฒนาในรอบต่อไป

เทียบกับอีกวิธีหนึ่ง, วิธีทำครั้งเดียวทั้งหมด คือทำให้ทุกๆ อย่างทำงานได้ในครั้งเดียว วิธี นี้เป็นเป้าหมาย ที่สำเร็จได้ยาก เพราะต้องมีบางอย่างที่คุณไม่สามารถจะทำให้มันถูกต้องได้ในครั้งแรก ทั้งระบบจึงยังคง ทำงานไม่ได้ ดังนั้นขั้นตอนเล็กๆ ก็จะทำให้เกิดความสำเร็จเล็กๆ ได้ง่ายๆ หรือถ้าเกิดความผิดพลาดขึ้น ก็แก้ไขได้รวดเร็ว

4.ให้ผู้ใช้ทุกคนมีส่วนร่วมตั้งแต่เริ่ม


การเปลี่ยนแปลงนั้น หลายๆครั้งก็ไม่เป็นที่ยอมรับกันนัก หลายๆโครงการเน้นที่ “super users” หรือ “ตัวแทนผู้ใช้” เท่านั้น, ซึ่งมักจะจำกัดการกระทบกระเทือน กับการปฏิบัติงานตามปกติ อันนี้จะใช้ได้ ในระดับหนึ่ง แต่ทางที่ดีต้องให้ทุกคนมีส่วนร่วมเร็วที่สุดเท่าที่จะทำได้

ใน ช่วงสิ้นสุดการใช้ต้นแบบเป็นจังหวะเหมาะ สำหรับการนำเสนอเป็นการทั่วไป ตรงนี้ผู้ใช้สามารถใช้ หรือทดสอบได้ โดยไม่มีผลลบติดตามมาภายหลัง และคุณจะได้การยืนยันอย่างอ้อมๆ ว่าทุกระบบในกลุ่ม (1) นั้นยอมรับได้แล้ว ดังนั้นขอให้จัดการนำเสนอ คอมเพียร์ ในทุกๆที่ ที่คุณและ super users ของคุณ สามารถแสดง solution ของคุณได้ และให้ทุกๆคนได้ดูและทดลองด้วยตัวของเขาเอง

เรื่องจริงในทางปฎิบัติ


อย่า คอยให้ทุกอย่างได้รับการแก้ไข สิ่งนั้นอาจไม่เกิดขึ้นเลย ดังนั้นหลังจากคุณจบขั้นตอนระบบต้นแบบ แล้วก็เริ่มใช้ระบบใหม่ด้วยข้อมูลจริง
ความ ท้าทายในช่วงนี้คือ การย้ายข้อมูล (แต่ต้องจำไว้ว่าคุณต้องแก้ปัญหาวิกฤตอื่นๆได้หมดแล้ว) จากระบบเดิมเข้าไปใน Adempiere และทำให้การปรับแต่งที่จำเป็นทั้งหลายทำงานได้

ส่วน สำคัญอันหนึ่ง คือ การจัดให้มีการประชุมกลุ่มย่อยเพื่อทดลองใช้งานอย่างสม่ำเสมอ ซึ่งจะให้โอกาส ผู้ใช้ได้เรียนรู้และทดลองใช้ระบบในแง่มุมต่างๆได้ จัดให้มีการประชุมเช่นนี้อย่างน้อย 3 ครั้ง ซึ่งจำนวนครั้ง จะมากน้อยเท่าใดนั้น ก็ขึ้นอยู่กับความสลับซับซ้อนของโครงการของคุณ การประชุมนี้ควรจะไม่นานนัก และช่วยกระจายข่าวและทำให้การปรับเปลี่ยนระบบง่ายขึ้น

การประชุมนี้ยังเป็นการทดสอบกระบวนการ backup และกระบวนการกู้ระบบของคุณได้อย่างดี นอกจากนี้ ยังมีอีกเรื่องหนึ่งที่ควรจะได้มีการฝึกฝนเอาไว้ คือการ upgrade และการติดตั้ง patch ถึงแม้ Adempiere จะทำให้เรื่องเหล่านี้ง่ายแล้ว แต่ก็ยังจำเป็นที่จะต้องกำหนดกระบวนการไว้และฝึกหัดให้คุ้นเคย

การนำระบบไปใช้งานจริง


คำถามที่สำคัญอันหนึ่งคือ : ขณะนี้ระบบยังอยู่ในขณะทดลองใช้ขนานกับระบบเดิมหรือไม่? ทุกคนรู้ว่า การทดลองใช้ขนานกับระบบเดิมนั้น หมายถึงการทำงาน 2 เท่า ดังนั้นในขณะทำการประชุมกลุ่มย่อย เพื่อทดลองใช้งาน ให้สอบทานกับผู้ใช้ว่า เขาเหล่านั้นรู้สึกสบายใจที่จะเปลี่ยนระบบแล้วหรือยัง

ระบบขณะใช้งานจริง


ขณะนี้ระบบของคุณก็อยู่ในการใช้งานจริงแล้ว, คุณจะมีเวลาและความรู้พอที่จะเริ่มต้นการตรวจสอบ ว่า
Adempiere สามารถช่วยในด้านกลยุทธ์ทางธุรกิจของคุณอย่างไร

อัน นี้จะช่วยให้คุณได้ใช้ความสามารถต่างๆของ Adempiere ได้ดีขึ้น เพราะคุณเข้าใจในระบบมากขึ้น ไม่ว่าคุณจะวางแผนอย่างระมัดระวังแค่ไหน, ก็ยังจะต้องพบปัญหาอยู่บ้างไม่ช้าก็เร็ว แต่คุณก็ไม่ต้อง ตระหนกตกใจไป เพราะการประชุมกลุ่มย่อยเพื่อทดลองใช้ระบบ จะเป็นพื้นฐานอย่างดี ในการจัดการ ปัญหาเหล่านั้น

สถาปัตยกรรมของ Adempiere

Filed under: ข้อมูลทางเทคนิค — ภูวเดช @ 8:42 am

ชั้นต่างๆของซอฟท์แวร์

Adempiere เป็น application ที่ถูกสร้างขึ้นด้วยภาษา Java 100% เวอร์ชั่นปัจจุบันยังคงใช้ Oracle และ PostgreSQL เป็น DBMS

Adempiere มีลักษณะเป็น Client-Server ส่วนที่เป็น Client ก็เขียนด้วย Java ทำให้สามารถทำงาน ได้บนคอมพิวเตอร์หลายชนิด ทั้ง PC ที่ใช้ Windows และ Linux, และทำงานได้บน Mac, SUN เป็นต้น ตัว Client สื่อสารกับ DBMS บน Server ด้วย thin JDBC และติดต่อกับ Application Server โดยผ่าน RMI และ Client เข้าถึง Server ด้วยการส่งผ่านข้อมูลของอินเตอร์เน็ต นอกจากนี้ยังสามารถเข้าถึง Server ของ Adempiere ด้วย HTML ได้ ดังนั้นจึงสามารถใช้ browser เช่น IE, FireFox, เข้าถึงฟังก์ชั่นต่างๆ ของ Adempiere ได้

ส่วนทางด้าน Apllication Server ก็ใช้เทคโนโลยี่ J2EE และใช้ JBoss เป็นโครงสร้างพื้นฐานของ Server ส่วนประกอบที่ Server มีดังนี้
1. Adempiere Aplication Server ซึ่งประกอบด้วย Accounting Server, Request Server, Utility Server
2. Web Server และ Servlet Container ซึ่งใช้ Tomcat
3. EJB container ซึ่งใช้ JBoss
สถาปัตยกรรม แบบนี้ทำให้ได้ข้อดีคือ สามารถบริหาร Server ได้โดยใช้ web interface และสามารถเพิ่มฟังก์ชั่นขยายเพิ่มเติม และสามารถเพิ่ม application J2EE อื่นๆเข้าไปได้อีก

Data Dictionary

Application ส่วนใหญ่ถูกพัฒนาขึ้นด้วยกระบวนการออกแบบ, เขียนโปรแกรม, ทดสอบกันทุกๆหน้าจอ แต่ Adempiere ถูกสร้างขึ้นด้วยแนวคิดที่ก้าวหน้ากว่า โดยใช้ active data dictionary หรือเรียกันในอีกชื่อหนึ่งคือ คลังข้อมูลสารสนเทศ (information repository)

ตัว data dictionary ของ Adempiere อยู่ที่ชั้น meta-data, และมันรู้วิธีเข้าถึงข้อมูล และวิธีที่ข้อมูลสัมพันธ์กัน ใน data dictionary จะมีนิยามของข้อมูล เช่น type, validation, เป็นต้น, มีวิธีที่ข้อมูลเหล่านั้นจะถูกแสดงผล เช่น แสดงเป็น label บนหน้าจอและในรายงาน, แสดงข้อความ help, แสดงสำดับการแสดงผล และแสดงตำแหน่งสัมพัทธ์เมื่อเทียบกับฟีลด์อื่นๆ เป็นต้น, และมีกฏเกณฑ์ของการแสดงผล กฏเกณฑ์ความปลอดภัยและการเข้าถึงก็ถูกเก็บและดูแลรักษาไว้ที่นี่ การที่ใช้คำว่า ‘active’ ก่อน data dictionary นั้น, หมายความว่า มันจะถูกใช้ในขณะ runtime และมีผลตามเนื้อหาที่เก็บไว้ ตัวอย่างเช่น มัน”รู้”ว่าการขายที่หน้าร้านไม่ต้องมี ระยะเวลาจ่ายเงิน มันก็จะไม่แสดงผลออกมา แต่เมื่อเปลี่ยนชนิดธุรกรรมเป็น การสั่งสินค้ามาตรฐาน, ซึ่งต้องมี ระยะเวลาจ่ายเงิน มันก็จะแสดงผลให้เห็นฟีลด์ ระยะเวลาจ่ายเงิน นั้นโดยอัตโนมัติ

data dictionary นี้เป็นแบบที่ผู้ใช้สามารถเพิ่มเติมเข้าไปได้ และผู้ใช้ก็สามารถเพิ่มกฏเกณฑ์ และข้อมูลสารสนเทศที่ผู้ใช้กำหนดเองเข้าไปได้

ระบบออกรายงาน
โดยปกติใน application ทั่วๆไปนั้น ระบบออกรายงานจะเป็นส่วนที่ถูกแยกออกมาจากระบบงานอื่นๆ แต่ระบบออกรายงานของ Adempiere ซึ่งทำงานอยู่บน data dictionary นั้น รวมเป็นระบบเดียวกันกับระบบงานอื่นๆ ทุกรายงานที่ถูกรายงานออกมา สามารถดูได้บนจอก่อนที่จะส่งไปออกเครื่องพิมพ์ หรือสร้างออกมาเป็นไฟล์รูปแบบต่างๆ เช่น Excel, HTML, XML, Word และ PDF ในรายงานทุกรายงาน ผู้ใช้สามารถเจาะลึกลงไปถึงข้อมูลทุกข้อมูล ที่รายงานนั้นใช้อ้างอิง

กฏ เกณฑ์ความปลอดภัยทั้งหมดจะถูกตรวจสอบโดยอัตโนมัติ อันนี้รวมไปถึงการเข้าถึงตารางข้อมูล, คอลัมน์ในตาราง และแม้แต่ระเบียนข้อมูล เช่น ไม่ใช่บัญชี 1234 หรือเฉพาะพนักงานขายชื่อสมชาย ผู้ใช้สามารถจะป้องกันไม่ให้ผู้ใช้อื่นออกรายงานเกี่ยวกับข้อมูลบางข้อมูล หรือป้องกันไม่ให้พิมพ์หรือส่งออกข้อมูลเป็นไฟล์ได้

Adempiere มีเครื่องมือออกรายงานอยู่ 4 อย่างคือ
1. รายงานแสดงรายการข้อมูล
2. ฟอร์มต่างๆ
3. รายงานทางการเงิน
4. เอกสารสรุปยอดบัญชี
รายงาน แสดงรายการข้อมูลนั้นจะมีอยู่ทุกหน้าต่างและเมนู และมีพารามิเตอร์ที่กำหนด ถูกเลือกไว้ให้แล้ว ซึ่งผู้ใช้ก็ยังสามารถแก้ไขพารามิเตอร์เหล่านั้นได้ด้วย

ฟอร์ม ต่างๆ เช่นใบแจ้งหนี้ เป็นต้น ช่วยให้ผู้ใช้กำหนดรูปแบบการพิมพ์ข้อมูลได้ คอมเพียร์สามารถใช้ฟอร์มหลายรูปแบบได้ เช่น ในหน่วยงานหนึ่งอาจใช้ใบแจ้งหนี้ได้หลายรูปแบบ สำหรับลูกค้าเฉพาะราย เป็นต้น

สำหรับ รายงานทางการเงินนั้น, ผู้ใช้จะกำหนดชุดบรรทัดและคอลัมน์ แล้วรวมทั้งหมดนั้นเข้าเป็นรายงานทางการเงินใหม่ได้ พร้อมทั้งให้เลือกพารามิเตอร์ได้อีกหลากหลาย

เอกสารสรุปยอดบัญชี ให้ผู้ใช้สามารถแสดงรายการธุรกรรม ของบัญชีหรือเพียงส่วนหนึ่งของบัญชี ณ วันที่กำหนด หรือช่วงระยะเวลาที่กำหนดได้ พร้อมทั้งยอดยกมาและยอดคงเหลือ ณ วันสิ้นสุด

การปรับแต่งรายงาน
Adempiere แยกมุมมอง (view) จาก โมเดล (model) ข้อมูลจากโมเดลใน Adempiere นั้น ผู้ใช้สามารถเลือกวิธี แสดงผล/ทำข้อสรุป/เรียงลำดับ เองได้ ในองค์กรธุรกิจนั้น มักจะมีความเห็นต่างกันอยู่เสมอ ในเรื่องว่า รายงานแต่ละรายงานควรจะออกมาในลักษณะใด Adempiere อนุญาตให้ผู้ใช้ สามารถให้นิยามรูปแบบรายงานต่อไปนี้ได้

1. คอลัมน์ในรายงาน
2. ลำดับคอลัมน์
3. การเรียงรายงาน
4. หัวเรื่องของคอลัมน์
5. ผลรวม, ค่าน้อยที่สุด, ค่ามากที่สุด, ค่าเฉลี่ย เป็นต้น รวมทั้งจำนวนหน้ารวม
6. การรวมกลุ่ม
7. Pie Chart
8. Bar/Line Chart

ภาษาของรายงานจะเป็นไปตามภาษาของผู้ใช้ แต่ละผู้ใช้สามารถมีภาษาต่างกันได้

การ เลือกข้อมูลจะทำผ่านพารามิเตอร์ของรายงานเมื่อเริ่มต้นรายงาน หรือผ่านการสอบถาม, ช่วยให้ผู้ใช้ใส่เงื่อนไขรายงานได้ในรูปแบบ “สอบถามโดยตัวอย่าง”

หน้าต่อไป

Theme: Rubric. บลอกที่ WordPress.com .

Follow

Get every new post delivered to your Inbox.