อัปเดตล่าสุดเมื่อวันที่ 23 มีนาคม 2566 โดย Rakesh Gupta
แนวคิดใหญ่หรือคำถามที่ยืนยง:
- คุณจะหลีกเลี่ยงการฮาร์ดโค้ด ID ใน Salesforce Flow ได้อย่างไร
วัตถุประสงค์:
โพสต์บล็อกนี้จะช่วยให้เราเข้าใจสิ่งต่อไปนี้
- ทำความเข้าใจวิธีใช้ป้ายกำกับแบบกำหนดเองเพื่อหลีกเลี่ยงรหัสตายตัวของ ID ในโฟลว์
- ทำความเข้าใจเกี่ยวกับวิธีใช้การตั้งค่าแบบกำหนดเองเพื่อหลีกเลี่ยงฮาร์ดโค้ดของรหัสในโฟลว์
- ทำความเข้าใจวิธีใช้ประเภทข้อมูลเมตาที่กำหนดเองเพื่อหลีกเลี่ยงรหัสตายตัวของ ID ในโฟลว์
ดอนน่า เซอร์ดูล่า กำลังทำงานเป็นผู้ดูแลระบบที่ Gurukul On Cloud (GoC). เธอได้รับข้อกำหนดจากฝ่ายบริหารเมื่อใดก็ตามที่มีการสร้างบัญชีสำหรับอุตสาหกรรม ไม่แสวงหาผลกำไรสร้างกรณีและกำหนดโดยอัตโนมัติ ผู้เชี่ยวชาญที่ไม่แสวงหากำไร เข้าคิวเพื่อยืนยันสถานะองค์กรไม่แสวงหาผลกำไร
แนวทาง Automation Champion (I-do):
ใช่ บางครั้งเป็นความคิดที่ดีที่จะฮาร์ดโค้ดค่า (เช่น ในขณะที่กำลังเรียนรู้ เอเพ็กซ์ หรือ การไหลของ Salesforce หรือฮาร์ดโค้ด พาย ค่า ie 3.14) แต่ไม่มีกฎง่ายๆว่าเมื่อใด มันขึ้นอยู่กับบริบทอย่างสมบูรณ์ หากคุณกำลังเขียนโค้ดค่าคงที่แรงโน้มถ่วงของโลกอย่างยากเย็น ก็คงไม่มีใครสนใจ หากคุณฮาร์ดโค้ด รหัสระเบียน (รหัสคิว กลุ่ม หรือระเบียน Salesforce ฯลฯ) คุณกำลังประสบปัญหา
ครั้งแล้วครั้งเล่าฉันเห็น เอเพ็กซ์ รหัส หรือ กระแส ที่มีรหัสตายตัว ไม่ว่าจะเป็น คำอธิบาย สนาม ก รหัสผู้ใช้หรือแม้กระทั่งก รหัสกลุ่ม, เป็นต้น. ปัญหาเกี่ยวกับ ID การเข้ารหัสแบบตายตัวคือต้องทำการเปลี่ยนแปลงใดๆ กับโฟลว์เอง ทดสอบอีกครั้ง แล้วนำไปใช้กับองค์กรการผลิต
ID ของเร็กคอร์ดสามารถเปลี่ยนแปลงได้ เช่น ระหว่าง a กล่องทราย และ ก การผลิต สิ่งแวดล้อม. อาจเป็นไปได้ว่าก คิว (Nonprofit Experts) มี ID ที่แตกต่างกันใน กล่องทราย และ ก การผลิต องค์กร
ตอนนี้คุณสามารถอ้างถึง ผู้เชี่ยวชาญที่ไม่แสวงหาผลกำไร รหัสคิวขณะสร้างกรณีผ่าน Salesforce Flow
ปัญหาของแนวทางนี้ (รหัสคิวฮาร์ดโค้ด) คือ หากคุณกำลังพัฒนาในแซนด์บ็อกซ์ ID ของคิวที่สร้างขึ้นใหม่จะเปลี่ยนไปเมื่อคุณไปที่การผลิต และคุณต้องทำงานใหม่
–> ตามแนวทางปฏิบัติที่ดีที่สุดของ Salesforce ทุกคนจะแนะนำคุณ อย่าใช้รหัสฮาร์ดโค้ด ค้นหาพวกเขา. การปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดของ Salesforce เป็นเรื่องที่ดีเสมอ
แล้วอะไรต่อไป? จะหลีกเลี่ยงการเข้ารหัสรหัสแบบตายตัวในโฟลว์ได้อย่างไร
วิธีการหลีกเลี่ยงฮาร์ดโค้ดมีดังนี้
- ป้ายกำกับที่กำหนดเอง: – ป้ายกำกับแบบกำหนดเองคือค่าข้อความแบบกำหนดเองที่สามารถเข้าถึงได้จากคลาส Apex, เพจ Visualforce, Flows หรือคอมโพเนนต์ Lightning ขณะที่ปรับใช้ป้ายกำกับที่กำหนดเอง ข้อมูลของป้ายกำกับก็จะถูกปรับใช้ด้วย เพื่อหลีกเลี่ยงพฤติกรรมที่ไม่คาดคิด โปรดอัปเดตค่าป้ายกำกับที่กำหนดเองหลังการปรับใช้
- การตั้งค่าแบบกำหนดเอง: – การตั้งค่าแบบกำหนดเองคือตัวแปรที่คุณใช้ในโค้ดของคุณ แต่ตั้งค่าและแก้ไขนอกโค้ดของคุณ การตั้งค่าแบบกำหนดเองจะถูกเก็บไว้ มีประโยชน์อย่างยิ่งในการจัดเก็บข้อมูลที่จะเข้าถึงได้บ่อยๆ จากโค้ด Apex หรือโฟลว์ เนื่องจากจะทำงานได้ดีกว่าออบเจกต์แบบกำหนดเอง ไม่นับรวมกับขีดจำกัด SOQL เมื่อดึงข้อมูล. การตั้งค่าแบบกำหนดเอง ไม่นำข้อมูลมาเมื่อคุณปรับใช้
- ประเภทข้อมูลเมตาที่กำหนดเอง: – Custom Metadata Types คล้ายกับ Custom Settings ในขณะที่ปรับใช้ประเภทข้อมูลเมตาที่กำหนดเอง ข้อมูลจะถูกปรับใช้ด้วย
ก่อนที่จะพูดถึงวิธีแก้ปัญหา ผมขอแสดงไดอะแกรมของ Process Flow ในระดับสูง โปรดใช้เวลาสักครู่เพื่ออ่านแผนภาพโฟลว์ต่อไปนี้และทำความเข้าใจ มาเริ่มสร้างกระบวนการทำงานอัตโนมัตินี้กันเลย
แนวทางปฏิบัติ (เราทำ):
มี 2 ขั้นตอนในการแก้ปัญหาความต้องการทางธุรกิจของ Donna โดยใช้ หลังจากบันทึก บันทึกการไหลทริกเกอร์. พวกเราต้อง:
- สร้างคิวผู้เชี่ยวชาญที่ไม่แสวงหากำไร
- ขั้นตอนการไหลของ Salesforce:
- กำหนดคุณสมบัติโฟลว์
- สูตรเพื่อตรวจสอบว่ามีการสร้างหรือปรับปรุงเรกคอร์ดหรือไม่
- เพิ่มองค์ประกอบการตัดสินใจเพื่อตรวจสอบอุตสาหกรรมบัญชี
- เพิ่มองค์ประกอบบันทึกรับเพื่อค้นหารหัสคิว
- เพิ่มองค์ประกอบการตัดสินใจเพื่อตรวจสอบคิวที่พบหรือไม่
- เพิ่มองค์ประกอบสร้างเรกคอร์ดเพื่อสร้างกรณีและปัญหาใหม่
ขั้นตอนที่ 1: การสร้าง Queue Nonprofit Experts
- คลิก ติดตั้ง.
- ในส่วนติดต่อผู้ใช้ พิมพ์ หาง.
- คลิกที่ ใหม่ ปุ่ม.
- เข้า ฉลาก เดอะ ชื่อคิว จะเติมอัตโนมัติ
- คลิก บันทึก.
ขั้นตอนที่ 2.1: กำหนดคุณสมบัติโฟลว์
- คลิก ติดตั้ง.
- ในช่อง Quick Find ให้พิมพ์ กระแส.
- เลือก กระแส จากนั้นคลิกที่ กระแสใหม่.
- เลือก บันทึกการไหลทริกเกอร์ ตัวเลือกคลิกที่ สร้าง และกำหนดค่าโฟลว์ดังนี้:
- วัตถุ: บัญชี
- กระตุ้นการไหลเมื่อ: บันทึกถูกสร้างขึ้นหรือปรับปรุง
- กำหนดเกณฑ์การเข้า
- ข้อกำหนดเงื่อนไข: ไม่มี
- เพิ่มประสิทธิภาพการไหลสำหรับ การดำเนินการและบันทึกที่เกี่ยวข้อง
- คลิก เสร็จแล้ว.
ขั้นตอนที่ 2.2: สูตรเพื่อตรวจสอบว่าผู้ใช้ถูกสร้างหรืออัปเดต
- ภายใต้ กล่องเครื่องมือเลือก ผู้จัดการ, จากนั้นคลิก ทรัพยากรใหม่ เพื่อพิจารณาว่าบันทึกนั้นใหม่หรือเก่า
- ป้อนข้อมูลต่อไปนี้:
- ทรัพยากร พิมพ์: สูตร
- ชื่อ API: forB_Isใหม่
- ประเภทข้อมูล: บูลีน
- สูตร: ใหม่()
- คลิก เสร็จแล้ว.
ขั้นตอนที่ 2.3: เพิ่มองค์ประกอบการตัดสินใจเพื่อตรวจสอบอุตสาหกรรมบัญชี
เราจะใช้ การตัดสินใจ องค์ประกอบ เพื่อตรวจสอบว่าอุตสาหกรรมบัญชีไม่แสวงหาผลกำไรหรือไม่
- บน Flow Designer คลิกที่ + ไอคอน และเลือก การตัดสินใจ องค์ประกอบ.
- ใส่ชื่อใน ฉลาก สนาม; เดอะ ชื่อ API จะเติมอัตโนมัติ
- ภายใต้ รายละเอียดผลลัพธ์, เข้าสู่ ฉลาก เดอะ ชื่อ API จะเติมอัตโนมัติ
- ข้อกำหนดเงื่อนไขในการดำเนินการผลลัพธ์: ตรงตามเงื่อนไขทั้งหมด (และ)
- แถวที่ 1:
- ทรัพยากร: {!$Record.Industry}
- ผู้ประกอบการ:เท่ากับ
- ค่า:ไม่แสวงหาผลกำไร
- คลิก เพิ่มการมอบหมาย
- แถวที่ 2:
- ทรัพยากร: {!forB_IsNew}
- โอเปอเรเตอร์: เท่ากับ
- ค่า: {!$GlobalConstant.True}
- แถวที่ 1:
- เมื่อจะดำเนินการผลลัพธ์: หากตรงตามเงื่อนไขที่กำหนด.
- คลิก เสร็จแล้ว.
ขั้นตอนที่ 2.4: เพิ่มองค์ประกอบ Get Record เพื่อค้นหารหัสคิวสำหรับผู้เชี่ยวชาญที่ไม่แสวงหาผลกำไร
ขั้นตอนต่อไปคือการหาผู้เชี่ยวชาญที่ไม่แสวงหากำไร คิว.
- บน Flow Designer ด้านล่าง ไม่ใช่เพื่อผลกำไร โหนดคลิกที่ + ไอคอน และเลือก รับบันทึก องค์ประกอบ.
- ใส่ชื่อใน ฉลาก สนาม; เดอะ ชื่อ API จะเติมอัตโนมัติ
- เลือกบันทึก กลุ่ม วัตถุจากรายการแบบเลื่อนลง
- เลือก ตรงตามเงื่อนไขทั้งหมด (และ).
- กำหนดเงื่อนไขการกรอง
- แถวที่ 1:
- สนาม: ชื่อผู้พัฒนา
- โอเปอเรเตอร์: เท่ากัน
- ค่า: Nonprofit_Experts
- สนาม: ชื่อผู้พัฒนา
- คลิก เพิ่มเงื่อนไข
- แถวที่ 2:
- สนาม: พิมพ์
- โอเปอเรเตอร์: เท่ากับ
- ค่า: คิว
- แถวที่ 1:
- จำนวนระเบียนที่จะจัดเก็บ:
- เลือก บันทึกแรกเท่านั้น
- วิธีจัดเก็บข้อมูลบันทึก:
- เลือกตัวเลือกที่จะ จัดเก็บฟิลด์ทั้งหมดโดยอัตโนมัติ.
- คลิก เสร็จแล้ว.
ขั้นตอนที่ 2.5: เพิ่มองค์ประกอบการตัดสินใจเพื่อตรวจสอบ คิวจากตัวแปรเรกคอร์ด
ตอนนี้เราจะใช้ การตัดสินใจ องค์ประกอบ เพื่อตรวจสอบตัวแปรระเบียน จาก ขั้นตอนที่ 2.4 เพื่อดูว่ามันคืนคิวหรือไม่
- บน Flow Designer คลิกที่ + ไอคอน และเลือก การตัดสินใจ องค์ประกอบ.
- ใส่ชื่อใน ฉลาก สนาม; เดอะ ชื่อ API จะเติมอัตโนมัติ
- ภายใต้ รายละเอียดผลลัพธ์ป้อน ฉลาก เดอะ ชื่อ API จะเติมอัตโนมัติ
- ข้อกำหนดเงื่อนไขในการดำเนินการผลลัพธ์: ตรงตามเงื่อนไขทั้งหมด (และ)
- แถวที่ 1:
- ทรัพยากร: {!Get_คิว}
- ผู้ประกอบการ: เป็นโมฆะ
- ค่า: {!$GlobalConstant.False}
- คลิก เสร็จแล้ว.
- แถวที่ 1:
ขั้นตอนที่ 2.6: สร้างบันทึก – สร้างกรณีและปัญหาและกำหนดให้กับคิวที่ไม่แสวงหาผลกำไร
เพื่อสร้างกรณีและปัญหาและกำหนดให้ ผู้เชี่ยวชาญที่ไม่แสวงหาผลกำไร คิวเราจะใช้ สร้างบันทึก องค์ประกอบ.
- บน Flow Designer คลิกที่ + ไอคอน และเลือก สร้างบันทึก องค์ประกอบ.
- ใส่ชื่อใน ฉลาก สนาม; เดอะ ชื่อ API จะเติมอัตโนมัติ
- ป้อนข้อมูลต่อไปนี้:
- จำนวนระเบียนที่จะสร้าง: หนึ่ง
- วิธีตั้งค่าฟิลด์บันทึก: ใช้ทรัพยากรแยกกันและค่าตามตัวอักษร
- วัตถุ: กรณี
- ตั้งค่าฟิลด์สำหรับกรณีและปัญหา
- แถวที่ 1:
- สนาม: สถานะ
- ค่า: ใหม่
- คลิก เพิ่มฟิลด์
- แถวที่ 2:
- สนาม: รหัสเจ้าของ
- ค่า: {!Get_Queue.Id}
- คลิก เพิ่มฟิลด์
- แถวที่ 3:
- สนาม: CurrencyIsoCode
- ค่า: ดอลล่าร์
- คลิก เพิ่มฟิลด์
- แถวที่ 4:
- สนาม: คำอธิบาย
- ค่า: ตรวจสอบสถานะองค์กรไม่แสวงหาผลกำไร
- คลิก เพิ่มฟิลด์
- แถวที่ 5:
- สนาม: หมายเลขบัญชี
- ค่า: {!$Record.Id}
- แถวที่ 1:
- คลิก บันทึก.
ในที่สุดดอนน่า ไหล จะมีลักษณะเหมือนภาพหน้าจอต่อไปนี้:
เมื่อทุกอย่างดูดีแล้ว ให้ทำตามขั้นตอนด้านล่าง:
- คลิก บันทึก.
- เข้าสู่ ป้ายกำกับการไหล เดอะ ชื่อ API จะเติมอัตโนมัติ
- คลิก แสดงขั้นสูง.
- เวอร์ชัน API สำหรับการเรียกใช้โฟลว์: 56
- ป้ายสัมภาษณ์: อย่าฮาร์ดรหัสรหัส {!$Flow.CurrentDateTime}
- คลิก บันทึก.
เกือบจะมี! เมื่อทุกอย่างดูดีแล้ว ให้คลิก เปิดใช้งาน ปุ่ม.
หลักฐานของแนวคิด
ต่อจากนี้ไป หากผู้ใช้ทางธุรกิจสร้างบัญชีกับ Industry ไม่แสวงหาผลกำไรโฟลว์ที่ทริกเกอร์เรกคอร์ดจะสร้างกรณีและปัญหาใหม่โดยอัตโนมัติ ได้เวลาทดสอบกระบวนการแล้ว
- นำทางไปยัง บัญชี แท็บและสร้างบัญชีใหม่สำหรับอุตสาหกรรม ไม่แสวงหาผลกำไรดังที่แสดงในภาพหน้าจอต่อไปนี้:
- เมื่อเสร็จแล้ว คลิกที่ บันทึก โยนน. จะเปิดหน้ารายละเอียดบัญชีและตรวจสอบรายการที่เกี่ยวข้องกับกรณีดังที่แสดงในภาพหน้าจอต่อไปนี้:
การประเมินรายทาง:
ฉันอยากได้ยินจากคุณ!
สิ่งหนึ่งที่คุณได้เรียนรู้จากโพสต์นี้คืออะไร? คุณจินตนาการถึงการนำความรู้ใหม่นี้ไปใช้ในโลกแห่งความเป็นจริงอย่างไร? อย่าลังเลที่จะแบ่งปันในความคิดเห็นด้านล่าง