ABAP RESTful Application Programming Model (RAP) ช่วยให้นักพัฒนาสร้างแอปพลิเคชันธุรกิจ บริการ และส่วนเสริมต่างๆ ที่พร้อมใช้งานบนคลาวด์ ได้อย่างมีประสิทธิภาพ รองรับทั้ง SAP BTP ABAP Environment, SAP S/4HANA Cloud Public Edition, SAP S/4HANA Cloud Private Edition และ SAP S/4HANA 1909 ขึ้นไป นับว่าเป็นหัวใจสำคัญของโมเดลการพัฒนา ABAP Cloud สำหรับการพัฒนาเชิงธุรกรรม
RAP คืออะไร มาทำความรู้จัก RAP กัน
ความต้องการแอปพลิเคชันธุรกิจ SAP และเทคโนโลยีที่เกี่ยวข้องนั้น มีการพัฒนาอย่างมากมายตลอดหลายปีที่ผ่านมา นอกเหนือจากความต้องการที่เพิ่มขึ้นสำหรับการวิเคราะห์ข้อมูลที่ฝังอยู่ (Embedded Analytics) และปัญญาประดิษฐ์ (Artificial Intelligence) สิ่งสำคัญที่ผลักดันการเปลี่ยนแปลง มีดังนี้
- SAP HANA – ฐานข้อมูลประสิทธิภาพสูงแบบ In-Memory สำหรับการประมวลผลธุรกรรมแบบเรียลไทม์และการประมวลผลเชิงวิเคราะห์ (Analytical Processing)
- SAP Fiori – รูปแบบการออกแบบ UX (User Experience) ที่ทันสมัย ใช้งานง่าย และรองรับหลายอุปกรณ์ สำหรับ Intelligent Enterprise
- Cloud – ตอบสนองความต้องการทางธุรกิจที่เพิ่มขึ้นสำหรับการสนับสนุนการดำเนินงานบนคลาวด์ ตั้งแต่แบบผสมผสาน (Hybrid) คือ คลาวด์และภายในองค์กร ไปจนถึงรูปแบบการดำเนินงานบนคลาวด์เพียงอย่างเดียว
กลุ่มผู้ใช้ (End Users) คาดหวังคุณภาพผลิตภัณฑ์ที่ดีขึ้น เช่น การทำงานอย่างต่อเนื่องและร่วมมือกัน ตัวอย่างเช่น เริ่มทำงานที่บ้าน ทำงานต่อระหว่างการเดินทาง และสิ้นสุดงานที่บริษัท หรือทำงานบนอุปกรณ์ประเภทต่างๆ
คุณภาพผลิตภัณฑ์ เช่น ความสามารถในการปรับขนาด (Scalability), ความสามารถในการทดสอบ (Testability), ความสามารถในการรองรับ (Supportability), ความสามารถในการขยาย (Extensibility), ความสามารถในการปรับแต่งเฉพาะทาง (verticalization) และความสามารถในการสร้างเอกสารประกอบ (Documentability) ควรมีพร้อมใช้งานทันที
รูปแบบโครงสร้าง RAP
ABAP RESTful Application Programming Model (RAP) ถือเป็นหัวใจสำคัญของ ABAP Cloud ซึ่งเป็นโมเดลการพัฒนา ABAP สำหรับการสร้างแอปพลิเคชันธุรกิจ บริการ และส่วนเสริมที่พร้อมใช้งานบนคลาวด์ และเป็นไปตามมาตรฐาน Clean Core บน SAP BTP, SAP S/4HANA Cloud และ SAP S/4HANA โดย RAP คือหัวใจสำคัญของ ABAP Cloud สำหรับการพัฒนาแอปพลิเคชัน SAP Fiori แบบธุรกรรม, บริการที่ใช้ OData และส่วนเสริมต่างๆ
RAP ประกอบด้วยแนวคิด เครื่องมือ ภาษา และกรอบการทำงานที่มีประสิทธิภาพ ช่วยนักพัฒนาสร้างแอปพลิเคชัน SAP Fiori ที่ทันสมัย พร้อมใช้งานบนคลาวด์ (Cloud-Ready) ทั้ง API ภายในเครื่อง (Local API) และ API บนเว็บ รวมถึงการขยายแอปพลิเคชันมาตรฐานของ SAP บนแพลตฟอร์ม ABAP ได้อย่างง่ายดาย ทั้งแบบ On-Premises และบนคลาวด์
RAP นำเสนอรูปแบบการพัฒนาที่ได้มาตรฐาน โดยอาศัย Core Data Services (CDS), ภาษา ABAP และบริการทางธุรกิจ ภายในเครื่องมือการพัฒนา ABAP ยุคใหม่ที่ใช้พื้นฐาน Eclipse อย่าง ABAP Development Tools (ADT)
RAP สามารถนำไปพัฒนาและสร้างโมเดล ของบริการต่างๆ API ภายในเครื่อง และอีเว้นท์เชิงธุรกิจ ได้ดังนี้
- บริการที่ใช้ OData สำหรับการพัฒนา UI (User Interface) เพื่อสร้างแอปพลิเคชัน SAP Fiori ที่สวยงาม มีสิทธิ์การเข้าใช้งาน ตอบสนองได้ดี และรองรับการบันทึกแบบร่าง
- บริการที่ใช้ OData สำหรับการเผยแพร่เป็น Web APIs
- สามารถใช้ Local APIs ที่มีความเสถียรภาพตลอดอายุการใช้งาน (Lifecycle-stable) และปลอดภัยในการอัพเกรด (Upgrade-Safe) ผ่านอินเทอร์เฟซของวัตถุทางธุรกิจ (Business Object) ของ RAP ที่เผยแพร่
- อีเว้นท์เชิงธุรกิจที่สามารถใช้สำหรับการสื่อสารแบบอะซิงโครนัส (Asynchronous Communication) เพื่อแจ้งให้ผู้บริโภคทราบว่ามีการเปลี่ยนแปลงวัตถุทางธุรกิจ (Business Object) ของ RAP
ตลอดกระบวนการพัฒนาด้วย RAP ยังมีตัวเลือกสำหรับการทดสอบ รองรับการใช้งาน สร้างเอกสารประกอบ และการขยายความสามารถ Unit Test, เครื่องมือ ABAP Cross Trace และเอกสารถ่ายทอดความรู้
กรอบการทำงาน RAP นำเสนอการผสานการใช้งานคอมโพเนนต์แบบนำกลับมาใช้ใหม่ได้อย่างราบรื่น เช่น อีเว้นท์เชิงธุรกิจ (Business Event) และเอกสารการเปลี่ยนแปลง (Change Document) เพื่อลดต้นทุนการพัฒนาโดยรวม นักพัฒนาสามารถเปิดใช้งานการเผยแพร่อีเว้นท์เชิงธุรกิจและอนุญาตให้สร้างเอกสารการเปลี่ยนแปลงภายในแอปพลิเคชันที่สร้างบนพื้นฐาน RAP ได้อย่างง่ายดาย
SAP ใช้ ABAP RAP ในการสร้างแอปพลิเคชันธุรกิจมาตรฐาน และปรับปรุงแอปพลิเคชันที่มีอยู่เดิมให้ทันสมัย นอกจากนี้ยังแนะนำให้ลูกค้าและพาร์ทเนอร์นำไปใช้สำหรับการพัฒนาแบบกำหนดเองอีกด้วย
การนำไปใช้งาน Business Object ใน RAP
Business Object เป็นคำทั่วไปที่ใช้แทนเอนทิตี้ทางธุรกิจในโลกแห่งความจริง เช่น สินค้า (Product) การเดินทาง (Travel) หรือใบสั่งขาย (Sales Order) ในการพัฒนาแอปพลิเคชันสำหรับองค์กร ในทางทฤษฎี Business Object (BO) ประกอบด้วย โมเดลข้อมูล (Data Model) หรือที่เรียกว่า โมเดลองค์ประกอบ (Composition Model) และ พฤติกรรมเชิงธุรกรรม (Transactional Behavior) โดยทั่วไปแล้ว BO จะมีองค์ประกอบดังนี้
- โหนดหลายตัว (Node) เช่น โหนดราก (Root Node) ของใบสั่งขาย และโหนดย่อย (Child Node) ของรายการสั่งขาย และกำหนดการส่งมอบ
- การดำเนินงานธุรกรรมมาตรฐานสำหรับการสร้าง แก้ไข และลบข้อมูลทางธุรกิจ
- การดำเนินงานธุรกรรมเฉพาะแอปพลิเคชันที่ไม่ได้เป็นมาตรฐาน
RAP รองรับประเภทการนำไปใช้งานที่แตกต่างกันสำหรับการนำพฤติกรรมของ BO ไปใช้งาน โดยประเภทหลัก ๆ คือ การนำไปใช้งานแบบ Managed BO Runtime และการนำไปใช้งานแบบ Unmanaged BO Runtime ซึ่งโดยทั่วไปแล้ว การนำไปใช้งานแบบ Managed BO Runtime เหมาะสำหรับการพัฒนาใหม่ (Greenfield development) ส่วนการนำไปใช้งานแบบ Unmanaged BO Runtime เหมาะสำหรับการปรับปรุงระบบเดิม
โครงสร้างของ Query โมเดลข้อมูล การค้นหา และรันไทม์
ในบริการ OData คิวรี (Query) เป็นอินเทอร์เฟซเชื่อมต่อสำหรับการเข้าถึงฐานข้อมูลแบบสามารถอ่านได้อย่างเดียว (Read-Only Access) โดยใช้สำหรับรายงานประเภทลิสต์ (List Reports) หรือรายงานวิเคราะห์ข้อมูล (Analytical Reports) เพื่อประมวลผลข้อมูล
ในฐานะที่เป็นองค์ประกอบที่ไม่ใช่ธุรกรรมเทียบเท่ากับ business object ซึ่งคิวรี (Query) ประกอบด้วย โมเดลข้อมูล (Data Model) ความสามารถในการค้นหาข้อมูลทั้งแบบทั่วไป (Generic) และแบบที่กำหนดไว้ และรันไทม์ (Runtime) การแบ่งออกเป็น 3 ส่วนนี้ สอดคล้องกับแนวคิดของ Business Object อย่างไรก็ตาม คิวรี (Query) จะอนุญาตให้เข้าถึงฐานข้อมูลแบบอ่านอย่างเดียวเท่านั้น รันไทม์ของมันจะไม่สามารถแก้ไขข้อมูล แต่จะดำเนินการดึงข้อมูลที่มีโครงสร้างเท่านั้น เช่น สำหรับการกรองข้อมูล (Filtering)
ความสำคัญของ Business Service ในการพัฒนา ABAP
แพลตฟอร์มการพัฒนา ABAP สามารถทำหน้าที่เป็นทั้งผู้ให้บริการ (service provider) และผู้รับบริการ (service consumer) เช่น SAP Fiori UI client
ในบริบทของโมเดลการเขียนโปรแกรมประยุกต์ ABAP RESTful business service คือ บริการ RESTful ที่ลูกค้าสามารถเรียกใช้ได้ โดยกำหนดบริการนี้ผ่านการเผยแพร่ โมเดลข้อมูลร่วมกับพฤติกรรมที่เกี่ยวข้อง ซึ่งประกอบด้วย การกำหนดบริการ (Service Definition) และการผูกบริการ (Service Binding)
บทบาทของ Business Events ในการพัฒนาแอปพลิเคชัน RAP
RAP รองรับสถาปัตยกรรมแบบอีเวนต์ดั้งเดิม (Supports Event-Driven Architecture) ซึ่งอีเวนต์ธุรกิจของ RAP ช่วยแก้ปัญหาในการนำการสื่อสารแบบอะซิงโครนัส (Asynchronous) เข้ามาผสานกับสถาปัตยกรรม RAP ได้อย่างราบรื่นและช่วยให้เหล่านักพัฒนาสามารถเรียกกระบวนการติดตามผล สำหรับการเปลี่ยนแปลงที่สำคัญของ Business Object ได้
อีเวนต์ธุรกิจ (Business Events) ถูกกำหนดและสามารถนำไปใช้กับ RAP BO ได้ ในฐานะผู้ให้บริการอีเวนต์ นักพัฒนาสามารถกำหนดอีเวนต์ในนิยามพฤติกรรมและเรียกใช้ภายในการนำพฤติกรรมไปใช้งาน อีเวนต์ที่เรียกใช้สามารถนำไปใช้ภายในระบบเดียวกันได้ โดยใช้คลาสตัวจัดการอีเวนต์ภายใน หรือสามารถนำไปใช้ภายนอกระบบอื่นได้ผ่านทาง SAP Event Mesh บน SAP BTP สำหรับกรณีการนำไปใช้ภายนอก ระบบจะต้องสร้างการผูกอีเวนต์ (Event Binding) ซึ่งทำหน้าที่แม็พอีเวนต์ไปยัง Namespace, Business Object และ Business Object Operation RAP BO สามารถนำอีเวนต์ที่เผยแพร่เหล่านี้ไปใช้ได้ด้วยโมเดลการบริโภคอีเวนต์ (Event Consumption Model) ซึ่งจะช่วยในการกำหนดการบริโภคอีเวนต์จาก SAP Event Mesh ในช่วงเวลาออกแบบ
การสร้างโมเดลข้อมูลด้วย ABAP Core Data Services (CDS)
ABAP Core Data Services (CDS) มีโครงสร้างพื้นฐานการสร้างโมเดลข้อมูล สำหรับการกำหนดโมเดลข้อมูลทางความหมายที่หลากหลาย และการเข้าถึงไลบรารีและฟีเจอร์ขั้นสูงของ SAP HANA ได้อย่างง่ายดายโดยใช้ฟังก์ชันตาราง CDS
การพัฒนาภาษา ABAP
นับตั้งแต่ถือกำเนิด ภาษา ABAP ได้ผ่านการพัฒนาและปรับปรุงอย่างต่อเนื่อง การปรับปรุงล่าสุดมุ่งเน้นไปที่การลดความซับซ้อน ส่งผลให้ภาษา ABAP กลายเป็นภาษาเชิงการประกาศ (Declarative) และเน้นการแสดงออก (Expression-Oriented) มากขึ้น ซึ่งช่วยให้นักพัฒนาสามารถเขียนโค้ด ABAP ที่ง่ายและกระชับยิ่งขึ้น โดยอาศัยฟีเจอร์ต่างๆ ของภาษา เช่น การประกาศแบบอินไลน์พร้อมการอนุมานชนิดข้อมูล (Type Inference), การสร้างนิยามการดำเนินการรูปแบบใหม่ รวมถึงการกรอง (Filtering) การจัดกลุ่ม (Grouping) และการเรียงลำดับเสมือนสำหรับตารางภายใน นอกจากนี้ ภาษา ABAP ยังได้รับการขยายความสามารถด้วย Entity Manipulation Language (EML) ซึ่งใช้สำหรับควบคุมลักษณะการทำธุรกรรมของ RAP BOs
การใช้งาน Entity Manipulation Language (EML)
EML (Entity Manipulation Language) นำเสนอ syntax ที่คล้ายกับ SQL ช่วยให้นักพัฒนาสามารถกำหนดลักษณะการทำธุรกรรมของ RAP business objects นอกจากนี้ EML ยังรองรับการเข้าถึง RAP Business Objects แบบมีประเภทข้อมูลที่ปลอดภัย ผ่าน API ทั้งภายในและภายนอกบริบทของ RAP
เครื่องมือ (Tools) ในการทำงาน
ABAP Development Tools for Eclipse ABAP Development Tools (ADT) คือสภาพแวดล้อมการพัฒนาแบบบูรณาการบนแพลตฟอร์ม Eclipse ที่ได้รับความนิยม ซึ่งรองรับการพัฒนา ABAP มาตรฐาน, การประกันคุณภาพ และงานสนับสนุนทั้งบนระบบ ABAP ภายในองค์กร (On Premise) และบนระบบ ABAP บนคลาวด์
ABAP Development Tools (ADT) ไม่เพียงแต่เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการเท่านั้น แต่ยังเป็นชุดเครื่องมือการพัฒนาที่ทันสมัยมาพร้อมฟีเจอร์มากมายที่ช่วยเพิ่มประสิทธิภาพให้กับนักพัฒนา เช่น
- ไวยากรณ์เน้นสี (Syntax Highlighting) ช่วยให้อ่านโค้ดได้ง่ายขึ้น
- การเติมโค้ดอัตโนมัติ (Code Completion) ช่วยประหยัดเวลาในการเขียนโค้ด
- เทมเพลตโค้ด (Code Templates) ช่วยสร้างโครงสร้างโค้ดสำเร็จรูป
- ระบบค้นหาและนำทางขั้นสูง (Advanced Search and Navigation) ช่วยค้นหาและอ้างอิงข้อมูลภายในโค้ดได้อย่างรวดเร็ว
- การแก้ไขปัญหาอย่างรวดเร็ว ช่วยแก้ไขข้อผิดพลาดพื้นฐานในโค้ดได้ง่าย
นอกจากนี้ ADT ยังมาพร้อมกับปลั๊กอินต่างๆ บน Eclipse ตัวอย่างเช่น Relation Explorer ซึ่งเป็นมุมมองที่ช่วยให้นักพัฒนาสำรวจโครงสร้างและความสามารถของวัตถุที่พัฒนา เช่น RAP BOs อีกตัวอย่างคือ วิซาร์ด Generate ABAP Repository Objects ภายใน ADT สามารถใช้สร้างชิ้นส่วนที่จำเป็นทั้งหมดสำหรับ OData service โดยอาศัยข้อมูลจากตารางฐานข้อมูล ทั้งนี้ ABAP Development Tools (ADT) ยังมีตัวเลือกและเครื่องมือที่ทรงพลังสำหรับการทดสอบและแก้ไขปัญหาอื่นๆ เพิ่มเติม
การทดสอบแอปพลิเคชัน (Application Testing)
ในฐานะนักพัฒนาแอปพลิเคชัน ต้องตรวจสอบการทำงานของแอปพลิเคชันทั้งหมด โดยสามารถเขียนและรันชุดทดสอบต่างๆ ได้แก่ Unit Tests, Scenario Tests และ Integration Tests แพลตฟอร์ม ABAP และ ABAP Development Tools (ADT) มีกรอบการทำงานและเครื่องมือที่ทรงพลัง เพื่อรับประกันคุณภาพของแอปพลิเคชันตลอด ซึ่งครอบคลุมเครื่องมือต่างๆ ดังนี้
- ABAP Test Cockpit สำหรับการตรวจสอบโค้ดแบบคงที่
- ABAP Unit test framework เพื่อทดสอบ
- Test Doubles Frameworks สำหรับการแยกส่วนของโค้ดที่ต้องการทดสอบ ไม่ว่าจะเป็นโค้ด ABAP, SQL, CDS หรือ RAP BOs
- Local OData Client Proxy สำหรับการทดสอบ OData services ผ่านทาง API
การแก้ไขปัญหาและวิเคราะห์ประสิทธิภาพ (Troubleshooting and Performance Analysis)
ในฐานะนักพัฒนาแอปพลิเคชัน ต้องสามารถระบุที่มาของปัญหาต่างๆ ที่เกิดขึ้นภายในแอปพลิเคชันได้ ปัญหาเหล่านี้อาจครอบคลุมถึง ปัญหาเชิงความหมาย (semantic issues),ปัญหาเชิงการทำงาน (functional issues) และ ปัญหาประสิทธิภาพ (performance issues) พื่อให้สามารถแก้ไขปัญหาเหล่านั้นได้อย่างตรงจุด
ADT ช่วยสนับสนุนในเรื่องนี้ด้วยการนำเสนอตัวเลือกและเครื่องมือวิเคราะห์และแก้ไขปัญหาขั้นสูงหลายรายการในรูปแบบของมุมมองภายใน ADT ดังนี้
- ABAP Debugger – เครื่องมือที่ใช้ในการแก้ไขปัญหาตรรกะทางธุรกิจที่นำไปใช้ในระบบจัดการหลังบ้าน (backend)
- ABAP Cross Trace – เครื่องมือที่ใช้สำหรับการวิเคราะห์การทำงานของ OData services หรือ business objectที่ สร้างด้วย RAP แบบครบวงจร
- ABAP Profiling – เครื่องมือที่ใช้สำหรับวิเคราะห์ประสิทธิภาพการทำงานของโปรแกรม ABAP ขณะรัน
- เครื่องมือ ABAP CDS ต่างๆ – เครื่องมือที่ใช้สำหรับการกำหนดและวิเคราะห์โมเดลข้อมูลที่ใช้ CDS
ความสามารถในการขยายระบบ (Extensibility)
RAP ช่วยให้นักพัฒนาสร้างส่วนเสริม (Extension) ของโมเดลข้อมูล (Data Models) พฤติกรรม (Behaviors) และโหนดของ Business Object (BO) ใน RAP ได้อย่างง่ายดาย โดยไม่ต้องดัดแปลงโค้ดเดิม สามารถสร้างส่วนเสริมที่สมบูรณ์และรองรับการอัพเกรดได้บน SAP S/4HANA Cloud ด้วยฟีเจอร์ extensibility สำหรับนักพัฒนา
Author: Chayanon T.
Reference:
https://pages.community.sap.com/topics/abap/rap
https://help.sap.com/docs/abap-cloud/abap-rap/business-service?version=sap_btp