Avalados por :

Cómo mostrar órdenes de compra con estado CANCELED = N y facturas de reserva de proveedores y entradas de mercancías en SAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...

Buenas, escribo este post para hacerles unas cuantas preguntas, estoy realizando un query en el cual tengo que mostrar las órdenes de compra con estado CANCELED = N y además tengo que mostrar qué órdenes de compra (OPOR) tienen facturas de reserva de proveedores (OPCH) y también las que tienen entradas de mercancías (OPDN), he realizado el siguiente query:

SELECT T0.[CardCode], T0.[CardName], T0.[DocNum], T0.[DocDate],T1.[WhsCode], T1.[ItemCode], T1.[Dscription], T1.LineNum+1,T1.[Quantity],  T1.[Currency], T1.[PriceAfVAT], T1.[Quantity]*T1.[PriceAfVAT] as "Total", CASE WHEN T1.TargetType=18 then 'Fac. Prov.' else ' ' end 'Doc. Destino1', CASE WHEN T3.TargetType = 20 THEN 'Entrada Merc.' else ' ' end 'Doc. Destino2' FROM [dbo].[OPOR]  T0 INNER JOIN [dbo].[POR1]  T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OPCH T2 ON T0.Docentry = T2.DocEntry INNER JOIN PCH1 T3 on T1.DocEntry = T3.Docentry WHERE T0.[CardCode] =[%0]  and  T0.[CANCELED] ='N' and T1.LineStatus = 'C' order by T0.DocNum asc

me despliega los resultados, pero no llega a mostrarme las entradas de mercancías. Cuando selecciono una orden de compra y veo el mapa de relaciones este documento tiene una factura de reserva de proveedores y también una entrada de mercancías, pero esto no se muestra en el resultado del query. Estoy utilizando el targettype 18 de la tabla POR1 y el targettype 20 de la PCH1 para hacer referencia a la factura y a la entrada de mercancías.

Si alguien podría ayudarme o darme algunos consejos de cómo podría resolver este problema.

Un saludo y muchas gracias por las respuestas.

PD: otra pregunta, cuando veo el mapa de relaciones, la factura de reserva de proveedores tiene relación con la entrada de mercancías, pero de la factura salen dos flechas, una azul y otra amarilla, ¿qué significado tienen estas flechas? ¡Muchas gracias!

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Quiero agradecerte una vez más por tu respuesta que me ayuda y guía para poder terminar con mi consulta. ¡MUCHAS GRACIAS!

¡Cualquier otra respuesta y/o sugerencia para cambiar y/o mejorar la consulta será siempre bienvenida!

Estaré pendiente de cualquier respuesta.

Un saludo a todos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Raúl,

Al incluir documentos de pagos en tu consulta es un poco más complejo, ya que existen varias tablas relacionadas al pago dependiendo del método que utilices y la información que deseas mostrar. Mientras más tablas utilices, más complicado puede ser tratar de relacionarlas. Si vas a incluir pagos, te recomiendo mostrar información básica para no complicar el reporte.

En el caso del precio de entrega, la lógica es similar. El documento destino es el precio de entrega y el documento base es la entrada de mercancía. Te recomiendo buscar siempre el objeto, el docentry y la línea cuando trates de enlazarlos. Por ejemplo, en este caso puedes usar BaseType, BaseEntry y BaseRowNum del precio de entrega.

Respecto a tu otra pregunta, sí, pueden existir documentos que no tienen relación y en esos casos los campos se llenan con -1. Para incluirlos, puedes usar un union all, ya que actualmente tu consulta arroja datos basados únicamente en la orden de compra.

Espero que sea de ayuda.

Saludos

Sebastián

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Muchísimas gracias, Sebastián, por la ayuda! No sabes cuánto me ha ayudado tu respuesta. He revisado la consulta y le he agregado algunas cosas más para que despliegue el resultado que quiero.

La consulta quedó de la siguiente manera:

SELECT T0.[CardCode],T0.[CardName],T0.[DocNum],T0.[DocDate],T1.[WhsCode],T1.[ItemCode],T1.[Dscription],T1.LineNum+1 AS Linea,T1.[Quantity], T1.[Currency],T1.[PriceAfVAT],T1.[Quantity]*T1.[PriceAfVAT] AS "Total",'Doc Dest. 1' = CASE WHEN T3.OBJTYPE = '18' AND T3.ISINS = 'Y' THEN 'Fact. Reserva Prov.'                                       WHEN T3.OBJTYPE = '18' AND T3.ISINS = 'N' THEN 'Fact. Prov.'                                       WHEN T5.OBJTYPE = '20' THEN 'Entrada Merc.'ELSE NULL END,'Num. Doc' = CASE WHEN T3.OBJTYPE = '18' THEN T3.DOCNUM                                   WHEN T5.OBJTYPE = '20' THEN T5.DOCNUMELSE NULL END,'Doc Dest. 2' = CASE WHEN T7.OBJTYPE = '19' THEN 'Nota de Crédito'                                       WHEN T2.TARGETTYPE = '20' THEN 'Entrada Merc.'                                       WHEN T4.TARGETTYPE = '18' THEN 'Fac. Prov.'                                      WHEN T9.OBJTYPE = '21' THEN 'Devolución de Merc.'                               ELSE NULL ENDFROM OPOR T0INNER JOIN POR1 T1 ON T0.DOCENTRY = T1.DOCENTRYLEFT OUTER JOIN PCH1 T2 ON T2
        
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Raúl,

Cuando enlazas documentos de SAP siempre debes tener en cuenta el documento base y el documento destino. Estos 2 documentos se unen por las líneas y los campos que normalmente se usan son: BaseType, BaseEntry y BaseLine.

En tu caso, deseas saber qué facturas y entradas están relacionadas a las órdenes de compra no canceladas para un determinado proveedor. Para eso, puedes probar el siguiente código:

SELECT

T0 . [CardCode] ,

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?