در رابطه با دسته بندیهای گردش کار در یک سیستم اطلاعاتی سه تابع زیر وجود دارد:
در ادامه مطلب این توابع به ترتیب شرح داده می شود:
function WS_GetWorkflowCategoryDataByKey(const ADBName: String; AKey: Integer): String;
Created: Version 14.00.00
این تابع، اطلاعات یک دسته بندی خاص موجود در یک پایگاه خاص را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
- Akey (کلید دسته بندی): این پارامتر یک عدد صحیح است که کلید دسته بندی مورد نظر را تعیین می کند.
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت JSON و شامل ویژگیهای زیر است:
{"_ErrNo":"0",
"_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 به معنی عدم وجود خطاست.
- _Name (نام دسته بندی): در اینجا نام فارسی دسته بندی به فرمت Escaped Unicode قرار می گیرد که در حالت عادی خوانا نیست اما به همین شکل قابل انتقال و پردازش است. البته به ترتیبی که در مراحل بعد شرح داده می شود می توانیم برای تست، این فرمت را بصورت فارسی خوانا تبدیل کنیم .
- _EngName (نام لاتین): نام انگلیسی دسته بندی
- _Note (شرح دسته بندی) : این ویژگی شرح و توضیحات دسته بندی را شامل می شود.
- _Order (شماره ترتیب): این ویژگی یک عدد صحیح است که شماره ترتیب دسته بندی را نشان میدهد. برای مثال اگر این مقدار 3 باشد یعنی این دسته بندی در ردیف سوم از فهرست دسته بندیها قرار دارد.
مثالها
برای نمونه به فهرست دسته بندیهای پایگاه «تست گردش کار» توجه کنید:

حال به یک مثال در زمینه استخراج اطلاعات یکی از این دسته بندیها توجه کنید:
مثال: اطلاعات دسته بندی «ملکی»
برای این منظور باید اسکریپت زیر را در برنامه گردش کار ایجاد کنیم.
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) {
throw "JSON نامعتبر است:" + e.message;
return [];
}
}
function WorkTaskWFCategoryData() {
ReposUtils.HostURL = “nosa-test”;
ReposUtils.UserName = “nosa/tariverdi”;
var res=””;
res=ReposUtils.WS_GetWorkflowCategoryDataByKey(“_ReposXP_workflow”, 1031);
let farsiRes=jsonToArray(res);
WorkState.ReturnText=JSON.stringify(farsiRes);
}
در این مثال، مشخصات دسته بندی «ملکی» با کلید 1031 به شکل زیر نمایش داده می شود. توضیح این که در این مثال برای خوانا شدن متنهای فارسی و تفکیک ویژگیها از تابعی بنام jsonToArray برای تبدیل خروجی Json به یک آرایه استفاده شده است:
ملاحظه می کنید که این دسته بندی در ردیف 15 از فهرست دسته بندیها قرار دارد.
function WS_GetWorkflowCategoryDataByKeyList (const ADBName: String; const AKeyList: String): String;
Created: Version 15.50.02
این تابع اطلاعات یک دسته بندی خاص موجود در یک پایگاه خاص را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
- AkeyList (آرایه کلیدهای دسته بندی): در این پارامتر، آرایه کلیدهای دسته بندی مورد نظر، به شکل یک رشته حرفی از اعداد صحیح با جداکننده ویرگول (کاما) درج می شود. برای مثال "8,11,14,20"
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت JSON و شامل ویژگیهای زیر است:
{"_ErrNo":"0",
"WCArray":[
{"_Key":"1",
"_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 به معنی عدم وجود خطاست.
- WCArray (آرایه مشخصات دسته بندی ها): هر عضو این آرایه ، مشخصات یکی از کلیدهای دسته بندی موجود در AkeyList است و شامل اطلاعات زیر است:
- _Key (کلید دسته بندی)
- _Name (نام دسته بندی): در اینجا نام فارسی دسته بندی به فرمت Escaped Unicode قرار می گیرد که در حالت عادی خوانا نیست اما به همین شکل قابل انتقال و پردازش است. البته به ترتیبی که در مراحل بعد شرح داده می شود می توانیم برای تست، این فرمت را بصورت فارسی خوانا تبدیل کنیم .
- _EngName (نام لاتین): نام انگلیسی دسته بندی
- _Note (شرح دسته بندی) : این ویژگی شرح و توضیحات دسته بندی را شامل می شود.
- _Order (شماره ترتیب): این ویژگی یک عدد صحیح است که شماره ترتیب دسته بندی را نشان میدهد. برای مثال اگر این مقدار 3 باشد یعنی این دسته بندی در ردیف سوم از فهرست دسته بندیها قرار دارد.
مثال
حال به یک مثال در زمینه استخراج اطلاعات یک مجموعه از این دسته بندیها توجه کنید:
مثال: اطلاعات دسته بندی های «ملکی، تاریوردی و تست خویی»
برای این منظور باید اسکریپت زیر را در برنامه گردش کار ایجاد کنیم.
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) {
throw "JSON نامعتبر است:" + e.message;
return [];
}
}
function WorkTaskWFCategoryListData() {
ReposUtils.HostURL = “nosa-test”;
ReposUtils.UserName = “nosa/tariverdi”;
var res=””;
res=ReposUtils.WS_GetWorkflowCategoryDataByKeyList(“_ReposXP_workflow”," 1031, 20, 12");
let farsiRes=jsonToArray(res);
WorkState.ReturnText=JSON.stringify(farsiRes);
}
در این مثال، مشخصات دستهبندیهای «ملکی» با کلید 1031، تاریوردی با کلید 20 و تست خویی با کلید 12 به شکل زیر نمایش داده می شود. توضیح این که در این مثال برای خوانا شدن متنهای فارسی و تفکیک ویژگیها از تابعی بنام jsonToArray برای تبدیل خروجی Json به یک آرایه استفاده شده است:
ملاحظه می کنید که مشخصات دسته بندی ها به ترتیب شماره ردیف (_Order) تولید شده است.
function WS_GetWorkflowCategoryList(const ADBName: String): String;
Created: Version 14.00.00
این تابع فهرست دسته بندیهای گردش کارها در یک پایگاه خاص را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
شرح پارامترهای تابع
- 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) {
throw "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) زمانی کاربرد دارد که بخواهید فهرست گردش کارها را به ترتیب دسته بندیها گزارشگیری کنید.