on 03-31-2011 1:50 AM
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
Encontre la solución en otro foro luego subo la respuesta
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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.
Como lo pones en SAP con las variables?
Puedes poner el codigo con las variables en SAP ? sin datos en codigo duro?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.