Como descobrir erro de Schema no XML da NFe ?

14 de setembro de 2023 Deixe um comentário

Use o site da SEFAZ RS para validar o arquivo XML da NFe, para descobrir a possível “tag” inválida.

Mais detalhes no vídeo, abaixo:

Como usar o 7-zip para descompactar VÁRIOS arquivos ZIP para uma pasta específica?

16 de agosto de 2023 Deixe um comentário

Imagine o cenário em que temos uma pasta com vários (N) arquivos compactados e desejamos extrair cada um deles para uma pasta de destino específica.

No Windows Explorer podemos usar o botão direito “Extrair tudo” em cada arquivo.

Esta é uma solução rápida para 1, 2, … vamos dizer 10 arquivos.

Mas, e se a quantidade de arquivos for 11… 100… 200… N arquivos.

Esse processo levaria muito tempo do usuário.

Será que podemos automatizar esse processo?

SIM!

Então, vamos fazer um sistema, criar um robô ( RPA ) ou arquivo BAT com loop para cada arquivo.

As soluções acima funcionam.

Porém, será que existe uma solução mais simples?

SIM!

Primeiro você precisa instalar o 7-zip.

Por padrão ele é instalado na pasta C:\Program Files\7-Zip

Agora abra o Prompt de Comando e digite “C:\Program Files\7-Zip\7z.exe

Isso vai mostrar uma lista com todos os comando e parâmetros internos do 7-zip.

Depois, você pode explorar cada um deles. Agora, vamos ao que interessa.

Para descompactar (extrair) os N arquivos ZIP da pasta zip para o destino na pasta xmlPDF. Digite:

"C:\Program Files\7-Zip\7z.exe" e M:\Transportadoras\Meyvis\zip\*.zip -oM:\Transportadoras\Meyvis\xmlPDF

Note:

  1. A chamada do 7z.exe está entre ASPAS DUPLAS, pois o nome da pasta contém um ESPAÇO
  2. O parâmetro e indica que deseja descompactar (extrair)
  3. Seguido da pasta de origem que contém N arquivos no formato ZIP, ou seja, *.zip
  4. O parâmetro o indica que deseja enviar a saída (output) para uma pasta de destino específica
  5. A origem e destino NÃO usei ASPAS DUPLAS, pois não existe ESPAÇO

Olhe o resultado

Note:

  1. O 7-zip leu o conteúdo da pasta de origem e encontrou 5 arquivos
  2. Descompactou cada arquivo ( fez o loop ) sozinho
  3. Mostrou o sucesso dos 5 arquivos
  4. Mostrou o resultado de 10 arquivos extraídos

Espero que ter ajudado. Até a próxima!

SQL – Remover linhas repetidas usando UNION ou GROUP BY ?

28 de julho de 2023 Deixe um comentário

Depende, kkk. Só uma brincadeira, já que esta é a resposta que encontramos na maioria das vezes.

Vamos analisar o exemplo:

-- CRIAR Tabela
CREATE TABLE Pessoas (Nome char(50), Idade int);

-- INSERIR Dados de Exemplo 100.000 vezes 
INSERT INTO Pessoas (Nome, Idade)
VALUES ('Renato', 25),
       ('Ana', 21),
	   ('Ana', 50),
       ('Denise', 34);
GO 100000

-- EXIBIR dados ( todas colunas ) repetidos N vezes
SELECT * FROM Pessoas

-- EXIBIR dados ( apenas nomes ) repetidos N vezes
SELECT Nome FROM Pessoas

-- EXIBIR dados ( nomes ) únicos - sem repetir registros, usando UNION para remover duplicidade
SELECT Nome FROM Pessoas
UNION
SELECT Nome FROM Pessoas

-- EXIBIR dados ( nomes ) únicos - sem repetir registros, usando GROUP BY para remover duplicidade
SELECT Nome FROM Pessoas GROUP BY Nome

-- EXCLUIR Tabela
DROP TABLE Pessoas;

O resultado obtido é igual, já que removemos as linhas repetidas.

O detalhe fica para o desempenho ( velocidade ).

Note que ao executar os comandos SELECT e exibindo o Plano de Execução.

Constatamos que o GROUP BY foi muito mais rápido.

Cada caso deve ser analisado de acordo com a sua necessidade.

Então, fica a dica.

Verifique se realmente você precisa usar o UNION.

SQL – Como saber status (enabled/disabled) das TRIGGERs de um Tabela?

25 de julho de 2023 Deixe um comentário

Digamos que temos uma “Tabela A” com:

“TRIGGER X” disabled = 0

“TRIGGER Y” disabled = 1

“TRIGGER Z” disabled = 0

Isso significa:

“TRIGGER X” disabled

“TRIGGER Y” enabled

“TRIGGER Z” disabled

Mas como obter este resultado ?

Use o código T-SQL

 SELECT  
       TAB.name as Table_Name 
     , TRIG.name as Trigger_Name
     , TRIG.is_disabled
	 , 'DISABLE TRIGGER ' + TRIG.name + ' ON ' + TAB.name + ';' AS CMD_Disable
	 , 'ENABLE TRIGGER ' + TRIG.name + ' ON ' + TAB.name + ';' AS CMD_Enable
	 --, Comments.Text TriggerText
FROM [sys].[triggers] as TRIG 
   INNER JOIN sys.tables as TAB on TRIG.parent_id = TAB.object_id 
   --Inner Join syscomments Comments On TRIG.object_id = Comments.id
WHERE TRIG.is_disabled = 0
 AND TAB.name = 'TABELA A'

Note que criei as colunas CMD_Disable / CMD_Enable para facilitar minha vida.

Basta copiar e colar, ou fazer um script que execute os CMD automaticamente de acordo com a necessidade.

Fonte:

How to check the status for a specific trigger in SQL Server

Find All SQL Server Triggers to Quickly Enable or Disable

Redimensionar Partição com Bitlocker

29 de setembro de 2022 Deixe um comentário

Bitlocker é uma função antiga do Windows para criptografar o conteúdo do HD/SSD.

Comprei em 2022, um notebook DELL Vostro 15 5510 que possuí excelente configuração.

Usei por aproximadamente 8 meses e agora precisei particionar, ou seja, redimensionar a Partição C para criar uma segunda partição D.

Então, surpresa! O Bitlocker veio ativado por padrão de fábrica.

Usando o Gerenciamento de Disco do Windows por algum motivo não consigo alterar.

Usando diversos aplicativos de terceiros, mesma coisa.

A única ferramenta de terceiro que diz fazer essa alteração é How to Resize/Move BitLocker Partition on Windows 11/10EaseUS Partition Master ), mas eu não tive coragem de testar.

Solução que adotei:

a. Fazer backup, no caso espelhando o disco inteiro em outro HD/SSD

b. Desativar o Bilocker, How to remove BitLocker encryption in Windows 10

Abrir o Windows PowerShell como Administrador

Executar o comando para descriptografar manage-bde -off C:

Executar o comando para saber se já acabou manage-bde -status C:

O parâmetro –status indica a porcentagem de dados que ainda está criptografada.

Espere um pouco e execute o mesmo comando, até ficar com porcentagem = 0,0%

Reiniciar o PC

Abra o Gerenciamento de Disco e tente diminuir a partição C

Caso ainda não permitir, abrir o CMD como Administrador e Executar chkdsk C: /v /f

Reiniciar o PC, aguarde a verificação de disco terminar e ligar o Windows

Abrir novamente o Gerenciamento de Disco, mesmo com Bitlocker desativado, continua não alterando.

Sim, usei a ferramenta MiniTool Partition Wizard Free de terceiro para redimensionar

Reiniciar o PC

Executar novamente chkdsk C: /v /f

Bingo!

Foi permitido redimensionar o disco e criar a unidade D.

Agora, vamos ativar o Bitlocker novamente para prevenção contra acesso indevido.

Abrir o Windows PowerShell como Administrador

Executar o comando para descriptografar manage-bde -on C:

Reiniciar o PC

Abrir o Windows PowerShell como Administrador

Executar o comando para saber se já acabou manage-bde -status C:

Repetir comando até aparecer Status = TOTALMENTE CRIPTOGRAFADO = 100%

Outlook – Update: Offline Global Address List

17 de maio de 2022 Deixe um comentário

Ao usar o Microsoft 365, criamos os usuários:

João joao@meudominio.com.br

Carlos seguranca.trabalho@meudominio.com.br

Renato renato@meudominio.com.br

Isso cria um vínculo automático no Exchange Online.

Ao configurar as respectivas contas no PC de cada usuário o Microsoft Outlook, busca a “Lista de Endereços Global” do Exchange Online e salva como “Offline Global Address List” no seu PC.

Até aqui, ótimo temos no PC uma lista com todos contatos (usuários) da empresa.

Cenário:

O Carlos foi demitido e agora a nova funcionária é a Suelen.

Não iremos criar um novo usuário (licença do Microsoft 365) e sim alterar o nome de Carlos para Suelen.

Logo, teremos Suelen seguranca.trabalho@meudominio.com.br

Problema:

Quando o usuário João entra no Outlook e criar um novo e-mail informando: Suelen o Outlook troca automaticamente para Carlos ( que não existe mais ).

Solução A:

Em diversos tutoriais, diz para Entrar em Enviar/Receber – Grupos de Envio/Recebimento – Baixar o Catálogo de Endereço.

Na teoria isso deveria atualizar “Offline Global Address List” no seu PC, mas não funcionou.

Solução B:

Fechar o Microsoft Outlook

Executar ( Win+R ) – c:\Users\%username%\AppData\Local\Microsoft\Outlook

Será aberto o Windows Explorer

Excluir a pasta “Offline Address Books

Abrir novamente o Microsoft Outlook, ele irá baixar novamente do Exchange Online

Criar novo e-mail Suelen, bingo! Agora funcionou.

Excel / Power Query : Obter Dados – Serviços Online (inativo)

11 de maio de 2022 Deixe um comentário

Algumas surpresas desagradáveis com Microsoft Excel.

Durante um tempo usei o Microsoft Office Profissional 2016, depois a versão 2019 ambas com diversas possibilidades de acesso a dados externos, inclusive Serviços Online (ativo).

Porém, precisei obter dados de arquivos PDF que não existe, nas versões acima.

Solução: comprar assinatura do Office 365 Business, PDF resolvido!

Agora tenho outro problema, Serviços Online não funciona, foi desativado.

O que aconteceu? Ativa um, mas desativa outro!

Vamos pesquisar: blog, fórum, documentação. Bingo, achei!

Solução: gastar mais um pouco.

DEVE comprar / assinar o Office 365 ENTERPRISE, somente esta versão PODE TUDO!

PDF + Serviços Online

Verifique a matriz de Conectores de Dados x Versões do Office.

Connector NameOffice 2016

Home & Student

Home & Business Standard

Professional
Office 2016

Professional Plus

Standalone
Office 2019

Home & Student

Home & Business
Standard

Professional
Office 2019

Professional Plus

Standalone
Microsoft 365

Home

Personal

Business

Business Premium
Microsoft 365

Apps for Enterprise
Excel workbookIncludedIncludedIncludedIncludedIncludedIncluded
Text & CSVIncludedIncludedIncludedIncludedIncludedIncluded
XMLIncludedIncludedIncludedIncludedIncludedIncluded
JSONIncludedIncludedIncludedIncluded
PDF (Requires .Net Framework 4.5 or higher.)IncludedIncluded
Local folderIncludedIncludedIncludedIncludedIncludedIncluded
SharePoint FolderIncludedIncluded
SQL ServerIncludedIncludedIncludedIncludedIncludedIncluded
Microsoft AccessIncludedIncludedIncludedIncludedIncludedIncluded
Analysis ServicesIncludedIncludedIncludedIncludedIncludedIncluded
SQL Server Analysis Services (Import)IncludedIncludedIncluded
OracleIncludedIncludedIncluded
IBM Db2IncludedIncludedIncluded
MySQLIncludedIncludedIncluded
PostgreSQLIncludedIncludedIncluded
SybaseIncludedIncludedIncluded
TeradataIncludedIncludedIncluded
SAP HANAIncludedIncluded
Azure SQL DatabaseIncludedIncludedIncluded
Azure SQL Data WarehouseIncludedIncluded
Azure HDInsight (HDFS)IncludedIncludedIncluded
Azure Blob StorageIncludedIncludedIncluded
Azure Table StorageIncludedIncludedIncluded
Azure Data Lake StorageIncludedIncluded
Azure Data ExplorerIncluded
SharePoint Online ListIncludedIncluded
Microsoft Exchange OnlineIncludedIncluded
Dynamics 365 (online)IncludedIncludedIncluded
Facebook ***IncludedIncludedIncludedIncludedIncludedIncluded
Salesforce ObjectsIncludedIncludedIncluded
Salesforce ReportsIncludedIncludedIncluded
Table/RangeIncludedIncludedIncludedIncludedIncludedIncluded
WebIncludedIncludedIncludedIncludedIncludedIncluded
Microsoft QueryIncludedIncludedIncludedIncludedIncludedIncluded
SharePoint ListIncludedIncludedIncluded
OData FeedIncludedIncludedIncludedIncludedIncludedIncluded
Hadoop File (HDFS)IncludedIncludedIncluded
Active DirectoryIncludedIncludedIncluded
Microsoft ExchangeIncludedIncludedIncluded
ODBCIncludedIncludedIncludedIncludedIncludedIncluded
OLEDBIncludedIncludedIncludedIncludedIncludedIncluded
Blank QueryIncludedIncludedIncludedIncludedIncludedIncluded
Suporte Microsoft

*** Important: Retirement of Facebook data connector notice    Import and refresh data from Facebook in Excel will stop working in April, 2020. You will still be able to use the Facebook Power Query connector until then. But starting in April, 2020, you will be unable to connect to Facebook and you will receive an error message if you try using the Facebook connector. We recommend revising or removing any existing Power Query queries that use the Facebook connector as soon as possible to avoid unexpected results.

Fontes:

From Online Service Option disable How to enable that in Office 2016

Excel: Unable to get data from online services

Data>Get Data> “from online services” is disabled in excel

Power Query data sources in Excel versions

Como usar o Excel para exportar .DAT, Encoding ANSI e PIPE como delimitador?

22 de fevereiro de 2022 Deixe um comentário

Preciso integrar dados e o sistema de destino exige:

1. Arquivo texto usando ANSI

2. Extensão do arquivo deve ser .dat

3. Delimitador de colunas dever ser “|pipe

O usuário precisa uma vez ao mês, fazer alterações em uma Planilha Excel e depois exportar, ou seja, salvar como arquivo texto codificado em ANSI extensão .dat e delimitador pipe.

Fatalmente ele vai esquecer alguma etapa e vai dar errado.

Então, a solução proposta é criar um a macro e colocar um botão.

Assim o usuário faz suas alterações e salva no Excel normalmente, depois clica no botão e pronto! Arquivo criado.

Explico em detalhes os requisitos e detalhes da solução no vídeo, abaixo:

Outlook mudou a caixa de entrada para inglês!

17 de fevereiro de 2022 Deixe um comentário

Tenho o Outlook instalado em Português e com um e-mail já configurado.

Precisei excluir a conta de e-mail e configurar novamente, pois, troquei o provedor do serviço de e-mail.

Quando fiz isso, por algum motivo que não descobri, o Outlook adicionou a conta com os nomes das pastas em inglês.

Para resolver, faça:

1. Fechar o Outlook

2. Use a teclas WINDOWS + R

3. Digite: outlook /resetfoldernames e clique OK

O Outlook será aberto com o parâmetro para reconfigurar os nomes das pastas.

Pode fechar o Outlook e abrir normalmente.

Fonte: Idioma das pastas do outlook – Carlos Fernando Paleo da RochaSBS MVP in Brazil (msmvps.com)

Solução para Erro com Impressora Compartilhada no Windows 10 – PrintNightmare kb5004945 e kb5006670

15 de outubro de 2021 1 comentário

Windows 10 – Erro ao tentar imprimir e/ou instalar impressora compartilhada na rede.

Impressora USB (Epson L355) instalada no PC BS003918 e compartilhada como – L355
Configurações do Windows para Usar Compartilhamento protegido por Senha

No PC X acessado o Windows Explorer – Rede \\BS003918
Informado o Usuário e Senha – OK, credencial aceita
Clicar com botão direito sobre L355 – Conectar
Neste momento o PC X instalar a impressora com sucesso!

Esse é cenário mais simples e comum.

Tudo funcionando, até que o Windows Update entra em ação.

Após a instalação do kb5004945 ao tentar instalar esta mesma impressora em outro PC Y ocorre erro e não instala, para contornar o problema sem remover o kb5004945:

Editar política de grupo ( GPO ) – Política Computador Local – Configuração do Computador – Modelos Adiminstrativos – Impressoras
+ Recurso apontar e imprimir – servidores aprovados = alterar para Desativado
+ Restrições ao recurso apontar e imprimir = alterar para Desativado
Reiniciar PC e instalar a impressora.

kb5004945-001

Tudo funcionando e imprimindo normalmente pela rede do PC X e PC Y na impressora que está no BS003918.

Até que o Windows Update entra em ação.

Após a instalação do kb5006670 que resolve bugs do “Notiícias e Interesses” causa novo erro e impressora que já estava instalada nos PC X e Y para de imprimir e mostra um aviso de que é necessário atualizar o driver da impressora.

Tentei remover e instalar novamente, usando o \\BS003918\L355 e nada, não instala!

Até o momento eu não tinha notado que o Windows fez nova atualização.

kb5006670-001

kb5006670-002

 

Pedi ajuda ao colega Elisson que ainda não tinha passado por isso, mas que prontamente me ajudou a pesquisar. Eu estava focado no kb5004945, mas em suas pesquisas ele encontrou uma publicação dizendo que o kb5006670 causa erro nas impressora compartilhadas.

Fui verificar e estava instalado, para remover seguir os passos nas imagens:

kb5006670-003

kb5006670-004

kb5006670-005

kb5006670-006

kb5006670-007

Foi removido update kb5006670, depois de reinicar o PC a impressora compartilhada volta a ser instalada e imprimir normalmente.

kb5006670-008