vdcasino
betexper
imajbet
perabet
casinomaxi
ilbet

چنانچه در هریک از مراحل نصب یا کاربری نرم‌افزارها به مشکلی برخورد کرده‌اید یا هر سوال، اشکال یا ابهامی در این زمینه دارید، می‌توانید پاسخ خود را ابتدا در مطالب موجود جستجو و در صورت لزوم به عنوان یک مبحث جدید مطرح کنید، تا کارشناسان پشتیبانی به آن پاسخ دهند.

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

انجمن های پشتیبانی سیمرغ نوسا

قبليقبلي Go to previous topic
بعديبعدي Go to next topic
آخرين ارسال 26 آذر 1401 11:24 ق.ظ توسط  Tariverdi
آموزشی: ابزارهای تولید و ویرایش xml : بخش 1) تولید متنهای xml
 2 پاسخ
مرتب:
شما مجاز به پاسخ به اين پست نمي باشيد.
مولف پيغام ها


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


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


--
16 آذر 1401 09:27 ق.ظ

    در توابع و متدهای برنامه نویسی سیستم مدیریت فرایندها، در موارد زیادی باید داده های ساختاریافته را به فرم xml و به عنوان پارامتر به این توابع پاس کنیم. برای مثال یکی از پرکاربردترین این موارد، جستجوی کارهاست که با استفاده از تابع SearchWork انجام می شود. به یک نمونه از این تابع توجه کنید:

    همانطور که ملاحظه می کنید، عبارتها و عملگرهای جستجو به شکل ساختاریافته و در قالب یک متن xml بنام data به تابع SearchWork پاس شده است. این مثال اگرچه یک جستجوی بسیار ساده است اما در همین مثال ساده نیز پیچیدگیهای متن xml از لحاظ رعایت علائم و کاراکترهای ‘, “”, <, >  تا حدودی مشخص است. یک اشتباه کوچک در عدم رعایت قواعد استفاده از این علائم و یا عدم استفاده از یک فاصله خالی، اجرای تابع را با خطا مواجه می کند ضمن این که ردیابی و رفع این خطاها بسیار خسته کننده و زمانبر می باشد. لذا برای تولید سیستماتیک فایلهای xml یک Object با نام WorkXMLUtils پیاده سازی شده است که با استفاده از متدها و ویژگی (Property) های این Object ، می توانید یک فایل xml را تولید کنید و یا عناصر (Element) و مشخصه (Attribute) های آن را ویرایش کنید. این متدها بطور اتوماتیک، علائم و دستور (Syntax) استفاده از این علائم را رعایت می کنند و به این ترتیب،  فایل xml  به شکل صحیح و بدون خطا تولید و یا ویرایش می شود. در این مستند تنها به تولید متنهای xml پرداخته شده است و بحث خواندن و ویرایش این متنها در مستندات دیگر توضیح داده خواهد شد.

    برای شرح دقیق تر توابع تولید xml ، در ادامه مطلب نحوه استفاده از این توابع در چند مثال، بصورت عملی توضیح داده شده است.

    مثال 1: تولید متن xml برای یک جستجوی ساده در کارهای گردش کار

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

    مراحل تولید متن xml

    برای تولید متن xml مثال بالا باید پاراگراف زیر را در محیط برنامه نویسی درج کنید:

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

    1.ایجاد متن xml

    در این مرحله، با تعیین عنصر ریشه (Root Element) ، متن xml مورد نظر خود را به شکل حداقلی ایجاد می کنیم. عنصر ریشه  (Root Element) در مثال ما _RQST است که در بالا با رنگ قرمز مشخص شده است. برای این کار کافی است یک رشته حرفی به شکل زیر بسازیم:

    در واقع در این مرحله ما سطح پایه یا ریشه متن xml  را ایجاد می کنیم. مشخصه های ریشه و تمام عناصر و مشخصه های بعدی از طریق برنامه نویسی و به شکل فرزند (Child) برای این عنصر انجام خواهد شد.

    توضیح: در اینجا برای راحتی کار و پرهیز از اشتباهات سهوی دستوری از فرمت خلاصه <_RQST /> استفاده شده است. این عبارت معادل </_RQST><_RQST> است.

    2.ایجاد یک DOMDocument

    همانطور که می دانید یک فایل xml یک فایل متنی با ساختار درختی با لایه ها یا سطوح متعدد است که از یک سری عنصر  Element که سرشاخه های درخت هستند به اضافه یک سری مشخصه Atrribute که مشخصات Element ها هستند تشکیل می شود.  حال برای امکان دسترسی و ویرایش متن xml از طریق برنامه نویسی، نیاز به یک مدل واسط بنام DOM(Document Object Model) داریم که از عناصر و مشخصه های موجود در xml یک Object تولید می کند و به این وسیله نقش یک API را برای امکان دسترسی به ساختار xml فراهم می کند. در ابزارهای برنامه نویسی سیستم مدیریت فرایندها، متدی که برای این کار استفاده می شود،  CreateDocument است. بنابراین دومین سطر برنامه به شکل زیر خواهد بود:

    حال ما یک متغیر بنام xmlDoc داریم که در واقع یک Object است که متن xml  در مراحل بعدی، در این Object، فراخوانی خواهد شد.

     

    3.خواندن متن xml در xmlDoc

    حال که متن xml ایجاد شده است، باید این متن توسط xmlDoc خوانده شود تا امکان ویرایش و توسعه آن را داشته باشیم:

    4.تعیین مشخصه (Attribute) های عنصر ریشه

    اگر به مثال مراجعه کنید، می بینید که عنصر ریشه دارای دو مشخصه WorkflowCode=”1” و Status=”15” است. برای تعیین مشخصه های فوق، از متد SetAttribute به ترتیب زیر استفاده می کنیم:

    با توجه به اینکه عنصر ریشه DocumentElement نام دارد لذا در سطر اول از این بخش، عنصر ریشه در یک متغیر بنام rootNode قرار می گیرد و در سطرهای دوم و سوم، مشخصه ها یک به یک به این عنصر افزوده می شود.

     

    5.تعریف یک عنصر با نام Term برای وارد کردن شرط جستجو

    مقادیر مورد نظر فیلدها برای جستجو و نیز عملگرهای جستجو بصورت مشخصه های یک عنصر با نام Term تعیین می شود بنابراین باید ابتدا عنصر Term را ایجاد کنیم. ایجاد عنصر توسط متد CreateElement و به شکل زیر انجام می شود:

    نکته مهم: ایجاد یک عنصر (Element) توسط متد CreateElement به معنی افزوده شدن آن به متن xml نیست و افزودن آن در مرحله بعد انجام می شود.

     

    6.افزودن عنصر Term به شکل فرزند  (Child)برای عنصر ریشه

    در این مرحله با استفاده از متد AppendChild می توانیم عنصر Term را بصورت فرزند یا زیرشاخه عنصر ریشه، به متن xml اضافه کنیم:

    توضیح: هر عنصر Term برای یک شرط بکار می رود و لذا برای جستجوهای پیچیده تر و ترکیبی که شامل شرطها و فیلدهای متعدد هستند باید Termهای متعدد ایجاد کنید. این مورد در مثالهای بعدی توضیح داده شده است.

    7.افزودن مشخصه ها به عنصر Term

    در این مرحله مشخصه های لازم برای جستجو در مقادیر فیلد تعیین و اضافه می شود. این مشخصه ها عبارتند از :

    ScriptName : نام در برنامه فیلد

    LOpعملگر بین خطوط:

    Opعملگر جستجو در سطر:

    Valueمقدار فیلد :

    در مرحله شماره 5، که عنصر Term ایجاد شد، این عنصر به شکل یک WorkDOMNode در یک متغیر بنام node1 قرار گرفت. لذا از همین متغیر می توانیم برای افزودن مشخصه ها استفاده کنیم.

    با این ترتیب تولید این xml پایان می یابد.

    توضیح: همانطور که در این مثال هم نشان داده شد، پارامتر دوم در تابع  SetAttribute (name, value) برای تعیین مقدار مشخصه ها بکار می رود، اگر این پارامتر رشته حرفی باشد باید بین دو کاراکتر نقل قول "" قرار بگیرد در غیر این صورت و برای مقادیر عددی و منطقی  و نیز برای مقدار فیلدهای قابل تعریف، نیازی به این کاراکتر نیست. این قابلیت یکی از مزایای استفااده از این توابع می باشد.

    8.استخراج متن xml و پاس کردن آن به عنوان پارامتر

    و درنهایت باید محتوای xml را از xmlDoc  استخراج کنیم و این متن را به عنوان پارامتر به تابع مورد نظر (در این مثال SearchWork) پاس کنیم.  برای این کار باید سطر زیر را به برنامه اضافه کنیم:

    توضیح این که یکی از ویژگی (property) های xmlDoc  ویژگی XML است و خروجی آن، محتوای متنی  xml  می باشد که به این ترتیب می توانیم این متن را استخراج کنیم و با قرار دادن در یک متغیر مثل data ، آن را به تابع مورد نظر پاس کنیم.

    مثال 2: یک جستجوی ترکیبی در کارهای گردش کار

    همانطور که در مثال قبل گفته شد، بخشی از شرطهای مورد نظر برای جستجو، در قالب مشخصه های عنصر Term در متن xml درج می­شود. بنابراین برای جستجوی ترکیبی باید این عنصر را تکرار کنید. برای مثال فرض کنید جستجوی قبلی را می خواهید محدودتر کنید و مثلا کالاهای با نام تامین کننده خاص و قیمت بیش از 10000 ریال را جستجو کنید. در این مثال، شرط قیمت بیشتر از 10000 به شکل زیر به متن xml اضافه می شود:

    حال در برنامه گردش کار برای افزودن یک عنصر فرزند دیگر با نام Term به عنصر ریشه، اضافه کنید. به این ترتیب، برنامه به شکل زیر تغییر می کند:

    سطرهایی که در بالا به رنگ آبی است برای افزودن شرط دوم جستجوی ترکیبی به برنامه افزوده شده است. به این ترتیب، متن xml به شکل زیر تولید می شود:

    نکته مهم: اتفاق بسیار جالبی که در اینجا افتاده این است که متد SetAttribute بطور اتوماتیک کاراکتر بزرگتر (<) را تبدیل به ;gt& کرده است. علت آن هم این است  که کاراکتر  (<) در ساختار xml معنی دار است و برای بستن Tag ها استفاده می شود لذا استفاده از این کاراکتر برنامه را با خطا روبرو خواهد کرد. البته این قابلیت محدود به علامت بزرگتر نیست و برای تمام کاراکترهای خاص این تبدیل انجام می شود.

    تبدیل کاراکترهای خاص در xml

    توابع تولید xml بطور اتوماتیک کاراکترهای خاص زیر را به عبارتهای معادل (entity reference) آنها تبدیل می کند:

    این قابلیت یکی دیگر از مزایای بسیار مفیدی است تولید متنهای xml شامل این کاراکترها را بسیار تسهیل می کند. این مورد بخصوص برای کاراکتر نقل قول "" بسیار برجسته است. برای مثال فرض کنید در یک مشخصه با محتوای حرفی مثلا خلاصه کتابها، بعضی از عبارات برای تاکید بین دو علامت نقل قول قرار گرفته باشد در این صورت سیستم این کاراکترها را تشخیص می دهد و به شکل اتوماتیک تبدیل به "e; می کند. در غیر این صورت، علامت نقل قول محتوای این مشخصه را با اختلال روبرو خواهد کرد.

    مثال 3: جستجو در فیلدهای از نوع آرایه، در کارهای گردش کار

    همانطور که می دانید فیلدهای از نوع آرایه، شامل تعدادی فیلد زیرمجموعه هستند که اجزای آرایه نامیده می شوند. به این ترتیب، در متن xml، اجزای آرایه به شکل فرزند فیلد آرایه درج می شود. برای مثال فرض کنید فیلد تامین کننده ها (suppliers) به شکل آرایه و دارای یک جزء بنام supplierName است و می خواهیم جستجو را در این فیلد انجام دهیم به این شکل که تمام کارهای خرید کالا که نام تامین کننده آن شرکت نمونه است، بازیابی شود. در این صورت متن xml باید به شکل زیر تولید شود:

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

    مثال 4: ایجاد یک کار جدید با فیلدهای دلخواه (StartWork)

    فرض کنید در یک گردش کار خاص می خواهیم یک کار جدید از طریق برنامه ایجاد کنیم. در سیستم مدیریت فرایندها ایجاد کار جدید با استفاده از متد StartWork انجام می شود. پارامتری که به شکل یک متن xml به این تابع پاس می شود دارای الگوی زیر است:

    به یک مثال در این مورد توجه کنید:

    با استفاده از برنامه زیر، می توانید این xml را تولید کنید:

    با این چهار مثال، مدل کلی تولید xml توسط توابع برنامه توضیح داده شد. موارد دیگر نیز کم و بیش شبیه به این مدل هستند و برای این موارد می توانید از این مثالها الگوبرداری کنید.

    پيوست ها


    کاربر پورتال


    کاربر پورتال


    --
    22 آذر 1401 10:41 ق.ظ
    با سلام و احترام

    مثل همیشه جامع، دقیق و کاربردی بود.
    حقش اینه که برای هر پست آموزشی شما، یک سپاس ویژه ثبت کنیم. امیدوارم همین سپاس های پراکنده را از ما بپذیرید.


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


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


    --
    26 آذر 1401 11:24 ق.ظ
    همکار محترم جناب آقای مولایی بزرگوار

    از لطف و محبت شما ممنونم. شما همیشه به من لطف داشتید و کامنتهای شما و دوستان دیگر برای من بسیار دلگرم کننده است. امیدوارم این مطالب در فرایند آموزش همکاران نقش کوچکی داشته باشه.
    با سپاس فراوان
    شما مجاز به پاسخ به اين پست نمي باشيد.


    kurtkoy escort
    bostanci escort
    ankara escort
    comendo minha prima gordinha rajini murugan movie hd moglie con due negri calcaterra e lara scena hot mujeres con ropa interior transparente