در ارتباط با بخشهای سیستم اطلاعاتی سه تابع زیر وجود دارد:
در ادامه مطلب این توابع به ترتیب شرح داده می شود:
function WS_GetDeptDataByKey(const ADBName: String; AKey: Integer): String;
Created: Version 14.07.01
این تابع اطلاعات یک بخش خاص از یک سیستم اطلاعاتی را به صورت یک رشته حرفی با فرمت JSON تولید می کند.
شرح پارامترهای تابع
- ADBName (نام پایگاه) : در این پارامتر، نام پایگاه بصورت رشته حرفی درج می شود. برای مثال "_ReposXP_Workflow"
- Akey (کلید بخش): در این پارامتر، بخش مورد نظر با شماره کلید بخش تعیین می شود. مثلا 4
الگوی خروجی تابع
خروجی این تابع، یک رشته حرفی به فرمت JSON و شامل ویژگیهای زیر است:
{"_ErrNo":"0",
"_Name":"\u062A\u0639\u064A\u064A\u0646 \u0641\u0631\u0645\u062A”,
"_EngName":"English Name",
"_Code":"3"}
شرح ویژگیهای خروجی Json
این رشته حرفی شامل ویژگیهای زیر است:
- _ErrNo(کدخطا): اگر اجرای تابع با خطا روبرو شود در اینجا کد خطا نمایش داده می شود. شماره 0 به معنی عدم وجود خطاست.
- _Name (نام بخش ): در اینجا نام فارسی بخش به فرمت Escaped Unicode قرار می گیرد که در حالت عادی خوانا نیست اما به همین شکل قابل انتقال و پردازش است. البته به ترتیبی که در مراحل بعد شرح داده می شود می توانیم برای تست، این فرمت را بصورت فارسی خوانا تبدیل کنیم .
- _EngName (نام لاتین): نام انگلیسی بخش
- _Code (کد بخش): کدی که هنگام تعریف بخش توسط کاربر ایجاد می شود.
مثال: اطلاعات بخش با کلید 5 از سیستم اطلاعاتی «آموزش فرایندها »
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_GetDeptDataByKey(“_ReposXP_Training”, 5);
let farsiRes=jsonToArray(res);
WorkState.ReturnText=JSON.stringify(farsiRes);
}
با اجرای این تابع، مشخصات بخش با کلید 5 را به شکل زیر مشاهده خواهید کرد. توضیح این که در این مثال برای خوانا شدن متنهای فارسی و تفکیک ویژگیها از تابعی بنام jsonToArray برای تبدیل خروجی Json به یک آرایه استفاده شده است:
ملاحظه می کنید که این بخش به نام «تهران» و دارای کد 2 است.
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 به یک آرایه استفاده شده است
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 درج شده است.