Archivo
Crear sustituciones – GGB1
Caso: se busca crear una sustitución para el campo BKPF-XBLNR (campo referencia) en la MIRO para que si el valor ingresado es numérico, se quiten los ceros a la izquierda de éste.
1. Ingresamos a la transacción GGB1.
Allí vamos a «Contabilidad financiera» – «Cabecera documento» (ya que allí está el campo a sustituir) y presionamos el botón «Nueva Sustitución».
Aquí se crea como una carpeta agrupadora de sustituciones.
Luego de esto, nos posicionamos en la carpeta recién grabada y presionamos el botón «Nuevo Paso». Allí nos va a pedir el/los campos a sustituir. Seleccionamos el nuestro:
Nos va a pedir que sustitución realizaremos. En nuestro caso como vamos a generar algo de código, usaremos un EXIT. En caso de querer reeemplazarlo por una constante usar «Valor constante» y si se desea reemplazarlo por el valor de otro campo, la opción «Asignación campo-campo»
Definimos una descripción para el paso recién creado y nos posicionamos en el filtro de condiciones. Allí indicamos la/s transacciones en las cuales deseamos que se ejecute la sustitución y en nuestro caso que el campo no debe estar vacío.
Para agregar campos y operadores se recomienda usar las opciones de ayuda. Finalmente presionar el botón de verificar () y el Status debe quedar en verde.
Ahora vamos a indicar el EXIT. Nos posicionamos en «Sustitución» y allí vemos que hay que indicar un EXIT (yo ya lo tengo creado como U300).
2. El EXIT se debe crear haciendo una copia Z del programa estándar RGGBS000, por ejemplo como ZRGGBS000.
Ingresar a la transacción GCX2 y reemplazar el programa estándar RGGBS000 por el nuevo Z.
Allí se puede utilizar uno de los UXXX que están comentados que están puestos como ejemplo o crearnos uno nuevo. Lo importante es tener lo siguiente:
* Sustitución campo referencia (XBLNR) sin ceros a la izquierda
exits-name = ‘U300’. » Sustitución campo
referencia (XBLNR) sin ceros a la izquierda
exits-param = c_exit_param_field.
exits-title = text-300.
APPEND exits.
*———————————————————————* FORM U300*
*———————————————————————* Sustitución Campo Referencia de Factura. Si posee ceros a la izquierda se quitan
*———————————————————————FORM u300 USING bkpf-xblnr.
DATA: lv_xblnr TYPE xblnr,
lv_tipo TYPE dd01v-datatype.
CALL FUNCTION ‘NUMERIC_CHECK’
EXPORTING
string_in = bkpf-xblnr
IMPORTING
string_out = lv_xblnr
htype = lv_tipo.
IF lv_tipo NE ‘CHAR’.
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’
EXPORTING
input = bkpf-xblnr
IMPORTING
output = bkpf-xblnr.
ENDIF.
ENDFORM. «u0300
*———————————————————————
3. Luego de crear todo el código, debo grabar todo en la GGB1 y finalmente crear una entrada en la transacción OBBH para activar la carpeta de sustituciones creada.
En grado de activación, se debe indicar «1» para activar.
Finalmente se debe ejecutar el programa RGUGBR00 para ajustar los cambios realizados, según el post:
https://abapers.wordpress.com/2013/07/22/regenerar-ggb0-ggb1-validacionessustituciones/
Nota: Tener en cuenta que tanto las sustituciones como las validaciones se ejecutan cuando hablamos de contabilizaciones, en este caso por ejemplo en la MIR7 (documento preliminar prerregistrado) no va a correr la sustitución ya que no se genera documento contable.
Link útil:
http://saptricks.wordpress.com/2012/10/21/truco-29-sustituciones-en-controllingco-usando-exits-ii/
SPRO – Modificar año bisiesto en SAP
Modificar año bisiesto en SAP en SPRO
Caso: en SAP estaba parametrizado el período contable de febrero como de 28 días, esto hace que cuando se contabiliza el 29 de febrero, pide abrir un nuevo período contable (en este caso de la imagen el 12 2012).
Buscando en la ayuda de SAP:
http://help.sap.com/saphelp_470/helpdata/es/96/8b2fc843ce11d189ee0000e81ddfac/content.htm
La referencia indica que allí debe indicarse 29 días siempre (los años no-bisiestos, SAP se da cuenta de ello y usa hasta el 28). Por lo tanto debo modificar en mi sistema ese período contable. Estamos hablando de ejercicios DESPLAZADOS.
Ejercicio desplazado
Si el ejercicio es distinto del año natural, especifique:
- La cantidad de períodos contables que necesita.
- La manera en que el sistema debe determinar el período contable y el ejercicio a partir de la fecha de contabilización durante la contabilización:
Períodos contables
Para permitir que el sistema determine el período contable, especifique el límite de mes y día para el final de cada período.
Introduzca 29 como límite de días para febrero. Esto asegura que el sistema pueda fijar también el período contable correctamente en un año bisiesto. Si introduce 28 como límite de días para febrero, las cifras de movimientos contabilizadas el 29 febrero se actualizarán en el período siguiente. Si no se abre el período siguiente, el sistema emitirá un mensaje de error.
Por suerte sólo se hicieron 4 facturas en el período ese nuevo. En este caso de que ya se hayan computado facturas en el período 12 2012 y sean del 29 de febrero no se como se debe proseguir.
Por mi parte, por mi desconocimiento del tema y por ser las 2 de la mañana y mi empresa factura a la noche, estoy urgido a tomar una decisión. Lo que hice fue solicitar que hagan notas de crédito a las facturas en el período 12 2012 y luego yo arreglo el tema del período para que las vuelvan a facturar en el 11 2012 (lamentablemente el período contable 12 2012 estaba abierto).
Bueno, luego de que realicen las operaciones pertinentes, ingreso a la ruta del árbol para actualizar el período 2, a la opción “Actualizar variante de ejercicio (actualizar ejercicio corto).
Selecciono el ejercicio a modificar:
- image0081
- image0091
Selecciono el período a modificar y lo elimino para crear otro.
Al apretar el botón de eliminar aparece este mensaje:
- image0111
- image0121
Buscando en Internet vi este post. Espero esté en lo cierto:
http://www.mundosap.com/foro/archive/index.php/t-11401.html
“De acuerdo a lo que vi, la única modificación que se podría generar es en algunas amortizaciones por lo que corriendo la tx.AFAR tendría que quedar solucionado”
Así que cruzando los dedos lo eliminé e hice el nuevo período 2 con 29 días.
Finalmente guardo los cambios.
Modificar Status campo acreedor
Caso: se busca actualizar los campos de ingreso de acreedores, específicamente queremos que sea obligatorio el campo LFA1-FITYP.
1. Ingresamos por la SPRO a la siguiente ruta, seleccionando “Definir grupo de cuentas con formato de pantalla (acreed.).
2. Hacemos click en 001 acreedor
3. Hacemos doble click en la opción “Datos generales”
4. Hacemos click en la opción “Control”
5. Ahora podemos cambiar el status de los campos que deseemos.
Finalmente guardar.
Validación de Nro. de CUIT (Argentina)
Verificación de Clave de Identificación Tributaria (C.U.I.T.)
Todas las compañias y personas, que por su operatoria comercial, esten sujetas al pago de impuestos en la República de Argentina, deben estar inscriptas en el ente recaudador correspondiente, el que les proveerá el número de identificación impositiva.
El número de identificación impositiva es asignado por la autoridad fiscal. En Argentina este número se conoce como Clave de identificación Tributaria (C.U.I.T.).
El número de identificación se compone de 11 digitos.
Los dos primeros indican el tipo de persona (si es persona física o jurídica).
Los ocho siguientes, sí es persona física, corresponde a su número de documento de identidad, pero sí es persona jurídica, son los número de su inscripción como empleador.
El último dígito es el verificador, y es el que controla que que el CUIT sea real.
Procedimiento
Existe un número multiplicador constante que verifica la veracidad del CUIT, es el siguiente:
54327654321
- El sistema deberá tomar cada dígito del número del CUIT y multiplicarlo por el dígito de igual posición del multiplicador.
- Deberá sumar el resultado de cada producto
- El resultado de la suma debe ser divisible por once (11) con resto cero (0).
Ejemplo
El número de CUIT se compone de los 11 digitos, por ejemplo:
30586440477
3 * 5 = 15
0 * 4 = 0
5 * 3 = 15
8 * 2 = 16
6 * 7 = 42
4 * 6 = 24
4 * 5 = 20
0 * 4 = 0
4 * 3 = 12
7 * 2 = 14
7 * 1 = 7
Total: 165
165 |___11_____
55 15
0
Ejemplo en ABAP
* validar CUIT – Supongo cargado con formato XX-XXXXXXXX-X (Ejemplo: 30-99999999-1)
DATA: l_numero TYPE kbetr.
IF w_cuit+2(1) NE ‘-‘ OR w_cuit+11(1) NE ‘-‘.
w_error = ‘X’.
MESSAGE i001(00) WITH ‘Complete el CUIT con guiones’.
ELSE.
CLEAR l_numero.
l_numero = w_cuit+0(1) * 5 +
w_cuit+1(1) * 4 +
w_cuit+3(1) * 3 +
w_cuit+4(1) * 2 +
w_cuit+5(1) * 7 +
w_cuit+6(1) * 6 +
w_cuit+7(1) * 5 +
w_cuit+8(1) * 4 +
w_cuitt+9(1) * 3 +
w_cuit+10(1) * 2 +
w_cuit+12(1) * 1.
l_numero = l_numero mod 11.
IF l_numero NE 0.
w_error = ‘X’.
MESSAGE i001(00) WITH ‘CUIT inválido. Verifique’.
ENDIF.
ENDIF.