30 Replies Latest reply: Jul 28, 2011 10:32 PM by Miguel Angel Ascanio RSS

Modificar Reporte de SAP

Miguel Angel Ascanio
Currently Being Moderated

Hola buenas tardes,

 

   A ver si me pueden ayudar con lo siguiente por favor, yo quisiera saber si existe alguna manera de modificar algun reporte de los que ya vienen por defecto con sap, es que hay un informe, especificamente el informe de centro de beneficio, que es perfecto para lo que estan pidiendo pero hay un detalle que le falta y queria ver si existia la manera de modificarlo?.

 

Gracias por su atenciòn,

 

Saludos.

 

  • Re: Modificar Reporte de SAP
    Felipe Loyola
    Currently Being Moderated

    Miguel;

     

    Los informes nativos no se pueden modificar.

     

    Como alternativa, intenta averiguar el query que ejecuta el informe desde el SQL Profiler y tratar de modificar el query para hacer un nuevo reporte.

     

    Saludos

  • Re: Modificar Reporte de SAP
    María de los Angeles Merecías Pérez
    Currently Being Moderated

    puedes tratar de generar un query dentro del query manager.

    • Re: Modificar Reporte de SAP
      Miguel Angel Ascanio
      Currently Being Moderated

      Hola Mary, disculpa como aplico esta opción, se el funcionamiento de el query manager pero como podria lograr copiar y modificar el informe de centro de beneficios con esto?

       

      Floyola esto de sql profiler, lo he estado viendo, aun no he dado con el query pero sigo viendo, es que la verdad nunca habia usado eso.

       

      • Re: Modificar Reporte de SAP
        María de los Angeles Merecías Pérez
        Currently Being Moderated

        define que datos quieres, puedes visualizar los campos en vista/información del sistema

         

        obtienes los campos que ocupas y luego haces inner join o generas un SELECT.

         

        no es tan complicado es solo saber que tablas puedes usar y un poco de básico SQL.

         

      • Re: Modificar Reporte de SAP
        Felipe Loyola
        Currently Being Moderated

        Hola Miguel

         

        Encontre el query del informe

         

        SELECT T1.[TransId], T1.[Line_ID], T1.[ShortName], T1.[TransType], T1.[Debit], T1.[Credit], T1.[RefDate], T1.[DueDate], T0.[ActType] FROM  
        [dbo].[OACT] T0 ,  
        [dbo].[JDT1] T1 
        WHERE T1.[Account] = T0.[AcctCode]  AND  T1.[DueDate] >= (@P1)  AND  T1.[DueDate] <= (@P2)  AND  T1.[RefDate] >= (@P3)  AND  T1.[RefDate] <= (@P4)  AND  T1.[TaxDate] >= (@P5)  AND  T1.[TaxDate] <= (@P6)  AND  T1.[ProfitCode] = (@P7)   
        ORDER BY T1.[Account]

         

        El informe lo ejecute de esta manera

        [http://imageshack.us/photo/my-images/829/screenshot008kd.jpg/]

         

        Espero te sirva

         

        Slds

        • Re: Modificar Reporte de SAP
          Miguel Angel Ascanio
          Currently Being Moderated

          Claro Mary, igual si no queda de otro tendre que hacerlo por el generador de consultas, lo que queria era encontrar la manera de tomar el que ya existe y copiarlo para hacerle la modificaciòn que necesito.

           

          Floyola copie el query en el generador de consulatas y me genera el siguiente error resumido:

           

           

          Must declare the scalar variable "@P1"

           

           

          • Re: Modificar Reporte de SAP
            Felipe Loyola
            Currently Being Moderated

            ¬¬ esperaba un poquito de ...

             

            Miguel, ese query proviene del SQL Profiler, las variables son las que tu llenas cuando ejecutas el reporte, por lo tanto debes hacer lo mismo en el query

             

            SELECT T1.[TransId], T1.[Line_ID], T1.[ShortName], T1.[TransType], T1.[Debit], T1.[Credit], T1.[RefDate], T1.[DueDate], T0.[ActType] FROM  
            [dbo].[OACT] T0 ,  
            [dbo].[JDT1] T1 
            WHERE T1.[Account] = T0.[AcctCode]  AND  T1.[DueDate] >= '[%0]'  AND  T1.[DueDate] <= '[%1]'  AND  T1.[RefDate] >= '[%2]'  AND  T1.[RefDate] <= '[%3]'  AND  T1.[TaxDate] >= '[%4]'  AND  T1.[TaxDate] <= '[%5]'  AND  T1.[ProfitCode] = '[%6]'   
            ORDER BY T1.[Account]

             

            Atte.

             

            • Re: Modificar Reporte de SAP
              Miguel Angel Ascanio
              Currently Being Moderated

              jajaja ya ya disculpaaaa jaja, que traigo la cabeza en otro lado, disculpa de verdad :). dejame probar

            • Re: Modificar Reporte de SAP
              Miguel Angel Ascanio
              Currently Being Moderated

              Floyola a ver si me puedes ayudar en lo siguiente por favor:

               

                Este reporte que me envías en el código es para mostrar las entras y salidas por centro de beneficio, que pasa, realmente lo que quiere el cliente es medir la productividad de cada vendedor, y que pasa con este reporte, que muestra las salidas, pero las entradas que muestra no son reales, ya que muestra el valor de las facturas total, cuando a estas facturas debería restársele el valor del costo del producto, el resultado de la resta entre el total de la factura - el costo de cada producto, sería la entrada bruta que está generando este vendedor.

               

                No sé si tienes algún reporte parecido a lo que te estoy diciendo, o como sería la manera de restar el total de estas facturas con el costo de cada línea de producto, en este código que me pasas el campo que muestra las entradas es Credit.

               

              Saludos.

               

              • Re: Modificar Reporte de SAP
                Felipe Loyola
                Currently Being Moderated

                Dejame ver si entiendo

                 

                Los vendedores los clasifican por centro de beneficio? o

                el reporte lo necesitas por empleado de departamento de ventas?

                 

                Atte.

                • Re: Modificar Reporte de SAP
                  Miguel Angel Ascanio
                  Currently Being Moderated

                  Asi es, cada vendedor es un centro de beneficio, el reporte se necesita por centro de beneficio que es la manera como son capturados en cada factura.

                  • Re: Modificar Reporte de SAP
                    Felipe Loyola
                    Currently Being Moderated

                    Bueno miguel, veamos como queda este reporte

                     

                    Crea un stored en la base de esta manera, si quieres le cambias el nombre jaja

                    CREATE PROCEDURE dbo.Miguel_SDN_jajaja (@FECHAINI DATETIME, @FECHAFIN DATETIME)AS
                    
                    BEGIN
                    
                    DECLARE @UNIONSAP TABLE (SlpCode SMALLINT, SlpName NVARCHAR(100), OcrCode NVARCHAR(8), Ventas INT, Costos INT, Margen INT)
                    INSERT INTO @UNIONSAP
                    
                    SELECT T0.SlpCode'SlpCode', T2.SlpName, T1.OcrCode, SUM(T1.Price*T1.Quantity)'Ventas', SUM(T1.Quantity*T1.StockPrice)'Costos', (SUM(T1.Price*T1.Quantity)-SUM(T1.Quantity*T1.StockPrice))'Margen'
                    FROM OINV T0
                    INNER JOIN INV1 T1 ON T1.DocEntry = T0.DocEntry
                    INNER JOIN OSLP T2 ON T2.SlpCode = T0.SlpCode
                    WHERE T0.DocDate >= @FECHAINI AND T0.DocDate <= @FECHAFIN
                    GROUP BY T0.SlpCode, T2.SlpName, T1.OcrCode
                    UNION
                    SELECT T0.SlpCode'SlpCode', T2.SlpName, T1.OcrCode, -SUM(T1.Price*T1.Quantity)'Ventas', -SUM(T1.Quantity*T1.StockPrice)'Costos', -(SUM(T1.Price*T1.Quantity)-SUM(T1.Quantity*T1.StockPrice))'Margen'
                    FROM ORIN T0
                    INNER JOIN INV1 T1 ON T1.DocEntry = T0.DocEntry
                    INNER JOIN OSLP T2 ON T2.SlpCode = T0.SlpCode
                    WHERE T0.DocDate >= @FECHAINI AND T0.DocDate <= @FECHAFIN
                    GROUP BY T0.SlpCode, T2.SlpName, T1.OcrCode
                    
                    SELECT T0.OcrCode'Centro Benef', T0.SlpCode'Cod Empleado', T0.SlpName'Nombre Empleado', SUM(Costos)'Costos', Sum(Ventas)'Ventas', SUM(Margen)'Margen'
                    FROM @UNIONSAP T0
                    GROUP BY T0.OcrCode, T0.SlpCode, T0.SlpName
                    UNION
                    SELECT T0.OcrCode'Centro Benef', NULL, 'ZZZ-TOTAL CENTRO', SUM(Costos)'Costos', Sum(Ventas)'Ventas', SUM(Margen)'Margen'
                    FROM @UNIONSAP T0
                    GROUP BY T0.OcrCode
                    ORDER BY 1,3
                    END

                     

                    Luego ve a SAP y lo ejecutas con este query

                     

                    DECLARE @VAR INT, @INI DATETIME, @FIN DATETIME
                    SET @VAR = (SELECT TOP 1 T.DocEntry FROM dbo.OINV T INNER JOIN dbo.INV1 Y ON Y.DocEntry = T.DocEntry WHERE T.DocDate BETWEEN '[%0]' AND '[%1]')
                    SET @INI = '[%0]'
                    SET @FIN = '[%1]'
                    
                    EXECUTE dbo.Miguel_SDN_jajaja
                    @FECHAINI = @INI,
                    @FECHAFIN = @FIN

                     

                    Me cuentas si esta bien, mal, pesimo, horrible o si le falta algo hehe

                     

                    Saludos

                     

                    PD: si le cambias el nombre al stored, cambiaselo tambien a la query que lo ejecuta desde el EXECUTE

                     

                    Edited by: Floyola on Jul 19, 2011 4:47 PM

                    • Re: Modificar Reporte de SAP
                      Miguel Angel Ascanio
                      Currently Being Moderated

                      Floyola estoy revisando el reporte, pero hay manera de agregarle una columna que muestre el asiento y el código de la cuenta que seria , , para poder ir al documento?

                       

                      • Re: Modificar Reporte de SAP
                        Felipe Loyola
                        Currently Being Moderated

                        OK OK

                         

                        Eso necesitaba, dejame un momento para pensar

                        -


                         

                        Pero si es asi, el primer reporte debe servite, porque?, porque el costo  de los articulos proviene de la entrega, esta es la que hace el asiento de los costos, y la factura solo genera el asiento de la venta porque el costo ya "deberia" estar hecho en la entrega...Ahora bien, si se saltan la entrega, la factura de igual manera crea el asiento del costo de los articulos...

                        Lo que creo que deberias agregar, es el TransType, asi sabras cuales corresponden a las entregas que son las que traen el costo de los articulos.

                         

                        Espero comentarios

                         

                        Atte.

                         

                        Edited by: Floyola on Jul 19, 2011 5:25 PM

                        • Re: Modificar Reporte de SAP
                          Miguel Angel Ascanio
                          Currently Being Moderated

                          O yo me perdi, o nos confundimos jeje, primero que nada pongamos un nombre al reporte "estado de resultados de vendedor", ahora, a ver tomando un parte del reporte de sap de centro de beneficios:

                           

                          Centro de Beneficio, clave de operaciones (asiento), código de cuenta contable, salidas, ingresos, total.

                           

                          salidas: los gastos del vendedor: sueldo, comisiones, viaticos etc. Esto si lo contempla ese reporte.

                           

                          Ingresos: las ventas que genera este vendedor, todo esto se captura ya que en cada factura se coloca el centro de beneficio.

                           

                           

                          Ahora que hace este reporte, el toma los gastos - ingresos y nos da el total, pero que pasa con estos ingresos, que no son reales, porque el cliente quiere saber cual es el margen real de cada factura, y para saber esto se necesita restar el precio que se coloco en la factura para cada articulo - el costo del articulo, y de esta manera obtener el margen real de la factura, luego si restar salidas - ingresos, y entonces el total si seria margen bruto.

                           

                          No se si me entiendas

                           

                        • Re: Modificar Reporte de SAP
                          Miguel Angel Ascanio
                          Currently Being Moderated

                          Floyolaaa donde estas :s

                          • Re: Modificar Reporte de SAP
                            Felipe Loyola
                            Currently Being Moderated

                            jajaaja

                            Esperame un momento, ya tengo una idea

                            -


                            Esta es mi idea, me cuentas...

                             

                            SELECT T1.TransId, T1.Line_ID, T1.ProfitCode, T1.ShortName, T1.TransType, T1.Debit, T1.Credit, T1.RefDate, T1.DueDate
                            FROM [dbo].[JDT1] T1
                            WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType NOT IN ('13','15') AND T1.ProfitCode = '[%2]'
                            UNION ALL
                            SELECT T1.TransId, T1.Line_ID, T1.ProfitCode, T1.ShortName, T1.TransType, NULL AS 'Debit', 
                            ISNULL((SELECT SUM(Y.Quantity*Y.Price)-SUM(Y.Quantity-Y.StockPrice) FROM OINV Z INNER JOIN INV1 Y ON Y.DocEntry=Z.DocEntry WHERE Z.TransId = T1.Transid),0)'Credit',
                            T1.RefDate, T1.DueDate
                            FROM [dbo].[JDT1] T1
                            WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType = 13 AND  AND T1.ProfitCode = '[%2]'
                            GROUP BY T1.TransId, T1.Line_ID, T1.ProfitCode, T1.ShortName, T1.TransType, T1.RefDate, T1.DueDate
                            ORDER BY 4

                             

                            Atte.

                             

                            Edited by: Floyola on Jul 20, 2011 12:21 PM

                            • Re: Modificar Reporte de SAP
                              Miguel Angel Ascanio
                              Currently Being Moderated

                              Ese hace los mismo que el que me pasaste de sap, muestra el debit con todos los gastos, pero en el credit se trae las facturas, pero no como lo piden :s.

                               

                              aaah yo pienso y no se como darle la vuelta.

                               

                              Veamos el escenario completo floyola:

                               

                              - Compramos un producto, le hicimos entrada con costo 100.

                              - Vamos a vender el articulo, el precio que colocamos para este articulo sera 150, colocamos el centro de beneficio (que seria el vendedor que concreto la venta) por ej. 4001.

                               

                              Que hace el reporte de SAP, en gastos coloca como ya sabes, sueldos, viaticos, etc etc.... En ingreso el reporte coloca 150, y otra columna que es total, aqui seria la resta entre ingreso - gastos.

                               

                              Eso esta bien, pero que quiere el cliente, que en vez de aparecer 150 en ingresos, aparezca 50, por que 50?? porque 50 es el margen real que esta dejando la factura a la empresa, 50 viene de precio 150 - costo 100.

                               

                              Entonces que quieren ver ellos, la ganancia real que le esta dejando cada vendedor y lo que esta gastando.

                              • Re: Modificar Reporte de SAP
                                Mauricio QUINTANA
                                Currently Being Moderated

                                Eso pinta mas para un cubo que para un reporte de sql simple!

                              • Re: Modificar Reporte de SAP
                                Felipe Loyola
                                Currently Being Moderated

                                Estimado

                                 

                                Que hice en el query

                                En los debitos coloque todos los gastos, que segun tu revision estaban OK

                                 

                                En los creditos, coloque la (venta-costo) por factura de venta, ahora si tu me dices que no es el real?

                                 

                                Sugiero revises y me digas cual es el campo en donde esta el costo StockPrice o GrossBuyPr

                                • Re: Modificar Reporte de SAP
                                  Felipe Loyola
                                  Currently Being Moderated

                                  Miguel...habia un error en el query

                                   

                                  Pruebalo asi! y revisa si estan bien las ventas

                                  SELECT T1.TransId, T1.Line_ID, T1.ProfitCode, T1.ShortName, T1.TransType, T1.Debit, T1.Credit, T1.RefDate, T1.DueDate
                                  FROM [dbo].[JDT1] T1
                                  WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType NOT IN ('13','15') AND T1.ProfitCode = '[%2]'
                                  UNION ALL
                                  SELECT T1.TransId, T1.Line_ID, T1.ProfitCode, T1.ShortName, T1.TransType, NULL AS 'Debit', 
                                  ISNULL((SELECT SUM(Y.Quantity*Y.Price)-SUM(Y.Quantity*Y.StockPrice/*GrossBuyPr*/) FROM OINV Z INNER JOIN INV1 Y ON Y.DocEntry=Z.DocEntry WHERE Z.TransId = T1.Transid),0)'Credit',
                                  T1.RefDate, T1.DueDate
                                  FROM [dbo].[JDT1] T1
                                  WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType = 13 AND T1.ProfitCode = '[%2]'
                                  GROUP BY T1.TransId, T1.Line_ID, T1.ProfitCode, T1.ShortName, T1.TransType, T1.RefDate, T1.DueDate
                                  ORDER BY 4

                                   

                                  Atte.

                                  • Re: Modificar Reporte de SAP
                                    Miguel Angel Ascanio
                                    Currently Being Moderated

                                    Excelenteee , muchas gracias,, hombree que tienes un millon de reportes en un cajon o que jaja, mil gracias de verdad, quedo de lujo

                                  • Re: Modificar Reporte de SAP
                                    Miguel Angel Ascanio
                                    Currently Being Moderated

                                    Buenas tardes Floyola,

                                     

                                       Oye una ayuda por favor con respecto al este reporte:

                                     

                                     

                                    SELECT T1.TransId 'Asiento', T1.ProfitCode 'Centro de Beneficio', T1.ShortName 'Cuenta Contable', T1.TransType, T1.Debit 'Gastos', T1.Credit 'Ingresos', T1.RefDate, T1.DueDate
                                    FROM [dbo].[JDT1] T1
                                    WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType NOT IN ('13','15') AND T1.ProfitCode = '[%2]'
                                    UNION ALL
                                    SELECT T1.TransId, T1.ProfitCode, T1.ShortName, T1.TransType, NULL AS 'Debit', 
                                    ISNULL((SELECT SUM(Y.Quantity*Y.Price)-SUM(Y.Quantity*Y.StockPrice/*GrossBuyPr*/) FROM OINV Z INNER JOIN INV1 Y ON Y.DocEntry=Z.DocEntry WHERE Z.TransId = T1.Transid),0)'Credit',
                                    T1.RefDate, T1.DueDate
                                    FROM [dbo].[JDT1] T1
                                    WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType = 13 AND T1.ProfitCode = '[%2]'
                                    GROUP BY T1.TransId, T1.ProfitCode, T1.ShortName, T1.TransType, T1.RefDate, T1.DueDate
                                    ORDER BY 4

                                     

                                     

                                    Hay alguna manera de que salga el nombre del centro de beneficio y el codigo, sabes que tu colocas ProfitCode =  '[%2]', y cuando la persona abre el fitro solo le salen los codigos, habra forma que al abrir esa tabla le salga el codigo y el nombre?? Yo intente llamando a la tabla OPRC, INNER JOIN OPRC T2 ON T1.ProfitCode = T2.PrcName, pero esto me daba error.

                                     

                                    Un par de cosas mas, en este reporte hay una columna que se trae el numero del asiento, sabes porque no se trae la flecha amarilla para que el usuario vaya al asiento directamente? Y como se le podria agregar una columna adicional que muestre el documento que tiene el asiento, si es RF, PP...

                                     

                                    Saludos.

                                    • Re: Modificar Reporte de SAP
                                      Felipe Loyola
                                      Currently Being Moderated

                                      Miguel

                                       

                                      Las Flechas de enlace desaparecen al hacer una sentencia de UNION, PIVOT, UNPIVOT...Nada que hacer al respecto

                                       

                                      Prueba este query, le agregue lo que pediste, si aparecen tipos de documento otros, los agregas al CASE

                                       

                                      SELECT T1.TransId 'Asiento', 
                                      CASE T1.TransType
                                      WHEN '13' THEN 'Factura Cliente'
                                      WHEN '14' THEN 'N/C Cliente'
                                      WHEN '15' THEN 'Entrega'
                                      WHEN '18' THEN 'Factura Proveedor'
                                      WHEN '19' THEN 'N/C Proveedor'
                                      WHEN '20' THEN 'Entrada Mercaderias OP'
                                      WHEN '21' THEN 'Devolucion Existencias'
                                      WHEN '59' THEN 'Entrada de mercancías'
                                      WHEN '67' THEN 'Traslado de stocks'
                                      WHEN '30' THEN 'Asiento contable'
                                      ELSE 'Otros'
                                      END 'Tipo Documento',
                                      T1.ProfitCode 'Cod.Centro de Beneficio', T2.OcrName'Centro de Beneficio', T1.ShortName 'Cuenta Contable', T1.BaseRef'# Doc interno', T1.Debit 'Gastos', T1.Credit 'Ingresos', T1.RefDate, T1.DueDate
                                      FROM [dbo].[JDT1] T1
                                      INNER JOIN [dbo].[OOCR] T2 ON T2.OcrCode=T1.ProfitCode
                                      WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType NOT IN ('13','15') AND T2.OcrName='[%2]'
                                      UNION ALL
                                      SELECT T1.TransId, 
                                      CASE T1.TransType
                                      WHEN '13' THEN 'Factura Cliente'
                                      WHEN '14' THEN 'N/C Cliente'
                                      WHEN '15' THEN 'Entrega'
                                      WHEN '18' THEN 'Factura Proveedor'
                                      WHEN '19' THEN 'N/C Proveedor'
                                      WHEN '20' THEN 'Entrada Mercaderias OP'
                                      WHEN '21' THEN 'Devolucion Existencias'
                                      WHEN '59' THEN 'Entrada de mercancías'
                                      WHEN '67' THEN 'Traslado de stocks'
                                      WHEN '30' THEN 'Asiento contable'
                                      ELSE 'Otros'
                                      END 'Tipo Documento',
                                      T1.ProfitCode'Cod.Centro de Beneficio', T2.OcrName'Centro de Beneficio', T1.ShortName, T1.BaseRef, NULL AS 'Debit', 
                                      ISNULL((SELECT SUM(Y.Quantity*Y.Price)-SUM(Y.Quantity*Y.StockPrice/*GrossBuyPr*/) FROM OINV Z INNER JOIN INV1 Y ON Y.DocEntry=Z.DocEntry WHERE Z.TransId = T1.Transid),0)'Credit',
                                      T1.RefDate, T1.DueDate
                                      FROM [dbo].[JDT1] T1
                                      INNER JOIN [dbo].[OOCR] T2 ON T2.OcrCode=T1.ProfitCode
                                      WHERE T1.[RefDate] >= '[%0]'  AND  T1.[RefDate] <= '[%1]' AND T1.TransType = 13 AND T2.OcrName='[%2]'
                                      GROUP BY T1.TransId, T1.ProfitCode, T1.ShortName, T1.TransType, T1.RefDate, T1.DueDate, T2.OcrName, T1.baseRef
                                      ORDER BY 4

                                       

                                      Saludos

                                       

                                • Re: Modificar Reporte de SAP
                                  María de los Angeles Merecías Pérez
                                  Currently Being Moderated

                                  el costo del artículo esta en oitm.avgprice pero te recomiendo hacer un campo de usuario en la tabla de inv1 por que dentro de la misma el que dice stockprice no guarda el costo de venta siempre, si no solo cuando se realiza la entrega.

                                   

                    • Re: Modificar Reporte de SAP
                      Miguel Angel Ascanio
                      Currently Being Moderated

                      Otra cosa, en la columna que dice costos, que estas tomando? solo el costo del artículo? es que para obtener la ganancia real, el cual tu llamas en el reporte "margen", deberia ser el costo de ariculo, otra columna que contemple los gastos del empleado, como sueldo,comisiones, viaticos etc... y todo eso restale a la factura y asi poder obtener el margen real.

                       

                      Por ej. en el reporte de centro de beneficios muestra todos estos gastos, las ventas, pero no muestra un margen real ya que no resta con el costo del articulo.

                       

Actions