تكامل ساب بزنس ون (SAP Business One) عبر API.

باختصارتبني كودينوفا تكاملات API بين ساب بزنس ون (SAP Business One) والبنوك وشركات الشحن والأسواق الإلكترونية وأنظمة CRM وبوابات الدفع، على Service Layer أو DI API، لـ SQL Server و SAP HANA. يتضمن كل تكامل منعًا للتكرار، وقائمة انتظار للأخطاء مع إعادة المحاولة، ولا يكتب أبدًا بـ SQL مباشر. سعر ثابت لكل مرحلة، و3 أشهر من الدعم المجاني، والشيفرة ملكك.
ما تتضمنه الخدمة

ما الذي نبنيه.

تكاملات Service Layer

تكاملات REST/OData تقرأ وتُنشئ شركاء الأعمال والأصناف والأوامر والتسليمات والفواتير والدفعات في SAP Business One عبر HTTP، مع معالجة صحيحة للجلسات والترقيم (paging) والطلبات المجمّعة (batch).

تكاملات DI API

حيث لا يغطي Service Layer كائنًا أو وظيفة، تتولى خدمة .NET على جهاز Windows مثبّت عليه عميل SAP و DI API ترحيل المستند، مع التحقق الخاص بـ SAP.

البنوك

استيراد ملفات كشوف الحسابات البنكية ومطابقتها مع الفواتير المفتوحة، وتصدير ملفات الدفع من SAP Business One بالصيغة التي يقبلها بنكك، مع تسجيل نتيجة كل ملف.

الخدمات اللوجستية و 3PL وشركات الشحن

إرسال مذكرات التسليم وطلبات الشحن إلى مزوّد الخدمات اللوجستية أو شركة الشحن، وإعادة كتابة أرقام التتبع والحالة، ومطابقة حركات المخزون من مستودع 3PL مع SAP.

الأسواق الإلكترونية والتجارة الإلكترونية

تبادل الأوامر والمخزون والأسعار وحالة الشحن بين SAP Business One والمتاجر الإلكترونية أو الأسواق الإلكترونية، مع الاحتفاظ برقم الطلب الخارجي على مستند SAP.

أنظمة CRM والأنظمة الأخرى

مزامنة العملاء وعروض الأسعار والأوامر والأرصدة مع نظام CRM، أو أداة للخدمة الميدانية، أو منصة BI أو تقارير، أو أي نظام يوفر API أو تصدير ملفات أو عرض قاعدة بيانات (database view).

بوابات الدفع

تسجيل الدفعات التي تؤكدها بوابة الدفع في SAP Business One كدفعات واردة مقابل الفاتورة؛ وتبقى بيانات البطاقات لدى البوابة.

المراقبة ومعالجة الأخطاء

سجل لكل استدعاء، وقائمة انتظار أخطاء للرسائل الفاشلة مع إعادة محاولة مضبوطة، وتنبيه عندما يحتاج أمر ما إلى تدخل شخص.

انظر أيضًا: تكامل الفوترة الإلكترونية مع SAP Business One · وكلاء ذكاء اصطناعي على WhatsApp متصلون بنظام ERP لديك · تطوير خوادم MCP لـ SAP Business One · How to connect ChatGPT to SAP Business One safely

Service Layer أم DI API: أيّهما يناسبك؟

Service Layer هو واجهة REST (OData) من SAP لنظام SAP Business One. إنه HTTP عادي، فيمكن لأي نظام قادر على استدعاء واجهة ويب أن يستخدمه، ويعمل على خادم SAP، فلا حاجة لتثبيت أي شيء على الجهاز الذي يستدعيه. وهو خيارنا الأول للتكاملات الجديدة.

أما DI API فهو مكتبة COM يجب تثبيتها مع عميل SAP Business One على جهاز Windows، وتُستخدم من شيفرة .NET. نختارها حيث لا يغطي Service Layer كائنًا أو وظيفة، أو حيث تستخدمها إضافة قائمة أصلًا. كلاهما يكتب المستندات مع التحقق الخاص بـ SAP، وكلاهما يعمل على SQL Server و SAP HANA.

دليل SAP B1 Service Layer (تسجيل الدخول، $filter، الترقيم) ←

لمن هذه الخدمة

مصممة لفرق مثل فريقك.

01

الشركات التي تعيد إدخال الأوامر أو الشحنات أو البنود البنكية يدويًا بين SAP Business One ونظام آخر

02

الشركات التي تضيف قناة بيع جديدة أو مزوّد خدمات لوجستية أو بوابة دفع إلى SAP Business One

03

شركاء SAP Business One الذين يحتاجون إلى فريق لبناء تكامل ودعمه لأحد عملائهم

SAP B1 Service LayerDI APIREST / ODataSQLQueriesUDF / UDT / UDOSQL ServerSAP HANAC# / .NETWebhooksFile exchange (CSV / XML)
المنهجية

كيف يسير المشروع.

  1. تحديد النطاق: مكالمة استكشافية مجانية، ثم مواصفات مكتوبة: أي الأنظمة تتواصل فيما بينها، وأي المستندات والحقول تنتقل وفي أي اتجاه، وكم مرة، وماذا يحدث عند فشل رسالة، مع سعر ثابت لكل مرحلة.
  2. تصميم الواجهة: مطابقة الحقول بين SAP Business One والنظام الآخر، والمعرّف الخارجي الفريد المحفوظ في حقل معرّف من قِبل المستخدم (UDF)، وقواعد التعامل مع التكرار والفشل الجزئي والتغييرات التي تُجرى على الطرفين.
  3. التنفيذ مع عرض أسبوعي: يعمل التكامل على بيانات اختبار ونسخة من قاعدة بيانات شركتك، فتصحّح المسار مبكرًا.
  4. الاختبار: الحالات العادية وحالات الفشل: النظام الآخر متوقف، أو رسالة تصل مرتين، أو صنف أو شريك أعمال غير موجود، أو فترة مُقفلة.
  5. التوثيق: مواصفات الواجهة، والإعدادات، والتعامل مع السجل وقائمة انتظار الأخطاء، وطريقة نشر التحديثات.
  6. التشغيل الفعلي: النشر على خادمك أو السحابة، وتشغيل أول مضبوط على البيانات الحقيقية، ثم التعميم.
  7. الدعم: 3 أشهر من الدعم المجاني بعد التشغيل الفعلي: إصلاحات وتعديلات صغيرة، ثم دعم شهري اختياري.

كيف تمنعون تكرار المستندات في ساب بزنس ون (SAP Business One)؟

يحمل كل مستند يأتي من نظام آخر المعرّف الفريد لذلك النظام، مثل رقم الطلب، محفوظًا في حقل معرّف من قِبل المستخدم (UDF) على مستند SAP. وقبل أن يُنشئ التكامل أي شيء، يتحقق مما إذا كان مستند بهذا المعرّف موجودًا بالفعل، فلا تُنشئ رسالةٌ وصلت مرتين، أو مهمةٌ أُعيد تشغيلها بعد فشل، فاتورةً أو أمرًا ثانيًا أبدًا.

ماذا يحدث عندما يفشل استدعاء؟

تذهب الرسالة إلى قائمة انتظار الأخطاء مع السبب، وتُعاد محاولتها بطريقة مضبوطة. المشكلات المؤقتة، مثل توقف النظام الآخر أو انتهاء جلسة Service Layer، تُعاد محاولتها؛ أما أخطاء الأعمال، مثل صنف غير موجود أو فترة مُقفلة، فتنتظر في القائمة حتى يصحّح شخص البيانات. ويُسجَّل كل استدعاء، فترى ما أُرسل، وبماذا أجابت SAP، ولماذا فشل شيء ما.

رموز أخطاء DI API و Service Layer ←

كيف يقرأ التكامل البيانات من SAP Business One؟

عبر Service Layer، باستخدام طلبات الكيانات مع $select و $filter للقراءات البسيطة، واستعلامات SQL محفوظة تُستدعى عبر خدمة SQLQueries للعروض التي تربط عدة جداول. يمكن أن تستخدم القراءات استعلامات SQL Server أو SAP HANA. أما الكتابة فلا تتم أبدًا مباشرة في جداول SAP باستخدام SQL، لأن ذلك يتجاوز التحقق الخاص بـ SAP وقد يُفسد البيانات.

أخطاء Service Layer SQLQueries وحلولها ←

كيف تعمل عمليات تسجيل الدخول والجلسات في Service Layer؟

يسجّل التكامل الدخول بإرسال قاعدة بيانات الشركة واسم المستخدم وكلمة المرور إلى نقطة Login في Service Layer. يعيد SAP Business One ملف تعريف الارتباط B1SESSION (إضافة إلى ملف ROUTEID لموازنة الأحمال)، ويُرسل مع كل استدعاء لاحق. تنتهي مهلة الجلسة بعد فترة دون استدعاءات (30 دقيقة افتراضيًا، وتظهر في استجابة Login باسم SessionTimeout)، لذلك يعيد التكامل استخدام جلسته ويسجّل الدخول مجددًا عند انتهائها. وتُعامَل الجلسة المنتهية كخطأ مؤقت تُعاد محاولته بعد تسجيل الدخول الجديد، لا كمستند فاشل أبدًا.

استعلامات OData والترقيم والطلبات المجمّعة

تستخدم القراءات خيارات OData مثل $select و $filter و $orderby، فلا ينتقل عبر الشبكة إلا الحقول والسجلات المطلوبة. يقسّم Service Layer النتائج إلى صفحات (20 سجلًا لكل صفحة افتراضيًا) ويعيد رابطًا إلى الصفحة التالية؛ فيتبعه التكامل، أو يطلب صفحات أكبر باستخدام الترويسة Prefer: odata.maxpagesize.

يمكن إرسال عدة استدعاءات معًا كطلب $batch واحد. والاستدعاءات المجمّعة في مجموعة تغييرات (change set) تُنفَّذ كمعاملة واحدة، فإما أن تُرحَّل جميعها أو لا يُرحَّل أيٌّ منها. وتظهر الحقول المعرّفة من قِبل المستخدم على كل كيان بأسمائها التي تبدأ بـ U_، وتتوفر الكائنات المعرّفة من قِبل المستخدم (UDO) المسجّلة ككيانات مستقلة.

منشئ طلبات Service Layer (مجاني) ←

من يملك شيفرة التكامل؟

أنت. يملك العميل الشيفرة المصدرية وقاعدة البيانات والتوثيق بعد كل مرحلة مدفوعة. يمكنك استضافة التكامل وصيانته بنفسك، أو تسليمه لمطور آخر، أو أن تطلب منا الاستمرار في دعمه.

ما الدعم الذي تحصل عليه بعد التشغيل الفعلي؟

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

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

تكامل ساب بزنس ون (SAP Business One) عبر API: أسئلة شائعة

هل نستخدم Service Layer أم DI API لتكامل ساب بزنس ون (SAP Business One) لدينا؟

عادةً Service Layer: فهو REST عبر HTTP، ولا يحتاج إلى تثبيت أي شيء على الجهاز المستدعي، ويناسب أنظمة الويب والسحابة. أما DI API فهي مكتبة COM تحتاج إلى عميل SAP على جهاز Windows؛ ونستخدمها حيث لا يغطي Service Layer كائنًا أو وظيفة. كلاهما يتحقق من المستندات كما يفعل SAP Business One، ونساعدك على الاختيار في مرحلة المواصفات.

هل يعمل التكامل على SQL Server و SAP HANA معًا؟

نعم. يعمل Service Layer و DI API بالطريقة نفسها على كليهما. وحيث يقرأ التكامل البيانات عبر استعلامات SQL محفوظة، نكتبها لقاعدة بياناتك، SQL Server أو HANA، ونختبرها على نسخة من شركتك.

كيف تمنعون تكرار الفواتير والأوامر؟

يحمل كل مستند المعرّف الفريد للنظام الآخر، محفوظًا في حقل معرّف من قِبل المستخدم (UDF)، ويتحقق التكامل منه قبل إنشاء أي شيء. فالرسالة التي تصل مرتين، أو المهمة التي تتكرر بعد فشل، تجد المستند الموجود ولا تُنشئ مستندًا آخر.

هل تكتبون مباشرة في قاعدة بيانات SAP Business One؟

لا. تُنشأ المستندات والبيانات الرئيسية وتُحدَّث فقط عبر Service Layer أو DI API، فيُطبَّق دائمًا التحقق والترقيم ومنطق الترحيل الخاص بـ SAP. يُستخدم SQL المباشر للقراءة، ولا يُستخدم أبدًا للكتابة في جداول SAP.

ماذا يحدث إذا كان النظام الآخر أو SAP غير متاح؟

تذهب الرسائل الفاشلة إلى قائمة انتظار الأخطاء مع السبب وتُعاد محاولتها بطريقة مضبوطة؛ فلا يضيع شيء ولا يُرحَّل شيء مرتين. أما أخطاء الأعمال، مثل صنف غير موجود، فتنتظر حتى يصحّح شخص البيانات، ويُظهر السجل ما أُرسل وبماذا أجابت SAP.

هل كودينوفا من شركاء SAP؟

لا. كودينوفا ليست من شركاء SAP المعتمدين؛ هي مستقلة، وتعمل جنبًا إلى جنب مع شريك SAP لديك. يحتفظ شريكك بالتراخيص وبنظام SAP Business One؛ ونحن نحدد مواصفات التكامل ونبنيه ونختبره وندعمه. وتعتمد علاقة الوصول عبر API بتراخيص SAP لديك على اتفاقيتك مع SAP، لذا تحقّق من ذلك مع شريكك.

جاهز للبدء؟

أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.