انتقل إلى المحتوى
TAQNIX
وحدات Odooإضافات ووردبريسقوالب ووردبريسقوالب Shopifyقوالب التطبيقاتالسكربتات والأدواتالمدونةبِع على TAQNIX

توثيق المستودع المتنقل وماسح الباركود لأودو (مستودع بلا ورق)

دليل المستودع المتنقل وماسح الباركود لأودو: تثبيت الوحدة والتطبيق وإعداد ماسحات Zebra وHoneywell وDatalogic والخانات وأرقام التحقق وGS1 والباركود والاستلام والتسليم والتحويلات والموجات والدفعات والانتهاء والجرد الدوري والمزامنة دون اتصال والملصقات والتقارير والواجهة والحدود وحل المشكلات.

يشرح الإصدار 1.0.0حُدّث في 29 أكتوبر 2026

ابدأ من هنا

ببساطة: تمنحك هذه الحزمة مستودعًا بلا أوراق على أودو Community: وحدة أودو (taqnix_wms_barcode) فيها محرك الباركود والعمليات والموجات وعمليات الجرد الدوري وسجل التدقيق، والشيفرة المصدرية بـ Flutter لـتطبيق ماسح للأجهزة الصناعية من Zebra وHoneywell وDatalogic، مع كاميرا الهاتف العادي كخيار بديل (346 اختبار Dart و53 اختبار Kotlin، وشُغّل من البداية إلى النهاية على محاكي iOS مقابل هذه الوحدة؛ ولم يُشغَّل على ماسح صناعي حقيقي، انظر الفصل 31). يستلم المشغّلون ويلتقطون وينقلون ويجردون بزناد الماسح. لا أحد يكتب في حقل نصي.
لوحة إدارة المستودع المتنقل: بطاقة لكل نوع عملية، وفيها الجاهز وما هو لي وما تأخر.
لوحة إدارة المستودع المتنقل: بطاقة لكل نوع عملية، وفيها الجاهز وما هو لي وما تأخر.
نصيحة: لا تحتاج إلى أي تطبيق من أودو Enterprise. تحل الوحدة محل تطبيق الباركود في Enterprise بالاعتماد على stock وbarcodes وترميز GS1 اللذين يأتيان أصلًا مع أودو Community.

محتويات الحزمة

البندما هو
taqnix_wms_barcode.zipوحدة أودو 19: محلّل الباركود (GS1 وEAN وUPC والتعبئة وباركود الوزن والسعر)، ومحرك المسح للاستلام والتسليم والتحويلات الداخلية، والموجات على مسار محسَّن، وعمليات الجرد الدوري، وأرقام التحقق للخانات وتسلسل الالتقاط، والملصقات، وسجل المسح، وواجهة برمجة التطبيق، وترجمة عربية، واختبارات آلية.
flutter-app-source.zipمشروع Flutter لتطبيق الماسح على أندرويد (الماسحات الصناعية والكاميرا) وiOS (الكاميرا)، مع اختباراته وملفات README وCHANGELOG وdocs/ARCHITECTURE.md. انظر الفصول من 6 إلى 8 و26.
documentation/هذا الدليل بالإنجليزية (index.html) والعربية (index-ar.html) مع ملفات PDF، والملف API.md للمطورين.
licensing/الرخصة (OPL-1: شراء واحد = شركة واحدة، مع التحديثات).
preview-images/لقطات من شاشات أودو ومن التطبيق.
changelog.txtسجل الإصدارات.

كيف تعمل

اللحظةمنماذا يحدث على الماسحفي أودو
الاستلامالمشغّليفتح الاستلام ويمسح خانة التجهيز ثم يمسح المنتجات (كل مسح يضيف وحدة، وباركود الكرتون يضيف الكرتون كله). لا تُطلب الدفعات والأرقام التسلسلية وتواريخ الانتهاء إلا إذا احتاجها المنتج.تُحفظ عمليات المسح على سطور عملية النقل. لا شيء يتحرك بعد.
الاستلامالمشغّليضغط اعتماد. إذا كان هناك نقص يسأل الماسح: أمر مؤجل أم لا.يُعتمد الاستلام وتُنشأ الدفعات، ويُنشأ أمر مؤجل إذا طُلب.
التخزينالمشغّليفتح عملية التخزين ويمسح المنصة (مسح واحد ينقل الحزمة كلها) وخانة الوجهة، ثم يكتب رقمي التحقق المطبوعين على ملصق الخانة.يُعتمد تحويل داخلي. تنتقل كميات المنصة في المخزون بدقة.
الالتقاطالمشغّليفتح تسليمًا أو موجة ويتبع المسار خانة بعد خانة (تظهر الخانة التالية بحروف كهرمانية كبيرة) ويمسح الخانة والمنتج والدفعة.تحصل سطور الحركة على الكمية الممسوحة؛ ويُرفض الصنف الخاطئ أو الدفعة المنتهية أو الزيادة بصوت إنذار.
الجردالمشغّليمسح الرف ثم يمسح ما عليه. لا يعرض الجرد الأعمى الكمية المتوقعة أبدًا.يحتفظ الجرد بالكمية المتوقعة مجمّدة عند البدء، وبالمخزون الحي وبالانحراف.
الاعتمادالمديريراجع الفروق في أودو ويعتمد.تسوية مخزون واحدة لكل سطر، مرة واحدة.
ببساطة: الغلبة للمستودع. لا تُرفض أبدًا حركة حدثت فعلًا على الأرض بسبب قاعدة مرنة: إذا أخذ المشغّل البضاعة من خانة أخرى، أو أخذ أكثر قليلًا من المطلوب ضمن هامش التسامح لديك، أو زامن بعد ساعتين، فإن الخادم يقبل ذلك ويرفع تنبيهًا ومهمة للمدير (الفصول 12 إلى 18). وحدها الأخطاء الصارمة تُرفض: عملية نقل مغلقة، أو منتج متتبَّع بلا دفعة، أو رقم تسلسلي موجود في المخزون، أو دفعة منتهية، أو التقاط زائد يتجاوز هامش التسامح.

ما تحتاج إليه

البندالتفاصيل
أودوالإصدار 19.0 Community أو Enterprise. تعتمد الوحدة على المخزون (stock) وproduct وbarcodes وترميز GS1 (barcodes_gs1_nomenclature) وmail. لا تلزم المشتريات ولا المبيعات؛ وتُستخدم استلامات أوامر الشراء عند تثبيت المشتريات.
المواقعالخانات كمواقع مخزون. تعمل المواقع متعددة الخطوات وعدة مستودعات والدفعات والأرقام التسلسلية والحزم ووحدات القياس ذات الباركود كلها؛ فعّل إعدادات المخزون التي تستخدمها (تفعّل الوحدة نوع عملية التحويل الداخلي).
العنوانعنوان https عام لأودو (أو شبكتك الافتراضية الخاصة VPN) تصل إليه الماسحات. الشهادة الموقّعة ذاتيًا لا تعمل في التطبيق.
الماسحاتأندرويد 7.0 أو أحدث. الأجهزة الصناعية: Zebra (DataWedge) وHoneywell (Data Intent) وDatalogic (DecodeWedge)، أو أي ماسح يرسل نيّة أو مفاتيح. يعمل أي هاتف أندرويد أو آيفون (iOS 15.5 أو أحدث) بالكاميرا. ولبناء التطبيق: Flutter 3.41.
محرك PDFwkhtmltopdf كأي أودو، لطباعة ملصقات الخانات والحزم.

ثبّت وحدة أودو

  1. فُكّ ضغط الحزمة. بداخلها taqnix_wms_barcode.zip؛ فُكّه لتحصل على المجلد taqnix_wms_barcode.
  2. انسخ المجلد إلى أحد مجلدات addons_path في خادم أودو وأعد تشغيل أودو.
  3. سجّل الدخول كمدير وفعّل وضع المطوّر ثم افتح التطبيقات واضغط تحديث قائمة التطبيقات.
  4. أزل مرشح «التطبيقات» وابحث عن Mobile WMS واضغط تثبيت.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_wms_barcode --stop-after-init
ببساطة: بعد التثبيت تفعّل الوحدة نوع العملية التحويلات الداخلية في كل مستودع (يبقيه أودو مؤرشفًا إلى أن تُفعَّل المواقع المتعددة)، وتختار ترميز GS1 الافتراضي في إعدادات كل شركة. تظهر قائمة إدارة المستودع المتنقل لمستخدمي المجموعة «إدارة المستودع المتنقل / مدير»؛ ويحصل عليها مدير النظام تلقائيًا.

ثبّت التطبيق على الماسحات

ببساطة: التطبيق مشروع Flutter قياسي (Flutter 3.41 مع Dart 3.11، وأندرويد SDK بمستوى API 24 أو أحدث أي أندرويد 7.0، وXcode للآيفون). الحزمة taqnix_wms_scanner ومعرّف التطبيق ومعرّف الحزمة com.taqnix.wmsscanner والاسم الظاهر Taqnix WMS Scanner. لا يستخدم Firebase ولا خدمة إشعارات: الشيء الوحيد الذي تضبطه هو عنوان أودو لديك.
  1. فُكّ ضغط flutter-app-source.zip وافتح الطرفية في المجلد.
  2. نزّل الحزم: flutter pub get. طبقة قاعدة البيانات (Drift) مولَّدة ومضمَّنة أصلًا؛ لا تشغّل dart run build_runner build --delete-conflicting-outputs إلا إذا غيّرت الجداول. وبعد تعديل نصوص التطبيق يعيد الأمر python3 tool/l10n_src.py && flutter gen-l10n توليد الترجمات.
  3. افحص المشروع: flutter analyze وflutter test (توصَف المجموعة في الفصل 26).
  4. شغّله على جهاز أندرويد موصول أو على محاكٍ: flutter run --dart-define=SITE_URL=https://odoo.example.com. المتغير SITE_URL اختياري: وبدونه تعرض شاشة الدخول حقل عنوان الخادم.
  5. ابنِ تطبيق أندرويد للأجهزة الصناعية: flutter build apk --release --dart-define=SITE_URL=https://odoo.example.com. ثبّت الحزمة APK بواسطة USB أو نظام إدارة الأجهزة (Zebra StageNow وHoneywell Enterprise Provisioner وSOTI...) أو من رابط تنزيل. يُوقَّع APK الإصدار بمفتاح التصحيح إلى أن تنشئ android/key.properties كما في دليل التوقيع القياسي لـ Flutter: افعل ذلك قبل توزيعه.
  6. ابنِ تطبيق الآيفون على جهاز Mac بواسطة Xcode: flutter build ios --release --dart-define=SITE_URL=https://odoo.example.com (يستخدم الآيفون الكاميرا، انظر الفصل 8).
  7. افتح التطبيق. سجّل الدخول باسم مستخدم وكلمة مرور لمستخدم من المجموعة إدارة المستودع المتنقل / مشغّل. ينزّل التطبيق البيانات الرئيسية (المنتجات وباركود التعبئة والخانات والمنصات والدفعات) ويصبح جاهزًا للمسح، حتى دون شبكة بعد ذلك.
  8. في الإعدادات ← الماسح تحقق من ملف الماسح (الفصلان 7 و8).
الإذنالسبب
INTERNET وACCESS_NETWORK_STATEالتخاطب مع أودو ومعرفة عودة الشبكة.
CAMERA (اختياري)المسح بالكاميرا حين لا يوجد ماسح عتادي.
VIBRATEالاهتزاز في ملاحظات المسح.
WAKE_LOCKتبقى الشاشة مضاءة ما دام التطبيق مفتوحًا.
<queries>مصرَّح بها لحزم DataWedge وHoneywell وDatalogic ليسمح أندرويد 11 أو أحدث للتطبيق برؤيتها.
نصيحة: دون خادم أو جهاز تستطيع تجربة التطبيق على الخادم التجريبي الصغير في المصدر: python3 tool/fake_server.py --port 8765 (مكتبة بايثون القياسية فقط، و60 منتجًا تجريبيًا واستلامات وتسليم وموجة وجردان، وحسابا الدخول demo / demo وmanager / manager)، ثم flutter run --dart-define=SITE_URL=http://127.0.0.1:8765. وقد تعرض نسخ التصحيح شريطًا رفيعًا اكتب باركودا لإدخاله فوق منطقة المسح (يظهر في لقطات هذا الدليل)؛ أما نسخ الإصدار فلا تعرضه أبدًا. وفي الإعدادات ← اختبار الماسح شريط كهذا دائمًا.
نصيحة: كل جهاز يسجّل الدخول يظهر في إدارة المستودع المتنقل ← الإعداد ← الأجهزة مع طرازه والماسح الذي يستخدمه. يستطيع المدير إخراج جهاز من تلك القائمة.
الأجهزة المسجَّل دخولها: المستخدم والجهاز والطراز والماسح وإصدار التطبيق وآخر مرة شوهد فيها.
الأجهزة المسجَّل دخولها: المستخدم والجهاز والطراز والماسح وإصدار التطبيق وآخر مرة شوهد فيها.

إعداد الماسح: Zebra DataWedge

ببساطة: يستمع التطبيق إلى بث النيّة (broadcast intent) الذي يرسله DataWedge بعد كل مسح. لا يستخدم لوحة المفاتيح على الشاشة ولا يحتاج إلى حقل نص عليه التركيز. تمر كل الماسحات عبر ناقل مسح واحد: الشاشة التي في الأعلى وحدها تتلقى المسح، فلا يصل مسح إلى شاشة مخفية.
ببساطة: يعدّ التطبيق DataWedge بنفسه. حين يكون الإعدادات ← الماسح ← إدارة DataWedge تلقائيا مفعّلًا ينشئ التطبيق ملفًا تعريفيًا اسمه TaqnixWMS ويحافظ عليه عند بدء التشغيل عبر واجهة DataWedge (CREATE_PROFILE ثم SET_CONFIG واحد)؛ ويفعل الزر إنشاء ملف DataWedge الشيء نفسه عند الطلب. في الملف التعريفي إدخال الباركود مفعّل، وإخراج النيّة مفعّل (الإجراء com.taqnix.wms.SCAN والفئة android.intent.category.DEFAULT والتسليم بث)، وإخراج ضغطات المفاتيح متوقف، وهو مرتبط بـ com.taqnix.wmsscanner لكل أنشطته. يُوقَف مكوّن الماسح حين يذهب التطبيق إلى الخلفية ويعود للعمل حين يرجع، فلا يمسح الزناد لتطبيق آخر. ويمكن تغيير الإجراء في إجراء إخراج DataWedge.
ببساطة: يدويًا (DataWedge 8 أو أحدث؛ وهو الطريق حين يدفع نظام إدارة الأجهزة الملف التعريفي):
  1. افتح تطبيق DataWedge واضغط New profile وسمِّه TaqnixWMS.
  2. في Associated apps أضف com.taqnix.wmsscanner مع النشاط *.
  3. في Barcode input أبقِ Enabled وحدّد أنواع الرموز التي تستخدمها: EAN-13 وEAN-8 وUPC-A وUPC-E وCode 128 وGS1-128 وDataMatrix وQR إن كنت تستخدمها في الملصقات.
  4. في Keystroke output اجعل Enabled متوقفًا: يجب ألا يُكتب المسح في أي مكان.
  5. في Intent output اجعل Enabled مفعّلًا. الإجراء com.taqnix.wms.SCAN (أو ما كتبته في التطبيق) والفئة android.intent.category.DEFAULT وIntent delivery: Broadcast intent.
  6. اختبر: افتح الإعدادات ← اختبار الماسح في التطبيق واسحب الزناد. يظهر الرمز ونوع الباركود والنيّة الخام على الشاشة.
ببساطة: يقرأ التطبيق حقول DataWedge القياسية (com.symbol.datawedge.data_string ونوع الملصق، مع أسماء com.motorolasolutions.emdk.datawedge الأقدم أيضًا). ومع تفعيل المسح المتعدد للباركود يصل كل رمز من القراءة نفسها كمسح مستقل.
مهم: الملف التعريفي لـ DataWedge والنيّات وحزمة SET_CONFIG وفق وثائق Zebra وهي مختبرة بالوحدات من جهة التحليل فقط. ولم يشغّلها المؤلف على جهاز Zebra حقيقي (الفصل 31). جرّب أول سحب للزناد على جهازك، وإذا رفض DataWedge الملف التلقائي (يختلف DataWedge 6.x عن 8.x) فاتبع الخطوات اليدوية.

إعداد الماسح: Honeywell وDatalogic وغيرهما

ببساطة: في الإعدادات ← الماسح ← ملف الماسح تختار تلقائي أو ملفًا ثابتًا. يقرأ التلقائي الشركة المصنّعة للجهاز: Zebra أو Motorola Solutions أو Symbol تستخدم DataWedge؛ وHoneywell أو Intermec تستخدم نيّة Honeywell؛ وDatalogic تستخدم DecodeWedge؛ وأي جهاز آخر يستخدم الكاميرا. اختر الملف يدويًا إذا اختار التلقائي ملفًا خاطئًا.
الجهازأينالإعدادات
Honeywell (EDA وCT وCK وDolphin)تطبيق Settings > Honeywell Settings > Scanning > Internal scanner > Default profile > Data processing settingsفعّل Data Intent (واجهة Intent API؛ وتسمّيها الصور الأقدم Data Collection Service). يستمع التطبيق إلى com.honeywell.decode.intent.action.EDIT_DATA وcom.honeywell.sample.action.BARCODE_DATA ويقرأ الحقول data (أو dataBytes) وaimId وcodeId وcharset. أوقف Keyboard output أو اترك الوسيط فاعلًا: فمجمّع دفعات المفاتيح أدناه يعمل أيضًا.
Datalogic (Memor وSkorpio)إعدادات ماسح Datalogic > DecodeWedge / Intent Wedgeفعّل Intent output والتسليم بث والإجراء com.datalogic.decodewedge.decode_action والفئة com.datalogic.decodewedge.decode_category. يقرأ التطبيق الحقل النصي com.datalogic.decode.intentwedge.barcode_string (والنوع في ...barcode_type).
أي ماسح أندرويد آخرأداة الشركة المصنّعة ثم الإعدادات ← الماسحاختر Intent مخصص: اكتب إجراء Intent المخصص واسم بيانات Intent المخصصة التي تحمل الباركود. ينفع أي بث فيه حقل نصي (أو مصفوفة بايتات).
ماسحات لوحة المفاتيحالإعدادات ← الماسح ← ماسحات لوحة المفاتيحيكتب الماسح الرمز ويضغط Enter. يجمع التطبيق المفاتيح التي تصل بفارق أقل من 50 ملّي ثانية وتنتهي بـ Enter كمسح واحد، ويتجاهل مثل هذه الدفعات داخل حقل نص. لا يحتاج إلى إعداد آخر لكنه أبطأ من النيّة.
الهواتف والآيفونالكاميراماسح الكاميرا (رموز 1D و2D والوضع المستمر والمصباح ونافذة مسح لا تقرأ إلا داخل الإطار). وهو الماسح الوحيد على iOS.
ببساطة: زر المسح الفعلي. اكتب رموز مفاتيح أندرويد الخاصة به في رموز مفاتيح زر المسح (مفصولة بفواصل، مثل 293, 294؛ وتستخدم بعض أجهزة Zebra 103 و104 وبعض أجهزة Datalogic 291 و292) واختر ما يفعله الزر: لا شيء (العتاد يمسح)، أو فتح الكاميرا، أو بدء مسح برمجي عبر DataWedge. الرموز تتبع الطراز: تحقق منها على جهازك في الإعدادات ← اختبار الماسح الذي يسجّل أحداث مفاتيح الزناد.
الإعدادات ← الماسح: الملف (تلقائي وZebra DataWedge ونيّة Honeywell وDatalogic DecodeWedge ولوحة المفاتيح والكاميرا) وإجراء DataWedge والنيّة المخصصة ومفاتيح الز
الإعدادات ← الماسح: الملف (تلقائي وZebra DataWedge ونيّة Honeywell وDatalogic DecodeWedge ولوحة المفاتيح والكاميرا) وإجراء DataWedge والنيّة المخصصة ومفاتيح الزناد.
اختبار الماسح: آخر مسح ومصدره ونوع باركوده ومعدله والمكرر المهمل وآخر نيّة خام، وشريط لمحاكاة مسح.
اختبار الماسح: آخر مسح ومصدره ونوع باركوده ومعدله والمكرر المهمل وآخر نيّة خام، وشريط لمحاكاة مسح.
ببساطة: المكرر. الرمز الذي يصل مرتين خلال 400 ملّي ثانية يُحسب مرة واحدة (يظهر ذلك في عدّاد مكرر مهمل في شاشة الاختبار).
مهم: إعدادات Honeywell وDatalogic ورموز مفاتيح الزناد وفق وثائق الشركات. ولم يشغّلها المؤلف على جهاز حقيقي، وحروف codeId لدى Honeywell مرتبطة بعدد قليل من أنواع الباركود الشائعة فقط (المصدر الموثوق هو معرّف AIM). انظر الفصل 31.

الإعداد الأول في أودو

  1. افتح المخزون ← الإعداد ← أنواع العمليات وافتح الاستلامات وأوامر التسليم والتحويلات الداخلية وفعّل إدارة المستودع المتنقل في التبويب الجديد الذي يحمل الاسم نفسه (الخيارات في الجدول أدناه).
  2. أعطِ الخانات باركودها وممرها وقسمها ومستواها وأرقام التحقق (الفصل 10) واطبع ملصقات الخانات (الفصل 24).
  3. أنشئ مستخدمي فريق المستودع وامنحهم المجموعة «إدارة المستودع المتنقل / مشغّل»؛ ويحصل المشرفون على «إدارة المستودع المتنقل / مدير» (الفصل 22).
  4. افتح الإعدادات ← إدارة المستودع المتنقل وراجع هامش التسامح وقواعد الانتهاء وحدود الجرد وبادئات الباركود (الفصل 23).
  5. للمنتجات ذات الدفعة أو الرقم التسلسلي تأكد من ضبط التتبع؛ وفعّل اطلب تاريخ الانتهاء عند الاستلام على المنتجات ذات مدة الصلاحية.
  6. اطبع باركود المنتجات وسجّل الدخول بالتطبيق.
خيار نوع العمليةماذا يفعل
إدارة المستودع المتنقليظهر نوع العملية في التطبيق ويعمل محرك المسح على عمليات النقل فيه.
البلاطة في التطبيق، الترتيبأي بلاطة في القائمة تعرض عمليات النقل هذه (الاستلامات، عمليات التسليم، التحويلات الداخلية، التقاط، تعبئة) وبأي ترتيب.
امسح خانة المصدر / خانة الوجهةهل يطلب التطبيق الخانة قبل المنتج.
تأكيد الخانة بأرقام التحققيكتب المشغّل الأرقام المطبوعة على ملصق الخانة (إن كان لها أرقام).
طلب الدفعة/الرقم التسلسلياسأل عند أول مسح: يطلب الماسح الدفعة بمجرد مسح المنتج. اسأل عند الاعتماد: تُقبل الكمية وتُطلب الدفعة عند اعتماد عملية النقل.
تسامح إضافي (%)كمية فوق الطلب تُقبل لهذا النوع؛ وتُطبَّق القيمة الأكبر بين هذه وهامش تسامح الشركة.
الانتقال إلى السطر التاليينتقل التطبيق إلى السطر التالي عند اكتمال السطر.
سياسة الأمر المؤجل في التطبيقاسأل المشغّل أو إنشاء أمر مؤجل أو بلا أمر مؤجل، ألغِ المتبقي.
تبويب إدارة المستودع المتنقل في نوع العملية.
تبويب إدارة المستودع المتنقل في نوع العملية.

الخانات وأرقام التحقق ومسار الالتقاط

ببساطة: كل خانة تخزين هي موقع مخزون. افتح إدارة المستودع المتنقل ← الإعداد ← الخانات والعناوين: القائمة قابلة للتحرير، فتستطيع كتابة الباركود وأرقام التحقق والمنطقة والممر والقسم والمستوى لخانات كثيرة بسرعة.
الخانات والعناوين: الباركود وأرقام التحقق والمنطقة والممر والقسم والمستوى وتسلسل الالتقاط في قائمة واحدة.
الخانات والعناوين: الباركود وأرقام التحقق والمنطقة والممر والقسم والمستوى وتسلسل الالتقاط في قائمة واحدة.
الحقلالاستخدام
الباركودما يظهر على الملصق (Code 128). فريد لكل شركة. يُمسح لتأكيد الخانة.
أرقام التحققمن 2 إلى 4 أرقام مطبوعة في مربع على الملصق. يكتبها المشغّل ليثبت أنه واقف عند الخانة الصحيحة. ولّدها بالإجراء الجماعي توليد أرقام التحقق أو برابط توليد في النموذج (عشوائية ولا تتكرر داخل الممر).
المنطقةمنطقة التقاط مثل المبرّد أو سريع الحركة أو الميزانين. يمكن حصر الموجات والجرد في منطقة.
الممر والقسم والمستوىعنوان الخانة. يُرتَّب الممر والقسم ترتيبًا طبيعيًا (2 قبل 10).
تسلسل الالتقاطموضع الخانة على المسار. يُولَّد من الممر والقسم والمستوى بـترتيب متعرّج: يسير الممر الأول من القسم 01 صعودًا، ثم يعود الممر التالي من القسم الأخير، وهكذا، فلا يعود الملتقِط أبدًا بيدين فارغتين. فعّل احتفظ بتسلسل الالتقاط الذي كتبته لحماية رقم كتبته بنفسك.
خانة بأرقام التحقق والمنطقة والعنوان وتسلسل الالتقاط.
خانة بأرقام التحقق والمنطقة والعنوان وتسلسل الالتقاط.
نصيحة: يُعاد ترقيم تسلسل الالتقاط عند إنشاء خانة أو تغيير ممرها أو قسمها أو مستواها. استخدم الإجراء الجماعي توليد تسلسل الالتقاط على تحديد لإعادة ترقيم مستودع كامل. أوقف الترتيب المتعرّج في الإعدادات إذا فضّلت أن تسير كل الممرات في الاتجاه نفسه.

الباركود: ما يفهمه الماسح

ببساطة: يمر كل مسح عبر محرك واحد على الخادم (وتُرسل القواعد نفسها إلى التطبيق ليقرأ دون اتصال). يجيب المحرك في أجزاء من الثانية (الفصل 27) ويخبر التطبيق ما هو الباركود.
الباركودماذا يفعل المحرك
EAN-13 وEAN-8 وUPC-A وUPC-E وGTIN-14يطابق باركود المنتج مع الأصفار البادئة لـ GTIN نفسه (UPC-A الممسوح كـ EAN-13 هو المنتج نفسه)، ويتحقق من رقم التحقق ويوسّع UPC-E. يُبلَّغ عن رقم التحقق الخاطئ على هذا النحو بدلًا من «منتج غير معروف».
التعبئة (كرتون، علبة)باركود وحدة قياس للمنتج (تعبئة أودو 19) يضيف كمية العبوة. وكرتون GTIN-14 غير المسجَّل يعود إلى منتج الوحدة مع تحذير.
GS1-128 (AI 01 و02 و10 و21 و13 و15 و17 و30 و37 و310x و320x و00 و91)يقرأ GTIN والدفعة (10) أو الرقم التسلسلي (21) والانتهاء (17، واليوم 00 يعني نهاية الشهر) وتاريخ الأفضل قبل (15) والعدد (30، 37) والوزن الصافي (310x كغ، و320x رطل يُحوَّل إلى وحدة المنتج) وSSCC للمنصة (00). تُتخطى المعرّفات غير الموجودة في الترميز (11 و20 و240 و400 و420 و92 إلى 99...).
الفواصلتُقبل كلها: حرف FNC1 و# وAlt029 والبادئة ]C1 من الماسح والشكل المقروء (01)...(10)... والمسافات بين العناصر. الدفعة متغيرة الطول المتبوعة بعنصر آخر تحتاج إلى فاصل، كما يشترط معيار GS1.
باركود الوزن والسعرEAN-13 مكوَّن من بادئة من رقمين (21 للوزن و23 للسعر افتراضيًا) ورمز صنف من 5 أرقام و5 أرقام للقيمة ورقم التحقق. يُعثر على المنتج بباركوده مع أصفار في أرقام القيمة؛ والكمية هي الوزن بوحدة المنتج أو السعر مقسومًا على سعر البيع. ولا يحدد الوزن (GS1 310x أو 320x أو باركود وزن) كمية إلا لمنتج يُعدّ بوحدة وزن (كغ أو غ أو رطل...)؛ أما منتج الوحدات فيبقى الوزن معلومة فقط.
الخانات والحزم والدفعات والمستنداتباركود الخانة، واسم الحزمة (SSCC لمنصة)، واسم الدفعة، واسم عملية النقل أو مستندها المصدر (رقم أمر الشراء يفتح استلامه)، واسم موجة أو جرد.
ببساطة: ما الذي يسبق؟ عندما يحتمل الرمز أكثر من معنى يحسم السياق. في الاستلام، الرمز الذي هو باركود منتج واسم دفعة معًا يُعدّ المنتج. في التسليم، قبل مسح أي خانة، الرمز الذي هو خانة يُعدّ الخانة. وفي القائمة تأتي المستندات أولًا.
مهم: الرقم المجرد لا يُقرأ أبدًا كدفعة GS1: لا تُجرَّب قراءة GS1 إلا إذا لم يطابق شيء تمامًا، أو إذا حملت السلسلة فواصل، أو إذا بدأت بـ SSCC أو GTIN.

الاستلامات

  1. افتح بلاطة الاستلامات واختر عملية النقل (أو امسح رقم أمر الشراء: يفتح استلامه).
  2. امسح خانة التجهيز إذا كان نوع العملية لديك يطلبها. في الاستلام بـ3 خطوات هذا هو موقع الإدخال.
  3. امسح المنتجات. كل مسح يضيف وحدة؛ ولوحة الكمية في التطبيق تغيّر المقدار؛ وباركود الكرتون يضيف كمية عبوته.
  4. للمنتج ذي الدفعة يطلب الماسح الدفعة (أو يقرؤها من باركود GS1). وإذا احتاج المنتج إلى تاريخ انتهاء فإن الماسح يطلبه ما لم يوفره AI 17.
  5. اضغط اعتماد. عملية النقل غير المكتملة تسأل هل تُنشئ أمرًا مؤجلًا.
الحالةجواب الماسح
منتج ليس في الاستلامالخطأ wrong_product وصوت إنذار؛ ولا يتغير شيء.
أكثر من المطلوبيُرفض بـ over_pick ما لم يسمح هامش التسامح؛ وضمن الهامش يُقبل ويُعلَّم.
رقم تسلسلي مستلم أو موجود في المخزونserial_duplicate.
دفعة منتهيةlot_expired عندما يكون منع الدفعات المنتهية مفعّلًا.
دفعة أو تاريخ انتهاء ناقصطلب إدخال (needs_lot وneeds_serial وneeds_expiry): يفتح الماسح ورقة الإدخال.
عمليات النقل التي يستطيع الجهاز العمل عليها، مع المشغّل وحالة المسح والموجة.
عمليات النقل التي يستطيع الجهاز العمل عليها، مع المشغّل وحالة المسح والموجة.
ببساطة: في التطبيق يبدأ الاستلام بخانة التجهيز (ضع في بحروف كبيرة؛ امسح خانة أخرى لتغييرها) ثم الأصناف؛ ويمكن تحديد خانة وجهة لكل سطر.
استلام على الماسح: الخانة التي يوضع فيها المنتج والمنتج بصورته والكمية المستلمة والمطلوب.
استلام على الماسح: الخانة التي يوضع فيها المنتج والمنتج بصورته والكمية المستلمة والمطلوب.

التسليم والالتقاط

ببساطة: تأتي سطور التسليم مرتبة على مسار الالتقاط (تسلسل الالتقاط لخانة كل سطر). يعرض الماسح الخانة التالية بحروف كهرمانية كبيرة، ثم المنتج بصورته وعدّادًا مثل الملتقَط: 12 / المطلوب: 20.
  1. افتح التسليم. يُستلم لك للعمل عليه: لا أحد غيرك يستطيع المسح عليه (يستطيع المدير).
  2. امسح الخانة. إذا كان للخانة أرقام تحقق يطلبها التطبيق. مسح خانة غير المقترحة مقبول ويُعلَّم بـ wrong_location.
  3. امسح المنتج (والدفعة). تُقترح الدفعة المحجوزة؛ ودفعة أخرى مقبولة وتُعلَّم بـ substitute_lot.
  4. عند اكتمال كل السطور يعرض التطبيق نغمة الإنجاز. اضغط اعتماد.
تسليم قيد التنفيذ: مشغّل الجهاز المحمول وحالة المسح والموجة وعدد عمليات المسح في السجل.
تسليم قيد التنفيذ: مشغّل الجهاز المحمول وحالة المسح والموجة وعدد عمليات المسح في السجل.
ببساطة: تُحفظ الكميات التي تمسحها على السطور (الكمية الممسوحة) أثناء عملك؛ ولا يُمس حجز أودو. يكتب الاعتماد الكميات المنجزة الفعلية، ويُسقط ما لم يُلتقط ويحرّر حجزه.
التقاط تسليم: الخانة التي تذهب إليها والمنتج و«تم / المطلوب» ثم تراجع والبنود وإنهاء.
التقاط تسليم: الخانة التي تذهب إليها والمنتج و«تم / المطلوب» ثم تراجع والبنود وإنهاء.
منتج بدفعات: ورقة الدفعة تسرد الدفعات في الخانة، الأقرب انتهاءً أولًا؛ وباركود GS1 يملؤها وحده.
منتج بدفعات: ورقة الدفعة تسرد الدفعات في الخانة، الأقرب انتهاءً أولًا؛ وباركود GS1 يملؤها وحده.
منتج ليس في عملية النقل: شريط أحمر وصوت إنذار، ولا يتغير شيء.
منتج ليس في عملية النقل: شريط أحمر وصوت إنذار، ولا يتغير شيء.

التحويلات الداخلية والمنصات

  1. افتح تحويلًا داخليًا، أو استخدم تحرك حر في التطبيق لنقل المخزون دون أمر.
  2. امسح خانة المصدر، ثم المنتج (أو المنصة)، ثم خانة الوجهة وأرقام تحققها.
  3. مسح المنصة (حزمة) ينقل كل محتواها بمسح واحد: كل منتج ودفعة وكمية في الحزمة. وتُرفض المنصة كلها إذا كان فيها منتج ليس في عملية النقل.
  4. اعتمد. تنتقل الكميات في المخزون بدقة وتحتفظ المنصة بهويتها في خانة الوجهة.
ببساطة: ينشئ التحرك الحر تحويلًا داخليًا ويعتمده لك. إذا نقلت أكثر مما تُظهره الدفاتر، يُقبل النقل (لقد حدث)، ويصبح مخزون الخانة سالبًا، ويحصل المدير على مهمة.
نقل بين الخانات: اكتملت خطوات المصدر والأصناف والوجهة وتنتظر النقلة زر تأكيد النقل.
نقل بين الخانات: اكتملت خطوات المصدر والأصناف والوجهة وتنتظر النقلة زر تأكيد النقل.

التقاط الموجات على المسار

ببساطة: تجمع الموجة عدة عمليات تسليم (أو تحويلات داخلية من نوع العملية نفسه) ليخدمها ملتقِط واحد في جولة واحدة على المسار المحسَّن، ثم تُعبَّأ الطلبات بعد ذلك.
الموجات كلوحة Kanban حسب الحالة.
الموجات كلوحة Kanban حسب الحالة.
  1. افتح إدارة المستودع المتنقل ← عمليات النقل وحدّد عمليات النقل الجاهزة من نوع عملية واحد واختر إجراء ← إنشاء موجة. أو أنشئ موجة واضغط إضافة عمليات نقل: يقترح المعالج عمليات النقل الجاهزة من النوع نفسه التي ليست في موجة أخرى.
  2. اضغط بدء. يستلم الملتقِط (أو أنت إذا بدأتها) الموجة وكل عمليات نقلها للعمل عليها.
  3. يفتح الملتقِط الموجة في التطبيق. المحطات هي الخانات مرتبة بتسلسل الالتقاط، وفي كل منها سطور كل الطلبات؛ وتُدمج للعرض سطور المنتج نفسه في الخانة نفسها.
  4. يذهب مسح الوحدة إلى أول طلب، بحسب الأولوية والموعد النهائي والتاريخ، ما زال يحتاج إلى المنتج؛ وتُوزَّع الكمية الأكبر على الطلبات بالترتيب نفسه.
  5. اضغط اعتماد: يسأل المعالج ماذا تفعل بعمليات النقل غير المكتملة (أمر مؤجل أو إلغاء المتبقي). عمليات النقل التي بلا أي مسح تغادر الموجة وتبقى مفتوحة.
مسار الالتقاط لموجة: الخانات بترتيب متعرّج مع السطور المراد التقاطها والكميات الممسوحة.
مسار الالتقاط لموجة: الخانات بترتيب متعرّج مع السطور المراد التقاطها والكميات الممسوحة.
اعتماد موجة: كم عملية نقل التُقطت وماذا تفعل بغير المكتملة.
اعتماد موجة: كم عملية نقل التُقطت وماذا تفعل بغير المكتملة.
مهم: اعتماد الموجة إما كله أو لا شيء. إذا تعذّر اعتماد عملية نقل واحدة (مثل نقص دفعة) فلن تُعتمد أي منها، وتذكر الرسالة اسم عملية النقل.
موجة على الماسح: المحطة 1 من 11 والخانة بحروف كبيرة والمنتج وتوزيعه على الطلبات وعدّاد التعبئة.
موجة على الماسح: المحطة 1 من 11 والخانة بحروف كبيرة والمنتج وتوزيعه على الطلبات وعدّاد التعبئة.

الدفعات والأرقام التسلسلية والانتهاء

القاعدةالتفاصيل
الدفعاتتُنشأ الدفعة عند اعتماد الاستلام (الاسم من المسح والانتهاء من المسح). وتُعاد الدفعة الموجودة. ودفعة التسليم يجب أن تكون موجودة؛ وتُرفض الدفعة غير المعروفة (unknown_lot).
الأرقام التسلسليةوحدة واحدة لكل رقم تسلسلي. يُرفض الرقم التسلسلي نفسه مرتين في عملية نقل، أو رقم تسلسلي موجود في المخزون عند استلامه (serial_duplicate).
تاريخ الانتهاءيُحفظ على الدفعة. عند تثبيت ميزة تواريخ الانتهاء في أودو يُستخدم تاريخها ويبقى متزامنًا؛ وإلا تحتفظ الوحدة بالتاريخ في الحقل تاريخ الانتهاء (المستودع المتنقل) في الدفعة.
طلب الانتهاء عند الاستلامفعّله على المنتج (المنتجات المتتبَّعة بالدفعة). عندها يطلب الماسح تاريخًا لكل دفعة جديدة ما لم يحمله باركود GS1.
منتهيةمع منع الدفعات المنتهية يُرفض تسليم أو استلام دفعة منتهية (lot_expired)؛ ويُقبل التحويل الداخلي لدفعة منتهية ويُعلَّم بـ expired_lot، لتتمكن البضاعة المنتهية من الذهاب إلى الحجر.
تنتهي قريبًاالدفعات التي تنتهي خلال عدد الأيام المحدد في الإعدادات تُقبل مع التنبيه expiring_soon.
الدفعات المقترحةيعرض التطبيق حتى خمس دفعات في الخانة، الأقرب انتهاءً أولًا.

الحزم والمنصات

ببساطة: الحزمة هي حزمة أودو (في أودو 19 النموذج هو stock.package)؛ واسمها ما يظهر على الملصق. يمكن مسح ملصق منصة بـ SSCC صالح كـ 00 + 18 رقمًا أو كاسم مجرد.
أينماذا يفعل مسح الحزمة
استلام، حزمة غير معروفةتُنشأ الحزمة باسم SSCC وتصبح حزمة الوجهة للمنتجات التي تُمسح بعدها.
استلام، حزمة موجودة في المخزونتُرفض (package_in_stock): لا يمكن أن تصل المنصة نفسها مرتين.
تسليم أو تحويل داخلييُمسح كل محتوى الحزمة دفعة واحدة؛ وتغادر الحزمة مع بضاعتها (التسليم) أو تنتقل إلى خانة الوجهة محتفظة باسمها (التحويل الداخلي).
ملصقات الحزم بباركود SSCC والمحتوى والموقع.
ملصقات الحزم بباركود SSCC والمحتوى والموقع.

الأوامر المؤجلة وهامش التسامح

السياسةماذا يحدث لما لم يُلتقط
إنشاء أمر مؤجلعملية نقل جديدة للكمية المتبقية مع حجزها. وتُعتمد الكميات الممسوحة في عملية النقل الأولى.
بلا أمر مؤجلتُلغى الكمية المتبقية ويُحرَّر حجزها.
اسأليجيب الخادم بـ needs_backorder_decision مع الكميات المتبقية ولا يغيّر شيئًا (تبقى عمليات المسح). يختار المشغّل ويعتمد مجددًا.
ببساطة: تأتي السياسة من نوع العملية، ويستطيع التطبيق إرسال سياسة أخرى. الاعتماد ذري: إذا فشل أي شيء (التتبع أو الوجهة أو هامش التسامح) فلا يُكتب شيء. تُقبل الكميات الزائدة على الطلب حتى القيمة الأكبر بين هامش تسامح الشركة وهامش نوع العملية، مع التنبيه over_pick؛ وما فوق ذلك يكون over_pick خطأ.

الجرد الدوري

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

العمل دون اتصال والمزامنة

ببساطة: يحتفظ التطبيق على الجهاز بما يحتاج إليه: قواعد GS1 والمنتجات والخانات مع أرقام تحققها والحزم والدفعات الموجودة في المخزون (البيانات الرئيسية، تُحمَّل على صفحات وتُحدَّث تدريجيًا)، وعمليات النقل المفتوحة التي فتحتها. تُفحص عمليات المسح محليًا أولًا، فيصدر الصفير فورًا.
القاعدةالتفاصيل
طابور العملياتيُحفظ كل تغيير (مسح أو تحديث سطر أو اعتماد أو تحرك حر أو مسح موجة أو جرد) بـ uuid فريد وبـ local_seq لا يرجع إلى الوراء أبدًا، ويُرسل بـ POST /sync على دفعات تصل إلى 100.
مكرَّر بلا أثريحتفظ الخادم بكل عملية طُبقت. إعادة إرسالها تُجاب بـ duplicate ولا تغيّر شيئًا، فلا يؤدي ضياع الرد إلى عدّ مزدوج.
العمليات المرفوضةالعملية المرفوضة تُجاب بـ rejected مع الرمز. وإذا صُحّحت البيانات وأُعيد إرسال العملية فإنها تُنفَّذ من جديد.
العمليات المتأخرةالعملية التي يزيد عمرها على 15 دقيقة عند وصولها تُطبَّق (لقد حدثت) وتُعلَّم بـ late_sync مع مهمة للمدير.
عدة أجهزةيُرفض معرّف عملية يعود إلى مستخدم آخر.
التغييراتيسأل التطبيق GET /changes عن عمليات النقل والموجات والجرد التي تغيّرت منذ زيارته الأخيرة.
ببساطة: على الجهاز. تُخزَّن البيانات الرئيسية (المنتجات وباركود تعبئتها والخانات والمنصات والدفعات) في قاعدة SQLite محلية وتُفهرس في الذاكرة، وتأتي قواعد GS1 من خادمك. يُحلَّل كل مسح على الهاتف بمحلّل Dart خالص ومحلّل GS1، وتُرسم الشاشة من جديد في الإطار نفسه ويصدر الصفير فورًا. ولا يكون POST /resolve على الخادم إلا ملاذًا لرمز لا يعرفه الجهاز، وتتعلم الفهرسة من جوابه. ثم يكتب كل مسح الوثيقة المخزّنة وعملية من صندوق الصادر في معاملة قاعدة بيانات واحدة، فلا يخسر التطبيق الذي يُقتل في تلك اللحظة شيئًا.
صندوق الصادر في التطبيقالتفاصيل
الترتيبتُرسل العمليات بترتيب local_seq الذي لا يتغير (لا يرجع إلى الوراء، والصف المحذوف لا يعيد رقمه). العملية التي تنتظر موعد إعادة محاولتها تحجب اللاحقة لها.
الإرسالمهلة ثانيتين بعد المسح، ودفعات تصل إلى 100 عملية عبر POST /sync. وإذا رُفضت الدفعة (HTTP 400 أو 413) يضيّق التطبيق الدفعة ليجد العملية المرفوضة.
الأجوبةapplied وduplicate تزيلان العملية؛ وrejected تُركَن كمشكلة مع رمزها؛ وخطأ الشبكة يعيد المحاولة بتراجع زمني وعشوائية. والعملية التي كانت قيد الإرسال عند تعطل التطبيق ترجع معلّقة.
إعادة التشغيليبقى الطابور حيًا بعد إعادة تشغيل التطبيق والهاتف.
الوثائقما دامت عمليات غير متزامنة فلن يمحو التحديث من الخادم كميات المشغّل. وعملية النقل التي اعتمدتها تختفي من القوائم المفتوحة فورًا وتعود إذا رفض الخادم الاعتماد.
الجردكميات الجرد مطلقة، فلا تعدّ إعادة الإرسال مرتين.
شاشة حالة المزامنة: العمليات في الطابور ومزامنة الآن وإعادة محاولة المشكلات أو إهمالها.
شاشة حالة المزامنة: العمليات في الطابور ومزامنة الآن وإعادة محاولة المشكلات أو إهمالها.
ببساطة: تُفتح شاشة حالة المزامنة من أيقونة السحابة أعلى كل شاشة. المسح المرفوض (مثل صنف خاطئ) لا يُحسب مرسَلًا: يظهر كمشكلة يستطيع المشغّل إعادة محاولتها أو إهمالها.

الأصوات والاهتزاز

الحكمالصوتالاهتزاز
مسح سليم (ok)نغمة حادةنبضة قصيرة واحدة
خطأ (error): منتج أو خانة خاطئة، دفعة منتهية، التقاط زائدصوت إنذار غليظنبضتان طويلتان
اكتمال العملية (complete: انتهاء سطر أو محطة أو وثيقة)نغمة مزدوجة صاعدةقصيرة وقصيرة وطويلة
معلومة (info)نقرة ناعمةلا شيء
ببساطة: الأصوات ملفات قصيرة مولَّدة أصلية للتطبيق (يعيد python3 tool/make_sounds.py توليدها)، وتُحمَّل مسبقًا عند البدء وتُشغَّل بزمن استجابة منخفض (SoundPool على أندرويد وAVAudioPlayer على iOS). وفي الإعدادات يستطيع كل مشغّل تشغيل الصوت أو إيقافه والاهتزاز والوضع العالي (أعلى مستوى للصوت واهتزاز أطول للأرصفة الصاخبة). أما إعدادا الشركة أصوات المسح على الأجهزة والاهتزاز على الأجهزة فهما القيمتان الافتراضيتان اللتان يرسلهما الخادم فقط.
مهم: لم يُقَس على جهاز حقيقي زمن استجابة الصوت ولا قوة الاهتزاز ولا استهلاك البطارية مع بقاء الشاشة مضاءة (الفصل 31).

الأدوار والصلاحيات

المجموعةتستطيع
إدارة المستودع المتنقل / مشغّلتسجّل الدخول إلى التطبيق، وتستلم وتلتقط وتنقل وتجرد على أنواع العمليات المفعّل فيها إدارة المستودع المتنقل، وتعمل على عمليات النقل التي استلمتها للعمل عليها، وترى الموجات وعمليات الجرد الحرة وما يخصها. ليس لها وصول إلى شاشات مخزون أودو عبر هذه المجموعة.
إدارة المستودع المتنقل / مديركل ما يفعله المشغّل، إضافة إلى: إنشاء الموجات وعمليات الجرد وبدئها، واعتماد عمليات الجرد، وتولي عملية نقل، وقراءة سجل المسح والأجهزة والعمليات المتزامنة، وتغيير الخانات وأنواع العمليات. وتشمل صلاحيات مدير المخزون والمواقع المتعددة والدفعات والحزم.
القاعدةالتفاصيل
استلام العملية للعمل عليهاأول مشغّل يمسح على عملية نقل يستلمها. أما الآخرون (غير المديرين) فيحصلون على claimed. المدير الذي يساعد لا يتولى عملية النقل. حرّرها من التطبيق أو عيّن مشغّلًا آخر في النموذج.
الشركاتلكل نموذج قاعدة شركة؛ ويعمل التطبيق في شركة المستخدم.
حماية الحقولالكمية المتوقعة في الجرد مقروءة للمديرين فقط؛ وحالة الموجات وعمليات الجرد ومن اعتمدها لا يمكن كتابتها عبر RPC: الأزرار وحدها تغيّرها.

الإعدادات

الإعدادات ← إدارة المستودع المتنقل.
الإعدادات ← إدارة المستودع المتنقل.
الإعدادالمعنى
قراءة باركود GS1، ترميز GS1تفعيل GS1 أو إيقافه؛ واختيار ترميز GS1 آخر.
بادئة باركود الوزن والسعررقمان لكل منهما، أو فارغ للإيقاف.
هامش التسامح في الالتقاط/الاستلام الزائد (%)الكمية الزائدة على الطلب التي تُقبل وتُعلَّم. 0 يعني لا زيادة.
منع الدفعات المنتهية، تنبيه عند انتهاء الدفعة خلال (أيام)قواعد الانتهاء في الفصل 16.
مسار التقاط متعرّجتناوب الاتجاه في كل ممر.
تعليم فرق الجرد عند تجاوز (% ووحدات)يصبح الفرق أحمر عندما يتجاوز أحدهما.
يجب أن يعدّ المشغّلون جردًا أعمىمفعّل افتراضيًا: لا يستطيع المشغّل إنشاء جرد موجَّه ولا يتلقى كمية متوقعة أو فرقًا.
يجوز للمدير اعتماد جرد قام به بنفسهمتوقف افتراضيًا.
أصوات المسح، الاهتزازالقيم الافتراضية للأجهزة.
فاصل تحديث التطبيق، العمليات في كل مزامنةكم مرة يسأل التطبيق عن التغييرات (من 10 ثوانٍ إلى يوم) وحجم الدفعة (من 1 إلى 100).
الاحتفاظ بسجل المسح (أيام)تُحذف الصفوف القديمة كل ليلة؛ و0 يحتفظ بكل شيء.

الملصقات

ببساطة: حدّد الخانات في الخانات والعناوين واختر طباعة ← ملصقات الخانات (مع أرقام التحقق) واطبع على ورق A4 (ملصقان في الصف، بارتفاع 54 mm). يحمل كل ملصق الاسم والعنوان والمنطقة وباركود Code 128 لباركود الخانة وأرقام التحقق في مربع. تُطبع ملصقات الحزم (SSCC) من الحزمة.
ملصقات الخانات بباركود Code 128 وأرقام التحقق.
ملصقات الخانات بباركود Code 128 وأرقام التحقق.
نصيحة: يولّد الخادم صور الباركود ويضمّنها في ملف PDF، فلا تحتاج الطباعة إلى أي اتصال راجع بأودو.

التقارير والتحليل

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

تطبيق الجوال

ببساطة: صُمّم التطبيق للقفازات والمستودعات المضيئة: تباين شديد وأهداف لمس كبيرة ورموز الخانات والمنتجات بحروف كبيرة جدًا. الألوان: خلفية أردوازية داكنة (وثمة مظهر فاتح أيضًا في الإعدادات)، والكهرماني للخانة التي تذهب إليها، والأخضر للمطابقة، والأحمر للفرق أو الالتقاط الزائد. يتحدث الإنجليزية والعربية (من اليمين إلى اليسار) بخطي Inter وIBM Plex Sans Arabic المضمَّنين، وكل أيقونة من مجموعة Fluent UI System Icons (fluentui_system_icons).
ببساطة: لا أحد يكتب في حقل نص. يذهب المسح إلى الشاشة التي في الأعلى ويُحلَّل في الذاكرة على الجهاز وتُرسم الشاشة من جديد في الإطار نفسه ويصدر صوته؛ ثم تُكتب الوثيقة وعملية صندوق الصادر في قاعدة البيانات المحلية مباشرة (الفصل 20).
الشاشةماذا تعرض
قائمة العملياتبلاطات للاستلام والتسليم والنقل الداخلي والنقل بين المواقع والتجميع بالدفعات وجرد المخزون، لكل منها عدد عمليات النقل الجاهزة وشارات لما هو لي وما تأخر. وشريط في الأعلى يفتح وثيقة بمسح باركودها (عملية نقل أو موجة أو جرد أو أمر شراء). وتكتمل القائمة بالإعدادات وحالة المزامنة وصف اختبار الماسح.
قائمة عمليات النقلما هو لي أولًا ثم بحسب الأولوية والموعد؛ أزرار الكل وما هو لي وعاجل؛ بحث بالاسم أو الأصل أو العميل أو مسح وثيقة؛ وشريط تقدم لكل عملية نقل.
طرفية المسحالاستلام والتسليم والالتقاط والتعبئة. هدف ضخم في الأعلى (الخانة التي تذهب إليها، تم تأكيد الخانة، ضع في)، وبطاقة المنتج بصورته، وتم / المطلوب وشريط التقدم، والتوزيع حسب الطلب للموجات، والسطر التالي، وورقة للدفعة والرقم التسلسلي والانتهاء، ولوحة أرقام لكتابة الكمية، والأزرار تراجع والبنود (أو التعبئة) وإنهاء.
النقل بين المواقعنقل حر في ثلاث خطوات تظهر كمؤشر: المصدر والأصناف والوجهة. تنتقل المنصات بمسح واحد. الأزرار تراجع وإعادة ضبط وتأكيد النقل.
التجميع بالدفعاتالموجة على مسار الالتقاط: المحطة 1 من 11 مع الممر والخانة بحروف كبيرة، وبطاقة المنتج مع الكمية الموزعة على كل طلب، والتعبئة.
جرد المخزونجرد مسودة بزر ابدأ الجرد؛ والرفوف كأزرار؛ والأصناف المعدودة لكل رف؛ وتراجع والرف التالي ومراجعة؛ ومراجعة الجرد للمشرفين بالفروق واعتماد الجرد.
حالة المزامنةمتصل أو غير متصل وآخر مزامنة ومزامنة الآن وطابور العمليات مع إعادة المحاولة والإهمال.
الإعدادات واختبار الماسحملف الماسح وDataWedge والنيّة المخصصة ومفاتيح الزناد وخيارات الكاميرا والصوت والاهتزاز والوضع العالي والمظهر واللغة والبيانات الرئيسية وتسجيل الخروج.
قائمة العمليات: الجاهز وما هو لي وما تأخر لكل عملية وحالة المزامنة وصف اختبار الماسح.
قائمة العمليات: الجاهز وما هو لي وما تأخر لكل عملية وحالة المزامنة وصف اختبار الماسح.
عمليات التسليم: العاجلة أولًا والعميل وأمر البيع وشريط تقدم لكل عملية نقل.
عمليات التسليم: العاجلة أولًا والعميل وأمر البيع وشريط تقدم لكل عملية نقل.
التقاط تسليم دون شبكة: تتحول أيقونة السحابة إلى كهرمانية، ويستمر المسح، وتنتظر العمليات في صندوق الصادر.
التقاط تسليم دون شبكة: تتحول أيقونة السحابة إلى كهرمانية، ويستمر المسح، وتنتظر العمليات في صندوق الصادر.
حالة المزامنة دون اتصال: عمليات المسح في الطابور، لكل منها رقمها وحالتها، ومزامنة الآن.
حالة المزامنة دون اتصال: عمليات المسح في الطابور، لكل منها رقمها وحالتها، ومزامنة الآن.
ببساطة: أعداد اختبارات التطبيق. في المشروع 346 اختبار Dart (المحلّلات ومحلّل GS1 والمحلّل المحلي والمحركات وأشكال نيّات الماسح لدى الشركات الأربع ودفعات المفاتيح والقنوات الأصلية بنسخ مزيفة وأنماط الملاحظات الصوتية واللمسية ومحرك صندوق الصادر والمزامنة والمستودع عبر مقبس حقيقي وتدفقات الواجهة للطرفية والموجة والجرد والنقل والقائمة والإعدادات وتطابق مفاتيح الإنجليزية والعربية واختبار قياس سرعة التحليل) و53 اختبار Kotlin JVM للطبقة الأصلية (تسطيح الحقول الإضافية وإعداد DataWedge وكشف الشركة المصنّعة ومفاتيح الزناد ومرشحات النيّات ومخزن الأحداث). ونتيجة flutter analyze نظيفة. بُني التطبيق كحزمة APK للتصحيح على أندرويد، وبُني لمحاكي iOS، وشُغّل من البداية إلى النهاية على محاكي iOS مقابل أودو حقيقي بهذه الوحدة: استلامات بدفعة ورقم تسلسلي وانتهاء من باركود GS1، وتسليم بالتقاط جزئي وأمر مؤجل، وتحويلات بين الخانات، وموجة، وجرد أعمى لمشغّل اعتمده مدير، ومسارات الأخطاء، وتشغيل دون اتصال (أُوقف الخادم، وتراكمت عمليات المسح، وتمت مزامنة صندوق الصادر بعد إعادة التشغيل). أما ما لم يُتحقق منه فمذكور في الفصل 31.
ببساطة: لقطات هذا الدليل أُخذت في محاكي iOS على قاعدة بيانات تجريبية. وفي المصدر ملاحظات البنية في docs/ARCHITECTURE.md (الطبقات ومسار المسح والقواعد وصندوق الصادر والطبقة الأصلية وقائمة ما لم يُتحقق منه).

للمطورين: الواجهة البرمجية والمحلّل

ببساطة: تخطَّ هذا الفصل إذا كنت تستخدم المنتج فقط. العقد الكامل في documentation/API.md.
# is the server reachable? (no sign-in)
curl https://odoo.example.com/api/wms/v1/ping
# {"ok": true, "api_version": 1, "server_time": "2026-10-28T08:00:00Z"}

# sign in as a warehouse operator (returns a token, the configuration and the GS1 rules)
curl -X POST https://odoo.example.com/api/wms/v1/auth/login -H 'Content-Type: application/json' \
  -d '{"login": "omar", "password": "...", "device": {"id": "TC52-0147", "name": "TC52 dock 1", "platform": "android", "scanner": "zebra"}}'

# what is this barcode? (GS1-128 with GTIN, lot and expiry; the answer says which product, which lot and which date)
curl -X POST https://odoo.example.com/api/wms/v1/resolve -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"barcode": "010629105000040710L2610A\u001d17261118", "context": {"picking_id": 12}}'

# push the queued operations: every operation has a uuid and a local_seq, a repeat changes nothing
curl -X POST https://odoo.example.com/api/wms/v1/sync -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"device_id": "TC52-0147", "ops": [{"uuid": "9d1c...", "type": "scan", "local_seq": 41, "device_time": "2026-10-28T08:01:00Z",
        "payload": {"picking_id": 12, "barcode": "6291050000407", "qty": 6, "location_id": 31}}]}'
المجالنقاط النهاية تحت /api/wms/v1
الجلسةGET /ping, /config; POST /auth/login, /auth/logout
المحلّلPOST /resolve (الباركود والسياق)؛ GET /locations/<barcode>/check?digits=NN
القوائمGET /menu, /pickings, /pickings/<id>, /batches, /batches/<id>, /counts, /counts/<id>, /changes; POST /pickings/<id>/claim, /release, /batches/<id>/start, /claim, /counts/<id>/start
العملياتPOST /sync (scan, line_update, validate, move, batch_pick_line, batch_validate, count_line, count_start, count_submit, count_create) أو POST /ops/<type> بالحمولة نفسها
ذاكرة العمل دون اتصالPOST /master (cursor, scope: products, locations, packages, lots)، على صفحات
ببساطة: ترسل المكالمات Authorization: Bearer <token> واختياريًا Accept-Language. الأخطاء بالشكل {"error": {"code", "message"}} مع حالة HTTP هي 400 أو 401 أو 403 أو 404 أو 409 أو 422. يُحدَّد تسجيل الدخول بـ 8 محاولات خاطئة كل 5 دقائق للعنوان واسم المستخدم نفسيهما.
# the engine of the module, in a shell or in your own code
env["wms.barcode.resolver"].resolve("010629105000040710L2610A\x1d17261118", {"picking_id": 12})
# {"hits": [{"type": "product", "id": 9209, "lot_name": "L2610A", "expiration_date": "2026-11-18", ...}, {"type": "lot", "exists": False, ...}],
#  "primary": {...}, "gs1": {"parsed": [{"ai": "01", "value": "..."}, ...], "raw": "..."}, "warnings": [], "ms": 2.7}
ببساطة: السرعة المقيسة. يحلّل الاختبار الآلي 200 باركود متنوع (منتجات وخانات ودفعات ومنصات وسلاسل GS1 وأرقام أوامر شراء وباركود وزن ورموز غير معروفة) على قاعدة بيانات فيها نحو 2,200 منتج و2,200 خانة و300 دفعة و300 حزمة، ويشترط متوسطًا دون 50 م.ث. في سبع تجارب على حاسوب محمول كان المتوسط بين 3.3 و9.3 م.ث والمئين 95 بين 4.8 و13.3 م.ث. هذه أزمنة من جهة الخادم داخل أودو (الحقل ms في الجواب)؛ وتضيف الشبكة وطبقة HTTP زمنها الخاص. لم تُقَس قواعد بيانات أكبر. يُبحث عن كل نوع من السجلات باستعلام واحد مفهرس.
ببساطة: نقاط الدخول بلغة بايثون على stock.picking: process_barcode_scan(barcode, location_id, package_id, ...) وaction_mobile_validate(picking_id, lines_data, backorder_policy)؛ وعلى wms.batch.pick: wms_scan وwms_validate؛ وعلى wms.count.session: wms_count_line وwms_submit وaction_apply. تفحص هذه الدوال مجموعة المستخدم بنفسها وتؤدي عملها بصلاحيات مرتفعة بعد الفحوص.

الأمان

الموضوعماذا تفعل الوحدة
الرموزيسجّل الجهاز الدخول باسم المستخدم وكلمة المرور ويتلقى رمزًا عشوائيًا؛ ولا يُخزَّن منه إلا بصمة SHA-256. ينتهي الرمز عندما يُؤرشف المستخدم أو يفقد المجموعة أو يُسجَّل خروجه؛ وتُحذف الرموز التي لم تُستخدم منذ 180 يومًا.
التفويضكل دالة عامة تفحص المجموعة والشركة ونوع العملية والاستلام للعمل. لا يُقرَّر شيء من مفتاح سياق أو من حقل يستطيع العميل كتابته.
حقول سير العملالحالة ومن اعتمد وما طُبِّق والكميات الممسوحة في الجرد لا تتغير إلا بالأزرار أو الواجهة البرمجية، وليس مباشرة أبدًا.
المدخلاتيجب أن تكون الكميات أعدادًا منتهية ضمن النطاق، وتُفحص التواريخ، ويُحدّ الباركود بـ 300 حرف، والحمولات بـ 100 عملية في المكالمة؛ وتُرفض NaN واللانهاية.
سلامة الجردالكميات المتوقعة مجمّدة ومخفية عن المشغّلين؛ والاعتماد متسلسل بقفل على الصف، فلا يُطبَّق الجرد مرتين أبدًا؛ ومن عدّ الجرد أو أرسله أو صحّحه لا يستطيع اعتماده، ولا يمكن تغيير العادّ في جرد بدأ.
الشركاتلا يعرض جواب المسح إلا بيانات شركات المستخدم المسجَّل: ويُرفض طلب شركة أخرى في سياق الطلب.
التدقيقيحتفظ سجل المسح والعمليات المتزامنة بمن ومتى وأي جهاز وماذا كان الجواب.

التحديث

استبدل المجلد بالإصدار الجديد وأعد تشغيل أودو ونفّذ -u taqnix_wms_barcode. تبقى الخانات والتسلسلات والإعدادات والموجات وعمليات الجرد وسجل المسح. حدّث التطبيق على الأجهزة بالبناء الجديد؛ ويتخاطب التطبيق والوحدة بإصدار الواجهة البرمجية 1.

حل المشكلات

المشكلةما العمل
لا يستطيع التطبيق الاتصالافتح https://your-odoo/api/wms/v1/ping على الجهاز: يجب أن يجيب بـ {"ok": true}. تحقق من https والشهادة والعنوان دون شرطة مائلة في آخره وقاعدة البيانات (إذا كان لديك عدة قواعد فاستخدم إعداد dbfilter أو أرسل الترويسة X-Odoo-Database).
يقول تسجيل الدخول إن الحساب ليس مشغّلًاامنح المستخدم المجموعة «إدارة المستودع المتنقل / مشغّل» (أو مدير).
عملية النقل ليست في القائمةيجب أن يكون نوع عمليتها مفعّلًا فيه إدارة المستودع المتنقل، وأن تكون حالتها جاهزة (أو بالانتظار)، وأن تتبع شركة المستخدم.
يصفّر الماسح لكن لا يحدث شيء في التطبيقيجب أن يكون إجراء النيّة في الملف التعريفي للماسح وفي إعدادات التطبيق متطابقًا، وأن يكون التسليم Broadcast، وأن يكون إخراج ضغطات المفاتيح (keystroke output) متوقفًا.
المسح يُكتب في حقلما زال إخراج ضغطات المفاتيح (DataWedge) أو إدخال لوحة المفاتيح مفعّلًا.
باركود غير معروفتحقق من باركود المنتج (المخزون ← المنتجات) وباركود التعبئة، وهل الرمز GS1 (يقول المحرك رقم التحقق خاطئ عندما يكون الرقم خاطئًا).
رقم التحقق مرفوضالأرقام على الملصق وفي نموذج الخانة؛ والخانة بلا أرقام تقبل أي شيء.
رقم تسلسلي أو دفعة مرفوضةاقرأ الرمز في الجواب: serial_duplicate أو unknown_lot أو lot_expired أو tracking_required.
التقاط زائدارفع هامش التسامح في الإعدادات أو في نوع العملية، أو اعتمد مع أمر مؤجل.
لا يمكن اعتماد الموجةتذكر الرسالة عملية النقل الفاشلة؛ أصلحها (الدفعة أو الوجهة) واعتمد مجددًا: لم يُكتب شيء.
لا يمكن اعتماد جرديجب أن يكون الجرد في المراجعة؛ ويجب ألا يكون المعتمد هو العادّ (الإعدادات)؛ وربما اعتمده شخص آخر.
تُطبع الملصقات بلا باركودتحقق من أن wkhtmltopdf يعمل وأن للخانة باركود.
تبقى العمليات في الطابورافتح العمليات المتزامنة لترى رمز المرفوضة ورسالتها.
مشكلة الماسحما العمل
لا يحدث شيء حين أسحب الزنادافتح الإعدادات ← اختبار الماسح واسحبه. إذا بقي آخر نيّة خام فارغًا فلم تصل النيّة: قارن الإجراء في ملف الماسح بما في التطبيق، وتحقق من أن التسليم بث وأن الملف مرتبط بـ com.taqnix.wmsscanner.
زر الزناد لا يمسحرموز مفاتيح الزر تتبع الطراز: اقرأها في اختبار الماسح واكتبها في رموز مفاتيح زر المسح.
يُحسب المسح مرتينيُهمل المكرر خلال 400 ملّي ثانية. وإذا كان ماسحك يرسل القراءة نفسها بملفين مختلفين (مثل النيّة ولوحة المفاتيح معًا) فأوقف أحدهما.
لا تفتح الكاميرااسمح للتطبيق باستخدام الكاميرا في إعدادات أندرويد أو iOS.

الحدود وما لم يُتحقق منه

ببساطة: اقرأ هذا قبل أن تقرر. إنها القائمة الصريحة.
الموضوعالتفاصيل
الماسحات الحقيقيةلم يتوفر للمؤلف أي جهاز Zebra أو Honeywell أو Datalogic. الملف التعريفي لـ DataWedge (SET_CONFIG) ونيّات الشركات الثلاث وحقولها والمسح البرمجي بالزناد ورموز مفاتيح الزناد الافتراضية وفق وثائق الشركات، ومختبرة بالوحدات من جهة التحليل فقط. أما وصول بث حقيقي وسلوك المستقبِل على صورة أندرويد معينة والفروق بين DataWedge 6.x و8.x فيجب تأكيدها على عتادك. جرّب جهازًا واحدًا قبل أن تشتري خمسين.
أنواع باركود Honeywellحروف codeId لدى Honeywell مرتبطة بعدد قليل من الأنواع الشائعة فقط؛ والمصدر الموثوق هو معرّف AIM.
الكاميرا والصوت والبطاريةلم يُشغَّل مسح الكاميرا (المصباح ونافذة المسح والوضع المستمر) على جهاز: فمحاكي iOS بلا كاميرا. ولم يُقَس زمن استجابة الأصوات ولا قوة الاهتزاز ولا استهلاك البطارية مع بقاء الشاشة مضاءة ولا سلوك المستقبِل عند إطفاء الشاشة أو في وضع السكون.
محاكي أندرويدتُبنى حزمة APK للتصحيح، لكن المؤلف لم يشغّل التطبيق على محاكي أندرويد ولا على هاتف. شُغّل على محاكي iOS مقابل الوحدة الحقيقية.
iOSلا توجد إضافة ماسح عتادي على iOS: يمسح الآيفون بالكاميرا.
باركود الوزن دون اتصاليُحلَّل EAN-13 المضمَّن فيه الوزن على الجهاز فقط حين يحمل سجل المنتج رمزه (الحقل plu) أو يتضمنه مرجعه الداخلي؛ وإلا حلّله الخادم، أي يحتاج إلى الشبكة.
الأرقام التسلسليةالمسحة الواحدة وحدة واحدة. تغيير الدفعة في منتصف سطر يستبدل دفعة ذلك السطر على الجهاز؛ ويقسّم الخادم السطر حين يستلمه.
وحدات القياستُعرض وحدة القياس غير وحدة المنتج نفسه، لكن الكميات لا تُحوَّل على الجهاز.
باركود العبوة في الجردمسح باركود عبوة منتج أثناء الجرد ينشئ سطر جرد منفصلًا بدل أن يقع على سطر الحزمة التي تحويها. تُظهر المراجعة حينئذ سطر الحزمة مفقودًا (سالبًا) والسطر المنفصل موجودًا (موجبًا): اقرأهما معًا وصحّحهما قبل الاعتماد.
التصنيعأوامر التصنيع (التقاط المكونات والإنتاج) غير مدعومة.
تخطيط الموجاتالموجات تُنشأ يدويًا أو من تحديد. لا يوجد تخطيط آلي للموجات بحسب الوزن أو الحجم أو موعد إغلاق الناقل أو المنطقة.
التخزينخانة الوجهة لسطر ما هي التي تعطيها قواعد التخزين في أودو؛ ولا تضيف الوحدة استراتيجية تخزين خاصة بها.
GS1 بلا فواصلسلسلة GS1 فيها عنصر متغير الطول يتبعه عنصر آخر بلا فاصل غامضة، كما في معيار GS1؛ ويجب أن يرسل الماسح FNC1.
الانتهاءدون ميزة تواريخ الانتهاء في أودو يُحفظ الانتهاء في حقل من هذه الوحدة. أما السلوك مع تثبيت تلك الميزة فيمر عبر مسار الشيفرة نفسه لكنه لم يُختبر في قاعدة بيانات تحتويها.
دون اتصاليعمل التطبيق على ما خزّنه؛ وإنشاء دفعة غير معروفة للخادم ممكن في الاستلامات فقط. ويُمنع عمل جهازين على عملية النقل نفسها بالاستلام للعمل، ولا يُدمجان.
الحجمقِيس المحلّل على قاعدة بيانات فيها نحو 2,200 منتج و2,200 خانة (الفصل 27). لم تُقَس قواعد بيانات أكبر.
إصدار أودومبني ومختبر على أودو 19.0.

الدعم

المساعدة في التثبيت وإصلاح الأخطاء مشمولان لمدة 6 أشهر مع تحديثات مدى الحياة. تواصل معنا عبر صفحة السوق التي اشتريت منها الوحدة أو راسل support@taqnix.com مع إصدار أودو ولقطة شاشة.