Questo articolo ha l’obiettivo di dare una breve panoramica sull’utilizzo dello script SCP_QRY, al fine della sua divulgazione nelle librerie di personalizzazione dei clienti, indicando le relative comodità nella creazione di liste personalizzate, anche complesse, con tempi e costi contenuti.

Cosa è l’SCP_QRY

Prima di tutto un semplice esempio introduttivo che indica come in 3 passaggi viene creata una lista fruibile immediatamente, inserendo questi pochi tag nell’SCP_QRY. E’ una lista sulle commesse pertanto nel membro CM:

1) Definire la lista (QRY)

Il tag QRY definisce il nome la lista, il nome del filtro (parametri di input) e dello schema (output)

::QRY Cod="S02" Des="Prova x scan tipo" Src="*FIL" DftSch="LAB01" DftFlt="S02" PreFlt="1" NrEle="1000"

2) Definire i parametri di input (FLT)

Il tag FLT definisce i campi di input

::FLT Cod="S02" Des="Per Tipo / Cliente"
 ::FLT.FLD NAM(M$TICM) OPE(SC) VAL(37) FVA(1)
 ::FLT.FLD NAM(M$DECM) OPE(SC) CMD(1)
 ::FLT.FLD NAM(M$COEN) OGG(CNCLI) OPE(SC) CMD(1)

3) Definire le informazioni di output (SCH)

Il tag SCH definisce i campi di output

::SCH Cod="LAB01" Des="Laboratorio"
 ::SCH.FLD NAM(M$COMM)
 ::SCH.FLD NAM(M$DECM)
 ::SCH.FLD NAM(M$LIVE) INT(L) TYP(D01)
 ::SCH.FLD NAM(M$TICM) INT(Tip|Com)
 ::SCH.FLD NAM(M$STCM) INT(Stip|Com) OGG(TABSE[M$SSTC])
 ::SCH.FLD NAM(M$TIEN)
 ::SCH.FLD NAM(M$COEN)
 ::SCH.FLD NAM(U/GGT) INT(Giorni|previsti .) LUN(6) DEC(1)
 ::SCH.FLD NAM(U/GGC) INT(Giorni|consumati .) LUN(6) DEC(1)
 ::SCH.FLD NAM(U/GGR) INT(Giorni|residui .) LUN(6) DEC(1)
 ::SCH.FLD NAM(I/04) INT(Stato) TYP(D01)
 ::SCH.FLD NAM(I/05) INT(Tipo) TYP(D01)
 ::SCH.FLD NAM(I/06) INT(Natura) TYP(D01)

Tutto qui, il risultato è questo:

Questo esempio serve ad indicare che l’SCP_QRY è uno strumento che con estrema semplicità permette di creare un’interrogazione solo definendo le informazioni di input e di output.

L’interrogazione appare subito nel surf del modulo dell’oggetto e per inserirla in una scheda personalizzata basta aggiungere questa sezione

::G.SEZ Pos(1)
::G.SUB.UQR Tit="*NONE"
::G.SET.UQR UirQTO="CM" UirQPO="" UirQQR="S/S02"

Nello specifico, UirQTO indica il tipo oggetto, UirQPO il parametro e UirQQR il nome della query preceduto da S/, sono inoltre disponibili molti altri parametri consultabili nel wizard.

 

Le 9 comodità dell’SCP_QRY 

  1. Tipicamente i filtri e gli schemi S/ dell’SCP_QRY permettono di definire in modo semplice le informazioni sia di input che di output delle interrogazioni, anche con la possibilità di gestire in queste ultime informazioni complesse come decodifiche, attributi di attributi e soprattutto formule SQL, pertanto come anticipato la prima comodità è che per fare nuove liste personalizzate non è necessario scrivere programmi, anche se contengono informazioni complesse e non servono programmi nemmeno per gestire i parametri di input.
  2. La seconda comodità è che si ha sempre ben chiaro dove sono definite queste personalizzazioni, il nome dello script indica l’oggetto, pertanto in un unico membro vengono centralizzate tutte le definizioni di tutti i filtri e schemi per le liste personalizzate di quell’oggetto. E’ tutto in un punto solo e si sa cosa c’è e dove è, i programmi invece talvolta vengono “dimenticati”.
  3. La terza comodità è che, come per la precedente, essendo le informazioni in unico script, si ha il controllo di come è utilizzato il singolo oggetto nei vari processi aziendali: vendite, acquisti, magazzino, produzione, contabilità etc.. pertanto al sopraggiungere di nuove necessità di un singolo processo aziendale è possibile valutare in modo semplice l’impatto di modifiche ad informazioni personalizzate dell’oggetto applicativo in altri processi, oppure in quali altre liste possono essere fruibili le nuove informazioni personalizzate che si stanno per creare.
  4. La quarta comodità è la facilità di creazione di strumenti di integrazione verso l’esterno, in quanto lo schema è un semplice strumento di definizione dei dati, come visto nell’esempio, immediatamente fruibile.
  5. La quinta comodità è che dichiarando dove vengono utilizzate le informazioni, diventa anche una documentazione, indicando dove e come le informazioni vengono trattate e come sono relazionate logicamente tra loro nei vari membri dell’SCP_QRY.
  6. La query creata si attacca automaticamente ai surf del modulo corrispondente all’oggetto e si può disautorizzare come tale.
  7. La query può essere richiamata con le istruzioni UQR in qualsiasi scheda.
  8. La query può essere indirizzata anche come ricerca dell’oggetto corrispondente.
  9. La nona e non per ultima comodità è la possibilità di definire i setup dello schema, per una gestione semplice dei vari layout personalizzati.

Dove si usa l’SCP_QRY

Contestualizzando le comodità di cui sopra, la necessità principale di un ERP è gestire e rendere fruibili le informazioni necessarie ai processi aziendali. Per quanto riguarda la fruibilità, Sme.UP per una definizione semplice delle informazioni anche complesse, ha creato con la filosofia dell’oggetto applicativo l’SCP_QRY per generare automaticamente interrogazioni in lista specifiche di un processo aziendale, perciò ne è consigliabile l’utilizzo in presenza di informazioni specifiche personalizzate di un oggetto, il cui risultato possa essere riconducibile al valore di un attributo o di un campo di file, pertanto informazioni che non necessitano di particolari elaborazioni a programma.

Criticità dell’SCP_QRY

L’SCP_QRY è uno strumento facile e potente per cui prendendoci la mano è possibile creare in modo semplice e veloce anche interrogazioni molto complesse con join, formule, ordinamenti .. ma è bene considerare che questo strumento in presenza di grandi volumi di dati potrebbe presentare problemi di performance. A tal proposito in questi casi è bene fare un’analisi di come avviene la lettura del database e su come vengono elaborate le formule, facendo riferimento alla documentazione.