Showing posts with label COBOL. Show all posts
Showing posts with label COBOL. Show all posts

March 5, 2015

CEMT SET PROG tidak bisa NEW COPY

Beberapa saat lalu salah satu program saya tidak bisa di Newcopy di CICS.

Biasanya program tidak bisa di newcopy karena ada proses yang "memegang" program ini.

Hal ini bisa dilihat dari Info RES (resource count) dari menu CEMT I PROG.


Contohnya :

I PROG(XXXXXX)                                                               ,
STATUS: ,RESULTS - OVERTYPE TO MODIFY
,Prog(XXXXXX  ),Leng(0000010320),Ass,Pro,Ena,Pri,   ,Ced,   ,
  ,,Res(001),Use(0000000108),Bel,Uex,Ful,Qua,Cic,             ,   ,

Agar bisa di new copy, angka RES ini harus 0 (tidak sedang ada yg memegang).

Coba gunakan CECI release program :
CECI REL PROG(XXXXXX)

Untuk me-release program yang tidak bisa di new copy.

Pada kasus saya, CECI Release ini tidak bisa dilakukan (ada pesan error ketika mencoba release). Karena program tersebut adalah program TCP/IP maka terpaksa saya terminate dari EZAO.

EZAO STOP


Semoga membantu jika ada yg mengalami permasalahan yg sama :)

December 20, 2008

Keunikan Bahasa COBOL (akhirnya kutemukan juga)

Setelah setahun begelut dengan COBOl, setelah berusaha memahami COBOl, mencintai COBOL, menemukan suatu yang spesial dari COBOL, akhirnya kemarin ketemu juga keunikan bahasa pemrograman yang satu ini.

Uniknya di mana ?

OK begini nih...

Jika saya memiliki variable X yang menupakan type 9 ( unsigned integer di bahasa C),

Berapakah nilai X jika :
X = 2 / 3 * 9 ( dua dibagi tiga dikali sembilan ) ?

Hayu jawab dulu deh... sebentar doang tuuh..

Jika kamu menjawab nilai X adalah 6 atau 5, dalam kasus COBOL, Anda keliru...
di COBOL jawabannya adalah 0.

Lho kok bisa ?

Hayooo ada yang tau jawabannya ?
Saya sendiri punya teori, bahwa si COBOL memprosesnya seperti ini :

step 1: devide 3 from 2 giving X ( bagilah 3 dari 2 kemudian hasilnya simpan di X).
Step 2: multiply X by 9 giving X (kalikan X dengan 9 kemudian hasilnya simpan di X).

Mengapa hasilnya X adalah 0 ?
karena ketika pembagian pertama (2/3) adalah 0.666666...7 maka oleh COBOL akan dibulatkan menjadi 0 karena tipe si X adalah tipe 9 (padanannya unsigned integer di bahasa C)
so.. ketika step ke dua... X dilkali dengan 9, hasilnya akan 0 karena nilai X sebelumnya adalahh 0.. (0*9=0) ..

Wi... primitif sekali bukan ?
si COBOL melakukannya benar-benar step by step, tidak seperti bahasa pemrograman yang baru-baru sekarang... Mungkin mirip assembler ??
Akhirnya menemukan keunikan COBOL v^ ^

September 22, 2008

Buku - Buku Cobol

Hei...
Aku ada buku COBOL nih...
kalo ada akademisi yang membutuhkan referensi belajar COBOL... bisa hubungi saya.
Karena buku ini milik kantor, so... paling bisa bantu fotokopiin aja...

ada tiga buku ...
yang pertama :
Structured Cobol Programming (dapat dilihat di http://www.amazon.com/Structured-COBOL-Programming-Nancy-Stern/dp/0471871508)

yang ke dua :
Fundamentals of Structured COBOL Programming, nth edition

dan yang ke tiga :
Bahasa COBOL karya Jogianto, terbitan Penerbit Andi.

Jika ada yang butuh... email saja ke email saya.

silverant[at]gmail.com

April 15, 2008

non procedural cobol code at real-world program

non procedural COBOL coding style...

CONTROL-CHECK.
IF WS-ALL-ORGS IS EQUAL TO 'Y'
GO TO PROCESS-ACCT.
IF WS-CC-ORG-TYPE IS EQUAL TO WS-CONTROL-ORG
GO TO PROCESS-ACCT.
IF WS-CC-ORG-TYPE IS GREATER THAN WS-CONTROL-ORG
GO TO ACCT-LOOP.
PERFORM READ-CONTROL-CARD THRU READ-CONTROL-CARD-EXIT.
GO TO CONTROL-CHECK.
PROCESS-ACCT.
MOVE ACCT-NMBR (xxx) TO WS-NOMINAL-KEY.
PERFORM CARDHLD-RANDOM-READ THRU CRR-XIT.
IF WS-IO-COMPLETE
GO TO ACCT-CUST.
IF WS-INVALID-ACCT-NBR
MOVE 'X' TO REASON
GO TO BUILD-EXCEPTION.



READ-CONTROL-CARD.
IF WS-CSC-EOF-SW IS EQUAL TO 'Y'
MOVE 'xxxxxx' TO WS-CC-ORG-TYPE
GO TO READ-CONTROL-CARD-EXIT.
READ CONTROL-SPECS
AT END
MOVE 'xxxxxx' TO WS-CC-ORG-TYPE
MOVE 'Y' TO WS-CSC-EOF-SW
GO TO READ-CONTROL-CARD-EXIT.
IF CSC-PROGRAM-NAME NOT = 'xxxxxx' AND 'xxxxxx'
GO TO READ-CONTROL-CARD.
MOVE CSC-CONTROL-CARD TO WS-CONTROL-CARD.
IF WS-CC-ORG-TYPE IS EQUAL TO 'xxxxxxx '
MOVE 'Y' TO WS-ALL-ORGS
MOVE 'xxxxxx' TO WS-CC-ORG-TYPE.
IF WS-CC-ORG-TYPE IS NOT NUMERIC
IF WS-CONSOLE-ACCEPT-SW IS EQUAL TO 'Y'

bla bla bla....

READ-CONTROL-CARD-EXIT. EXIT.


Can you read it ?
Yes, absolutely.

Can you understand it ?
Humm.. yes I do.

Can you manage it ?
Humm... I think I can...

Can you fix it ?
I don't know...

Potongan kode di atas sangat tidak procedural.. sangat spaghetti code... Padahal digunakan di real world system, real world business.. di 8 dari 11 Bank di Indonesia...

Kebayang kan susahnya me manage system buatan orang "lama" yang gak mau menggunakan procedural programming, dan tetep keukeuh menggunakan spaghetti programming ?

April 10, 2008

March 25, 2008

Cobol Programmer's Joke

Jack was a COBOL programmer in the mid to late 1990s. After years of being taken for granted and treated as a technological dinosaur by all the Client/Server programmers and website developers, he was finally getting some respect. He'd become a private consultant specializing in Year 2000 conversions.

Several years of this relentless, mind-numbing work had taken its toll on Jack. He began having anxiety dreams about the Year 2000. All he could think about was how he could avoid the year 2000 and all that came with it.

Jack decided to contact a company that specialized in cryogenics. He made a deal to have himself frozen until March 15th, 2000. The next thing he would know is he'd wake up in the year 2000; after the New Year celebrations and computer debacles; after the leap day. Nothing else to worry about except getting on with his life.

He was put into his cryogenic receptacle, the technicians set the revive date, he was given injections to slow his heartbeat to a bare minimum, and that was that.

The next thing that Jack saw was an enormous and very modern room filled with excited people. They were all shouting "I can't believe it!" and "It's a miracle" and "He's alive!". There were cameras (unlike any he'd ever seen) and equipment that looked like it came out of a science fiction movie.

Someone who was obviously a spokesperson for the group stepped forward. Jack couldn't contain his enthusiasm. "Is it over?" he asked. "Is the year 2000 already here? Are all the millennial parties and promotions and crises all over and done with?"

The spokesman explained that there had been a problem with the programming of the timer on Jack's cryogenic receptacle, it hadn't been year 2000 compliant. It was actually eight thousand years later, not the year 2000. Technology had advanced to such a degree that everyone had virtual reality interfaces which allowed them to contact anyone else on the planet.

"That sounds terrific," said Jack. "But I'm curious. Why is everybody so interested in me?"

"Well," said the spokesman. "The year 10000 is just around the corner, and it says in your files that you know COBOL".

February 19, 2008

Cobol Tutorial Part 01 -- Introduction to Cobol

What is Cobol ?
Cobol is an acronym of Common Business Oriented Language..
So it seems that this language is made (born) to support business.. so it's mission is very clear.

Why Cobol ?
It is made for business...
I am a C lover and a C user for some years... and at first I questioned "Why they don't use C on mainframe?, I've been told that C is one of the fastest language.. Why they use Cobol instead of C?"

Now.. maybe I found the answer... C is too good for solving the business problem.
All we need on mainframe is string processing... and Cobol have the built in string processing routine... so why wee need the more complex language? (but still, I love C more than Cobol :p)

Why they don't change Cobol to the newer language ?
Humm... as we see now, Java spreads everywhere... is it going to replace Cobol ?
Will the applications in mainframe written on Cobol be rewritten to Java (or any newer language) ?

Humm... Who know ? Maybe...
but on my opinion, Cobol application will be exist at least until I die... ( it means that I can use my Cobol skill to get some money before I die :p )

Why ?

Because to rewrite and redeploy applications on the production line is not as simple as making a standalone application... It's all about business... it's all about money...

If the mainframe is down (let say during the transition mainframe will down for 5 hours) How many transaction is lost ?

According to preliminary results of Micro Focus' survey of 750 mainframes in the U.S. and Canada, 41% name COBOL as a principal programming language by an approximate 25% margin over Java, the next most popular language. Preliminary results also find 52% of mainframe applications are still written in COBOL.

"COBOL is like an invisible giant. There's reported to be 180 billion-200 billion lines of code out there, processing 75% of commercial business. Few companies are keen to throw away the hundreds or thousands of man-years that have been invested in mature, high-performance COBOL code. Instead, they are integrating and building bridges between COBOL, .NET and J2EE [Java 2 Platform, Enterprise Edition], using service-oriented architectures to preserve the strengths of the legacy code while benefiting from Web-oriented development tools," Lillycrop, CEO of U.K.-based Arcati Research and Publishing, said.

So ....

February 15, 2008

Tutorial Cobol (bagian 00 - Pre Tutorial)

Humm.... daripada nganggur....
kayaknya pengin bikin "Tutorial Cobol"....

so ntar materi nya kutulis di sini, trus pembaca/pengikut tutorial bisa menuliskan code nya di bagian comment biar ntar kujalanin di mainframe...

Soalnya.. jarang kan yang punya compiler cobol.... ^^

Tapi... apa ada yang berminat ya...
menurutku sih.. dari 1000 programmer.. paling cuma 5 orang yang akhirnya ketemu ama Cobol...
Mungkin 400 ketemu ama Java... 300 ama .NEt... yang lainnya mungkin ketemu ama PHP, C,C++, Ruby....

Gimana.. ada yang tertarik gak ?


Sebenarnya sih... aku juga baru bisa-bisaan doang Cobolnya.. tapi at least... di sini ada buku Cobol, ada compiler Cobol, dan ada mainframe buat njalanin program :)

so... cuma pengin berbagi aja, untuk yang pengin belajar Cobol tapi gak punya mainframe... :)

Gimana ? Ada yang tertarik belajar Cobol ga ??

January 16, 2008

Ralat buat Copybook Error

Ralat buat postinganku yang sebelumnya, ternyata bukan copybooknya yang error...
ehm... maksudku... routine di copybook itu memang punya kelemahan, tapi "biasanya" juga gpp.

So sebenarnya mungkin /me bisa disebut menemukan kelemahan dari routine tersebut, tapi bisa juga dikatakan Salah cara menggunakan routineatau bisa juga disebut juga bahwa Routine tersebut memang sengaja dibuat demikian, so harus gitu, kalo gak gitu ya jadi error (meskipun pesan error yang ditampilkan "tidak" sesuai dengan "seharusnya" ) tergantung dari cara pandang kita dan kata hati kita

humm.. whatever... yang jelas, setelah menggunakan copybook itu sesuai dengan standar penggunaannya.. /me berhasil.

so... kalo ada sesuatu yang salah padahal biasanya bisa.. kata tentor ku sih.. Jangan gunakan kata "Ah biasanya juga bisa kok". Cek lagi semuanya. Lokalisir masalahnya, Sederhanakan masalahnya, sederhanakan code sampai se sederhananya -- kalo perlu sampai kode yang "pasti" jalan dahulu, baru kemudian jika berhasil, baru di tambahkan kerumitannya ( Jika kita udah membuat code yang panjang, sebaiknya kita comment dulu bagian2 yang berpotensi menimbulkan masalah, sederhanakan dahulu sampai sesederhana mungkin, kemudian step-by-step, comment nya dibuka kembali hingga ketemu letak errornya.

Lebih baik lagi kalo dibantu debugger, tentunya harus bisa cara menggunakan dan membaca pesan dari debugger ini (belajar lagi deh... T_T )

Apa gunanya pake debugger yang canggih kalo gak bisa membantu kerjaan kita, ya gak ?

Mohon maaf ya.. udah menyalahkan orang lain... :)

January 12, 2008

Copybook Error

Hari ini, hari sabtu.
Meski seharusnya libur, /me ke kantor...
soalnya penasaran banget ama program yang 2 hari lalu kubuat... masa sih error ??

Sejak tadi siang jam 11.00 an aku mulai menutak-atik code ini..
dilihat dari sisi manapun benar.. tapi kok error ya.. T__T

pesen errornya selalu :

"JGOTGS01 RUNTGS01 - ABEND=S0C7 U0000 REASON=00000007 401"

Dicari ke mana2 (googling).. tetep gak menemukan pesan error yang pasti (beberapa situs bilang gini, yang lain bilang gitu).. dan dari beberapa diantaranya katanya sih karena invalid data...

this error is caused by an data exception, occurs due when we entered
non-numeric data in numeric fieid.


kucari ke mana2.. gak ketemu juga. @_@

Pada saat sudah hampir putus asa (sebenarnya sih udah putus asa dari 1/2 jam yang lalu) akhirnya... kututup copybook untuk mengatasi ABEND (abnormal Ended) error.

So kalo ada error, TIDAK kuserahkan ke ABEND routine standard, tapi kutangani sendiri menggunakan message dan log ke sysout.

Dan... It Works ! WOW !

Aneh... padahal biasanya ABEND routine ini njalaninnya ya.. seperti yang kupake pada program ini...

Ada yang ngubah ? Mungkin saja...

@_@ huuuuh... 4 jam hanya gara2 Routine Standard yang tidak standard lagi ???

so... pelajaran yang diambil :

1. Kalo programmu error, selalu ada yang salah. Compiler selalu benar. Mungkin error bukan di programmu, bisa saja di environment, di resource yang kamu pake, di security access, atau di otakmu :D Pokoknya, komputer selalu benar !

2. Copybook, Library, Shared Library buatan manusia, dan bisa dibuah manusia. Biasanya benar, tapi bisa juga salah, atau bisa saja tadinya benar tapi jadi salah. So.. kalo kamu yakin environment udah benar, program udah benar, check library / copybooknya :)

3. Jangan putus asa... jangan putus asa dan jangan putus asa !!!
Sudah berapa kali kita mendapatkan keajaiban gara2 tidak putus asa ini ? Teruskan budaya tidak putus asamu !!


Ah.. capek.. pulang ah.. otak udah puanaaaaas.... yang penting udah ketemu di mana letak kesalahannya, dan program sudah jalan ( meski belum sempurna ). Ntar disempurnakan di hari berikutnya (Minggu atau senin ya? )

See yaaa

December 19, 2007

Pelatihan CICS


Ah..

akhirnya pelatihan CICS kelar juga...

Ternyata susah juga bikin program online (lewat cics) menggunakan COBOL
banyak banget bedanya ama program batch...

Gak nyangka, ternyata bikin program online di atas CICS ribet banget..
ada program.. ada map... ada transaction... ada resource file...

ribet ribet...

tapi seru banget sih... (kalo setelah ribet itu muncul solusinya)
Kalo gak.. ya... gak seru :p

November 29, 2007

I love (Pelatihan) COBOL


Humm.. aku suka pelatihan Cobol !!
kenapa suka ama pelatihan Cobol ? Karena pelatihan cobol dilakukan di ruang rapat dan menggunakan komputer. Dan... dari sini /me bisa ngenet :D :D
Asal test udah selesai, /me jadi bebas ngenet, bebas chatting, bebas nge blog :D

Pelatihan Cobolnya sendiri asyik... pengajarnya jago (maklum, udah pengalaman di IBM bertahun-tahun)...

Intinya.. /me cinta pelatihan Cobol ^^

Andai tiap hari pelatihan Cobol :D :D