Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tantangan migrasi aplikasi
Saat Anda memigrasikan aplikasi dari EBCDIC ke ASCII, kami sarankan Anda menganalisis dan mengurangi dependensi EBCDIC apa pun dalam aplikasi. Ini melibatkan analisis dependensi kode sumber dan menyusun urutan.
Ketergantungan kode sumber
Sangat penting untuk memeriksa karakter yang digunakan untuk mewakili nilai numerik, karena karakter ini akan berubah ketika kode sumber Anda dikonversi dari EBCDIC ke ASCII. Beberapa programmer mainframe menggunakan teknik berikut untuk mewakili data numerik dalam bidang COMP di copybook atau dalam penyimpanan kerja, seperti contoh berikut menunjukkan.
01 CHAR-74 PIC 99 COMP VALUE "¢".
Dalam EBCDIC, nilai dari contoh sebelumnya adalah X"41" (“74" sebagai numerik). Jika data sumber dikonversi ke ASCII, maka karakter ini diubah menjadi X “5B” (“91" sebagai numerik). Perubahan ini tidak akan menyebabkan masalah kompiler tetapi dapat mengakibatkan masalah pemrograman yang menantang untuk di-debug. Contoh berikut menunjukkan solusi efektif yang mengubah sumber untuk berisi nilai numerik aktual.
01 CHAR-74 PIC 99 COMP VALUE 74.
Kami juga menyarankan Anda memeriksa penggunaan karakter hex yang disematkan, seperti pada contoh berikut.
IF WS-DATA(1:1) = X"5B" …
Dalam EBCDIC, contoh sebelumnya adalah menguji karakter pertama bidang untuk melihat apakah itu “$”. Representasi ASCII dari “$” adalah X"24". Contoh berikut menunjukkan solusi efektif yang menggunakan karakter yang dimaksud.
IF WS-DATA(1:1) = "$" …
Tidak semua nilai X “nn” menyebabkan masalah. Misalnya, LOW-VALUE konstan adalah X “00" dan HIGH-VALUE adalah X “FF”. LOW-VALUES (X “00") biasanya digunakan untuk menginisialisasi bidang biner yang tidak ditandatangani. Misalnya, pernyataan berikut tidak memerlukan perubahan apa pun.
MOVE ALL X"00" TO WS-DATA
NILAI TINGGI (X “FF”) kadang-kadang digunakan sebagai penanda data untuk memastikan bahwa catatan diposisikan di akhir SORT atau untuk menandai akhir file. Misalnya, pernyataan berikut tidak memerlukan perubahan apa pun.
MOVE ALL X"FF" TO WS-DATA
Kedua pernyataan sebelumnya bekerja sama di lingkungan EBCDIC atau ASCII.
Urutan penyusunan
Dalam EBCDIC, karakter alfabet mendahului nilai numerik. Dalam ASCII, nilai numerik mendahului karakter alfabet. Akibatnya, bidang kunci alfanumerik di VSAM atau database yang berisi campuran nilai alfabet dan numerik mengembalikan data dalam urutan yang berbeda setelah dimigrasi. Kami menyarankan Anda menganalisis dampak urutan penyusunan di tingkat aplikasi untuk menentukan strategi remediasi yang benar.
Tabel berikut menunjukkan contoh sederhana dari data alfanumerik dan bagaimana data ini diurutkan dalam EBCDIC dan ASCII.
EBCDIC |
ASCII |
---|---|
A1 |
1A |
A2 |
2B |
1A |
A1 |
2B |
A2 |
Urutan penyusunan mempengaruhi kembalinya yang berikut:
-
Akses kunci VSAM (Catatan: File VSAM mengembalikan data dalam urutan urutan penyusunan file yang dibuat dengan. Bahkan jika program COBOL dikompilasi untuk menggunakan urutan penyusunan EBCDIC, file VSAM yang dibangun dengan urutan penyusunan ASCII mengembalikan data dengan menggunakan urutan penyusunan ASCII. Urutan penyusunan ASCII dapat menyebabkan masalah aplikasi.)
-
Fungsi SORT internal atau eksternal
-
Pernyataan bersyarat
-
Kursor SQL (Catatan: Kursor SQL mengembalikan data dalam urutan urutan penyusunan database dibuat dengan, kecuali urutan penyusunan didefinisikan dalam pernyataan DECLARE. Bahkan jika program COBOL dikompilasi untuk menggunakan urutan penyusunan EBCDIC, database yang dibangun dengan urutan penyusunan ASCII mengembalikan data dengan menggunakan urutan penyusunan ASCII. Urutan penyusunan ASCII dapat menyebabkan masalah aplikasi.)
Mengumpulkan dependensi urutan juga dapat melampaui aplikasi dan ke dunia fisik. Misalnya, barcode pada tempat penyimpanan di gudang dapat dipesan menggunakan nilai EBCDIC. Mengubah aplikasi ke ASCII dapat memerlukan perubahan kode batang secara fisik di tempat penyimpanan.