ฉันทำงานเป็นนักพัฒนา/ผู้ดูแลระบบ Salesforce ในองค์กรขนาดกลาง บ่อยครั้งที่เจ้านายของฉันขอให้ฉันสร้างสิ่งที่ "แปลก" บน Salesforce พวกเขาเสนอไอเดียขึ้นมาและเป็นหน้าที่ของฉันที่จะทำให้มันเป็นจริง การเปลี่ยนแปลงประเภทนี้เป็นเรื่องสนุกสำหรับการเรียนรู้สิ่งใหม่ๆ แต่ไม่ได้นำไปสู่แนวทางปฏิบัติที่ดีที่สุดเสมอไป

จะทริกเกอร์ตัวสร้างกระบวนการจากการกดปุ่มบนวัตถุได้อย่างไร

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

ข้อกำหนด: ช่องตัวเลขใหม่ ปุ่มที่กำหนดเอง ตัวสร้างกระบวนการ ความเข้าใจเกี่ยวกับ JavaScript และ SOQL บางประการ

สร้างฟิลด์ตัวเลขใหม่ (ฉันตั้งชื่อ Process Builder Trigger ของฉัน) ตั้งชื่อและอย่าลืมใส่คำอธิบาย เพื่อไม่ให้ผู้ดูแลระบบ/ผู้พัฒนาในภายหลังสับสน

สร้างปุ่มแบบกำหนดเองใหม่ ติดป้ายกำกับและคำอธิบาย

ข้อสำคัญ:ประเภทการแสดงผลต้องเป็น ปุ่มหน้ารายละเอียด ลักษณะการทำงานต้องเป็น เรียกใช้งาน JavaScript

ใส่รหัสนี้ลงในปุ่มของคุณ เปลี่ยนชื่อตัวแปรได้ตามต้องการ

//I am assuming this code allows for the JS SOQL calls
//Check the resources section for SF documentation
{!REQUIRESCRIPT("/soap/ajax/29.0/connection.js")} 
{!REQUIRESCRIPT("/soap/ajax/29.0/apex.js")}
//Select the current account records and put it into the record //variable
var records = sforce.connection.query("SELECT Id, Process_Builder_Trigger__c FROM Account Where id = '{!Account.Id}'");
//The records object come with other garbage so we need to only pull //out the account we are working with
//Pull the account object out of the records variable and set it to //accountRec
var accountRec = records.getArray('records')[0];
//Increase accountRec Process_Builder_Trigger__c 
//JS sees the number field as a string so this will make sure that //is a number - Number(accountRec.Process_Builder_Trigger__c)
accountRec.Process_Builder_Trigger__c = Number(accountRec.Process_Builder_Trigger__c) + 1;
//Update accountRec object 
sforce.connection.update([accountRec]);
//Reload the page 
window.location.reload();

เพิ่มปุ่มลงในโครงร่างออบเจ็กต์

สุดท้ายสร้างตัวสร้างกระบวนการที่จะเริ่มทำงานเมื่อฟิลด์ตัวเลขมีการเปลี่ยนแปลง ตอนนี้ตัวสร้างกระบวนการสามารถทำสิ่งที่คุณต้องการได้!

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

แต่ทำไม

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

และเพราะมันน่าสนใจ

ปัญหา

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

ข้อจำกัดความรับผิดชอบ/แหล่งข้อมูล

ฉันไม่ใช่ “ผู้เชี่ยวชาญ” ในด้านการบริหารหรือการพัฒนาของ Salesforce ปัจจุบัน (8/24/2016) ฉันมีประสบการณ์ 1 ปีกับ Salesforce ทำงานกับนักพัฒนาแพลตฟอร์มที่ได้รับการรับรองจาก Salesforce 1 ของฉัน แน่นอนว่ามีวิธีอื่นๆ ในการแก้ปัญหานี้ แต่นี่คือวิธีที่ฉันใช้เพื่อเรียนรู้สิ่งใหม่ๆ และโดยพื้นฐานแล้วดูว่าเป็นไปได้หรือไม่

เอกสาร Force.com Workbook บน JS และปุ่มที่กำหนดเอง

ขอบคุณที่มาไกลขนาดนี้