Se il file non Esiste non eseguire una query L’argomento è risolto

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel

Rispondi

AndreaB.
Messaggi: 44 | Topic creati
Iscritto il: lun 30 ago 2021, 12:14
Ringraziato: 3 volte
Contatta:

Se il file non Esiste non eseguire una query

Messaggio da AndreaB. »

Ciao a tutti,
ho provato a cercare in rete e nel forum, ma non ho trovato ciò che mi serve e nemmeno spunti utili (ricordo che sono un cane con le chiavi di ricerca).
Non sono neanche certo che il titolo sia esaustivo per il mio problema.

Praticamente ho due tabelle una TF e una StoreID.
Avrei la necessità, una volta individuato il nome del file che viene salvato in una determinata cartella di verificare se questo esiste e in caso affermativo eseguire il mio codice, in caso negativo uscire senza fare niente.

ho pensato di fare una cosa del genere, ma restituisce un errore

Codice: Seleziona tutto

let
    Store = Table.NestedJoin(TF, {"Name"}, StoreID, "StoreFile", "Store", JoinKind.Inner),
    Origine0=if Table.RowCount(Store) > 0 then 
    let
        Origine = Pdf.Tables(File.Contents(path&"C41777.pdf"), [Implementation="1.3"]),
        Table001 = Origine{[Id="Table001"]}[Data],
        #"Intestazioni alzate di livello" = Table.PromoteHeaders(Table001, [PromoteAllScalars=true]),
        #"Modificato tipo" = Table.TransformColumnTypes(#"Intestazioni alzate di livello",{{"TIPO DOCUMENTO", type text}, {"DATA", type date}, {"DARE", type number}, {"AVERE", type number}}),
        #"Sostituito valore" = Table.ReplaceValue(#"Modificato tipo"," NR ","|",Replacer.ReplaceText,{"TIPO DOCUMENTO"}),
        #"Sostituito valore1" = Table.ReplaceValue(#"Sostituito valore"," DEL","",Replacer.ReplaceText,{"TIPO DOCUMENTO"}),
        #"Suddividi colonna in base al delimitatore" = Table.SplitColumn(#"Sostituito valore1", "TIPO DOCUMENTO", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"DOCUMENTO", "NR DOCUMENTO"})
    in
        #"Suddividi colonna in base al delimitatore"
    else
    Risultato = Store
in 
    Risultato
Errore restituito:
Errore imprevisto nella query ''. Expression.Error: Il nome 'Risultato' non è stato riconosciuto. Verificare l'ortografia.

Quindi mi sono detto, tolgo il Risultato e faccio restituire direttamente Store; ora voi mi direte, ma se hai detto che non vuoi che esegua la query, perché fai restituire Store??
Per due motivi, il primo e più importante non so come si faccia, il secondo non so se si possa fare.

cmq con questo codice:

Codice: Seleziona tutto

let
    Store = Table.NestedJoin(TF, {"Name"}, StoreID, "StoreFile", "Store", JoinKind.Inner),
    Origine0=if Table.RowCount(Store) > 0 then 
    let
        Origine = Pdf.Tables(File.Contents(path&"C41777.pdf"), [Implementation="1.3"]),
        Table001 = Origine{[Id="Table001"]}[Data],
        #"Intestazioni alzate di livello" = Table.PromoteHeaders(Table001, [PromoteAllScalars=true]),
        #"Modificato tipo" = Table.TransformColumnTypes(#"Intestazioni alzate di livello",{{"TIPO DOCUMENTO", type text}, {"DATA", type date}, {"DARE", type number}, {"AVERE", type number}}),
        #"Sostituito valore" = Table.ReplaceValue(#"Modificato tipo"," NR ","|",Replacer.ReplaceText,{"TIPO DOCUMENTO"}),
        #"Sostituito valore1" = Table.ReplaceValue(#"Sostituito valore"," DEL","",Replacer.ReplaceText,{"TIPO DOCUMENTO"}),
        #"Suddividi colonna in base al delimitatore" = Table.SplitColumn(#"Sostituito valore1", "TIPO DOCUMENTO", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"DOCUMENTO", "NR DOCUMENTO"})
    in
        #"Suddividi colonna in base al delimitatore"
    else
in 
    Store
mi restituisce un errore diverso:
Expression.SyntaxError: Previsto token Literal.

dove sto sbagliando?

Ma soprattutto si può fare quello che desidero?

Grazie a tutti per eventuali suggerimenti ed aiuti.

ciao

ab


Avatar utente

Andrea90
Messaggi: 2266 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 673 volte
Contatta:

Se il file non Esiste non eseguire una query

Messaggio da Andrea90 »

@AndreaB.,

Non mi metto a dirti tutto quello che non va in ciò che hai fatto perché sarebbe troppo lungo il discorso.

In generale prova questa logica:

Codice: Seleziona tutto

let
    Source = Table.RowCount(Table.NestedJoin(Table1, {"Agente"}, Table2, {"Agente"}, "Table2", JoinKind.Inner)),
    Result = if Source > 0 then Table1 else Table2
in
    Result
Dove Table1 e Table2 sono due query distinte che utilizzerai a seconda del risultato che otterrai in Source.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
AndreaB.
Messaggi: 44 | Topic creati
Iscritto il: lun 30 ago 2021, 12:14
Ringraziato: 3 volte
Contatta:

Se il file non Esiste non eseguire una query

Messaggio da AndreaB. »

Andrea90 ha scritto: ven 20 ott 2023, 13:22 @AndreaB.,

Non mi metto a dirti tutto quello che non va in ciò che hai fatto perché sarebbe troppo lungo il discorso.
:cry: :cry:

Grazie mille per il suggerimento.

Preziosissimo come al solito.

ab
Rispondi