Mainframe Connector mendukung dua versi parser copybook:
- Parser copybook native: Parser copybook Native mengimplementasikan parser berbasis ANTLR4, mendukung {i>copybook<i} COBOL, dan merupakan versi parser yang direkomendasikan.
- Parser copybook lama: Parser copybook lama merupakan versi lama parser yang memiliki dukungan untuk format buku salinan (copybook).
Anda dapat menentukan parser yang ingin digunakan berdasarkan copybook. Untuk selengkapnya informasi mengenai cara mendefinisikan parser yang ingin Anda gunakan, lihat Menentukan parser copybook.
Parser copybook native
Parser salinan buku native adalah versi terbaru dari parser dan digunakan secara {i>default<i}. Parser copybook native mengimplementasikan parser berbasis ANTLR4 dan mendukung {i>copybook<i} COBOL.
Bagian ini mencantumkan tugas pra-pemrosesan yang dilakukan oleh jenis data yang didukung oleh parser Copybook native dan batasan penggunaannya.
Prapemrosesan
Sebelum mengurai buku salinan, copybook Native parser akan memproses data terlebih dahulu dan melakukan tugas berikut:
- Menghapus baris komentar.
- Menyelesaikan kelanjutan baris.
- Mengosongkan area nomor baris dan kolom 73.
- Mempertahankan pernyataan khusus praprosesor seperti
EJECT
,SPACE
, danTITLE
. Kolom ini diuraikan, tetapi diabaikan. Copybook yang berisi parameter praprosesor yang dapat digunakan olehCOPY REPLACING
tidak didukung oleh Parser copybook native. Dalam {i>copybook<i} (teks) ini, ID diapit oleh tanda titik dua (:).
Jenis data dan batasan yang didukung
Berikut adalah jenis data yang didukung oleh parser copybook dan pembatasan penggunaannya:
- Level 66 (ALIAS) atau 77 (STANDALONE) tidak didukung.
- Hanya gunakan kolom PICTURE. Kolom PICTURE berikut didukung:
- Pic A, Pic, B, Pic G (DBCS), Pic N (nasional atau DBCS), Pic U (UTF8), Pic X, dan desimal zona (presisi maks. 38, skala maks 38)
- Titik mengambang Heksadesimal (HFP) IBM didukung.
- REDEFINES tidak didukung.
- Hanya gunakan kolom COMP berikut. ALIGN dan OCCURS tidak didukung.
- COMP
- COMP4
- BINARY
- COMP3
- DESIMAL DIPAKET
- DATE dan TIMESTAMP didukung.
- Kolom Himpunan karakter byte ganda (DBCS) Pic G dan Pic N adalah
didukung dan harus digunakan sebagai pengganti Pic T, yang sekarang tidak digunakan lagi. Kepada
gunakan kolom Pic N sebagai DBCS tanpa menentukan
USAGE DISPLAY-1
, Anda harus menetapkan variabel lingkunganNSYMBOL
untukDBCS
. Secara default,NSYMBOL
disetel keNATIONAL
yang menetapkanUSAGE NATIONAL
ke kolom Pic N yang tidak memiliki klausaUSAGE
. Perlu diketahui bahwaNSYMBOL
hanya dapat ditetapkan keNATIONAL
atauDBCS
. - String karakter dengan panjang variabel didukung.
- Klausa SIGN didukung.
- Anda harus menyejajarkan semua kolom dan menggunakan satu tingkat indentasi.
- Komentar didukung.
Dukungan untuk kolom tanggal dan stempel waktu
Mainframe Connector mendukung pemindahan data tanggal dan stempel waktu masuk dan keluar
BigQuery. Untuk melakukannya, Anda harus menentukan variabel lingkungan yang dimulai
dengan kata SUFFIX
dalam format berikut:
SUFFIX_SUFFIX_STRING="--bqtype TYPE --format FORMAT --timezone TIMEZONE"
Daftar berikut menjelaskan format tersebut secara lebih detail:
SUFFIX_SUFFIX_STRING
: Variabel lingkungan yang yang dapat Anda gunakan untuk menentukan data tanggal dan stempel waktu. SUFFIX_STRING sesuai dengan akhiran-SUFFIX_STRING
atau_SUFFIX_STRING
yang harus ditafsirkan sebagai tanggal atau {i>stempel waktu<i} ketika digunakan sebagai akhiran nama {i>field<i} di buku salinan. Pastikan bahwa SUFFIX_STRING tidak berisi tanda hubung atau garis bawah.--bqtype
: Menentukan TYPE BigQuery kolom tersebut. Jenis BigQuery yang didukung adalahDATE
danTIMESTAMP
.--format
: Parameter yang menentukan format tanggal atau {i>stempel waktu<i}. Anda dapat menentukan maksimal lima format berbeda yang dipisahkan dengan tanda koma. Jika beberapa format dapat mencocokkan input yang diberikan, format pertama yang cocok adalah yang digunakan untuk memuat ke BigQuery. Jika beberapa format ditentukan untuk mengekspor, hanya format pertama yang digunakan. Untuk informasi selengkapnya tentang lihat Format tanggal dan stempel waktu yang didukung.--timezone
: Parameter opsional untuk jenisTIMESTAMP
. Secara default, zona waktunya adalah UTC. Untuk mengetahui informasi selengkapnya tentang zona waktu yang didukung lihat Format zona waktu yang didukung.--omitsuffix
(Opsional): Jika parameter ini ditentukan,-SUFFIX_STRING
atau_SUFFIX_STRING
dihapus dari nama kolom yang muncul di BigQuery.
Guna menambahkan alias untuk SUFFIX_SUFFIX_STRING
, Anda dapat menetapkan
variabel lingkungan SUFFIX_SUFFIX_ALIAS=$SUFFIX_SUFFIX_STRING
.
Contoh:
- Jika Anda menentukan variabel lingkungan sebagai
SUFFIX_DT8="--bqtype DATE --format yyyyMMdd"
, kolom dengan akhiran-DT8
atau_DT8
akan menjadi Kolom jenisDATE
di BigQuery, dan polanya akan menjadiyyyyMMdd
. - Jika Anda menentukan variabel lingkungan sebagai
SUFFIX_DT10="--bqtype DATE --format MM-dd-yyyy"
, kolom dengan akhiran-DT10
atau_DT10
akan menjadi Kolom jenisDATE
di BigQuery, dan polanya akan menjadiMM-dd-yyyy
. - Jika Anda menentukan
variabel lingkungan sebagai
SUFFIX_DT="--bqtype DATE --format 'MM-dd-yyyy,MM/dd/yyyy'"
, kolom dengan akhiran-DT
atau_DT
akan menjadi Kolom jenisDATE
di BigQuery, dan polanya akan menjadiMM-dd-yyyy
atauMM/dd/yyyy
. - Jika Anda menentukan dua
variabel lingkungan sebagai
SUFFIX_TIMESTAMP="--bqtype TIMESTAMP --format 'yyyy-MM-dd HH:mm:ss.SSSSSS' --timezone America/Los_Angeles"
danSUFFIX_TS=$SUFFIX_TIMESTAMP
, kolom dengan salah satu akhiran berikut:-TIMESTAMP
,_TIMESTAMP
,-TS
, atau_TS
akan berupa jenisTIMESTAMP
kolom di BigQuery, dan polanya adalahyyyy-MM-dd HH:mm:ss.SSSSSS
dengan zona waktuAmerica/Los_Angeles
.
Dukungan untuk kolom DBCS
Pastikan hal berikut saat menggunakan kolom DBCS:
- Saat menggunakan kolom PIC G atau Pic N DBCS, Anda harus memberikan salah satu dari hal berikut
encoding himpunan karakter multi-byte (MBCS) yang valid dalam
encoding
atau dalam variabel lingkunganENCODING
saat menggunakan Perintahgsutil cp
ataubq export
:- X-IBM930
- X-IBM933
- X-IBM935
- X-IBM937
- X-IBM939
- X-IBM942
- X-IBM942C
- X-IBM943
- X-IBM943C
- X-IBM949
- X-IBM949C
- X-IBM950
- X-IBM964
- X-IBM970
- X-IBM1364
- Jika isian {i>copybook<i} hanya berisi byte DBCS, tetapi byte ini
dikelilingi oleh shift-out (0x0E) dan shift-in (0x0F), Anda harus menambahkan akhiran
_DBCS
ke nama kolom untuk memastikan bahwa byte ini didekode sebagai DBCS.
Misalnya, jika data Anda sesuai dengan kolom {i>copybook<i}
03 FLD01 PIC N USAGE DISPLAY-1
berisi byte 0x43
dan
0xC5
dalam encoding x-IBM930 yang tidak dikelilingi oleh 0x0E
dan
0x0F
, Anda harus mengganti nama kolom copybook menjadi
03 FLD01-DBCS PIC N USAGE DISPLAY-1
untuk mendekode dengan benar
data DBCS.
Dukungan untuk string karakter dengan panjang variabel
Parser copybook Native mendukung hal berikut
Kolom struct
:
- 10 variabel
- 15 var-LEN PIC 9(4) PERBANDINGAN PENGGUNAAN
- 15 var-TEXT PIC X(n)
Kolom pertama di kolom struct
adalah panjang kolom kedua
bidang, yaitu bidang string. Anda mungkin harus menambahkan
beberapa pelapis di akhir
merekam berdasarkan panjang kumpulan data seperti yang ditunjukkan dalam gambar berikut.
Mainframe Connector menghapus akhiran dari nama variabel sebelum
menyimpan data di BigQuery. Dalam contoh ini, nama variabel akan
var
.
Untuk menggunakan kolom struct
, tetapkan variabel lingkungan
BQSH_FEATURE_VARIABLE_LENGTH_ENABLED
ke yes
atau
true
.
Saat menggunakan kolom struct
, pastikan hal berikut:
- Akhiran dari parameter pertama di
struct
adalah-LEN
. Jika Anda ingin menggunakan akhiran yang berbeda, Anda harus menetapkan variabel lingkunganBQSH_FEATURE_VARIABLE_LENGTH_LEN_SUFFIX
menjadi akhiran yang ingin Anda gunakan. - Akhiran parameter kedua di
struct
adalah-TEXT
. Jika Anda ingin menggunakan akhiran yang berbeda, Anda harus menyetel variabel lingkunganBQSH_FEATURE_VARIABLE_LENGTH_LEN_SUFFIX
menjadi akhiran yang ingin Anda gunakan.
Kolom dan konstruksi yang tidak didukung
Bagian berikut yang menjelaskan kolom dan konstruksi tidak didukung oleh
Konstruksi COBOL
Konstruksi COBOL meskipun konstruksi ini tidak didukung. Jika Anda menggunakan di {i>copybook<i} Anda, Mainframe Connector menunjukkan sebuah {i>error<i}.
dataAlignedClause
dataBlankWhenZeroClause
dataCommonOwnLocalClause
dataIntegerStringClause
dataJustifiedClause
dataOccursClause
dataReceivedByClause
dataRecordAreaClause
dataRenamesClause
dataSignClause
dataSynchronizedClause
dataThreadLocalClause
dataTypeClause
dataTypeDefClause
dataUsingClause
Jenis data
Tipe data COBOL seperti COMP-1 dan COMP-2 juga didukung.
Parser copybook lama
Parser copybook lama adalah versi parser lama yang mendukung non-COBOL. Jika Anda menggunakan {i>copybook <i}berbasis DSL, {i>Parser<i} yang lama mungkin lebih cocok sebagai parser copybook Native dapat menyebabkan error.
Anda dapat menggunakan DD buku salinan dengan batasan berikut:
- Level 66 (ALIAS) atau 77 (STANDALONE) tidak didukung.
- REDEFINES tidak didukung.
- Baris komentar tidak didukung.
- Kolom dengan panjang 10 yang namanya diakhiri dengan DATE atau DT adalah tanggal. Decoding berbeda untuk kolom tersebut.
- Hanya gunakan kolom COMP berikut. ALIGN dan OCCURS tidak didukung.
- COMP
- COMP4
- BINARY
- COMP3
- DESIMAL DIPAKET
- Hanya gunakan kolom PICTURE. Tentukan kolom PICTURE pada baris yang sama, secara langsung setelah nama {i>field<i}.
- Anda harus menyejajarkan semua kolom dan menggunakan satu tingkat. Komentar tidak didukung.
- Pastikan kolom 1 sampai 6 selalu berisi kosong.