Las bibliotecas están diseñadas para agrupar variables, funciones y procedimientos relacionados dentro de un objeto común. Estos miembros de la biblioteca pueden exponerse utilizando la palabra clave PULBIC, o configurarse para ser consumibles solo dentro de la propia biblioteca utilizando la palabra clave PRIVATE.
Paso 1: cree una carpeta de biblioteca
Regrese a SAP Web IDE para SAP HANA y haga clic derecho en el src
carpeta y seleccione Nuevo, entonces Carpeta.
Ingrese el nombre de la carpeta como bibliotecas y haga clic en Bueno.
Hecho
Inicie sesión para responder la pregunta
Paso 2: crear una nueva biblioteca definida por el usuario
Haga clic derecho en la carpeta de bibliotecas y seleccione Nuevo, entonces Artefacto de base de datos.
Ingrese el nombre del archivo como masterdata
, establezca el tipo de artefacto como .hdblibrary
y haga clic en Bueno.
Hecho
Inicie sesión para responder la pregunta
Paso 3: vaya al shell de la biblioteca
Vaya al shell de la biblioteca como se muestra aquí.
LIBRARY "masterdata"
LANGUAGE SQLSCRIPT AS
BEGIN
END;
Hecho
Inicie sesión para responder la pregunta
Paso 4: definir una variable pública
Entre las declaraciones BEGIN y END, defina un miembro de biblioteca pública variable llamado rowcount
con tipo int.
public variable rowcount int;
Hecho
Inicie sesión para responder la pregunta
Paso 5: definir una función pública
Después de la variable pública, defina una función pública de miembro de la biblioteca como se muestra aquí.
public function "employee_exists"(
in im_employee_id nvarchar(10) )
returns res boolean as
begin
declare lv_count int;
select count(*) into lv_count from "MD.Employees"
where employeeid = im_employee_id;
if lv_count > 0 then
res = true;
else
res = false;
end if;
end;
Hecho
Inicie sesión para responder la pregunta
Paso 6: definir los procedimientos públicos
Después de la función pública, dos bibliotecarios definieron un procedimiento público, uno llamado get_employee_data
y el otro get_business_partner_data
.
public procedure "get_employee_data"(
out ex_employees "MD.Employees" )
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
AS
begin
ex_employees = select * from "MD.Employees";
rowcount = record_count(:ex_employees);
end;
public procedure "get_business_partner_data"(
out ex_businesspartners "MD.BusinessPartner" )
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
AS
begin
ex_businesspartners = select * from "MD.BusinessPartner";
rowcount = record_count(:ex_businesspartners);
end;
Hecho
Inicie sesión para responder la pregunta
Paso 7: revise el código de finalización
Esto debería verse como el código completo.
LIBRARY "masterdata"
LANGUAGE SQLSCRIPT AS
BEGIN
public variable rowcount int;
public function "employee_exists"(
in im_employee_id nvarchar(10) )
returns res boolean as
begin
declare lv_count int;
select count(*) into lv_count from "MD.Employees"
where employeeid = im_employee_id;
if lv_count > 0 then
res = true;
else
res = false;
end if;
end;
public procedure "get_employee_data"(
out ex_employees "MD.Employees" )
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
AS
begin
ex_employees = select * from "MD.Employees";
rowcount = record_count(:ex_employees);
end;
public procedure "get_business_partner_data"(
out ex_businesspartners "MD.BusinessPartner" )
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
AS
begin
ex_businesspartners = select * from "MD.BusinessPartner";
rowcount = record_count(:ex_businesspartners);
end;
END;
Hecho
Inicie sesión para responder la pregunta
Paso 8: guarde su trabajo
Salvar tu trabajo.
Hecho
Inicie sesión para responder la pregunta
Paso 9: cree un procedimiento
Utilice lo que ha aprendido y cree un nuevo procedimiento en la denominada carpeta de procedimientos. get_master_data
. Debido a que nuestros procedimientos de biblioteca actualizan las variables de la biblioteca, también necesitamos leer / escribir nuestro procedimiento exhaustivo, así que asegúrese de LEER DETALLES SQL de este procedimiento como se muestra.
Hecho
Inicie sesión para responder la pregunta
Paso 10: definir los parámetros de salida
Ingrese los parámetros de salida en la firma del procedimiento.
out ex_emp_exists boolean,
out ex_employees "MD.Employees",
out ex_emp_count int,
out ex_business_partners "MD.BusinessPartner",
out ex_bp_count int
Hecho
Inicie sesión para responder la pregunta
Paso 11: Aprovechar a los miembros de la biblioteca del procedimiento
Ingrese el código entre las declaraciones BEGIN y END. Llame primero a la función de escalado y envíe el resultado al parámetro de salida. Luego llame a los procedimientos y reenvíe el resultado a los parámetros de salida, así como reenvíe la variable de biblioteca a los parámetros de salida.
ex_emp_exists = "masterdata":"employee_exists"('199999');
call "masterdata":"get_employee_data"( ex_employees );
ex_emp_count = "masterdata":rowcount;
call "masterdata":"get_business_partner_data"( ex_business_partners );
ex_bp_count = "masterdata":rowcount;
Hecho
Inicie sesión para responder la pregunta
Paso 12: revise el código de finalización
El código completo debería tener el mismo aspecto que este.
PROCEDURE "get_master_data"(
out ex_emp_exists boolean,
out ex_employees "MD.Employees",
out ex_emp_count int,
out ex_business_partners "MD.BusinessPartner",
out ex_bp_count int
)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
--DEFAULT SCHEMA <default_schema_name>
AS
BEGIN
ex_emp_exists = "masterdata":"employee_exists"('199999');
call "masterdata":"get_employee_data"( ex_employees );
ex_emp_count = "masterdata":rowcount;
call "masterdata":"get_business_partner_data"( ex_business_partners );
ex_bp_count = "masterdata":rowcount;
END
Hecho
Inicie sesión para responder la pregunta
Paso 13: guarde, cree, ejecute y verifique los resultados
Utilice lo que ha aprendido y guarde su trabajo, desarrolle el módulo. Luego regrese al Explorador de la base de datos y llame al procedimiento y verifique los resultados.
Hecho
Inicie sesión para responder la pregunta