Sé
que prometí continuar con el módulo de gestión en esta publicación, pero decidí
publicar un documento que ya había
realizado hace algún tiempo y que explica el funcionamiento de los campos y
tablas definidos por el usuario.
Cuando
hablamos de campos y tablas definidos por el usuario, hacemos referencia a la
posibilidad que nos brinda SAP de personalizar de alguna manera la estructura
de los formularios con el fin que podamos agregar información adicional a la
que permite la base de datos estándar y que son necesarios para las empresas.
ES importante aclarar que para realizar estos cambios es necesario que ningún
usuario esté realizando operaciones en SAP ya que puede perder los cambios al
actualizarse la base de datos.
Tablas
Para
crear una tabla debemos ir al menú superior, Herramientas/herramientas
personalización/Tablas definidas por el usuario.
Se
abrirá una ventana donde debemos ingresar el nombre que tendrá la tabla que no
puede exceder los 19 caracteres y su
descripción no mayor a 30. Se recomienda que el nombre sea corto pero
entendible a la hora de usar la tabla en la construcción de consultas SQL. Por
último se define el tipo de objeto que será la tabla: datos maestros, filas de
datos maestros, documento o filas de documento.
Una
vez es creada la tabla, por defecto tendrá dos campos, Code y Name. El dato del
primer campo se podrá ingresar solo una vez y ya no podrá modificarse, esto con
el fin de crear una llave primaria. Posteriormente se podrán definir más
columnas para almacenar la información que requiera. A continuación describiré
el procedimiento para crear campos, ya sea en una tabla de usuario o dentro las
que son estándar de la base de datos.
Campos
Para
crear un campo seguimos la misma ruta que con las tablas,
Herramientas/Herramientas de personalización pero la opción campos definidos
por el usuario.
Al
seleccionar, nos aparecerá una ventana que organiza por categorías los
diferentes formularios donde podremos agregar un campo, además del lugar donde
deseamos hacerlo, su encabezado, el detalle o diferentes opciones dependiendo
del documento.
Para
explicar su creación y configuración tomaremos como ejemplo una de las opciones
de datos maestros como son los socios de negocio, que por su estructura permite
agregar campos asociados directamente al socio de negocio, a las personas de
contacto o las direcciones que se le definan al mismo. Suponemos que vamos a
hacerlo usando la primera opción, entonces debemos pararnos sobre ella,
automáticamente se sombreará de color amarillo y se habilitará la opción crear
en la parte superior. También podemos ver lo campos creados anteriormente dando
clic en la flecha junto al enunciado de la opción.
Al
dar clic en el botón crear, nos abrirá la siguiente ventana:
A
continuación explico a que hace referencia cada campo y check dentro de la
ventana.
- Título:
Es el nombre que tendrá el campo en la base de datos. Se recomiendan nombres
cortos y no se permiten espacios.
- Descripción:
Será el nombre que se le mostrará al usuario para identificar el campo.
-Tipo:
Como su nombre lo indica, define qué tipo de dato almacenará el campo. Estos
datos podrán ser:
- Alfanumérico: Permite almacenar caracteres alfabéticos
y numéricos.
- Numérico: Almacena datos numéricos. Es usado
para campos que realizarán operaciones en informes.
- Fecha/Hora. Como su nombre indica almacena datos
ya sea indicando una fecha o una hora.
- Unidades y totales: Este tipo de campo es de
gran ayuda también para realizar operaciones, además cuenta con subtipos de
campo que permite usarlo de una forma optimizada, dichos subtipos son:
o
Tarifa
o
Importe
o
Precio
o
Cantidad
o
Porcentaje
o
Medidas
- General: Permite almacenar Imágenes o enlace.
- Dependiendo
del tipo de campo que definamos se habilitarán las cajas inferiores o el
espacio para definir la longitud que tendrá el mismo. Si escogemos un campo
alfanumérico podremos ver la funcionalidad de estas opciones.
- Fijar valores válidos para campo: Permite
generar una lista desplegable, donde daremos un código y una descripción a cada
opción.
- Fijar valor estándar para campo: Permite
ingresar un valor que tendrá por defecto al campo.
- Campo Obligatorio: SAP no permitirá que se
guarden los cambios hasta que el campo tenga un valor.
- Fijar tabla vinculada: Así como podemos crear
una lista para el campo, también podemos asociar una tabla ya creada con el fin
de no duplicar información.
Una vez
configuremos el campo según nuestras necesidades, el usuario tendrá el campo
disponible la próxima vez que ingrese.
Espero está
publicación sea de gran ayuda.
Saludos!!
Hola, Una vez creada la Tabla, ¿como puedo añadir más columnas?
ResponderEliminarGracias.
Las tablas se crean automáticamente con dos campos Code y Name, para agregar más columnas debes ir por herramientas, Herramientas personalización y Campos definidos por usuario. Allí buscas la opción Tablas de usuario y posteriormente el nombre que le diste a la que creaste, allí podrás crear cuantos campos requieras.
EliminarSi tienes alguna otra inquietud no dudes en escribir
Saludos y gracias por visitar el blog
Si pongo un campo ya creado y con datos como obligatorio, ¿se sobreescribirán los registros con el valor estándar?
ResponderEliminarHola, al poner los valores estándar y el campo obligatorio no se modificará nada dentro de la base de datos. Cuando ingreses ya sea a la tabla u opción y quieras actualizar el registro no te dejará guardar hasta que se ponga en el campo uno de los valores permitidos.
ResponderEliminarEspero mi respuesta haya sido de ayuda.
Jonathan R
Buenas amigo una consulta, en una tabla definida como puedo ordenar cualquier columna, puedo agregar filtros, gracias por tu respuesta
ResponderEliminarHola,las tablas como tal son planas por lo que no se pueden crear filtros u ordenar. Para esto te aconsejo generar una consulta a la tabladentro del query manager y desde esta opción SAP si permite ordenar por cualquiera de las columnas.
EliminarEspero sea de ayuda mi comentario
Gracias Jonathan R, buena.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarBuenos días.
ResponderEliminarMi inquietud es como poder validar los datos que se introducen en una tabla de usuario, como el código del socio de negocio, que exista en la tabla de socios de negocios.
Hola, se podría hacer por el transaction notification una sentencia que valide el dato ingresado con la tabla del maestro, para tu ejemplo el código del SN. En caso que no exista te arrojará un error.
EliminarSi necesitas más ayuda me comentas, saludos.
Jonathan Ramírez
como creo campo de usuario en un pedido de compras no me deja ver esa opcion
ResponderEliminarHola Germán,
EliminarUn pedido de compra es considerado un documento de marketing. El campo será creado para todos los documentos que sean considerados de este tipo.
Cualquier otra duda que tengas con gusto estaré por aquí
Jonathan Ramírez
Que tal, disculpa puedo modificar la longitud de un campo creado por sap lo quiero agrandar de varchar(8) a (25) es un campo de referencia
ResponderEliminarHola, que tal...
EliminarEsto no es posible sin arriesgar la integridad de la base de datos ya que se hace por SQL. En mi concepto lo mejor es buscar usar otro campo para guardar la información que requieres o crear un campo de usuario.
En mi opinión, cambiar la estructura de la base de datos no es recomendable.
Saludos!
Hola, cree una tabla y un campo, pero en dicho campo yo quiero agregar una imagen, coloque tipo general, estructura imagen y en validacion ninguna, coloco la imagen pero no me sale nada. Como hago para cundo un usuario solicite una autorizcion de un documento y el que autorice la autorice valga la redundancia, este documento llegue con su firma que yo le agregue en este campo definido.
ResponderEliminarHola, soy nuevo en SAP B1 y quisiera saber la forma de hacer un filtrado por fechas de una tabla definida por el usuario. De antemano muchas gracias y saludos.
ResponderEliminarHola, perdón por la respuesta tardía. La única forma de filtrar es realizando un select a través del query manager, ya que la tabla de usuario como cualquier otra tabla de una base de datos no es posible filtrarse directamente.
EliminarSaludos,
Jonathan Ramírez
Hola tengo un problema, resulta que el año pasado se creo un campo definido por usuario con las siguientes característica;
ResponderEliminarUbicacion - Ducumento de Marketing
Titulo - OCNUM
Descripcion - Orden de Compra Numero / CV
Tipo - Numérico
Largo - 11
Validación - Ninguno
Pero ahora necesitan que ese mismo campo sea Tipo alfanumérico y no numérico.
Me mencionaron en otro lugar que lo podía hacer con Data Transfer , pero no se como hacer esta tarea, alguien me podría ayudar con este tema.
Hola Gerardo,
EliminarData Transfer lo que te hace es cargar masivamente información por lo que no veo la relación con lo que necesitas.
Nunca he realizado esto pero el tipo de dato se puede cambiar dentro de una base de datos a través de un alter table. Como es en documentos de marketing debes primero validar que efecto tiene cambiarlo en sólo una de ellas (ORDR por ejemplo), ya que este se relaciona con varias tablas a la vez.
Realiza esto en una base de datos de prueba aunque en realidad lo que yo haría es crear uno nuevo, pasar la información a través de un insert y desactivar el campo anterior.
Saludos
Jonathan Ramírez
Hola Jonathan
ResponderEliminarYo cree una tabla de usuario siguiendo tus pasos, pero cuando quiero agregarle registros a la tabla me envia un error: Error failed when converting the nvarchar value '-3@SPO' to data type int, tienes idea de como corregirlo? no tengo busquedas formuladas para esta tabla
Hola Jonathan, ya pude resolver el tema, dejo la solución por si a alguien le sucede lo mismo
EliminarHola
Este sintoma lo he visto con anterioridad, la nota de SAP 1298609 lo describe y la solución que da es
Cambiar el código que tengas en tu Transaction como se muestra a continuación,
DO NOT USE: If @object_type = 1
USE: If @object_type = '1'
Si cambias esto, el sistema ya no te marcara el error al tratar de actualizar tu tabla de usuario.
Te sugiero revises la nota
Recibe un Saludo
Yen
https://archive.sap.com/discussions/thread/1690690
Este comentario ha sido eliminado por el autor.
ResponderEliminarBuen día, Espero puedas responderme y ayudarme con una gran duda que tengo, yo no he trabajado mucho con SAP pero tengo una duda con respecto a algo. Estoy leyendo en comentarios más arriba que modificar la longitud de un campo en SAP no es recomendable, perfecto eso lo entiendo. Ahora bien en la empresa en la que trabajo tenemos un problema que al cargar los pedidos de materiales solo me permiten montos que no exedan de 999.999,99 y actualmente los montos que manejamos en los pedidos con los proveedores supera por mucho esa cantidad creandome un problema a la hora de montar los pedidos. Ahora bien, mi pregunta es ¿Puedo crear un campo definido por el usuario que me maneje ese nuevo monto y que de alguna forma se refleje en todo el sistema? es decir, si modifico el monto que se vea en todos los modulos, entendiendo que de ser posible yo tengo que configurar a mano cada uno de los modulos para que ahora trabajen con esos datos. Muy importante tambien acotar que en la empresa esta trabajando con SAP 5.0 y base de datos MaxDB, si hay alguna forma de resolver esto me encantaría saberla, de antemano gracias por la ayuda
ResponderEliminarHola, soy nuevo en SAP B1 y quisiera saber la forma de hacer un filtrado por fechas de una tabla definida por el usuario. De antemano muchas gracias y saludos.
ResponderEliminarMuy buen día Jonathan. Te comento que realicé la creación de una tabla de usuarios que contiene datos de mis operadores de transporte, y la misma contiene en el código su ID de identificación personal, nombre, número de licencia, y otros datos importantes de la unidad de la cual es responsable. Luego, en la sección de entregas, he creado algunos campos de usuario, donde se solicita que elijan el operador que llevará el material, obviamente, estos campos de usuario los ligo a mi tabla generada anteriormente, el detalle que tengo, es que el primer campo obtiene su ID, que es correcto, pero no encuentro la forma de dar la instrucción con una consulta personalizada al segundo campo o subsecuentes para que me traiga la información de su licencia de conducir, placas de la unidad, etcétera. Y adicional que en la tabla de entregas, donde se adicionan esos campos me grabe la información no solo del ID, sino de la licencia, placas,. etcétera. ¿me puedes dar alguna recomendación por favor?
ResponderEliminarMil gracias.