on 2018 Oct 18 2:54 PM
Buenos días
Hice un SP corto para hacer una transformación de una cadena de caracteres a SHA1:
ALTER PROCEDURE [dbo].[JZ_CUFESHA]
@Docnum int = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @HashThis nvarchar(4000)
SET @HashThis = CONVERT(nvarchar(4000),(SELECT U_CUFE FROM OINV WHERE DOCNUM = @Docnum))
SELECT HASHBYTES('SHA1', @HashThis)
END
Al ejecutarlo en SQL Server Manager, funciona correctamente; sin embargo al intentarlo ejecutar desde el QueryManager
/*select from [dbo].[OINV] t0*/
declare @CUST INT
/* where*/
set @CUST = /* t0.U_CUFE */ (SELECT $[OINV.Docnum])
EXEC JZ_CUFESHA @CUST
Arroja el siguiente error:
1). [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'OINV.Docnum'. 2). [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement '' (SWEI) (s) could not be prepared.
Ven algo mal escrito en la sintaxis o les ha pasado alguna vez lo mismo? (Ya intenté correr la función HASHBYTES directamente desde el QM, pero también marca error)
Hola Jonathan:
La funcion HASHBYTES, devuelve un valor VARBINARIO, el cual no es reconocido naturalmente por el SAP.
En tu SP, deberías de convertir el resultado del HASH así: SELECT CONVERT(VARCHAR(MAX),HASHBYTES('SHA1', @HashThis),1)
De esta forma obtendras el resultado como texto, el cual si es un valor reconocible por SAP.
Slds,
Oscar.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola,
Lo mejor es almacenarlo en un campo de texto adecuado para el tamaño potencial que pueda tener el resultado que puedas recibir, si en el futuro lo vas a utilizar en su formato original, debes tener en cuenta cambiarlo en la ejecucion de la consulta o aplicacion.
Slds,
Oscar.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Una pregunta adicional Oscar, còmo puedo almacenar ese campo VARBINARIO en un campo de usuario en SAP, pues la respuesta almacenada del campo aparece en NULL (uso el campo LONGTEXT) a pesar que en el documento (factura) se ve el valor correctamente pero no lo almacena la base de datos.
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
109 | |
9 | |
8 | |
6 | |
5 | |
5 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.