domingo, 30 de septiembre de 2012

Bloquear una tabla completa


Para bloquear todos los registros de una tabla utilizar:

CALL FUNCTION'ENQUEUE_E_TABLE'
EXPORTING
  MODE_RSTABLE ='E'
  TABNAME ='ZNOMBRETABLA'
* VARKEY =
* X_TABNAME = ' '
* X_VARKEY = ' '
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
 EXCEPTIONS
   FOREIGN_LOCK = 1
   SYSTEM_FAILURE = 2
   OTHERS = 3
          .
IF sy-subrc = 0.
 WRITE: 'Lock table successfully!'.
 else.
  write: 'Failed'.
ENDIF.

Bloquear un registro de tabla VBAK


* Bloquea un registro de tabla VBAK
  CALL FUNCTION 'ENQUEUE_EVVBAKE'
    EXPORTING
      mode_vbak      = 'E'
      mandt          = sy-mandt
      vbeln          = p_vbeln
      x_vbeln        = ' '
      _scope         = '2'
      _wait          = ' '
      _collect       = ' '
    EXCEPTIONS
      foreign_lock   = 1
      system_failure = 2
      OTHERS         = 3.


* Desbloquea un registro de tabla VBAK
    CALL FUNCTION 'DEQUEUE_EVVBAKE'
      EXPORTING
        mode_vbak = 'E'
        mandt     = sy-mandt
        vbeln     = p_vbeln
        x_vbeln   = ' '
        _scope    = '3'
        _synchron = ' '
        _collect  = ' '.

Llamar a función en background


Para llamar a función en background.

data: w_tid  TYPE arfctid,
      w_fnum TYPE qretstate-qrfnum.


      CALL FUNCTION 'ZNOMBREFUNCION'
        IN BACKGROUND TASK
        EXPORTING
          i_incentivo = w_incentivo
          i_inc_act   = p_act1
          i_archivo   = p_file
        TABLES
          t_vbak      = t_vbak_back
          t_vbak_agru = t_vbak_agru_back
          t_liq       = u_liq_back.

      CALL FUNCTION 'START_OF_BACKGROUNDTASK'
        EXPORTING
          startdate = sy-datum
          starttime = sy-uzeit.

      CALL FUNCTION 'ID_OF_BACKGROUNDTASK'
        IMPORTING
          tid  = w_tid
          fnum = w_fnum.
      IF sy-subrc EQ 0.
        COMMIT WORK.
      ENDIF.

Y en los atributos de la función, Módulo de acceso remoto y inicio inmediato

Mensajes de error varios en una pantalla


data:
e_log        TYPE bapiret2,
t_log        TYPE bapiret2tab,

  CLEAR e_log.
  e_log-type    = 'S'.
  e_log-id      = 'ZZZZZ'.
  e_log-number  = 437.
  APPEND e_log TO t_log.

  CALL FUNCTION 'SUSR_DISPLAY_LOG'
    EXPORTING
      display_in_popup = abap_true
      log_title        = text-002
    TABLES
      it_log_bapiret2  = t_log[]
    EXCEPTIONS
      parameter_error  = 1
      OTHERS           = 2.

  IF NOT sy-subrc IS INITIAL.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

2 checkbox en una misma línea


SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 23(22) text-062, POSITION 20.
PARAMETERS: v_cm_mod AS CHECKBOX.

SELECTION-SCREEN: COMMENT 53(24) text-063, POSITION 50.
PARAMETERS: v_cm_sld AS CHECKBOX.
SELECTION-SCREEN END OF LINE.

Caja de texto en dynpro


Crear custom control en dynpro

 TYPES: BEGIN OF tp_text,
          line TYPE c LENGTH 120,
        END OF tp_text.


data:
v_container_104_1  TYPE REF TO cl_gui_custom_container,

v_ccontrol_104_1   TYPE scrfname VALUE 'CCCOMENTARIOS',
v_texto            TYPE REF TO cl_gui_textedit,
t_text             TYPE tp_ttext,
tp_ttext           TYPE STANDARD TABLE OF tp_text.

EN PAI:
FORM f_crea_contenedor_texto .

  DATA lw_line_length TYPE i VALUE 120.

* Crea contenedor y lo asocia con la DYNPRO
  CREATE OBJECT v_container_104_1
    EXPORTING
      container_name              = v_ccontrol_104_1
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.

  IF NOT sy-subrc IS INITIAL.
    MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*$ Crea  el Objeto EDITOR
  CREATE OBJECT v_texto
    EXPORTING
      wordwrap_mode          = cl_gui_textedit=>wordwrap_at_fixed_position
      wordwrap_position      = lw_line_length
      parent                 = v_container_104_1
    EXCEPTIONS
      error_cntl_create      = 1
      error_cntl_init        = 2
      error_cntl_link        = 3
      error_dp_create        = 4
      gui_type_not_supported = 5
      OTHERS                 = 6.

  IF NOT sy-subrc IS INITIAL.
    MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  IF v_actvt = '03' AND v_edit IS INITIAL.
    CALL METHOD v_texto->set_readonly_mode
      EXPORTING
        readonly_mode          = '1'
      EXCEPTIONS
        error_cntl_call_method = 1
        invalid_parameter      = 2.
  ELSE.
    CALL METHOD v_texto->set_readonly_mode
      EXPORTING
        readonly_mode          = '0'
      EXCEPTIONS
        error_cntl_call_method = 1
        invalid_parameter      = 2.
  ENDIF.

  CALL METHOD v_texto->set_toolbar_mode
    EXPORTING
      toolbar_mode           = cl_gui_textedit=>false
    EXCEPTIONS
      error_cntl_call_method = 1
      invalid_parameter      = 2
      OTHERS                 = 3.

  CALL METHOD v_texto->set_statusbar_mode
    EXPORTING
      statusbar_mode         = cl_gui_textedit=>false
    EXCEPTIONS
      error_cntl_call_method = 1
      invalid_parameter      = 2
      OTHERS                 = 3.


ENDFORM.                    " f_crea_contenedor_texto


EN PBO: fuera de todo
MODULE rescata_comentarios INPUT.
  CHECK sy-ucomm NE 'YPR9_NO'.                            
  IF NOT v_texto IS INITIAL.                              
    PERFORM f_rescata_dd_dynpro.
  ENDIF.                                                
ENDMODULE.                 " rescata_comentarios


FORM f_rescata_dd_dynpro .

  DATA: u_text TYPE tp_ttext,
        w_true TYPE i.

  CLEAR u_text[].
  w_true = 1.


  CALL METHOD v_texto->get_text_as_r3table
    IMPORTING
      table                  = u_text
    EXCEPTIONS
      error_dp               = 1
      error_cntl_call_method = 2
      error_dp_create        = 3
      potential_data_loss    = 4
      OTHERS                 = 5.
  .
  IF NOT sy-subrc IS INITIAL.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  t_text[] = u_text[].

ENDFORM.                    " f_rescata_dd_dynpro

-----
FORM f_recupera_comentarios .

  TYPES: tp_lines TYPE STANDARD TABLE OF tline.


  DATA: w_name  TYPE tdobname,
        u_line        TYPE tp_lines,
        x_line        TYPE tline,
        x_line_txt    TYPE tp_text.

  w_name = v_vbeln.

* Rescata comentarios
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      id                      = c_0002
      language                = c_s
      name                    = w_name
      object                  = c_vbbk
    TABLES
      lines                   = u_line
    EXCEPTIONS
      id                      = 1
      language                = 2
      name                    = 3
      not_found               = 4
      object                  = 5
      reference_check         = 6
      wrong_access_to_archive = 7
      OTHERS                  = 8.

  IF sy-subrc IS INITIAL.

    LOOP AT u_line INTO x_line.
      x_line_txt-line      = x_line-tdline.
      APPEND x_line_txt TO t_text.
      CLEAR  x_line_txt.
    ENDLOOP.

  ENDIF.

* Mueve el texto al Objeto Editor
  IF NOT t_text[] IS INITIAL.

    IF v_vehiculo_rasa = abap_true.

      CALL METHOD v_texto->set_enable
        EXPORTING
          enable            = abap_false
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.

      IF NOT sy-subrc IS INITIAL.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.


    ENDIF.

    CALL METHOD v_texto->set_text_as_stream
      EXPORTING
        text            = t_text
      EXCEPTIONS
        error_dp        = 1
        error_dp_create = 2
        OTHERS          = 3.

    IF NOT sy-subrc IS INITIAL.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
      sy-msgv3 sy-msgv4.
    ENDIF.

  ENDIF.

ENDFORM.                    " f_recupera_comentarios

Día laboral próximo


  CALL FUNCTION 'BKK_GET_NEXT_WORKDAY'
    EXPORTING
      i_date         = p_fecha
      i_calendar1    = 'SI'
    IMPORTING
      e_workday      = p_vto
    EXCEPTIONS
      calendar_error = 1
      OTHERS         = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

Averiguar en que transacción estamos


DATA w_dynpro TYPE sy-tcode.

  CALL METHOD cl_dynpro=>get_current_transaction
    RECEIVING
      transaction_name = w_dynpro.

  LEAVE TO TRANSACTION w_dynpro.

Crear un List box en pantalla


Para crear un list box en selection screen:

PARAMETERS: p_day TYPE char4 AS LISTBOX VISIBLE LENGTH 6 OBLIGATORY.

TYPE-POOLS: vrm.
DATA: l_sid TYPE  vrm_id,
      l_i_val TYPE vrm_values,
      l_val LIKE LINE OF l_i_val.

INITIALIZATION.
  l_sid = 'p_day'.
  l_val-key = '0'.
  l_val-text = 'SUN'.
  APPEND l_val TO l_i_val.

  l_val-key = '1'.
  l_val-text = 'MON'.
  APPEND l_val TO l_i_val.

  l_val-key = '2'.
  l_val-text = 'TUE'.
  APPEND l_val TO l_i_val.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id              = l_sid
      values          = l_i_val
    EXCEPTIONS
      id_illegal_name = 1
      OTHERS          = 2.
  IF sy-subrc = 0.

  ENDIF.


-----------------------------------------------------------------
Para crear un list box en una dynpro:

THE TOP INCLUDE:


TYPES: begin of stru_t161t,
               BSTYP type t161t-BSTYP,
               BSART type t161t-BSART,
               BATXT type BATXT,
            end of stru_t161t.

types : BEGIN OF STRU_TEXT,                "STRUCTURE FOR FUNCTION MODULE
             KEY(40) TYPE C,                       " FOR DROPDOWN BOX
             TEXT(80) TYPE C,
          END OF STRU_TEXT.

data : it_t161t type TABLE OF stru_t161t,
         wa_t161t type stru_t161t,
        it_text type  TABLE OF STRU_TEXT,
        wa_text type STRU_TEXT.

IN THE PBO:
MODULE STATUS_1000 OUTPUT.
SELECT
   BSTYP
   BSART
   BATXT
  into table it_t161t
  from t161t
  where bstyp = 'B'
    and SPRAS = 'E'.

clear wa_text.
refresh it_text.

  loop at it_t161t into wa_t161t.
     move wa_t161t-bsart to wa_text-key.
     move wa_t161t-batxt to wa_text-text.
    append wa_text to it_text.
  endloop.


  CALL FUNCTION 'VRM_SET_VALUES'
  EXPORTING
    ID                    = 'V_DRPDWN'  "'V_DRPDWN' is the screen name of the dropdown field
    VALUES                = it_text
EXCEPTIONS
  ID_ILLEGAL_NAME       = 1
  OTHERS                = 2
          .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE.                 " STATUS_1000  OUTPUT

Modificaciones en un documento buscarlas por tablas


    SELECT SINGLE changenr
      INTO w_changenr
      FROM cdhdr
      WHERE objectclas = 'VERKBELEG'
        AND objectid   = v_salesdocu "Numero de documento
        AND udate      = v_zfech_reg. "Fecha

    SELECT SINGLE value_old
      INTO w_contract_header_in-ord_reason
      FROM cdpos
      WHERE objectclas = 'VERKBELEG'
        AND objectid   = v_salesdocu
        AND changenr   = w_changenr
        AND fname      = 'AUGRU'. "Campo a buscar

Interlocutores de un documento


Para obtener el interlocutor de un documento, acceder a la tabla VBPA.
Ejemplo:
  SELECT SINGLE kunnr
    INTO w_kunnr
    FROM vbpa
   WHERE vbeln EQ v_doc_number
     AND parvw EQ 'AG'.

Crear un ENTER en tiempo de ejecución


  CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
    EXPORTING
      functioncode           = '=/00'
    EXCEPTIONS
      function_not_supported = 0
      OTHERS                 = 0.

Radiobuttons en un ALV


Para utilizar radiobuttons en un alv, se puede mostrar en una celda de ALV el dibujo de un radiobutton como icono y capturar cuando se presiona sobre el para cambiarlo por el icono del radiobutton presionado.
Ejemplo:


INCLUDE <icons>.

DATA: BEGIN OF it_alv_flight OCCURS 0,
       carrid TYPE sflight-carrid,
       connid TYPE sflight-connid,
       radio1(4),                            "Radio button
       radio2(4),
      END OF it_alv_flight.


En fieldcat:
wa_fcat-fieldname = 'RADIO2'.
wa_fcat-tabname = 'IT_ALV_FLIGHT'.
wa_fcat-seltext_l = 'RADIO2'.
  x_fieldcat-edit      = c_x.
  x_fieldcat-icon      = c_x.
  x_fieldcat-hotspot   = c_x.


A la celda asignarle de valor inicial:
x_alv-pedidos = icon_wd_radio_button_empty. "Radio no seleccionado


en creación de alv definir el evento:
  SET HANDLER lcl_event_receiver=>hotspot_click
              FOR og_grid1.


CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-DATA:
      md_cnt    TYPE i.

    CLASS-METHODS:
      handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
        IMPORTING
          e_row_id
          e_column_id
          es_row_no
          sender.

ENDCLASS.    


CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_hotspot_click.
* define local data
    FIELD-SYMBOLS:
      <ls_entry>    TYPE ty_s_sflight,
      <ld_fld>      TYPE ANY.

    READ TABLE gt_sflight ASSIGNING <ls_entry> INDEX es_row_no-row_id.
    CHECK ( <ls_entry> IS ASSIGNED ).

*   Set all radio buttons "unselected"
    <ls_entry>-button1 =  icon_wd_radio_button_empty.
    <ls_entry>-button2 =  icon_wd_radio_button_empty.
    <ls_entry>-button3 =  icon_wd_radio_button_empty.
    <ls_entry>-button4 =  icon_wd_radio_button_empty.

    ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE <ls_entry>
                                              TO <ld_fld>.
    IF ( <ld_fld> IS ASSIGNED ).
*     Set selected radio button "selected".
      <ld_fld> = icon_wd_radio_button.
    ENDIF.

*   Force PAI followed by refresh of table display in PBO
    CALL METHOD cl_gui_cfw=>set_new_ok_code
      EXPORTING
        new_code = 'DUMMY'
*      IMPORTING
*        RC       =
        .


  ENDMETHOD.                    "handle_hotspot_click

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION

Smartform signo de número a izquierda

Dentro de un smartform si queremos mostrar el signo de un número a la izquierda, en la ventana al momento de mostrar una variable utilizar:
&variable(<)&


Cantidad de caracteres de un string

Para obtener la cantidad de caracteres de un string utilizar:

data: v_cantidad type i,
v_texto(50) type c.
v_texto = 'Hola mundo'.

v_cantidad = STRLEN( v_texto ).

SAVE_TEXT y CREATE_TEXT


Ejemplo de utilización de grabación de texto standard, si ya existe el texto utiliza la función save_text para modificarlo, si no existe utiliza la función create_text para crearlo.

FORM f_guarda_comentarios.
  DATA: u_line   TYPE STANDARD TABLE OF tline,
        u_line_aux TYPE STANDARD TABLE OF tline,
        x_line   TYPE tline,
        x_text   TYPE tp_text,
        x_header TYPE thead,
        w_name   TYPE tdobname.
  CHECK NOT t_text[] IS INITIAL.
  REFRESH u_line.
  LOOP AT t_text INTO x_text.
    CLEAR x_line.
    x_line-tdline = x_text-line.
    APPEND x_line TO u_line.
  ENDLOOP.

  CHECK NOT u_line[] IS INITIAL.
  CHECK NOT v_vbeln IS INITIAL.

* Busca si ya existe el texto
  w_name = v_vbeln.

* Rescata comentarios
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      id                      = '0002'
      language                = 'S'
      name                    = w_name
      object                  = 'VBBK'
    TABLES
      lines                   = u_line_aux
    EXCEPTIONS
      id                      = 1
      language                = 2
      name                    = 3
      not_found               = 4
      object                  = 5
      reference_check         = 6
      wrong_access_to_archive = 7
      OTHERS                  = 8.
  IF sy-subrc NE 0.
* Crea texto
    CALL FUNCTION 'CREATE_TEXT'
      EXPORTING
        fid       = '0002'
        flanguage = sy-langu
        fname     = w_name
        fobject   = 'VBBK'
      TABLES
        flines    = u_line
      EXCEPTIONS
        no_init   = 1
        no_save   = 2
        OTHERS    = 3.
    IF sy-subrc NE 0.
      EXIT.
    ENDIF.
  ELSE.
    CLEAR x_header.
    x_header-tdname = w_name.
    x_header-tdid = '0002'.
    x_header-tdspras = sy-langu.
    x_header-tdobject = 'VBBK'.
    x_header-mandt = sy-mandt.

* Guarda texto
    CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        client   = sy-mandt
        header   = x_header
        savemode_direct = 'X'
      TABLES
        lines    = u_line
      EXCEPTIONS
        id       = 1
        language = 2
        name     = 3
        object   = 4
        OTHERS   = 5.
    IF sy-subrc <> 0.
      EXIT.
    ENDIF.
  ENDIF.
  CALL FUNCTION 'COMMIT_TEXT'.
ENDFORM.                    " F_GUARDA_COMENTARIOS

Obtener el nombre de los meses


Para obtener el listado de nombres de los meses utilizar la función:
CALL FUNCTION 'MONTH_NAMES_GET'
 EXPORTING
   language                    = sy-langu
* IMPORTING
*   RETURN_CODE                 =
  TABLES
    month_names                 = t_month
* EXCEPTIONS
*   MONTH_NAMES_NOT_FOUND       = 1
*   OTHERS                      = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

en la tabla interna t_month obtendremos el listado completo de los meses en el idioma sy-langu.

Signo menos a la izquierda

Para mover el signo menos de un número a la izquierda (ya que SAP utiliza por defecto el signo a la derecha). Utilizar la función:

CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
  CHANGING
    value = p_amount.
(donde p_amount es la variable que contiene el número con el signo que queremos modificar).

viernes, 25 de mayo de 2012

ABAP - Sacar el separador decimal


Para eliminar el separador decimal o el de miles.
Hay que directamente ingresar que lo remplace por espacio (realmente lo eliminara).

w_cant = '100.00'.
REPLACE ALL OCCURRENCES OF '.' IN w_cant WITH space.

despues de esta sentencia nos quedara:
w_cant = '10000'. "Todo junto y sin separador

ABAP - Sacar decimales de un número


Si queremos sacar los decimales, primero copiar los datos a una variable tipo char, luego hacer split para separar los datos por el . o la , segun corresponda.

data: w_cant(6)  type c,
      w_scrap(6) type c.

        SPLIT w_cant  AT '.' INTO w_cant w_scrap.

domingo, 13 de mayo de 2012

MMPV - Desplazar periodo MM


Con la transacción MMPV es posible desplazar el período MM.
Apareceran para ingresar los datos de:
from company: A041 (ingresar la sociedad que corrresponda)
to company: A041 (ingresar la sociedad que corrresponda)

periodo: 08 (número que se desea abrir)
fiscal year: 2011 (año del periodo)

X check and close period

x Allow neg. qties in prev. per.
x Allow neg. vals in prev. per.

sábado, 3 de marzo de 2012

Vista de actualización crearle una transacción

Para crearle una transacción a una vista de actualización de tablas, ir a la transacción: se93
trx: SM30
X Omitor imagen inicial
X Heredar propiedades GUI
nombre campo:
VIEWNAME poner nombre vista
UPDATE X

VF11 - Cancelar factura

Para cancelar una factura, utilizar la transacción VF11

Transacciones de un circuito de compras comun

Transacción VA01: crea pedido
Transacción VKM1: aprueba credito
Transacción VL01N: crea delivery / VL10A: creación delivery masivo
Transacción VF01: crea factura

MMAM - Modificar tipo de material

Para modificar el tipo de material a un material ya creado, hay que utilizar la transacción MMAM.
En la pantalla te pedirá que ingreses el material y el nuevo tipo de material que quieres que tenga.

MM01 - Para crear un material

Utilizar la transacción MM01 para crear un material, MM02 para modificar un material y MM03 para visualizar un material.

MMBE - Ver stock de un material

Para ver el stock de un material, utilizar la transacción MMBE

MB03 - Ver un movimiento de material

Con la transacción MB03 podemos ver el detalle de un movimiento de material. Previamente necesitamos averiguar el número de movimiento.

OB52 - Período contable FI

Para abrir un período contable FI utilizar la transacción: OB52

SM35 - Grabación de juegos de datos - batch-inputs

Con la transaccion SM35 se pueden crear o visualizar grabaciones de juegos de datos para utilizarlas por ejemplo para crear batch-inputs.




grabacion:



- grabacion nueva:



juevo de datos:



poner que no lo borre



- grabacion: poner el nombre



- codigo de transaccion: nombre de la transaccion



-- marco



--- programa

Cantidad de caracteres de un string

Para averiguar la cantidad de caracteres que contiene un string utilizar strlen.



data: x type i,


s(20) type c value 'Hola mundo'.


x = strlen(s).

Averiguar nombre y apellido de un usuario por medio de tablas

En la vista USER_ADDRP ingresando el nombre de usuario accederemos a la información de su nombre y apellido

Vista de actualización que no aparece actualizada

En vista de actualización, si se agrego campo a una tabla con vista y ya existia la vista, el campo nuevo no aparece.



Ir a la vista con la tabla en la transacción se11, actualización de tabla, y borrar la vista (marcar todos los checks),antes tomar nota del grupo de función y datos que pone), crearla de nuevo como si no hubiera existido nunca

Write máscara para mostrar un CUIT

WRITE v_cuit TO v_ct USING EDIT MASK '__-________-_'.

Selection screen dejar un renglón en blanco

selection-screen skip.

Varios radio button en el mismo renglon

SELECTION-SCREEN BEGIN OF BLOCK bl4 WITH FRAME TITLE text-bl4.
selection-screen: begin of line,
comment 1(16) 'Radio1'.
parameters: p_ambos radiobutton group rad.
selection-screen: comment 22(16) 'Radio2'.
parameters: p_ener radiobutton group rad.
selection-screen: comment 44(27) 'Radio3'.
parameters: p_telco radiobutton group rad.
selection-screen end of line.
SELECTION-SCREEN END OF BLOCK bl4.

SU53 - Para ver que permisos nos faltan

Cuando nos aparezca en pantalla un error de permisos, con el error en pantalla, ir a la transacción SU53 y nos aparecerá un listado de los permisos que necesitamos

Hacer un beep desde ABAP

Con el siguiente código ABAP se emitirá un sonido similar a un beep.

REPORT BEEP.
TYPE-POOLS: ole2.
DATA: return TYPE i,
sapinfo TYPE ole2_object.

DATA: BEGIN OF command,
command(12) TYPE c VALUE 'cmd /c echo ',
hex07(1) TYPE x VALUE '07',
END OF command.

*------------------------------------------------------*
START-OF-SELECTION.
CREATE OBJECT sapinfo 'SAPINFO' NO FLUSH.
CALL METHOD OF sapinfo 'EXEC' = return
EXPORTING
#1 = command
#2 = 0.
FREE sapinfo.

CG3Z - Copiar archivo de nuestra PC al servidor

Con la transacción CG3Z se puede copiar un archivo de nuestra PC al servidor, lógicamente hay que tener los permisos de escritura en la carpeta del servidor donde queremos copiar nuestro archivo. La transacción pedira la ruta origen del archivo (de nuestra PC) y la ruta del servidor donde queremos que copie el archivo.

CG3Y - Copiar archivo del servidor a la PC

Con la transacción CG3Y vamos a poder copiar un archivo alojado en el servidor en nuestra computadora. Es muy sencillo, basta con pasar la ruta completa de origen y la de destino. Y elegir el formato de transferencia que puede ser ASC o BIN.

AL11 Ver archivos y carpetas del servidor

Con la transacción AL11 se pueden ver las carpetas y archivos del servidor. Permitiendo a su vez descargar los archivos a la PC local

Archivos verifica si existe

DATA: vl_excel_file_exist,
vl_excel_lines TYPE i.

CALL FUNCTION 'DX_FILE_EXISTENCE_CHECK'
EXPORTING
filename = p_local
pc = 'X'
IMPORTING
file_exists = vl_excel_file_exist
EXCEPTIONS
rfc_error = 1
frontend_error = 2
no_authority = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'E' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.