سؤال

حسنًا، قد لا يكون هذا هو الموضوع الأفضل...

أقوم بإعداد سير عمل الموافقة داخل التطبيق.أقوم بتمرير اسم المستخدم والمبلغ بالدولار إلى الإجراء الفرعي وأكتشف سير العمل الذي أحتاج إلى استخدامه في عملية الموافقة.اعتقدت أنني عملت على هذا حتى أحاول التعامل مع الحالة عندما لم يتم إعداد المستخدم.

لذلك في طاولتي لدي:

wfid    wfuser    wfamt
1         user1      0
2         user2      0
2         user2      10000.00

الآن، إذا حاول المستخدم 3 إرسال شيء ما إلى سير العمل، فلا ينبغي أن يتم ذلك لأنه لم يتم إعداده.(يرجى ملاحظة أن لدي جدول آخر يحتوي على تعريف التدفق الفعلي)

كان لدي هذا الرمز لاسترداد سير العمل الصحيح:

     setgt (userId:amount) ARWFR1;
     readp ARWFR1;
     return wfid;

من الواضح أن هذا يعمل إذا تم إعداد المستخدم بشكل صحيح.ومع ذلك، قم بإرجاع user3 sinareo مرة أخرى ولن يعمل بشكل صحيح.لذا حاولت بعد ذلك:

     setgt (userId:amount) ARWFR1;
     readpe (userId) ARWFR1;
     if (%eof());
       return 0;
     endif;
     return wfid;

هذا لا يعمل كما كنت أتوقع.أنا متأكد من أنني أفتقد الوضوح، هل يمكنك رؤيته؟آمل أن يكون منطقى الحالى واضحا بما فيه الكفاية.

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

المحلول

يمكن العثور على الحل الذي نجح بالنسبة لي على: http://archive.midrange.com/rpg400-l/200809/msg00509.html

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