كيف يمكنني الاتصال بـ SAP من C# من خلال مكتبة SAP NetWeaver RFC (SAPNWRFC.DLL)؟

StackOverflow https://stackoverflow.com/questions/2342324

سؤال

برنامجنا مكتوب في C# ويحتاج إلى الاتصال بـ SAP. نظرًا لأن بعض عملائنا يستخدمون الإصدارات القديمة من SAP ، والبعض الآخر ليس لديهم SAP PI ، لا يمكننا الاتصال من خلال خدمات الويب.

حاولت الاتصال بـ SAP من خلال مكتبة استدعاء وظيفة SAP NetWeaver (SAPNWRFC.DLL) على النحو التالي:

  • إضافة sapnwrfc.dll و DLLs الأخرى من NWRFC_6-20004550.SAR (يجري ICUDT34.DLL ، ICUIN34.DLL ، ICUUC34.DLL ، libicudecnumber.dll ، و libsapucum.dll) إلى c: windows system32 ، للتأكد من أنهم يمكن ايجاده.
  • في رمز C# أضف ما يلي في تعريف الفئة:
    dllimport ("sapnwrfc.dll" ، charset = charset.auto)
    ounded extern extern extern extern rfcinit () ؛
    وما يلي في الطريقة التي يجب أن تفعل العمل:
    rfcinit () ؛

تشغيل هذا الرمز يعطي dllnotfoundException:
غير قادر على تحميل DLL 'SAPNWRFC.DLL': فشل هذا التطبيق في البدء لأن تكوين التطبيق غير صحيح. إعادة تثبيت التطبيق قد حل هذه المشكلة. (استثناء من Hresult: 0x800736B1)

تشغيل Connect-to-C ++-من مثال C#
dllimport ("user32.dll" ، charset = charset.unicode)
STATIC EXTRIC EXTREMBOX (Intptr HWND ، نص السلسلة ، توضيح السلسلة ، نوع UINT) ؛
MessageBox (New IntPtr (0) ، "Hello World!" ، "Hello Dialog" ، 0) ؛
يعمل بشكل جيد.

أي اقتراحات كيفية جعل هذا يعمل بشكل جيد (حتى لا نحتاج إلى حل هذه المشكلة عن طريق كتابة وكيل Java باستخدام JCO)؟

هل كانت مفيدة؟

المحلول

هل قمت بالتحقق من عارض التبعية إذا كنت تفتقد بعض DLL؟ لقد كتبت مرة واحدة غلافًا مُدارًا لمكتبة RFC (على الأقل جزء منه) وأتذكر أن أواجه مشكلة في بعض مكتبات RFC التي قمت بتنزيلها. نسخة واحدة ببساطة لم تنجح ولم أكن أعرف ما هو الخطأ. نسخة أخرى (أقدم) عملت على ما يرام.

ومع ذلك ، واجهت مشاكل في مكتبة Unicode (بعض مشكلة في الوصول إلى الذاكرة ظهرت بشكل عشوائي) لذلك اضطررت إلى التبديل إلى إصدار غير unicode ...

إذا اضطررت إلى فعل شيء كهذا مرة أخرى ، فسأفكر بجدية في شراء موصل:http://www.theobald-software.com/en/products/erpconnect.htm

لا أستطيع أن أقول إذا كان الأمر جيدًا ، لكن يبدو أنهم موجودون لفترة من الوقت الآن.

نصائح أخرى

لماذا لا تستخدم ببساطة SAP's ".NET Connector" (NCO3)؟ راجع SAP Note 856863 للحصول على رابط إلى صفحة التنزيل والوثائق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top