It is currently 22 October 2019, 22:31 Advanced search

Problema con docId contenenti spazi

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Re: Problema con docId contenenti spazi

Postby t.simoncini » 8 October 2019, 15:40

Non mi sto lamentando. Sono curioso di capire se c'è un'alternativa vera.
t.simoncini
 
Posts: 931
Joined: 5 March 2012, 14:00

Re: Problema con docId contenenti spazi

Postby lucabaldini » 8 October 2019, 16:04

Non mi sto lamentando. Sono curioso di capire se c'è un'alternativa vera.

Io non l'ho presa come una lamentela... ci mancherebbe! :-)))

Io ho sviluppato almeno un paio di progetti DO con campi contatore... e funzionano come mi aspetto... anche con servizi accessori, compresa la cancellazione logica e il locking... Magari se c'è qualcun altro che ha usato la DO senza DocID può aggiungere le sue impressioni :-)))
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 3632
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Problema con docId contenenti spazi

Postby lucabaldini » 8 October 2019, 16:05

[...] mi confermi che funzionano anche tutte le procedure collegate alla DO? Es. la duplicate che riassegna i riferimenti, la getlinkeddocument, la getfromDNA, le smartlookup DO, ecc.


Come ti dicevo sopra, per quanto posso ricordarmi non credo ci siano vincoli... e se ce ne sono mi piacerebbe ragionarci e capire se sono ragionevoli o troppo "vincolanti" :-)))
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 3632
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Problema con docId contenenti spazi

Postby t.simoncini » 8 October 2019, 16:36

lucabaldini wrote:A parte il servizio di Identificazione Documenti che usa i DocID e che comunica al metaschema qual è la proprietà DocID corrispondente da valorizzare automaticamente al momento della creazione di un nuovo documento

Quindi.. se ho capito bene, il problema è solo nella Init di un oggetto con servizio documentale attivo.
E' quindi fuori luogo pensare ad un parametro di progetto per definire se si vogliono gestire i DocID, GUID, Contatori? Senza dover aggiungere noi del codice?
Penso lo userebbero in molti....
t.simoncini
 
Posts: 931
Joined: 5 March 2012, 14:00

Re: Problema con docId contenenti spazi

Postby lucabaldini » 9 October 2019, 6:42

Per quello che posso ricordare:
- se non vuoi usare DocID non devi attivare il servizio DocumentIdentification (che, appunto, identifica la proprietà DocID e te la valorizza automaticamente al momento della creazione della nuova istanza)
- in quel caso dovrai tu pensare a valorizzare la PK in qualche modo... se usi contatori ci pensa il DB, se vuoi usare un GUID o un tuo codice devi usare tu una tua funzione "generatrice"
Non so se un nuovo parametro di compilazione che dica cosa usare per la DO sia una soluzione ragionevole... Risparmieresti una riga di codice... Tra l'altro, con il DocumentHelper e globalizzando l'evento OnInit dovrebbe essere semplice farlo una volta sola a livello di applicazione.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 3632
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Problema con docId contenenti spazi

Postby smuser » 9 October 2019, 19:16

Grazie per la discussione interessante. Personalmente mi sono chiarito diversi dubbi.
Dato che l'argomento per me è fondamentale farò sicuramente esperimenti a riguardo.
Grazie
SM
User avatar
smuser
 
Posts: 95
Joined: 3 May 2019, 10:41
Location: Milano

Re: Problema con docId contenenti spazi

Postby theguru » 10 October 2019, 10:50

smuser wrote:Grazie per la discussione interessante. Personalmente mi sono chiarito diversi dubbi.
Dato che l'argomento per me è fondamentale farò sicuramente esperimenti a riguardo.
Grazie
SM

quoto :)
User avatar
theguru
 
Posts: 690
Joined: 29 January 2014, 13:01

Re: Problema con docId contenenti spazi

Postby r.bianco » 10 October 2019, 12:09

Non mi risulta sia un pre-requisito. A parte il servizio di Identificazione Documenti che usa i DocID e che comunica al metaschema qual è la proprietà DocID corrispondente da valorizzare automaticamente al momento della creazione di un nuovo documento (cosa che se il servizio non è attivo puoi fare tu valorizzando la nuova PK nell'OnInit, o nell'EndTransaction, o nella Validate o, se contatore, puoi lasciarlo fare al DB) non mi risulta che gli altri servizi lo usino. Per esempio per gli allegati non serve, così come non serve per schemi estensibili, commenti, domini, user identification, locking, cancellazione logica, sync o webapi. Non dovrebbe mai servire... Per quanto ne so, e per quel che posso ricordare, non è mai richiesto come servizio necessario all'attivazione o il funzionamento degli altri servizi. Si dovrebbe poter fare sempre senza. Il servizio di IdentificazioneDocumenti non dovrebbe essere mandatorio per nessun altro servizio DO. Però, se sai di qualcosa che non funziona, posso guardarci :-)


Noi purtroppo abbiamo riscontrato diverse difficoltà nell'utilizzo di DO senza DOCID, prima fra tutte la Sync mobile, ma anche il getLinkedDocument (con PK formate da più campi). Questi sono i due esempi che mi vengono in mente ora, ma non sono gli unici casi.
Vorrei chiarire bene il concetto: non intendo che non si possano usare o che non funzionino, intendo che sembrano pensati per essere usati in quel contesto, e che al di fuori di esso il loro utilizzo è ben più macchinoso e poco fluido. Sembra veramente di usare qualcosa che non era stato inteso in quel modo, tanto che a volte abbiamo rinunciato.
Perdonatemi, non è mia intenzione essere polemico, ma questo aspetto lo reputo importante e vorrei sottolinearlo.
only work and no play makes jack a dull boy
r.bianco
 
Posts: 3952
Joined: 8 November 2010, 16:46

Re: Problema con docId contenenti spazi

Postby t.simoncini » 10 October 2019, 12:35

r.bianco wrote:Noi purtroppo abbiamo riscontrato diverse difficoltà nell'utilizzo di DO senza DOCID, prima fra tutte la Sync mobile, ma anche il getLinkedDocument (con PK formate da più campi). Questi sono i due esempi che mi vengono in mente ora, ma non sono gli unici casi.
Vorrei chiarire bene il concetto: non intendo che non si possano usare o che non funzionino, intendo che sembrano pensati per essere usati in quel contesto, e che al di fuori di esso il loro utilizzo è ben più macchinoso e poco fluido. Sembra veramente di usare qualcosa che non era stato inteso in quel modo, tanto che a volte abbiamo rinunciato.
Perdonatemi, non è mia intenzione essere polemico, ma questo aspetto lo reputo importante e vorrei sottolinearlo.

Sono completamente d'accordo.
t.simoncini
 
Posts: 931
Joined: 5 March 2012, 14:00

Re: Problema con docId contenenti spazi

Postby lucabaldini » 10 October 2019, 13:02

E' quello che scrivevo sotto... quando usi contatori e hai più device che generano dati (e quindi lo fanno con il loro contatore) è un problema che avresti con qualunque altro sistema... a prescindere dalla DO.

I casi sono 2:
- o non usi contatori e, per esempio, generi tu delle stringhe random, GUID, o quello che ti viene in mente per "distinguere sempre in modo univoco il record che viene creato"
- o usi un generatore univoco e ogni volta che devi inserire un record su device devi chiedere all'unico generatore (che deve stare sul server di sincronizzazione e avere lo stato di tutti i device) per sapere quale chiave usare.

Con i contatori va tutto bene fino a quando chi genera i dati è uno solo... se hai più generatori in giro non è possibile.

Questo, però, non vuol dire che la DO non va senza DocID. Vuole solo dire che, quando hai più di un device che genera ordini, l'unico modo è non usare contatori... qualunque cosa ma non contatori.

E non vuol nemmeno dire che la sincronizzazione non va con i contatori. Dipende... Se la sincronizzazione è mono-direzionale funziona alla grande. Se gli ordini li generi solo lato server e i device li aquisiscono e li completano e, una volta completati, li inviano al server non hai problemi... Ogni ordine ha il suo contatore e la sincronizzazione funziona. Se, invece, i contatori vengono generati anche lato client... non c'è possibilità.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 3632
Joined: 1 October 2010, 17:03
Location: Bologna

PreviousNext

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Google [Bot] and 18 guests