Язык управления IBM i - IBM i Control Language

Язык управления AS / 400
Парадигмаимператив
РазработаноIBM
РазработчикIBM
Операционные системыIBM System i
Под влиянием
Язык управления заданиями, PL / I
Под влиянием
Windows PowerShell

В Язык управления IBM i (CL) это язык сценариев для IBM с IBM i Платформа (ранее назывался OS / 400 при работе на AS / 400 systems), напоминающие IBM Язык управления заданиями и состоящий из постоянно расширяющегося набора команд объекты (* CMD) используется для вызова традиционных программ AS / 400 и / или получения справки о том, что эти программы делают. CL также можно использовать для создания программ CL (конгруэнтно сценарии оболочки ), где есть дополнительные команды, обеспечивающие программную функциональность (IF / ELSE, объявление переменной, ввод файла и т. д.)

Хотя CL - это язык сценариев для системного администрирования, он используется в основном для создания скомпилированных программ. Использование интерпретируемых сценариев CL с помощью команды SBMDBJOB [1] на самом деле чрезвычайно ограничен.

Разработчики IBM написали тысячи команд для выполнения задач системного уровня, таких как компиляция программ, резервное копирование данных, изменение конфигурации системы, отображение сведений о системных объектах или их удаление, но команды не ограничиваются проблемами системного уровня и могут быть составлены для пользовательских приложений. также.

Команды и программы

Параметры (аргументы командной строки ), определенные в основных процедурах всех традиционных программ AS / 400, представляют собой жестко закодированные списки, состоящие из параметров, которые могут быть числовыми, буквенно-цифровыми, логическими и т. д., и порядок, в котором передаются параметры, важен. Это резкое отличие от Unix и ДОС миры, где список параметров в сценариях оболочки Unix и C программы представляет собой набор или массив символьных указателей, и чаще всего параметры не зависят от позиции.

Решением этой проблемы разработчик AS / 400 стал командный объект (* CMD). Хотя параметры команды можно указывать в любом порядке, каждый параметр определен для передачи в программу в определенном порядке. Программист также может определить, среди прочего, параметр тип данных, уникальное имя параметра, описательный текст (для подсказки), значение по умолчанию (используется, только если параметр не указан во время выполнения), если значения ограничены определенным набором или диапазоном, если введенные данные должны быть изменены на другое значение перед вызовом программы и т. д.

По сути, команда называет одну программу, которую нужно вызывать, когда пользователь вводит или запрашивает команду и нажимает клавишу Enter. Команда принимает все параметры, введенные пользователем, и параметры, введенные пользователем, и создает список параметров, который она передает программе при ее вызове.

Синтаксис

В BNF для значительно упрощенного синтаксиса команды CL можно было бы определить следующее:

 <CL-команда> ::= имя-команды [<список-позиционных параметров>] [<список именованных параметров>] <список-позиционных параметров> ::= <значение параметра> [<список-позиционных параметров>] <список именованных параметров> ::= имя-параметра "(" <список-элементов-параметров> ")" [<список именованных параметров>] <список-элементов-параметров> ::= <значение параметра> [<список-элементов-параметров>] <значение параметра> ::= CL-имя | квалифицированное-CL-имя | "*" специальное значение | generic-CL-name "*" | "'" буквенно-цифровое значение "'" | числовое значение | "X '" шестнадцатеричное значение "'"

Пункты выше, заканчивающиеся на -имя следить Объект AS / 400 Соглашения об именах, которые, вообще говоря, означают, что имя начинается с буквы и может иметь длину до десяти символов. (Команды CL также нечувствительны к регистру.)

Хорошим примером типичной команды CL является Изменить программу (CHGPGM) команда ниже:

CHGPGM MYPGM OPTIMIZE (* FULL) RMVOBS (* BLKORD * PRCORD) TEXT ('Моя программа.')

Приведенная выше команда передает четыре параметра программе, которая выполняет Изменить программу обработки и они:

  • MYPGM: позиционный параметр (PGM) и единственный обязательный параметр. В данном случае это название изменяемой программы. Позиционные параметры всегда на первом месте. После появления именованного параметра все последующие параметры должны называться параметрами.
  • OPTIMIZE (* FULL): именованный параметр, определяющий единственный элемент, который является специальным значением. В этом случае программа будет полностью оптимизирована.
  • RMVOBS (* BLKORD * PRCORD): именованный параметр (Remove Observability), указывающий несколько специальных значений. В этом случае говорится, что нужно удалить из программы два вида данных профилирования.
  • ТЕКСТ ('Моя программа.'): Другой именованный параметр, определяющий одно буквенно-цифровое значение. В этом случае изменяется описательный текст программы.

На самом деле AS / 400 будет передавать намного больше параметров, чем четыре указанных выше. Это связано с тем, что остальные параметры команды CHGPGM не были указаны, поэтому вместо них будут переданы значения по умолчанию. Для каждого параметра в этом, кроме параметра PGM, это значение по умолчанию *ОДНО И ТОЖЕ, то есть не меняйте его.

Побуждение

Все команды AS / 400 могут быть запрошены непосредственно из командной строки или в программе CL. источник набрав команду и нажав F4 функциональная клавиша. Команду OS / 400 также можно запросить, набрав? перед командой (это полезно в интерактивной программе, которая воспроизводит командную строку, уже введя некоторые значения).

Затем система представит экран с набором параметров, которые программа принимает / требует (необходимые параметры обычно выделены).

Обязательные параметры указываются первыми, а параметры со значениями по умолчанию, заданными системой, - последними. Чтобы увидеть все параметры, нажмите F10. Если какой-либо один выбор требует дальнейшего выбора, они будут показаны, когда вы выберете это значение для этого параметра, появившись на экране.

Дополнительные усовершенствования подсказок позволяют программисту находить допустимые значения для каждого параметра. Для этого во время запроса пользователь переместит курсор в соответствующее поле параметра и снова нажмет F4. Затем система отобразит экран с описанием типа требуемых входных данных и доступным списком допустимых значений.

Чтобы ввести более длинное имя или расширить список, чтобы можно было вводить дополнительные значения, введите знак плюса вместо значения. (Как при перечислении имен объектов, которые нужно сохранить или восстановить.)

Команда help

Справка, чувствительная к курсору, также может предоставляться по командам AS / 400, но это не обязательно. Если была предоставлена ​​справка, можно просмотреть справку по параметру, переместив курсор в поле желаемого параметра и нажав F1 (справка). Чтобы получить справку по самой команде (и всем ее параметрам), пользователь нажимал бы F1 в любом месте экрана подсказки, а затем нажимал бы F2 (расширенная справка).

Создание новых команд

Новые команды могут быть созданы для вызова несистемных программ, и они будут работать точно так же, как и различные AS / 400. Язык определения команд описан в Руководство программиста CL.

Рекомендуется создавать экраны справки для новых команд и их параметров. Все экраны справки используют Группа панелей объекты (* PNLGRP), и они могут быть созданы с помощью Язык UIM описанный в Руководство по программированию IBM AS / 400 Application Display.

Начиная с версии V5R3 операционной системы, был добавлен новый, гораздо более простой способ создания справки: запустить команду

 GENCMDDOC CMD (MYLIB / MYCMD) TODIR ('/ QSYS.LIB / MYLIB.LIB / QPNLSRC.FILE) GENOPT (* UIM)

Будет автоматически сгенерирована скелетная группа панелей UIM, включая все параметры, описанные командой. Файл результатов можно отредактировать (seu, wdsc, rdi), затем скомпилировать с помощью команды CRTPNLGRP и, наконец, связать с командой с помощью CHGCMD HLPPNLGRP ().

Поиск правильной команды

В V7R3 содержится 2262 встроенных команды IBM,[2] но найти их не так уж и сложно из-за нескольких конструкций системы, облегчающих жизнь. К этим конструкциям, экономящим труд, относятся: стандартные сокращения, меню группировки команд и выбор команд.

Стандартизированные сокращения

Разработчики AS / 400 стандартизировали сокращения, используемые для создания имен команд. Глаголы вроде изменять всегда отображаются как CHG, отображать в качестве DSP, работай в качестве WRK, Создайте в качестве ЭЛТи т.д. программа всегда PGM, Пользователь является USR, модуль является MOD, сервер является СВРи т. д. Вы можете увидеть все возможные глаголы и подлежащие, используемые в AS / 400, в ГЛАГОЛ и ПРЕДМЕТ меню, просто введите команды GO VERB или GO SUBJECT.

Точно так же «Программирование на языке управления» было сокращенно CLP, и соответственно тип источника был CLP. С введением модели программирования ILE тип источника был изменен на «CLLE».[3]

Меню группировки команд

Меню VERB и SUBJECT являются частью того, что называется меню группировки команд. Каждой трех (или четырехбуквенной) аббревиатуре посвящено меню, которое начинается с букв. CMD. Чтобы увидеть все CHG Команды пользователь должен выполнить команду GO CMDCHG. За программа команд меню будет CMDPGM.

Помимо меню группировки команд есть и другие меню. К начальной точке системы меню можно получить доступ, нажав F4 на пустом командная строка.

Выбор команды

Если кто-то знает только часть команды или если используется стороннее программное обеспечение, команды не соответствуют стандарту сокращений AS / 400, вы должны ввести ту часть команды, которая известна, прикрепив звездочку (чтобы generic) и нажмите ввод. Затем система отобразит список команд в задании. список библиотек которые соответствуют только что набранным общим именам. Затем можно пролистать список в поисках необходимой команды, а затем выбрать ее с помощью опции 1.

В фоновом режиме система использует команду SLTCMD для выполнения этой функции. Если кто-то хочет выбрать все команды в библиотека затем запросите эту команду и введите специальное значение * ALL.

Образец кода

Ниже приводится пример программирования на языке CL. Программа интерактивно конвертирует даты из юлианского в MDY и наоборот. Результаты отображаются в строке 24 терминала. Он принимает два параметра. В параметр, который представляет собой строку даты, которую нужно преобразовать. Если строка в юлианском стиле, она должна быть в формате YYNNN, где YY - номер года, а NNN - номер дня в году. Если строка MDY, она должна быть в формате MMDDYY. Второй параметр - & ТИП который является типом даты, в которую нужно преобразовать. Это должно быть «J» (юлианский) или «M» (MDY). Например: команда ВЫЗОВ PGM (ICVTDATC) PARM ('04180' 'M') преобразует юлианскую дату 04180 в 062804 (28 июня 2004 г.).

PGM (& IN & TYP) DCL & IN * CHAR 6 DCL & OUT * CHAR 8 DCL & TYP * CHAR 1 IF (& TYP = J) + DO CVTDAT DATE (& IN) TOVAR (& OUT) FROMFMT (* MDY) + TOFMT (* JUL) TOSEP ( * NONE) ENDDO ELSE IF (& TYP = M) + DO CVTDAT DATE (& IN) TOVAR (& OUT) FROMFMT (* JUL) + TOFMT (* MDY) TOSEP (* NONE) ENDDO SNDPGMMSG MSG ('IN =' || & IN | | 'OUT =' || & OUT) + MSGTYPE (* COMP) ENDPGM 

Рекомендации

  1. ^ itjungle.com
  2. ^ IBM.com
  3. ^ Мейерс, Брайан (1997). Программирование управляющего языка для AS / 400 (2-е издание). 29-я улица Press. ISBN  9781882419760.