:::: MENU ::::

este blog tiene como objetivo de compartir los conocimientos prácticos de cada lenguaje de programación más conocidos.

  • Lo mejor está por suceder

  • Easy to Customize

  • Customizable fonts.

miércoles, 30 de octubre de 2013

FUNCIONES - SE37
DESCRIPCION

ALV
HR_DISPLAY_BASIC_LIST
ALV
REUSE_ALV_GRID_DISPLAY
ALV
REUSE_ALV_HIERSEQ_LIST_DISPLAY
ALV Jerarquico. Ej: Para separar catidades normales y totales
REUSE_ALV_LIST_DISPLAY
ALV
UNIDADES
CONVERSION_EXIT_CUNIT_INPUT
Convierte unidades de SAP en su formato correcto.
CONVERSION_EXIT_CUNIT_OUTPUT
Convierte unidades de SAP en su formato correcto.
SUBIDAS
Y
BAJADAS
DE
FICHEROS
WS_DOWNLOAD
Baja ficheros de SAP a un EXCEL TXT ...
WS_UPLOAD
Carga de datos de un fichero plano a SAP.
TABLE_EXPORT_TO_MSACCESS
Bajar una lista a ACCESS
WS_EXCEL
Para bajar una tabla a excel
ALSM_EXCEL_TO_INTERNAL_TABLE
Carga datos de un Excel a una tabla interna de SAP.
GUI_DOWNLOAD
Graba en un fichero local el contenido de una tabla interna.
GUI_UPLOAD
Carga fichero local a una tabla interna.
GUI_DELETE_FILE
Borra fichero local.
FECHAS
CONVERSION_EXIT_LDATE_OUTPUT
Para 20000101, esta devuelve 01.Enero.2000.
CONVERSION_EXIT_SDATE_OUTPUT
Para 20000101, esta devuelve 01.ENE.2000.
RH_GET_DATE_DAYNAME
Obtiene el nombre del día.
CONVERSION_EXIT_PDATE_OUTPUT
Convierte la fecha de aaaammdd --->ddmmaaaa
CONVERSION_EXIT_PDATE_INPUT
Convierte cualquier fecha en fecha con formato SAP
HR_SGPBS_YRS_MTHS_DAYS
Calcula el nº de días, meses, años que hay entre dos fechas
DATE_GET_WEEK
Devuelve el nº de semana en que cae una fecha dada
RP_LAST_DAY_OF_MONTHS
Le das una fecha y te dice el último día de ese mes.
CONVERT_DATE_TO_EXTERNAL
Cambia el formato de:ddmmaaaa --> dd.mm.aaaa
CONVERT_DATE_TO_INTERNAL
Cambia el formato de:dd.mm.aaaa --> aaammdd
C14B_ADD_TIME
Suma tiempo devolviendo día y hora
COMPUTE_YEARS_BETWEEN_DATES
Calcula el nº de años entre dos fechas
DAYS_BETWEEN_TWO_DATES
Días entre dos fechas
MONTH_NAMES_GET
Recupera todos los meses y sus nombres en el idioma seleccionado
MONTH_PLUS_DETERMINE
Calcula el mes que resulta de sumar (o restar) un número de meses a una fecha
HR_E_NUM_OF_DAYS_OF_MONTH
Le das una fecha y te dice el último día de ese mes.
DATE_CONVERT_TO_FACTORYDATE
Si metes una fecha en día festivo te la pasa al día siguiente.
CALCULATE_DATE
Suma número de días a una fecha
DAY_IN_WEEK
Te dice el dia de la semana en número. '01' Lunes, '02' Martes, etc…
RP_CHECK_DATE
Chequea si el formato de fecha es correcto
DATE_CONVERT_TO_FACTORYDATE
Calendar function: Returns factory calendar date for a date
DATE_COMPUTE_DAY
Returns weekday for a date
FACTORYDATE_CONVERT_TO_DATE
Calendar function: Returns date for a factory calendar date
F4_DATE
Visualizar calendario para ayuda F4.
POPUP_TO_SELECT_MONTH
Sale un Popup para seleccionar un mes y año
MONTH_NAMES_GET
Nombre mes
DATE_CONVERT_TO_FACTORYDATE
Para obtener el próximo día laborable de una fecha
ADD_TIME_TO_DATE
Le restas / sumas:D = días; M = mes; etc....A una fecha.
TV_GO_BACK_N_DAYS
Le resta dias a una fecha
SD_DATETIME_DIFFERENCE
Devuelve el intervalo que existe entre dos parametros de tipo FECHA y HORA
POPUP
POPUP_TO_CONFIRM
Popup para poner lo que quieras…
POPUP_TO_CONFIRM_STEP
Te sugiere si quieres continuar 'Si', 'No', 'Cancelar'.
POPUP_TO_CONFIRM_WITH_MESSAGE
Como las anteriores pero te deja escribir mas líneas en el Popup
POPUP_TO_MODIFY_TEXT
Como la anterior pero tb te deja poner un valor.
POPUP_TO_INFORM
Como su propio nombre indica.
POPUP_GET_VALUES
Recoge textos en un POPUP, para insertar en tablas etc...
POPUP_TO_GET_ONE_VALUE
Sale un POPUP en el que puedes meter un texto e insertarlo
TH_POPUP
Envía un POPUP al usuario que mandes
POPUP_DISPLAY_MESSAGE
POPUP para mensajes de ERROR
TERM_CONTROL_EDIT
Super > POPUP que te permite escribir un texto muyyyyy largo….
POPUP_TO_DISPLAY_TEXT
Popup de recordatorio con boton de 'Continuar'
POPUP_TO_DECIDE_LIST
Dentro del popup tiene radiobutons para elegir opciones.
HELP_DOCULINES_SHOW
Mega POPUP para escribir textos muy largos del tipo Información
CONVERSION
CONVERSION_EXIT_ALPHA_OUTPUT
Quita los ceros por delante cuando son nº, si es texto no lo quita
CONVERSION_EXIT_ALPHA_INPUT
Rellena con ceros por delante cuando son nº, si es texto no lo rellena
VARIOS
MD_CONVERT_MATERIAL_UNIT
Agrupa materiales y pasa de PAL a CS o BOT, según se indique.
CLAF_CLASSIFICATION_OF_OBJECTS
Para sacar la clasificacion de los materiales
MM_ADDRESS_GET
Para mirar valores de campos...
SAPGUI_PROGRESS_INDICATOR
Reloj de SAP para indicar el porcentage
WS_FILENAME_GET
Buscar fichero
SPELL_AMOUNT
Te pasa un numero a texto. Ej: 234 -> DOSCIENTOS TREINTA Y CUATRO
WS_EXECUTE
Para ejecutar programas
SXPG_COMMAND_EXECUTE
Para ejecutar programas
ENQUEUE_READ
Función que mira los objetos que estan bloqueados por usuarios en ese mismo momento
QF05_RANDOM_INTEGER
Le pasas un minimo y un máximo y te devuelve un nº aleatorio entre ese rango
CLOI_PUT_SIGN_IN_FRONT
Coloca el signo negativo '-' delante del número o texto.
ENQUE_SLEEP
Te hace esperar los segundos que le pongas
WWW_ITAB_TO_HTML
Convierte la tabla interna a otra en formato HTML. Luego hacer un download en formato 'BIN'.
TH_DELETE_USER
Borra el modo de un usuario para un cliente.
F4_DXFILENAME_TOPRECURSION
Para leer ficheros del servidor o del PC
ROUND
Para hacer REDONDEOS
PDF
CONVERT_ABAPSPOOLJOB_2_PDF
Para convertir formularios a un doculmento PDF
CONVERT_OTFSPOOLJOB_2_PDF
Para convertir formularios a un doculmento PDF
Field
Exit
DYNP_VALUES_READ
Field Exit
DYNP_UPDATE_FIELDS
Field Exit
CURRENCY
CONVERT_TO_LOCAL_CURRENCY
Cambio de moneda local dado el importe extranjero
CONVERT_TO_FOREIGN_CURRENCY
Conoce el cambio extranjero dando la moneda local (justo la inversa del anterior)
HR
HR_READ_INFOTYPE
Para leer infotipos HR
HR_READ_INFTY_NOTE
Donde se guarda el texto de un infotipo.
IDOC
EDI_DOCUMENT_DELETE
Borra un IDOC mpasandole su número


miércoles, 11 de septiembre de 2013

Generalmente cuando realizamos reportes en ABAP, obtenemos información en formato de listado, en plano, muchas veces sin ninguna funcionalidad aparte que la simple visualización de los datos.

En SAP existe algo llamado ALV (Abap List Viewer) que es el encargado de presentar nuestros reportes de una manera más práctica y funcional, su interfaz es más elegante y nos permite realizar más funcionalidades que un reporte normal.

AGREGAR ICONO A ALV 1


OPCIÓN 1: 

1.TOP
Agregar campo a icon(30), estructura alv.

2.construir_catalogo
PERFORM llenar_fieldcat USING  'ICON' 'GTD_ASPIRANTE_ALV' '' 'X'
                                                       '' text-r03 text-r04 '' '' '11' 
                                CHANGING po_gtd_fieldcat. 
3.Llenar_fieldcat

IF pi_campo = 'ICON'.

    lwa_fieldcat-icon = 'X'.

 ENDIF. 

4.cargar_data
*   cargar icono dependiendo del estado del aspirante

    CASE lwa_aspirante_alv-estad.
     WHEN 'Registrado'.
                   lwa_aspirante_alv-icon = icon_checked.
      WHEN 'Aprobado'.
                   lwa_aspirante_alv-icon = icon_positive.
      WHEN 'Desaprobado'.
                   lwa_aspirante_alv-icon = icon_negative.
      WHEN 'Cargado'.
                   lwa_aspirante_alv-icon = icon_complete.
    ENDCASE. 

6.actualiazar_tabla_alv

CASE lwa_aspirante_alv-estad.
      WHEN 'Registrado'.
                   lwa_aspirante_alv-icon = icon_checked.
      WHEN 'Aprobado'.
                    lwa_aspirante_alv-icon = icon_positive.
      WHEN 'Desaprobado'.
                    lwa_aspirante_alv-icon = icon_negative.
      WHEN 'Cargado'.
                    lwa_aspirante_alv-icon = icon_complete.
    ENDCASE.



AGREGAR ICONO A ALV 2


OPCIÓN 2:

&---------------------------------------------------------------------*
*& Report  ZALV_ICON                                                   *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZALV_ICON                               .
************************************************************************
* Include Programs
************************************************************************
INCLUDE <icon>.

************************************************************************
* Database Tables
************************************************************************
TABLES: kna1.                  "Customer Master

************************************************************************
* Types
************************************************************************
TYPE-POOLS: kkblo.

************************************************************************
* Structures
************************************************************************
* Structure to hold the Color Information
DATA: BEGIN OF st_color,
        color(3) TYPE c,
      END OF st_color.

* Structure to hold the Icon Information
DATA: BEGIN OF st_icon,
        icon(4) TYPE c,
      END OF st_icon.

* ALV Field Catalog Structure
DATA: st_fieldcat   TYPE slis_fieldcat_alv.

* ALV Layout Structure
DATA: st_layout     TYPE slis_layout_alv.

************************************************************************
* Internal Tables
************************************************************************
* Output Table
DATA: BEGIN OF tbl_kna1 OCCURS 0.
        INCLUDE STRUCTURE st_icon.   "Icon Structure
        INCLUDE STRUCTURE kna1.      "Customer Master Structure
        INCLUDE STRUCTURE st_color.  "Color Structure
DATA: END OF tbl_kna1.

* ALV Field Catalog Table
DATA: tbl_fieldcat  TYPE slis_t_fieldcat_alv.

************************************************************************
* Variables
************************************************************************
DATA: fieldname(30) TYPE c,
      g_repid       LIKE sy-repid.

************************************************************************
* Start of Selection
************************************************************************
START-OF-SELECTION.

  g_repid = sy-repid.

  PERFORM get_data.

************************************************************************
* End of Selection
************************************************************************
END-OF-SELECTION.

  PERFORM do_fancy_stuff.
  PERFORM get_layout.
  PERFORM get_fieldcat.
  PERFORM create_report.


*&---------------------------------------------------------------------*
*&      Form  CREATE_REPORT
*&---------------------------------------------------------------------*
*       Learn to read the subroutine name!
*----------------------------------------------------------------------*
FORM create_report.

  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
            i_interface_check       = ' '
            i_callback_program      = g_repid
            i_callback_user_command = 'PROCESS_USER_COMMANDS'
            it_fieldcat             = tbl_fieldcat
            i_default               = 'X'
            i_save                  = ' '
            is_layout               = st_layout
       TABLES
            t_outtab                = tbl_kna1
       EXCEPTIONS
            program_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.

ENDFORM.                               " CREATE_REPORT

*&---------------------------------------------------------------------*
*&      Form  GET_FIELDCAT
*&---------------------------------------------------------------------*
*       Build the Field Catalog
*----------------------------------------------------------------------*
FORM get_fieldcat.
* Here the field catalog is created. To display more fields simply
* 'uncomment' the additional lines and add the field name. Also note
* that the field catalog is much more powerful than this. You can
* intensify fields, change the colour, assign reference fields, etc.
* Look at type slis_fieldcat_alv for more options.
  PERFORM write_fieldcat USING 'ICON'  'TBL_KNA1' '    ' 'X' 1 '2' 'X'
                               ' '.
  PERFORM write_fieldcat USING 'KUNNR' 'TBL_KNA1' 'KNA1' 'X' 2 ' ' ' '
                               ' '.
  PERFORM write_fieldcat USING 'NAME1' 'TBL_KNA1' 'KNA1' ' ' 3 '10' ' '
                               'X'.
  PERFORM write_fieldcat USING 'STRAS' 'TBL_KNA1' 'KNA1' ' ' 4 ' ' ' '
                               ' '.
  PERFORM write_fieldcat USING 'TELF1' 'TBL_KNA1' 'KNA1' ' ' 5 ' ' ' '
                               ' '.
  PERFORM write_fieldcat USING 'ORT01' 'TBL_KNA1' 'KNA1' ' ' 6 ' ' ' '
                               ' '.
  PERFORM write_fieldcat USING 'PSTLZ' 'TBL_KNA1' 'KNA1' ' ' 7 ' ' ' '
                               ' '.
  PERFORM write_fieldcat USING 'SORTL' 'TBL_KNA1' 'KNA1' ' ' 8 ' ' ' '
                               ' '.
  PERFORM write_fieldcat USING 'ERNAM' 'TBL_KNA1' 'KNA1' ' ' 9 ' ' ' '
                               ' '.
  PERFORM write_fieldcat USING 'SPRAS' 'TBL_KNA1' 'KNA1' ' ' 10 ' ' ' '
                               ' '.
*  perform write_fieldcat using '     ' 'TBL_KNA1' 'KNA1' ' ' 10 ' '.
*  perform write_fieldcat using '     ' 'TBL_KNA1' 'KNA1' ' ' 11 ' '.
*  perform write_fieldcat using '     ' 'TBL_KNA1' 'KNA1' ' ' 12 ' '.

ENDFORM.                               " GET_FIELDCAT

*&---------------------------------------------------------------------*
*&      Form  WRITE_FIELDCAT
*&---------------------------------------------------------------------*
*       Write the Field Catalog data to the Field Catalog Table
*----------------------------------------------------------------------*
*      -->name   Field name
*      -->tab    Table name
*      -->st     Structure Name
*      -->key    Is this field a Key?
*      -->pos    Position Number
*      -->length Field Length
*      -->icon   Display as Icon
*      -->hot    Hotspot
*----------------------------------------------------------------------*
FORM write_fieldcat USING name tab st key pos length icon hot.

  st_fieldcat-fieldname   = name.
  st_fieldcat-tabname     = tab.
  st_fieldcat-ref_tabname = st.
  st_fieldcat-key         = key.
  st_fieldcat-col_pos     = pos.
  st_fieldcat-outputlen   = length.
  st_fieldcat-icon        = icon.
  st_fieldcat-hotspot     = hot.
  APPEND st_fieldcat TO tbl_fieldcat.
  CLEAR st_fieldcat.

ENDFORM.                               " WRITE_FIELDCAT

*&---------------------------------------------------------------------*
*&      Form  PROCESS_USER_COMMANDS
*&---------------------------------------------------------------------*
*       Interactive Reporting Commands
*----------------------------------------------------------------------*
FORM process_user_commands USING syst-ucomm LIKE syst-ucomm
                                 selfield TYPE slis_selfield.

* This subroutine is called when there is user interaction in the output
* In this case if the user double clicks the Customer Number then the
* program will call transaction XD03 and display the Customer Master
* Data

  CASE syst-ucomm.
    WHEN '&IC1'.
*  get cursor field fieldname.
      READ TABLE tbl_kna1 INDEX selfield-tabindex.
      SET PARAMETER ID 'KUN' FIELD tbl_kna1-kunnr.
      CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
  ENDCASE.

ENDFORM.                               " PROCESS_USER_COMMANDS

*&---------------------------------------------------------------------*
*&      Form  GET_LAYOUT
*&---------------------------------------------------------------------*
*   set the layout of the ALV.
*   add color to the row?
*----------------------------------------------------------------------*
FORM get_layout.

  st_layout-info_fieldname    = 'COLOR'.
  st_layout-colwidth_optimize = 'X'.
  st_layout-get_selinfos      = 'X'.

ENDFORM.                    " GET_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       Get some data to play with
*----------------------------------------------------------------------*
FORM get_data.

  SELECT * FROM kna1 INTO CORRESPONDING FIELDS OF TABLE tbl_kna1
         UP TO 30 ROWS.

ENDFORM.                    " get_data
*&---------------------------------------------------------------------*
*&      Form  do_fancy_stuff
*&---------------------------------------------------------------------*
*       Do some fancy pants stuff for example changing the color of
*       lines and adding icons
*----------------------------------------------------------------------*
FORM do_fancy_stuff.

* Here we will demonstrate changing the color of ALV Record lines as
* well as displaying Icons
  LOOP AT tbl_kna1.
* All records where NAME1 begins with 'M', will be displayed in Bluish
* Green
    IF tbl_kna1-name1(1) EQ 'M'.
      tbl_kna1-color = 'C41'.  "Bluish Green
      MODIFY tbl_kna1 TRANSPORTING color.
    ENDIF.

* All records with no TELF1 will be displayed in White and have a
* Warning Icon
    IF tbl_kna1-telf1 IS INITIAL.
      tbl_kna1-color = 'C00'.  "White
      tbl_kna1-icon  = '@AH@'. "Warning Icon
      MODIFY tbl_kna1 TRANSPORTING icon color.
    ENDIF.
  ENDLOOP.

ENDFORM.                    " do_fancy_stuff

A call-to-action text Contact us