AWS Layanan Modernisasi Mainframe (Managed Runtime Environment experience) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan Layanan Modernisasi AWS Mainframe (pengalaman Lingkungan Runtime Terkelola), jelajahi Layanan Modernisasi AWS Mainframe (Pengalaman yang Dikelola Sendiri). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat Perubahan AWS ketersediaan Modernisasi Mainframe.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Utilitas Lainnya/Lain-lain
Bagian ini mencakup berbagai program utilitas, dengan tujuan lain-lain, yang tidak dapat dilampirkan ke kategori yang ada
Dalam paragraf berikut, harus PICTURE dipahami sebagai PICTURE kata kunci COBOL, yang digunakan untuk menggambarkan jenis dan format data bidang.
CBL_ AND/CBL_OR/CBL_XOR/CBL_EQ/CBL_IMP/CBL _TIDAK
Tujuan
Ini berkaitan dengan dukungan operasi logis bitwise pada item data, yang ditemukan di beberapa dialek COBOL (Micro Focus). Harap dicatat bahwa refactor otomatis dengan AWS Transform menangani transformasi penggunaan operator bitwise dari dialek Cobol MF ke java (lihat contoh penggunaan di bawah). Agar kode modern berjalan dengan benar, aplikasi utilitas harus digunakan bersama.
Operator yang didukung:
Operator Unary:
| Operator Unary | detail |
|---|---|
CBL_NOT |
Pelengkap Bitwise (~ target) |
Operator biner:
| Operator Biner | detail |
|---|---|
CBL_AND |
Bitwise DAN (sumber & target) |
CBL_OR |
Bitwise OR (sumber | target) |
CBL_XOR |
Bitwise eksklusif OR (sumber ^ target) |
CBL_EQ |
Kesetaraan Bitwise (~ (sumber ^ target)) |
CBL_IMP |
Implikasi Bitwise (~sumber | target) |
Tanda tangan
Selain CBL_NOT yang hanya memiliki satu operan (target), semua operasi lainnya memiliki setidaknya dua operan, yaitu item data. Operan pertama adalah sumbernya, operan kedua adalah target. Argumen opsional tambahan (panjang) memberikan jumlah byte untuk diproses (dari kiri ke kanan). Jika panjangnya dihilangkan, defaultnya minimum sumber dan ukuran target (dalam byte). Hasil operasi disimpan dalam target. Kode pengembalian program adalah 0 (kecuali pengecualian terjadi).
Cek/Penanganan Kesalahan
Untuk setiap operator yang tersedia, jumlah argumen yang diperlukan diperiksa. Jika jumlah minimal argumen yang diperlukan tidak terpenuhi,
IllegalArgumentExceptionakan dilemparkan.Argumen bilangan bulat panjang opsional diperiksa untuk kepositifan. Jika panjang yang diberikan negatif, pesan akan ditampilkan di log dan operator tidak akan diterapkan.
Penggunaan Sampel
Sampel operator unary:
Berikut adalah penggunaan cobol CBL_NOT:
* TARGET: 00000101 * OPERATION: NOT * EXPECTED: 11111010 = 64000 dec (2nd byte unchanged - all 0) MOVE X'0500' to TARGET CALL "CBL_NOT" USING TARGET BY VALUE 1.
dan modernisasi java yang sesuai:
/* TARGET: 00000101 OPERATION: NOT EXPECTED: 11111010 = 64000 dec (2nd byte unchanged - all 0) */ ctx.getTarget().getTargetReference().setBytes(new byte[]{ 5, 0 }); ctrl.callSubProgram("CBL_NOT", CallBuilder.newInstance() .byReference(ctx.getTarget().getTargetReference()) .byValue(1) .getArguments(), ctx);
Sampel operator biner:
Lihat misalnya kode COBOL berikut menggunakan CBL_AND:
* SOURCE: 00000011 * OPERATION: AND * TARGET: 00000101 * EXPECTED: 00000001 = 256 dec (2nd byte unchanged - all 0) MOVE X'0300' to SRC MOVE X'0500' to TARGET CALL "CBL_AND" USING SRC TARGET BY VALUE 1.
dan modernisasi java nya:
/* SOURCE: 00000011 OPERATION: AND TARGET: 00000101 EXPECTED: 00000001 = 256 dec (2nd byte unchanged - all 0) */ ctx.getSrc().getSrcReference().setBytes(new byte[]{ 3, 0 }); ctx.getTarget().getTargetReference().setBytes(new byte[]{ 5, 0 }); ctrl.callSubProgram("CBL_AND", CallBuilder.newInstance() .byReference(ctx.getSrc().getSrcReference()) .byReference(ctx.getTarget().getTargetReference()) .byValue(1) .getArguments(), ctx);
CEE3ABD
Tujuan
Program utilitas ini meniru perilaku program warisan dengan nama yang sama, yang perannya adalah untuk mengakhiri program dengan kode Abend (abnormal end) dan waktu pembersihan opsional. AWS transform engine menangani modernisasi otomatis panggilan ke CEE3 ABD. Agar kode modern berjalan dengan benar, aplikasi utilitas harus digunakan bersama.
Program menghentikan unit run saat ini, menggunakan kode abend yang disediakan. Pesan informasi dicetak ke log, menentukan bahwa keluar pengguna telah dipanggil dengan kode yang diberikan. Untuk saat ini, parameter waktu TIDAK diperhitungkan, tetapi hadir sebagai argumen untuk alasan kompatibilitas modernisasi.
Tanda tangan
Program ini menerima 0 atau 2 argumen. Kedua argumen tersebut adalah:
Kode Abend (item data yang harus ditafsirkan sebagai nilai bilangan bulat positif)
Waktu pembersihan (item data yang harus ditafsirkan sebagai nilai bilangan bulat positif) - diabaikan
Ketika tidak ada argumen yang disediakan, nilai default berikut sedang digunakan:
Kode Abend: 0
Waktu Pembersihan: 0
Cek/Penanganan Kesalahan
Memeriksa bahwa 0 atau 2 argumen sedang disediakan, jika tidak maka
IllegalArgumentExceptionakan dilemparkan.Jika dua argumen disediakan, periksa bahwa: abend code adalah antara 0 dan 4095 (keduanya termasuk); waktu antara 0 dan 5 (keduanya termasuk)
Kegagalan untuk tes ini akan memicuIllegalArgumentException.
Penggunaan Sampel
Berikut adalah contoh penggunaan dalam program COBOL, dari aplikasi Carddemo:
9999-ABEND-PROGRAM. DISPLAY 'ABENDING PROGRAM' MOVE 0 TO TIMING MOVE 999 TO ABCODE CALL 'CEE3ABD'.
dan kode java modern yang sesuai:
public void _9999AbendProgram(final Cbtrn03cContext ctx, final ExecutionController ctrl) { DisplayUtils.display(ctx, ctrl, LOGGER, "ABENDING PROGRAM"); ctx.getTiming().setTiming(0); ctx.getAbcode().setAbcode(999); ctrl.callSubProgram("CEE3ABD", CallBuilder.newInstance() .getArguments(), ctx); }
CEEDATE
Tujuan
Utilitas CEEDATE mengubah angka yang mewakili tanggal Lilian (hari sejak 15 Oktober 1582) menjadi representasi tanggal basis karakter, menggunakan format yang disediakan.
Ini meniru perilaku utilitas sistem warisan dengan nama yang sama.
Tanda tangan
Mengingat sifatnya, utilitas CEEDATE lebih dimaksudkan untuk dipanggil dari program.
Dibutuhkan tiga atau empat argumen (argumen terakhir adalah opsional):
Argumen pertama wajib adalah item data numerik yang nilainya akan diintepret sebagai tanggal Lilian
Argumen kedua wajib adalah item data alfanumerik yang memegang
PICTUREstring yang digunakan untuk konversi tanggal ke karakterArgumen ketiga wajib adalah item data alfanumerik target, memegang hasil konversi argumen pertama menggunakan argumen kedua sebagai
PICTUREArgumen opsional keempat adalah item data yang digunakan untuk menyimpan kode umpan balik dari utilitas
Cek/Penanganan Kesalahan
Jika jumlah argumen yang diteruskan ke utilitas tidak tiga atau empat, a
BluageWrapperExceptionakan dilemparkanJika argumen angka pertama yang diberikan tidak dapat dievaluasi dengan benar sebagai tanggal Lilian (di luar batas), pesan kesalahan akan dicatat. Pemegang kode umpan balik opsional, jika ada, akan diberi makan dengan kode umpan balik tingkat keparahan 3 dan nomor pesan 2512
Jika pengecualian terjadi selama konversi tanggal karena disediakan tidak valid
PICTURE, pesan kesalahan akan dicatat. Pemegang kode umpan balik opsional, jika ada, akan diberi makan dengan kode umpan balik tingkat keparahan 3 dan nomor pesan 2518Jika, karena alasan apa pun, konversi tidak dapat terjadi dengan benar, item data keluaran akan diisi dengan kosong
Jika konversi berhasil, pemegang kode umpan balik opsional akan diberi kode umpan balik tingkat keparahan 0 (dan tidak ada pesan)
Penggunaan Sampel
Berikut adalah contoh panggilan dari program COBOL (struktur untuk pemegang kode umpan balik FC berisi elipsis, seperti yang berisi ratusan kondisi (level 88) entri yang tidak ditampilkan di sini):
WORKING-STORAGE SECTION. 01 LILIANS PIC S9(9) BINARY. 01 TIMESTAMP-OUT PIC X(80). 01 MASK. 05 MASK-LEN PIC S9(4) BINARY. 05 MASK-STR. 10 MASK-CHR PIC X OCCURS 0 TO 256 DEPENDING ON MASK-LEN. 01 ROUTINE-NAMES. 05 CEESECS-ROUTINE PIC X(08) VALUE 'CEESECS '. 05 CEELOCT-ROUTINE PIC X(08) VALUE 'CEELOCT '. 05 CEEDATE-ROUTINE PIC X(08) VALUE 'CEEDATE '. 01 FC. ... * lilian date for 4 June 1990 MOVE SPACES TO MASK-STR MOVE 148887 TO LILIANS. MOVE 23 TO MASK-LEN MOVE 'YYYY-MM-DD-HH:MI:SS.999' TO MASK-STR CALL CEEDATE-ROUTINE USING LILIANS MASK TIMESTAMP-OUT FC.
CEELOCT
Tujuan
Utilitas CEELOCT digunakan untuk mengembalikan lokal date/time dalam tiga format:
Tanggal Lilian (jumlah hari sejak 14 Oktober 1582)
Detik Lilian (jumlah detik sejak 00:00:00 14 Oktober 1582)
String karakter Gregorian (dalam bentuk)
YYYYMMDDHHMISS999
Ini meniru perilaku utilitas sistem warisan dengan nama yang sama.
Tanda tangan
Mengingat sifatnya, utilitas CEELOCT lebih dimaksudkan untuk dipanggil dari program.
Dibutuhkan tiga atau empat argumen (argumen terakhir adalah opsional):
Argumen pertama wajib adalah item data, digunakan untuk menyimpan tanggal Lilian
Argumen kedua wajib adalah item data, digunakan untuk menyimpan detik Lilian
Argumen ketiga wajib adalah item data, digunakan untuk menyimpan tanggal Gregorian menggunakan formulir yang diberikan di atas
Argumen keempat opsional adalah item data yang digunakan untuk menyimpan kode umpan balik dari utilitas
Cek/Penanganan Kesalahan
Jika jumlah argumen yang diteruskan ke utilitas tidak tiga atau empat, a
BluageWrapperExceptionakan dilemparkanJika ada pengecualian yang terjadi selama penanganan konversi dari lokal date/time ke salah satu format output: Argumen pertama dan kedua akan disetel ke 0 dan argumen ketiga akan dibiarkan tidak berubah; Pesan kesalahan akan dicatat; Secara opsional, pemegang kode umpan balik akan diberi makan dengan kode umpan balik tingkat keparahan 3 dan nomor pesan 2531
Setelah berhasil, ketiga argumen akan diisi dengan konten yang tepat dan kode umpan balik opsional akan diberi kode keparahan 0
Penggunaan Sampel
Berikut adalah contoh cuplikan COBOL yang menunjukkan penggunaan utilitas CEELOCT. Struktur pemegang kode umpan balik FC tidak diberikan secara penuh karena berisi ratusan entri kondisi (level 88).
WORKING-STORAGE SECTION. 01 LILIANS PIC S9(9) BINARY. 01 GREGORN PIC X(80). 01 SECONDS COMP-2. 01 FC. ... 01 ROUTINE-NAMES. 05 CEESECS-ROUTINE PIC X(08) VALUE 'CEESECS '. 05 CEELOCT-ROUTINE PIC X(08) VALUE 'CEELOCT '. 05 CEEDATE-ROUTINE PIC X(08) VALUE 'CEEDATE '. ... CALL CEELOCT-ROUTINE USING LILIANS SECONDS GREGORN FC.
CEERAN0
Tujuan
Program CEERAN0 dipanggil untuk menghasilkan angka pseudo-acak, antara 0,0 dan 1,0, menggunakan benih tertentu. Hal ini didasarkan pada algoritma metode kongruensial multiplikatif, yang membutuhkan benih yang ditentukan pengguna. Menggunakan 0 sebagai seed memicu mode tertentu di mana seed sebenarnya dihitung dari waktu rata-rata Greenwich sebagai gantinya (pada saat program sedang dijalankan). Kalau tidak, benih digunakan apa adanya. Urutan pseudo-acak dapat diprediksi.
Tanda tangan
Program CEERAN0 membutuhkan tiga parameter:
seed (parameter input), item data yang dapat diartikan sebagai bilangan bulat positif (termasuk 0)
nomor acak (parameter output), item data yang dapat diartikan sebagai angka mengambang presisi ganda (yang nilainya antara 0,0 dan 1,0, eksklusif); itu adalah hasil dari program
kode umpan balik opsional (parameter output), item data 12 byte, digunakan untuk menyimpan umpan balik dari program tentang perhitungan angka acak
Cek/Penanganan Kesalahan
Jika jumlah argumen tidak 2 atau 3,
IllegalArgumentExceptionakan dilemparkanNilai benih harus antara 0 dan 2147483646, inklusif. Jika nilai seed berada di luar batas ini, pesan kesalahan akan dicatat dan kode umpan balik akan diatur ke tingkat keparahan 3 dan nomor mesage ke 2524. Angka acak yang dihasilkan akan disetel ke -1.0 (analog ke perilaku lama)
Jika nilai seed disetel ke 0, tetapi sistem tidak dapat mengambil waktu rata-rata Greewich (untuk alasan apa pun), perhitungan akan dilakukan dengan menggunakan nilai 1 sebagai fallback dan kode umpan balik akan diatur ke tingkat keparahan 1 dan nomor pesan ke 2523. Perhitungan nomor acak akan dilanjutkan dengan nilai seed fallback (analog dengan perilaku lama)
Penggunaan Sampel
Ini contoh java yang menunjukkan cara menggunakan program CEERAN0, menggunakan semua parameter termasuk kode umpan balik, dengan bit dari beberapa lapisan (entitas, layanan):
//Entity layer public class Randomin extends RecordEntity { private final Group root = new Group(getData()).named("RANDOMIN"); private final Elementary randomin = new Elementary(root,new BinaryIntegerType(4, true),new BigDecimal("0")).named("RANDOMIN"); ... public class Randomout extends RecordEntity { private final Group root = new Group(getData()).named("RANDOMOUT"); private final Elementary randomout = new Elementary(root,new DoubleFloatingPointType(),new BigDecimal("0")).named("RANDOMOUT"); ... public class Returncode1 extends RecordEntity { private final Group root = new Group(getData()).named("RETURNCODE"); private final Elementary returncode1 = new Elementary(root,new AlphanumericType(12)," ").named("RETURNCODE"); ... // Service layer CallHandler.newInstance(ctrl, ctx, ctx.getErrorContext()) .byReference(ctx.getRandomin().getRandominReference(), ctx.getRandomout().getRandomoutReference(), ctx.getReturncode1().getReturncode1Reference()) .call("CEERAN0");
CEESEC
Tujuan
Utilitas CEESECS mengubah representasi string stempel waktu menjadi detik Lilian (jumlah detik sejak 00:00:00 14 Oktober 1582).
Tanda tangan
Mengingat sifatnya, utilitas CEESECS lebih dimaksudkan untuk dipanggil dari program.
Dibutuhkan tiga atau empat argumen (argumen terakhir adalah opsional):
Argumen pertama wajib adalah item data yang nilainya akan diintepret sebagai stempel waktu
Argumen kedua wajib adalah data-item alfanumerik yang memegang
PICTUREstring yang digunakan untuk menentukan bagaimana menafsirkan argumen pertamaArgumen ketiga wajib adalah item data, memegang hasil konversi argumen pertama menggunakan argumen kedua sebagai
PICTUREArgumen opsional keempat adalah item data yang digunakan untuk menyimpan kode umpan balik dari utilitas
Cek/Penanganan Kesalahan
Jika jumlah argumen yang diteruskan ke utilitas tidak tiga atau empat, a
BluageWrapperExceptionakan dilemparkanJika stempel waktu diteruskan ke utilitas karena argumen tidak valid, pesan kesalahan akan dicatat dan secara opsional, pemegang kode umpan balik akan diberi makan dengan kode umpan balik tingkat keparahan 3 dan nomor pesan 2513
Jika gambar diteruskan ke utilitas sebagai argumen tidak valid, pesan kesalahan akan dicatat dan secara opsional, pemegang kode umpan balik akan diberi makan dengan kode umpan balik tingkat keparahan 3 dan nomor pesan 2518
Jika, karena alasan apa pun, output detik lilian tidak dapat dihitung, argumen ketiga (output) akan diatur ke 0
Penggunaan Sampel
Berikut adalah contoh panggilan ke utilitas CEESECS dalam program COBOL:
WORKING-STORAGE SECTION. 01 SECONDS COMP-2. 01 TIMESTAMP-IN. 05 TIMESTAMP-IN-LEN PIC S9(4) BINARY. 05 TIMESTAMP-IN-STR. 10 TIMESTAMP-IN-CHAR PIC X OCCURS 0 TO 256 DEPENDING ON TIMESTAMP-IN-LEN. 01 MASK. 05 MASK-LEN PIC S9(4) BINARY. 05 MASK-STR. 10 MASK-CHR PIC X OCCURS 0 TO 256 DEPENDING ON MASK-LEN. 01 FC. ... 01 ROUTINE-NAMES. 05 CEESECS-ROUTINE PIC X(08) VALUE 'CEESECS '. 05 CEELOCT-ROUTINE PIC X(08) VALUE 'CEELOCT '. 05 CEEDATE-ROUTINE PIC X(08) VALUE 'CEEDATE '. ... ... * date for lilian second 12,799,191,601.123 MOVE '1988-5-16-19:00:01.123' TO TIMESTAMP-IN-STR MOVE 23 TO MASK-LEN MOVE 'YYYY-MM-DD-HH:MI:SS.999' TO MASK-STR CALL CEESECS-ROUTINE USING TIMESTAMP-IN MASK SECONDS FC.
ILBOABN0
Tujuan
Tujuan dari program ILBOABN0 adalah untuk mengganggu unit run saat ini dengan cara yang terkontrol, menggunakan kode abend (abnormal end) yang disediakan pengguna. Sering digunakan dalam penanganan kesalahan program khusus.
Gangguan unit run saat ini terjadi dengan melempar a. StopRunUnitException
Tanda tangan
Program ILBOABN0 mengambil argumen wajib tunggal yang merupakan item data yang berisi kode abend (yang harus ditafsirkan sebagai bilangan bulat).
Cek/Penanganan Kesalahan
Saat melempar StopRunUnitException to interupsi run unit run saat ini, program akan mengatur kode pengembalian ke nilai yang diberikan sebagai argumen pertama. Selain itu, pesan informasi akan dicatat.
Penggunaan Sampel
Berikut adalah contoh penggunaan java dari program ILBOABN0, yang dihasilkan dari modernisasi COBOL melalui transformasi AWS:
77 WS-ABND-CODE COMP PIC S9(4) VALUE +1234. ... ... 1970-ABNDIT. CALL 'ILBOABN0' USING WS-ABND-CODE.
dan modernisasi java yang cocok:
//Entity layer private final Group root = new Group(getData()); private final Elementary wsAbndCode = new Elementary(root,new BinaryType(4, 0, "STD", false, false, true),Short.valueOf("1234")); ... //Service layer @Override public void _1970Abndit(final MyPgmContext ctx, final ExecutionController ctrl) { ctrl.callSubProgram("ILBOABN0", CallBuilder.newInstance() .byReference(ctx.getWsAbndCode().getWsAbndCodeReference()) .getArguments(), ctx);