Задание 4. Написание кода внешней процедуры с параметрами
Задание.
Создайте процедурный файл, в котором ABL-код процедуры использует параметры для работы.
Реализация.
Создайте новый каталог с именем Utility в Server\src, для этого:
- В Project Explorer щёлкнет правой кнопкой мыши по каталогу src проекта Server.
- В открывшемся меню выберите пункт New -> Folder
- В поле Folder name введите Utility.
- Щёлкните по кнопке Finish.
В каталоге Utility создайте внешнюю (с основным блоком) ABL-процедуру с именем GenPO.p, для этого.
- Щёлкните правой кнопкой мыши по каталогу Utility и выберите пункт New -> ABL procedure.
- В поле File name введите GenPO.p.
- Щёлкните по кнопке Finish.
Файл процедуры откроется в Procedure Editor.
Внутри файла GenPO.p в секции Definitions опишите следующие параметры:
- pCustomerNumber – входящий параметр с типом integer
- pPO – входящий-исходящий параметр с типом character
- pStatus – исходящий параметр с типом character
Для этого добавьте код описания переменных сразу после оператора обработки ошибок:
/* *************************** Definitions ************************** */ block-level on error undo, throw. define input parameter pCustomerNumber as integer no-undo. define input-output parameter pPO as character no-undo. define output parameter pStatus as character no-undo.
В этой процедуре код должен обновить содержимое переменной pPO, которая используется в качестве входящего и исходящего параметра, при этом:
- Изменённое значение pPO должно выглядеть так:
<value of pPO><value of pCustomerNumber>-xx. - Для объединения значений переменных pCustomerNumber и pPO используйте оператор конкатенации «+»
- Для приведения целого значения переменной pCustomerNumber к строковому значению используйте оператор string()
- С помощью оператора конкатенации добавьте строку «-xx» к концу строки pPO.
- Полученную объединённую строку присвойте переменно pPO.
Согласно этим требованиям добавьте в основной блок следующую конструкцию:
/* *************************** Main Block *************************** */ pPO = pPO + string(pCustomerNumber) + "-xx".
Теперь присвойте строку «PO Assigned» переменной pStatus:
/* *************************** Main Block *************************** */ pPO = pPO + string(pCustomerNumber) + "-xx". pStatus = "PO Assigned".
Для более эффективной работы операторов присвоения вы можете использовать оператор assign как показано:
assign pPO = pPO + string(pCustomerNumber) + "-xx" pStatus = "PO Assigned".
Для завершения процедуры добавьте в качестве последнего оператора оператор return.
Сохраните процедуру и убедитесь в отсутствии ошибок компиляции.