เมื่อวานซืนอยู่ดี ๆ ผมก็โม้เรื่อง SAP ขึ้นมาอย่างไม่มีปี่ไม่มีขลุ่ย (อ้างอิง: เคยใช้ SAP กันมั้ย?) จึงถูกทักท้วงจากผู้อ่านเป็นอย่างมาก เพราะเล่นไม่ได้เท้าความอะไรเลย มาถึงก็โม้เอาโม้เอา

วันนี้เลยมาแก้ตัวครับ เห็นว่าใคร ๆ ก็สนใจอยากจะทราบรายละเอียดของ SAP งั้นหัวข้อนี้ก็มาโม้อย่างย่อกันดีกว่า

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

ถ้าองค์กรไหนซื้อครบทุกโมดูล แสดงว่าองค์กรนั้นธุรกิจใหญ่มาก ๆ ๆ ๆ ๆ แล้วก็รวยอภิมหึมามหาเศรษฐีมาก ๆ ด้วย

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

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

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

ลักษณะการทำงานของซอฟต์แวร์ SAP จะเหมือนกับเกมส์ออนไลน์ดัง ๆ ทั่วไป คือที่เครื่อง Client จะต้องลงตัว GUI เอาไว้ เพื่อเอาไว้ติดต่อสื่อสารกับเครื่อง Application Server ข้อมูลทั้งหมดจะเก็บอยู่ที่ Database Server ซึ่งต่อเชื่อมกับ Application Server อีกที ซึ่งโดยสถาปัตยกรรมแบบนี้น่าจะเรียกว่า Multitier

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

ถ้าจะให้อธิบายคุณลักษณะของ SAP คงอธิบายได้เป็นร้อย ๆ หัวข้อ ดังนั้นผมขอเลือกอธิบายคุณลักษณะเด่น ซึ่งนักพัฒนาซอฟต์แวร์อย่างเราควรจะสนใจดีกว่า …

Compile vs Interpret

ซอฟต์แวร์ SAP เป็นซอฟต์แวร์ที่ถูก Compile ให้อยู่ในรูปของ EXE เรียบร้อยแล้วครับ แต่ตัวของมันเองจะเก็บโค้ดโปรแกรม ABAP เอาไว้ในรูปของซอร์สโค้ด แถมเก็บซอร์สโค้ดเอาไว้ในตารางข้อมูลในฐานข้อมูลซะด้วย และทุกครั้งที่มันจะเรียกใช้โปรแกรมที่เขียนด้วย ABAP มันจะนำเอาซอร์สโค้ดดังกล่าว มาทำการ Interpret เพื่อใช้งานทุกครั้งไป

Compile = การแปลภาษาคอมพิวเตอร์ทุกบรรทัดที่มนุษย์เข้าใจ ให้กลายเป็นภาษาคอมพิวเตอร์ที่เครื่องคอมพิวเตอร์เข้าใจในคราวเดียว แล้วให้คอมพิวเตอร์เอาภาษาคอมพิวเตอร์ที่แปลแล้วดังกล่าว ไปทำงานต่อไป

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

Interpret = การแปลภาษาคอมพิวเตอร์ที่มนุษย์เข้าใจ ให้กลายเป็นภาษาคอมพิวเตอร์ ทีล่ะบรรทัด แล้วให้คอมพิวเตอร์ทำงานทันที ตามบรรทัดที่แปลเสร็จ

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

การติดตั้งฐานข้อมูล

บางคนอาจจะเข้าใจว่า SAP มีฐานข้อมูลยี่ห้อของตัวเอง แต่จริง ๆ แล้วไม่ใช่หรอกครับ เพราะ SAP สามารถติดตั้งในฐานข้อมูลยี่ห้อดัง ๆ อย่าง Oracle หรือ SQL Server ได้ ส่วนฐานข้อมูลอื่นผมไม่รู้นะ ว่าได้หรือเปล่า

โดย SAP เองก็มี Relational Database Management System ในตัวของมันเองเหมือนกัน ในขณะที่ตัวมันเองก็พึ่งกลไก Relational Database Management System ของ Oracle หรือ SQL Server ด้วย ประมาณว่าแกครึ่งนึงชั้นครึ่งนึง อะไรประมาณนั้น

การกระจายสมดุล

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

กลไกการเข้าถึงข้อมูลใน SAP แบบที่คิดว่าใช่

กลไกในภาพข้างบนอธิบายขั้นตอนง่าย ๆ ครับ คือให้ระบบอ่านข้อมูลลูกหนี้ 1 คน เพื่อแสดงผลที่ Client, ระบบก็จะไปอ่านข้อมูลจากตารางที่ชื่อว่า KNA1 ออกมาให้ ก็เท่านั้น ดูแล้วไม่มีอะไร แต่เรื่องจริงมันเป็นแบบภาพข้างล่างนี้ …

กลไกการเข้าถึงข้อมูลใน SAP แบบที่จริง ๆ เป็น

เรื่องจริงก็คือตาราง KNA1 ไม่มีตัวตนในฐานข้อมูลหรอกครับ มันเป็นตารางที่ถูกสร้างขึ้นใน Virtual Memory ส่วนตารางที่ใช้เก็บข้อมูลลูกหนี้จริง ๆ นั้น กระจายอยู่ในตารางต่าง ๆ ในฐานข้อมูลจริง แถมชื่อตารางก็ไม่สื่ออีกต่างหาก (ตัวเลขตัวอักษรอะไรก็ไม่รู้ ปน ๆ กันหมด)

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

ดังนั้นการกระจายสมดุลของข้อมูลไปยังตารางต่าง ๆ จึงเป็นทางเลือกที่ดีกว่ามาก ๆ ซึ่งทางผู้สร้าง SAP เองก็คงไม่ต้องการให้ใครไปยุ่งวุ่นวายกับตารางใน Physical Database มากนัก เพราะถือเป็นพื้นที่หวงห้ามป้องกันสำหรับให้กลไกระดับล่างของ SAP เป็นผู้จัดการ ดังนั้นจึงจำเป็นต้องมีกลไก Logical Database ขึ้นมา เพื่อเป็นตัวกลาง สำหรับให้โปรแกรมที่เขียนขึ้นด้วยภาษา ABAP เข้าถึงตารางข้อมูล Alias เหล่านั้น ใน Logical Database แทน

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

โดยสรุปแล้ว SAP ก็คือซอฟต์แวร์ตัวนึงจากอีกมากมายหลายตัว ที่หากเรามีโอกาสได้เรียนรู้มัน เราก็ควรเรียนรู้มันไว้ครับ

[tags]SAP,ABAP,คอมพิวเตอร์,ซอฟต์แวร์,การสร้างซอฟต์แวร์,ERP[/tags]

Related Posts

18 thoughts on “อธิบาย SAP อย่างย่อ

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

  2. เป็นอะไรที่น่าสนใจมากๆ

    พี่ไท้:กำลังสนุกเลยครับ มานั่งรอภาคสามครับ

    crucifier : ถ้าสนใจผมมี self training อยู่นะครับ ประมาณ CD 2 แผ่น(ได้มาจากรุ่นพี่อีกทีนึง) แต่ผมไม่ใช่คน SAP นะครับแค่สนใจเฉยๆ (เลยยังไม่ได้เข้าไปดู เลยแม้แต่น้อย ^^!)

  3. เเปิดโลกกว้างไปอีกนิด ดูแล้วมันเยอะจริงๆ
    ใครเคยมีประสบการณ์implement SAPบ้างครับ

  4. patr — สนใจมากๆ เลยครับ บางทีอาจทำให้ผมได้ออกไปไกลกว่าสวนมะพร้าวที่เป็นอยู่ก็ได้ (ออกมานอกกะลาได้แล้ว)

    เจอกันที่ไหนดี เดี๋ยวผมเลี้ยงข้าวเลย

  5. เป็นความรู้พื้นฐานที่ดีมากๆสำหรับคนที่ไม่มีโอกาสสัมผัส SAP

    เท่าที่ติดตาม SAP ก่อตั้งมาหลายสิบปีแล้ว จากทีมพนักงานไอบีเอ็มที่ลาออกมา ทำซอฟท์แวร์ขายแข่งกับเมนเฟรม สมัยนั้นเค้ายังไช้ mainframe กับ dumb terminal อยู่ ในขณะที่ SAP ใช้ client server ที่มีความยืดหยุ่นกว่า เลยกลายเป็นที่นิยมของตลาดในยุคนั้นมาบัดนี้

    คราวนี้ สถาปัตยกรรม เริ่มเปลี่ยนไป คนต้องการให้ SAP เปิดโครงสร้างระบบมากขึ้น อย่างเช่น อนุญาติให้ใช้ภาษาอื่นติดต่อกับระบบ และการสร้าง UI ผ่าน web standards SAP ก็เลยสร้างแพลตฟอร์ม netweaver เพื่อให้ผู้พัฒนาสามารถเขียนจาวาติดต่อกับระบบได้

    ผมไม่แน่ใจว่าเมืองไทยมีคนใช้ Netweaver มากน้อยขนาดไหน อยากฟังความเห็นคนพัฒนาเหมือนกัน

  6. เป็นอย่างที่คุณ crucifier กล่าวมาครับ ชัวร์ป้าด

    ไม่มีภาคสามแล้วคุณ patr หมดไส้หมดพุงแล้ว ^o^

    เห็นคุณ m3rLinEz แวะเข้ามาอ่านหลายทีแล้ว ขอบคุณที่เข้ามาเม้นท์ครับ ^-^

    คนมีประสบการณ์ทำ SAP มักทำงานยุ่งมาก จนไม่มีเวลามาอ่านบล็อกหรอกครับคุณ memtest

    คุณ xinexo ตอนนี้เอกไปทางซอฟต์แวร์ประเภท organizer แล้วกระมังครับ คงมีโอกาสกับซอฟต์แวร์ธุรกิจแบบนี้ไม่มาก ยกเว้นจะลาออกไปทำกับบริษัทเหล่านี้ (อ้าว ๆ เพิ่งย้ายงานไม่ใช่เหรอเนี่ย?)

    เคยเห็นผู้ร่วมงานใช้ Dot Net Framework ต่อเชื่อมกับ SAP แล้วครับคุณ weerasak เห็นเขาทำได้ แต่ผมยับยั้งเอาไว้ เพราะต้องการให้ใช้ GUI ของ SAP ให้เต็มที่หน่อยอ่ะครับ

  7. ขอบคุณมากมายสำหรับความรู้นะครับ

    ช่วงที่จบมาใหม่ๆ ผมไล่สมัครงานเกี่ยวกับSAP(SAP Basis, Junior SAP Consult) แต่ก็ไม่มีที่ไหนรับเลยเหมือนกัน ก็คงเป็นเพราะไม่มีประสบการณ์เกี่ยวกับ SAP เลย(แค่ค่าอบรมการใช้แต่ละ module ก็เกือบแสนแล้ว>

  8. ผมเคยไปเฉียดๆ พวกที่ทำ mainframe ของ IBM อยู่
    มีหลายอย่างที่ผมเห็นแล้ว ผมพอจะเห็นภาพเลยว่า
    idea กลุ่มใหญ่ๆในเรื่อง architecture, api, naming, framework ของ SAP
    มีรากฐานพัฒนาขึ้นมาได้อย่างไร

  9. ช่่างดวงดีอะไรเช่นนี้ ผมหลงมาอ่านบทความดีๆ ก็อยากขอความรู้เรื่อง SAP ครับ

    เนื่องจากลาออกจาก Management มาเป็น Helpdesk ของลูกค้า Holcim เค้าไม่เคยบอกเลยว่าจะมา ดูแลเรื่อง SAP มึนซิครับงานนี้ ทีมที่นี่ India ทั้งนั้น ผมจึงเริ่มหาข้อมูล SAP อย่างเอาเป็นเอาตายครับ . แต่ก็ยังไม่เข้าใจอยู่ดี ใครมีประสบการณ์ก็แนะนำด้วยนะครับ

  10. อยากทราบรายละเอียดและตัวอย่างภาพรวมของsapเพื่อนำไปประกอบการทำงานครับ

  11. สำหรับผู้ที่ต้องการโปรแกรม SAP เพื่อการศึกษาเรียนรู้ที่บ้านด้วยตนเอง ติดต่อสอบถามมาได้นะครับ

  12. สำหรับผู้ที่ต้องการโปรแกรม SAP เพื่อการศึกษาเรียนรู้ที่บ้านด้วยตนเอง ติดต่อสอบถามมาได้นะครับ

    tnakon.sap@gmail.com

  13. สำหรับผู้ที่ต้องการศึกษาโปรแกรม SAP ด้วยตนเอง
    เพื่อการศึกษาเรียนรู้ที่บ้านด้วยตนเอง ติดต่อสอบถามมาได้นะครับ

    เมล์มาที่ tnakon.sap@gmail.com

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *