UDF y búsquedas formateadas
SAP Business one puede ser adaptado a las necesidades específicas de un cliente en particular de múltiples maneras. Estas posibilidades se podrían agrupar en:
- Uso de las múltiples opciones de parametrización estándar disponibles en el producto. Tomando determinadas decisiones durante la implantación, podemos configurar SAP Business One para que, por ejemplo, use como método de valoración de nuestro inventario, el criterio del peso medio variable o del último precio de compra.
- Se pueden agregar elementos a la base de datos estándar siguiendo las reglas definidas por SAP. Podemos crear nuevos campos (llamados campos UDF: user defined fields) que nos pueden ayudar a almacenar la información cómo y dónde el cliente necesita verla. También se pueden crear nuevas tablas (llamadas tablas UDT: user defined tables) e incluso crear nuevos objetos con determinadas funciones predefinidas que nos pueden facilitar la labor de desarrollar nuevos datos maestros o documentos (UDO: user defined objects). En este apartado podemos incluir la creación de búsquedas formateadas (formatted searches) que permiten asociar el resultado de una consulta SQL a un campo de la base de datos, de este modo podemos, por ejemplo, asociar una lista de valores a un campo, ya sea estándar o UDF, sin necesidad de desarrollo.
- Uso del kit de desarrollo (SDK) disponible para SAP Business One, pudiendo interactuar tanto con la base de datos a través de su interfaz de datos: DI API, o con la interfaz de usuario a través de la UI API
En este post me he planteado explicar un pequeño ejemplo que ilustre varias formas de conseguir que una empresa pueda conocer el saldo de un cliente, en el momento en el que se va a introducir en el sistema un pedido de ventas de dicho cliente.
De forma estándar, una de las opciones podría consistir en seleccionar el cliente desde la pantalla de pedido, navegamos a sus datos maestros haciendo uso de la “flecha naranja” correspondiente y visualizamos el saldo en la parte superior derecha de sus datos maestros. Otra opción estándar es “parametrizar” nuestra lista de selección de clientes del pedido (conocida como ChooseFromList) para que ya incluya el saldo de todos los clientes disponibles en nuestra base de datos.
Otra opción podría ser añadir un campo nuevo al documento de pedido (campo UDF) y asignar una búsqueda formateada a dicho campo para que se actualice con la selección del cliente y muestre el saldo de forma automática.
Para lograr esto seguiremos los siguientes pasos:
1. Creación de un nuevo campo UDF para los documentos de pedido: Introducimos la siguiente información para nuestro nuevo campo: Podemos comprobar que nuestro campo ha sido creado, si abrimos un nuevo pedido y nos aseguramos de tener activada la opción de visualizar campos definidos por el usuario
2. Crear la consulta SQL que nos permita extraer el saldo de un cliente determinado.
3. Una vez hemos creado nuestra consulta SQL, la grabaremos en el Query Manager, pero antes de ello sustituiremos el valor del criterio de filtrado “CARDCODE=C30000” por el valor de código de cliente que procederá del documento de pedido. Esto lo podemos lograr haciendo uso de la etiqueta $ que nos permitirá acceder a valores del documento que se está usando y aún no han sido almacenado en la base de datos. En este caso necesitamos el campo CardCode, de la tabla ORDR. Por lo tanto lo sustituiremos en nuestra consulta.
4. Asignaremos nuestra búsqueda formateada al campo UDF creado y haremos que se actualice automáticamente al seleccionar un nuevo cliente desde pedido: Pulsamos “Shift + F2” desde “Saldo cliente” y seleccionamos las siguientes opciones:
Con esto habremos conseguido que tras seleccionar un cliente en nuestros documentos de pedido, se cargue automáticamente su saldo en nuestro nuevo campo “Saldo IC”.
Esto ha sido un pequeño ejemplo de uso de las posibilidades de personalización de SAP Business One.
Sobre el Autor
Miguel Fernandez Cejas
Director General.
Socio fundador de Itop, empresa de implantación de soluciones tecnológicas, factoría de software y formación online. Ingeniero Informático con cursos de postgrado en áreas tan diversas como la inteligencia artificial, la gestión de empresas o la calidad. Más de 25 años de experiencia en el mundo de las Tecnologías de la Información trabajando para distintas empresas nacionales e internacionales.
Su pasión por la tecnología unida a su variada experiencia, le impulsa a desarrollar distintos proyectos empresariales donde aplica las nuevas tecnologías al turismo, la sociología, el marketing o la formación.
Actualmente trabaja en temas relacionados con aplicaciones de gestión, Business Intelligence, Big Data, Mobile/Apps e Internet de las Cosas.