SAP ABAP - Para todos
segunda-feira, 12 de setembro de 2022
80 principais transações no SAP para a área de Suprimentos
segunda-feira, 5 de setembro de 2022
SAP - Como Consultar o conteúdo de uma tabela (SE16 e DB02)
É muito comum a necessidade de explorar o conteúdo de uma tabela no SAP.
Diante vou demonstrar como é feito uma “pesquisa” através de das transações SE16 e a DB02.
Será utilizado a Tabela CRMD_TIMEREP (Transação - registro tempo p/add-on para Service Industries)
Opção 1 :Transação SE16
Informar o nome da tabela(CRMD_TIMEREP) e teclar ENTER. Para seguir a tela de critérios
Tela de Critérios (Where)
Utilizada para restringir o resultado. Por exemplo, extrair os dados em um determinado período. Para listar o conteúdo sem critério basta executar(F8) direto.
Cenário 1: Consultar o conteúdo da tabela sem Critério (Sem Where)
O Resultado da consulta :
Consultando a tabela com critério (Com a Clausula WHERE)
Pesquisar na tabela CRMD_TIMEREP, quando o campo CHANGED_AT for igual a 02.03.2017 14:32:19
Basta informa a data no campo CHANGED_AT e executar F8.
Resultado
Retorno dos os registros iguais a 02.03.2017 14:32:19
Dica: Na tela de critério existe um limitador de quantidade utilizado para retornar uma quantidade de linhas especificas. Caso exista a necessidade de retornar mais dados alterei a quantidade de registros. Há também a configuração para limitar a largura da listagem do resultado
É possível alterar a largura da listagem também na tela de resultado:
Opção 2 :Transação DB02
Esta transação é mais indicada para quem possui domínio do SQL, Caso queira conhecer um pouco mais de SQL segue o curso : clique aqui
Transação: DB02 - Menu do lado esquerdo "Diagnostics" e a opção "SQL Command Editor"
OBS.: utilize esta transação com moderação, pois ela pode degradar a performance. Por exemplo um select "sem WHERE" em uma tabela com grande volume de dados.
Select sem WHERE. Não execute para tabelas com muitos dados
Informe o select na ABA SQL Code :Select da tabela CRMD_TIMEREP (SELECT * FROM CRMD_TIMEREP), tecle F6 para executar
DICA : Não existe limitador para o resultado deste select, com isso utilize o comado TOP. Para que o resultado seja apenas 20 linhas TOP 20
Resultado sera apenas 20 registros(desconsidere as linhas de cabeçalho)
Select com Where
Informe o select com o "Where" e execute(F6)
Resultado do Select :
terça-feira, 16 de agosto de 2022
Transação SNRO SAP - Criar e manter faixas de número de ABAP
Passo 1 - SAP transação intervalo de números
Execute SNRO Tcode e digite um nome para o seu novo número de série (ou seja, ZNRANGE)
Passo 2 - objeto detalhes da gama de números
Pressione o botão Criar e preencha o intervalo da tela objeto número de detalhes, agora pressione salvar. Leia a mensagem pop-up e clique em sim se feliz com o método selecionado de buffering.
Número de intervalos reais 3 - Etapa
Agora pressione o botão 'Número intervalos "para manter os intervalos associados a este objeto.
Passo 4 - Número intervalo de variação (s)
Pressione o botão Alterar intervalos (lápis) para criar um novo intervalo e manter qualquer existentes
Passo 5 - Dê intervalo de variação número
Pressione o botão intervalo de + para adicionar um novo número de série para o seu objeto.
Preencha os detalhes adequados, tais como o de e para o número, pressione o botão de inserção (+) para adicionar o intervalo para o objeto de intervalo de números
Passo 6 - Criado intervalo
O intervalo de variação número agora deve ter sido adicionado. Pressione salvar, ler a mensagem de informação e, em seguida, pressione o sinal verde. Sua gama de números foi agora criado.
Use a função módulo NUMBER_GET_NEXT em seu código ABAP para obter o próximo número na sua faixa de número
Source: http://www.sapdev.co.uk/tcodes/snro.htm
Acessar transação bloqueada no SAP -
Para acessar uma transação bloqueada no SAP basta seguir os seguintes passos;
3. Executar a função (F8) e preencher o campo I_TCODE com a transação que deseja acessar e executar
segunda-feira, 13 de novembro de 2017
SAP ABAP - Como alterar dados através da SE16N quando o &SAP_EDIT não funciona
Para poder fazer a alteração, aqui vai a solução.
a. Entre na transação SE16N;
b. Informe a tabela e os filtros desejados;
c. Ative o debugging "/h" e execute a pesquisa "F8";
d. Marque as variáveis mostradas na figura a seguir com um "X" e avance normalmente com "F8";
GD-EDIT X
GD-SAPEDIT X
quarta-feira, 30 de abril de 2014
ABAP OLE Excel
REPORT z_abap_excel.
*----------------------------------------------------------------------*
* Conjunto de tipos
*----------------------------------------------------------------------*
" Tem um include que a maioria trabalho mas eu prefiro o Grupo de tipo.
TYPE-POOLS ole2.
*----------------------------------------------------------------------*
* Tabelas transparentes
*----------------------------------------------------------------------*
TABLES :
sflight.
*----------------------------------------------------------------------*
* Tabelas internas
*----------------------------------------------------------------------*
DATA :
it_spfli TYPE TABLE OF spfli,
it_sflight TYPE TABLE OF sflight
.
*----------------------------------------------------------------------*
* Estruturas
*----------------------------------------------------------------------*
DATA :
st_spfli TYPE spfli,
st_sflight TYPE sflight
.
*----------------------------------------------------------------------*
* Declarações de variáveis
*----------------------------------------------------------------------*
DATA : linha TYPE i, " Atribui Valor Linha
coluna TYPE i,
v_texto TYPE string " Conteudo das celulas
.
*----------------------------------------------------------------------*
* Definições de objetos OLE2
*----------------------------------------------------------------------*
DATA: gs_excel TYPE ole2_object, " Objeto Excel
gs_workbook TYPE ole2_object, " Workbook 'Area de trabalho'
gs_sheet TYPE ole2_object, " Planilha
gs_cell1 TYPE ole2_object, " Celula 1
gs_cell2 TYPE ole2_object, " Celula 2
gs_cells TYPE ole2_object, " Células
gs_range TYPE ole2_object, " Grupo de células
gs_font TYPE ole2_object, " Fonte da célula
gs_column TYPE ole2_object. " Coluna da célula
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS:
p_carrid TYPE sflight-carrid OBLIGATORY.
SELECT-OPTIONS:
s_connid FOR sflight-connid,
s_fldate FOR sflight-fldate.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
* select dos dados
PERFORM selects.
IF it_sflight IS NOT INITIAL.
* Cria o objeto Excel com area de trabalho e planilhas.
PERFORM f_gera_excel.
* Agora com a planilha pronta vamos formatar as colunas do excel.
PERFORM formata_colunas.
* Eu criei um perform só pra trata o cabeçalho pra fica mais legível.
PERFORM gera_cabecalho.
* Gera linhas
PERFORM gera_linhas.
* Encerra planilha Excel
PERFORM encerra_planilha_excel.
ELSE.
MESSAGE 'Não foi encontrado dados na tabela conforme críterios da tela de seleção'
TYPE 'I'.
ENDIF.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form F_GERA_EXCEL
*&---------------------------------------------------------------------*
FORM f_gera_excel .
" Criação do objeto Excel.
CREATE OBJECT gs_excel 'Excel.Application'.
" É um parametro do objeto Excel para que seja mostrado o arquivo excel
" somente quando carregar por completo.
SET PROPERTY OF gs_excel 'ScreenUpdating' = 0.
" Deixa ativo o excel
SET PROPERTY OF gs_excel 'Visible' = 1.
" Aqui é pego a parametro area de trabalho do Excel e passado para uma
" variável.
GET PROPERTY OF gs_excel 'Workbooks' = gs_workbook.
" Agora com essa variavel você chama um método da classe para que seja
" adicionado uma área de trabalho.
CALL METHOD OF gs_workbook 'Add'.
" Perform para verificação de erros.
PERFORM err_hdl.
" Toda essa parte acima é só pra abilitar e abrir o excel.
" Entrando no nivel planila do excel passada para uma variável.
CALL METHOD OF gs_excel 'Worksheets' = gs_sheet.
" Criação de uma aba de planilha para área de trabalho.
CALL METHOD OF gs_sheet 'Add' = gs_sheet.
" Modifica a propriedade nome da aba para 'ABA Nova'
SET PROPERTY OF gs_sheet 'Name' = 'ABA Nova'.
" Perform para verificação de erros.
PERFORM err_hdl.
ENDFORM. " F_GERA_EXCEL
*&---------------------------------------------------------------------*
*& Form ERR_HDL
*&---------------------------------------------------------------------*
FORM err_hdl .
" Deu problema ?
IF sy-subrc <> 0.
" Erro ....
WRITE: / 'Erro na abertura OLE-Automation(EXCEL):', sy-subrc.
" Famoso João Kleber ---- Pára, Pára, Pára tuuudo..
STOP.
ENDIF.
ENDFORM. " ERR_HDL
*&---------------------------------------------------------------------*
*& Form FORMATA_COLUNAS
*&---------------------------------------------------------------------*
FORM formata_colunas .
" Eu criei um perform para que fique mais facil de trabalhar....
" Aki estarei trabalhando inteiramente com a coluna 'E' passando o
" tamanho '33'.
PERFORM formata_largura USING 'E:E' '33'.
ENDFORM. " FORMATA_COLUNAS
*&---------------------------------------------------------------------*
*& Form FORMATA_LARGURA
*&---------------------------------------------------------------------*
FORM formata_largura USING coluna
largura.
" Uso metodo para fazer um intervalo passando a coluna desejada.
CALL METHOD OF gs_excel 'Range' = gs_range
EXPORTING
#1 = coluna.
" Estou modificando uma das propriedades deste intervalo e informando a lagura.
SET PROPERTY OF gs_range 'ColumnWidth' = largura.
ENDFORM. " FORMATA_LARGURA
*&---------------------------------------------------------------------*
*& Form GERA_CABECALHO
*&---------------------------------------------------------------------*
FORM gera_cabecalho .
*&---------------------------------------------------------------------*
linha = linha + 1.
" Trata a primeira linha da planilha ( Cabeçalho ).
v_texto = 'Titulo do Excel.'.
PERFORM preenche_titulo USING linha 1 linha 5 v_texto.
*&---------------------------------------------------------------------*
linha = linha + 2.
" Trata um segundo cabeçalho.
CONCATENATE : 'Dados Denominação breve da companhia aérea :' p_carrid
INTO v_texto SEPARATED BY space.
PERFORM preenche_titulo USING linha 1 linha 5 v_texto.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
linha = linha + 2.
coluna = coluna + 1.
v_texto = 'Carrid'.
PERFORM preenche_titulo USING linha coluna linha coluna v_texto.
*&---------------------------------------------------------------------*
coluna = coluna + 1.
v_texto = 'Connid'.
PERFORM preenche_titulo USING linha coluna linha coluna v_texto.
*&---------------------------------------------------------------------*
coluna = coluna + 1.
v_texto = 'Fldate'.
PERFORM preenche_titulo USING linha coluna linha coluna v_texto.
*&---------------------------------------------------------------------*
coluna = coluna + 1.
v_texto = 'Price'.
PERFORM preenche_titulo USING linha coluna linha coluna v_texto.
*&---------------------------------------------------------------------*
coluna = coluna + 1.
v_texto = 'Paymentsum'.
PERFORM preenche_titulo USING linha coluna linha coluna v_texto.
ENDFORM. " GERA_CABECALHO
*&---------------------------------------------------------------------*
*& Form PREENCHE_TITULO
*&---------------------------------------------------------------------*
FORM preenche_titulo USING linha1
coluna1
linha2
coluna2
texto.
* Mescla células selecionadas
" Primeiro seleciona a primeira celula
PERFORM seleciona_celula USING linha1 coluna1 gs_cell1.
" Depois seleciona a segunda celula
PERFORM seleciona_celula USING linha2 coluna2 gs_cell2.
" Mescla as duas celulas juntamente com seu intervalo caso tenha
PERFORM mescla_celulas.
* Coloca borda
PERFORM cria_borda USING gs_cell1 gs_cell2 gs_cells.
* Preenche célula
PERFORM preenche_celula USING gs_cell1 1 3 0 12 texto.
ENDFORM. " PREENCHE_TITULO
*&---------------------------------------------------------------------*
*& Form SELECIONA_CELULA
*&---------------------------------------------------------------------*
FORM seleciona_celula USING linha
coluna
celula.
* Seleciona célula
CALL METHOD OF gs_excel 'Cells' = celula
EXPORTING
#1 = linha
#2 = coluna.
ENDFORM. " SELECIONA_CELULA
*&---------------------------------------------------------------------*
*& Form MESCLA_CELULAS
*&---------------------------------------------------------------------*
FORM mescla_celulas .
* Passa que é um intervalo entre estes dois campos.
CALL METHOD OF gs_excel 'Range' = gs_cells
EXPORTING
#1 = gs_cell1
#2 = gs_cell2.
* Mescla células do intevalos acima.
CALL METHOD OF gs_cells 'Merge' = gs_cells.
ENDFORM. " MESCLA_CELULAS
*&---------------------------------------------------------------------*
*& Form CRIA_BORDA
*&---------------------------------------------------------------------*
FORM cria_borda USING celula1
celula2
celula.
* Seleciona o intervalo de células
CALL METHOD OF gs_excel 'Range' = celula
EXPORTING
#1 = celula1
#2 = celula2.
* Cria borda e os valores de exportação são cor e intensidade.
CALL METHOD OF celula 'BorderAround'
EXPORTING
#1 = 1
#2 = 3.
ENDFORM. " CRIA_BORDA
*&---------------------------------------------------------------------*
*& Form PREENCHE_CELULA
*&---------------------------------------------------------------------*
FORM preenche_celula USING celula
bold
alinhamento
largura
tam
valor.
* Formata célula
GET PROPERTY OF celula 'Font' = gs_font.
SET PROPERTY OF gs_font 'Bold' = bold.
SET PROPERTY OF gs_font 'Size' = tam.
SET PROPERTY OF celula 'HorizontalAlignment' = alinhamento.
SET PROPERTY OF celula 'NumberFormat' = '@'.
* Preenche célula
SET PROPERTY OF celula 'Value' = valor.
ENDFORM. " PREENCHE_CELULA
*&---------------------------------------------------------------------*
*& Form SELECTS
*&---------------------------------------------------------------------*
FORM selects .
SELECT *
FROM sflight
INTO TABLE it_sflight
WHERE carrid = p_carrid
AND connid IN s_connid
AND fldate IN s_fldate
.
ENDFORM. " SELECTS
*&---------------------------------------------------------------------*
*& Form MONTA_LINHAS
*&---------------------------------------------------------------------*
FORM monta_linhas .
" 1ª coluna de dados da linha correspondente
PERFORM preenche_detalhe USING linha 1 0 0 7 3 st_sflight-carrid.
" 2ª coluna de dados da linha correspondente
PERFORM preenche_detalhe USING linha 2 0 0 7 3 st_sflight-connid.
" 3ª coluna de dados da linha correspondente
PERFORM preenche_detalhe USING linha 3 0 0 7 3 st_sflight-fldate.
" 4ª coluna de dados da linha correspondente
PERFORM preenche_detalhe USING linha 4 0 0 7 3 st_sflight-price.
" 5ª coluna de dados da linha correspondente
PERFORM preenche_detalhe USING linha 5 0 0 7 3 st_sflight-paymentsum.
ENDFORM. " MONTA_LINHAS
*&---------------------------------------------------------------------*
*& Form PREENCHE_DETALHE
*&---------------------------------------------------------------------*
FORM preenche_detalhe USING linha
coluna
bold
largura
tam
alinhamento
conteudo.
* Seleciona célula
PERFORM seleciona_celula USING linha coluna gs_cell1.
* Preenche célula
PERFORM preenche_celula USING gs_cell1 bold alinhamento
largura tam conteudo.
ENDFORM. " PREENCHE_DETALHE
*&---------------------------------------------------------------------*
*& Form GERA_LINHAS
*&---------------------------------------------------------------------*
FORM gera_linhas .
LOOP AT it_sflight INTO st_sflight.
" Cada registro da tabela será uma linha do excel.
linha = linha + 1.
PERFORM monta_linhas.
ENDLOOP.
ENDFORM. " GERA_LINHAS
*&---------------------------------------------------------------------*
*& Form ENCERRA_PLANILHA_EXCEL
*&---------------------------------------------------------------------*
FORM encerra_planilha_excel .
" Faz com que a planilha só aparece quando terminar de ser alimentada.
SET PROPERTY OF gs_excel 'ScreenUpdating' = 1.
" Libera os cara aee.
FREE OBJECT gs_sheet.
FREE OBJECT gs_workbook.
FREE OBJECT gs_excel.
ENDFORM. " ENCERRA_PLANILHA_EXCEL
ALV Editável / Atualização Tab. Transparente
* & Report Z_AFL_ALV_ATUALIZAVEL
* &
* & ------------------------------------------------ --------------------- *
* &
* &
* & ------------------------------------------------ --------------------- *
RELATÓRIO Z_AFL_ALV_ATUALIZAVEL.
* ALV Editável / Tab Atualização. Transparente
"Conjunto de TIPOS
TIPO-PISCINAS: SLIS.
"TIPOS
TIPOS:
COMEÇAR DE ty_selfield,
índice TYPE slis_selfield-tabindex,
FIM DO ty_selfield.
"Estruturas e Tabelas Internas
DATA:
it_out TYPE TABLE OF SFLIGHT,
st_out TIPO SFLIGHT,
it_index TYPE TABLE OF ty_selfield,
st_index TIPO ty_selfield.
"Estruturas e Tabelas intenas (ALV)
DATA:
it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
st_layout TIPO slis_layout_alv.
"fiels-símbolos
* O campo-símbolos:
* TIPO slis_fieldcat_alv.
START-OF-SELECTION.
"Faz o seleccionar da Tabela.
EXECUTAR: f_select,
"Mostra ALV com sistema operacional Dados
f_alv.
FIM DE SELEÇÃO.
* & ------------------------------------------------ --------------------- *
* & Form F_SELECT
* & ------------------------------------------------ --------------------- *
F_select FORM.
SELECIONE *
DE SFLIGHT
INTO TABLE it_out
ONDE carrid = 'AA'.
ENDFORM. "F_SELECT
* & ------------------------------------------------ --------------------- *
* & Form F_ALV
* & ------------------------------------------------ --------------------- *
F_alv FORM.
"Criação da Tabela Contendo como Informations dos Campos Que Serao mostrados não ALV
EXECUTAR: f_fieldcat,
"Criação da Estrutura Contendo Informations que fazer o layout ALV
f_layout.
"Criação fazer ALV
EXECUTAR: f_relatorio TABELAS it_fieldcat
it_out
UTILIZAÇÃO sy-repid
'F_SET_PF_STATUS'
'F_USER_COMMAND'
st_layout.
ENDFORM. "F_ALV
* & ------------------------------------------------ --------------------- *
* & Form F_FIELDCAT
* & ------------------------------------------------ --------------------- *
F_fieldcat FORM.
"Função de para trazer OS Dados dos Campos fazer ALV baseada n'uma Tabela transparente.
Função de chamada de 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTAÇÃO
i_structure_name = 'SFLIGHT'
MUDANÇA
ct_fieldcat = it_fieldcat
EXCEÇÕES
inconsistent_interface = 1
Program_Error = 2
OUTROS = 3.
IF sy-SUBRC <> 0.
MENSAGEM ID sy-msgid tipo de número sy-MSGTY sy-MSGNO
COM sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "F_FIELDCAT
* & ------------------------------------------------ --------------------- *
* & Form F_LAYOUT
* & ------------------------------------------------ --------------------- *
F_layout FORM.
st_layout-zebra = 'X'.
st_layout-colwidth_optimize = 'X'.
ENDFORM. "F_LAYOUT
* & ------------------------------------------------ --------------------- *
* & Form F_FUNCTION
* & ------------------------------------------------ --------------------- *
FORMULÁRIO f_relatorio TABELAS fieldcat
outtab
UTILIZAÇÃO repid
estado
comando
traçado
.
Função de chamada de 'REUSE_ALV_GRID_DISPLAY'
EXPORTAÇÃO
i_callback_program = repid
i_callback_pf_status_set = Estado
i_callback_user_command = comando
is_layout = disposição
it_fieldcat fieldcat = []
i_save = 'X'
TABELAS
t_outtab = outtab
EXCEÇÕES
Program_Error = 1
OUTROS = 2.
IF sy-SUBRC <> 0.
MENSAGEM ID sy-msgid tipo de número sy-MSGTY sy-MSGNO
COM sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "F_FUNCTION
* & ------------------------------------------------ --------------------- *
* & Form SET_PF_STATUS
* & ------------------------------------------------ --------------------- *
* Ajuste personalizado PF-Estado
* ------------------------------------------------- --------------------- *
* -> Mesa RT_EXTAB Excluindo
* ------------------------------------------------- --------------------- *
FORMULÁRIO DE USAR f_set_pf_status rt_extab TIPO slis_t_extab.
SET PF-STATUS 'Z_STANDARD'.
ENDFORM. "SET_PF_STATUS
* & ------------------------------------------------ --------------------- *
* & Form user_command
* & ------------------------------------------------ --------------------- *
* Códigos de função personalizado Manipulação
* ------------------------------------------------- --------------------- *
* -> Valor de código R_UCOMM Função
* -> RS_SELFIELD Info. da posição do cursor em ALV
* ------------------------------------------------- --------------------- *
FORMULÁRIO f_user_command USAR COMO vl_ucomm sy-ucomm
st_selfield TIPO slis_selfield.
"Declarações das Variáveis CRP
DATA:
it_out_temp TYPE TABLE OF SFLIGHT,
st_out_temp TIPO SFLIGHT,
it_fieldcat_temp TYPE TABLE OF slis_fieldcat_alv,
st_fieldcat_temp TIPO slis_fieldcat_alv.
BREAK-POINT.
"Verifica uma Ação Favoritos Looks Favoritos.
Vl_ucomm CASE.
"Caso o Looks Favoritos tenha selecionado hum Registro não ALV.
QUANDO 'e IC1.
* Trata fieldcat parágrafos corrediças abertas parágrafos Edição de Todos os campos EXCETO OS campos chaves
it_fieldcat_temp = it_fieldcat.
st_fieldcat_temp-edit = 'X'.
MODIFICAR it_fieldcat_temp DE st_fieldcat_temp
TRANSPORTE edição
ONDE ESTÁ chave inicial.
* Dados Trata do Registro selecionado.
Ler a tabela it_out INTO st_out
ÍNDICE st_selfield-tabindex.
APPEND st_out TO it_out_temp.
* Cria hum novo ALV usando o MESMO executar tão Que da SEM User_command e Com. Tabelas <>.
EXECUTAR: f_relatorio TABELAS it_fieldcat_temp
it_out_temp
UTILIZAÇÃO sy-repid
''
''
st_layout.
BREAK-POINT.
Não "Se o Botão 'SALVAR' para pressionado entao uma modificação Localidade: Não Ira serviços
"Atualizado na Tabela 'IT_OUT_TEMP'.
"Verifica O Primeiro (e Unico) Registro da Tabela
Ler a tabela it_out_temp INTO st_out_temp
ÍNDICE 1.
"Verifica se ESSE FOI Registro Modificado.
IF st_out_temp <> st_out.
"Atualiza com a Tabela interna como Informations modificadas
MODIFICAR it_out DE st_out_temp
ÍNDICE st_selfield-tabindex.
"Mover A Informação da Linha do Registro parágrafo UMA Estrutura Opaco aliemnta uma Tabela
MOVER st_selfield-tabindex TO st_index-index.
APPEND st_index TO it_index.
ENDIF.
"Muito Importante Este Comando POIs ISSO atualiza como alterações feitas na Tabela,
"Mostra e não ALV.
st_selfield-refresh = 'X'.
"Caso o Looks Favoritos tenha clicado no Botão" SALVAR ".
QUANDO "SAVE".
"Verifica se alteração Teve.
SE NÃO É it_index INICIAL.
LOOP AT it_index INTO st_index.
"Lê a principal Tabela não Informado Registro na Tabela de Registros modiicados.
Ler a tabela it_out INTO st_out
ÍNDICE st_index-index.
"Mover OS Dados da Estrutura Modificada parágrafo UMA Estrutura Temporária local.
Move-CORRESPONDENTE AO st_out st_out_temp.
"Alimenta UMA TABELA COM REGISTROS auxiliar OS ALTERADOS.
APPEND st_out_temp TO it_out_temp.
ENDLOOP.
"Usa uma Tabela alimentada com sistema operacional Registros Modificados e atualiza a Tabela transparente.
"Muito Cuidado EM USAR essas Coisas de atualizar, Incluir e excluir Dados de Tabelas
"Transparente.
MODIFICAR SFLIGHT DE TABELA it_out_temp.
MENSAGEM 'A Tabela SFLIGHT FOI alterada com Sucesso' TYPE 'S'.
"Caso nao Teve alteração - Mostra uma MENSAGEM
MAIS.
MENSAGEM 'A Tabela SFLIGHT Localidade: Não Teve alteração! TIPO 'W'.
ENDIF.
"Caso o Looks Favoritos tenha clicado no Botão 'SAIR' 'BACK' UO
QUANDO 'BACK' OR 'SAIR'.
Sair do programa.
"QUALQUÉR Outro Caso.
QUANDO OUTROS.
ENDCASE.
ENDFORM. "User_command