اطلاعات یک آرایه از دسته بندیهای گردش کارها
function WS_GetWorkflowCategoryDataByKeyList (const ADBName: String; const AKeyList: String): String;
این تابع اطلاعات یک دسته بندی خاص موجود در یک پایگاه خاص را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
Created: Version 15.50.02
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
- AkeyList (آرایه کلیدهای دسته بندی): در این پارامتر، آرایه کلیدهای دسته بندی مورد نظر، به شکل یک رشته حرفی از اعداد صحیح با جداکننده ویرگول (کاما) درج می شود. برای مثال "1,14,2018,"
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت 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) {
console.error(“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) تولید شده است.