Script loop per rinumerare i record dopo l'unificazione di 3 gestionali

  • Guru Corner
  • Scripting
  • [RISOLTO] Script loop per rinumerare i record dopo l'unificazione di 3 gestionali

Script loop per rinumerare i record dopo l'unificazione di 3 gestionali

Categoria:
0
0

Buongiorno a tutti e buon 2021!

Sto unificando 3 gestionali usati in 3 postazioni diverse da 3 operatori. Sono composti da 3 file relazionali:

  1. “Anagrafica”
  2. “Preventivi”
  3. “Voci dei preventivi”.

Dopo aver creato un'unica Anagrafica importando le Anagrafiche dei 3 operatori, ho creato un campo Pk_Id_Cliente e ho rinumerato i Clienti da 1 a 2500 con “Sostituisci contenuto campo", mantenendo il precedente campo CODICE CLIENTE con la numerazione originale.

Nei 3 file di partenza il CODICE CLIENTE parte da numeri diversi: il primo operatore usa la numerazione 1 2 3 4…, il secondo 10.001 10.002 10.003 e il terzo 100.001 100.002 100.003 ecc. Con il primo gennaio ho vuotato completamente il file dei “Preventivi” e quello delle “Voci dei preventivi” e sono ripartito da N.Preventivo  = 1 perdendo tutto il lavoro "storico".

Ho messo in rete i file e ho programmato il salvataggio automatico dei preventivi in una cartella condivisa di OneDrive.

Dopo aver risolto questo problema mi è venuta l'idea di recuperare lo storico dei "Preventivi": ho importato in uno stesso file “Preventivi” i preventivi dei 3 operatori e ho creato un nuovo campo Pk_Id_Preventivo nel quale ho immesso una numerazione che parte da 1 con “Sostituisci contenuto campo", mantenendo la numerazione originale in N.Preventivo.

Alla fine pensavo di rinumerare sia CODICE CLIENTE in "Anagrafica" che N.Preventivo  in "Preventivi" partendo da 1 con il comando "Sostituisci contenuto campo" per non perdere le relazioni.

A questo punto avrei bisogno di creare due script loop, molto simili tra loro come impostazione, che dovrebbero svolgere questo lavoro:

  1. Il primo: copiare il CODICE CLIENTE dall'Anagrafica, passare nel file “Preventivi” in modo Trova ed eseguire la ricerca di tutti i Preventivi che abbiano lo stesso CODICE CLIENTE,  sostituirlo con il nuovo valore del Pk_Id_Cliente copiato dal record corrispondente dell'Anagrafica.
  2. Il secondo: dovrebbe prendere il N.Preventivo originale dal file “Preventivi”, copiarlo, passare al file “Voci dei preventivi" in modo trova, eseguire la ricerca per quel numero e sostituirlo con Pk_Id_Preventivo del record "Preventivi" corrispondente.

Non avendo molta dimestichezza con la funzione script loop chiedo se qualcuno mi può aiutare nella creazione dello script, con la sintassi giusta, che faccia tutto questo.

Grazie a tutti, mi scuso per la lunghezza della domanda e vi saluto cordialmente

Elvio

RISOLTO
Segnalato come spam
Pubblicato da (Domande: 19, Risposte: 36)
Domandato il 12 Gennaio 2021 10:55
68 visualizzazioni
0
Domanda privata

Buongiorno, Elvio.

Come prima cosa non ti conviene usare un numero come chiave primaria, ma una funzione più robusta, come get(idUU), che ti evita proprio questo problema.

per il tuo problema, più che un loop ti conviene usare delle relazioni. in sintesi:
metti in relazione preventivi e clienti sia con il codice nuovo. avrei quindi due relazioni: una (chiamiamola clienti_preventivi_codice)

preventivi::CODICE CLIENTE= clienti::CODICE CLIENTE

e una( chiamiamola clienti_preventivi_pk)

preventivi::Pk_Id_Cliente=clienti::Pk_Id_Cliente

 

in questo caso da preventivi ti basta un semplice sostituisci campo, in cui imposti il campo preventivi::Pk_Id_Cliente con un semplice calcolo tipo clienti_preventivi_codice::Pk_Id_Cliente.

puoi usare lo stesso trucco per le voci preventivo (quindi una relazione con il vecchio codice e una con il nuovo e un sostituisci contenuto campo che imposti il nuovo codice usando la relazione attiva (quella, quindi, del vecchio codice).

facci sapere!

.g.

 

 

Segnalata come spam
Pubblicato da (Domande: 0, Risposte: 2409)
Risposto il 12 Gennaio 2021 12:36
0
Domanda privata

Buongiorno Giulio, grazie per la sollecitudine.

Ho cercato di mettere in pratica le tue indicazioni e ho creato nel file Anagrafica le due relazioni Preventivi::CODICE CLIENTE con Anagrafica::CODICE CLIENTE e Preventivi::Pk_Id_Cliente con Anagrafica::Pk_Id_Cliente. Non ho capito cosa significa "chiamiamole" e soprattutto il sostituisci campo Preventivi::Pk_Id_Cliente con preventivi_clienti_codice::Pk_Id_Cliente. Non ho chiara la relazione tra la denominazione della relazione e l'unione tra il nome della relazione con il campo. 

Allego 2 pdf dei file Anagrafica e Preventivi come si presentano ora dopo le variazioni. 

Ti chiedo un po' di pazienza e se mi puoi aiutare per procedere oltre.

Grazie e buona giornata

Elvio

Segnalata come spam
Pubblicato da (Domande: 19, Risposte: 36)
Risposto il 13 Gennaio 2021 10:33
0
Domanda privata

Buongiorno, Elvio.

devi agire al contrario, ovvero dal file preventivi. il "chiamiamole" si riferisce al nome che dai alla relazione nel grafico relazionale (e che quindi ti servirà nei calcoli per capire quale relazione utilizzare per spostare i dati mediante il sostituisci contenuto campo (in sostanza utilizzi una relazione per copiare i dati che ti servono per l'altra.

.g.

Segnalata come spam
Pubblicato da (Domande: 0, Risposte: 2409)
Risposto il 13 Gennaio 2021 19:08
0
Domanda privata

Buonasera Giulio e GRAZIE!

Sono riuscito ad unificare e rinumerare sia Anagrafica che Preventivi.
Illuminante è stato il webinar di questa mattina sui Formati quando hai spiegato le proprietà delle occorrenze di tabella. Non riuscivo a visualizzare contemporaneamente il campo “Numero_Preventivo” e il campo “Pk_Id_Preventivo” nel file “Voci del preventivo” perché creavo delle occorrenze di tabella da origini dati diverse. È stato sufficiente duplicare l’occorrenza di tabella e creare le relazioni che mi hai indicato e il tutto è andato a posto.

Grazie ancora per la pazienza, la competenza e per l’entusiasmo che traspare da tutto quello che fai.

Elvio

Segnalata come spam
Pubblicato da (Domande: 19, Risposte: 36)
Risposto il 28 Gennaio 2021 18:04