Տվյալների մշակման հարցման նկարագրություն (DPR)
Բովանդակություն
Ներածություն
Սերվիսային երկար տևող հարցումներ կատարելու և կատարման ընթացքին հետևելու համար նկարագրվում է Տվյալների մշակման հարցում (DPR - Data Processing Request):
Տե՛ս Ասինխրոն մշակում կիրառությունների սերվերի վրա։
Տվյալների մշակման հարցման (DPR
-ի) նկարագրության համար հարկավոր է նկարագրել սերվերում աշխատող տրամաբանությունը C# դասում (.cs
ֆայլում)։
Հարկավոր է սահմանել մուտքային և ելքային պարամետրերի դասեր (կարելի է օգտագործել գոյություն ունեցողները)։
Տվյալների մշակման հարցման (DPR
-ի) ստեղծման ձեռնարկը տե՛ս այստեղ։
Կազմակերպության սեփական Տվյալների մշակման հարցումների (DPR
-ի) ստեղծման համար տե՛ս:
DataProcessingRequest դաս
Տվյալների մշակման հարցման (DPR
-ի) համար անհրաժեշտ է`
- սահմանել դաս, որը ժառանգում է
DataProcessingRequest<R, P>
դասը՝ որպեսR
փոխանցելով հարցման կատարման արդյունքում ստացվող տվյալները նկարագրող դասը, իսկ որպեսP
՝ պարամետրերը նկարագրող դասը - Այդ դասին վրա դնել DPR ատրիբուտը՝ նշելով DPR-ի տեսակը, հայերեն, անգլերեն անվանումները և թույլատրված է ընդհատումը UI-ից թե ոչ (չնշելու դեպքում լռությամբ թույլատրվում է ընդհատումը UI-ից)
Օրինակ
[DPR(DPRType = DPRType.Other, ArmenianCaption = "Փաստաթղթի դաշտերի խմբագրում", EnglishCaption = "Document's fields' edition",
IsCancellationSupported = FeatureAvailability.Disabled)]
public class EditDocumentsFields : DataProcessingRequest<EditFieldsResponse, EditFieldsRequest>
{
//...
}
Հատկություններ
ArmenianCaption
public string ArmenianCaption { get; }
Վերադարձնում է հայերեն անվանումը ANSI կոդավորմամբ:
EnglishCaption
public string EnglishCaption { get; }
Վերադարձնում է անգլերեն անվանումը:
Name
public string Name { get; }
Վերադարձնում է ներքին անունը:
Եթե DPR ատրիբուտում Name
դաշտը լրացված է և դատարկ չէ, ապա վերադարձնում է այդ արժեքը, հակառակ դեպքում վերադարձնում է DPR-ը նկարագրող դասի անունը։
Progress
public DPRExecutionProgress Progress { get; }
Վերադարձնում է Տվյալների մշակման հարցման կատարման պրոգրեսը:
Այս օբյեկտի միջոցով հնարավոր է կառավարել աշխատանքի փուլերը, UI-ում ցույց տալ այդ փուլերը և UI-ում ցույց տալ հաղորդագրության պատուհան (MessageBox):
Տե՛ս օգտագործման օրինակը։
DPRType
public DPRType DPRType { get; }
Վերադարձնում է տեսակը, որը լրացված է նկարագրվող դասի վրա DPR ատրիբուտի մեջ։
- DPRType.Report - Հաշվետվությունների տվյալների մշակման հարցում
- DPRType.OLAP - Օլապ տվյալների մշակման հարցում
- DPRType.JobElement - Առաջադրանքների տվյալների մշակման հարցում
- DPRType.Other - Այլ տվյալների մշակման հարցում
IsCancellationSupported
public virtual bool IsCancellationSupported { get { return true; } }
Այս մշակվող հատկության միջոցով հնարավոր է թույլատրել կամ արգելել UI-ից պրոցեսի դադարեցման (cancellation) հնարավորությունը։
Մեթոդներ
AfterDeserializeParameter
protected virtual Task AfterDeserializeParameter(P parameter, JsonElement jsonElement)
Մեթոդը կանչվում է միջուկի կողմից DPR-ը հերթագրման դնելուց առաջ։
Այն հարկավոր է մշակել, եթե հարկավոր է փոխանցված պարամետրերի ստուգումներ կատարել, կամ մուտքային պարամետրերը ձևափոխել։
Մեթոդի կանչից առաջ parameter
-ը արդեն իսկ ձևավորված է ըստ ցանցով փոխանցված JSON-ի։
Պարամետրեր
parameter
- Մուտքային պարամետրերի նկարագրված դասի օբյեկտ։jsonElement
- Փոխանցված JSON օբյեկտի մեջ։
Execute
public abstract Task<R> Execute(P p, CancellationToken stoppingToken)
Մեթոդը կանչվում է միջուկի կողմից, այստեղ հարկավոր է մշակել սերվերում աշխատող տրամաբանությունը։
Պարամետրեր
R
- Կատարման արդյունքում վերադարձվող տվյալները նկարագրող դաս:p
- Մուտքային պարամետրերի նկարագրված դասի օբյեկտ։stoppingToken
- Դադարեցման տոկենը։
Տե՛ս օգտագործման օրինակը։