Dynamics 365 Business Central: เริ่มต้นสร้าง AL Project ง่ายๆ ใน D365BC สำหรับมือใหม่

การพัฒนา AL Project ใน Microsoft Dynamics 365 Business Central อาจดูท้าทายสำหรับผู้เริ่มต้น แต่ด้วยคำแนะนำที่ถูกต้องและขั้นตอนที่ชัดเจน คุณจะพบว่ามันไม่ยากอย่างที่คิด บทความนี้จะแนะนำคุณตลอดกระบวนการสร้าง AL Project ตั้งแต่การติดตั้งเครื่องมือที่จำเป็นไปจนถึงการพัฒนาและทดสอบฟังก์ชันต่างๆ ที่คุณสร้างขึ้นได้ด้วยตัวเอง

1. การเตรียมความพร้อม ติดตั้งเครื่องมือที่จำเป็น

ก่อนที่จะเริ่มต้นสร้าง AL Project คุณจำเป็นต้องเตรียมเครื่องมือที่ใช้ในการพัฒนา ดังนี้:

1.1 การติดตั้ง Visual Studio Code (VS Code)

Visual Studio Code (VS Code) เป็นเครื่องมือที่นักพัฒนานิยมใช้สำหรับการเขียนโปรแกรม AL เนื่องจากมีความยืดหยุ่นและใช้งานง่าย คุณสามารถติดตั้งได้ดังนี้:

  1. เข้าไปที่เว็บไซต์ Visual Studio Code
  2. ดาวน์โหลดเวอร์ชันที่เหมาะกับระบบปฏิบัติการของคุณ (Windows, macOS, หรือ Linux)
  3. ติดตั้งโปรแกรมตามขั้นตอนที่แนะนำ

1.2 การติดตั้ง AL Language Extension

หลังจากติดตั้ง VS Code แล้ว คุณต้องติดตั้งส่วนขยายที่ทำให้ VS Code รองรับการเขียนโค้ด AL:

1. เปิด Visual Studio Code

2. ไปที่ Extensions โดยคลิกที่ไอคอนทางซ้ายหรือกด Ctrl + Shift + X

3. พิมพ์ “AL Language” ในช่องค้นหาและคลิกที่ปุ่ม Install

2. เริ่มต้นสร้าง AL Project ของคุณ

2.1 การสร้างโปรเจกต์ใหม่

เมื่อคุณติดตั้งเครื่องมือที่จำเป็นเสร็จแล้ว ก็สามารถเริ่มสร้าง AL Project ได้ โดยทำตามขั้นตอนดังนี้:

  • เปิด Visual Studio Code
  • ไปที่ View > Command Palette หรือกด Ctrl + Shift + P

  • พิมพ์ “AL: Go!” ในช่องค้นหาและกด Enter

  • ระบุชื่อของโปรเจกต์และตำแหน่งที่ต้องการบันทึก

  • เลือกเวอร์ชันของ Business Central ที่ต้องการใช้ (แนะนำให้เลือกเวอร์ชัน Sandbox)

  • ระบบจะสร้างโครงสร้างโปรเจกต์พื้นฐานที่ประกอบด้วยไฟล์สำคัญ เช่น app.json, HelloWorld.al, และ launch.json

2.1.1 อธิบายไฟล์สำคัญในโปรเจกต์

เมื่อคุณสร้าง AL Project ใหม่ใน Microsoft Dynamics 365 Business Central คุณจะพบกับไฟล์สำคัญสามไฟล์หลัก:

1. app.json:

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

ตัวอย่าง:

รายละเอียดของแต่ละฟิลด์:

  1. id:
    • รหัส UUID ที่ไม่ซ้ำกันสำหรับแอปพลิเคชันนี้ ใช้ในการระบุแอปพลิเคชันในระบบอย่างเฉพาะเจาะจง
  2. name:
    • ชื่อของแอปพลิเคชัน เช่น “My AL Project”
  3. publisher:
    • ชื่อผู้พัฒนาแอปพลิเคชันหรือบริษัทที่พัฒนา เช่น “Default Publisher”
  4. version:
    • หมายเลขเวอร์ชันของแอปพลิเคชันในรูปแบบ major.minor.build.revision เช่น “1.0.0.0”
  5. brief, description, privacyStatement, EULA, help, url, logo:
    • ฟิลด์เหล่านี้ใช้สำหรับการให้ข้อมูลเพิ่มเติมเกี่ยวกับแอปพลิเคชัน เช่น คำอธิบายสั้นๆ (brief), คำอธิบายแบบละเอียด (description), ลิงก์ไปยังนโยบายความเป็นส่วนตัว (privacyStatement), ข้อตกลงการใช้งาน (EULA), ลิงก์ไปยังหน้าเว็บช่วยเหลือ (help), URL ของเว็บไซต์ (url), และโลโก้ของแอปพลิเคชัน (logo) ฟิลด์เหล่านี้จะถูกแสดงให้ผู้ใช้เห็นเมื่อพวกเขาดาวน์โหลดหรือใช้งานแอปพลิเคชัน
  6. dependencies:
    • ระบุแอปพลิเคชันหรือแพคเกจที่โปรเจกต์นี้พึ่งพา เช่น “System Application” และ “Base Application” ที่มาจาก Microsoft พร้อมกับระบุเวอร์ชันที่ต้องการ
  7. screenshots:
    • เป็นอาร์เรย์ที่ใช้ระบุภาพหน้าจอ (screenshots) ของแอปพลิเคชัน ซึ่งสามารถแสดงใน AppSource หรือ Business Central แต่ในที่นี้ยังไม่ได้กำหนดค่า
  8. platform:
    • เวอร์ชันของแพลตฟอร์ม Business Central ที่แอปพลิเคชันนี้รองรับ
  9. application:
    • เวอร์ชันของแอปพลิเคชัน Business Central ที่ AL Project นี้ทำงานร่วมกับ
  10. idRanges:
    • ช่วงของ ID ที่กำหนดให้ Object ต่างๆ ในโปรเจกต์นี้ใช้ เช่น ตั้งแต่ 50100 ถึง 50149
  11. resourceExposurePolicy:
    • นโยบายการเปิดเผยทรัพยากร เช่น การอนุญาตให้ดีบัก (allowDebugging), การดาวน์โหลดซอร์สโค้ด (allowDownloadingSource), และการรวมซอร์สโค้ดในไฟล์สัญลักษณ์ (includeSourceInSymbolFile)
  12. runtime:
    • เวอร์ชันของ AL runtime ที่โปรเจกต์นี้ใช้ เช่น “13.1”
  13. features:
    • ฟีเจอร์พิเศษที่เปิดใช้งานในโปรเจกต์ เช่น "NoImplicitWith" ซึ่งเป็นฟีเจอร์ที่ช่วยป้องกันการใช้งาน WITH โดยไม่เจตนาในโค้ด AL

2. launch.json:

ใช้สำหรับตั้งค่าการดีบักใน Visual Studio Code กำหนด environment, URL เซิร์ฟเวอร์, tenant, และการตั้งค่าต่างๆ เพื่อเชื่อมต่อกับ Business Central

ตัวอย่าง:

รายละเอียดแต่ละฟิลด์:

  1. name:
    • ชื่อของการตั้งค่าการ Publish ซึ่งสามารถปรับเปลี่ยนได้ตามต้องการ (เช่น “sandbox”)
  2. request:
    • ประเภทของคำสั่ง deploy ใช้ "launch" ซึ่งหมายถึงการเริ่มต้นการ deploy
  3. type:
    • ประเภทของการ deploy ใช้ "al" ซึ่งหมายถึงการ deploy โค้ด AL (Application Language) ใน Business Central
  4. server:
    • URL ของเซิร์ฟเวอร์ Business Central ในที่นี้เป็น "https://businesscentral.dynamics.com/" ซึ่งเป็น URL หลักของ Business Central บนคลาวด์
  5. tenant:
    • ชื่อ Tenant ที่คุณกำลังเชื่อมต่อ คุณต้องใส่ชื่อ Tenant ของคุณแทน "your tenant"
  6. environmentType:
    • ประเภทของ Environment ในที่นี้คือ "Sandbox" หมายถึง Environment ที่ใช้สำหรับการทดสอบ ไม่ใช่ production
  7. breakOnError:
    • ตั้งค่าเป็น true หมายถึงการดีบักจะหยุดเมื่อมีข้อผิดพลาดเกิดขึ้นในโค้ด
  8. launchBrowser:
    • ตั้งค่าเป็น true หมายความว่าเบราว์เซอร์จะเปิดขึ้นโดยอัตโนมัติเมื่อเริ่มการดีบัก
  9. schemaUpdateMode:
    • ตั้งค่าเป็น "Synchronize" หมายถึงการอัปเดต schema ของฐานข้อมูลให้ตรงกับการเปลี่ยนแปลงในโค้ด AL โดยอัตโนมัติ

3. ไฟล์ .al (เช่น HelloWorld.al):

เป็นไฟล์ที่ใช้ในการเขียนโค้ด AL ของคุณ ทุกครั้งที่คุณสร้าง Object ใหม่ใน Business Central เช่น Table, Page, Codeunit จะถูกกำหนดในไฟล์ .al เหล่านี้

ตัวอย่าง:

ไฟล์เหล่านี้ทำหน้าที่เป็นพื้นฐานในการกำหนดค่าและพัฒนา AL Project ของคุณใน Microsoft Dynamics 365 Business Central ช่วยให้คุณสามารถจัดการแอปพลิเคชันได้อย่างเป็นระบบและมีประสิทธิภาพ.

3. ทำความเข้าใจ Object ใน AL

ในการพัฒนา AL Project คุณจะต้องทำงานกับ Object หลายประเภท ซึ่งแต่ละประเภทมีหน้าที่และฟังก์ชันเฉพาะ ดังนี้

3.1 Table

Table ใช้สำหรับการเก็บข้อมูลในระบบ Business Central ตัวอย่างโค้ดสำหรับการสร้าง Table คือ:

  • DataClassification: กำหนดระดับการปกป้องข้อมูล
  • field: ใช้กำหนดฟิลด์ต่างๆ ในตาราง
  • key: ใช้กำหนดคีย์สำหรับตาราง เช่น Primary Key

3.2 Page

Page ใช้ในการสร้างหน้าจออินเทอร์เฟซที่ผู้ใช้สามารถโต้ตอบได้ ตัวอย่างโค้ดสำหรับการสร้าง Page คือ:

3.3 Codeunit

Codeunit เป็นโมดูลของโค้ดที่ใช้เก็บฟังก์ชันหรือกระบวนการทางธุรกิจ ตัวอย่างโค้ดสำหรับการสร้าง Codeunit คือ:

  • trigger OnRun: เป็นตัวที่เรียกใช้เมื่อ Codeunit ถูกเรียกใช้งาน

4. การ Deploy Project

หลังจากที่คุณพัฒนา AL Project เสร็จสิ้นแล้ว ขั้นตอนต่อไปคือการ Deploy Project เพื่อให้แอปพลิเคชันพร้อมใช้งานใน environment ต่างๆ ของ Microsoft Dynamics 365 Business Central โดยมีขั้นตอนดังนี้:

4.1 การ Build และ Publish โปรเจกต์

1. Build Project: ก่อนที่จะทำการ Deploy คุณต้อง Build โปรเจกต์ใน Visual Studio Code เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดใดๆ ในโค้ด:

– เปิดโปรเจกต์ใน Visual Studio Code

– กด Ctrl + Shift + B หรือไปที่เมนู Terminal > Run Build Task แล้วเลือก Build

– ตรวจสอบว่าไม่มีข้อผิดพลาดปรากฏขึ้นในหน้าต่าง Output ของ Visual Studio Code

2. Publish ไปยัง Sandbox Environment:

– การ Publish ไปยัง Sandbox Environment ใช้สำหรับการทดสอบแอปพลิเคชันใน environment ที่ปลอดภัยก่อนที่จะทำการเผยแพร่ไปยัง Production

– กด F5 หรือไปที่เมนู Run > Start Debugging ระบบจะทำการ Build และ Publish แอปพลิเคชันไปยัง Sandbox Environment ที่คุณตั้งค่าไว้ในไฟล์ launch.json

– เมื่อกระบวนการเสร็จสิ้น Visual Studio Code จะเปิดเบราว์เซอร์และนำคุณไปยังหน้าแอปพลิเคชันที่ถูก Deploy ใน Business Central

4.2 การตรวจสอบผลลัพธ์หลังการ Deploy

1. หลังจาก Publish เสร็จสิ้นแล้ว ให้ตรวจสอบว่าแอปพลิเคชันทำงานตามที่คาดหวังหรือไม่

– ทดสอบฟังก์ชันต่างๆ ของแอปพลิเคชันภายใน Sandbox Environment เพื่อให้แน่ใจว่าทุกอย่างทำงานถูกต้อง

– หากพบข้อผิดพลาด ให้ทำการแก้ไขใน Visual Studio Code แล้วทำการ Build และ Publish ใหม่

5. สรุป

การสร้าง AL Project ใน Microsoft Dynamics 365 Business Central อาจดูซับซ้อนในตอนแรก แต่เมื่อคุณทำตามขั้นตอนที่ได้แนะนำในบทความนี้ คุณจะพบว่ามันไม่ยากเลย บทความนี้ครอบคลุมตั้งแต่การติดตั้งเครื่องมือ, การสร้างโปรเจกต์, การเข้าใจ Object ต่างๆ, ไปจนถึงการดีบักและทดสอบ หวังว่าบทความนี้จะช่วยให้คุณสามารถเริ่มต้นพัฒนา AL Project ได้อย่างมั่นใจ

AL Programming Language: ก้าวสำคัญสู่การพัฒนาบน MS D365BC

AL Programming Language คืออะไร?

AL คือภาษาการเขียนโปรแกรมที่ออกแบบมาเพื่อใช้ในการพัฒนาและปรับแต่งโซลูชันบน Microsoft Dynamics 365 Business Central โดยมีความสามารถในการสร้างและจัดการ Object Types ต่าง ๆ ที่เกี่ยวข้องกับการดำเนินการทางธุรกิจ ภาษานี้มีความเชี่ยวชาญเฉพาะด้านและถูกออกแบบมาให้ใช้งานง่ายแม้สำหรับผู้พัฒนาที่คุ้นเคยกับภาษาโปรแกรมทั่วไป เช่น C# หรือ JavaScript

ความสำคัญของ AL ในการพัฒนา Business Central

AL มีบทบาทสำคัญในการช่วยให้ธุรกิจสามารถปรับแต่งและขยายความสามารถของ Business Central ได้ตามความต้องการ ไม่ว่าจะเป็นการสร้างตารางข้อมูลใหม่ การออกแบบหน้าจอผู้ใช้ หรือการพัฒนารายงานที่สอดคล้องกับการวิเคราะห์ทางธุรกิจ AL ทำให้การปรับแต่งเหล่านี้เป็นไปอย่างราบรื่นและมีประสิทธิภาพ โดยไม่กระทบต่อโครงสร้างพื้นฐานหลักของระบบ

การทำงานของ AL ใน Microsoft Dynamics 365 Business Central

ใน AL โค้ดจะถูกจัดระเบียบในรูปแบบของ Object Types ซึ่งแต่ละประเภทมีบทบาทเฉพาะในระบบ:

  • Tables: ตารางใน AL ถูกใช้เพื่อเก็บข้อมูลในรูปแบบของแถวและคอลัมน์ ผู้พัฒนาสามารถกำหนดฟิลด์ต่าง ๆ และคุณสมบัติพิเศษได้ เช่น Primary Key และ DataClassification ตารางเหล่านี้เป็นรากฐานในการจัดการข้อมูลใน Business Central
  • Pages: Pages เป็นอินเทอร์เฟซผู้ใช้ที่แสดงผลและให้ผู้ใช้ทำงานกับข้อมูล เช่น การแสดงรายการลูกค้า การป้อนข้อมูล หรือการตรวจสอบรายละเอียดต่าง ๆ ผู้พัฒนาสามารถปรับแต่งหน้าจอเหล่านี้ให้ตรงกับความต้องการของผู้ใช้ได้
  • Codeunits: Codeunits เป็นกลุ่มของฟังก์ชันที่สามารถนำกลับมาใช้ซ้ำได้ ฟังก์ชันเหล่านี้อาจเป็นการดำเนินการต่าง ๆ เช่น การคำนวณทางธุรกิจ หรือการตรวจสอบข้อมูล Codeunits ช่วยในการจัดการโค้ดให้อยู่ในรูปแบบที่เป็นระบบและง่ายต่อการจัดการ
  • Reports: Reports ใช้ในการสร้างรายงานที่ประกอบด้วยข้อมูลตามรูปแบบที่กำหนด รายงานเหล่านี้สามารถถูกออกแบบให้แสดงผลในรูปแบบต่าง ๆ เช่น รายงานยอดขาย รายงานสต็อกสินค้า หรือรายงานการเงินประจำเดือน
  • Queries: Queries เป็นคำสั่งที่ใช้ในการดึงข้อมูลจากหลายตารางในฐานข้อมูล ผู้พัฒนาสามารถกำหนดเงื่อนไขการกรองข้อมูล การจัดเรียง และการรวมข้อมูลได้ Queries เป็นเครื่องมือสำคัญในการสร้างรายงานที่ซับซ้อนและมีความยืดหยุ่น

ตัวอย่างโค๊ด

โค้ดตัวอย่างนี้แสดงการสร้างตาราง CustomerList ที่มีฟิลด์ Customer ID, Customer Name และ Balance ซึ่งใช้ในการจัดเก็บข้อมูลลูกค้า

การเขียนโปรแกรมแบบ Event-Driven ใน AL

หนึ่งในจุดเด่นของ AL คือการรองรับการเขียนโปรแกรมแบบ Event-Driven ซึ่งช่วยให้ผู้พัฒนาสามารถสร้างเหตุการณ์ (Events) ที่กระตุ้นการทำงานของโค้ดได้อย่างมีประสิทธิภาพ เช่น เมื่อมีการเพิ่มข้อมูลใหม่ในตารางลูกค้า ระบบสามารถเรียกใช้ฟังก์ชันเพื่อตรวจสอบข้อมูล หรือติดตามการเปลี่ยนแปลงได้โดยอัตโนมัติ

ตัวอย่างเช่น

ในตัวอย่างนี้ MyProcedure จะถูกเรียกใช้ทุกครั้งที่มีการแทรกข้อมูลลูกค้าใหม่ในตาราง Customer

การพัฒนาใน Visual Studio Code

AL ทำงานได้อย่างราบรื่นใน Visual Studio Code ซึ่งเป็นเครื่องมือพัฒนาที่ได้รับความนิยมสูง Visual Studio Code มีส่วนขยายที่สนับสนุนการพัฒนา AL โดยเฉพาะ ฟีเจอร์ที่สำคัญของ Visual Studio Code ในการพัฒนา AL ได้แก่:

  • IntelliSense: ระบบช่วยเติมคำสั่งอัตโนมัติ ช่วยเพิ่มความสะดวกและความเร็วในการเขียนโค้ด
  • Debugging: ความสามารถในการตรวจสอบและแก้ไขข้อผิดพลาดในโค้ดได้อย่างมีประสิทธิภาพ
  • Source Control: การควบคุมเวอร์ชันของโค้ดผ่าน Git ช่วยให้การจัดการโครงการเป็นไปอย่างราบรื่น

การพัฒนาภายใน Visual Studio Code ยังรวมถึงการสร้างโปรเจกต์ AL และการจัดการไฟล์ต่าง ๆ ที่เกี่ยวข้องกับโซลูชันใน Business Central

การสร้างและการจัดการ Extension

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

ขั้นตอนการสร้าง Extension:

  1. สร้างโปรเจกต์ใหม่ใน Visual Studio Code: เริ่มต้นด้วยการสร้างโปรเจกต์ AL ใหม่ จากนั้นกำหนดโครงสร้างของโซลูชันที่ต้องการพัฒนา
  2. เขียนโค้ด AL: พัฒนาโค้ดตามความต้องการ เช่น การสร้างตารางใหม่ หรือการปรับแต่งอินเทอร์เฟซผู้ใช้
  3. ทดสอบและ Debug: ใช้ฟีเจอร์ Debugging ใน Visual Studio Code เพื่อตรวจสอบและแก้ไขข้อผิดพลาดในโค้ด
  4. สร้างไฟล์ .app: เมื่อโค้ดเสร็จสมบูรณ์ ให้สร้างไฟล์ .app ซึ่งเป็นแพ็กเกจ Extension สำหรับติดตั้งใน Business Central
  5. ติดตั้ง Extension: นำไฟล์ .app ไปติดตั้งในระบบ Business Central ผ่านการจัดการ Extension

Integration กับ Web Services และระบบภายนอก

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

ตัวอย่างโค้ดที่เชื่อมต่อกับ Web Service

การรักษาความปลอดภัยและการกำหนดสิทธิ์การเข้าถึง (Security and Permissions)

Dynamic 365 Business Central มีฟีเจอร์ในการจัดการความปลอดภัยของข้อมูลและการกำหนดสิทธิ์การเข้าถึงของผู้ใช้งานตามบทบาท (Role) ที่กำหนด ผู้พัฒนาสามารถสร้างและจัดการ Permission Sets เพื่อกำหนดสิทธิ์การเข้าถึงข้อมูลต่าง ๆ ในระบบ เช่น ผู้จัดการสามารถเข้าถึงข้อมูลทั้งหมด แต่พนักงานอาจมีการจำกัดการเข้าถึง

สรุป

AL Programming Language เป็นเครื่องมือที่ทรงพลังและมีความสำคัญสำหรับการพัฒนาโซลูชันใน Microsoft Dynamics 365 Business Central ด้วยคุณสมบัติที่ครบครันในการจัดการข้อมูล การปรับแต่งอินเทอร์เฟซ และการเชื่อมต่อกับบริการภายนอก AL ช่วยให้ธุรกิจสามารถปรับตัวและเติบโตได้อย่างรวดเร็วในยุคดิจิทัล