Forstå Flex-forretningsregler
Flex SQL er en programmeringsmetode for å lage databasetriggere (post-insert eller post-update) for å validere, sette inn eller oppdatere alle Infor EAM-databaseobjekter. Flex SQL brukes manuelt gjennom definisjonen av SQL*Plus- eller PL/SQL-setninger. Den primære funksjonen til disse setningene er å opprette og oppdatere kontoopplysninger for grensesnittransaksjoner, validere transaksjoner for samsvar for forretningsprosesser og tilpasse Infor EAM for å møte behovene til organisasjonen din.
Opprettelse og oppdatering av kontoopplysninger er mer spesifikt nødvendig for enhver transaksjon som kommer fra Infor EAM som skal tilkobles et eksternt (tredjeparts) program. Se disse emnene:
Definere kontoopplysningskrav for Oracle-hovedbok
Flex SQL må være skrevet i SQL*Plus- eller PL/SQL-syntaks. SQL*Plus er Oracles verktøy for utstedelse av programmeringskommandoer på databasenivå, og det er basert på Structured Query Language (SQL). SQL gjør at du kan sette inn, oppdatere, utføre spørringer og slette i databaseposter med en enkel språksyntaks. SQL-setninger begynner med et kommandoord, etterfulgt av en angivelse av hvilken informasjon som skal velges innenfor kommandoen, etterfulgt av objektet å velge informasjon fra. Spørringen vil vanligvis avsluttes med et semikolon (;). Ved anvendelse Flex SQL skal ikke semikolonet (;) brukes til slutt. Syntaksen er dynamisk kompilert og kjøres slik at avslutningen ikke er nødvendig.
Se følgende eksempel på syntaks:
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 benytter også en annen type strukturert spørrespråk som kalles Programming Language/Structured Query Language (PL/SQL). PL/SQL blir brukt til å prosessere kommandoer i blokker, snarere enn å bruke individuelle SQL-setninger. Blokker er grupper av relaterte SQL-setninger som kan samles i større blokker, slik at du kan organisere SQL-syntaksen så den utfører flere kommandoer samtidig.
Se følgende eksempel på PL/SQL-syntaks:
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;
Både SQL*Plus- og PL/SQL-eksempelet ville vært plassert i SQL-setningen på Flex skjemaet. I disse eksemplene er utløses R5REQUISLINES-tabellen; SQL*Plus-eksempelet er en post-insert-trigger (utløses etter innsetting), mens PL/SQL-eksempelet er en post-update-trigger (utløses etter oppdatering).