Páginas

terça-feira, 14 de maio de 2019

TDF - AUTOMATIZAÇÃO DO PREENCHIMENTO DA OrgSTR

Pessoal, abaixo segue uma breve orientação, porém muito interessante, para automatização do preenchimento dos dados Fiscais via TDF OrgSTR (Organizational Structure).

OrgSTR é o nome resumido de “Organizational Structure” (ou Estrutura Organizacional do TDF), a qual contém as informações de empresa e filiais organizadas de forma unificada com foco fiscal.

Para maiores informações leia o post do Fernando Da Rós: TDF – Conhecendo e Entendendo o OrgStr: https://blogs.sap.com/2015/08/11/tdf-conhecendo-e-entendendo-o-orgstr/

TELA DO TDF:

PRINCIPAIS TABELAS DA ORGSTR
  • /TMF/D_CNPJ - DADOS CNPJ
  • /TMF/D_ESTABELEC - DASOS DO BUSINESS PLACE (FILIAL)
  • /TMF/D_CNPJ_ROOT - CNPJ ROOT
  • /TMF/D_IE - DADOS DA INSCRIÇÃO ESTADUAL (STATE INSCRIPTION)
Agora vamos ao que interessa...

Qual seria a ideia para automatização do preenchimento dos Dados Fiscais do OrgStr?
Criação de um VBA \o/


CRIAÇÃO DO VBA:
A automação é toda realizada no Visual Basic, que pode ser manipulado pelo Excel. Basta ir na guia Desenvolvedor -> Visual Basic

Após isso, devem ser inseridas, antes da criação do código, algumas bibliotecas que dão possibilidade de automação dentro do Internet Explorer, que é como iremos acessar a ORGSTR. Isso é realizado, dentro do projeto VBA, em: Ferramentas -> Referências.

Podem ser adicionadas as seguintes referências:
O conceito é acessarmos os elementos do Internet Explorer por ID, e manipular seu preenchimento da forma mais conveniente:

Para capturar esses elementos, no Internet Explorer, basta clicar com o botão direito sobre o elemento e clicar em “Inspecionar elemento”


A procura do elemento por ID é a mais indicada, pelo ID ser único dentro da classe.

No VBA,

‘Declaração da função que é utilizada
Declare Function apiShowWindow Lib "user32" Alias "ShowWindow"  (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Sub Teste ()
Dim inputfield As Object ‘Declaração das variáveis
Set ie = CreateObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")  ‘Definição do objeto do Internet Explorer
ie.Visible = 1 ‘Torna o ie visível
apiShowWindow ie.hwnd, 3 ‘ Utilização de uma função para exibir o IE.
campo = Sheets(“Exemplo”).Range(“A1”).Text  O valor do campo a ser preenchido está na Sheet “Exemplo”, na célula “A1”

Set inputfield = ie.document.getElementById("IE-DataSet-searchValue-tf-searchico") ‘Procurando o ID do elemento, dentro da tela do IE
inputfield.Value = campo   ‘Preenchimento do campo de acordo com o valor da célula “A1”
Do ‘Início da repetição
Application.Wait (Now() + TimeValue("00:00:01")) ‘Definindo tempo de espera
DoEvents ‘Disparador de eventos
Loop While ie.Busy Or ie.readyState <> 4 ‘O Loop continua enquanto o Status do navegador não for “Concluído”
End Sub

Após o modulo criado, ele pode ser executado através da guia Desenvolvedor -> Macros.

Pode ser que sejam necessárias a inserção de condições, repetições no desenvolvimento.

Assim, a partir de uma planilha, é possível realizar o preenchimento completo de qualquer formulário no Internet Explorer.

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.