RPG в COBOL
Одна и та же процедура, написанная руками на RPG и на COBOL. Она здесь, чтобы вы увидели, что меняется, а что остаётся, до того как кто-то назовёт вам цену.
Что у вас есть · RPG
**free
dcl-s balance packed(11:2) inz(0);
dcl-s rate packed(5:4) inz(0.0425);
dcl-s interest packed(11:2);
interest = %dec(balance * rate : 11 : 2);
dsply ('INTEREST: ' + %char(interest));
*inlr = *on;Во что это превращается · COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. INTEREST.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-BALANCE PIC S9(9)V99 COMP-3 VALUE 0.
01 WS-RATE PIC S9(1)V9(4) COMP-3 VALUE 0.0425.
01 WS-INTEREST PIC S9(9)V99 COMP-3.
PROCEDURE DIVISION.
COMPUTE WS-INTEREST ROUNDED = WS-BALANCE * WS-RATE
DISPLAY 'INTEREST: ' WS-INTEREST
STOP RUN.Прочитать два файла рядом легко. Трудное начинается дальше, в остальной системе: какие файлы уже никто не вызывает, какое задание пишет в 02:00 запись, которую потом читает другое, и выдаёт ли переписанная версия те же числа, которые ваши аудиторы видели в прошлом месяце. Эта работа идёт на нашей платформе под присмотром инженера и начинается с того, что мы смотрим вашу кодовую базу.
Когда конвертера перестаёт хватать
Сравнить два файла легко. Ничто на этой странице не скажет вам, какие файлы уже никто не вызывает, какое батч-задание пишет в 02:00 запись, которую потом читает другое, и выдаёт ли переписанная версия те же числа, которые ваши аудиторы видели в прошлом месяце. На это отвечает аудит по вашей настоящей кодовой базе.