cancel
Showing results for 
Search instead for 
Did you mean: 

Leer variable de Store

Former Member
0 Kudos

Saludos

Desarrolle el siguiente store procedure el cual me permite tener el recorrido de mis choferes:

-


ALTER PROCEDURE [dbo].[SBO_SP_Listar_Recorrido]

@Chofer nVarchar(8)

@Vehiculo nVarchar(15)

AS

BEGIN

-- SET NOCOUNT ON added to prevent extra result sets from

-- interfering with SELECT statements.

SET NOCOUNT ON;

With c as

(

SELECT

'TRACTO' = VEH.Name,

'CONDUCTOR' = CHO.U_BPP_CHNO,

'FECHA PARTIDA' = RDT.U_TC_FECHA,

'ORIGEN' = RDT.U_TC_ORIGEN,

'DESTINO' = RDT.U_TC_DESTINO,

'TIPO' = Case RDT.U_TC_TIPOVIAJE When '01' Then 'IDA' Else 'VUELTA' End,

'PEDIDO' = RDT.U_TC_PEDIDO,

'CLIENTE' = ORD.CardName,

'CARGA' = ORD.U_VTH_ARROZ

From

[@TC_RECVEHCB] RCB

Inner Join [@TC_RECVEHDT] RDT On RCB.DocEntry = RDT.DocEntry

Inner Join [@BPP_CONDUC] CHO On CHO.Code = RDT.U_TC_CODCHF

Inner Join [@BPP_VEHICU] VEH On VEH.Code = RCB.U_TC_PLACA

Inner Join [ORDR] ORD On RDT.U_TC_PEDIDO = ORD.DocNum

Where

RDT.U_TC_CONSOLIDADO = 'N'

And (IsNull(@Chofer, '') = '' Or RDT.U_TC_CODCHF = IsNull(@Chofer, ''))

And (IsNull(@Vehiculo, '') = '' Or RCB.U_TC_PLACA = IsNull(@Vehiculo, ''))

UNION

SELECT

'TRACTO' = VEH.Name,

'CONDUCTOR' = CHO.U_BPP_CHNO,

'FECHA PARTIDA' = RDT.U_TC_FECHA,

'ORIGEN' = RDT.U_TC_ORIGEN,

'DESTINO' = RDT.U_TC_DESTINO,

'TIPO' = Case RDT.U_TC_TIPOVIAJE When '01' Then 'IDA' Else 'VUELTA' End,

'PEDIDO' = RDT.U_TC_PEDIDO,

'CLIENTE' = 'VARIOS',

'CARGA' = 'CONSOLIDADO'

From

[@TC_RECVEHCB] RCB

Inner Join [@TC_RECVEHDT] RDT On RCB.DocEntry = RDT.DocEntry

Inner Join [@BPP_CONDUC] CHO On CHO.Code = RDT.U_TC_CODCHF

Inner Join [@BPP_VEHICU] VEH On VEH.Code = RCB.U_TC_PLACA

Inner Join [ORDR] ORD On RDT.U_TC_PEDIDO = ORD.DocNum

Where

RDT.U_TC_CONSOLIDADO = 'Y'

And (IsNull(@Chofer, '') = '' Or RDT.U_TC_CODCHF = IsNull(@Chofer, ''))

And (IsNull(@Vehiculo, '') = '' Or RCB.U_TC_PLACA = IsNull(@Vehiculo, ''))

)

Select * From c

END

-


Este procedimento funciona bien y me lista todo como quiero. Lo que no se como realizar es en el querie manager leer mi consulta puesto que mi tabla @bpp_conduc es una tabla definida por usuario y no se como llamarla

Podria ser algo asi:

Declare @CHOFERe nVarchar(8);

-- (Select Top 1 T1.CODE From [dbo].[@BPP_CONDUC] T1 Where CODE = '[%0]')

Set @CHOFER = '[%0]'

EXECUTE SBO_SP_Listar_Recorrido @CHOFER

Alguna ayuda

Accepted Solutions (1)

Accepted Solutions (1)

former_member188440
Active Contributor
0 Kudos

iNTENTA CON


/*SELECT FROM [dbo].[@BPP_CONDUC] T1] T1*/         
 declare  @CHOFER as nvarchar (8)          
 /* WHERE */                                  
 set @CHOFER= /* T1.CODE */ '[%0]'

EXEC SBO_SP_Listar_Recorrido @CHOFER

Esto guardalo en sap como una consulta de usuario

A ver si te sirve

Former Member
0 Kudos

Muchas gracias ya este codigo me estaba haciendo torturando. Una consulta, si tengo mas variables simplemente le agrego a ese codigo las varables que tengo no?

Cuando me corre esa consulta por SAP al momento de escoger el codigo me lee el nombre de la variable en este caso CODE. Habria forma de cambiarle o simplemente lee la variable.

Una consulta fuera de SAP como hiciste para que en este foro el codigo que me enviaste este dentro de ese rectangulo que se ve mejor

Former Member
0 Kudos

Por ejemplo mi store tiene una variable mas

/SELECT FROM [dbo].[@BPP_CONDUC] T1] T1/

/SELECT FROM [dbo].[@BPP_VEHICU] T2] T2/

declare @CHOFER as nvarchar (8)

declare @VEHICULO as nvarchar (20)

/* WHERE */

set @CHOFER= /* T1.NAME */ '[%0]'

set @VEHICULO= /* T2.NAME */ '[%0]'

EXEC SBO_SP_Listar_Recorrido @CHOFER, @VEHICULO

estaria bien de esta forma

marco_ramirez
Active Contributor
0 Kudos

Para que tu código se vea dentro de ese rectángulo que mencionas debes usar:

la palabra code entre {} en el inicio y fin de tu código.

Al lado derecho puedes ver varias opciones para dar formato al texto o insertar un link, por ejemplo

Espero haber aclarado

Former Member
0 Kudos

Si me funciona con mas variables, Una pregunta como puedo hacer para que en lugar que me lea la variable code de mi tabla de usuario, me lea la variable name

Lo reemplaze code por name pero no me muestra info

former_member188440
Active Contributor
0 Kudos

Como pusiste tu codigo?

Answers (1)

Answers (1)

Former Member
0 Kudos

Hola Luis, disculpa me podrías ayudar necesito crear un store procedure tengo el store procedure creado el query para que lo llame sap, el problema que tengo es que no se como crearlo para que me aparezca en Store Procedure ej. dbo.LibroCompras

perdón que yo se estas solicitando ayuda de como hacer la llamada de tu store procedure, pero a cambio de tu ayuda te dejo el query que llama el SP en SAP del SP que esta creado en SQL.


Declare @Inicio DateTime
Declare @final DateTime
Select @Inicio = (a1.RateDate) from dbo.ORTT a1 where a1.RateDate = '[%0]'
Select @final = (a2.RateDate) from dbo.ORTT a2 where a2.RateDate = '[%1]'
exec dbo.LibroCompras @inicio, @Final

Espero te se ayuda y me puedas ayudar, lo que hace esto es que me devuelve todas las facturas de proveedores, si necesitas ver el SP con gusto te lo puedo proporcionar, tal vez por correo que aca no pude colocar, se ve todo raro por eso no lo coloque.

Saludos y de antemano muy agradecido por tu ayuda.

Former Member
0 Kudos

Segun te entiendo lo que quieres es crear un store procedure, de ser asi es simple:

Ingresas a tu Base de datos luego escoges programmability luego click en store procedure

Ahi se te van a listar todos los store que tiene tu BD.

Si quieres crear un nuevo store. Le das click derecho en el despleglable Store procedure y escoges new store procedure

Te va a abrir la ventana de desarrollo con ya parametros donde solo escribes tu codigo

Me avisas cualquier asunto

Gracias por el codigo lo voy a probar

Former Member
0 Kudos

Segun colocaste configure el codgo, de la siguiente manera:

Declare @CHOFER NVARCHAR(8)

Declare @VEHICULO NVARCHAR(10)

Select @CHOFER = (a1.RateDate) from dbo.@BPP_CONDUC a1 where a1.RateDate = '[%0]'

Select @VEHICULO = (a2.RateDate) from dbo.@BPP_CONDUC a2 where a2.RateDate = '[%1]'

exec SBO_SP_Listar_Recorrido @CHOFER, @VEHICULOS

Pero me sale: Contrato de Servicio OCTR

Former Member
0 Kudos

Luis es un error que te da o te despliega esa informacion, creo lo que tendrias que hacer es que en vez de hacer tu comparacion en la misma tabla de usuario dbo.@BPP_CONDUC hazla con ordr y mira que informacion te devuelve.

Saludos y gracias por la ayuda en la creacion de SP.

Former Member
0 Kudos

Realize un select a esa tabla pero no tengo los datos que quiero