Mostrando postagens com marcador Dia-a-Dia. Mostrar todas as postagens
Mostrando postagens com marcador Dia-a-Dia. Mostrar todas as postagens

20260730

Debugar JOB (SM37)

Marcar o JOB 
Digitar JDBG na linha de comando e pressionar ENTER.
O debug começará automaticamente.



20260410

Botão - Planilha Modelo


* Tables
TABLES: sscrfields.

* Declaração do Botão
SELECTION-SCREEN: FUNCTION KEY 1.


* Initialization
INITIALIZATION.
  perform f_cria_botao.

* Manipualação do Botão
*----------------------
AT SELECTION-SCREEN.
 IF sy-ucomm = 'FC01'.
   perform f_gera_planilha.
 ENDIF.


*&---------------------------------------------------------------------*
*&      Form  F_CRIA_BOTAO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_CRIA_BOTAO .

*  Estrutura para descrever o botão
 DATA: wa_button TYPE smp_dyntxt.

*  Nome do Botão
 wa_button-text      = 'Planilha'.

*  Ícone do Botão
 wa_button-icon_id   = ICON_SET_COPY_IN_B.

*  Texto que aparecerá ao lado do ícone (pode ser vazio)
 wa_button-icon_text = 'Planilha modelo'.

*  Quickinfo (aparece quando o user passar o mouse sobre o botao)
 wa_button-quickinfo = 'Planilha para preenchimento'.

*  Associa essas propriedades com a função 1
 sscrfields-functxt_01 = wa_button.


ENDFORM.


*&---------------------------------------------------------------------*
*&      Form  F_GERA_PLANILHA
*----------------------------------------------------------------------*
FORM F_GERA_PLANILHA .

  FIELD-SYMBOLS: <fs_tab>   type ANY TABLE,
                 <wa_tab>   type any.
  data: lv_file      type string.

  data: lo_obj    TYPE REF TO zcl_util.
  CREATE OBJECT lo_obj.

* XXXXXX --> Nome da estrutura com os campos (coluna)
  DATA: w_dref TYPE REF TO data.
  CREATE DATA w_dref TYPE TABLE OF ('XXXXXX').
  ASSIGN w_dref->* TO <fs_tab>.

  CALL METHOD LO_OBJ->MATCHCODE_FOLDER_LOCAL
    RECEIVING
      R_FOLDER = lv_file .

* YYYYYY --> Nome do arquivo da planilha
  if lv_file is not initial.
    concatenate lv_file '\' 'YYYYYY.xlsx' into lv_file.
  endif.

  CALL METHOD LO_OBJ->SAVE_FILE_EXCEL
    EXPORTING
      I_PATH   = lv_file
      I_LOCAL  = 'X'
      I_STRUC  = 'XXXXXX'
      DATA_TAB = <fs_tab>  .

  MESSAGE s398(00) with 'Planilha gerada com sucesso'.

ENDFORM.





20260306

Ranges - Definição e preenchimento

  DATA: r_gjahr      TYPE RANGE OF bkpf-gjahr.

APPEND VALUE #( sign = 'I' option = 'BT' low = '2025' high = p_perio(4) ) TO r_gjahr.

20260104

Categoria de ampliação - Tabelas e Estruturas

Texto breve

Seleção da categoria de ampliação

Definição

As estruturas e tabelas definidas pela SAP no ABAP Dictionary, podem ser ampliadas posteriormente pelos clientes com ajuda de includes de customizing ou estruturas append.  As ampliações não se referem apenas às próprias estruturas/tabelas, mas também às estruturas dependentes que transferem a ampliação como include ou estrutura referenciada. As estruturas append que na estrutura de saída têm consequências apenas no final, podem dar origem a alterações nas estruturas dependentes, mesmo dentro destas estruturas.

A seleção de uma categoria de ampliação é necessária, uma vez que em programas sem verificação Unicode ativa, as ampliações de tabelas e de estruturas, principalmente nas verificações de tipo e em conjunto com estruturas profundas, podem originar erros de sintaxe e em tempo de execução.

Nos programas com verificação Unicode ativa, as atribuições, as verificações de operando e os acessos com offset e comprimento são problemáticos se, por exemplo, forem inseridos componentes numéricos ou profundos em uma estrutura meramente em forma de caractere e a estrutura perder, por isso, a sua forma de caractere.

Em função da definição de estrutura, os botões de rádio permitidos da caixa de diálogo estão prontos para entrada. Selecione uma das possíveis categorias de ampliação:

  • Não ampliável
    A estrutura não pode ser ampliada.
  • Ampliável e em forma de caractere
    Todos os componentes de estrutura e as respectivas ampliações devem ser em forma de caractere (C, N, D ou T). A estrutura de saída e todas as ampliações pelo include de customizing ou pelas estruturas append estão sujeitas a esta restrição.
  • Ampliável e em forma de caractere ou numérica
    A estrutura e a respectiva ampliação não pode conter tipos de dados profundos (tabelas, referências, cadeias).
  • Ampliável conforme pretendido
    A estrutura e a respectiva ampliação pode conter componentes, cujo tipo de dados é facultativo.
  • não classificado
    Esta categoria pode ser selecionada, por exemplo, para um status de transição, mas não ao criar estruturas.

Regras para a determinação da categoria de ampliação que resulta de modo implícito da estrutura e da classificação de tipos utilizados:

  • Se o objeto contiver pelo menos um tipo numérico ou uma subestrutura ou componente (o campo tem estrutura/tabela/visão como tipo) que é ampliável de modo numérico, o objeto já não é ampliável em forma de caractere, mas poderá ser ampliável em forma de caractere ou de modo numérico.
  • Se o objeto contiver um componente profundo (cadeia, referência ou tipo de tabela) ou uma subestrutura ou componente marcado como ampliável conforme pretendido, o próprio objeto é ampliável conforme pretendido.
  • Se o objeto não contiver nenhuma subestrutura ou componente marcada como ampliável, não é possível selecionar não ampliável. Se a estrutura ainda não tiver sido ampliada, a categoria não ampliável pode ser selecionada a qualquer momento .

Se forem criadas de novo tabelas e estruturas no ABAP Dictionary, é proposta a categoria ampliável conforme pretendido como valor padrão para a classificação das opções de ampliação. Se o desenvolvedor selecionar para uma estrutura uma classificação mais restrita como ampliável conforme pretendido, só são permitidos os níveis de classificação que respeitam as regras acima descritas. Não é possível selecionar para uma estrutura uma opção de ampliação que seja inferior (mais restrita) do que a classificação que resulta implicitamente da estrutura e da classificação dos tipos utilizados. Por isso, nas interfaces de atualização somente são propostas para a seleção as categorias permitidas.

Se uma estrutura depender de uma ou várias outras estruturas, será selecionada como classificação implícita a categoria mas pequena (na ordem: não ampliável < ampliável e em forma de caractere < ampliável e em forma de caractere ou numérica < ampliável conforme pretendido), que é superior ou igual às categorias de outras estruturas e também superior ou igual à categoria que resulta da estrutura real da própria estrutura.

Consulte também Categoria de ampliação de estruturas



20240307

Validação de Data

    call function 'DATE_CHECK_PLAUSIBILITY'
      exporting
        date                            = lv_dt
      EXCEPTIONS
        PLAUSIBILITY_CHECK_FAILED       = 1
        OTHERS                          = 2        .


20240306

READ TABLE (novo)

*****   Validação
     LOOP AT ... INTO WA.
        TRY.
          data(ls_ztbsd0027) = gt_ztbsd0027[ kostl = wa-kostl
                                             perio = wa-perio
                                             gjahr = wa-gjahr
                               ] .

        CATCH cx_sy_itab_line_not_found .
          gv_erro = abap_true.
          message s000(zlg) with 'Não existe valores para serem rateados'
                                 'rateados neste Centro de Custo' wa-kostl.
          return.

        ENDTRY.
      ENDLOOP.



20240201

TIMESTAMP com fuso horário errado...

Ajuste dessa maneira....

    Data: lv_date1     type sydatum,
          lv_time1     type syuzeit,
          lv_time      typ timestamp.

    GET TIME FIELD lv_time1.
    lv_date1 = sy-datum.
    lv_time = lv_date1 && lv_time1.

    write:/ lv_time.