In questo post analizzeremo come è possibile aggiunge, modificare un oggetto partendo da un file CSV strutturato (tramite il costruttore LOA40).

Tramite il LOA40 è possibile gestire la creazione/modifica di un oggetto, partendo da un CSV.

Questo costruttore è in grado di modificare  tutte le informazioni di un oggetto (OAV), siano esse:

  • contenute nell’archivio (OAV I/)
  • contenute in altri archivi (es. parametri esterni (OAV P/) e parametri estesi (OAV K/))

Possono essere gestiti tutti gli oggetti per i quali è prevista una £K89. Nella prossima immagine vediamo alcuni degli oggetti per i quali è già prevista questa gestione, ma vedremo anche come aggiungere altri oggetti.

Analizziamo ora la scheda di questo costruttore:

LA SCHEDA DEL LOA40

Campi Previsti:

Qui troviamo la lista di tutti le proprietà (OAV) di un oggetto che posso gestire e tutte le proprietà del OAV stesso, che oggetto è, la sua lunghezza, il campo del file (se la proprietà è contenuta nell’archivio) e altre informazioni come l’obbligatorietà o se il campo è un “campo chiave” per l’oggetto (come il codice per l’articolo).
Questa matrice è molto utile anche perché dice come devono chiamarsi i campi nel file CSV che voglio importare:
la seconda colonna “Nome Import” di questa matrice ci dice infatti come si deve chiamare la corrispondente colonna del CSV.
La particolarità è che la tipica barra obliqua/slah (/) del nome dell’OAV deve essere sostituita da un trattino basso/underscore (_) perché in Excel/CSV non vengono gestite correttamente le / nel titolo della colonna.
Ad esempio:

  • Il campo Codice Articolo, che è l’OAV I/01 deve essere in una colonna che si chiama I_01
  • una proprietà aggiuntiva esterne che è rappresentata dall’OAV P/ART/A01 si deve chiamare P_ART_A01

è anche possibile chiamare direttamente la colonna con l’intestazione dell’OAV (colonna 4 della matrice), bisogna però essere sicuri che solo un OAV si chiami in quel modo, è comunque possibile nella fase pre-aggiornamento verificare esattamente cosa si sta gestendo

Import file e Gestione della Cartella

Impostato correttamente il file con i nomi corretti devo salvare il file CSV in una cartella.

Di default è impostato che il file CSV deve essere nella cartella sul Desktop dell’utente che si chiama Smeup in una sottocartella XXYYYYYY dove XX è l’oggetto e YYYYYY il parametro dell’oggetto su cui sto lavorando se necessario. Ad esempio:

  • Articoli: Desktop/Smeup/AR/filearticoliXYZ.csv
  • Clienti: Desktop/Smeup/CNCLI/fileclientiXYZ.csv

questa è la convenzione che può comunque essere cambiata a proprio piacimento tramite lo script di setup che vedremo in seguito.

La cartella impostata viene quindi vista in Sme.UP ERP e selezionando il file si può schiacciare l’importazione del file selezionato, che viene scritto in un file in una libreria di appoggio. Con questa operazione non si opera quindi direttamente sugli oggetti sui quali si sta lavorando

NOTA BENE
nel file lasciando una cella vuota il programma considera che non si voglia modificare l'informazione presente in caso di modifica o non la si voglia caricare se una creazione.
Se si ha la necessità di voler cancellare un'informazione allora si deve scrivere " *CLEAR " nella cella corrispondente e il programma cancella in questo modo il campoda cancellare.
Il programma eliminerà quindi
Visualizza File Import e Campi File Import

Completata l’importazione del file in Sme.UP ERP, queste due funzioni servono per fare un controllo di quello che si sta importando.

  • Visualizza File Import: è la matrice che rappresenta esattamente il CSV che si è deciso di importare
  • Campi File Import: permette di controllare se i campi riconosciuti  dal CSV sono esattamente quelli che si volevano importare.
Aggiornamento Dati

Con questa operazione si confronta il file appena importato con l’archivio vero e proprio dell’oggetto.
il programma in questa fase cerca quindi gli oggetti nel file CSV tramite i campi chiave e analizza le possibilità:

  • UPDATE: l’oggetto trovato nel file CSV esiste già in Sme.UP ERP ma ci sono alcune caratteristiche cambiate. Nella matrice è una riga caratterizzata dal colore rosa
  • INSERT: l’oggetto del file CSV non è stato trovato nell’archivio e quindi il programma propone di crearlo. Questa situazione e riconoscibile dalle righe di colore azzurro
  • *NONE: quello che si cerca di importare esiste già, e tutti i campi importati rispecchiano esattamente la situazione attuale e quindi non c’è nulla da fare
  • *ERROR: Record per i quali esiste qualche errore e non è quindi possibile procedere con l’importazione, posso vedere quali sono i campi per cui esiste l’errore ed eventualmente correggere il file CSV di origine

Fatti i dovuti controlli è possibile procedere facendo la modifica di ogni singola riga oppure con i bottoni è possibile inserire tutti quelli da aggiungere, modificare tutti quelli che devono essere variati

LO SCRIPT

Per gestire tutti gli import del LOA40 esiste uno script di set-up (SCP_SET) che si chiama LOA40_OA.
Lo Script è organizzato in Sezioni (::SEZ) e Sub-sezioni (::SUB)  che contengono le impostazioni di ogni motore di importazione (::A40).

SEZIONE PER IMPORT REFERENTI (Oggetto RN)
::SEZ Cod="01" Txt="Referenti"
::SUB Cod="01" Txt="CSV da desktop"
::A40.VAR ImpCar="[USER.HOME]\Desktop\Smeup\RN" WrkLib="&AM.BI.LI" WrkFil="I40RN" PgmA40="OA" DatAli="1" InpPar="TipOgg(RN)"
---------------------------------------------------------------------------------------------------
SEZIONE PER IMPORT COMMESSE (Oggetto CM)
::SEZ Cod="02" Txt="Commesse"
::SUB Cod="01" Txt="CSV da desktop"
::A40.VAR ImpCar="[USER.HOME]\Desktop\Smeup\CM" WrkLib="&AM.BI.LI" WrkFil="I40CM" PgmA40="OA" DatAli="1" InpPar="TipOgg(CM)"
---------------------------------------------------------------------------------------------------
SEZIONE PER IMPORT TABELLE (Oggetto TA)
::SEZ Cod="03" Txt="Tabelle"
::SUB Cod="01" Txt="BRA - Tipologia articoli"
::A40.VAR ImpCar="[USER.HOME]\Desktop\Smeup\TA" WrkLib="&AM.BI.LI" WrkFil="I40TABRA" PgmA40="OA" DatAli="1" InpPar="TipOgg(TABRA)"
::SUB Cod="02" Txt="BRH - Classe gestionale"
::A40.VAR ImpCar="[USER.HOME]\Desktop\Smeup\TA" WrkLib="&AM.BI.LI" WrkFil="I40TABRH" PgmA40="OA" DatAli="1" InpPar="TipOgg(TABRH)"
::SUB Cod="03" Txt="CLS - Classe materiale"
::A40.VAR ImpCar="[USER.HOME]\Desktop\Smeup\TA" WrkLib="&AM.BI.LI" WrkFil="I40TACLS" PgmA40="OA" DatAli="1" InpPar="TipOgg(TACLS)"

Nella sezione delle tabelle, ad esempio, ho tante sub-sezioni quante sono le tabelle che voglio importare:

le caratteristiche di questo script sono configurabili tramite Wizard ma le principali sono:

  • ImpCar: Definizione della Cartella dove si troverà il file da importare
  • WrkLib: Definizione della libreria di appoggio dove si salverà il file intermedio dove viene salvato il file CSV. di default è impostata la libreria corrispondente alla variabile &AM.BI.LI (che corrisponde alla libreria SMEUPBIXX, dove per XX si intende il codice dell’azienda dell’ambiente dove sto operando)
  • WrkFil: Nome del file nella libreria in WrkLib che rappresenta il CSV importato
  • PgmA40: Programma utilizzato dal LOA40, di default impostato il programma OA che permette di gestire tutto tramite gli OAV
  • InpPar: Fra i parametri di imput molto importante è il TipOgg() dove va indicato il TipoParametro dell’oggetto che si sta gestendo in questo import.

ESEMPIO

Clicca qui di Seguito per vedere un video con un esempio sulla gestione di Articoli da CSV.

Video Di Esempio

NOTA BENE
Prestare molta attenzione in fase di utilizzo del LOA40 perché si va a lavorare direttamente sui file.
Nei casi significativi di modifiche invasive è sempre consigliabile fare prima una copia del file