Փաստաթղթի իրադարձությունների ընդլայնման ձեռնարկ
Բովանդակություն
Ներածություն
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 ծրագիրը ներմուծեք “Նկարագրությունների ներմուծում” հանգույցի ներքո արտացոլվող ֆայլը։