اطلاعات یک گروه معین کننده خاص در یک سیستم اطلاعاتی
function WS_GetEnumGroupValues(const ADBName: String; AKey: Integer): String;
Created: Version 12.10.00
این تابع اطلاعات معین کننده های یک گروه معین کننده خاص در یک سیستم اطلاعاتی را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
توضیح: در سیستم مدیریت فرایندها و آرشیو منابع دیجیتال، هر گروه معین کننده شامل یک یا چند معین کننده است. به عبارت دیگر یک نوع گروه بندی برای معین کننده انجام شده است که معین کننده های با محتوای مشابه و مرتبط به هم در ذیل یک گروه معین کننده تعریف شده است. برای مثال به گروه معین کننده های سیستم اطلاعاتی «تست گردش کار» توجه کنید:

ملاحظه می کنید که اعضای هر گروه معین کننده در جدول پایین محاوره به تفصیل نمایش داده شده است.
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
- Akey (کلید گروه معین کننده): در اینجا کلید گروه معین کننده به شکل یک عدد صحیح تعیین می شود. مثلا 2
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت JSON و شامل ویژگیهای زیر است:
{"_ErrNo":"0",
"EnumArray":[
{"_Key":"1",
"_Code":"1",
"_Name":"\u062A\u0633\u062A",
"_OName":"test",
"_Note": "\u062A\u0633\u062A"},
.
.
]}
شرح ویژگیهای خروجی Json
این رشته حرفی شامل ویژگیهای زیر است:
- _ErrNo(کدخطا): اگر اجرای تابع با خطا روبرو شود در اینجا کد خطا نمایش داده می شود. شماره 0 به معنی عدم وجود خطاست.
- EnumArray (آرایه اعضای گروه معین کننده): این ویژگی خود یک آرایه است که اعضای این آرایه هر کدام حاوی مشخصات یکی از معین کننده هاست. هر عضو این آرایه حاوی داده های زیر است:
- _Key (کلید معین کننده): تمام اعضای یک گروه معین کننده در یک جدول ذخیره شده است که هر عضو با یک کلید شناسایی میشود.
- _Code (کد معین کننده): کدی که هنگام تعریف معین کننده توسط کاربر ایجاد می شود.
- _Name (نام معین کننده ): در اینجا نام فارسی معین کننده به فرمت Escaped Unicode قرار می گیرد که در حالت عادی خوانا نیست اما به همین شکل قابل انتقال و پردازش است. البته به ترتیبی که در مراحل بعد شرح داده می شود می توانیم برای تست، این فرمت را بصورت فارسی خوانا تبدیل کنیم .
- _OName (نام دیگر معین کننده): نام انگلیسی معین کننده
- _Note (یادداشت): هر گونه توضیح در مورد معین کننده در این مشخصه قرار می گیرد.
مثالها
برای نمونه به فهرست اعضای گروه معین کننده «مدارک تحصیلی» در سیستم اطلاعاتی «تست گردش کار» توجه کنید:

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