فهرست بخشهای یک سیستم اطلاعاتی
function WS_GetDeptList(const ADBName: String): String;
Created: Version 14.07.01
این تابع فهرست بخشهای یک سیستم اطلاعاتی خاص را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت JSON و شامل ویژگیهای زیر است:
{"_ErrNo":"0",
"DeptArray":[
{"_Key":"10",
"_Name":"\u062A\u0633\u062A 1",
"_EngName":"",
"_Code":"6"},
.
.
]}
شرح ویژگیهای خروجی Json
این رشته حرفی شامل ویژگیهای زیر است:
- _ErrNo(کدخطا): اگر اجرای تابع با خطا روبرو شود در اینجا کد خطا نمایش داده می شود. شماره 0 به معنی عدم وجود خطاست.
- DeptArray (آرایه بخشها): این ویژگی خود یک آرایه است که اعضای این آرایه هر کدام حاوی مشخصات یکی از بخشهای سیستم اطلاعاتی است. هر عضو این آرایه حاوی داده های زیر است:
- _Key (کلید بخش): تمام بخشهای یک پایگاه در یک جدول ذخیره شده است که هر بخش با یک کلید شناسایی میشود.
- _Name (نام بخش ): در اینجا نام فارسی بخش به فرمت Escaped Unicode قرار می گیرد که در حالت عادی خوانا نیست اما به همین شکل قابل انتقال و پردازش است. البته به ترتیبی که در مراحل بعد شرح داده می شود می توانیم برای تست، این فرمت را بصورت فارسی خوانا تبدیل کنیم .
- _EngName (نام لاتین): نام انگلیسی بخش
- _Code (کد بخش): کدی که هنگام تعریف بخش توسط کاربر ایجاد می شود.
مثال
برای نمونه به فهرست بخشها در سیستم اطلاعاتی «آموزش فرایندها » توجه کنید:

می بینید که در این سیستم اطلاعاتی، 7 بخش مختلف تعریف شده است. حال به یک مثال در مورد استخراج این بخشها توجه کنید:
مثال: فهرست بخشهای سیستم اطلاعاتی «آموزش فرایندها »
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 WorkTaskDeptList() {
ReposUtils.HostURL = “nosa-test”;
ReposUtils.UserName = “nosa/tariverdi”;
var res=””;
res=ReposUtils.WS_GetDeptList(“_ReposXP_Training&rdquo
;
let farsiRes=jsonToArray(res);
WorkState.ReturnText=JSON.stringify(farsiRes);
}
در این مثال، مشخصات بخشهای پایگاه آموزش فرایندها (_ReposXP_Training) به شکل زیر نمایش داده می شود. توضیح این که در این مثال برای خوانا شدن متنهای فارسی و تفکیک ویژگیها از تابعی بنام jsonToArray برای تبدیل خروجی Json به یک آرایه استفاده شده است:
در شکل بالا فهرست ویژگیهای 7 بخش را ملاحظه می کنید. برای مثال در موردی که با خطوط قرمز مشخص شده است، بخش « رشت» با کلید 7 و کد 3 درج شده است.