> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kayanos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# دوال إعداد التخطيط والرحلة

> دوال نوع الخطة والهدف والإطار والرحلة والتقدم والصحة لسجلات التخطيط المهيأة.

## متى تستخدم هذه الدوال؟

استخدم هذه الدوال فقط مع حقول التخطيط وبنى العلاقات التي تتوقعها. اختبر كل تركيب مدعوم من فئة الخطة ونوعها وإطارها وفئة هدفها.

## طريقة الكتابة

استخدم الدالة بصيغة `planningJourneyKey($.plan_category, $.plan_type, $.base_framework, $.target_entity_class, $.overlay_frameworks)`. لا تكون كل دالة متاحة في كل مكان: دوال التحقق ودوال النموذج ودوال قالب المستند لها عقود سياق مختلفة. لا تفترض أن اقتراح المحرر يعني أن الدالة مدعومة وقت التشغيل.

## مرجع الدوال الكامل

### `planningAllowedTargetRecordTypes`

يعيد أنواع سجلات الهدف المسموح بها لمفتاح كيان علاقة تخطيط محدد.

**التوقيع:** `planningAllowedTargetRecordTypes(planType, targetEntityClass, relationEntityKey)`

**مثال:**

```txt theme={null}
planningAllowedTargetRecordTypes($.plan_type, $.target_entity_class, "locations")
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningAllowedTargetRecordTypes(...)`.

### `planningBaseFrameworkValidation`

صيغة توافق من `planningFrameworkValidation` لإطار أساسي.

**التوقيع:** `planningBaseFrameworkValidation(planType, framework, targetEntityClass)`

**مثال:**

```txt theme={null}
planningBaseFrameworkValidation($.plan_type, $.base_framework, $.target_entity_class)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningBaseFrameworkValidation(...)`.

### `planningExecutionProgress`

يعيد تقدم رحلة التنفيذ لسياق التخطيط المهيأ.

**التوقيع:** `planningExecutionProgress(planCategory, planType, baseFramework, targetEntityClass, overlayFrameworks, inverseRelations)`

**مثال:**

```txt theme={null}
planningExecutionProgress($.plan_category, $.plan_type, $.base_framework, $.target_entity_class, $.overlay_frameworks, $inverseRelations)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningExecutionProgress(...)`.

### `planningFrameworkValidation`

يتحقق من توافق الإطار الأساسي مع نوع الخطة وفئة الهدف المختارين.

**التوقيع:** `planningFrameworkValidation(planType, framework, targetEntityClass)`

**مثال:**

```txt theme={null}
planningFrameworkValidation($.plan_type, $.base_framework, $.target_entity_class)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningFrameworkValidation(...)`.

### `planningHasOverlayFrameworkOptions`

يحدد ما إذا كانت هناك أطر إضافية متاحة لسياق الخطة المختار.

**التوقيع:** `planningHasOverlayFrameworkOptions(planType, targetEntityClass)`

**مثال:**

```txt theme={null}
planningHasOverlayFrameworkOptions($.plan_type, $.target_entity_class)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningHasOverlayFrameworkOptions(...)`.

### `planningIsPlanContext`

يحدد ما إذا كانت قيمة علاقة أو سجل يشبه سياق الخطط.

**التوقيع:** `planningIsPlanContext(value)`

**مثال:**

```txt theme={null}
planningIsPlanContext($relations.context_id)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningIsPlanContext(...)`.

### `planningJourneyDefaultTab`

يعيد مفتاح التبويب الافتراضي لرحلة التخطيط المختارة.

**التوقيع:** `planningJourneyDefaultTab(planCategory, planType, baseFramework, targetEntityClass, overlayFrameworks)`

**مثال:**

```txt theme={null}
planningJourneyDefaultTab($.plan_category, $.plan_type, $.base_framework, $.target_entity_class, $.overlay_frameworks)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningJourneyDefaultTab(...)`.

### `planningJourneyKey`

يعيد مفتاح رحلة التخطيط المهيأة.

**التوقيع:** `planningJourneyKey(planCategory, planType, baseFramework, targetEntityClass, overlayFrameworks)`

**مثال:**

```txt theme={null}
planningJourneyKey($.plan_category, $.plan_type, $.base_framework, $.target_entity_class, $.overlay_frameworks)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningJourneyKey(...)`.

### `planningJourneyProgress`

يعيد درجة تقدم الرحلة المختارة من 0 إلى 100.

**التوقيع:** `planningJourneyProgress(planCategory, planType, baseFramework, targetEntityClass, overlayFrameworks, inverseRelations)`

**مثال:**

```txt theme={null}
planningJourneyProgress($.plan_category, $.plan_type, $.base_framework, $.target_entity_class, $.overlay_frameworks, $inverseRelations)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningJourneyProgress(...)`.

### `planningJourneyTabVisible`

يحدد ما إذا كان تبويب رحلة معين ينطبق على سياق التخطيط المختار.

**التوقيع:** `planningJourneyTabVisible(planCategory, planType, baseFramework, targetEntityClass, overlayFrameworks, tabKey)`

**مثال:**

```txt theme={null}
planningJourneyTabVisible($.plan_category, $.plan_type, $.base_framework, $.target_entity_class, $.overlay_frameworks, "risks")
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningJourneyTabVisible(...)`.

### `planningKeyResultIndicatorValidation`

يتطلب مؤشراً عند نمط تتبع المؤشر ويرفضه عند النمط اليدوي.

**التوقيع:** `planningKeyResultIndicatorValidation(trackingMode, indicator)`

**مثال:**

```txt theme={null}
planningKeyResultIndicatorValidation($.tracking_mode, $.indicator_id)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningKeyResultIndicatorValidation(...)`.

### `planningOverlayFrameworksValidation`

يتحقق من أن كل إطار إضافي مختار مسموح في السياق المحدد.

**التوقيع:** `planningOverlayFrameworksValidation(planType, overlayFrameworks, targetEntityClass)`

**مثال:**

```txt theme={null}
planningOverlayFrameworksValidation($.plan_type, $.overlay_frameworks, $.target_entity_class)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningOverlayFrameworksValidation(...)`.

### `planningPlanHealthStatus`

يعيد حالة صحة التخطيط المحسوبة، أو `null` عندما لا توجد إشارة ذات معنى في الرحلة.

**التوقيع:** `planningPlanHealthStatus(planCategory, planType, baseFramework, targetEntityClass, overlayFrameworks, inverseRelations)`

**مثال:**

```txt theme={null}
planningPlanHealthStatus($.plan_category, $.plan_type, $.base_framework, $.target_entity_class, $.overlay_frameworks, $inverseRelations)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningPlanHealthStatus(...)`.

### `planningPlanTypeValidation`

يتحقق من أن نوع الخطة مسموح للفئة المختارة، أو يعيد رسالة تحقق.

**التوقيع:** `planningPlanTypeValidation(planCategory, planType)`

**مثال:**

```txt theme={null}
planningPlanTypeValidation($.plan_category, $.plan_type)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningPlanTypeValidation(...)`.

### `planningPrimaryTargetEntityClass`

هو الصيغة لهدف واحد من `planningTargetEntityClass`.

**التوقيع:** `planningPrimaryTargetEntityClass(relation, target, planType)`

**مثال:**

```txt theme={null}
planningPrimaryTargetEntityClass($relations.primary_target_id, $.primary_target_id, $.plan_type)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningPrimaryTargetEntityClass(...)`.

### `planningPrimaryTargetValidation`

هو صيغة هدف واحد من `planningTargetValidation`.

**التوقيع:** `planningPrimaryTargetValidation(planType, relation, target)`

**مثال:**

```txt theme={null}
planningPrimaryTargetValidation($.plan_type, $relations.primary_target_id, $.primary_target_id)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningPrimaryTargetValidation(...)`.

### `planningRelationEntityKey`

يستخرج مفتاح كيان علاقة تخطيط مدعوم من قيمة مؤهلة.

**التوقيع:** `planningRelationEntityKey(value)`

**مثال:**

```txt theme={null}
planningRelationEntityKey($.target_id)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningRelationEntityKey(...)`.

### `planningReviewCadenceValidation`

يتطلب وتيرة مراجعة لفئات خطط الموارد والمخاطر والمرونة.

**التوقيع:** `planningReviewCadenceValidation(planCategory, reviewCadence)`

**مثال:**

```txt theme={null}
planningReviewCadenceValidation($.plan_category, $.review_cadence)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningReviewCadenceValidation(...)`.

### `planningTargetEntityClass`

يستنتج فئة كيان هدف واحدة من علاقات الأهداف المهيأة ومعرفاتها.

**التوقيع:** `planningTargetEntityClass(relations, targetIds, planType)`

**مثال:**

```txt theme={null}
planningTargetEntityClass($relations.target_ids, $.target_ids, $.plan_type)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningTargetEntityClass(...)`.

### `planningTargetValidation`

يتحقق من اختيار هدف متوافق واحد لنوع الخطة.

**التوقيع:** `planningTargetValidation(planType, relations, targetIds)`

**مثال:**

```txt theme={null}
planningTargetValidation($.plan_type, $relations.target_ids, $.target_ids)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningTargetValidation(...)`.

### `planningTimelineValidation`

يتحقق من الترتيب الزمني للتواريخ ومن توافقها مع أفق التخطيط.

**التوقيع:** `planningTimelineValidation(startDate, endDate, planningHorizon)`

**مثال:**

```txt theme={null}
planningTimelineValidation($.start_date, $.end_date, $.planning_horizon)
```

**التوافر:** متاحة في سجلات التخطيط المهيأة فقط. تسجل صيغتا الدالة والتحويل، لكن استدعاء الدالة يوضح المدخلات المطلوبة.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | planningTimelineValidation(...)`.

## قائمة تحقق قبل النشر

* ابدأ بقيمة معروفة وتحقق من النتيجة المتوقعة.
* تعامل صراحةً مع القيم الفارغة وnull والقوائم الفارغة.
* لا تضع أسراراً أو رموز وصول أو بيانات شخصية حساسة داخل تعبير.
* راجع [سياقات وتوافر التعبيرات](/ar/reference/expressions/contexts) قبل نسخ تعبير بين ميزتين.

![دوال إعداد التخطيط والرحلة في KayanOS](https://kayanos.app/docs-images/ar/reference/expressions-helpers-planning.png)
