Definiera uttryck och procedurer för Flex-affärsregler

Definiera Flex SQL-uttryck om du vill definiera valideringsregler specifikt för din organisation. Du kan konfigurera ett eller flera uttryck som ska bearbetas för händelser efter infogning eller uppdatering.

Flex SQL-bearbetning stöder uttryck för dataförfrågan (select) och manipulation (insert, update, delete). Använd select-uttryck om du vill utföra en villkorskontroll.

Versaler och gemener tillåts i SQL-uttrycket. Token för radidentifikation måste däremot skrivas antingen med enbart versaler eller med enbart gemener (t.ex. :ROWID eller :rowid).

Varje Flex SQL-uttryck kräver en fördefinierad token med :ROWID. Denna refererar till databasens radidentifikation för posten som bearbetas i angiven tabell. Uttrycket utförs på varje post i tabellen som påverkas av infogningen eller uppdateringen.

Maximal längd på uttrycket är 4 000 tecken. Du måste inte använda avslutningstecken (;).

Uttryck för datamanipulation tillåts, men du måste säkerställa att du inte startar en oändlig spridning av triggersteg. Det rekommenderas exempelvis sällan att du skapar ett Flex SQL-uttryck som uppdaterar bastabellen som identifieras i Tabell.

Obs!

Infor rekommenderar att du definierar Flex SQL-procedurer i nära samarbete med Infor EAM-konsulten.

  1. Välj Administration > Skärmbildskonfiguration > Flex affärsregler.
  2. Välj den Tabell som du vill definiera Flex SQL-uttryck och procedurer för.
  3. Klicka på Lägg till Flex SQL.
  4. Ange följande information:
    Löpnummer
    Ange ordningsföljden för Flex SQL-bearbetning.
    Trigger
    Ange databasoperationen som initierar händelsen. Triggrar efter infogning och uppdatering stöds.
    SQL-uttryck
    Ange SQL-uttrycket som ska exekveras när angiven operation sker för en tabell.
    Felmeddelande
    Ange det meddelande som ska visas när Flex SQL-uttryck misslyckas. Ett Flex SQL-uttryck är framgångsrikt när uttalandet bearbetar en eller flera rader i en tabell. Ett Flex SQL-uttryck misslyckas när inga rader bearbetas. Gör felmeddelandet aktivt genom att välja Avbryt vid fel.
    Kommentarer
    Ange en beskrivning för syftet med Flex SQL-uttrycket.
  5. Markera kryssrutan Måste finnas om du vill att Flex SQL-processorn ska sluta bearbeta på varandra följande Flex SQL-uttryck när det aktuella uttrycket inte bearbetar några rader.
  6. Markera kryssrutan Avbryt vid fel om du vill stoppa den aktuella operationen om den misslyckas och generera ett fel.
  7. Markera kryssrutan Omvänd returkod om du vill att värdet för returstatuskoden ska ändras till det omvända värdet för det aktuella Flex SQL-uttrycket. Om detta väljs och uttrycket bearbetar en eller flera rader returnerar processorn en status för misslyckades. Om uttrycket inte bearbetar rader, returnerar processorn en status för lyckades.
  8. Markera kryssrutan Aktiv om du vill aktivera Flex SQL-uttrycket.
  9. Klicka på Testa Flex SQL när du ska kontrollera att aktuellt Flex SQL-uttryck är giltigt. Om uttrycket innehåller fel (exempelvis ogiltig syntax) visas ett meddelande.
  10. Klicka på Skicka.
    Läs mer i följande exempel på Flex SQL-definitioner:
    Exempel 1
    Ange kontrolluttryck eller redigeringar som utökar Infor EAM:s standardbearbetning. Det är till exempel valfritt att ange ett värde för kostnadskod när en rekvisition skapas i Infor EAM. Om implementeringen är beroende av att kontosegmentvärden härleds med hjälp av en kostnadskod måste du definiera ett kontrolluttryck som inte tillåter att rekvisitioner infogas eller uppdateras utan att ett värde för kostnadskod anges.

    Se följande exempel på ett kontrolluttryck som utökar standardbearbetningen när en rekvisition skapas i Infor EAM:

    • Tabell
      Ange R5REQUISITIONS.
    • Trigger
      Ange POST-INSERT.
    • Löpnummer
      Ange 10.
    • SQL-uttryck
      Ange följande SQL-uttryck som ska exekveras:
                           SELECT NULL
                           FROM R5REQUISITIONS
                           WHERE ROWID=:ROWID
                           AND REQ_COSTCODE IS NOT NULL
    • Felmeddelande
      Ange Skriv ett värde för kostnadskod.
    • Välj Måste finnas.
    • Välj Avbryt vid fel.
    Exempel 2
    Skapa rader för uppgifter och transaktioner som ska samverka med Oracle Financials i tabellen R5ACCOUNTDETAIL i Infor EAMFlex SQL-skärmbilden.

    Se följande exempel för hur du skapar rader för kontodetaljposter genom att använda konstanta förvalda värden. Detta uttryck följer på det kontrolluttryck som används för att ange värden för kostnadskod när rekvisitioner skapas (se föregående exempel). Löpnumret identifierar den ordning i vilken Flex SQL-uttryck utförs.

    • Tabell
      Ange R5REQUISITIONS.
    • Trigger
      Ange POST-INSERT.
    • Löpnummer
      Ange 20.
    • SQL-uttryck
      Ange följande SQL-uttryck som ska exekveras:
                           INSERT INTO R5ACCOUNTDETAIL
                           (ACD_CODE, ACD_RENTITY, ACD_SEGMENT1, ACD_SEGMENT2, ACD_SEGMENT3,
                           ACD_SEGMENT4)
                           SELECT REQ_ACD, 'REQ',
                           '01',
                           '000',
                           '000',
                           '0000'
                           FROM R5REQUISITIONS                      
                           WHERE ROWID=:ROWID
      
    • Felmeddelande
      Ange Fel vid upprättande av kontodetaljer.
    • Välj Måste finnas.
    • Välj Avbryt vid fel.
    • Välj Aktiv.

    Ovanstående exempel illustrerar rekvisitionsreferensen till R5ACCOUNTDETAIL för vilken REQ_ACD redan är ifylld. Infor EAM genererar automatiskt nyckel för rekvisitionskontodetalj. Du behöver inte skapa värdet för kontodetaljnyckeln med Flex SQL.

    Fastställandet av Flex SQL-uttrycksdefinitionerna att använda i Infor EAM för kontodetaljer är beroende av vilka Infor EAM- och ERP-moduler som är integrerade. Börja genom att beskriva hela inköpsprocessen. Arbeta sedan med varje transaktionsuppsättning för att avgöra behovet av validering och genereringen av konton. Dessa behov är unika inte bara för varje integreringsscenario utan även för varje kund inom något scenario. Det är därför extremt viktigt att se till att du har övervägt hela processen mycket noggrant.