Բովանդակություն

Ներածություն

8X համակարգում նախատեսված է հնարավորություն ընդլայնելու համակարգում առկա փաստաթղթերի մշակման գործընթացը ավելացնելով լրացուցիչ ստուգումներ, իրականացնելով դաշտերի ավտոմատ լրացում, ինչպես նաև կատարելով ցանկացած այլ գործողություններ, որոնք պետք է կատարվեն փաստաթղթի ստեղծման, խմբագրման կամ հեռացման ընթացքում։

Ստորև ձեռնարկում նկարագրած է փաստաթղթի համար լրացուցիչ մշակումներ ավելացնելու քայլերը։

Փաստաթղթի ընդլայնման ամբողջական օրինակը տե՛ս՝ “Երկիր” փաստաթղթի ընդլայնման օրինակ էջում։

Տվյալների աղբյուրի ընդլայնման համար անհրաժեշտ է ստեղծել DOCUMENTEXTENDER նկարագրությունը .as ֆայլում և C# դասը .cs ֆայլում, որոնք հետագայում հարկավոր կլինի ներմուծել համակարգ SYSCON-ի միջոցով։

Ընդլայնման ֆայլերի ինչպես նաև DocumentExtender դասի նկարագրությունը հասանելի է Փաստաթղթի ընդլայնման նկարագրություն բաժնում։

.as ֆայլի ստեղծում

.as ֆայլը պարունակում է տվյալներ ընդլայնվող փաստաթղթի և ներմուծվող ընդլայնման վերաբերյալ։

DOCUMENTEXTENDER {
  NAME = "COUNTRY";
  CAPTION = "Երկիր փաստ. ընդլայնում";
  CAPTION = "Country doc extension";
  CSSOURCE = "CountryEx.cs";
};

Որտեղ՝

  • NAME - ընդլայնվող փաստաթղթի ներքին անունը։ Այն պետք է համընկնի գոյություն ունեցող փաստաթղթի ներքին անվան հետ։
  • CAPTION և ECAPTION - համակարգում արտացոլվող ընդլայնման հայերեն (ANSI կոդավորմամբ) և անգլերեն անվանումները։
  • CSSOURCE - .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 ֆայլը ներմուծել համակարգ, ինչի արդյունքում .cs ֆայլը նույնպես կներմուծվի։

Նախքան Ներմուծումը տեղադրեք .as և .cs ֆայլերը config.as ֆայլում սահմանված BASEFOLDER պարամետրով ճանապարհով, այնուհետև գործարկելով SYSCON ծրագիրը ներմուծեք “Նկարագրությունների ներմուծում” հանգույցի ներքո արտացոլվող ֆայլը։