175 lines
5.9 KiB
Markdown
Executable file
175 lines
5.9 KiB
Markdown
Executable file
# 📋 گزارش تشخیص مشکل ورکفلو
|
||
|
||
## 📊 اطلاعات کلی
|
||
|
||
**ورکفلو شناسایی شده:**
|
||
- **ID**: 3
|
||
- **نام**: Workflow جدید
|
||
- **وضعیت**: فعال ✅
|
||
- **Business ID**: 51
|
||
- **تاریخ ایجاد**: 2025-12-03 21:29:40
|
||
- **آخرین بروزرسانی**: 2025-12-04 14:46:26
|
||
|
||
---
|
||
|
||
## 🔍 ساختار ورکفلو
|
||
|
||
### نودها:
|
||
1. **نود تریگر** (ID: `6a6f62bf-1680-4a50-9735-a1acc293d0d0`)
|
||
- نوع: `trigger`
|
||
- عنوان: "ایجاد فاکتور"
|
||
- تریگر: `invoice.created`
|
||
|
||
2. **نود اکشن** (ID: `bf9e10a3-13d8-42ae-8f0d-1481d2b9224f`)
|
||
- نوع: `action`
|
||
- عنوان: "ارسال پیام تلگرام"
|
||
- اکشن: `send_telegram`
|
||
|
||
### اتصالات:
|
||
- تریگر "ایجاد فاکتور" → اکشن "ارسال پیام تلگرام"
|
||
|
||
---
|
||
|
||
## ❌ مشکلات شناسایی شده
|
||
|
||
### 🔴 مشکل اصلی: پیکربندی نادرست فیلد `message`
|
||
|
||
**وضعیت فعلی:**
|
||
```json
|
||
{
|
||
"message": "$6a6f62bf-1680-4a50-9735-a1acc293d0d0",
|
||
"user_id": "1",
|
||
"parse_mode": "None",
|
||
"action_type": "send_telegram",
|
||
"retry_on_failure": true
|
||
}
|
||
```
|
||
|
||
**مشکل:**
|
||
- فیلد `message` به جای یک متن پیام واقعی، به خروجی نود تریگر اشاره میکند: `$6a6f62bf-1680-4a50-9735-a1acc293d0d0`
|
||
- نود تریگر (`invoice.created`) یک object خالی `{}` برمیگرداند
|
||
- در نتیجه، پیام ارسالی به تلگرام یک object خالی است نه یک متن معنادار
|
||
|
||
**نتیجه:**
|
||
- ورکفلو به درستی اجرا میشود (status: تکمیل شده ✅)
|
||
- اما پیامی به تلگرام ارسال نمیشود یا پیام بیمعنا ارسال میشود
|
||
- در لاگها میبینیم: `"success": false` با خطای `"user_id مشخص نشده است"`
|
||
|
||
---
|
||
|
||
## 📜 تاریخچه اجراها
|
||
|
||
### ✅ اجرای #4 (آخرین اجرا)
|
||
- **تاریخ**: 2025-12-04 14:43:55
|
||
- **وضعیت**: تکمیل شده
|
||
- **نتیجه**: ناموفق در ارسال پیام
|
||
- **خطا**: `"user_id مشخص نشده است"`
|
||
|
||
**لاگهای کلیدی:**
|
||
```
|
||
✅ Node 'ایجاد فاکتور' executed successfully
|
||
✅ Node 'ارسال پیام تلگرام' executed successfully (اما با خطا در نتیجه)
|
||
-> "error": "user_id مشخص نشده است"
|
||
-> "success": false
|
||
✅ Workflow completed successfully
|
||
```
|
||
|
||
### ✅ اجرای #3 (اجرای قبلی)
|
||
- **تاریخ**: 2025-12-03 21:30:03
|
||
- **وضعیت**: تکمیل شده
|
||
- **نتیجه**: ناموفق در ارسال پیام
|
||
- **خطا**: `"'TelegramProvider' object has no attribute 'send'"`
|
||
|
||
**توضیح**: این خطا نشان میدهد که در کد قبلی از متد `send` استفاده میشده که وجود نداشته. این مشکل در کد فعلی حل شده (تغییر به `send_text`).
|
||
|
||
---
|
||
|
||
## ✅ بررسی تنظیمات سیستم
|
||
|
||
### تنظیمات تلگرام:
|
||
- ✅ **Bot Token**: پیکربندی شده
|
||
- ✅ **Proxy**: فعال و پیکربندی شده
|
||
- Base URL: `https://eucdn.hesabix.ir/`
|
||
- API Key: موجود
|
||
|
||
### کاربران متصل به تلگرام:
|
||
- ✅ **تعداد کاربران**: 2 کاربر به ربات تلگرام متصل هستند
|
||
|
||
---
|
||
|
||
## 💡 راهحل پیشنهادی
|
||
|
||
### 🔧 تغییرات مورد نیاز در کانفیگ نود "ارسال پیام تلگرام":
|
||
|
||
**۱. اصلاح فیلد `message`:**
|
||
|
||
باید یک متن پیام معنادار وارد شود، مثلاً:
|
||
|
||
```json
|
||
{
|
||
"message": "فاکتور جدیدی ایجاد شد!",
|
||
"user_id": "1",
|
||
"parse_mode": "None",
|
||
"action_type": "send_telegram"
|
||
}
|
||
```
|
||
|
||
یا میتوانید از اطلاعات فاکتور استفاده کنید (اگر در trigger_data موجود باشد):
|
||
|
||
```json
|
||
{
|
||
"message": "فاکتور جدید شماره $6a6f62bf-1680-4a50-9735-a1acc293d0d0.invoice_code ایجاد شد.",
|
||
"user_id": "1",
|
||
"parse_mode": "None",
|
||
"action_type": "send_telegram"
|
||
}
|
||
```
|
||
|
||
**۲. بررسی `user_id`:**
|
||
|
||
اطمینان حاصل کنید که `user_id` صحیح است و کاربر مورد نظر:
|
||
- عضو کسبوکار با ID 51 است
|
||
- به ربات تلگرام متصل است
|
||
|
||
---
|
||
|
||
## 🎯 خلاصه
|
||
|
||
| مورد | وضعیت |
|
||
|------|-------|
|
||
| ورکفلو فعال است | ✅ |
|
||
| ساختار ورکفلو صحیح است | ✅ |
|
||
| تنظیمات تلگرام پیکربندی شده | ✅ |
|
||
| کاربران به تلگرام متصل هستند | ✅ |
|
||
| کانفیگ پیام صحیح است | ❌ |
|
||
| پیام به تلگرام ارسال میشود | ❌ |
|
||
|
||
**مشکل اصلی:**
|
||
- فیلد `message` در کانفیگ نود "ارسال پیام تلگرام" به جای متن پیام، به خروجی نود تریگر اشاره میکند که یک object خالی است.
|
||
|
||
**راهحل:**
|
||
- تغییر فیلد `message` به یک متن پیام معنادار در تنظیمات ورکفلو
|
||
|
||
---
|
||
|
||
## 📝 نکات اضافی
|
||
|
||
1. **Reference به نودهای قبلی:**
|
||
- اگر میخواهید از اطلاعات نود قبلی استفاده کنید، باید به فیلد خاصی از آن اشاره کنید:
|
||
- مثال: `$node_id.field_name`
|
||
- نه: `$node_id` (که کل object را برمیگرداند)
|
||
|
||
2. **اطلاعات موجود در trigger:**
|
||
- تریگر `invoice.created` اطلاعات فاکتور را در `trigger_data` قرار میدهد
|
||
- میتوانید در پیام از این اطلاعات استفاده کنید
|
||
|
||
3. **لاگهای بیشتر:**
|
||
- تمام اجراهای ورکفلو با جزئیات کامل در جدول `workflow_executions` و `workflow_logs` ذخیره میشوند
|
||
- میتوانید برای دیباگ بیشتر از این لاگها استفاده کنید
|
||
|
||
---
|
||
|
||
**تاریخ گزارش:** 2025-12-04
|
||
|
||
|
||
|