الانتقال إلى المحتوى
← العودة إلى المدونة

الوحدة في هذا المقال: Message Monitor

مستوى السجل TRACE في SAP CPI: لماذا يتوقف وكيف تبقيه مفعّلًا بأمان

لماذا يعود مستوى السجل TRACE في SAP CPI إلى مستوى أدنى بعد نحو 10 دقائق، وما الذي يخزّنه وإلى متى، ومخاطره في الإنتاج، وكيف تبقيه مفعّلًا أثناء عملك فقط.

مستوى السجل TRACE في SAP CPI: لماذا يتوقف وكيف تبقيه مفعّلًا بأمان

تضبط مستوى السجل في iFlow على Trace، وتختبر شيئًا آخر ربع ساعة، ثم ترسل الرسالة المهمة، فتجد التتبّع فارغًا. لقد أعاد SAP Cloud Integration (SAP CPI) المستوى بصمت إلى مستوى أدنى. هذا مقصود، وحين تعرف السبب تتضح قواعد استخدام TRACE من تلقاء نفسها.

يشرح هذا المقال ما يخزّنه كل مستوى سجل، ولماذا تنتهي صلاحية TRACE، وكيف تستخدمه بأمان، وكيف تبقيه مفعّلًا طوال مدة عملك بالضبط.

مستويات السجل وما يضيفه TRACE

مستوى السجلما يُحفظ لكل رسالة
Infoالحالة العامة، والتوقيت، والخطأ إن وُجد
Debugإدخال لكل خطوة نفّذتها الرسالة
Traceمثل Debug، إضافة إلى الجسم والترويسات وخصائص التبادل قبل كل خطوة

يُضبط المستوى على الـ iFlow المنشور، فينطبق على كل رسالة يعالجها ذلك الـ iFlow ما دام مضبوطًا.

لماذا يتوقف TRACE من تلقاء نفسه

يكتب TRACE حمولة كل خطوة وترويساتها وخصائصها في قاعدة بيانات المستأجر. وفي iFlow مزدحم تكون هذه بيانات كثيرة، وقد تتضمن محتوى شخصيًا أو سريًا. لذلك يحدّه SAP زمنيًا: يبقى مستوى TRACE صالحًا لنحو 10 دقائق، يعود بعدها الـ iFlow إلى مستوى أدنى، ويُحتفظ بمحتوى التتبّع نفسه لمدة ساعة تقريبًا.

ويمكن أيضًا ضبط المستأجر بحيث لا يسمح بـ TRACE إطلاقًا. عندها يفشل ضبطه، أيًّا كان من يحاول.

ضبط TRACE يدويًا

  1. في شاشة المراقبة، افتح Manage Integration Content واختر الـ iFlow المنشور.
  2. في إعدادات السجل الخاصة به، اضبط مستوى السجل على Trace.
  3. أرسل رسائل الاختبار خلال الـ 10 دقائق التالية، واقرأ تتبّعها خلال الساعة.
  4. في جلسة أطول، اضبط Trace من جديد كل 10 دقائق.

استخدام TRACE بأمان

import com.sap.gateway.ip.core.customdev.util.Message

def Message processData(Message message) {
    // Set the exchange property logPayload to "true" (for example from an
    // externalized parameter) only while you investigate.
    if (message.getProperty("logPayload") == "true") {
        def log = messageLogFactory.getMessageLog(message)
        log?.addAttachmentAsString("Payload before mapping", message.getBody(String), "text/plain")
    }
    return message
}
  • فضّل بيانات الاختبار. فتتبّع رسالة إنتاج يخزّن بيانات ذلك العميل في المستأجر لمدة ساعة.
  • في الإنتاج، تتبّع لأقصر وقت يجيب عن سؤالك، والتزم بقواعد الموافقة في شركتك.
  • لا تترك Debug أو Trace مستوى السجل المضبوط في الـ iFlow: فكل رسالة تدفع ثمن ذلك.
  • لا تكتب كلمات المرور أو الرموز (tokens) في الترويسات أو الخصائص، حيث يكشفها التتبّع.
  • عندما تحتاج إلى الحمولة في السجل بانتظام، أرفقها بسجل معالجة الرسالة من سكربت، وفقط ما دام مفتاحٌ ما مفعّلًا:

أبقِ TRACE مفعّلًا أثناء عملك فقط

في Kitegra، تحتوي لوحة "الرسائل" للـ iFlow المفتوح على مفتاح يظهر بعبارة "Trace: متوقف". نقرة واحدة تضبط مستوى السجل على TRACE. وما دام المفتاح يعمل وتبويب مصمم لذلك الـ iFlow مفتوحًا، تعيد الإضافة ضبط TRACE كل 9 دقائق، قبل أن يُسقطه SAP، وتتوقف بعد 20 دقيقة من آخر نشاط لك في الـ iFlow. والإيقاف يعيد المستوى الذي كان عليه الـ iFlow من قبل. وتبقى الحالة بعد إعادة تحميل الصفحة، ويبدّلها الاختصار Alt+Shift+R من لوحة المفاتيح.

وترفض الإضافة برسالة واضحة عندما لا يكون الـ iFlow منشورًا على بيئة التشغيل المختارة، أو عندما لا يسمح المستأجر بـ TRACE، أو عندما يكون "السماح بالإجراءات التي تغيّر الـ tenant" متوقفًا في الخيارات.

لقراءة ما سجّله التتبّع، اطّلع على تتبّع رسالة خطوة بخطوة على الرسم.

كيف يساعدك Kitegra

Trace واحد من الإجراءات الأربعة في Kitegra التي تغيّر المستأجر، ولا يُنفَّذ إلا عندما تنقره. وقبل الإطلاق، يعلّم فحص التصميم "مستوى سجل مفصّل" في iFlow Inspector أي iFlow يكون مستوى السجل المضبوط فيه سيتتبّع كل رسالة أو يسجّلها بمستوى Debug؛ وتغطيه قائمة مراجعة الـ iFlow مع بقية الفحوص.

تحتسب كلٌّ من Helper وMessage Monitor وiFlow Inspector وiFlow Docs عدد iFlows التي تستخدمها عليها: 5 لكل وحدة بلا حساب، و50 في خطة Free، و100 في خطة Starter، و300 في خطة Pro، أما خطة Business فبلا حد. ويأتي Toolbox وميزات مساحة العمل الإضافية مجانًا. قارن بين الخطط.

جرّبها في الـ iFlow التالي

تعرّف على ما يضيفه Kitegra حول مصمم SAP Integration Suite، أو اطّلع عليه مع بقية وحدات Kitegra.

الأسئلة الشائعة

لماذا يتوقف TRACE من تلقاء نفسه في SAP CPI؟

يخزّن TRACE حمولة كل خطوة في المستأجر. وللحد من البيانات، يُبقي SAP مستوى TRACE لنحو 10 دقائق، ومحتوى التتبّع لمدة ساعة تقريبًا.

كم تُحفظ بيانات التتبّع؟

نحو ساعة. بعدها يبقى سجل الرسالة، لكن الجسم والترويسات والخصائص المتتبَّعة تختفي.

هل استخدام TRACE في الإنتاج آمن؟

يخزّن حمولات حقيقية في المستأجر، لذا استخدمه لأقصر وقت يجيب عن سؤالك، وعلى بيانات اختبار حيثما أمكن، ووفق قواعد شركتك.

ما الفرق بين Debug وTrace؟

يسجّل Debug إدخالًا لكل خطوة. ويضيف Trace الجسم والترويسات وخصائص التبادل قبل كل خطوة.

لماذا يفشل ضبط TRACE على المستأجر الخاص بي؟

ربما لا يسمح المستأجر بـ TRACE، أو لا يكون الـ iFlow منشورًا على بيئة التشغيل تلك، أو لا يملك المستخدم الدور المطلوب. وفي الإضافة، قد تكون إجراءات المستأجر متوقفة أيضًا في الخيارات.

هل تُبقي الإضافة TRACE مفعّلًا بعد أن أتوقف عن العمل؟

لا. تجدّد TRACE فقط ما دام المفتاح يعمل وأنت تعمل في الـ iFlow، وتتوقف بعد 20 دقيقة من آخر نشاط لك.

اعمل على الـ iFlows دون مغادرة المصمم

أضِف Kitegra إلى Chrome أو Microsoft Edge. ابدأ مجانًا دون الحاجة إلى حساب.