فهرست پایگاههای مدیریت فرایند در سرور
function WS_GetDBList: String;
Created: Version 12.10.00
این تابع فهرست پایگاههای موجود در سرور را به صورت یک رشته حرفی با فرمت Json تولید می کند.
توضیح: این تابع هیچ پارامتری ندارد و پایگاههای سرور را برمی گرداند.
الگوی خروجی تابع
{"_ErrNo":"0",
"_Ver":"1210",
"_CPUConnectorEnbl":"-1",
"DBS":{
“DBArray”:[
{"_CName":"\u062A\u0633\u062A 1",
"_DBName":"_ReposXP_TestRestrict",
"_Group":"",
"_StDate":"",
"_FDate":""},
.
.
]}
}
شرح ویژگیهای خروجی Json
همانطور که می بینید رشته حرفی خروجی، شامل چهار ویژگی به شرح زیر است:
- _ErrNo )شماره خطا (: اگر اجرای تابع با خطا روبرو شود در اینجا کد خطا نمایش داده می شود. شماره 0 به معنی عدم وجود خطاست.
- _Ver ( نسخه برنامه): این ویژگی نسخه سیستم مدیریت فرایندهای نصب شده در سرور را نشان می دهد. مثلا 15.30
- _CPUConnectorEnbl (وضعیت فعال بودن CPUConnector): این ویژگی یک مقدار منطقی (Boolean) است که مقدار -1 به معنی true است و نشان می دهد مرکز مورد نظر، امکان CPUConnector را خریداری و در سرور خود راه اندازی کرده است و برعکس آن، مقدار 0 به معنی false است و به معنی فقدان ماژول CPUConnector در سرور مقصد است.
- _DBS (پایگاهها): این ویژگی، اطلاعات پایگاهها را نمایش می دهد و شامل ویژگی دیگری به نام _DBArray است که به شکل آرایه است، ویژگی های اصلی این آرایه به شرح زیر است:
- DBArray (آرایه اطلاعات پایگاههای مدیریت فرایند)
- _DBName (نام پایگاه) : نام پایگاه در SqlServer مثلا “_RepoXP_BestPractices”
- _CName (نام سیستم اطلاعاتی): برای مثال "فرایندهای آموزشی"
- *_Group (گروه پایگاه)
- *_StDate (تاریخ شروع عملیات مالی)
- *_FDate (تاریخ شروع عملیات مالی، میلادی است)
*: این ویژگی ها، از مشخصات Framework پایه سیستمهای نوسا هستند که در سیستم مالی نوسا معنی دارند و در سیستم مدیریت فرایندها، یا استفاده نشده اند یا این که مقدار ثابت دارند.
مثال: فهرست پایگاههای سرور «نوسا - تست»
برای این کار می توانید از اسکریپت زیر در برنامه گردش کار استفاده کنید:
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 WorkTaskDBList() {
ReposUtils.HostURL = “nosa-test”;
ReposUtils.UserName = “nosa/tariverdi”;
var res=””;
res=ReposUtils.WS_GetDBList ;
let farsiRes=jsonToArray(res);
WorkState.ReturnText=JSON.stringify(farsiRes);
}
در این مثال، مشخصات تمام پایگاههای سرور نوسا- تست به شکل زیر نمایش داده می شود. توضیح این که در این مثال برای خوانا شدن متنهای فارسی و تفکیک ویژگیها از تابعی بنام jsonToArray برای تبدیل خروجی Json به یک آرایه استفاده شده است:
ملاحظه می کنید که در این سرور، نسخه 15.50 سیستم مدیریت فرایندها نصب شده است و ماژول CPUConnector راه اندازی شده است. ضمنا ویژگی گروه پایگاه (_Group)در این خروجی وجود ندارد و ویژگیهای _StDate و _Fdate مقادیر ثابت دارند.
نکته مهم: توجه کنید که در مثال بالا، تنها پایگاههایی فهرست شده اند که کاربر جاری به آنها دسترسی دارد. این محدودیت در محاوره «تنظیمات سرور» (شکل زیر) در ماژول Repository Admin انجام می شود:

همانطور که می بینید، در این سرور، گزینه ای فعال شده است که بازنمایی در فهرست پایگاهها را محدود به پایگاههایی می کند که کاربر به آنها دسترسی دارد. بدیهی است که اگر این گزینه غیرفعال شود آنگاه تمام پایگاههای سرور بازنمایی خواهد شد.