Crear búsquedas formateadas en SAP Business One Parte 2

Hoy les traigo algo más avanzado sobre el uso de las búsquedas formateadas en SAP B1 a raíz de las preguntas en nuestra parte 1 Crear búsquedas formateadas en SAP Business One

Vamos a empezar creando una base de datos que llamaremos “Repositorio”

Aquí guardaremos en tablas adicionales a SAP, el detalle de los documentos que se vayan creando. Ya que no es posible consultar con una BF por linea.

Haremos un caso práctico que implemente:
Si la entrada de mercaderías, tiene una cantidad mayor a la OC, debe pasar por un proceso de autorizacion.

Comenzamos creando una tabla donde guardaremos los datos de la linea de la entrada de mercadería que realiza el usuario.

En esta tabla se insertarán las lineas del documento donde más tarde consultaremos el proceso de autorizacion.

Para insertar los datos, crearemos un procedimiento almacenado en la base de datos repositorio y lo llamaremos desde SAP.

Con ese procedimiento que llamaremos desde una BF, insertaremos o actualizaremos un registro de la tabla SBO_Temp_POR1.

Ya hemos terminado la parte “externa”, ahora debemos ir a SAP y crear una BF de la siguiente manera.

Luego de eso, la colocamos BF en un campo (el que ustedes quieran) y la configuramos de esta manera.

ScreenShot290

Y cada vez que el usuario modifique la cantidad, se actualizaran los datos en la tabla con el procedimiento y la BF que creamos.
Si tenemos la siguiente entrada de mercadería en SAP desde una OC cualquiera, veremos lo siguiente en SAP:

ScreenShot291

y en la tabla de SQL:
ScreenShot292

Como ven, los datos del detalle de la entrada y de la OC están insertados en la tabla, ahora viene la query del proceso de autorizacion.

————————————————————————
if (isnull((
select count(*)
from RP_SBODemoCL..SBO_Temp_POR1 T0
where T0.DocEntry=$[OPDN.DocNum]
and T0.CardCode=$[OPDN.CardCode]
and ((T0.Quantity>T0.OC_Qty and T0.Quantity>T0.OC_OpenQty)
or (T0.QuantityT0.OC_OpenQty))),0))>0

begin
select distinct ‘true’
end
————————————————————————

Con esto validamos que la entrada siempre tenga la misma cantidad que la OC o que la cantidad abierta de la OC.

Espero les haya gustado este pequeño tutorial más avanzado del uso de las BF.

Suscribanse a las RSS si desean enterarse de los nuevos post y comentarios de la página.

Saludos y gracias por su visita.

Publicado en SAP Business One Etiquetado con: , , , , ,
31 Comentarios en “Crear búsquedas formateadas en SAP Business One Parte 2
  1. Carlos Alvarado M. dice:

    Muchas gracias por tu aporte.
    Solicito por favor tu apoyo, la autorización en la Oferta de venta debe revisar que cada línea de la misma cumpla con que la ganancia sea mayor o igual al 12%, he elaborado la siguiente query para el proceso de autorización:

    DECLARE @ganancia INT
    DECLARE @valorCosto INT
    DECLARE @mon nvarchar(7)
    DECLARE @mon2 nvarchar(7)

    SET @valorCosto = $[QUT1.GrossBuyPr.0]*$[QUT1.Quantity.0]
    SET @ganancia = $[QUT1.GrssProfit.0] / @valorCosto
    SET @mon=(SELECT DISTINCT doccur FROM oqut where doccur=’SOL’)
    SET @mon2=(SELECT DISTINCT doccur FROM oqut where doccur=’USD’)

    IF @mon=’SOL’
    SELECT DISTINCT ‘True’ From QUT1 t1
    WHERE @ganancia < '0.12'
    AND $[$38.39.0] = 'N'
    IF @mon2='USD'
    SELECT DISTINCT 'True' From QUT1 t1
    WHERE @ganancia < '0.12'
    AND $[$38.39.0] = 'N'

    Sin embargo no hacen ningún efecto. Al crear una Oferta de venta con menos del 12% (inclusive con ganancia negativa) o cualquier otro, tengo el mensaje "Se ha producido un error interno (-1004) [Mensaje 131-183]" y el documento se crea.
    Espero me puedas ayudar. Muchas gracias.

  2. Carlos Alvarado M. dice:

    Hola Felipe, ese método toma el total del documento, en este caso se requiere hacerlo por línea. Espero me puedas dar alguna idea o ayuda.
    Muchas gracias.

  3. Claudio dice:

    Hola Chicos, una consulta.
    Trabajo en control de gestión y recién nos cambiamos a SAP. Ahora tengo que armar una data con todas las transacciones contables.
    Favor me guían en que tablas tengo que consultar.

  4. sandra m dice:

    hola Felipe

    Estoy tratando de hacer una busqueda formeteada
    en el documento recibo de la produccion que contenga
    el numero de la orden de fabricacion + numero de articulo
    y que ese sea el lote, pero no puedo hacerla. agradeceria su ayuda.

  5. Edwin dice:

    me sale el error al ejecutar la autorizacion

    (could not commint transaction: Error -1 detected during transaction (por1)

  6. Katherina dice:

    hola felipe muchas gracias por tus valiosos aportes, una consulta como puedo traer el valor de un campo de usuario para que se copie por línea la misma información en un Albarán de Entrada de Mercancías? Es decir, si la línea 0 del Albarán de Entrada tiene un valor el mismo se aparezca en la siguiente línea al introducir el artículo.

    Muchas gracias!! Espero me puedas ayudar…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*