Skip to Content
Author's profile photo Tobias Linden

TDF – Utilizando a TOM API Versão 2 – Métodos de busca

Olá pessoal,

Esse é o segundo post de uma série relacionada a TOM API Versão 2 (você pode conferir o primeiro post aqui) e hoje queremos trazer mais informações sobre o uso da API no ABAP (você também pode conferir o guia do desenvolvedor, que traz mais informações sobre a API nesse link).

Vamos começar falando sobre os métodos de busca.

A classe principal utilizada pelo TOM API é a /TMF/CL_TOM_METADATA. Nessa classe você vai encontrar todos os métodos públicos que a API oferece.

Abaixo você encontra a descrição de cada método de busca, seus parâmetros e um exemplo ABAP da sua chamada. Os tipos de cada parâmetro estão disponíveis no sistema SAP. Vale lembrar que muitos elementos de dados possuem uma área de valores, que também podem ser visualizados no sistema SAP.

Em caso de dúvidas e sugestões, você pode entrar em contato conosco!

Tobias Linden
Time de desenvolvimento do TDF


GET_REPORT

Parâmetro Declaração Tipo Descrição Obrigatório
IV_REPORT_ID Importação /TMF/DE_REPORT_ID Filtro por Report ID X
RO_REPORT Retorno /TMF/CL_TOM_REPORT Objeto com dados da entidade report

Recebe o Report ID e faz a busca de uma entidade report.

Exemplo:

DATA(lo_report) = /tmf/cl_tom_metadata=>get_report( iv_report_id ).

GET_REPORTS

Parâmetro Declaração Tipo Descrição Obrigatório
IV_REPORT_ID Importação STRING Filtro por Report ID
IV_REPORT_NAME Importação STRING Filtro por Report Name
IV_REPORT_LEVEL Importação STRING Filtro por Report Level
IV_REPORT_ACRONYM Importação STRING Filtro por Report Acronym
RT_REPORTS Retorno TT_REPORTS Tabela de objetos com dados da entidade report

Recebe diversos parâmetros e retorna uma tabela de entidades report.

Exemplo:

DATA(lt_reports) = /tmf/cl_tom_metadata=>get_reports( iv_report_id      = lv_id
                                                      iv_report_name    = lv_name
                                                      iv_report_level   = lv_level
                                                      iv_report_acronym = lv_acronym ).

GET_REPORTS_BY_RANGE

Parâmetro Declaração Tipo Descrição Obrigatório
IR_REPORT_ID Importação TY_REPORT_ID Filtro por Report ID – Range
IR_REPORT_NAME Importação TY_REPORT_NAME Filtro por Report Name – Range
IR_REPORT_LEVEL Importação TY_REPORT_LEVEL Filtro por Report Level – Range
IR_REPORT_ACRONYM Importação TY_REPORT_ACRONYM Filtro por Report Acronym
RT_REPORTS Retorno TT_REPORTS Tabela de objetos com dados da entidade report

Recebe diversos parâmetros em formato de range e retorna uma tabela de entidades report.

Exemplo:

DATA(lt_reports) = /tmf/cl_tom_metadata=>get_reports_by_range( ir_report_id      = lr_id
                                                               ir_report_name    = lr_name
                                                               ir_report_level   = lr_level
                                                               ir_report_acronym = lr_acronym ).

GET_REPORT_FILE

Parâmetro Declaração Tipo Descrição Obrigatório
IV_FILE_ID Importação /TMF/DE_FILE_ID Filtro por File ID X
RO_REPORT_FILE Retorno /TMF/CL_TOM_REPORT_FILE Objeto com dados da entidade file

Recebe o File ID e faz a busca de uma entidade report file.

Exemplo:

DATA(lo_report_file) = /tmf/cl_tom_metadata=>get_report_file( iv_file_id ).

GET_REPORT_FILES

Parâmetro Declaração Tipo Descrição Obrigatório
IV_FILE_ID Importação STRING Filtro por File ID
IV_RUN_ID Importação STRING Filtro por Run ID
IV_FILE_NAME Importação STRING Filtro por File Name
IV_FILE_TYPE Importação STRING Filtro por File Type
IV_FILE_DESCRIPTION Importação STRING Filtro por File Description
IV_FILE_CREATION_DATE Importação /TMF/DE_CREATION_DATE Filtro por Creation date
IV_FILE_MANUAL Importação STRING Filtro por File Manually Uploaded
IV_FILE_CREATION_TIME Importação /TMF/DE_CREATION_TIME Filtro por Creation time
IV_FILE_EXTENSION Importação STRING Filtro por File extension
RT_REPORT_FILE Retorno TT_REP_FILES Tabela de objetos com dados da entidade file

Recebe diversos parâmetros e retorna uma tabela de entidades report file.

Exemplo:

DATA(lt_report_file) = /tmf/cl_tom_metadata=>get_report_files( iv_file_id            = iv_id           
                                                               iv_run_id             = iv_run_id            
                                                               iv_file_name          = iv_name         
                                                               iv_file_type          = iv_type         
                                                               iv_file_description   = iv_description  
                                                               iv_file_creation_date = iv_creation_date
                                                               iv_file_manual        = iv_manual       
                                                               iv_file_creation_time = iv_creation_time
                                                               iv_file_extension     = iv_extension ).

GET_REPORT_FILES_BY_RANGE

Parâmetro Declaração Tipo Descrição Obrigatório
IR_RUN_ID Importação TY_RUN_ID Filtro por Run ID – Range
IR_FILE_ID Importação TY_FILE_ID Filtro por File ID – Range
IR_FILE_NAME Importação TY_FILE_NAME Filtro por File Name – Range
IR_FILE_TYPE Importação TY_FILE_TYPE Filtro por File Type – Range
IR_FILE_DESCRIPTION Importação TY_FILE_DESCRIPTION Filtro por File Description – Range
IR_FILE_CREATION_DATE Importação TY_FILE_CREATION_DATE Filtro por File Creation Date – Range
IR_FILE_MANUAL Importação TY_FILE_MANUAL Filtro por File Manually Uploaded – Range
IR_FILE_CREATION_TIME Importação TY_FILE_CREATION_TIME Filtro por File Creation Time – Range
IR_FILE_EXTENSION Importação TY_FILE_EXTENSION Filtro por File Extension – Range
RT_FILES Retorno TT_REP_FILES Tabela de objetos com dados da entidade file

Recebe diversos parâmetros em formato de range e retorna uma tabela de entidades report file.

Exemplo:

DATA(lt_report_file) = /tmf/cl_tom_metadata=>get_report_files_by_range( iv_file_id            = ir_id           
                                                                        iv_run_id             = ir_run_id            
                                                                        iv_file_name          = ir_name         
                                                                        iv_file_type          = ir_type         
                                                                        iv_file_description   = ir_description  
                                                                        iv_file_creation_date = ir_creation_date
                                                                        iv_file_manual        = ir_manual       
                                                                        iv_file_creation_time = ir_creation_time
                                                                        iv_file_extension     = ir_extension ).

GET_REPORT_FILES_BY_RUN

Parâmetro Declaração Tipo Descrição Obrigatório
IO_REP_RUN Importação /TMF/CL_TOM_REPORT_RUN Objeto com dados da entidade run X
IV_FILE_ID Importação /TMF/DE_FILE_ID Filtro por File ID
RT_FILES_BY_RUN Retorno TT_REP_FILES Tabela de objetos com dados da entidade file

Recebe a entidade report run e retorna uma tabela de arquivos relacionados a entidade passada. Opcionalmente pode receber um File ID para filtrar o resultado.

Exemplo:

DATA(lt_files_by_run) = /tmf/cl_tom_metadata=>get_report_files_by_run( io_rep_run = lo_report_run
                                                                       iv_file_id = lv_file_id ).

GET_DOWNLOAD_URL

Parâmetro Declaração Tipo Descrição Obrigatório
IV_FILE_ID Importação /TMF/DE_FILE_ID File ID X
IO_REPORT_RUN Importação /TMF/CL_TOM_REPORT_RUN Entidade Report Run
IO_REPORT_FILE Importação /TMF/CL_TOM_REPORT_FILE Entidade Report File
RO_REPORT_FILE_URL Retorno /TMF/CL_TOM_REPORT_FILE_URL Entidade Report File URL

Recebe um File ID ou as entidades file e run e faz a busca da URL (caminho) do arquivo desejado, para fazer o download.

Exemplo:

Fazendo a chamada apenas com o File ID.

DATA(lo_report_file_url) = /tmf/cl_tom_metadata=>get_download_url( lv_file_id ).

OU

Fazendo a chamada com as entidades file e run.

DATA(lo_report_file_url) = /tmf/cl_tom_metadata=>get_download_url( iv_file_id = lv_file_id 
                                                                   io_report_file = lo_report_file
                                                                   io_report_run = lo_report_run ).

GET_REPORT_RUN

Parâmetro Declaração Tipo Descrição Obrigatório
IV_RUN_ID Importação /TMF/DE_RUN_ID Filtro por Report Run ID X
RO_REPORT_RUN Retorno /TMF/CL_TOM_REPORT_RUN Objeto com dados da entidade run

Recebe um Run ID e retorna uma entidade report run.

Exemplo:

DATA(lo_report_run) = /tmf/cl_tom_metadata=>get_report_run( lv_run_id ).

GET_REPORT_RUNS

Parâmetro Declaração Tipo Descrição Obrigatório
IV_RUN_ID Importação STRING Filtro por Report Run ID
IV_REPORT_ID Importação STRING Filtro por Report ID
IV_REPORT_KEY Importação STRING Filtro por Report Run Key
IV_COMPANY_CODE Importação STRING Filtro por Company Code
IV_BRANCH Importação STRING Filtro por Business Place
IV_REPORT_STATUS Importação STRING Filtro por Report Run Status
IV_INITIAL_DATE Importação /TMF/DE_PERIOD_INI Filtro por Report Run Initial Date
IV_FINAL_DATE Importação /TMF/DE_PERIOD_FIN Filtro por Report Run Final Date
IV_APPLICATION_FILE Importação STRING Filtro por Report Run Application File
IV_SUBMITTED_FILE Importação STRING Filtro por Report Run Submitted File
IV_SUBMITTED_DATE Importação DATUM Filtro por Submitted Date
IV_RUN_TYPE Importação STRING Filtro por Report Run Type
IV_CREATED_BY Importação STRING Filtro por Report Run Created by
IV_CREATED_ON Importação DATUM Filtro por Report Run Creation date
IV_CNPJ_ROOT Importação STRING Filtro por Report Run CNPJ Root
IV_CENTRAL_EFD Importação STRING Filtro por Report Run Central EFD
IV_IE Importação STRING Filtro por Report Run State Tax Number
IV_ORGSTR_KEY Importação STRING Filtro por Report Run Organizational Structure Key
IV_DESCRIPTION Importação STRING Filtro por Report Run Description
IV_RUN_DATE Importação DATUM Filtro por Report Run Date
IV_RECTIFICATION_RUN_ID Importação STRING Filtro por Rectification Run Id
IV_SOURCE_RUN_ID Importação STRING Filtro por Source Run Id
IV_SORT_COLUMN Importação STRING Nome da coluna usada na ordenação da seleção
IV_SORT_ORDER Importação STRING Direção da ordenação: ASC ou DESC
RT_REPORT_RUNS Retorno TT_REP_RUNS Tabela de objetos com dados da entidade run

Recebe diversos parâmetros e retorna uma tabela de entidades report run.

Exemplos:

DATA(lt_report_runs) = /tmf/cl_tom_metadata=>get_report_runs( iv_run_id               = lv_run_id              
                                                              iv_report_id            = lv_report_id           
                                                              iv_report_key           = lv_report_key          
                                                              iv_company_code         = lv_company_code        
                                                              iv_branch               = lv_branch              
                                                              iv_report_status        = lv_report_status       
                                                              iv_initial_date         = lv_initial_date        
                                                              iv_final_date           = lv_final_date          
                                                              iv_application_file     = lv_application_file    
                                                              iv_submitted_file       = lv_submitted_file      
                                                              iv_submitted_date       = lv_submitted_date      
                                                              iv_run_type             = lv_run_type            
                                                              iv_created_by           = lv_created_by          
                                                              iv_created_on           = lv_created_on          
                                                              iv_cnpj_root            = lv_cnpj_root           
                                                              iv_central_efd          = lv_central_efd         
                                                              iv_ie                   = lv_ie                  
                                                              iv_orgstr_key           = lv_orgstr_key          
                                                              iv_description          = lv_description         
                                                              iv_run_date             = lv_run_date            
                                                              iv_rectification_run_id = lv_rectification_run_id
                                                              iv_source_run_id        = lv_source_run_id       
                                                              iv_sort_column          = lv_sort_column         
                                                              iv_sort_order           = lv_sort_order ).

GET_REPORT_RUNS_BY_RANGE

Parâmetro Declaração Tipo Descrição Obrigatório
IR_RUN_ID Importação TY_RUN_ID Filtro por Report Run ID – Range
IR_REPORT_ID Importação TY_REPORT_ID Filtro por Report ID – Range
IR_REPORT_KEY Importação TY_REPORT_KEY Filtro por Report Run Key – Range
IR_COMPANY_CODE Importação TY_COMPANY_CODE Filtro por Company Code – Range
IR_BRANCH Importação TY_BRANCH Filtro por Business Place – Range
IR_REPORT_STATUS Importação TY_REPORT_STATUS Filtro por Report Run Status – Range
IR_INITIAL_DATE Importação TY_INITIAL_DATE Filtro por Report Run Initial Date – Range
IR_FINAL_DATE Importação TY_FINAL_DATE Filtro por Report Run Final Date – Range
IR_APPLICATION_FILE Importação TY_APPLICATION_FILE Filtro por Report Application File – Range
IR_SUBMITTED_FILE Importação TY_SUBMITTED_FILE Filtro por Report Submitted File – Range
IR_SUBMITTED_DATE Importação TY_SUBMITTED_DATE Filtro por Report Submitted Date – Range
IR_RUN_TYPE Importação TY_RUN_TYPE Filtro por Report Run Type – Range
IR_CREATED_BY Importação TY_CREATED_BY Filtro por Report Run Created by – Range
IR_CREATED_ON Importação TY_CREATED_ON Filtro por Report Creation date – Range
IR_CNPJ_ROOT Importação TY_CNPJ_ROOT Filtro por Report CNPJ Root – Range
IR_CENTRAL_EFD Importação TY_CENTRAL_EFD Filtro por Report Central EFD – Range
IR_IE Importação TY_IE Filtro por Report IE – Range
IR_ORGSTR_KEY Importação TY_ORGSTR_KEY Filtro por Report ORGSTR Key – Range
IR_DESCRIPTION Importação TY_DESCRIPTION Filtro por Report Description – Range
IR_RUN_DATE Importação TY_RUN_DATE Filtro por Report Run Date – Range
IR_RECTIFICATION_RUN_ID Importação TY_RECTIFICATION_RUN_ID Filtro por Rectification Run Id
IR_SOURCE_RUN_ID Importação TY_SOURCE_RUN_ID Filtro por Source Run Id
IV_SORT_COLUMN Importação STRING Nome da coluna usada na ordenação da seleção
IV_SORT_ORDER Importação STRING Direção da ordenação: ASC ou DESC
RT_REPORT_RUNS Retorno TT_REP_RUNS Tabela de objetos com dados da entidade run

Recebe diversos parâmetros em formato range e retorna uma tabela de entidades report run.

Exemplo:

DATA(lt_report_runs) = /tmf/cl_tom_metadata=>get_report_runs_by_range( ir_run_id               = lr_run_id              
                                                                       ir_report_id            = lr_report_id           
                                                                       ir_report_key           = lr_report_key          
                                                                       ir_company_code         = lr_company_code        
                                                                       ir_branch               = lr_branch              
                                                                       ir_report_status        = lr_report_status       
                                                                       ir_initial_date         = lr_initial_date        
                                                                       ir_final_date           = lr_final_date          
                                                                       ir_application_file     = lr_application_file    
                                                                       ir_submitted_file       = lr_submitted_file      
                                                                       ir_submitted_date       = lr_submitted_date      
                                                                       ir_run_type             = lr_run_type            
                                                                       ir_created_by           = lr_created_by          
                                                                       ir_created_on           = lr_created_on          
                                                                       ir_cnpj_root            = lr_cnpj_root           
                                                                       ir_central_efd          = lr_central_efd         
                                                                       ir_ie                   = lr_ie                  
                                                                       ir_orgstr_key           = lr_orgstr_key          
                                                                       ir_description          = lr_description         
                                                                       ir_run_date             = lr_run_date            
                                                                       ir_rectification_run_id = lr_rectification_run_id
                                                                       ir_source_run_id        = lr_source_run_id       
                                                                       ir_sort_column          = lr_sort_column         
                                                                       ir_sort_order           = lr_sort_order ).

GET_REPORT_RUN_BY_FILE_ID

Parâmetro Declaração Tipo Descrição Obrigatório
IV_FILE_ID Importação /TMF/DE_FILE_ID File ID X
RO_REPORT_RUN Retorno /TMF/CL_TOM_REPORT_RUN Objetos com dados da entidade run

Recebe um File ID e retorna a entidade report run relacionada a esse arquivo.

Exemplo:

DATA(lo_report_run) = /tmf/cl_tom_metadata=>get_report_run_by_file_id( lv_file_id ).

GET_RUNS_COUNT_BY_REPORT

Parâmetro Declaração Tipo Descrição Obrigatório
IV_REPORT_NAME Importação /TMF/DE_REPORT_NAME Filtro por Report Name
IV_INITIAL_DATE Importação /TMF/DE_PERIOD_INI Filtro por Initial date
IV_FINAL_DATE Importação /TMF/DE_PERIOD_FIN Filtro por Final date
RT_COUNT_RUNS Retorno TT_COUNT_RUN Tabela com a quantidade de execuções de cada relatório

Recebe um nome de report e um invervalo de datas (ambos opcionais) e retona uma tabela com a quantidade de execuções de cada report no sistema.

Exemplo:

DATA(lt_count_runs) = /tmf/cl_tom_metadata=>get_runs_count_by_report( iv_report_name  = lv_report_name
                                                                      iv_initial_date = lv_initial_date
                                                                      iv_final_date   = lv_final_date ).

GET_SOURCE_REPORT_RUN

Parâmetro Declaração Tipo Descrição Obrigatório
IO_REPORT_RUN Importação /TMF/CL_TOM_REPORT_RUN Objeto com dados da entidade run X
RO_SOURCE_DOCUMENT Retorno /TMF/CL_TOM_REPORT_RUN Objeto com dados da entidade run

Recebe uma entidade report run e retorna (caso exista) a entidade run pai (que gerou a primeira entidade).

Exemplo:

DATA(lo_report_run) = /tmf/cl_tom_metadata=>get_source_report_run( lo_source_run ).

Nos próximos posts vamos falar sobre os outros métodos que a API TOM oferece e mais exemplos de uso.

Até logo!
Tobias

 

 

Assigned Tags

      6 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Tobias, que post maravilhoso! Você trouxe-nos informações muito valiosas.

      Eu estou precisando disparar a geração do SPED EFD ICMS/IPI por meio de um webservice (de preferência, REST).

      Você teria um exemplo de chamada para compartilhar conosco, por favor?

      Não estou encontrando como fazê-lo.

      Muito obrigado!

      Author's profile photo Tobias Linden
      Tobias Linden
      Blog Post Author

      Davi, obrigado pelo feedback!
      Quanto a sua dúvida, nós temos um webservice que você pode executar.
      A documentação dele está disponível no link:
      http://help.sap.com/saphelp_tdf_br_10/helpdata/en/62/4ab85437e09421e10000000a44176d/content.htm
      Esse webservice não é REST, então o uso é diferente da API, por exemplo.
      Tobias

      Author's profile photo Former Member
      Former Member

      Quando chamo http://url/sap/opu/odata/TMF/TMFEFDReportRun ele me retorna:

      "No service found for namespace /TMF/, name TMFEFDReportRun, version 0001"

      Como posso solucionar este problema? Por que ele não encontra o serviço? Será que minha URL está errada?

      Author's profile photo Tobias Linden
      Tobias Linden
      Blog Post Author

      Oi Davi, acredito que sua URL não esteja correta.
      Você pode conseguir a URL correta através da transação SOAMANAGER no sistema que você precisa executar o webservice.
      Tobias

      Author's profile photo Former Member
      Former Member

      Tobias, obrigado pela explanação!

      Através do SOAMANAGER, foi possível configurar o serviço e invocá-lo! Maravilha!

      Agora, quando eu chamo a geração via webservice, acontece o seguinte erro:
      <ReturnTable>
      <TYPE/>
      <ID>VSCAN</ID>
      <NUMBER>033</NUMBER>
      <MESSAGE>Profile Indicator is empty in State Tax Number customizing</MESSAGE>
      ...
      </ReturnTable>

      O xml que estou passando é:
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tmf="http://sap.com/xi/TMFLOCBR">
      <soapenv:Header/>
      <soapenv:Body>
      <tmf:EFDReportRun>
      <MONTHEXEC>07</MONTHEXEC>
      <COD_FINALITY>1</COD_FINALITY>
      <ORGSTR_PARAM>CC</ORGSTR_PARAM>
      <YEAREXEC>2016</YEAREXEC>
      <BUKRS>0001</BUKRS>
      </tmf:EFDReportRun>
      </soapenv:Body>
      </soapenv:Envelope>

      Você sabe o que é esse erro?
      Obrigado!

      Author's profile photo Tobias Linden
      Tobias Linden
      Blog Post Author

      oi Davi, peço desculpas pela demora em responder.

      Você precisa configurar a inscrição estadual na estrutura organizacional do TDF.

      Acesse a transação /TMF/ORGSTR01, vá até a aba IE e modifique a IE relacionada ao cenário de sua execução e preencha o campo PROFILE INDICATOR.

      Abs

      Tobias