جداول التغيير الفعلية لرؤية المخزون والمتوفرة حسب التعهد

يوضح هذا المقال كيفية إعداد ميزة جدول التغيير الفعلي لجدولة التغييرات الفعلية المستقبلية وحساب الكميات المتاحة للتعهد (ATP). إن التوفر حسب التعهد (ATP) هو كمية الصنف المتوفرة ويمكن التعهد بها لعميل في الفترة التالية. قد يؤدي استخدام هذا الحساب إلى زيادة قدرة تنفيذ الطلبات بشكل كبير.

بالنسبة للعديد من المصنّعين أو تجار التجزئة أو البائعين، لا يكفي فقط معرفة ما هو متوفر حاليًا. وينبغي أن تكون لديهم رؤية كاملة للتوافر في المستقبل. وينبغي أن تراعي هذه الاتاحه المستقبلية كلاً من العرض والطلب المستقبلي وATP.

القياسات المحسوبة للكميات المتوفرة حسب التعهد (ATP)

مقياس ATP المحسوب هو مقياس محسوب محدد مسبقًا يُستخدم عادةً للعثور على الكمية المتوفرة حاليًا. كمية التوريد هي مجموع الكميات لتلك المقاييس المادية التي لها نوع معدل الجمع وكمية الطلب هي مجموع كميات تلك القياسات المادية التي لها نوع معدل الطرح.

يمكنك إضافة عدة مقاييس محسوبة لحساب كميات ATP متعددة. ومع ذلك، يجب أن يكون العدد الإجمالي للقياسات الفيزيائية المميزة عبر جميع المقاييس المحسوبة للاعبي التنس المحترفين أقل من تسعة.

هام

المقياس المحسوب هو تركيبة من القياسات الفيزيائية. يمكن أن تتضمن صيغته قياسات فيزيائية فقط بدون نسخ مكررة، وليس قياسات محسوبة.

على سبيل المثال، يمكنك إعداد القياس المحسوب التالي:

الفعلي المتوفر = (PhysicalInvent + OnHand + Unrestricted + QualityInspection + Inbound) – (ReservPhysical + SoftReservePhysical + Outbound)

ويمثل مجموع (PhysicalInvent + OnHand + Unrestricted + QualityInspection + Inbound) التوريد، ويمثل مجموع (ReservPhysical + SoftReservePhysical + Outbound) الطلب. وبالتالي، يمكن فهم المقياس المحسوب بالطريقة التالية:

الفعلي المتوفر = التوريد - الطلب

يمكنك إضافة مقياس محسوب آخر لحساب كمية ATP الفعلية المتاحة.

On-hand-physical = (PhysicalInvent + OnHand + Unrestricted + QualityInspection + Inbound) – (Outbound)

هناك ثمانية مقاييس فيزيائية مميزة عبر هذين المقياسين المحسوبين لـ ATP: PhysicalInvent، وOnHand، وUnrestricted، وQualityInspection، وInbound، وReservPhysical، وSoftReservePhysical، وOutbound.

لمزيد من المعلومات حول المقاييس المحسوبة، راجع المقاييس المحسوبة.

تشغيل وإعداد جدولة التغيير الفعلية وATP في الإصدار 2 من واجهة المستخدم

ينطبق هذا القسم عند استخدام واجهة مستخدم رؤية المخزون الإصدار 2.

قبل أن تتمكن من استخدام ATP، يتعين عليك إعداد مقياس محسوب واحد أو أكثر لحساب كميات ATP. يتعين أيضًا تشغيل الميزة وتكوين إعدادات ATP في Microsoft Power Apps.

اتبع الخطوات التالية لتشغيل ميزة جدولة التغيير الفعلي في Power Apps وتكوين إعدادات ATP.

  1. قم بالتسجيل في Power Apps وافتح تطبيق رؤية المخزون.

  2. في جزء التنقل، حدد إدارة الميزات.

  3. في تجانب متوفر حسب التعهد، حدد إدارة.

  4. قم بتعيين الخيار تمكين الميزة إلى True لتشغيل ميزة ATP.

  5. قم بتعيين الخيار جدول لمدة 180 يومًا إلى True لدعم فترة جدول ATP الأطول (180 يومًا).

    هام

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

  6. قم بتعيين حقل الحد الأقصى لفترة الجدولة (بالأيام)‬ إلى عدد الأيام التي يمكن للمستخدمين عرض التغييرات الفعلية المجدولة وإرسالها. سيحصل المستخدمون الذين يستعلمون عن معلومات المخزون على الكمية الفعلية والتغييرات الفعلية المجدولة وATP لكل يوم في الفترة المحددة، بدءًا من التاريخ الحالي. الحد الأقصى لقيمة هذا الحقل هو 180 يومًا. بشكل افتراضي، يتم تعيينه إلى 30 يومًا. ولذلك، يمكنك جدولة التغييرات لمدة تصل إلى 30 يومًا من اليوم.

    هام

    وتتضمن فترة الجدولة التاريخ الحالي. لذلك، يمكن للمستخدمين جدولة التغييرات الفعلية لتحدث في أي وقت من التاريخ الحالي (اليوم الذي يتم فيه إرسال التغيير) حتى أيام (فترة الجدولة - 1) في المستقبل.

  7. في قسم مقاييس الجدول الزمني، قم بإعداد مقاييس الجدول الزمني. يمكنك استخدام المقاييس المحسوبة الموجودة كمقاييس جدول زمني، أو يمكنك إنشاء مقاييس جديدة. عند الاستعلام عن رؤية المخزون، يتم توفير قيمة ATP للقياسات المحسوبة المحددة، استنادًا إلى التغييرات المجدولة للقياسات المادية للمكون. في قسم مقاييس الجدول، حدد تكوين جدول التغيير الجديد الفعلي V2 إلى شريط الأدوات لإضافة ربط قياس محسوب جديد لـ ATP. المقياس المحسوب هو ما تريد استخدامه للعثور على الكمية الفعلية المتوفرة حاليًا. للحصول على معلومات حول كيفية إنشاء مقياس محسوب، راجع المقاييس المحسوبة.

    هام

    الصيغة الافتراضية المحسوبة لـ ATP هي كمرجع. يمكنك تعديل وإضافة مصادر بيانات ومقاييس مادية أخرى لإعداد حساب ATP الصحيح لشركتك.

  8. في قسم ‏‫تكوين مجموعة مؤشرات ATP‬، قم بتعيين مؤشر ATP الخاص بك. يشبه مؤشر ATP التسلسل الهرمي لمؤشر المنتج الذي يتيح لك تجميع نتائج الاستعلام حسب أبعاد محددة. على سبيل المثال، إذا قمت بتعيين ColorId وSizeId كما تم تعيين مؤشر ATP الخاص بك، سيتم تجميع نتائج الاستعلام حسب اللون والحجم. يمكن أن يكون لديك مجموعات مؤشرات متعددة.

    هام

    إنه مؤشر ColorId وSizeId الافتراضي مرجعي. يمكنك إزالة الأبعاد وإضافة أبعاد أخرى.

  9. حدد حفظ.

  10. عند الانتهاء من تكوين كل الإعدادات المطلوبة، حدد تحديث التكوين ضمن إعدادات المسؤول في جزء التنقل.

لمزيد من المعلومات، راجع ‬‏‫إكمال التكوين وتحديثه.

تشغيل وإعداد جدولة التغيير الفعلية وATP في الإصدار 1 من واجهة المستخدم

ينطبق هذا القسم عند استخدام واجهة مستخدم رؤية المخزون الإصدار 1.

اتبع الخطوات التالية لتشغيل ميزة جدولة التغيير الفعلي في Power Apps وتكوين إعدادات ATP.

  1. قم بالتسجيل في Power Apps وافتح تطبيق رؤية المخزون.

  2. افتح صفحة التكوين.

  3. في علامة التبويب إدارة الميزات، قم بتشغيل ميزة متوفر حسب التعهد.

  4. حدد علامة التبويب إعدادات ATP.

  5. عند الاستعلام عن رؤية المخزون، ستوفر نتيجة تتضمن كل مقياس ATP محسوب قمت بإضافته هنا. حدد إضافة لإضافة مقياس محسوب جديد لـ ATP.

  6. قم بتعيين الحقول التالية:

    • مصدر البيانات - حدد مصدر البيانات المرتبط بالقياس المحسوب.
    • القياس المحسوب - حدد المقياس المحسوب المرتبط بمصدر البيانات المحدد والذي تريد استخدامه للعثور على الكمية المتاحة حاليًا.
    • فترة الجدولة - أدخل عدد الأيام التي يمكن للمستخدمين فيها عرض التغييرات الفعلية المجدولة وإرسالها عند استخدام القياس المحسوب المحدد. سيحصل المستخدمون الذين يستعلمون عن معلومات المخزون على الكمية المتاحة، والتغييرات المجدولة الفعلية، وATP لكل يوم في هذه الفترة، بدءًا من التاريخ الحالي. حدد عددًا صحيحًا من 1 إلى 7.

    هام

    وتتضمن فترة الجدولة التاريخ الحالي. لذلك، يمكن للمستخدمين جدولة التغييرات الفعلية لتحدث في أي وقت من التاريخ الحالي (اليوم الذي يتم فيه إرسال التغيير) حتى أيام (فترة الجدولة - 1) في المستقبل.

  7. حدد حفظ.

  8. كرر الخطوات من 5 إلى 7 حتى تقوم بإضافة جميع القياسات المحسوبة التي تحتاجها لـ ATP.

  9. عند الانتهاء من تكوين كافة الإعدادات المطلوبة، حدد تحديث التكوين.

كيفية عمل جدول التغيير الفعلي وحسابات ATP

يحدد جدول التغيير الفعلي التواريخ المتوقعة وكميات التغييرات الفعلية المجدولة. يمكنك تقديم جدول التغيير الفعلي لرؤية المخزون، بشرط أن تكون التواريخ ضمن الفترة المحددة بواسطة إعداد فترة الجدولة (راجع قسم تمكين الميزات وإعدادها في هذه المقالة). سيحصل المستخدمون الذين يستعلمون عن معلومات المخزون على الكمية المتاحة، والتغييرات المجدولة الفعلية، وATP لكل يوم في هذه الفترة.

تكون التغييرات المجدولة في البداية غير ملتزم بها ولذلك لا تؤثر علي الكميات الفعلية في النظام. لتنفيذ التغييرات، يجب تقديم حدث تغيير فعلي، الذي يقوم بتحديث الكمية الفعلية المتاحة. يجب بعد ذلك إعادة التغيير المجدول عن طريق إرسال جدول التغيير الفعلي لكمية سالبة مطابقة.

على سبيل المثال، تقدم طلبًا لشراء 10 دراجات وتتوقع وصولها غدًا. لذا ، فأنت ترسل جدول تغيير فعليًا يحتوي على كمية واردة قدرها 10 ومؤرخ بتاريخ يوم غد. عندما يصل الطلب في اليوم التالي، يمكنك إضافة الدراجات إلى مخزونك الفعلي. يجب عليك بعد ذلك إجراء التغيير على نظامك لتحديث الكمية الحالية الفعلية. لإجراء التغيير ، يمكنك إرسال حدث تغيير فعلي به كمية واردة قدرها 10. يمكنك بعد ذلك إرجاع التغيير المجدول عن طريق إرسال جدول تغيير فعلي يحتوي على كمية واردة قدرها -10.

عندما تقوم بالاستعلام عن "رؤية المخزون" للكميات الفعلية وكميات ATP، فإنها تُرجع المعلومات التالية لكل يوم في فترة الجدولة:

  • التاريخ - التاريخ الذي تنطبق عليه النتيجة. المنطقة الزمنية هي التوقيت العالمي (UTC).
  • الكمية الفعلية – الكمية الحالية الفعلية في التاريخ المحدد. يتم إجراء هذا الحساب وفقًا لمقياس ATP المحسوب الذي تم تكوينه لرؤية المخزون.
  • التوريد المجدول - مجموع كافة الكميات الواردة المجدولة التي لم تصبح متاحة فعليًا للاستهلاك الفوري أو الشحن اعتبارًا من التاريخ المحدد.
  • الطلب المجدول – مجموع كافة الكميات الصادرة المجدولة التي لم يتم استهلاكها أو شحنها اعتبارًا من التاريخ المحدد.
  • كمية ATP - الحد الأدنى المتوقع للكمية الفعلية في التاريخ المحدد حتى نهاية فترة الجدولة. تتضمن هذه الكمية كافة تعديلات الكمية المجدولة. وهو الحد الأقصى للكمية التي يمكن التعهد بها في التاريخ الحالي للتسليم أو الاستهلاك في هذا اليوم.

على سبيل المثال، إذا كان التاريخ الحالي هو 1 فبراير 2022، وكانت فترة الجدولة 7، فيمكن للمستخدمين إرسال التغييرات الفعلية المجدولة التي يُتوقع حدوثها من 1 فبراير حتى 7 فبراير 2022. وفي هذه الحالة، يتم حساب كمية ATP في 3 فبراير، على سبيل المثال، بناءً على الكمية الفعلية المتوفرة لذلك اليوم والكميات المجدولة من 3 فبراير حتى 7 فبراير.

مثال

يوضح المثال التالي كيفية تاثير سلسلة من تغييرات الكمية المجدولة على الكميات الفعلية وكميات ATP التي تُظهرها "رؤية المخزون". كما يوضح أيضًا كيفية تنفيذ تغيير مجدول، وكيف يؤثر تغيير الجدول المُنفذ على النتائج، وما يمكن أن يحدث إذا لم تقم بإجراء تغيير مجدول.

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

  1. تم تكوين الإعدادات التالية لنظامك في صفحة إعداد ATP في تطبيق رؤية المخزون في Power Apps:

    • مقاييس الجدولة – تتم إضافة مقياس محسوب يُسمى الكمية المتاحة هنا. يتم حساب هذا على النحو التالي الكمية المتاحة = العرضالطلب.
    • الحد الأقصى لفترة الجدول (أيام) – تم تعيين القيمة إلى 7.
    • تكوين مجموعة مؤشرات ATP – تتم إضافة ColorId وSizeId هنا.
  2. تنطبق الشروط التالية أيضًا:

    • التاريخ الحالي هو 1 فبراير 2022.
    • الكمية المتوفرة حاليًا هي 20.
  3. بالنسبة للتاريخ الحالي (1 فبراير 2022)، يتم إرسال كميه طلب مجدولة قيمتها 3 إلى "رؤية المخزون". ولذا، يكون المخزون الفعلي المتوقع هو 17. يعرض الجدول التالي النتيجة.

    التاريخ الكمية المتاحة التوريد المجدول الطلب المجدول الفعلي المتوقع متوفر للتعهد (ATP)
    2022-02-01 20 3 17 17
    2022-02-02 20 17 17
    2022-02-03 20 17 17
    2022-02-04 20 17 17
    2022-02-05 20 17 17
    2022-02-06 20 17 17
    2022-02-07 20 17 17
  4. في التاريخ الحالي (1 فبراير 2022)، يتم إرسال كميه توريد مجدولة قدرها 10 بحلول تاريخ 3 فبراير 2022. يعرض الجدول التالي النتيجة.

    التاريخ الكمية المتاحة التوريد المجدول الطلب المجدول الفعلي المتوقع متوفر للتعهد (ATP)
    2022-02-01 20 3 17 17
    2022-02-02 20 17 17
    2022-02-03 20 10 27 27
    2022-02-04 20 27 27
    2022-02-05 20 27 27
    2022-02-06 20 27 27
    2022-02-07 20 27 27
  5. في التاريخ الحالي (1 فبراير 2022)، تقوم بإرسال تغييرات الكمية المجدولة التالية:

    • تُقدر كمية الطلبات بعدد 15 طلب في 4 فبراير 2022
    • تُقدر كمية التوريد بعدد 1 في 5 فبراير 2022
    • تُقدر كمية التوريد بعدد 3 في 6 فبراير 2022

    يعرض الجدول التالي النتيجة.

    التاريخ الكمية المتاحة التوريد المجدول الطلب المجدول الفعلي المتوقع متوفر للتعهد (ATP)
    2022-02-01 20 3 17 12
    2022-02-02 20 17 12
    2022-02-03 20 10 27 12
    2022-02-04 20 15 12 12
    2022-02-05 20 1 13 13
    2022-02-06 20 3 16 16
    2022-02-07 20 16 16
  6. في التاريخ الحالي (1 فبراير 2022)، تقوم بشحن كمية الطلب المجدولة والمقدرة بعدد 3. وبالتالي، يجب عليك تنفيذ هذا التغيير بحيث ينعكس في الكمية الحالية الفعلية لديك. لإجراء التغيير، يمكنك إرسال حدث تغيير فعلي به كمية صادرة تُقدر بعدد 3. يمكنك بعد ذلك إرجاع التغيير المجدول عن طريق إرسال جدول تغيير فعلي يحتوي على كمية صادرة قدرها -3. يعرض الجدول التالي النتيجة.

    التاريخ الكمية المتاحة التوريد المجدول الطلب المجدول الفعلي المتوقع متوفر للتعهد (ATP)
    2022-02-01 17 0 17 12
    2022-02-02 17 17 12
    2022-02-03 17 10 27 12
    2022-02-04 17 15 12 12
    2022-02-05 17 1 13 13
    2022-02-06 17 3 16 16
    2022-02-07 17 16 16
  7. في اليوم التالي (2 فبراير 2022)، يتم نقل فتره الجدولة إلى الأمام بمقدار يوم واحد. يعرض الجدول التالي النتيجة.

    التاريخ الكمية المتاحة التوريد المجدول الطلب المجدول الفعلي المتوقع متوفر للتعهد (ATP)
    2022-02-02 17 17 12
    2022-02-03 17 10 27 12
    2022-02-04 17 15 12 12
    2022-02-05 17 1 13 13
    2022-02-06 17 3 16 16
    2022-02-07 17 16 16
    2022-02-08 17 16 16
  8. ومع ذلك، بعد يومين أي في (4 فبراير 2022)، لم تصل كمية التوريد المقدرة بعدد 10 التي تم جدولتها ليوم 3 فبراير. يعرض الجدول التالي النتيجة.

    التاريخ الكمية المتاحة التوريد المجدول الطلب المجدول الفعلي المتوقع متوفر للتعهد (ATP)
    2022-02-04 17 15 2 2
    2022-02-05 17 1 3 3
    2022-02-06 17 3 6 6
    2022-02-07 17 6 6
    2022-02-08 17 6 6
    2022-02-09 17 6 6
    2022-02-10 17 6 6

    وكما ترى، لا تؤثر التغييرات الفعلية المجدولة (والتي لم يتم تنفيذها) على الكمية الحالية الفعلية.

يمكنك إرسال جداول التغيير وأحداث التغيير واستعلامات ATP من خلال API

ويمكنك استخدام عناوين URL لواجهة برمجة التطبيقات (API) التالية لإرسال جداول التغيير وأحداث التغيير والاستعلامات.

المسار الطريقة ‏‏الوصف‬
/api/environment/{environmentId}/onhand/changeschedule POST يمكنك إنشاء تغيير فعلي مجدول.
/api/environment/{environmentId}/onhand/changeschedule/bulk POST يمكنك إنشاء تغييرات فعلية مجدولة.
/api/environment/{environmentId}/onhand POST يمكنك إنشاء حدث تغيير فعلي واحد
/api/environment/{environmentId}/onhand/bulk POST يمكنك إنشاء أحداث تغيير متعددة.
/api/environment/{environmentId}/onhand/indexquery POST الاستعلام باستخدام الأسلوب POST.
/api/environment/{environmentId}/onhand GET الاستعلام باستخدام الأسلوب GET.
/api/environment/{environmentId}/onhand/exactquery POST الاستعلام الدقيق باستخدام الأسلوب POST.

لمزيد من المعلومات، راجع واجهات برمجة التطبيقات العامة لرؤية المخزون.

إنشاء جدول تغيير واحد متاح

يتم إنشاء جدول تغيير متاح من خلال إرسال طلب POST إلى عنوان URL لخدمة رؤية المخزون ذات الصلة (راجع القسم إرسال جداول التغيير وأحداث التغيير واستعلامات ATP من خلال واجهة برمجة التطبيقات). يمكنك أيضًا تقديم طلبات مجمعة.

يمكن إنشاء جدول تغيير فعلي فقط إذا كان التاريخ المجدول بين التاريخ الحالي ونهاية فترة الجدول الحالية. يجب أن يكون تنسيق التاريخ والوقت السنة-الشهر-اليوم (على سبيل المثال، 2022-02-01). يجب أن يكون تنسيق الوقت دقيقًا لليوم فقط.

تنشئ واجهة برمجة التطبيقات هذه جدولًا واحدًا للتغيير متاحًا.

Path:
    /api/environment/{environmentId}/onhand/changeschedule
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        id: string,
        organizationId: string,
        productId: string,
        dimensionDataSource: string, # optional
        dimensions: {
            [key:string]: string,
        },
        quantitiesByDate: {
            [datetime:datetime]: {
                [dataSourceName:string]: {
                    [key:string]: number,
                },
            },
        },
    }

يظهر المثال التالي نموذج محتوى النص الأساسي دون dimensionDataSource.

{
    "id": "id-bike-0001",
    "organizationId": "usmf",
    "productId": "Bike",
    "dimensions": {
        "SiteId": "1",
        "LocationId": "11",
        "ColorId": "Red",
        "SizeId": "Small"
    },
    "quantitiesByDate": {
        "2022-02-01": {
            "pos": {
                "inbound": 10
            }
        }
    }
}

إنشاء جداول متعددة للتغيير متاح

يمكن لواجهة برمجة التطبيقات هذه إنشاء سجلات متعددة في نفس الوقت. الاختلافات الوحيدة بين واجهة برمجة التطبيقات هذه وواجهة برمجة تطبيقات الحدث الواحد هي قيم Path وBody. بالنسبة لواجهة برمجة التطبيقات هذه، يوفر Body مجموعة من السجلات. الحد الأقصى لعدد السجلات هو 512. لذلك، يمكن لواجهة برمجة التطبيقات المجمعة لجدول التغيير الفعلي دعم ما يصل إلى 512 تغييرًا مجدولًا في المرة الواحدة.

Path:
    /api/environment/{environmentId}/onhand/changeschedule/bulk
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    [
        {
            id: string,
            organizationId: string,
            productId: string,
            dimensionDataSource: string,
            dimensions: {
                [key:string]: string,
            },
            quantityDataSource: string, # optional
            quantitiesByDate: {
                [datetime:datetime]: {
                    [dataSourceName:string]: {
                        [key:string]: number,
                    },
                },
            },
        },
        ...
    ]

يظهر المثال التالي نموذج محتوى النص الأساسي.

[
    {
        "id": "id-bike-0001",
        "organizationId": "usmf",
        "productId": "Bike",
        "dimensions": {
            "SiteId": "1",
            "LocationId": "11",
            "ColorId": "Red",
            "SizeId": "Small"
        },
        "quantitiesByDate": {
            "2022-02-01": {
                "pos": {
                    "inbound": 10
                }
            }
        }
    },
    {
        "id": "id-car-0002",
        "organizationId": "usmf",
        "productId": "Car",
        "dimensions": {
            "SiteId": "1",
            "LocationId": "11",
            "ColorId": "Red",
            "SizeId": "Small"
        },
        "quantitiesByDate": {
            "2022-02-05": {
                "pos": {
                    "outbound": 10
                }
            }
        }
    }
]

إنشاء أحداث التغيير المتاحة

يتم إجراء أحداث التغيير الفعلية من خلال إرسال طلب POST إلى عنوان URL لـ "خدمة رؤية المخزون" ذات الصلة (راجع القسم إرسال جداول التغيير وأحداث التغيير واستعلامات ATP من خلال واجهة برمجة التطبيقات). يمكنك أيضًا تقديم طلبات مجمعة.

إشعار

لا تُعد أحداث التغيير الفعلية فريدة بالنسبة لوظيفة ATP ولكنها جزء من واجهة برمجة تطبيقات لرؤية المخزون القياسية. تم تضمين هذا المثال لأن الأحداث تكون ذات صلة عندما تعمل مستخدمًا ATP. تشبه أحداث التغيير الفعلي عمليات حجز التغيير الفعلية، ولكن يجب إرسال رسائل الأحداث إلى عنوان URL مختلف لواجهة برمجة التطبيقات، وتستخدم الأحداث quantities بدلاً من quantityByDate في نص الرسالة. لمزيد من المعلومات حول احداث التغييرات الفعلية والميزات الأخرى الخاصة برؤية واجهة برمجة التطبيقات لرؤية المخزون، راجع واجهات برمجة التطبيقات العامة لرؤية المخزون.

يوضح المثال التالي نص طلب يحتوي على حدث تغيير فعلي واحد.

{
    "id": "id-bike-0001",
    "organizationId": "usmf",
    "productId": "Bike",
    "dimensions": {
        "SiteId": "1",
        "LocationId": "11",
        "SizeId": "Big",
        "ColorId": "Red"
    },
    "quantities": {
        "pos": {
            "inbound": 10.0
        }
    }
}

استعلام عن التغييرات الفعلية المجدولة ونتائج ATP

يمكنك الاستعلام عن التغييرات الفعلية المجدولة ونتائج ATP عن طريق إرسال طلب POST أو طلب GET إلى عنوان URL المناسب لواجهة برمجة التطبيقات (راجع القسم إرسال جداول التغيير وتغيير الأحداث و استعلامات ATP من خلال واجهة برمجة التطبيقات).

في طلبك، قم بتعيين QueryATP على true إذا كنت تريد الاستعلام عن التغييرات الفعلية المجدولة ونتائج ATP. بشكل افتراضي، يقوم الاستعلام بإرجاع كافة البيانات المتعلقة بـ ATP من اليوم. يمكنك تحديد ATPFromDate وATPToDate لتضييق نطاق النتائج. (يقوم التاريخان "إلى" و"من" فقط بتصفية النتيجة. ولا يؤثران على كيفية حساب ATP.)

  • إذا كنت تقوم بإرسال الطلب باستخدام الأسلوب GET، قم بتعيين هذه المعلمة في العنوان (URL).
  • إذا كنت تقوم بإرسال الطلب باستخدام الأسلوب POST، قم بتعيين هذه المعلمة في النص الأساسي للطلب.

إشعار

بغض النظر عما إذا كانت المعلمة returnNegativeمعينه إلى true أو false في النص الأساسي للطلب، فسوف تتضمن النتيجة قيمًا سالبه عند الاستعلام عن التغييرات الفعلية المجدولة ونتائج ATP. سيتم تضمين هذه القيم السالبة لأنه في حالة جدولة أوامر الطلب فقط، أو إذا كانت كميات التوريد أقل من كميات الطلب، فإن كميات التغيير المجدولة الفعلية ستكون سالبة. إذا لم تكن القيم السالبة متضمنة، فقد تكون النتائج محيرة. لمزيد من المعلومات حول هذا الخيار وكيف يعمل مع أنواع أخرى من الاستعلامات، راجع واجهات برمجة التطبيقات العامة لرؤية المخزون.

الاستعلام باستخدام الأسلوب POST

Path:
    /api/environment/{environmentId}/onhand/indexquery
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        dimensionDataSource: string, # Optional
        filters: {
            organizationId: string[],
            productId: string[],
            siteId: string[],
            locationId: string[],
            [dimensionKey:string]: string[],
        },
        groupByValues: string[],
        returnNegative: boolean,
    }

يوضح المثال التالي كيفية إنشاء النص الأساسي لطلب استعلام فهرس يمكن إرساله إلى رؤية المخزون باستخدام طريقة POST.

{
    // OnHand Index Query fields
    "filters": {
        "organizationId": ["usmf"],
        "productId": ["Bike"],
        "SiteId": ["1"],
        "LocationId": ["11"]
    },
    "groupByValues": ["ColorId", "SizeId"],
    "returnNegative": true,

    // ATP related fields
    "QueryATP":true,
    "ATPFromDate": "2022-02-01",
    "ATPToDate": "2022-02-10",
}

الاستعلام باستخدام الأسلوب GET

Path:
    /api/environment/{environmentId}/onhand
Method:
    Get
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Query(Url Parameters):
    groupBy
    returnNegative
    [Filters]

يوضح المثال التالي كيفية إنشاء عنوان URL لطلب استعلام فهرس كطلب GET.

https://inventoryservice.{RegionShortName}-il301.gateway.prod.island.powerapps.com/api/environment/{EnvironmentId}/onhand?organizationId=usmf&productId=Bike&SiteId=1&LocationId=11&groupBy=ColorId,SizeId&returnNegative=true&QueryATP=true&ATPToDate=2022-02-01&ATPToDate=2022-02-10

نتيجة الطلب GET هي نفسها نتيجة الطلب POST في المثال السابق.

الاستعلام الدقيق باستخدام الأسلوب POST

لإعداد استعلام دقيق، أضف الحقول المرتبطة بـ ATP إلى نص الاستعلام. لمزيد من المعلومات، راجع الاستعلام الدقيق باستخدام طريقة النشر.

{
    // Exact query fields
    // ...

    // ATP related fields
    "QueryATP":true,
    "ATPFromDate": "2022-02-01",
    "ATPToDate": "2022-02-10",
}

مثال على نتيجة الاستعلام

قد ينتج عن أي من أمثلة الاستعلام السابقة الرد التالي. في هذا المثال، تم تكوين النظام بالإعدادات التالية:

  • مقياس ATP المحسوب:iv.onhand = pos.inbound – pos.outbound
  • فترة الجدولة:7

فيما يلي مثال على نص الرد.

[
    {
        "quantitiesByDate": {
            "2022-02-02T00:00:00": {
                "pos": {
                    "outbound": 5,
                    "inbound": 0,
                },
                "iv": {
                    "onhand": -5,
                },
            },
            "2022-02-06T00:00:00": {
                "pos": {
                    "inbound": 7,
                    "outbound": 0,
                },
                "iv": {
                    "onhand": 7,
                },
            }
        },
        "atpQuantities": {
            "2022-02-01T00:00:00Z": {
                "iv": {
                    "onhand": 5.0
                }
            },
            "2022-02-02T00:00:00Z": {
                "iv": {
                    "onhand": 5.0
                }
            },
            "2022-02-03T00:00:00Z": {
                "iv": {
                    "onhand": 5.0
                }
            },
            "2022-02-04T00:00:00Z": {
                "iv": {
                    "onhand": 5.0
                }
            },
            "2022-02-05T00:00:00Z": {
                "iv": {
                    "onhand": 5.0
                }
            },
            "2022-02-06T00:00:00Z": {
                "iv": {
                    "onhand": 12.0
                }
            },
            "2022-02-07T00:00:00Z": {
                "iv": {
                    "onhand": 12.0
                }
            }
        },
        "productId": "Bike ",
        "dimensions": {
            "ColorId": "Red",
            "SizeId": "Big",
            "siteid": "1",
            "locationid": "11"
        },
        "quantities": {
            "pos": {
                "inbound": 10.0,
                "outbound": 0,
            },
            "iv": {
                "onhand": 10.0,
            }
        }
    }
]