Tibco - BusinessWorks - احصل على مسار العملية بشكل ديناميكي

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

  •  22-09-2019
  •  | 
  •  

سؤال

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

المشكلة هي: كيف يمكنني الحصول على المسار الذي تعمل فيه العملية؟

شيء مثل 'Server.MapPath' الذي يرجع مسار الصورة في نظام الملفات.

شكرا لك مقدما.

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

المحلول

إذا كانت صورك موجودة في مجلد في BW-Project ، يمكنك استخدام نشاط "Retrieve Resource" للوصول إلى المحتوى.

عليك فقط تعيين Resourcepath مع المسار النسبي في مشروعك وسيقوم بإخراج بيانات BASE64.

نصائح أخرى

يمكن أن يكون Soap Retrieveresources حلاً جيدًا ، ولكنه يلقي nullpointerxception بالنسبة لي على BW 5.4. ربما يكون خطأ في هذا الإصدار.
المشكلة المتعلقة بالحصول على "مسار الجذر" هي أن مشروع BW المنشور لا يحتفظ بهيكله الأصلي للمجلد/الملفات - لن "ينفجر" ملف الأذن. لذلك لن تجد الصورة كملف منفصل على مربع خادم BW.
هناك طريقة بسيطة لتحميل ملفات XML ديناميكيًا ، باستخدام عبارة XPath التالية:

tib:render-xml(document('tibcr://path/to/file.xml'))

لكن من الواضح أنه سيفشل في الملفات الثنائية. أفضل تخمين لتخزين البيانات الثنائية داخل مشروع BW هو تخزينها كسلسلة ثابتة بتنسيق Base64 أو Hex.

في حال واجه شخص ما هذا السؤال (كما فعلت اليوم) ، إليك طريقة للحصول على المسار المطلق لملف داخل التطبيق. يمكن استخدام الكود التالي في نشاط "رمز Java" ، على سبيل المثال ، كونه REPANTINGPATH و ABSOPLEDEPATH معلمات الإدخال والمخرجات ، على التوالي:

absolutePath = com.tibco.pe.core.Engine.getRepoAgent().getAbsoluteURIFromProjectRelativeURI(relativePath);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top