راهنمای سیستم اتوماسیون میزکار
میزکار
راهنمای شروع (زبان ساده): اگر تازه با اتوماسیون آشنا میشوید، اول اتوماسیون میزکار چیست و چطور کار میکند؟ را بخوانید. این پست مرجع فنی است (فیلدها، Expression، توکنها).
این قابلیت چیست؟
اتوماسیون به شما اجازه میدهد بدون کدنویسی، وقتی روی موجودیتهای میزکار رویدادی رخ میدهد (ایجاد، ویرایش، حذف، تغییر وضعیت فرایند)، شرطی را بررسی کنید و اکشن خودکار اجرا شود: پیامک، تسک، یادداشت، نوتیفیکیشن، ساخت آیتم فرم، وبهوک، تغییر گام فرایند، یا مسدود کردن عملیات.
کجا در پنل پیدا میشود؟
بخش | مسیر |
|---|---|
قوانین | تنظیمات → فرایندها → قوانین اتوماسیون ( |
لاگ اجرا | تنظیمات → فرایندها → لاگ اتوماسیون ( |
تاریخچه زیر موجودیت | صفحه جزئیات فاکتور، تراکنش، قرارداد، پروژه، کارمند، سند انبار، مخاطب |
قوانین مرتبط با گام | تنظیمات → گامهای فرایند → ویرایش گام |
ساختار یک قانون
فیلد | توضیح |
|---|---|
Scope | نوع موجودیت هدف (مثلاً |
EventType |
|
TrackStepId | فقط برای |
ScopeEntityId | فقط برای |
Expression | شرط اختیاری (خالی = همیشه اجرا) |
ActionType + پارامترها | اکشن و JSON پارامترها |
OrderIndex | ترتیب ارزیابی (کمتر = زودتر) |
IsActive | فعال / غیرفعال |
Scopeها (موجودیت هدف)
Scope | موجودیت | رویدادهای پشتیبانیشده |
|---|---|---|
| مخاطب | Created, Updated, Deleted |
| فاکتور فروش | همه + StatusChanged |
| فاکتور خرید | همه + StatusChanged |
| تراکنش دریافت | همه + StatusChanged |
| تراکنش پرداخت | همه + StatusChanged |
| تراکنش هزینه | همه + StatusChanged |
| آیتم فرم | همه + StatusChanged (+ |
| پروژه | همه + StatusChanged |
| کارمند | همه + StatusChanged |
| قرارداد | همه + StatusChanged |
| سند انبار | همه + StatusChanged |
متغیرهای مشترک Expression
در همه scopeها این متغیرها در دسترساند:
متغیر | معنی |
|---|---|
نام موجودیت مبدأ ( | شیء کامل موجودیت رویداد |
| همان موجودیت (alias) |
| رشته scope (مثلاً |
| نوع رویداد ( |
| فقط |
غنیسازی خودکار context (AutomationContextEnricher)
کلید اضافهشده | چه زمانی |
|---|---|
| وقتی موجودیت مبدأ یا مرتبط مشتری دارد |
| شناسه مشتری resolveشده |
| آرایه شناسه تگها — برای |
| تراکنش دارای |
| تراکنش دارای |
فیلدهای موجودیت در Expression (به تفکیک context)
فیلدهای پایه (همه WorkSpaceEntity)
فیلد | نوع | توضیح |
|---|---|---|
| int | شناسه |
| int | میزکار |
| DateTimeOffset | زمان ایجاد |
| DateTimeOffset? | آخرین ویرایش |
| int | ایجادکننده |
| int? | ویرایشکننده |
| bool | حذف منطقی |
فیلدهای فرایند (WorkSpaceTrackableEntity)
فیلد | نوع | توضیح |
|---|---|---|
| enum | Draft, Active, Completed, Canceled |
| int? | فرایند |
| int? | گام فعلی |
| int? | مسئول |
| int? | نقش مسئول |
| string | عنوان نمایشی |
Contact (Scope: Contact)
فیلد | نوع |
|---|---|
| bool — شخص / شرکت |
| string |
| string (محاسباتی) |
| int? |
| string |
| date? |
| decimal |
| int? |
| string |
| string |
| collection — |
| collection — موبایل در |
| collection |
Context اضافه: ContactTagIds (آرایه int)
Invoice — Scope: InvoiceSales / InvoicePurchase
فیلد | نوع |
|---|---|
| Sales / Purchase |
| string |
| string |
| string |
| decimal |
| decimal |
| decimal (محاسباتی) |
| decimal? |
| DateTimeOffset |
| DateTimeOffset? |
| int? |
| int |
| |
| bool |
| collection |
| string |
Context اضافه: Contact, ContactId, ContactTagIds
Transaction — Scope: TransactionReceipt / Payment / Cost
فیلد | نوع |
|---|---|
| enum |
| string |
| int |
| DateTimeOffset |
| decimal |
| decimal (محاسباتی) |
| int? |
| string |
| string |
Context اضافه: Contact, ContactId, ContactTagIds, Invoice (اگر InvoiceId دارد), Project (اگر ProjectId و بدون Contact مستقیم)
FormItem — Scope: FormItem (+ ScopeEntityId = FormId)
فیلد | نوع |
|---|---|
| int |
| int |
| string — برای لینک عمومی |
| string — داده JSON فرم |
| collection ارتباط با Invoice, Contact, … |
| string |
Context اضافه: Contact از Relatedهای فرم
Project — Scope: Project
فیلد | نوع |
|---|---|
| int |
| string |
| int? |
| DateTimeOffset? |
| string |
Context اضافه: Contact اگر ContactId دارد
Employee — Scope: Employee
فیلد | نوع |
|---|---|
| string |
| string |
| |
| int? |
| string |
| |
| long (مزایا) |
| string |
| |
| string |
Contract — Scope: Contract
فیلد | نوع |
|---|---|
| string |
| |
| DateTimeOffset |
| string |
| decimal |
| int? |
| int |
| string |
Context اضافه: Contact اگر ContactId دارد
WarehouseDocument — Scope: WarehouseDocument
فیلد | نوع |
|---|---|
| int |
| enum (Receipt, Issue, Transfer, …) |
| string |
| DateTimeOffset |
| int? |
| int? |
| int? |
| string |
| collection |
| string |
Context اضافه: Contact اگر ContactId دارد
TrackStep (در CurrentStep / NextStep)
فیلد | نوع |
|---|---|
| int |
| string |
| int |
| enum |
| string |
| int? |
| FixedOwner, CreatedBy, CreatedByManager |
| bool |
اکشنها و پارامترها
ActionType | پارامترهای اصلی |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
توکنهای پیامک (SendSms)
وقتی receptorFrom: Contact باشد، در message میتوانید از {{...}} استفاده کنید:
توکن | منبع |
|---|---|
| مخاطب |
| اولین لینک نوع Mobile |
| فاکتور |
| تعریف فرم |
| آیتم فرم |
| لینک عمومی ویرایش فرم |
| تراکنش |
| پروژه |
دکمه پیشنمایش پیام در modal قانون (برای SendSms) نمونه resolve را نشان میدهد.
Expression — نمونههای رایج
Invoice.FinalAmount > 5000000
Contact.Balance < 0
Contact.LeadSourceId == null
Contact.Addresses.Count == 0
ContactTagIds.Contains(15)
Invoice.FinalAmount >= 100 && NextStep.Id == 42Expression خالی = قانون همیشه (در صورت match شدن scope/event) اجرا میشود.
لاگ و عیبیابی
لاگ مرکزی: فیلتر بر اساس تاریخ، scope، action، event، matched
زیر موجودیت: کارت «تاریخچه اتوماسیون»
فیلدهای مهم:
matched,evalError, وضعیت صف (AutomationActionQueue)
منابع
شروع ساده: اتوماسیون میزکار چیست و چطور کار میکند؟
سناریوها و مثالهای کاربردی: راهنمای سناریوهای اتوماسیون
نظرسنجی بعد از فاکتور: اتوماسیون نظرسنجی بعد از فاکتور