Փաստաթղթի իրադարձությունների ընդլայնման ձեռնարկ
Բովանդակություն
Ներածություն
8X համակարգում նախատեսված է հնարավորություն ընդլայնելու համակարգում առկա փաստաթղթերի մշակման գործընթացը ավելացնելով լրացուցիչ ստուգումներ, իրականացնելով դաշտերի ավտոմատ լրացում, ինչպես նաև կատարելով ցանկացած այլ գործողություններ, որոնք պետք է կատարվեն փաստաթղթի ստեղծման, խմբագրման կամ հեռացման ընթացքում։
Ստորև ձեռնարկում նկարագրած է փաստաթղթի համար լրացուցիչ մշակումներ ավելացնելու քայլերը։
Փաստաթղթի ընդլայնման ամբողջական օրինակը տե՛ս՝ “Երկիր” փաստաթղթի ընդլայնման օրինակ էջում։
8X համակարգում տվյալների աղբյուրի ընդլայնում նկարագրելու համար հարկավոր է ունենալ՝
- .as ընդլայնմամբ ֆայլ սկրիպտերում
DOCUMENTEXTENDERնկարագրությամբ, որը պարունակում է մետատվյալներ ընդլայնման մասին, - .cs ընդլայնմամբ ֆայլ, որը պարունակում է սերվերում աշխատող տրամաբանությունը։
Տվյալների աղբյուրի ընդլայնման համար անհրաժեշտ է ստեղծել DOCUMENTEXTENDER նկարագրությունը .as ֆայլում և C# դասը .cs ֆայլում, որոնք հետագայում հարկավոր կլինի ներմուծել համակարգ SYSCON-ի միջոցով։
Ընդլայնման ֆայլերի ինչպես նաև DocumentExtender դասի նկարագրությունը հասանելի է Փաստաթղթի ընդլայնման նկարագրություն բաժնում։
.as ֆայլի ստեղծում
.as ֆայլը պարունակում է տվյալներ ընդլայնվող փաստաթղթի և ներմուծվող ընդլայնման վերաբերյալ։
DOCUMENTEXTENDER {
NAME = "COUNTRY";
CAPTION = "Երկիր փաստ. ընդլայնում";
ECAPTION = "Country doc extension";
};
Որտեղ՝
NAME- Ընդլայնվող փաստաթղթի ներքին անունը։ Այն պետք է համընկնի գոյություն ունեցող փաստաթղթի ներքին անվան հետ։CAPTION- Ընդլայնման հայերեն անվանումը ANSI կոդավորմամբ։ECAPTION- Ընդլայնման անգլերեն անվանումը։
Նկատառումներ
Եթ ընդլայնումը դինամիկ է, ապա անհրաժեշտ է նաև DOCUMENTEXTENDER նկարագրությունում ավելացնել նաև CSSOURCE դաշտը, որը պարունակում է սերվիսային տրամաբանությունը պարունակող C# ֆայլի հարաբերական ճանապարհը .as ֆայլի նկատմամբ։
Տե՛ս նաև Նկարագրության CSSOURCE դաշտում հարաբերական ճանապարհի լրացման օրինակներ:
DOCUMENTEXTENDER {
NAME = "COUNTRY";
CAPTION = "Երկիր փաստ. ընդլայնում";
ECAPTION = "Country doc extension";
CSSOURCE = "CountryEx.cs";
};
.cs ֆայլի ստեղծում
Լրացուցիչ տրամաբանությունը անհրաժեշտ է նկարագրել C#-ով համապատասխան .cs ֆայլում։
.cs ֆայլում հարկավոր է ստեղծել class, որը ժառանգվում է DocumentExtender դասից։
Հարկավոր է նաև ավելացնել [DocumentExtender] ատրիբուտը։ Օրինակ՝
[DocumentExtender]
public class MyDocExtension : DocumentExtender
Նոր դասում կարելի է կատարել ինյեկցիա սերվերային API-ներին հասանելություն ստանալու համար։
[DocumentExtender]
public class MyDocExtension : DocumentExtender
{
private readonly IParametersService paramService;
public MyDocExtension(IParametersService paramService)
{
this.paramService = paramService;
}
}
Նոր դասը կարող է ընդլայնել DocumentExtender դասում նկարագրված մեթոդները։
Ամբողջական ցանկը տե՛ս այստեղ։
Մեթոդները ստանում են մշակվող փաստաթղթի օբյեկտը sender պարամետրում և լրացուցիչ տվյալներ args պարամետրում:
Ընդլայնված մեթոդներով հնարավոր է մշակման տարբեր փուլերում կատարել լրացված դաշտերի ստուգում, ավտոմատ լրացում, առաջացնել բացառություններ (exceptions) ընդհատելով փաստաթղթի մշակումը, ինչպես նաև կատարել ցանկացած այլ գործողություն, որ հնարավոր է կատարել փաստաթղթի հիմնական իրադարձությունների ընթացքում։
[DocumentExtender]
public class MyDocExtension : DocumentExtender
{
//...
public async override Task PreValidate(Document sender, ValidateEventArgs args)
{
}
public override Task PostAction(Document sender, ActionEventArgs args)
{
}
}
Ֆայլերի ներմուծում
.as և .cs ընդլայնմամբ ֆայլերը պատրաստ լինելուն պես անհրաժեշտ է SYSCON-ով համապատասխան .as ֆայլը ներմուծել համակարգ։
.as ֆայլում CSSOURCE դաշտի առկայության դեպքում կներմուծվի նաև .cs ֆայլը։
Նախքան Ներմուծումը տեղադրեք .as և .cs ֆայլերը config.as ֆայլում սահմանված BASEFOLDER պարամետրով ճանապարհով, այնուհետև գործարկելով SYSCON ծրագիրը ներմուծեք “Նկարագրությունների ներմուծում” հանգույցի ներքո արտացոլվող ֆայլը։