Compañeros de esta cominidad me dirijo a ustedes para ver si es posible me puedan ayudar, les comento que acabo de salir del COVIC y esto al parecer me quito la capacidad de comprension y poder analizar procesos y en realidad no doy con el proceso, fui al medico despues y me dijeron es normal perdida de memoria o lagunas que eso ira quitando poco a poco.
Mi caso es que tengo este query que hice de notas creditos pero hay un campo en particular de la TABLA ORIN llamado SipCode, este campo es solo numero como hago para que en la consulta que hice me pueda llamar la informacion en Texto para que salga quien hizo esa nota credito, de verdad estoy agradecido con su apoyo y me puedan ayudar porque las ideas no me dan, no alzando.
SELECT T0.[DocNum]NUM_NC, T0.[DocDate]FECHA_NC, T0.[CardCode]COD_CLIEN, T0.[CardName]NOMBRE_CLIEN, T1.[OcrCode],T0.[DocType]TIPO_NC, T0.[DocTotal]TOTAL, T1.[ItemCode]ARTICULO, T1.[Dscription]DESCRIPCION, T1.[Quantity]CANTIDAD, T1.[Price]VALOR, T1.[DiscPrcnt]DESCUENTO, T1.[LineTotal]TOTAL_LIN1, T1.[WhsCode]BODEGA FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry] WHERE T0.[DocDate] BETWEEN '[%1]' AND '[%2]' ORDER BY T0.[DocNum]
Imagen del campo llamado vendedor / propietario, este campo al colocarlo sale solo NUMERICO
Entiendo tu situación y espero que te recuperes pronto. Vamos a trabajar en tu consulta SQL para agregar el nombre de la persona que creó la nota de crédito utilizando el campo SipCode de la tabla ORIN.
Para obtener el nombre del usuario, necesitamos hacer un join con la tabla de usuarios OUSR, donde se almacena la información de los usuarios en SAP Business One. El campo USERID en la tabla OUSR corresponde al campo SipCode en la tabla ORIN.
Aquí está tu consulta SQL modificada para incluir el nombre del usuario que creó la nota de crédito:
SELECT
T0.[DocNum] AS NUM_NC,
T0.[DocDate] AS FECHA_NC,
T0.[CardCode] AS COD_CLIEN,
T0.[CardName] AS NOMBRE_CLIEN,
T1.[OcrCode],
T0.[DocType] AS TIPO_NC,
T0.[DocTotal] AS TOTAL,
T1.[ItemCode] AS ARTICULO,
T1.[Dscription] AS DESCRIPCION,
T1.[Quantity] AS CANTIDAD,
T1.[Price] AS VALOR,
T1.[DiscPrcnt] AS DESCUENTO,
T1.[LineTotal] AS TOTAL_LIN1,
T1.[WhsCode] AS BODEGA,
U.[USER_CODE] AS CREADO_POR
FROM
ORIN T0
INNER JOIN
RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry]
LEFT JOIN
OUSR U ON T0.[SipCode] = U.[USERID]
WHERE
T0.[DocDate] BETWEEN '[%1]' AND '[%2]'
ORDER BY
T0.[DocNum];
Explicación:
Alias en la Selección:
He agregado un alias para cada campo en la cláusula SELECT para mejorar la legibilidad y el formato de los resultados.
Join con la Tabla OUSR:
Se añadió un LEFT JOIN con la tabla OUSR usando T0.[SipCode] = U.[USERID] para obtener el nombre del usuario (USER_CODE).
Nombre del Usuario:
Se añadió U.[USER_CODE] AS CREADO_POR en la selección para incluir el nombre del usuario que creó la nota de crédito.
Consideraciones Adicionales:
Asegúrate de que los permisos de usuario sean correctos y que la tabla OUSR tenga los datos necesarios.
Verifica los nombres de los campos en tu base de datos, ya que en algunas instalaciones pueden tener diferencias mínimas.
Si necesitas más ayuda o hay algún detalle adicional que debamos considerar, no dudes en comentar.
Recuerda que en Consultoria-SAP.com siempre estamos disponibles para ayudarte a resolver cualquier consulta técnica que puedas tener.
Resumen Consultoria-SAP
Para agregar el nombre del usuario que creó una nota de crédito a tu consulta SQL en SAP Business One, debes realizar un join con la tabla de usuarios OUSR. Esto permitirá que el campo SipCode de la tabla ORIN se traduzca en el nombre del usuario.
Amigo listo, volvi a realizar el query desde cero y recorde la instruccion, muchas gracias por tu gran ayuda y que Dios te pague mi amigo, desde hoy un amigo mas y que puedas seguir ayudando con tu conocimiento en esta cominidad
AMIGO escribiendo el codigo asi como tu lo dices me sale el error
el nombre de la columna SipCode no es valido,
porque asi
SELECT T0.[DocDate]FECHA_NC, T0.[CardCode]COD_CLIENTE, T0.[CardName]NOMBRE_CLIENTE, T1.[OcrCode], T0.[DocType]TIPO_NC, T0.[DocTotal]TOTAL, T1.[ItemCode]ARTICULO, T1.[Dscription]DESCRIPCION, T1.[Quantity]CANTIDAD, T1.[Price]VALOR, T1.[DiscPrcnt]DESCUENTO, T1.[LineTotal]TOTAL_LIN1, T1.[WhsCode]AS BODEGA, T2.[USER_CODE]AS CREADOR_POR FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry] LEFT JOIN OUSR T2 ON T0.[UserSign] = T2.[USERID] WHERE T0.[DocDate] BETWEEN ‘[%1]’ AND ‘[%2]’ ORDER BY T0.[DocNum]
me sale el empleado que lo creo y necesito es a quien se le hizo la nota credito
Esta linea de codigo
LEFT JOIN
OUSR U ON T0.[SipCode] = U.[USERID] el nombre de la columna SipCode no es valido,
hola @Luisam creo que tienes error en el campo el campo se llama SlpCode es una L no una i y la tabla que tienes que referenciar es a la OSLP no la OUSR donde la relacion es OSLP.SlpCode = Orin.SlpCode y el campo que tienes que llamar es OSLP.SlpName
SELECT
T0.[DocDate]FECHA_NC,
T0.[CardCode]COD_CLIENTE,
T0.[CardName]NOMBRE_CLIENTE,
T1.[OcrCode],
T0.[DocType]TIPO_NC,
T0.[DocTotal]TOTAL,
T1.[ItemCode]ARTICULO,
T1.[Dscription]DESCRIPCION,
T1.[Quantity]CANTIDAD,
T1.[Price]VALOR,
T1.[DiscPrcnt]DESCUENTO,
T1.[LineTotal]TOTAL_LIN1,
T1.[WhsCode]AS BODEGA,
T2.[SlpName]AS CREADOR_POR
FROM ORIN T0
INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry]
LEFT JOIN OSLP T2 ON T0.[SlpCode] = T2.[SlpCode]
WHERE T0.[DocDate] BETWEEN '[%1]' AND '[%2]' ORDER BY T0.[DocNum]
Esta seguro que tienes motor de base de datos SQL, yo la ejecuto de mi sistema sin problemas y sin errores. prueba ingresando las fechas directa en vez de ‘[%1]’ and ‘[%2]’ reemplaza por fechas dependiendo como tienes parametrizado el motor de SQL la fecha puede ser ‘20240701’ and ‘20240802’ por ejemplo.