اطلاعات یک آرایه از بخشهای سیستم اطلاعاتی
function WS_GetDeptDataByKeyList(const ADBName: String; const AKeyList: String): String;
Created: Version 15.50.02
این تابع اطلاعات یک آرایه از بخشهای مورد نظر از یک سیستم اطلاعاتی را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
- AkeyList (آرایه کلید بخشها): در این پارامتر، کلید بخشهای مورد نظر به صورت یک رشته حرفی با جدا کننده کاما (,) درج می شود.. مثلا "7,4,2"
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت JSON و شامل ویژگیهای زیر است:
{"_ErrNo":"0",
"DeptArray":[
{"_Key":"1",
"_Name":"\u062A\u0639\u064A\u064A\u0646 \u0641\u0631\u0645\u062A”,
"_EngName":"English Name",
"_Code":"3"},
.
.
]}
شرح ویژگیهای خروجی Json
این رشته حرفی شامل ویژگیهای زیر است:
- _ErrNo(کدخطا): اگر اجرای تابع با خطا روبرو شود در اینجا کد خطا نمایش داده می شود. شماره 0 به معنی عدم وجود خطاست.
- DeptArray (آرایه بخشها): در این ویژگی مشخصات بخشهای مورد نظر به شکل آرایه تولید می شود که هر عضو آرایه مشخصات یک بخش را به شرح زیر درج می کند:
- _Key (کلید بخش): در این مشخصه، کلید بخش قرار می گیرد.
- _Name (نام بخش ): در اینجا نام فارسی بخش به فرمت Escaped Unicode قرار می گیرد که در حالت عادی خوانا نیست اما به همین شکل قابل انتقال و پردازش است. البته به ترتیبی که در مراحل بعد شرح داده می شود می توانیم برای تست، این فرمت را بصورت فارسی خوانا تبدیل کنیم .
- _EngName (نام لاتین): نام انگلیسی بخش
- _Code (کد بخش): کدی که هنگام تعریف بخش توسط کاربر ایجاد می شود.
مثال: اطلاعات بخشهای با کلیدهای 1 و 6 و 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 WorkTaskDeptDataByKeyList() {
ReposUtils.HostURL = “nosa-test”;
ReposUtils.UserName = “nosa/tariverdi”;
var res=””;
res=ReposUtils.WS_GetDeptDataByKeyList(“_ReposXP_Training”, “1, 6, 7”);
let farsiRes=jsonToArray(res);
WorkState.ReturnText=JSON.stringify(farsiRes);
}
با اجرای این تابع، مشخصات بخشهای مورد نظر را به شکل زیر مشاهده خواهید کرد:
توضیح این که در این مثال برای خوانا شدن متنهای فارسی و تفکیک ویژگیها از تابعی بنام jsonToArray برای تبدیل خروجی Json به یک آرایه استفاده شده است