cancel
Showing results for 
Search instead for 
Did you mean: 

Problema con SP, para Libro Mayor

Former Member
0 Kudos

Que tal!

me doy otra vuelta para pedir ayuda con este SP:

USE [SBO_DESARROLLO]
GO
/****** Object:  StoredProcedure [dbo].[SP_LibroMayor]    Script Date: 03/30/2011 17:16:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SP_LibroMayor] 
	@FechaIni datetime,	
	@FechaFin datetime,
	@Nivel int	

AS
BEGIN
	SET NOCOUNT ON; 

/*LIBRO MAYOR CELULARSTAR S.A. DE C.V.*/

CREATE TABLE #MAYOR3 
                                                   (
                                                    Cuenta nvarchar(15),
                                                    Nombre nvarchar(100),
                                                    SI numeric(19,06),
                                                    Debe numeric(19,6),
                                                    Haber numeric(19,6),
                                                    SF numeric(19,6)
                                                   );
INSERT INTO #MAYOR3
                                               SELECT A.[Account] 'No.Cta',
                                                               A1.[AcctName] 'NombredelaCuenta',
                                                              (select sum(B.[Credit])-sum(B.[Debit])
                                                               from JDT1 B 
																 left join OACT B1 on B.[Account] = B1.[AcctCode]
															   where B.[TaxDate]   between (DATEADD(MONTH,-1,@FechaIni)) and (DATEADD(MONTH,-1,@FechaFin)) and 
															                 B1.[AcctCode] = A1.[AcctCode] ) 'Saldo Inicial',
                                                               sum(A.[Credit])'Debe',
                                                               sum(A.[Debit])'Haber',
                                                              0.00 'Saldo Final'                                                                                
FROM JDT1 A
													LEFT JOIN OACT A1 ON A.[Account] = A1.[AcctCode]
											   WHERE A.[TaxDate]  BETWEEN @FechaIni AND @FechaFin AND
											                    A1.[Levels] = @Nivel
											    GROUP BY A.[Account], A1.[AcctName], A1.[AcctCode]
											    ORDER BY A.[Account]

SELECT Cuenta,
                Nombre,
                SI,
                Debe,
                Haber,
                SI+Debe-Haber 'SF'
FROM #MAYOR3
DROP TABLE #MAYOR3
END

En SQL corre de maravilla, explico, en en Query Manager de SAP puse esta consulta:

/*SELECT FROM [dbo].[JDT1] T0*/
DECLARE @FechaIni AS DATETIME
/* WHERE */SET @FechaIni = /* T0.TaxDate */ '20110301'  

/*SELECT FROM [dbo].[JDT1] T0*/
DECLARE @FechaFin AS DATETIME/* 
WHERE */SET @FechaFin = /* T0.TaxDate */ '20110315' 

/*SELECT FROM [dbo].[OACT] T1*/
DECLARE @Nivel as int
/*WHERE*/SET @Nivel = /*T1.Level*/'4'

EXEC [dbo].[SP_LibroMayor] @FechaIni, @FechaFin, @Nivel

con los datos asignados ahi a las variables la consulta se ejecuta de manera correcta, pero si yo pongo los comodines para capturar variables de SAP ('[%0]'), me devuelve la cinta roja con el msg 'Contrato de Servicios - OCTR'

Si alguien tiene idea, Gracias por la ayuda

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Encontre la solución en otro foro luego subo la respuesta

Former Member
0 Kudos

Saludos

como pudiste solucionar tu caso, tengo un reporte que en SQL tambien me corre bien. Este es mi store

ALTER PROCEDURE [dbo].[SBO_SP_VTH_DocumentosPorPagarTODOS]

@FECHAINI DATETIME, @FECHAFIN DATETIME

AS

BEGIN

select

OPCH.CardName as RazonSocial,

'FACTURA' as TipoDoc,

OPCH.DocNum as NroSAP,

OPCH.NumAtCard as NroDoc,

OPCH.DocDueDate as FechaVencimientoDoc,

(OPCH.DocTotal-OPCH.PaidToDate) as TotalSoles,

(OPCH.DocTotalFC-OPCH.PaidFC) as TotalDolares

FROM OPCH INNER JOIN OCRD ON OPCH.CardCode = OCRD.Cardcode

where OPCH.canceled = 'N' and OPCH.DocStatus = 'O'

UNION

select

OBOE.CardName as RazonSocial,

'LETRA' as TipoDoc,

OBOE.BoeNum as NroSAP,

OBOE.U_VTH_NUNICO as NroDoc,

OBOE.DueDate as FechaVencimientoDoc,

OBOE.BOESum as TotalSoles,

OBOE.BoeSumFC as TotalDolares

FROM OBOE INNER JOIN OCRD ON OBOE.CardCode = OCRD.Cardcode

where OBOE.BoeStatus IN ('G', 'D')

UNION

select

ORPC.CardName as RazonSocial,

'N/C' as TipoDoc,

ORPC.DocNum as NroSAP,

ORPC.NumAtCard as NroDoc,

ORPC.DocDueDate as FechaVencimientoDoc,

((ORPC.DocTotal-ORPC.PaidToDate)*-1) as TotalSoles,

((ORPC.DocTotalFC-ORPC.PaidFC)*-1) as TotalDolares

FROM ORPC INNER JOIN OCRD ON ORPC.CardCode = OCRD.Cardcode

where ORPC.canceled = 'N' and ORPC.DocStatus = 'O'

order by RazonSocial, FechaVencimientoDoc

END

-


Este es el codigo que coloco en el query en SAP

DECLARE @Tempo DATETIME, @FECHAINI DATETIME, @FECHAFIN DATETIME

SET @TEMPO = (SELECT TOP 1 DocEntry FROM OINV WHERE DocDate >= '[%0]' AND DocDate <= '[%1]'

SET @FECHAINI = '[%0]'

SET @FECHAFIN = '[%1]'

EXEC SBO_SP_VTH_Documentospor pagartodos

@FECHA1 = @FECHAINI,

@FECHA2 = @FECHAFIN

Cuando lo corro en el SAP me sale el error de Contratos de servicios OCTR que puede ser

Former Member
0 Kudos

Hola Luis!

Este es el código que según mi experiencia debiera servirte:


/*SELECT FROM [DBO].[OINV]*/
DECLARE @FECHAINI datetime
/*WHERE*/
SET @FECHAINI = /*OINV.[DocDate]*/ '[%0]' 
/*SELECT FROM [DBO].[OINV]*/
DECLARE @FECHAFIN datetime
/*WHERE*/
SET @FECHAFIN = /*OINV.[DocDate]*/ '[%1]' 

EXEC  dbo.SBO_SP_VTH_DocumentosPorPagarTODOS @FECHAINI, @FECHAFIN

voy ahí Felipe!

he quitado la variable @Tempo ya que con la estructura que te di ya no se necesita aplicar el procedimiento que en otro post te explicaba Felipe, Porque?

Te explico lo que alcance a entender:

Cuando pegas este código en el Query Manager la parte de SAP que interpreta este y lo lleva al servidor de SQL debe tener parámetros de que los datos que pedirá existen en la base de datos, bien pudieses cambiar la tabla OINV por OPCH ya que al estar comentarizado "/**/" no influye en el resultado, y este seria el mismo siempre y cuando la tabla tenga un campo fecha.

Ahora bien en el código que posteas veo algunos detalles que reviso y te observo por ahora proba esto y nos contas como te va...

[Aquí|; tenes ampliado lo que te explico, ve a la respuesta de István Korös.

Edited by: AlexMeza on Jun 28, 2011 5:49 PM

Edited by: AlexMeza on Jun 28, 2011 5:57 PM

Edited by: AlexMeza on Jun 29, 2011 8:13 AM

0 Kudos

Buenas tardes Alexander,

Una consulta amigo, como pudiste resolver el problema con las variables desde el query manager? podrias decirme por favor?

Gracias de antemano.


Saludos

Former Member
0 Kudos

Hola Pablo,

Aquí tenes los querys con los que logro ejecutar cualquier SP desde el query manager:


DECLARE @Int int,

                   @StartDate datetime,

                   @EndDate datetime;

SET @Int = (SELECT TOP 1 T0.[DocNum] FROM OINV T0 WHERE T0.[TaxDate] BETWEEN '[%0]' AND '[%1]')

SET @StartDate = '[%0]'

SET @EndDate = '[%1]';

exec dbo.[LibrodeConsumidorFinal] @StartDate, @EndDate

/*SELECT FROM [dbo].[OINV] T0*/

DECLARE @Fecha as datetime

/*WHERE */SET @Fecha = /* T0.TaxDate */ '[%0]'

/*SELECT FROM [dbo].[OINV] T0*/

DECLARE @Fecha2 as datetime

/*WHERE */SET @Fecha2 = /* T0.TaxDate */ '[%1]'

/*SELECT FROM [dbo].[OITM] T0*/

DECLARE @Articulo varchar(100)

/*WHERE */SET @Articulo = /* T0.ItemCode */ '[%2]'

EXEC [dbo].[SP_KARDEX] @Fecha, @Fecha2, @Articulo

Si necesitas mas variables, únicamente decláralas basándote en la sintaxis de las otras.

Cualquiera de los dos debe ejecutar tu SP, caso contrario envíame un correo (alexander.281187(at)gmail.com) con tu SP y el codigo que estas dejando en el query manager.

Quedo a la orden para tus comentarios.

former_member188440
Active Contributor
0 Kudos

Como lo pones en SAP con las variables?

Puedes poner el codigo con las variables en SAP ? sin datos en codigo duro?

Former Member
0 Kudos

Veamos si logro entender tus preguntas Mauricio,

Como lo pones en SAP con las variables? en el query manager uso el comodin '[%0]' para la captura de variables, esto lleva a sql los datos que sirven como parametro para realizar la consulta.

Puedes poner el codigo con las variables en SAP ? sin datos en codigo duro? es precisamente el impase, si yo escribo el rango de fechas '20110201' and '20110228' la consulta corre de manera correcta, pero si yo quiero capturar las variable ejecutando desde el qry manager obtengo el error que mencionaba antes.

former_member188440
Active Contributor
0 Kudos

jaja me refiero que publiques el codigo pues

felipe_loyolarodriguez
Active Contributor
0 Kudos

Alex, pude agregar las variables de las fechas

pero no me deja pasar la del nivel


/*SELECT FROM [dbo].[JDT1] T0*/
DECLARE @FechaIni AS DATETIME
/* WHERE */SET @FechaIni = /* T0.TaxDate */ '[%0]'  
 
/*SELECT FROM [dbo].[JDT1] T0*/
DECLARE @FechaFin AS DATETIME
/*WHERE */SET @FechaFin = /* T0.TaxDate */ '[%1]' 
 
/*SELECT FROM [dbo].[OACT] T1*/
DECLARE @Nivel as int
/*WHERE*/SET @Nivel = /*T1.Level*/'4'
 
EXEC [dbo].[SP_LibroMayor] @FechaIni, @FechaFin, @Nivel

former_member188440
Active Contributor
0 Kudos

La estan mandando como int? o var

felipe_loyolarodriguez
Active Contributor
0 Kudos

Como INT y Var no me lo pasa