فهرست دسته بندیهای گردش کارها در یک پایگاه
function WS_GetWorkflowCategoryList(const ADBName: String): String;
این تابع فهرست دسته بندیهای گردش کارها در یک پایگاه خاص را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
Created: Version 14.00.00
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت JSON و شامل ویژگیهای زیر است:
{"_ErrNo":"0",
"WorkflowCategoryArray":[
{"_Key":"136",
"_Name":"\u062A\u0639\u064A\u064A\u0646 \u0641\u0631\u0645\u062A",
"_EngName":"English Name",
"_Note":"\u062A\u0633\u062A \u064A\u0627\u062F\u062F\u0627\u0634\u062A",
"_Order":"66"},
.
.
]}
شرح ویژگیهای خروجی Json
این رشته حرفی شامل ویژگیهای زیر است:
- _ErrNo(کدخطا): اگر اجرای تابع با خطا روبرو شود در اینجا کد خطا نمایش داده می شود. شماره 0 به معنی عدم وجود خطاست.
- WorkflowCategoryArray (آرایه دسته بندیها): این ویژگی خود یک آرایه است که اعضای این آرایه هر کدام حاوی مشخصات یکی از دسته بندی گردش کار است. هر عضو این آرایه حاوی داده های زیر است:
- _Key (کلید دسته بندی): تمام دسته بندیهای گردش کارهای یک پایگاه در یک جدول ذخیره شده است که هر دسته بندی با یک کلید شناسایی میشود.
- _Name (نام دسته بندی): در اینجا نام فارسی دسته بندی به فرمت Escaped Unicode قرار می گیرد که در حالت عادی خوانا نیست اما به همین شکل قابل انتقال و پردازش است. البته به ترتیبی که در مراحل بعد شرح داده می شود می توانیم برای تست، این فرمت را بصورت فارسی خوانا تبدیل کنیم .
- _EngName (نام لاتین): نام انگلیسی دسته بندی
- _Note (شرح دسته بندی) : این ویژگی شرح و توضیحات دسته بندی را شامل می شود.
- _Order (شماره ترتیب): این ویژگی یک عدد صحیح است که شماره ترتیب دسته بندی را نشان میدهد. برای مثال اگر این مقدار 3 باشد یعنی این دسته بندی در ردیف سوم از فهرست دسته بندیها قرار دارد.
مثال: فهرست دسته بندیهای پایگاه «تست گردش کارها »
برای نمونه به فهرست دسته بندیهای پایگاه «تست گردش کار» توجه کنید:

می بینید که در این گردش کار تعداد 18 دسته بندی مختلف تعریف شده است. در مثال زیر فهرست دسته بندی های بالا استخراج می شود:
function jsonToArray(jsonStr) {
try {
let obj = JSON.parse(jsonStr);
function convert(value) {
if (typeof value === “object” && value !== null) {
if (Array.isArray(value)) {
// اگر مقدار یک آرایه باشه، هر عضو رو جداگانه پردازش کن
return value.map(item => convert(item));
} else {
// اگر مقدار یک آبجکت باشه
return Object.entries(value).map(([key, val]) => ({
key,
value: convert(val)
}));
}
}
return value; // مقادیر ساده (string, number, etc.)
}
return convert(obj);
} catch (e) {
console.error(“JSON نامعتبر است:”, e.message);
return [];
}
}
function WorkTaskWFCategoryList() {
ReposUtils.HostURL = “nosa-test”;
ReposUtils.UserName = “nosa/tariverdi”;
var res=””;
res=ReposUtils.WS_GetWorkflowCategoryList(“_ReposXP_workflow&rdquo) ;
let farsiRes=jsonToArray(res);
WorkState.ReturnText=JSON.stringify(farsiRes);
}
در خروجی این تابع اجرایی، مشخصات تمام دسته بندیهای پایگاه تست گردش کار (_ReposXP_workflow) به شکل زیر نمایش داده می شود. توضیح این که در این مثال برای خوانا شدن متنهای فارسی و تفکیک ویژگیها از تابعی بنام jsonToArray برای تبدیل خروجی Json به یک آرایه استفاده شده است:
در شکل بالا فهرست ویژگیهای هر 18 دسته بندی را ملاحظه می کنید. برای مثال در موردی که با خطوط قرمز مشخص شده است، «دسته بندی منصوری» در ردیف 13 قرار دارد.
توضیح: شماره ردیف (_Order) زمانی کاربرد دارد که بخواهید فهرست گردش کارها را به ترتیب دسته بندیها گزارشگیری کنید.