IRequestDAL
Descor.RequestCenter.Interfaces.Ticket.IRequestDAL— contratto di accesso dati per il dominio Request/Ticket. Definisce l'insieme di letture e scritture della richiesta di servizio che il DAL Oracle deve implementare. Classificazione: VERIFIED.
Scopo
IRequestDAL è l'astrazione che disaccoppia il livello di business (Descor.RequestCenter.Ticket.Request) dallo specifico provider dati Oracle. Elenca ~246 membri Function: le letture (con doppio gemello DataSet + *DReader) e le scritture "add/set/close/delete" della richiesta. Il BL dipende da questo contratto, non dall'implementazione concreta.
Namespace e progetto
- Namespace:
Descor.RequestCenter.Interfaces.Ticket(dichiarazioneNamespace Interfaces.Ticketdentro il RootNamespaceDescor.RequestCenter). Classificazione: VERIFIED (TicketInterfaces.vb:6). - Progetto:
RequestCenter— VB.NET,net48, RootNamespaceDescor.RequestCenter(livello BL). ProjectReference aDataManager. - File:
Interfaces/TicketInterfaces.vb; l'interfaccia inizia a riga 39. - Ereditarietà:
Inherits IBaseDAL(TicketInterfaces.vb:40).
Responsabilità
- Definire la firma di ogni operazione dati sulla richiesta senza legarsi al driver Oracle.
- Imporre la convenzione dei gemelli di lettura: per ogni
getX(...) As DataSetesistegetXDReader(...) As IDataReader(es.Load/LoadDReader,getRequestList/getRequestListDReader,getByProtocol/getByProtocolDReader). Classificazione: VERIFIED (TicketInterfaces.vb:42-116). - Includere le scritture del ciclo di vita del ticket:
addRequest(2 overload),setProtocol,setTenant,setRequestDate,setSpatialInfo,setContact,setUser,setReference,setCost,setDescription,setManagementData,setContract,setCompany,setType,setCallType,setApproval,setWorkflowInterface,setCategory,setTypology,closeRequest,deleteRequest.
Perché esiste
UNKNOWN — la motivazione non è documentata. È osservabile solo il pattern di stratificazione per dominio (<Domain>{Interface,DAL,BL}) comune all'intera piattaforma, che colloca i contratti dati nel progetto BL RequestCenter e le implementazioni in RequestCenter.DAL.OracleODP.
Contratto pubblico
Membri raggruppati per famiglia (elenco non esaustivo; ~246 in totale):
| Famiglia | Membri rappresentativi | Ritorno |
|---|---|---|
| Lettura singola | Load, LoadDReader, getByProtocol(...), getRequestParent(...), getRequestParentId |
DataSet / IDataReader / Integer |
| Lettura lista | getRequestList, getRequestListByAsset, getRequestListByIdOM, getRequestListByIdContract, getRequestListByIdManagement, getRequestListByIdCompany, getUserRequestList (+ gemelli *DReader) |
DataSet / IDataReader |
| Filtro composito | getIdRequestListByFilter(...), getIdRequestListByFilterDReader(...) (~45 parametri + customfieldSQL As String) |
DataSet / IDataReader |
| Scrittura ciclo di vita | addRequest (×2), setProtocol, setDescription, setWorkflowInterface, closeRequest, deleteRequest, … |
Integer |
Molte firme accettano il parametro opzionale egroup As RequestCenter.Ticket.RequestCollection.Group = …All per filtrare per gruppo/visibilità. Classificazione: SUPPORTED (TicketInterfaces.vb:93-116).
Implementazioni o classi derivate
Descor.RequestCenter.DAL.OracleODP.RequestDAL(Implements IRequestDAL) — unica implementazione nota, backend Oracle ODP. Vedi class-RequestDAL.md.- Nota
OracleODPXNET: l'implementazione è ri-collegata nel progettonet8.0RequestCenter.DAL.OracleODPXNET(36/38 file, esclusiRequestCSDAL.vbeRequestCSReasonDAL.vb), con driver managedOracle.ManagedDataAccess.Core; il contrattoIRequestDALresta invariato. Classificazione: SUPPORTED (spec di progetto XNET).
Non risultano altre implementazioni: l'assenza di ulteriori Implements IRequestDAL non è però dichiarabile come irraggiungibilità del contratto, poiché l'implementazione concreta è risolta a runtime (fabbrica/configurazione) — spec §30.
Dipendenze
IBaseDAL— interfaccia base ereditata (TicketInterfaces.vb:40).System.Data(DataSet,IDataReader) — sottonet8.0importato esplicitamente via#If NET5_0_OR_GREATER(TicketInterfaces.vb:1-3).RequestCenter.Ticket.RequestCollection.Group— enum usato nei parametri di filtro.
Ciclo di vita
Interfaccia pura: nessuno stato. Le regole di apertura/chiusura connessione e di transazione sono responsabilità dell'implementazione (RequestDAL + GlobalDataManager).
Collaborazioni
- Consumatore: il BL
Descor.RequestCenter.Ticket.Request(class-Ticket-Request.md), che invoca i membri del contratto dai propri setter/reader. - Realizzatore:
RequestDAL(class-RequestDAL.md).
Accesso al database
Indiretto: le procedure Oracle effettivamente invocate sono definite dall'implementazione. Per la mappa metodo→PACKAGE.PROC→tabella vedi class-RequestDAL.md e crud-matrix.md, procedures.md.
Autorizzazione
Non definita a livello di contratto. Classificazione: INFERRED.
Thread safety
N/A (interfaccia senza stato).
Esempio di utilizzo
Non eseguito (macOS, no Oracle Client). Il BL dipende da IRequestDAL e riceve l'istanza concreta RequestDAL; verificato staticamente.
Test correlati
Nessun test automatico nel repository. Copertura non dichiarata.
Flussi correlati
- FLOW-REQ-001.md — creazione/gestione richiesta.
Regole di business correlate
- BR-REQ.md.
- Dominio funzionale: servicedesk.md.
- API/servizi: 04-api/index.md.
Limitazioni
- Il file
TicketInterfaces.vbcontiene anche altre interfacce (IProtocolDAL, TicketInterfaces.vb:8) e ampi blocchi di firme commentate (variantigetRequestListByFilter/getWorkflowElementsByFilterdisattivate, TicketInterfaces.vb:45-60, 120-…): non fanno parte del contratto attivo.
Debito tecnico
Nessuno specifico dell'interfaccia rilevato.
Evidenze
InfocadWeb/WebMachine/RequestCenter/Interfaces/TicketInterfaces.vb:1-3 (guardia#If NET5_0_OR_GREATER/Imports System.Data), :6 (Namespace Interfaces.Ticket), :39-40 (Public Interface IRequestDAL/Inherits IBaseDAL).TicketInterfaces.vb:42-43 (Load/LoadDReader), :61-80 (getIdRequestListByFilter/…DReaderconcustomfieldSQL), :82-116 (famigliaget*/get*DReader).- Implementazione:
InfocadWeb/WebMachine/RequestCenter.DAL.OracleODP/RequestDAL.vb:14 (Implements IRequestDAL). - Metadati: 246
Functionnel bloccoIRequestDAL; progettoRequestCenter.vbproj(RootNamespaceDescor.RequestCenter, ProjectReferenceDataManager).