سؤال

لدي سلوك غريب يحدث.

أنا أستخدم التماس و JBPM. عندما أقول:

ProcessDefinition templateDefinition = Jbpm.instance().getProcessDefinitionFromResource(ap.getJpdl()); 
//This will return Enkeltanledning.jpdl.xml
templateDefinition.getVersion();

يعود دائما -1. ومع ذلك، عندما اخترت من قاعدة البيانات، أحصل على الإصدار 2.

MySQL> حدد * من JBPM_ProcessDefinition؛ + ----- + -------- + ----------------------------- + ------ ---------- + ---------- + ------------------------ + --- ---------- + |. ID_ |. class_ |. اسم_ |. الوصف_ |. الإصدار_ |. isterminationImplicit_ |. startstate_ |. + ----- + -------- + ----------------------------- + ------ ---------- + ---------- + ------------------------ + --- ---------- + |. 1 | ص | enkeltanleding |. null |. 1 | | 1 | | 2 | ص | enkeltanleding |. null |. 2 | | 31 |

الآن، لقد وجدت هذا الرابط:jpdl.ويقول:

تعاريف العملية غير المسمدة سيكون لها دائما رقم الإصدار -1.

ومع ذلك، لدي تعريفات العملية الخاصة بي ليست Unnamed، وعندما أقوم بتصحيح TempleatedeFinition، أحصل على الاسم الصحيح enkeltanled. ، لذلك أعرف أنه هو ملف JPDL الصحيح الذي تم تحميله.

لذلك سؤالي هو، لماذا يعود رمزي دائما -1 في الإصدار؟ السبب في أنني بحاجة إلى النسخة الصحيحة، هو أنني أقوم ببعض الشيكات لمعرفة ما إذا كان لدي الإصدار الصحيح، وأي من ذلك فسأحدد إعادة نشر التعريفي، وبما أنني دائما أحصل على -1، فسوف ينتشر دائما.

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

المحلول

لقد وجدت الجواب.

في الوقت المناسب أن أقرأ ProcessDeFinition من الملف بدلا من استعراض قاعدة البيانات. تغيير الرمز إلى هذا حلها

@In
JbpmContext jbpmContext;

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top