BAB 4 BEKERJA DENGAN MULTIPLE FILE RECORD TYPE Beberapa file mempunyai lebih dari satu type record. File data yang digunakan pada latihan – latihan sebelum dalam buku latihan ini hanya mempunyai satu type record, ini berarti semua baris, atau record dalam file berisi tipe informasi yang sama jenisnya. Record dalam suatu multiple record file berisi beberapa tipe data yang berbeda seperti customer name, invoice details, dan record invoice summary. File dengan beberapa tipe record mungkin juga berupa file report yang berisi judul, judul kolom, subtotals dan totals, dan tipe record lain. File jenis ini dapat juga mempunyai panjang yang tetap atau berubah-ubah. Dalam fixed length file, semua record adalah sama panjangnya. Dalam variabel length, panjang baris berubah-ubah dengan beberapa cara. Di sini ada 3 tipe variabel length file : ♦ CR/LF file, pada tipe file ini pada akhir suatu record ditunjukkan dengan sebuah carriage return, Line feed, atau sebuah kombinasi carriage return dan line feed. ♦ IBM variabel length file. ♦ Custom file, pada tipe ini panjang dari setiap record disimpan dalam sebuah field dalam record tersebut atau dapat juga tidak tersimpan di dalam record. ACL mengenal CR/LF file dan IBM variable length file, Custom files harus didefinisikan sendiri oleh user. Dalam latihan ini, Anda akan mempelajari dua (2 ) tehnik untuk memproses variabel length multiple record type file. Pertama, Anda mempelajari bagaimana memproses file laporan electronik dengan bermacam-macam record berisi headers, totals, judul kolom, dan rincian informasi menggunakan filter dan field static dan Conditional. Selanjutnya, Anda akan mempelajari bagaimana memproses sebuah file variabel length multiple record tipe yang berisi tiga (3) tipe record (header, detail, dan trailer line) dengan menggunakan perintah group dalam sebuah batch. Langkah-langkah memproses multiple record tipe file Untuk memproses nultiple record types, Anda harus: ♦ Membuat sebuah input file definition ♦ Menentukan tipe record dengan membuat sebuah filter untuk setiap tipe record ♦ Mendefinisikan untuk setiap tipe record
Membaca report file. Sebuah report file adalah multiple record type file. Pada bagian ini, Anda mempelajari bagaimana memproses report file dengan membuat sebuah input file definition dan mendefinisikan filer untuk setiap tipe record. Anda kemudian akan memfilter recordrecord tersebut untuk setiap tipe record untuk pendefinisian field. Dengan menggunaan filter, anda memproses data untuk satu tipe record pasa satu waktu, dengan mengabaikan informasi lainnya di dalam report seperti heading dan subtotals. Sebuah report file , biasanya dikenal sebagai print spool file ,biasanya merupakan sebuah duplikasi yang sama persis dengan hard copy report yang diubah ke dalam bentuk elektronik. Jika data yang ingin Anda analisa tidak tersedia dalam bentuk aslinya, atau anda ingin memproses data dari sebuah database relational , anda harus mengubahnya menjadi sebuah flat sequential file. Cara yang mudah untuk mendapatkan sebuah flat sequential file untuk data jenis ini adalah dengan membuat file report yang biasanya didalamnya termasuk informasi tambahan mengenai pengaturan halaman. Pembuatan sebuah file report merupakan proses yang sederhana dalam semua lingkungan minicomputer dan mainframe computer, karena biasanya sistem ini mengumpulkan output mereka ke dalam sebuah file sebelum di cetak. Buatlah salinan dari spool file tersebut sebelum di hapus. File yang dihasilkan biasanya adalah sebuah CR/LF file atau, pada kasus tertentu , sebuah fixed length record file. Untuk memproses kedua tipe file ini adalah sangat mudah. Dalam suatu lingkungan PC, penangkapan suatu data menjadi sangat sulit, Jika Anda dalam sebuah lingkungan LAN, Anda dapat menggunakan LAN Print Spooler dengan cara yang sama dengan Anda menggunakan sebuah mainframe spooler. Pada lingkungan Stand-alone, dimana terdapat sejumlah public domain, program shareware dan utility yang dapat Anda dapat gunakan mencetak langsung ke file. Anda biasanya mendapatkan sebuah CR/LF file, dimana ACL segera dapat membaca seperti yang diilustrasikan pada “langkah-langkah pemrosesan multiple record tipe file” Pembukaan Dokumen Menyiapkan dokumen Anda untuk latihan ini: 1. Buka dokumen Workbook,acl. Untuk detailnya bagaimanan membuka sebuah dokumen dan input file definition , lihat “Jendela Overview “. 2. Dalam Window Overview, pilihlah Input File Definition dan selanjutnya klik tombol New. ACL akan menampilkan halaman Welcome to the data definition Wizard . 3. Pada halaman select data source, Pilihlah Disk. Klik [Next] untuk membuka kotak dialog Select File to Define. 4. Pilih Report. Txt dan lanjutkan Wizard sampai halaman File Properties ditampilkan.
Modul ACL Lanjut
Halaman 33
5. Pada halaman File Properties, pilih Skip to Finish untuk keluat dari Wizard. Dalam Pelajaran ini Anda akan menggunakan Window Input Definition. 6. Simpan file input dengan nama REPORT. Window Input File Definition yang terbuka menampilkan file data Report.txt.
Perlu diketahui ACL menganalisa dan mengidentifikasi file seperti sebuah sebuah File Text CR/LF dalam kotak File Type Text. 7. Gulung layar ke seluruh file agar terbiasa dengan isinya. MEMAHAMI JENIS RECORD DALAM SEBUAH REPORT FILE Setiap baris dari file Report.txt adalah sebuah record. Tipe record adalah komponen – komponen yang berbeda dari report tersebut. Sebagai contoh, sebuah page header, sebuah column heading dan sebuah total line adalah semua tipe record. Anda perlakukan file report tersebut sebagai sebuah multiple record type file jika Anda tertarik dengan tipe record yang berisi data yang sebenarnya. Abaikan semua record yang berisi page formating, report titles, column headings, subtotals, Column heading, total, sub total dan seterusnya, Anda dapat mendefinisikan sebuah filter yang memuat karakteristik unik yang ada pada record data. Sebagai contoh, Anda mungkin memperhatikan bahwa sebagian record terdiri dari Product Number Descriptiom, Quantity, Unit, dan Amount. Record ini mempunyai field Amount dengan sebuah karakter titik decimal pada posisi tertentu. Selama tidak terdapat karakter titik decimal pada posisi yang sama dalam non data , Anda dapat mendefinisikan sebuah filter dengan menggunakan sebuah karakter desimal untuk memproses hanya satu record data saja.
Modul ACL Lanjut
Halaman 34
Dalam latihan ini, Anda hanya akan membahas mengenai data dalam jenis record header dan detail. Anda akan membuat sebuah filter untuk setiap tipe record, selanjutnya mendefinisikan field berikutnya untuk setiap tipe record: Record type Header
Field Product class Product class description
Detail
Product number Product description Quantity on hand Unit cost Extended cost
Anda dapat melihat dari tabel diatas bahwa tidak ada data dalam record 1. Record 2 berisi tanggal, judul report , dan nomor halaman . Record 3 berisi waktu dan baris kedua dari judul report. Record 5 dan 6 berisi column heading dan record 7 adalah empty (kosong). Record 8 adalah record data pertama. Ini adalah sebuah record header yang berisi informasi mengenai Product class dan Product class description. Anda ingin kembali ke record ini, karena record ini berisi beberapa data yang ingin Anda definisikan. Record 10 adalah detail line pertama. Detail line berisi sebagian besar data yang ingin Anda gunakan. Perlu Anda ketahui data dalam setiap detail record 10 sampai 26 adalah konsisten dalam artian posisi dalam record dan panjangnya. Record 28 adalah total line untuk product class pertama. Jika Anda ingin, scroll sampai record ke 232 untuk melihat total report. Pemrosesan sebuah tipe Single Record Anda memproses satu tipe record pada saat membuka sebuah filter untuk sebuah tipe record, selanjutnya menggunakan filter untuk satu file. Dengan menggunakan filter, Anda mendefinisikan field untuk memfilter record. Untuk memulai, Anda pisahkan baris yang berisi informasi yang Anda inginkan dengan baris-baris pemformatan dan total. Untuk mengidentifikasi record data saja, Anda dapat mendefinisikan sebuah filter dengan memasukkan sebuah karakter yang unik dalam record data. Sebagai contoh, semua record data mempunyai field jumlah dengan sebuah titik decimal dalam posisi tertentu. Sudah ditentukan bahwa tidak ada record format halaman yang mempunyai sebuah karakter titik decimal dalam posisi yang sama dengan record data, dan tidak ada record pemformatan halaman yang akan muncul dalam tampilan terakhir. Modul ACL Lanjut
Halaman 35
Pendefinisian Filter untuk Header Perlu diketahui setiap baris heading mempunyai judul diikuti oleh sebuah tanda titik dua. Selama tidak ada baris lain yang berisi tanda titik dua, Anda dapat mendefinisikan sebuah filter yang menguji keberadaan tanda titik dua untuk mengidentifikasi record header. Mendefinisikan sebuah Filter untuk record Header: 1. Klik tab [ Add a new data filter] untuk menampilkan pilihan Filter definition. 2. Dalam record 8, klik tanda titi dua setelah product class dan selanjutnya klik [Include] 3. Klik tombol [Accept entry]. ACL meminta Anda untuk menyimpan filter tersebut. 4. Type Header dan klik [OK ] .ACL menanyakan kepada Anda jika Anda ingin membiarkan filter tetap aktif. 5. Klik [ NO ], karena Anda masih perlu untuk mendefinisikan sebuah filter untuk mendefinisikan baris detail. Pendefinisian Filter Detail Untuk mendefinisikan 5 kolom dari informasi rincian persediaan, Anda perlu mengidentifikasi sebuah karakter unik dalam semua baris detail. jika Anda menemukan bahwa tidak ada karakter tunggal yang secara unik menunjukkan suatu tipe record, Anda dapat menggunakan kombinasi dari beberapa karakteristik. Apabila Anda melihat seluruh file, Anda mungkin mengetahui bahwa semua baris detail dalam report tersebut yang mempunyai sebuah titik desimal dalam kolom unit cost dan kolom extended cost. Salah satunya dapat digunakan sebagai karakteristik dari filter tersebut. Perhatikan pada informasi product number pada layar sebelah kiri. Perlu diketahui bahwa terdapat tempat yang digunakan oleh lima karakter pertama dari product number di kosongkan pada baris class total. Hal ini karena kata “class Totals” teridentifikasi secara benar. Baris detail tidak mempunyai kekosongan pada tempat tersebut. Anda dapat menggunakan sebagai pilihan karakteristik. Kedua.
Mendefinisikan sebuah filter untuk record detail : 1. Klik tab Add a new data filter untuk menampilkan pilihan filter definition 2. Dalam Record 10, Klik titik decimal dalamposisi pertama dari unit cost dan klik [Include] 3. Klik Accept the entry. ACL meminta Anda untuk menyimpan filter. 4. Tipe Detail dan selanjutnya klik [OK], Acl menanyakan jika Anda menginginkan filter tetap aktif. 5. Klik [NO]. Anda akan mendefinisi field untuk header filter.
Modul ACL Lanjut
Halaman 36
Pendefinisian Field untuk Header Sekarang Anda siap untuk mendefinisikan field yang ingin Anda gunakan dari file report. Anda akan mendefinisi hanya field dari baris header dan mengabaikan baris lain dalam file report. Mendefinisikan Dua Field Header: 1. Pada sebelah kiri atas dari window Input File Definition menampilkan pilihan filter definition, terdapat menu yang menampilkan semua filter yang sudah anda definisikan. Pilih Header untuk menjalankan filter header terhadap record-record tersebut. Semua record lain akan disembunyikan. 2. Dalam record 8, Klik di posisi 19. ACL akan memasukkan angka 19 dalam kotak star. 3. Klik dalam kotak len dan tipe 2 4. Dalam kotak Nama text, type Prodcls1 5. Klik Accept entry. Tampil Sebuah kotak dialog yang meminta Anda mengkonfirmasi jika informasi dari type record ini berhubungan dengan record berikutnya.
6. Klik [Yes]. Informasi Product class dan Description pertain yang mengikuti record detail. 7. Masih di record 8, Klik dalam posisi 25, ACL akan memasukkan angka 25 dalam kotak star. 8. Dalam kotak len angka 19 9. Dalam kotak Name Text type Classdesc 10. Klik Accept the entry. Window Input file definition tampak sebagai berikut:
Modul ACL Lanjut
Halaman 37
Pendefinisian Field Detail Sekarang Anda akan mendefinisi field untuk baris detail dan mengabaikan baris lain dalam report file tersebut: Mendefinisi lima field detail: 1. Pilih Detail dari menu filter. ACL menjalankann filter detail untuk merubah semua record lain akan disembunyikan. 2. Dengan Filter detail yang aktif, dalam record 10, baris detail pertama, Klil dalam posisi 6. ACL akan memasukkan angka 6 dalam kotak start. 3. Dalam kotak text length ketikkan 9 4. Dalam kotak Namae text, type Prodno untuk nama field 5. Klik Accep the entry. ACLmeminta Anda untuk mengkonfirmasi jika informasi dari tipe record ini berhubungan dengan record berikutnya. 6. Klik [No}. Informasi dalam baris detail berubah secara teratur dan tidak perlu disisakan dari satu record untuk record berikutnya. 7. Pendefinisian empat field sisanya untuk baris detail sebagai berikut:
Modul ACL Lanjut
Halaman 38
Name PRODDESC QTOH UNCST
EXTCST1
Type ASCII NUMERIC NUMERIC NUMERIC
Start 16 41 50 62
Length 25 9 12 12
Decimal 0 2 2
8. Window Input File Definition sekarang tampak seperti ini:
Penyimpanan Input File Definition Anda mempunyai tujuh field yang sudah didefinisi: dua baris header dan lima baris detail. Sekarang simpan input file definition. Menyimpan Input File Definition 1. Tutup jendela Input file definition. ACL akan meminta Anda menyimpan perubahan terhadap input file tersebut. 2. Type INVREPT dan klik [OK]. ACL akan menyimpan perubahan tersebut dan menampilkan file input report dalam jendela view.
Modul ACL Lanjut
Halaman 39
Penampilan Record Detail saja Menggunakan sebuah filter untuk menampilkan hanya record detail: 1. Klik dalam jendela view untuk membuat filter actif 2. Tipe detail dalam kotak teks Edit viev filter dalam jendela tersebut. 3. Klik accept the entry untuk mengaktifkan filter. Semua record kecuali record detail akan disembunyikan.
Modul ACL Lanjut
Halaman 40
Sekarang Anda dapat menggunakan perintah ACL lain dengan filter detail untuk memproses data secara datail. Pemakaian sebuah filter secara otomatis Anda dapat juga menggunakan pilihan Default filter untuk memproses semua record dalam setiap Anda membuka file. Mengotomatisasi format Default view setiap Anda membuka file: 1. Klik Add a new data field atau Select Edit dari menu dan pilih Input File Definition. 2. Klik dua kali Detail dalam list field yang sudah terdefinisi dan ekspresi 3. Check kotak check Default Filter untuk membuat detail fillter default. ACL secara otomatis melakukan aktivitas filter setiap saat Anda membuka view Default ketika Anda menekan pilihan ini. 4. Klik Accept entry dan kembali ke Window Input File Definition
Di waktu lain Anda membuka file input invrept maka filter detail akan akan aktif. Pemrosesan Type Multiple Record dengan Field Kondisi Tetap. Semua Field kondisional dapat dibuat statis. Dengan membuat suatu field kondisional statis akan mempengaruhi bagaimana ACL memproses field tersebut. Ketika suatu pengujian IF untuk field statis tidak memenuhi syarat, bukannya mengembalikan nilai ke nol, ACL akan menggunakan nilai yang terakhir di dalam field sampai suatu nilai valid baru ditemukan. Anda dapat membuat suatu field kondisional dengan data yang valid hanya dengan memasukkan suatu pengujian IF, dengan static modifier, dalam definisitersebut. Static Modifier menyimpan nilai dari field yang sedang diproses. Static modifier mencegah ACL untuk mengubah nilai field menjadi defaultnya pada saat pengujian IF gagal. Sebagai contoh, filter heading adalah sebuah field kondisi dan titik dua adalah Pengujian IF nya. Field kondisional static, PRODCLS dan PRODDESC, berhubungan dengan baris detai sampai suatu perubahan teridentifikasi. Sebaiknya Anda mungkin tidak membuat field kondisional static berdasarkan informasi yang berhubungan dengan record detail, karena informasi itu hanya berhubungan record tertentu. Tampilan berisi field kondisional statis mungkin berubah secara perlahan ketika Anda menggulung layar ke akhir file.
Modul ACL Lanjut
Halaman 41
Ketika Anda bekerja dengan sebuah multiple record type file, Anda harus selalu menentukan tipe record yang ingin di proses. Apabila Anda memilih field, yakinkan bahwa Anda hanya menggunakan fiel-fieldnya yang didefinisi dengan static modifier. Sebuah field static akan menyimpan nilainya sampai field tersebut diperbaharui. Keluar dari ACL. Jika Anda ingin keluar dari ACL sekarang, Select File dari menu bar dan pilih EXIT.
Modul ACL Lanjut
Halaman 42