BITEX التوثيق English

استخدام صفوف API المخصصة في قالب التقرير المالي

يحصل الصف الذي تم تعيين مصدر البيانات على "API مخصص" على قيمه من دالة Python من جانب الخادم بدلاً من عوامل تصفية الحساب أو الصيغة.

يعمل هذا في القوالب المستخدمة في "الميزانية العمومية" و"بيان الربح والخسارة" و"التدفق النقدي" و"البيان المالي المخصص".

متى تستخدمه

استخدم صف Custom API عندما يعتمد بند التقرير على منطق العمل المخصص أو بيانات الميزانية أو التجميعات الخارجية أو الحسابات غير المتوفرة من خلال عوامل تصفية الحساب القياسية.

إذا كنت بحاجة إلى دمج هذه النتيجة مع بنود تقرير أخرى، أضف صفًا لاحقًا مع تعيين مصدر البيانات على "المبلغ المحسوب".

** كيفية إعداده **

  1. افتح نموذج التقرير المالي.
  2. أضف صفًا في جدول Report Line Items.
  3. اضبط مصدر البيانات على "API مخصص".
  4. في صيغة أو عامل تصفية الحساب، أدخل مسار Python منقط مثل my_app.financial_report_api.get_budget_variance.
  5. اختياري: قم بتعيين مرجع الخط إذا كان من المفترض أن تعيد صفوف الصيغة اللاحقة استخدام هذه النتيجة.
  6. اختياري: استخدم Reverse Sign و_Hide If Zero_ و_Hidden Line (للاستخدام الداخلي فقط)_ و_Include in Charts_ و_Value Type_ بنفس الطريقة التي تستخدمها في الصفوف الأخرى.

** كيف يستدعي BITEX وظيفتك **

يستدعي BITEX الوظيفة المستهدفة على الخادم ويمرر:

  • filters: مرشحات التقرير الحالي، ككائن يشبه الإملاء
  • periods: قائمة الفترات التي تم إنشاؤها للتقرير
  • row: مستند صف التقرير المالي الحالي

يتضمن كل عنصر في periods قيمًا مثل:

  • from_date
  • to_date
  • key
  • label

يمكن أن تقبل وظيفتك جميع الوسائط الثلاث، أو تلك التي تحتاجها فقط.

مثال

from frappe.utils import flt

def get_budget_variance(filters=None, periods=None, row=None):
    filters = filters or {}
    periods = periods or []

    values = []

    for period in periods:
        # Replace this placeholder logic with your own query or calculation.
        variance = 0.0
        values.append(flt(variance))

    return values

** متطلبات العودة **

  • إرجاع قائمة بالقيم الرقمية.
  • قم بإرجاع قيمة واحدة بالضبط لكل فترة في periods.
  • قم بإرجاع القيم بنفس ترتيب periods.

إذا كان الصف يحتوي على مرجع سطر، فيمكن لصفوف الصيغة اللاحقة استخدام هذا الرمز، على سبيل المثال API001 + SALES001.

ملاحظات هامة

  • يجب أن يكون المسار بالتنسيق app.module.method.
  • يجب أن يكون الهدف وظيفة Python على مستوى الوحدة في تطبيق مثبت.
  • @frappe.whitelist() غير مطلوب لهذه الميزة إلا إذا كنت تريد أيضًا استدعاء نفس الوظيفة من /api/method.
  • البرامج النصية للخادم غير مدعومة حاليًا لصفوف Custom API.
  • تتم معالجة صفوف Custom API قبل الصفوف المستندة إلى الحساب والصفوف المستندة إلى الصيغة، لذا يجب ألا تعتمد على نتائج سطر القالب الأخرى.
  • إذا قامت الدالة بإظهار خطأ، فإن BITEX يكتب إدخال سجل أخطاء ويملأ الصف بالأصفار بدلاً من ذلك.

** استكشاف الأخطاء وإصلاحها **

  • إذا رأيت خطأ في التحقق من صحة مسار API، فتأكد من كتابة المسار كـ app.module.method.
  • إذا رأيت "لم يتم العثور على الطريقة"، فتأكد من وجود الوظيفة في تلك الوحدة وأن التطبيق مثبت على الموقع.
  • إذا كان الصف يعرض أصفارًا، فراجع سجل الأخطاء لإدخال Custom API Error.
  • إذا لم يتمكن صف الصيغة من استخدام نتيجة API، فتأكد من أن الصف المصدر يحتوي على Line Reference وأن الصيغة تستخدم نفس الرمز تمامًا.