IBM for i/RPG: Как скомпилировать модуль и создать сервисную программу одним вызовом в IBM Rational Developer for i (RDi)

Как избежать необходимости использовать меню компиляции RDi 2 раза подряд - сначала создать модуль SQL RPGLE, а затем создать связанную сервисную программу?

1 ответ

Для этого вы сначала создаете программу CL (назовем ее CRTSRVPRG) следующим образом:

               PGM        PARM(&LIBRARY &SOURCE &NAME &HASITFCHG)

         DCL        VAR(&LIBRARY) TYPE(*CHAR) LEN(10)
         DCL        VAR(&SOURCE)  TYPE(*CHAR) LEN(10)
         DCL        VAR(&NAME)    TYPE(*CHAR) LEN(10)
         DCL        VAR(&HASITFCHG)    TYPE(*CHAR) LEN(1)


         CRTSQLRPGI OBJ(&LIBRARY/&NAME) SRCFILE(&LIBRARY/&SOURCE) SRCMBR(&NAME) REPLACE(*YES) OBJTYPE(*MODULE) RPGPPOPT(*LVL2) DBGVIEW(*SOURCE) OPTION(*EVENTF)

         IF         COND(&HASITFCHG = 'Y') THEN(DO)
            CRTSRVPGM  SRVPGM(&LIBRARY/&NAME) MODULE(&LIBRARY/&NAME) EXPORT(*ALL) SRCFILE(&LIBRARY/&SOURCE)
            RTVBNDSRC  SRVPGM(&LIBRARY/&NAME) SRCFILE(&LIBRARY/QSRVSRC)
            CHGPFM     FILE(&LIBRARY/QSRVSRC) MBR(&NAME) SRCTYPE(BND)
         ENDDO

         ELSE       CRTSRVPGM  SRVPGM(&LIBRARY/&NAME) MODULE(&LIBRARY/&NAME) EXPORT(*SRCFILE) SRCFILE(&LIBRARY/QSRVSRC) SRCMBR(&NAME)

         ENDPGM      

Затем в меню Compile / Compile / Work With Compile Command… вы добавляете следующие 2 новые команды:

  1. "Новая сервисная программа или изменение интерфейса"

    CALL PGM([ваша библиотека]/CRTSRVPRG) PARM(&L &F &N 'Y') /* OPTION(*EVENTF) SRCMBR(&N) */

  2. "Перекомпилировать сервисную программу"

    CALL PGM([ваша библиотека]/CRTSRVPRG) PARM(&L &F &N 'N') /* OPTION(*EVENTF) SRCMBR(&N) */

Совет: вы можете использовать кнопку «Выполнить команду компиляции без запроса» на панели инструментов, чтобы выполнить последнюю команду, не используя меню.

Дополнение в команде

      /* OPTION(*EVENTF) SRCMBR(&N) */

дает вам обратную связь для компиляции модуля на вкладке «Список ошибок». К сожалению, отзывов о создании Сервисной программы нет. Для этого вам нужно заглянуть во вкладку "Журнал команд"...

Другие вопросы по тегам