vdcasino
betexper
imajbet
perabet
casinomaxi
ilbet
Go to previous topic
Go to next topic
آخرين ارسال 30 اردیبهشت 1399 04:19 ب.ظ توسط  Tariverdi
مطلب آموزشی: روش ساده فراخوانی اطلاعات یک فیلد از یک گردش کار دیگر
 7 پاسخ
مولف پيغام ها


کاربر باتجربه


کاربر باتجربه


--
29 اردیبهشت 1399 03:27 ب.ظ

    با سلام خدمت همکاران گرامی

    در این مطلب سعی می کنم با یک مثال ساده، روش خواندن اطلاعات فیلدها از یک گردش کار دیگر و استفاده از این اطلاعات در گردش کار جاری را توضیح بدهم. فرض کنید دو گردش کار به شرح زیر داریم:

    گردش کار جاری

    کد گردش کار: 11

    نام گردش کار: ارجاعات پشتیبانی

    نام فیلد مبادله ای : تعداد ارجاعات کارشناس (Expert_Refs) . این همان فیلدی است که  قرار است با فراخوانی از گردش کار دیگر  پر شود.

    گردش کار فرعی (فراخوانی شونده)

    کد گردش کار: 15

    نام گردش کار: صف کارهای ارجاع شده

    نام فیلد مبادله ای: تعداد ارجاعات (Karmand_Refs). این همان فیلدی است که قرار است اطلاعات آن به گردش کار 11 منتقل شود.

     

    روش فراخوانی

    این کار در 3 مرحله انجام می شود:

    مرحله اول: جستجوی یک کار در گردش کار 15 با شرایط مورد نظر

    مرحله دوم: خواندن وضعیت کار بازیابی شده

    مرحله سوم: انتخاب مقدار فیلد مورد نظر از این کار (Karmand_Refs) و قرار دادن این مقدار در فیلد مورد نظر در گردش کار 11 (Expert_Refs)

    حال این مراحل را یک به یک توضیح می دهیم:

    مرحله اول) جستجوی کار در گردش کار 15

    برای این کار باید از تابع SearchWork به شکل زیر استفاده کنید:

    عبارت جستجو (reqXML)

    در این تابع متغیر reqXML در واقع همان عبارت جستجو است که جستجو براساس آن انجام می شود. این عبارت به فرمت XML می باشد که در این مثال ساده ترین حالت آن نمایش داده شده است. همانطور که می بینید تنها شرط ما در این مثال WorkflowCode=15 است . یعنی تمام کارهایی که در گردش کار 15 هستند بازیابی می شود.

    تابع جستجو (SeachWork)

    از آنجایی که تعداد کارهای بازیابی شده براساس شرایط جستجو، ماهیتا متعدد است بنابراین خروجی این تابع، یک آرایه است. یعنی خروجی یک تعداد کد کار (WorkKey) است که در قالب یک آرایه تولید می شود.  

    مرحله دوم) خواندن وضعیت کار بازیابی شده

    در این مرحله وضعیت کار مورد نظر توسط تابع GetWorkState خوانده و در یک متغیر ذخیره می شود:

    همانطور که مشاهده می کنید وضعیت کار در متغیر ws15 ذخیره شده است که نام این متغیر کاملا سلیقه ای است و من برای اینکه مشخص شود از کدام گردش کار است این نام را انتخاب کرده ام. نکته دیگر این است یکی از پارامترهای این تابع، کلید کار یا WorkKey است. این کلید در مرحله قبل (جستجوی کار) تولید شده است اما از آنجا که همانطور که گفته شد یک آرایه است لذا باید اندیس مشخصی از این آرایه را به عنوان پارامتر در نظر بگیرید. به عبارت دیگر در تابع GetWorkState فقط یک عدد به عنوان WorkKey باید وارد شود. در این مثال اندیس صفر از آرایه که در واقع اولین مقدار آرایه است، انتخاب شده است. به عبارت دیگر اگر مثلا سه کار با شرایط مورد نظر ما وجود داشته باشد، ما کار اول را انتخاب و وضعیت آن را در متغیر قرار می دهیم. 

    مرحله سوم)  انتخاب فیلد هدف از این وضعیت و قرار دادن آن در فیلد مورد نظر در گردش کار جاری

    در این مرحله، مقدار فیلد Karmand از گردش کار 15 در فیلد Expert_Refs از گردش کار جاری (11) قرار می گیرد.

    همانطور که گفته شد این ساده ترین حالت می باشد. در مطالب بعدی سعی خواهد شد مرحله اول یعنی جستجوی کار بیشتر و با مثالهای دقیق تر توضیح داده شود.

     

    موفق باشید

     

     

     

     

     

    پيوست ها


    کاربر باتجربه


    کاربر باتجربه


    --
    29 اردیبهشت 1399 04:02 ب.ظ
    با تشکر فراوان از آقای تاریوردی


    کاربر پورتال


    کاربر پورتال


    --
    29 اردیبهشت 1399 04:35 ب.ظ

    خیلی ممنون آقای تاریوردی از مطالب مفیدتون.



    کاربر باتجربه


    کاربر باتجربه


    --
    29 اردیبهشت 1399 04:40 ب.ظ
    از لطف شما همکاران محترم ممنونم


    کاربر پورتال


    کاربر پورتال


    --
    29 اردیبهشت 1399 04:46 ب.ظ

    با سپاس فراوان از آقای تاریوردی بابت پست مفید و کاربردی.

    سوالی که برای من پیش آمده این است که آیا همیشه لازم است برای استفاده از GetWorkState  از searchWork استفاده شود؟

     

     



    کاربر باتجربه


    کاربر باتجربه


    --
    29 اردیبهشت 1399 05:11 ب.ظ
    ارسال توسط علی منصوری در 29 اردیبهشت 1399 04:46 ب.ظ

    با سپاس فراوان از آقای تاریوردی بابت پست مفید و کاربردی.

    سوالی که برای من پیش آمده این است که آیا همیشه لازم است برای استفاده از GetWorkState  از searchWork استفاده شود؟

    از لطف شما خیلی ممنونم. در جواب به سوال شما باید عرض کنم که برای استفاده از GetWorkState نیاز به یک پارامتر بنام WorkKey داریم و  یکی از راههای بدست آوردن WorkKey استفاده از SearchWork است. دو راه دیگر برای یافتن WorkKey وجود دارد:

    - از طریق ایجاد یک کار با استفاده از تابع StartWork : خروجی تابع StartWork هم WorkKey است که در این مورد یونیک است و آرایه نیست چون یک کار ایجاد می شود.

    - از طریق خواندن از متغیرهای یک گردش کار: اگر به هر طریق، مقدار WorkKey در یک متغیر ذخیره شده باشد، آنگاه می توانیم مقدار آن متغیر را به عنوان WorkKey  استفاده کنیم. البته این مورد را من هم ابهام دارم که در یک پست از آقای نجفی پرسیده ام. برای پیگیری این موضوع به پست زیر مراجعه کنید

    لزوم استفاده از SearchWork

     

     

     

     



    کاربر پورتال


    کاربر پورتال


    --
    30 اردیبهشت 1399 03:47 ب.ظ

    باسلام

    ضمن تشکر از آقای تاریوردی بابت توضیحات جامع و شامل که در خصوص کار با GetWorkState بیان کردند ، درصورت امکان مثالی در مورد استفاده از GetWorkStateByCode  نیز مطرح نمایید.

    باتشکر فراوان



    کاربر باتجربه


    کاربر باتجربه


    --
    30 اردیبهشت 1399 04:19 ب.ظ
    ارسال توسط Afrisham در 30 اردیبهشت 1399 03:47 ب.ظ

    باسلام

    ضمن تشکر از آقای تاریوردی بابت توضیحات جامع و شامل که در خصوص کار با GetWorkState بیان کردند ، درصورت امکان مثالی در مورد استفاده از GetWorkStateByCode  نیز مطرح نمایید.

    باتشکر فراوان

    آقای افریشم عزیز

    با تشکر از لطف شما، اتفاقا مطلبی در همین موضوع در دست تهیه دارم که فکر می کنم تا آخر وقت آماده شود. به محض آماده شدن، به انجمن ارسال خواهم کرد.

     

     



    ---