Flex SQL 是一种应用程序方法,可创建数据库触发器(插入之后或更新之后)以验证、插入或更新所有 HxGN EAM 数据库对象。在定义 SQL*Plus 或 PL/SQL 语句时需手动使用 Flex SQL。这些语句的主要功能是创建和更新接口事务的账户明细、验证业务处理合规性的事务以及自定义 HxGN EAM,以满足组织的需求。
特别是,HxGN EAM 中将连接到外部(第三方)应用程序的任何事务都需要创建和更新账户明细。请参阅以下主题:
Flex SQL 必须写入 SQL*Plus 或 PL/SQL 语法。SQL*Plus 是用于发出数据库级别编程命令的 Oracle 工具,且基于结构化查询语言 (SQL)。使用 SQL,您可以通过简单的语言语法插入、更新、查询或删除数据库记录。SQL 语句以命令字开头,后接要在命令中选择信息的规范,后面再接要从中选择信息的对象。查询通常用分号 (;) 终止。就 Flex SQL 使用而言,分号 (;) 终止符应始终排除在外。系统将动态编译和执行语法,以便不需要终止符。
请参阅以下语法例如:
insert into r5accountdetail
acd_code, acd_rentity, acd_segment1, acd_segment2)
select rql_acd, 'REQL', '01', rql_expensetype
from r5requislines
where rowid = :rowid
Flex SQL 还会使用另一种结构化查询语言,即编程语言/结构化查询语言 (PL/SQL)。系统将使用 PL/SQL 处理数据块中的命令,而不是使用单个 SQL 语句。数据块是相关的 SQL 语句组,可嵌套在较大的数据块中,从而能够组织 SQL 语法以便一次执行多个命令。
请参阅以下 PL/SQL 语法例如:
DECLARE
cpar r5parts.par_code%type;
cref r5catalogue.cat_ref%type;
csupp r5companies.com_code%type;
cursor rql is
select rql_ref, rql_part, rql_supplier, rql_rstatus
from r5requislines
where rowid = :rowid;
BEGIN
OPEN rql;
FETCH rql into cref, cpar, csupp, crstat;
CLOSE rql;
IF cref is not null
AND crstat = 'A' THEN
UPDATE r5catalogue
SET cat_ref = cref
WHERE cat_part = cpar
AND cat_supplier = csupp;
END IF;
END;
SQL*Plus 和 PL/SQL 例如将放置在 Flex SQL 表单上的 SQL 语句中。在这些示例中,系统将触发 R5REQUISLINES 表格;SQL*Plus 示例是插入之后触发器,而 PL/SQL 示例是更新之后触发器。