كيف يمكن لخادم SAP TRFC إخبار العميل من خلال JCO بأن الوظيفة قد تم تنفيذها؟

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

  •  03-10-2019
  •  | 
  •  

سؤال

مستند SAPS "الوصف الفني للمعاملات RFC" (الإصدار 4.0 ، انظرhttp://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/ee6bca90-0201-0010-5792-d9693e2eac83؟quicklinklink=index&overriout) في القسم المعاملات RFC في الصفحة 6: "أخيرًا ، يخبر الخادم العميل ، أنه تم تنفيذ الوظيفة وأن العميل يعترف بذلك.".

كيف يمكن أن يخبر الخادم هذا للعميل عندما يتواصل الخادم مع العميل من خلال JCO (موصل Java)؟

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

المحلول

الإصدار 4.0 قديم جدًا - تأكد من استخدام الوثائق الحديثة دائمًا.

من ما يمكنني رؤيته ، لا توجد طريقة لتسليم نتيجة استدعاء TRFC مرة أخرى إلى الخادم. يمكن وضع مكالمات TRFC في قائمة انتظار (محلية أو عن بعد) وتنفيذها لاحقًا. نرى http://help.sap.com/saphelp_nw04/helpdata/en/f0/02a63b9bb3e035e100000a114084/frameset.htm للحصول على معلومات حول كيفية مراقبة مكالمات TRFC.

نصائح أخرى

الجواب بسيط للغاية: من خلال عدم رمي استثناء! على افتراض أن جانب JCO هو الخادم هنا ، كل ما عليك فعله هو العودة بنجاح من الطريقة التي تنفذ وحدة الوظائف. سيقوم JCO بعد ذلك بإرجاع الإقرار المطلوب تلقائيًا بواسطة protocoll TRFC إلى العميل (= نظام R/3 في هذه الحالة).

سيؤدي نظام R/3 ، عند استلام ACK من JCO ، إلى تشغيل حدث تأكيد ، والذي يتلقاه JCO وينتقل إلى الحدث المناسب لـ JCoservertIdHandler الخاص بك. هنا يمكنك بعد ذلك تنظيف Tid من حالتك الحفاظ على DB.

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

تشرح المقالة التالية بمزيد من التفاصيل ، كيف ينبغي تنفيذ TRFC بين برنامج خارجي ونظام SAP. يعتمد على مكتبة NetWeaver RFC (C/C ++) ، ولكن يمكنك بسهولة ترجمتها إلى JCO و Java:https://wiki.scn.sap.com/wiki/x/fd67gg

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