กฎระบบอัตโนมัติ¶
กฎระบบอัตโนมัติใช้เพื่อกระตุ้นการเปลี่ยนแปลงอัตโนมัติตามการกระทำของผู้ใช้(เช่นใช้การแก้ไขเมื่อฟิลด์ถูกตั้งค่าเป็นค่าเฉพาะ) อีเมลเหตุการณ์เงื่อนไขเวลา (เช่นเก็บบันทึก 7 วันหลังจากครั้งสุดท้ายอัปเดต) หรือเหตุการณ์ภายนอก
ในการสร้างกฎระบบอัตโนมัติด้วยสตูดิโอให้ดำเนินการดังนี้:
Open Studio และคลิก: Guilabel:
Automationsจากนั้น: Guilabel:` ใหม่ 'เลือก: ref:
studio/automated-actions/triggerและหากจำเป็นให้เติมในฟิลด์ที่ปรากฏบนหน้าจอตามทริกเกอร์ที่เลือกคลิก: Guilabel:
เพิ่มแอ็คชั่น 'จากนั้นเลือก:: guilabel:type': ref:action <Studio/Automated-Actions/Action>และกรอกข้อมูลในฟิลด์นั้นปรากฏบนหน้าจอตามการกระทำที่คุณเลือกคลิก: Guilabel:
Save & Closeหรือ: Guilabel:` Save & New`
Example
Tip
ในการแก้ไข: doc:
model <models_modules_apps>ของกฎระบบอัตโนมัติสวิตช์รุ่นก่อนคลิก: Guilabel:automationsในสตูดิโอหรือ: Ref:เปิดใช้งานโหมดนักพัฒนา <นักพัฒนาโหมด>, สร้างหรือแก้ไขกฎระบบอัตโนมัติและเลือก: Guilabel:modelใน: Guilabel: `แบบฟอร์มกฎระบบอัตโนมัติ 'นอกจากนี้คุณยังสามารถสร้างกฎระบบอัตโนมัติจากระยะ Kanban ใด ๆ ได้โดยคลิกที่ไอคอนเกียร์ (: Guilabel:
⚙) ถัดจากชื่อ Kanban Stage จากนั้นเลือก: Guilabel: `Automations ' : Guilabel: `Stage ถูกตั้งค่าเป็นค่าเริ่มต้น แต่คุณสามารถเปลี่ยนได้หากจำเป็น
สิ่งกระตุ้น¶
: Guilabel: Trigger ใช้เพื่อกำหนดว่ากฎระบบอัตโนมัติควรจะเป็นเมื่อใดสมัครแล้ว. <models_modules_apps> `
: REF:
Studio/Automated-Actions/Trigger/Values-Updated: Ref:
Studio/Automated-Actions/Trigger/Email-Events: ref: `Studio/Automated-Actions/Trigger/Timing-Conditions '
: Ref:
Studio/Automated-Actions/Trigger/Custom: Ref:
Studio/Automated-Actions/Trigger/External
Tip
นอกจากนี้คุณยังสามารถกำหนด: Guilabel: ก่อนอัพเดตโดเมน เพื่อระบุไฟล์เงื่อนไขที่ต้องปฏิบัติตาม * ก่อน * กฎระบบอัตโนมัติจะถูกเรียกใช้ ความคมชัดเงื่อนไขที่กำหนดโดยใช้: ref: เงื่อนไขพิเศษ<Studio/Automated-Actions/Trigger/Timing-Timing-Conditions> `และ: REF: ใช้บน <Studio/Automated-Actions/Trigger/Custom> `ตัวกรองถูกตรวจสอบ *ในระหว่าง *การดำเนินการของกฎระบบอัตโนมัติ
เพื่อกำหนด A: Guilabel: ก่อนอัพเดทโดเมน,: ref: เปิดใช้งานนักพัฒนาโหมด <นักพัฒนาโหมด> สร้างหรือแก้ไขกฎระบบอัตโนมัติคลิก: Guilabel: `แก้ไขโดเมน 'จากนั้นคลิก: Guilabel: กฎใหม่'
ตัวอย่างเช่นหากคุณต้องการให้การดำเนินการอัตโนมัติเกิดขึ้นเมื่อมีอีเมลที่อยู่ถูกตั้งค่าบนผู้ติดต่อที่ไม่มีที่อยู่มาก่อน (ตรงกันข้ามในการแก้ไขที่อยู่ที่มีอยู่ของพวกเขา) ให้กำหนด: guilabel: ก่อนอัปเดตDomain to: guilabel: อีเมลไม่ได้ตั้งค่า 'และ:: guilabel: ใช้โดเมนบน'ถึง: Guilabel: `อีเมลถูกตั้งค่า '
ค่าที่อัปเดต¶
ทริกเกอร์ที่มีอยู่ในหมวดหมู่นี้ขึ้นอยู่กับโมเดลและขึ้นอยู่กับการเปลี่ยนแปลงฟิลด์ทั่วไปเช่นการเพิ่มแท็กเฉพาะ (เช่นงาน) หรือการตั้งค่าฟิลด์: Guilabel: `ผู้ใช้ ' หากจำเป็น
กิจกรรมอีเมล¶
ทริกเกอร์การกระทำอัตโนมัติเมื่อได้รับหรือส่งอีเมล
เงื่อนไขเวลา¶
ทริกเกอร์การกระทำอัตโนมัติตามฟิลด์วันที่ มีอยู่:
: Guilabel: `ขึ้นอยู่กับฟิลด์วันที่ ': เลือกฟิลด์ที่จะใช้ถัดจากไฟล์: Guilabel: `delay 'ฟิลด์ฟิลด์
: Guilabel: `หลังจากการสร้างสรรค์ ': การกระทำจะถูกทริกเกอร์เมื่อมีการสร้างบันทึกและบันทึก
: Guilabel: `หลังจากอัปเดตล่าสุด ': การกระทำจะถูกทริกเกอร์เมื่อมีอยู่บันทึกได้รับการแก้ไขและบันทึก
จากนั้นคุณสามารถกำหนด:
ตอบ: Guilabel:
delay: ระบุจำนวนนาทีชั่วโมงวันหรือเดือนหากต้องการทริกเกอร์การกระทำก่อนวันที่ทริกเกอร์ระบุจำนวนลบ คุณเลือก: Guilabel: `ตามทริกเกอร์ฟิลด์วันที่คุณต้องเลือกฟิลด์วันที่ที่จะใช้เพื่อกำหนดความล่าช้า: guilabel:
เงื่อนไขพิเศษ ': คลิก: guilabel:เพิ่มเงื่อนไข' จากนั้นระบุเงื่อนไขที่จะพบเพื่อทริกเกอร์กฎระบบอัตโนมัติ : Guilabel: `กฎใหม่ 'เพื่อเพิ่มเงื่อนไขอื่น
การกระทำจะถูกกระตุ้นเมื่อถึงความล่าช้าและเงื่อนไขคือพบกัน
Example
หากคุณต้องการส่งอีเมลแจ้งเตือน 30 นาทีก่อนเริ่มกเหตุการณ์ปฏิทินเลือก: guilabel: start (เหตุการณ์ปฏิทิน) ภายใต้: Guilabel: Trigger Date และตั้งค่า: Guilabel:` Delay` ถึง **-30 **: Guilabel: `นาที '
Note
โดยค่าเริ่มต้นกำหนดการตรวจสอบวันที่ทริกเกอร์ทุก 4 ชั่วโมงความหมายความละเอียดต่ำในระบบอัตโนมัติตามเวลาอาจไม่ได้รับเกียรติเสมอไป
กำหนดเอง¶
ทริกเกอร์การกระทำอัตโนมัติ:
: Guilabel:
on save: เมื่อบันทึกบันทึก;: Guilabel:
on on Deletion: เมื่อมีการลบบันทึก;: Guilabel:
on UI Change: เมื่อค่าของฟิลด์เปลี่ยนไปใน: ref:` แบบฟอร์มดู <Studio/Views/General/Form> `แม้กระทั่งก่อนที่จะบันทึกบันทึก
สำหรับ: guilabel: on save และ: guilabel:` on on Ui Change` Triggers คุณ** ต้อง ** จากนั้นเลือกฟิลด์ที่จะใช้เพื่อเรียกใช้กฎระบบอัตโนมัติใน: Guilabel: `เมื่ออัปเดต 'ฟิลด์
Warning
หากไม่มีการเลือกฟิลด์ใน: Guilabel: `เมื่ออัปเดต 'การกระทำอัตโนมัติอาจดำเนินการหลายครั้งต่อบันทึก
ทางเลือกคุณยังสามารถกำหนดเงื่อนไขเพิ่มเติมที่จะพบเพื่อทริกเกอร์กฎระบบอัตโนมัติใน: Guilabel: ใช้ฟิลด์ On
Note
: Guilabel: on on UI Change Trigger สามารถใช้กับไฟล์: REF: Studio/Automated-Actions/Action/Python-Code การกระทำและใช้งานได้เท่านั้นเมื่อมีการดัดแปลงด้วยตนเอง ฟิลด์ถูกเปลี่ยนผ่านกฎระบบอัตโนมัติอื่น
ภายนอก¶
ทริกเกอร์การกระทำอัตโนมัติตามเหตุการณ์ภายนอกโดยใช้ webhook Webhook เป็นวิธีการสื่อสารระหว่างสองระบบที่แหล่งที่มาระบบส่งคำขอ HTTP (S) ไปยังระบบปลายทางตามเฉพาะเหตุการณ์. เหตุการณ์ที่เกิดขึ้น
ในการกำหนดค่า: guilabel: on บน webhook trigger คัดลอก: guilabel:` url`สร้างโดย Odoo เข้าสู่ระบบปลายทาง (เช่นระบบที่ได้รับคำขอ) ในการเรียกใช้เพื่อกำหนดระเบียนที่จะอัปเดตโดยใช้กฎระบบอัตโนมัติ
Warning
URL จะต้องได้รับการปฏิบัติเป็น ** เป็นความลับ **; ข้อควรระวังอาจทำให้ระบบของคุณแก่บุคคลที่เป็นอันตราย : Guilabel: `หมุนปุ่มลับเพื่อเปลี่ยนความลับของ URL หากจำเป็น
Note
รหัสที่กำหนดโดยค่าเริ่มต้นในฟิลด์: guilabel: `` target Record 'Webhooks มาจากฐานข้อมูล Odoo อื่น บันทึกที่จะอัปเดตโดยใช้ข้อมูลในน้ำหนักบรรทุก
หากคุณต้องการใช้เนื้อหาของ WebHook เพื่อจุดประสงค์อื่นนอกเหนือจากการค้นหาบันทึก (เช่น * สร้าง * บันทึก) ตัวเลือกเดียวของคุณคือการใช้ไฟล์: REF:
การกระทำของสตูดิโอ/อัตโนมัติ-แอ็คชั่น/แอ็คชั่น/Python-Code: ฟิลด์ Guilabel: `target Record 'จะต้องมีรหัสที่ถูกต้องใด ๆ แต่ผลลัพธ์ของมันไม่มีผลกระทบใด ๆ ต่อการกระทำอัตโนมัติเนื้อหา webhook มีอยู่ในบริบทการดำเนินการของเซิร์ฟเวอร์เป็น 'payload'ตัวแปร (เช่นพจนานุกรมที่มีพารามิเตอร์รับหรือโพสต์ JSONร่างกายของคำขอที่เข้ามา)
นอกจากนี้คุณยังสามารถเลือกที่จะ: guilabel: log call 'เพื่อบันทึก payloadsได้รับเช่นเพื่อให้แน่ใจว่าข้อมูลที่ส่งโดยระบบต้นทางตรงกับไฟล์รูปแบบและเนื้อหาที่คาดหวัง ปัญหาที่อาจเกิดขึ้น ปุ่มที่ด้านบนของ: Guilabel: ` กฎระบบอัตโนมัติ '
การกระทำ¶
เมื่อคุณกำหนดกฎระบบอัตโนมัติ: อ้างอิง: ทริกเกอร์ <สตูดิโอ/อัตโนมัติ-การกระทำ/ทริกเกอร์> `, คลิก: guilabel: เพิ่มการกระทำ 'เพื่อกำหนดการกระทำถูกประหารชีวิต
Tip
คุณสามารถกำหนดการกระทำหลายอย่างสำหรับกฎทริกเกอร์/ระบบอัตโนมัติเดียวกัน การกระทำจะถูกดำเนินการตามลำดับที่กำหนดไว้ ถ้าคุณกำหนด:: guilabel: update record การกระทำแล้ว: Guilabel: ส่งอีเมล 'การกระทำอีเมลใช้ค่าที่อัปเดต ถ้า: guilabel: `ส่งอีเมล การกระทำถูกกำหนดก่อน:: guilabel: updaterecord action, อีเมลใช้ค่าที่ตั้งไว้ * ก่อน * การดำเนินการอัปเดตคือวิ่ง.
อัพเดทบันทึก¶
การดำเนินการนี้อนุญาตให้อัปเดตหนึ่งในฟิลด์ (เกี่ยวข้อง) ของบันทึก : Guilabel: `update 'ฟิลด์และในรายการที่เปิด, เลือกหรือค้นหาฟิลด์ที่จะอัปเดต; เข้าถึงรายการฟิลด์ที่เกี่ยวข้องหากจำเป็น
หากคุณเลือก A: REF: Many2Many Field <Studio/Fields/Relational-ฟิลด์/many2Many> `เลือกว่าฟิลด์จะต้องได้รับการอัปเดตโดย: guilabel: `adding ,: guilabel:` refive 'หรือ: guilabel: `ตั้งค่าเป็น'ค่าที่เลือกหรือโดย: guilabel: `การล้างมัน '
Example
หากคุณต้องการให้การกระทำอัตโนมัติลบแท็กออกจากบันทึกลูกค้าตั้งค่าฟิลด์: guilabel: update เป็น: guilabel:` ลูกค้า> แท็ก 'เลือก: Guilabel: `โดยการลบ 'จากนั้นเลือกแท็ก
Tip
หรือคุณสามารถตั้งค่าฟิลด์ของบันทึกได้แบบไดนามิกโดยใช้ Pythonรหัส. จากนั้นป้อนรหัสที่จะใช้สำหรับการคำนวณค่าของฟิลด์ หากคุณต้องการให้กฎระบบอัตโนมัติคำนวณกำหนดเอง: REF: ฟิลด์ DateTime<Studio/Fields/Simple-Fields/Date-Time> `เมื่อมีการตั้งค่าลำดับความสำคัญของงาน`สูง '(โดยนำแสดงโดยงาน) คุณสามารถกำหนดทริกเกอร์: Guilabel: `ลำดับความสำคัญถูกตั้งค่าเป็น สูง 'และกำหนด:: guilabel: `อัปเดตบันทึกการกระทำดังนี้:
สร้างกิจกรรม¶
การกระทำนี้ใช้เพื่อกำหนดเวลากิจกรรมใหม่ที่เชื่อมโยงกับบันทึก an: guilabel: ประเภทกิจกรรม ', ป้อน: guilabel: title` และคำอธิบาย,จากนั้นระบุเมื่อคุณต้องการกำหนดกิจกรรมใน: Guilabel: วันครบกำหนดในฟิลด์และเลือก A: Guilabel: ประเภทผู้ใช้ ':
หากต้องการกำหนดกิจกรรมให้กับผู้ใช้คนเดียวกันเสมอเลือก: Guilabel:
เฉพาะผู้ใช้ `และเพิ่มผู้ใช้ใน: Guilabel:`ความรับผิดชอบ 'หากต้องการกำหนดเป้าหมายผู้ใช้ที่เชื่อมโยงกับบันทึกแบบไดนามิกให้เลือก: guilabel:
ไดนามิกผู้ใช้ (ตามบันทึก) `และเปลี่ยน:: guilabel:ฟิลด์ผู้ใช้ 'หากจำเป็น
Example
หลังจากผู้นำกลายเป็นโอกาสคุณต้องการให้มีการดำเนินการอัตโนมัติตั้งค่าการโทรสำหรับผู้ใช้ที่รับผิดชอบลูกค้าเป้าหมาย : guilabel: ประเภทกิจกรรม 'ถึง: guilabel: call' และ:: guilabel: ประเภทผู้ใช้ 'ถึง: Guilabel: `ผู้ใช้แบบไดนามิก (ขึ้นอยู่กับการบันทึก)
ส่งอีเมลและส่ง SMS¶
การกระทำเหล่านี้ใช้เพื่อส่งอีเมลหรือข้อความไปยังผู้ติดต่อเชื่อมโยงกับบันทึกเฉพาะ เทมเพลต หรือ an: guilabel: sms template` จากนั้นใน: guilabel: ส่งอีเมลAS หรือ: Guilabel: `ส่งฟิลด์ SMS เป็น 'เลือกวิธีที่คุณต้องการส่งอีเมลหรือข้อความ:
: Guilabel:
อีเมล ': เพื่อส่งข้อความเป็นอีเมลไปยังผู้รับของ: Guilabel: `Email Template: Guilabel:
message: หากต้องการโพสต์ข้อความในบันทึกและแจ้งให้ทราบผู้ติดตามของบันทึก: Guilabel:
note: เพื่อส่งข้อความเป็นบันทึกภายในที่มองเห็นได้ผู้ใช้ภายในในการพูดคุย: Guilabel:
SMS (โดยไม่มีหมายเหตุ): เพื่อส่งข้อความเป็นข้อความไปยังผู้รับ: Guilabel:SMS Template: Guilabel:
SMS (พร้อมหมายเหตุ): เพื่อส่งข้อความเป็นข้อความไปยังผู้รับ: guilabel:sms templateและโพสต์เป็นบันทึกภายในในการพูดพล่อย: Guilabel: `note only ': เพื่อโพสต์ข้อความเป็นหมายเหตุภายในในไฟล์พูดพล่อย
เพิ่มผู้ติดตามและลบผู้ติดตาม¶
ใช้การกระทำเหล่านี้เพื่อ (UN) สมัครสมาชิกผู้ติดต่อที่มีอยู่ไป/จากบันทึก
สร้างบันทึก¶
การกระทำนี้ใช้เพื่อสร้างระเบียนใหม่ในรุ่นใด ๆ
เลือกโมเดลที่ต้องการใน: Guilabel: Record เพื่อสร้าง '; มีโมเดลปัจจุบันตามค่าเริ่มต้น บันทึกแล้วหากคุณต้องการสร้างระเบียนในรุ่นอื่นให้เลือกฟิลด์ในฟิลด์: guilabel: `link field เพื่อเชื่อมโยงบันทึกนั้นกระตุ้นการสร้างสถิติใหม่
Note
รายการดรอปดาวน์ที่เกี่ยวข้องกับ: ฟิลด์ Guilabel: Link Field มีเท่านั้น: REF: one2Many Fields <Studio/Fields/Relational-Fields/One2Many> ที่มีอยู่ในโมเดลปัจจุบันที่เชื่อมโยงกับ A: REF: `Many2One Field<สตูดิโอ/ฟิลด์/relational-fields/many2one> `ในโมเดลเป้าหมาย
Tip
คุณสามารถสร้างกฎระบบอัตโนมัติอื่นด้วย: ref: Studio/Automated-การกระทำ/การกระทำ/อัปเดต-บันทึก `การดำเนินการอัปเดตฟิลด์ของระเบียนใหม่หากจำเป็น เพื่อสร้างงานโครงการใหม่จากนั้นกำหนดให้กับผู้ใช้เฉพาะโดยใช้ไฟล์: Guilabel: `update Record Action
เรียกใช้รหัส¶
การดำเนินการนี้ใช้เพื่อเรียกใช้รหัส Python : Guilabel: code แท็บโดยใช้ตัวแปรต่อไปนี้:
env: สภาพแวดล้อมที่มีการเรียกใช้การกระทำmodel: โมเดลของบันทึกที่การกระทำถูกเรียกใช้; ชุดบันทึกRecord: บันทึกว่าการกระทำใดถูกเรียกใช้Records: Recordset ของระเบียนทั้งหมดที่มีการเรียกใช้การกระทำหลายโหมด;time,` DateTime ',DateUtil,` TimeZone': Libraries Python ที่มีประโยชน์float_compare: ฟังก์ชั่นยูทิลิตี้เพื่อเปรียบเทียบลอยตามเฉพาะความแม่นยำlog (ข้อความ, level = 'info'): ฟังก์ชั่นการบันทึกเพื่อบันทึกข้อมูลการดีบักใน Ir.logging Table_logger.info (ข้อความ): logger เพื่อปล่อยข้อความในบันทึกเซิร์ฟเวอร์userError: คลาสข้อยกเว้นสำหรับการเพิ่มข้อความเตือนผู้ใช้หันหน้าเข้าหาcommand: x2 หลายคำสั่งเนมสเปซaction = {... }: เพื่อส่งคืนการกระทำ
Tip
ตัวแปรที่มีอยู่มีการอธิบายทั้งใน: Guilabel: code 'และ: Guilabel: `help แท็บ
ส่งการแจ้งเตือน webhook¶
การดำเนินการนี้อนุญาตให้ส่งคำขอโพสต์พร้อมค่าของไฟล์: Guilabel: Fields ไปยัง URL ที่ระบุไว้ใน: Guilabel:` url`
: Guilabel: ตัวอย่าง Payload ให้ตัวอย่างของข้อมูลที่รวมอยู่ในคำขอโดยใช้ข้อมูลของบันทึกแบบสุ่มหรือข้อมูลจำลองหากไม่มีการบันทึกมีอยู่.
ดำเนินการกระทำที่มีอยู่¶
การดำเนินการใช้เพื่อทริกเกอร์การกระทำหลายอย่าง (เชื่อมโยงกับโมเดลปัจจุบัน)ในเวลาเดียวกัน : Guilabel: เพิ่ม: การกระทำของเด็ก ป๊อปอัพเลือกการกระทำที่มีอยู่หรือคลิก: Guilabel: ใหม่ เพื่อสร้างใหม่