เอเพ็กซ์ - ภาพรวม

เอเพ็กซ์คืออะไร?

Apex เป็นภาษาที่เป็นกรรมสิทธิ์ที่พัฒนาโดย Salesforce.com ตามคำจำกัดความอย่างเป็นทางการ Apex เป็นภาษาการเขียนโปรแกรมเชิงวัตถุที่พิมพ์อย่างรุนแรงซึ่งช่วยให้นักพัฒนาสามารถดำเนินการคำสั่งควบคุมโฟลว์และธุรกรรมบนเซิร์ฟเวอร์แพลตฟอร์ม Force.com ร่วมกับการเรียกไปยัง Force.com API

มีไวยากรณ์เหมือน Java และทำหน้าที่เหมือนขั้นตอนการจัดเก็บฐานข้อมูล ช่วยให้นักพัฒนาสามารถเพิ่มตรรกะทางธุรกิจให้กับเหตุการณ์ของระบบส่วนใหญ่รวมถึงการคลิกปุ่มการอัปเดตบันทึกที่เกี่ยวข้องและ Visualforcepages.Apexรหัสสามารถเริ่มต้นได้โดยการร้องขอบริการบนเว็บและจากทริกเกอร์บนวัตถุ Apex รวมอยู่ใน Performance Edition, Unlimited Edition, Enterprise Edition และ Developer Edition

คุณสมบัติของเอเพ็กซ์เป็นภาษา

ตอนนี้ให้เราพูดถึงคุณสมบัติของ Apex เป็นภาษา -

แบบบูรณาการ

Apex ได้สร้างขึ้นเพื่อรองรับการดำเนินการ DML เช่น INSERT, UPDATE, DELETE และการจัดการข้อยกเว้น DML มีการสนับสนุนสำหรับการจัดการแบบสอบถาม SOQL และ SOSL แบบอินไลน์ซึ่งส่งคืนชุดของระเบียน sObject เราจะศึกษารายละเอียด sObject, SOQL, SOSL ในบทต่อ ๆ ไป

Java ชอบไวยากรณ์และใช้งานง่าย

เอเพ็กซ์ใช้งานง่ายเนื่องจากใช้ไวยากรณ์เช่น Java ตัวอย่างเช่นการประกาศตัวแปรไวยากรณ์แบบวนซ้ำและคำสั่งเงื่อนไข

บูรณาการอย่างมากกับข้อมูล

Apex เป็นข้อมูลที่เน้นและออกแบบมาเพื่อดำเนินการสืบค้นและคำสั่ง DML หลายรายการร่วมกัน ออกใบแจ้งยอดธุรกรรมหลายรายการบนฐานข้อมูล

พิมพ์อย่างแรง

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

สภาพแวดล้อมที่หลากหลาย

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

อัพเกรดโดยอัตโนมัติ

Apex ได้รับการอัปเกรดโดยเป็นส่วนหนึ่งของการเปิดตัว Salesforce เราไม่ต้องอัพเกรดด้วยตนเอง

ทดสอบง่าย

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

นักพัฒนาควรเลือกเอเพ็กซ์เมื่อใด

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

แอพพลิเคชั่นเอเพ็กซ์

เราสามารถใช้ Apex เมื่อเราต้องการ -

  • สร้างบริการเว็บด้วยการรวมระบบอื่น ๆ

  • สร้างบริการอีเมลสำหรับอีเมลระเบิดหรือการตั้งค่าอีเมล

  • ดำเนินการตรวจสอบความถูกต้องที่ซับซ้อนบนวัตถุหลายชิ้นในเวลาเดียวกันและการดำเนินการตรวจสอบความถูกต้องแบบกำหนดเอง

  • สร้างกระบวนการทางธุรกิจที่ซับซ้อนซึ่งไม่ได้รับการสนับสนุนโดยฟังก์ชันหรือโฟลว์เวิร์กโฟลว์ที่มีอยู่

  • สร้างลอจิกทรานแซคชันแบบกำหนดเอง (ตรรกะที่เกิดขึ้นกับธุรกรรมทั้งหมดไม่ใช่แค่กับเรกคอร์ดหรืออ็อบเจ็กต์เดียว) เช่นการใช้เมธอดฐานข้อมูลในการอัพเดตเรกคอร์ด

  • ใช้ตรรกะบางอย่างเมื่อมีการแก้ไขเร็กคอร์ดหรือแก้ไขเร็กคอร์ดของอ็อบเจ็กต์ที่เกี่ยวข้องเมื่อมีเหตุการณ์บางอย่างที่ทำให้ทริกเกอร์เริ่มทำงาน

โครงสร้างการทำงานของเอเพ็กซ์

ดังที่แสดงในแผนภาพด้านล่าง (ข้อมูลอ้างอิง: เอกสารสำหรับนักพัฒนา Salesforce) Apex ดำเนินการทั้งหมดตามความต้องการของแพลตฟอร์ม Force.com

ขั้นตอนการดำเนินการ

มีลำดับการดำเนินการสองลำดับเมื่อผู้พัฒนาบันทึกโค้ดและเมื่อผู้ใช้ปลายทางดำเนินการบางอย่างซึ่งเรียกใช้โค้ดเอเพ็กซ์ดังที่แสดงด้านล่าง -

การดำเนินการของนักพัฒนา

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

การดำเนินการของผู้ใช้ปลายทาง

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

เนื่องจาก Apex เป็นภาษาที่เป็นกรรมสิทธิ์ของ Salesforce.com จึงไม่สนับสนุนคุณลักษณะบางอย่างที่ภาษาโปรแกรมทั่วไปทำ ต่อไปนี้เป็นคุณสมบัติบางประการที่ Apex ไม่รองรับ -

  • ไม่สามารถแสดงองค์ประกอบในส่วนติดต่อผู้ใช้

  • คุณไม่สามารถเปลี่ยนฟังก์ชันการทำงานมาตรฐานที่ SFDC ให้มาและยังไม่สามารถป้องกันการเรียกใช้ฟังก์ชันมาตรฐานได้

  • นอกจากนี้ยังไม่สามารถสร้างเธรดหลายชุดได้เนื่องจากเราสามารถทำได้ในภาษาอื่น

ทำความเข้าใจเกี่ยวกับไวยากรณ์เอเพ็กซ์

โดยทั่วไปรหัสเอเพ็กซ์จะมีหลายสิ่งที่เราอาจคุ้นเคยจากภาษาโปรแกรมอื่น ๆ

การประกาศตัวแปร

คุณต้องประกาศตัวแปรทุกตัวด้วยชนิดข้อมูลใน Apex ดังที่เห็นในรหัสด้านล่าง (ภาพหน้าจอด้านล่าง) lstAcc ถูกประกาศด้วยประเภทข้อมูลเป็นรายการบัญชี

แบบสอบถาม SOQL

สิ่งนี้จะใช้เพื่อดึงข้อมูลจากฐานข้อมูล Salesforce ข้อความค้นหาที่แสดงในภาพหน้าจอด้านล่างกำลังดึงข้อมูลจากออบเจ็กต์บัญชี

คำชี้แจงแบบวนซ้ำ

คำสั่งวนซ้ำนี้ใช้สำหรับการวนซ้ำในรายการหรือทำซ้ำบนโค้ดตามจำนวนครั้งที่ระบุ ในโค้ดที่แสดงในภาพหน้าจอด้านล่างการทำซ้ำจะเหมือนกับจำนวนบันทึกที่เรามี

คำชี้แจงการควบคุมการไหล

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

คำชี้แจง DML

ดำเนินการแทรกบันทึกอัพเดตอัพลบการดำเนินการกับเรกคอร์ดในฐานข้อมูล ตัวอย่างเช่นรหัสที่ระบุด้านล่างช่วยในการอัปเดตบัญชีด้วยค่าฟิลด์ใหม่

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