Light-industry-up.ru

Экосистема промышленности

EGL

07-09-2023

EGL (англ. Enterprise Generation Language) — современный высокоуровневый язык программирования для создания бизнес-приложений. Разработан IBM. EGL схож по синтаксису с другими языками программирования для упрощения обучения. Программы на EGL обычно создаются и отлаживаются в виде EGL-программы, а затем могут быть скомпилированы в COBOL, Java или JavaScript.

Примеры программ

Каждая программа EGL имеет единственную точку входа: функцию main(). Функции EGL состоят из операторов EGL, переменных и констант. Программа, выводящая строку на экран:

Program HelloWorld
 
        const GREETING string = "Hello, ";
 
        function main()
                myName string = "John";
                sayHello(myName);
        end     
 
        function sayHello(name String in)
                SysLib.writeStdOut(GREETING + name + "!");
        end
 
end

Наборы различных данных могут быть объединены в Запись (Record). Пример записи CustomerRecord с шестью полями:

Record CustomerRecord type BasicRecord
        customerNumber INT;            
        customerName STRING;
        customerAddr1 STRING;
        customerAddr2 STRING;
        customerAddr3 STRING;
        customerBalance MONEY;
end

Для обмена данными с СУБД, EGL имеет специальный тип записей, называемые SQLRecord. В следующем примере запись Employee связывается с SQL-таблицей Employee:

record Employee type sqlRecord { tableNames =[["Employee"]
            ], keyItems =[EMPNO]}
    EMPNUMBER string{ column = "EMPNO", maxLen = 6};
    FIRSTNME string{ sqlVariableLen = yes, maxLen = 12};
    MIDINIT string{ isSqlNullable = yes, maxLen = 1};
    LASTNAME string{ sqlVariableLen = yes, maxLen = 15};
    DEPT string{ column = "WORKDEPT", isSqlNullable = yes, maxLen = 3};
    PHONENO string{ isSqlNullable = yes, maxLen = 4};
    HIREDATE date{ isSqlNullable = yes};
end

Сервисами (Service) в EGL называют наборы функций, которыми могут пользоваться другие приложения. В примере определен сервис с двумя функциями:

package com.mycompany.services;
 
service EmployeeService
 
    function getEmployees() returns(Employee[])
        records Employee[0]; // определяет пустой массив записей
        get records; // запрашивает записи из СУБД
        return (records); // возвращает записи
    end
 
    function addEmployee(emp Employee in) returns (boolean)
        try
                add remp;
                return (true);
        onException (ex AnyException)
                return (false);
        end
    end
 
end

Код в EGL организуется в пакеты (package).

Литература

EGL.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06