lunes, 11 de junio de 2012

Rango de Números en SAP

Tx. SNRO (Act. Rango de números)





Desde esta transacción pueden crear/modificar o visualizar un rango.




Objeto         - Nombre del objeto rango de números
Utilización
Un objeto de rango de números define las propiedades características de intervalos de rangos de números relacionados entre sí desde el punto de vista empresarial, tales como p.e. la longitud de los números, la subdivisión en objetos inferiores, etc. Cualquier objeto de rango de números se identifica unívocamente por su nombre.


Ejemplos
MATERIALNR es el nombre del objeto de rango de números, que define las propiedades de los intervalos de rangos de números para el maestro de materiales.

Texto breve   - Texto breve del objeto de rangos de números (20 posiciones).
Texto expl.    - Texto explicativo para el objeto de rango de números (60 posiciones).

Indicador hasta ejercicio - Ind. si el obj.rango de nºs es relevante hasta ejercicio.
Mediante este indicador se determina si en intervalos de rangos de números deberá hacerse una diferenciación por el parámetro 'Hasta ejercicio'.

Dominio longitud número    - Dominio para la longitud del número
Nombre del dominio que define la longitud del número de rango de números.

Los interv.no se desplazan     - Indicador: no existe transferencia de intervalos
Marcando el flag se evita que los intervalos del objeto de rango de números empiecen de nuevo automáticamente en el límite superior.

Transacción rango números - Código de transacción para llamar la actualización de rangos de números.

Porcentaje advertencia          - Porcentaje para advertencia en la asignación.
Resto en porcentaje de los números de un rango de números; al llegar a este valor en la asignación de números se emitirá un mensaje de advertencia.

Ejemplos
Se ha definido un intervalo de 1 a 1000. Para obtener un mensaje de advertencia a partir del número 900 deberá indicarse 10 (por ciento).



En esta pantalla podemos modificar/visualizar y ver el estatus del rango que hemos seleccionado o creado.


Modo Visualización




Solo se puede visualizar como se encuentran los distintos valores de los rangos.


Modo Status


Se puede editar el status para regresar a un valor inicial por ejemplo en caso de ser necesario.

Modo Modificación
Uno puede Editar los valores de los rangos ya creados o generar nuevos.


Recuerden: Pueden ir probando estos rangos con la función NUMBER_GET_NEXT.


Y si lo van a utilizar en un reporte o función es importante el siguiente orden:


NUMBER_RANGE_ENQUEUE (Bloqueo el rango de número)
NUMBER_GET_NEXT (Próximo n° del rango)
NUMBER_RANGE_DEQUEUE (Désbloqueo del rango),
La tabla en donde se encuentra los rangos de número es la NRIV,

Crear Catalogo desde una tabla interna con la MERGE

Constants: c_t_salida     TYPE slis_tabname   VALUE 'T_SALIDA'.

* Catálogo de campos ALV
  DATA t_fieldcat TYPE slis_t_fieldcat_alv.

  DATA: l_repid    LIKE sy-repid.

  l_repid = sy-repid.

* Se carga el catálogo de campos
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name     = l_repid
      i_internal_tabname  = c_t_salida " Constante de la tabla interna
      i_inclname              = l_repid
    CHANGING
      ct_fieldcat               = t_fieldcat
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

Función para saltar Autorización

Muchas veces en desarrollo no tenemos permisos a determinadas transacciones para realizar las pruebas que necesitemos, bueno esta función sirve para no estar debagueando la transacción estandar y cambiando por debug los permisos que tengamos de la misma.

Ojo, es recomendable hacerlo siempre en desarrollo, si lo hacen en PRD podrían llegar a tener problemas, sobre todo si los descubren :P

TX . SE 37 : RS_HDSYS_CALL_TC_VARIANT