Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
IP 177.140.152.215
Instancia: 41
ID: 000
Request - ID7K900634
No programa - Pretty Printer - configurar
Programa Calculadora:
_____________________________________________________________________________
_
*&--------------------------------------------------------------------
-*
*& Report ZCALCULADORA2601
*&
*&--------------------------------------------------------------------
-*
*& Descrição: Calculadora
*& Autor: Thais Jannuzzelli - Data: 26/08/2017
*&--------------------------------------------------------------------
-*
REPORT zcalculadora2601.
*Tela de SELEÇÃO:
SELECTION-SCREEN BEGIN OF BLOCK abap1 WITH FRAME TITLE text-t01.
PARAMETERS p_num1 TYPE i." TIPE 'I' - variável de numero inteiro"
PARAMETERS p_sinal TYPE c. " TIPE 'C' - variável tipo caracter"
PARAMETERS p_num2 TYPE i.
SELECTION-SCREEN END OF BLOCK abap1.
ENDCASE.
WRITE 'O Resultado é:'. "o que vai sair escrito acima do resultado"
WRITE vl_resultado. "resultado da variável resultado"
______________________________________________________________________
__
SE09
LIMU - Parcial
Consultar LOG de modificações em Tabelas (SCU3).
Tabela - ZAGENDA2601
Programa
REPORT zmaterial2601.
*&------------------------------------------------------------------
---*
*& Internal Tables
*&------------------------------------------------------------------
---*
TABLES mara. "tabela declarada devido ao comando select-options".
*&------------------------------------------------------------------
---*
*& Types
*&------------------------------------------------------------------
---*
TYPES: BEGIN OF ty_mara,
matnr TYPE mara-matnr,
mtart TYPE mara-mtart,
meins TYPE mara-meins,
brgew TYPE mara-brgew,
ntgew TYPE mara-ntgew,
END OF ty_mara.
*&------------------------------------------------------------------
---*
*& WorkArea
*&------------------------------------------------------------------
---*
DATA wa_mara TYPE ty_mara. "declarando a workarea
*&------------------------------------------------------------------
---*
*& Selection - Screen
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Start-of-Selection - Event
*&------------------------------------------------------------------
---*
START-OF-SELECTION.
*Seleciona Dados
SELECT matnr " 5 campos
mtart
meins
brgew
ntgew
FROM mara " da tabela mara
INTO TABLE ti_mara "ti = tabela interna, o sap tras sempre para
a tabela interna o resultado do select.
WHERE matnr IN s_matnr "IN para o select-options
AND meins = p_meins. " = para o parameters
*0 = Acho
*4 = não achou
*8 = tabela vazia
IF sy-subrc EQ 0.
ENDLOOP.
ENDIF.
TAREFA
*&------------------------------------------------------------------
---*
*& Report ZVENDAS2902
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa ZVendas - Curso ABAP
*& Autor: Marielena Silva - Data: 29.08.2017
*&------------------------------------------------------------------
---*
REPORT zvendas2902.
*&------------------------------------------------------------------
---*
*& Internal Tables
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Types
*&------------------------------------------------------------------
---*
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln, "Doc.vendas
erdat TYPE vbak-erdat, "Dt.criação
auart TYPE vbak-auart, "Tipo doc.vendas
gsber TYPE vbak-gsber, "Divisão
vsbed TYPE vbak-vsbed, "Condição exped.
END OF ty_vbak.
*&------------------------------------------------------------------
---*
*& WorkArea
*&------------------------------------------------------------------
---*
DATA wa_vbak TYPE ty_vbak. "declarando a workarea
*&------------------------------------------------------------------
---*
*& Selection - Screen
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Start-of-Selection - Event
*&------------------------------------------------------------------
---*
START-OF-SELECTION.
*Seleciona Dados
SELECT vbeln
erdat
auart
gsber
vsbed
FROM vbak
INTO TABLE ti_vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc EQ 0.
ENDLOOP.
ENDIF.
*&------------------------------------------------------------------
---*
*& Report ZMATERIAL2600
*&
*&------------------------------------------------------------------
---*
*& Descrição: Relatório de Materiais
*& Data: 26/08/2017 - Autor: Carlos Garcia - Modulo MM
*&------------------------------------------------------------------
---*
REPORT zmaterial2600 NO STANDARD PAGE HEADING LINE-SIZE 104 LINE-
COUNT 65.
*-------------------------------------------------------------------
---*
* Tables
*-------------------------------------------------------------------
---*
TABLES mara.
*-------------------------------------------------------------------
---*
* Types
*-------------------------------------------------------------------
---*
TYPES: BEGIN OF ty_mara,
matnr TYPE mara-matnr,
mtart TYPE mara-mtart,
meins TYPE mara-meins,
brgew TYPE mara-brgew,
ntgew TYPE mara-ntgew,
END OF ty_mara,
BEGIN OF ty_makt,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ty_makt.
*-------------------------------------------------------------------
---*
* WorkArea
*-------------------------------------------------------------------
---*
DATA: wa_mara TYPE ty_mara,
wa_makt TYPE ty_makt.
*-------------------------------------------------------------------
---*
* Internal Table
*-------------------------------------------------------------------
---*
DATA: ti_mara TYPE STANDARD TABLE OF ty_mara,
ti_makt TYPE STANDARD TABLE OF ty_makt.
*-------------------------------------------------------------------
---*
* Selection-Screen
*-------------------------------------------------------------------
---*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-m01.
SELECT-OPTIONS s_matnr FOR mara-
matnr. " Nº do material
PARAMETERS p_meins TYPE mara-
meins DEFAULT 'KG' OBLIGATORY. " Unidade de medida básica
SELECTION-SCREEN END OF BLOCK b1.
*-------------------------------------------------------------------
---*
* Top-of-Page - Event
*-------------------------------------------------------------------
---*
TOP-OF-PAGE.
WRITE: 'Material',
20 'Descrição',
61 'Tipo',
66 'UM',
76 'Peso Bruto',
92 'Peso Liquido'.
ULINE.
*-------------------------------------------------------------------
---*
* Start-of-Selection - Event
*-------------------------------------------------------------------
---*
START-OF-SELECTION.
IF sy-subrc NE 0.
MESSAGE text-m02 TYPE 'I'.
ENDIF.
SELECT matnr
maktx
FROM makt
INTO TABLE ti_makt
FOR ALL ENTRIES IN ti_mara
WHERE matnr = ti_mara-matnr
AND spras = sy-langu.
WRITE: / wa_mara-matnr,
wa_makt-maktx,
wa_mara-mtart,
wa_mara-meins,
wa_mara-brgew,
wa_mara-ntgew.
ENDLOOP.
*&------------------------------------------------------------------
---*
*& Report ZCOMPRAS0202
*&
*&------------------------------------------------------------------
---*
*& Descrição: Relatório de Compras
*& Data: 02/09/2017 - Autor: Marielena Silva - Modulo MM
*&------------------------------------------------------------------
---*
REPORT zcompras0202.
*-------------------------------------------------------------------
---*
* Tables
*-------------------------------------------------------------------
---*
TABLES ekpo.
*-------------------------------------------------------------------
---*
* Types
*-------------------------------------------------------------------
---*
TYPES: BEGIN OF ty_ekko,
ebeln TYPE ekko-ebeln,
bsart TYPE ekko-bsart,
ekgrp TYPE ekko-ekgrp,
END OF ty_ekko,
BEGIN OF ty_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
matnr TYPE ekpo-matnr,
END OF ty_ekpo,
BEGIN OF ty_alv,
ebeln TYPE ekko-ebeln,
bsart TYPE ekko-bsart,
ekgrp TYPE ekko-ekgrp,
ebelp TYPE ekpo-ebelp,
matnr TYPE ekpo-matnr,
END OF ty_alv.
*-------------------------------------------------------------------
---*
* WorkArea
*-------------------------------------------------------------------
---*
DATA: wa_ekko TYPE ty_ekko,
wa_ekpo TYPE ty_ekpo,
wa_alv TYPE ty_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
*-------------------------------------------------------------------
---*
* Internal Table
*-------------------------------------------------------------------
---*
DATA: ti_ekko TYPE STANDARD TABLE OF ty_ekko,
ti_ekpo TYPE STANDARD TABLE OF ty_ekpo,
ti_alv TYPE STANDARD TABLE OF ty_alv,
ti_fieldcat TYPE slis_t_fieldcat_alv.
*-------------------------------------------------------------------
---*
* Selection-Screen
*-------------------------------------------------------------------
---*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-c01.
SELECT-OPTIONS s_ebeln FOR ekpo-ebeln.
SELECTION-SCREEN END OF BLOCK b1.
*-------------------------------------------------------------------
---*
* Start-of-Selection - Event
*-------------------------------------------------------------------
---*
START-OF-SELECTION.
IF sy-subrc NE 0.
MESSAGE text-c02 TYPE 'I'.
ENDIF.
SELECT ebeln
bsart
ekgrp
FROM ekko
INTO TABLE ti_ekko
FOR ALL ENTRIES IN ti_ekpo
WHERE ebeln = ti_ekpo-ebeln.
wa_alv-ebeln = wa_ekko-ebeln.
wa_alv-bsart = wa_ekko-bsart.
wa_alv-ekgrp = wa_ekko-ekgrp.
wa_alv-ebelp = wa_ekpo-ebelp.
wa_alv-matnr = wa_ekpo-matnr.
APPEND wa_alv TO ti_alv.
ENDLOOP.
* Preenchimento do Fieldcat
REFRESH ti_fieldcat.
* Matnr
wa_fieldcat-col_pos = 1. " Posição da Coluna
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-ref_tabname = 'TI_ALV'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-just = 'L'.
wa_fieldcat-seltext_l = 'Documento de compras'(t01).
APPEND wa_fieldcat TO ti_fieldcat.
* MAKTX
wa_fieldcat-col_pos = 2. " Posição da Coluna
wa_fieldcat-fieldname = 'BSART'.
wa_fieldcat-ref_tabname = 'TI_ALV'.
wa_fieldcat-outputlen = 4.
wa_fieldcat-just = 'L'.
wa_fieldcat-seltext_l = 'Tipo de documento de compras'(t02).
APPEND wa_fieldcat TO ti_fieldcat.
* MTART
wa_fieldcat-col_pos = 3. " Posição da Coluna
wa_fieldcat-fieldname = 'EKGPR'.
wa_fieldcat-ref_tabname = 'TI_ALV'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-just = 'L'.
wa_fieldcat-seltext_l = 'Grupo de compradores'(t03).
APPEND wa_fieldcat TO ti_fieldcat.
* MEINS
wa_fieldcat-col_pos = 4. " Posição da Coluna
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-ref_tabname = 'TI_ALV'.
wa_fieldcat-outputlen = 5.
wa_fieldcat-just = 'L'.
wa_fieldcat-seltext_l = 'Nº item do documento de compra'(t04).
APPEND wa_fieldcat TO ti_fieldcat.
* BRGEW
wa_fieldcat-col_pos = 5. " Posição da Coluna
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-ref_tabname = 'TI_ALV'.
wa_fieldcat-outputlen = 18.
wa_fieldcat-just = 'R'.
wa_fieldcat-seltext_l = 'Material'(t05).
APPEND wa_fieldcat TO ti_fieldcat.
Request ID7K900580
O elemento de dados ZECARGO1123 não existia, dar dois cliques e seguir os passos para salvar
o elemento.
PS. Tipo de dados NUMC – tipo numérico com caract. CHAR – permite 0 no começo do número.
Ativar o elemento e salvar na request salvar e voltar para tabela.
A tabela deve ser ativada, porém para isso é necessário configurar as configurações técnicas!
APPLO – dados mestres – Marteriais, clientes, fornecedores
APPL2 – Customizing –
PS. Essa parte não funciona para tabelas Z, somente para standard!
PS. Nas tabelas standard cadastradas como ampliável em forma de caract ou número... podemos
adicionar um campo novo, sempre colocar com ZZ (Ex. ZZCONSUMODE – MARA)
Podemos ter um campo do tipo domínio. Usado quando temos opções de seleção, por exemplo,
MASCULINO ou FEMININO.
Dois cliques no nome do domínio, o sistema vai abrir a tela de cadastro de domínio.
PS. Ao usar um campo do tipo CURR, entrar na aba CAMPOS MOEDA/QUANITDADE e preencher
os campos TABELA REFENRECIA e CAMPO REFERENCIA.
IP – 179.228.113.45
06
000
Os campos grupo de autorizações, grupo de função são usados pelo BASIS e FUNCIONAL
Apagando visão.
2.3 SE93 - Criar transação para a visão da tabela (SM30)
Acessar a SE93
Selecionar a opção “Transação com parametros”
Preencher a s opções:
Transação – SM30
Selecionar a opção IGNORAR 1ª TELA (Para pular a tela inicial da SM30)
VIEWNAME = Nome da view que o usuário deve acessar
UPDATE = X ou SHOW = X
RFC ou função remota – função que deve ser acessada fora do SAP –selecionar a opção Módulo
de acesso remoto! Ps. Na aba Importação os parâmetros “Transferência de valor” precisam estar
marcados.
Preencher primeiro a parte de seleção e depois chamar a função clicando no botão MODELO.
Ps. Toda função que tiver uma exceção deve ser tratada!
*&------------------------------------------------------------------
---*
*& Report ZFUNCAO1423
*&
*&------------------------------------------------------------------
---*
*& Descrição: Prgrama Modelo de Função
*& Data: 14.08.2017 - Autor: Marielena Silva
*&------------------------------------------------------------------
---*
REPORT zfuncao1423.
*-------------------------------------------------------------------
---*
* Selection Screen
*-------------------------------------------------------------------
---*
SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME TITLE text-t00.
PARAMETERS: p_ult RADIOBUTTON GROUP g1,
p_sem RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b0.
IF p_ult = 'X'.
IF sy-subrc = 1.
MESSAGE 'Não é uma data' TYPE 'I'.
ELSEIF sy-subrc = 2.
MESSAGE 'Erro na função' TYPE 'I'.
ELSE.
WRITE: 'O ultimo dia do mês é: ',
vl_ult_dia.
ENDIF.
ELSE.
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = p_data2
IMPORTING
weekday = vl_dia_sem.
6 Criar FUNÇÃO Z
Criar grupo de função na SE80
Já aparece no código fonte... Porém é necessário criar a verificação (Dentro do código IF).
TESTE
Ao executar o sistema retorna uma exceção DATA2_MENOR, a função não exibe a mensagem
do erro. O programa que vai tratar as mensagens!
Para chamar essa função dentro de um programa:
Na SE38, criar o programa como tipo executável e começar a digitar o código abaixo.
*&------------------------------------------------------------------
---*
*& Report ZFUNCAO1523
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa Modelo de Função
*& Data: 15.08.2017 - Autor: Marielena Silva
*&------------------------------------------------------------------
---*
REPORT zfuncao1523.
*-------------------------------------------------------------------
---*
* Selection Screen
*-------------------------------------------------------------------
---*
SELECTION-SCREEN BEGIN OF BLOCK bloco1 WITH FRAME TITLE text-t01.
PARAMETERS: p_data1 TYPE sy-datum,
p_data2 TYPE sy-datum.
SELECTION-SCREEN END OF BLOCK bloco1.
*-------------------------------------------------------------------
---*
* START-OF-SELECTION
*-------------------------------------------------------------------
---*
START-OF-SELECTION.
Salvar e ativar
Voltar na SE37, na sua função e alterar o campo destacado abaixo para a estrutura que criamos.
Função usando tabela como entrada
Para usar o campo CHANGE (Modificação dentro da função)
8 Construir classe – SE24
Para entrar no código, clicar na folhinha ou dois cliques no método.
Criar programa para chamar o método – SE38
*&------------------------------------------------------------------
---*
*& Report ZCLASSE1523
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa Modelo de Função
*& Data: 15.08.2017 - Autor: Marielena Silva
*&------------------------------------------------------------------
---*
REPORT zclasse1523.
*-------------------------------------------------------------------
---*
* Selection Screen
*-------------------------------------------------------------------
---*
SELECTION-SCREEN BEGIN OF BLOCK bloco1 WITH FRAME TITLE text-t01.
PARAMETERS: p_data1 TYPE sy-datum,
p_data2 TYPE sy-datum.
SELECTION-SCREEN END OF BLOCK bloco1.
*-------------------------------------------------------------------
---*
* START-OF-SELECTION
*-------------------------------------------------------------------
---*
START-OF-SELECTION.
BADI = METHOD
BAPI = MF
9 Module Pool ou On-line
Exemplo MM01, MM02 e MM03 usam o mesmo programa o que muda é a transação
Podemos perceber que temos o PBO (Process before output) + TELA + PAI (Process After Input)
Criar:
SE80
Dar dois cliques no nome de cada INCLUDE e salvar
Ps. Se esta azul é pq está inativo! Para ativar entrar um por um e ativar ou clicar botão direito
em cima do PROGRAMA e ATIVAR...
Tudo que for colocado entre aspas e n for uma mensagem pro usuário deve ser em maiúsculo.
Agora ao botão está ativo, porém sem código portanto ao clicar nele não acontece NADA.
Para funcionar esse botão tenho que colocar o código dentro do PAI da tela 0100.
Ao clicar em INCLUSAO/ALTERAÇÃO abrir a tela 0200 e ao clicar em CONSULTA abrir a tela 0300.
Ao fazer isso ainda não funciona porque não parametrizamos as telas 0200 e 0300. Vamos
começar com a 0200.
INSERT
UPDATE
DELETE
MODIFY – Funciona usando o insert e o update ao mesmo tempo, caso o código já exista ele
atualiza, senão ele inseri.
Antes de ativar, é necessário ir para o include TOP e colocar a linha TABLES abaixo.
Ps. Caso vc tenha mudado o nome dos campos no layout deve-se usar a linha que esta
comentada.
Para salvar os dados no banco de dados – comando COMMIT WORK... sem isso fica salvo na
memória.
O ideal seria usar uma classe de mensagem, que pode ser vista na SE91
Vamos fazer a mensagem dentro de uma classe.
Nesse caso, o sistema salva as informações no banco, exibe a mensagem e já apaga os dados.
Dois cliques no campo desejado, na aba programa opção entrada como REQUIRED.
No SAP usamos intervalo de numeração e uma função que pega o valor de lá, porém na
nossa aplicação vamos usar o SELECT MAX
Quando altero um cadastro deverá exibir a mensagem de dados alterados com sucesso.
Alterar a descrição do título ao criar e alterar.
Alinhar campo a direita
Dentro do layout, dois cliques no campo e na aba de propriedades clicar na opção alinhar a
direita.
SE11
Ativar e requeste.
No LAYOUT da tela.. dois cliques no campo.. e preencher no campo ajuda de pesquisa o nome
da ajuda que criamos na SE11.
A outra maneira de colocar ajuda de pesquisa, é dentro da SE11 entrando na tabela como
modificar, na aba abaixo.
Tela 0300 – CONSULTA
10 Batch-input
Se11
O SHDB usa como base o BDCDATA.
Chamar a função
Declarar a tabela ti_user dentro do include TOP.
*&------------------------------------------------------------------
---*
*& Report ZBATCH_INPUT2123_USER
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa de Batch-input
*& Autor: Marielena Silva Data: 21/08/2017
*&------------------------------------------------------------------
---*
REPORT zbatch_input2123_user.
INCLUDE zbatch_input2123_user_top.
*&------------------------------------------------------------------
---*
*& SELECTION-SCREEN
*&------------------------------------------------------------------
---*
IMPORTING
FULLPATH = p_file.
*&------------------------------------------------------------------
---*
*& Start-of-selection
*&------------------------------------------------------------------
---*
START-OF-SELECTION.
*Carrega arquivo para SAP no formato de tabela interna.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
tables
data_tab = ti_user
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE E003(ZMSG1723).
ENDIF.
*Le os dados importado pelo SAP.
LOOP at ti_user into wa_user.
WRITE / wa_user.
ENDLOOP.
Apagar a impressão da tabela e criar o batch-input.
PROGRAMA
*&------------------------------------------------------------------
---*
*& Report ZBATCH_INPUT2123_USER
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa de Batch-input
*& Autor: Marielena Silva Data: 21/08/2017
*&------------------------------------------------------------------
---*
REPORT zbatch_input2123_user.
INCLUDE zbatch_input2123_user_top.
*&------------------------------------------------------------------
---*
*& SELECTION-SCREEN
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Start-of-selection
*&------------------------------------------------------------------
---*
START-OF-SELECTION.
*Carrega arquivo para SAP no formato de tabela interna.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
TABLES
data_tab = ti_user
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE e003(zmsg1723).
ENDIF.
*Le os dados importado pelo SAP.
LOOP AT ti_user INTO wa_user.
IF wa_message-msgtyp = 'S'.
WRITE: /3 icon_green_light AS ICON,
vg_texto.
ELSE.
WRITE: /3 icon_red_light AS ICON,
vg_texto.
ENDIF.
CLEAR wa_message.
ENDLOOP.
*&------------------------------------------------------------------
---*
*& Form F_PREENCHE_BDCDATA
*&------------------------------------------------------------------
---*
* text
*-------------------------------------------------------------------
---*
* --> p1 text
* <-- p2 text
*-------------------------------------------------------------------
---*
FORM f_preenche_bdcdata USING: p1 p2 p3.
IF p1 = 'X'.
wa_bdcdata-program = p2.
wa_bdcdata-dynpro = p3.
wa_bdcdata-dynbegin = p1.
APPEND wa_bdcdata TO ti_bdcdata.
ELSE.
wa_bdcdata-fnam = p2.
wa_bdcdata-fval = p3.
*&------------------------------------------------------------------
---*
*& Structure / Types
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& WorkArea
*&------------------------------------------------------------------
---*
DATA: wa_user TYPE ty_user,
wa_bdcdata TYPE bdcdata,
wa_params TYPE ctu_params,
wa_message TYPE bdcmsgcoll.
*&------------------------------------------------------------------
---*
*& Internal Table
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Variablle
*&------------------------------------------------------------------
---*
DATA vg_texto TYPE string.
BATCH_INPUT para cadastrar usuários usando nosso programa Z e recebendo as informações
de um arquivo CSV
*&------------------------------------------------------------------
---*
*& Report ZBATCH_INPUT2223_FUNC
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa de Batch-input
*& Autor: Marielena Silva Data: 21/08/2017
*&------------------------------------------------------------------
---*
REPORT zbatch_input2223_func.
INCLUDE zbatch_input2223_func_top.
*&------------------------------------------------------------------
---*
*& SELECTION-SCREEN
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Start-of-selection
*&------------------------------------------------------------------
---*
START-OF-SELECTION.
*Carrega arquivo para SAP no formato de tabela interna.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
TABLES
data_tab = ti_csv
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE e003(zmsg1723).
ENDIF.
*Le os dados importado pelo SAP.
LOOP AT ti_csv INTO wa_csv.
IF wa_message-msgtyp = 'S'.
WRITE: /3 icon_green_light AS ICON,
vg_texto.
ELSE.
WRITE: /3 icon_red_light AS ICON,
vg_texto.
ENDIF.
CLEAR wa_message.
ENDLOOP.
*&------------------------------------------------------------------
---*
*& Form F_PREENCHE_BDCDATA
*&------------------------------------------------------------------
---*
* text
*-------------------------------------------------------------------
---*
* --> p1 text
* <-- p2 text
*-------------------------------------------------------------------
---*
FORM f_preenche_bdcdata USING: p1 p2 p3.
IF p1 = 'X'.
wa_bdcdata-program = p2.
wa_bdcdata-dynpro = p3.
wa_bdcdata-dynbegin = p1.
APPEND wa_bdcdata TO ti_bdcdata.
ELSE.
wa_bdcdata-fnam = p2.
wa_bdcdata-fval = p3.
*&------------------------------------------------------------------
---*
*& Include ZBATCH_INPUT2223_FUNC_TOP
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Structure / Types
*&------------------------------------------------------------------
---*
NOME(40) TYPE c,
DTADM(10) TYPE c,
DTNASC(10) TYPE c,
CARGO(3) TYPE c,
DEPTO(3) TYPE c,
SALAR(13) TYPE n,
MOEDA(3) TYPE c,
DEPEN(2) TYPE c,
RUA(40) TYPE c,
BAIRR(20) TYPE c,
CIDAD(20) TYPE c,
CEP(10) TYPE c,
UF(2) TYPE c,
PAIS(2) TYPE c,
END OF ty_func,
*&------------------------------------------------------------------
---*
*& WorkArea
*&------------------------------------------------------------------
---*
DATA: wa_func TYPE ty_func,
wa_csv TYPE ty_csv,
wa_bdcdata TYPE bdcdata,
wa_params TYPE ctu_params,
wa_message TYPE bdcmsgcoll.
*&------------------------------------------------------------------
---*
*& Internal Table
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Variablle
*&------------------------------------------------------------------
---*
DATA vg_texto TYPE string.
11 BAPI
Na transação BAPI encontra com a BAPI que precisamos usar, dai vamos na SE37 e testamos a
BAPI
Criar programa ZBAPI_2223_USER
*&------------------------------------------------------------------
---*
*& Report ZBAPI_2223_USER
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa de Batch-input
*& Autor: Marielena Silva Data: 21/08/2017
*&------------------------------------------------------------------
---*
REPORT zbapi_2223_user.
INCLUDE zbatch_input2123_user_top.
*&------------------------------------------------------------------
---*
*& SELECTION-SCREEN
*&------------------------------------------------------------------
---*
*&------------------------------------------------------------------
---*
*& Start-of-selection
*&------------------------------------------------------------------
---*
START-OF-SELECTION.
*Carrega arquivo para SAP no formato de tabela interna.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
TABLES
data_tab = ti_user
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE e003(zmsg1723).
ENDIF.
wa_address-department = wa_user-depto.
wa_addressx-department = 'X'.
IF wa_return-type = 'S'.
WRITE: /3 icon_green_light AS ICON,
wa_return-message(100).
ELSE.
WRITE: /3 icon_red_light AS ICON,
wa_return-message(100).
ENDIF.
ENDLOOP.
*&------------------------------------------------------------------
---*
*& Form F_PREENCHE_BDCDATA
*&------------------------------------------------------------------
---*
* text
*-------------------------------------------------------------------
---*
* --> p1 text
* <-- p2 text
*-------------------------------------------------------------------
---*
FORM f_preenche_bdcdata USING: p1 p2 p3.
IF p1 = 'X'.
wa_bdcdata-program = p2.
wa_bdcdata-dynpro = p3.
wa_bdcdata-dynbegin = p1.
APPEND wa_bdcdata TO ti_bdcdata.
ELSE.
wa_bdcdata-fnam = p2.
wa_bdcdata-fval = p3.
Entra na transação, acessa o debug e realiza a ação. No nosso caso, o exemplo é a MM02,
dados básicos 1, /H e salvar.
Avançar
Pressionar F8.
APERTAR F8
Pressionar F5
Botão direito
Clica em declaração
Preencher o código
ATIVAR
OS. EXIT não podemos colocar COMMIT WORK. A SAP não permite fazer isso no STANDARD.
REPORT ZMEMORIA01_23.
VL_RESULT1 = VL_RESULTADO.
*Memoria SAP
SET PARAMETER ID 'Z2323' FIELD VL_RESULT1.
WRITE 'ACABOU'.
REPORT ZMEMORIA02_23.
"Pegar variavel!
GET PARAMETER ID 'Z2323' FIELD vl_result.
WRITE: VL_RESULT,
P_NOME.
REPORT ZMEMORIA01_23.
VL_RESULT1 = VL_RESULTADO.
*Memoria SAP
SET PARAMETER ID 'Z2323' FIELD VL_RESULT1.
*Memoria ABAP
EXPORT VL_NOME TO MEMORY ID 'ZMAT1'.
SUBMIT ZMEMORIA02_23 WITH P_NOME = 'MARIELENA' AND RETURN. "Para cha
mar um novo programa.
WRITE 'ACABOU'.
*&------------------------------------------------------------------
---*
*& Report ZMEMORIA02_23
*&
*&------------------------------------------------------------------
---*
*& Programa de memoria - Impressão
*&
*&------------------------------------------------------------------
---*
REPORT ZMEMORIA02_23.
"Pegar variavel!
GET PARAMETER ID 'Z2323' FIELD vl_result.
*Impressao SAP
WRITE: VL_RESULT,
P_NOME.
*Impressao ABAP
WRITE: VL_ABAP.
15 Relatório de stoque
*&------------------------------------------------------------------
---*
*& Report ZESTOQUE2423
*&
*&------------------------------------------------------------------
---*
*& Descrição: Programa de Estoque
*& Autor: Mari - Data: 24/08/2017
*&------------------------------------------------------------------
---*
INCLUDE zestoque2423_top.
*&------------------------------------------------------------------
---*
* Selection-Screen
*&------------------------------------------------------------------
---*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS: s_matnr FOR mara-matnr,
s_werks FOR mard-werks,
s_lgort FOR mard-lgort.
SELECTION-SCREEN END OF BLOCK b1.
*&------------------------------------------------------------------
---*
* Sart-of-selection
*&------------------------------------------------------------------
---*
START-OF-SELECTION.
PERFORM f_selecao_dados.
IF ti_mara IS INITIAL.
MESSAGE 'Dados não encontrados'(001) TYPE 'I'.
ENDIF.
PERFORM f_impressao_dados.
*&------------------------------------------------------------------
---*
* FORM F_SELECAO_DADOS
*&------------------------------------------------------------------
---*
* Seleciona dados
*&------------------------------------------------------------------
---*
FORM f_selecao_dados.
SELECT matnr
FROM mara
INTO TABLE ti_mara
WHERE matnr IN s_matnr.
IF sy-subrc EQ 0.
SELECT matnr
maktx
FROM makt
INTO TABLE ti_makt
FOR ALL ENTRIES IN ti_mara
WHERE matnr = ti_mara-matnr
AND spras = sy-langu.
SELECT matnr
werks
lgort
labst
FROM mard
INTO TABLE ti_mard
FOR ALL ENTRIES IN ti_mara
WHERE matnr = ti_mara-matnr
AND werks IN s_werks
AND lgort IN s_lgort.
ENDIF.
ENDFORM.
*&------------------------------------------------------------------
---*
*& Form F_IMPRESSAO_DADOS
*&------------------------------------------------------------------
---*
* Impressão dos dados
*-------------------------------------------------------------------
---*
FORM f_impressao_dados .
AT NEW matnr.
READ TABLE ti_makt INTO wa_makt WITH KEY matnr = wa_mard-matnr
BINARY SEARCH.
ENDAT.
AT END OF MATNR.
SUM.
ULINE.
WRITE: 01 '|',
21 'Total por Deposito',
84 '|',
wa_mard-labst COLOR COL_TOTAL,
104 '|'.
ULINE.
ENDAT.
ENDLOOP.
ENDFORM. " F_IMPRESSAO_DADOS
16 BADI
http://abap101.com/2009/01/05/descobrindo-e-implementando-badis/
http://j-nilson.blogspot.com.br/2011/10/implementar-badi-exemplo-migo.html