*inti masalah ada di bagian yang dicetak tebal

skenario :

  1. Java Login ke AS400 menggunakan User : EDEN
  2. Java Call Program A (program CL)
  3. Program A memanggil program B. program B adalah program RPG yang akan membuat SpoolFile (output yang dihasilkan dari PRTF)
  4. Program A akan membuat satu file PF kosong yang terdiri dari 1 Field Char dengan panjang 255
  5. Program A kemudian mengcopykan spoolFile (poin 3) ke PF (poin 4) [cpysplf].
  6. PF yang telah terisi tersebut kemudian diambil oleh Java menggunakan FTP.

// ketika java call rpg program, dia akan menggunakan user : QUSER Di SubSystem QUSRWRK

Work with Job
System: ASDEV02
Job: QZRCSRVS User: QUSER Number: 594087

// Namun di Job Status Atribut, Current User Profile nya menggunakan user ketika java login ke AS400 nya

Display Job Status Attributes
System: ASDEV02
Job: QZRCSRVS User: QUSER Number: 594087
Status of job . . . . . . . . . . . . . . . : ACTIVE
Current user profile . . . . . . . . . . . : EDEN
Job user identity . . . . . . . . . . . . . : EDEN
Set by . . . . . . . . . . . . . . . . . : *DEFAULT
Subsystem . . . . . . . . . . . . . . . . . : QUSRWRK
Subsystem pool ID . . . . . . . . . . . . : 1
Type of job . . . . . . . . . . . . . . . . : PJ
Special environment . . . . . . . . . . . . : *NONE
Program return code . . . . . . . . . . . . : 1

// Dan ketika rpg program yang di call java itu membuat spoolfile…. job name, user, dan job number nya beda lagi.

Work with All Spooled Files
File
Opt File     Nbr Job     User Number
TESSPLFT 732 QPRTJOB EDEN 706513

// Nah untuk Copy Spool File To PF (CPYSPLF) diperlukan Job Deskripsi (Job, User dan Number) yang ada di SpoolFile, SpoolFile Number, dan SpoolFile Name.

Copy Spooled File (CPYSPLF)
Spooled file . . . . . . . . . . Name
To data base file . . . . . . . Name
Library . . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Job name . . . . . . . . . . . . * Name, *
User . . . . . . . . . . . . . Name
Number . . . . . . . . . . . . 000000-999999
Spooled file number . . . . . . *ONLY 1-999999, *ONLY, *LAST, *ANY
Job system name . . . . . . . . *ONLY Name, *ONLY, *CURRENT, *ANY
Spooled file created:
Creation date . . . . . . . . *ONLY Date, *ONLY, *LAST
Creation time . . . . . . . . Time, *ONLY, *LAST
To member . . . . . . . . . . . *FIRST Name, *FIRST
Replace or add records . . . . . *REPLACE *REPLACE, *ADD

// SpoolFile Name merupakan nama PRTF yang menjadi output.
// SpoolFile Number bisa diperoleh menggunakan INFDS dari 123 sampai 124 (integer Field/I)
// dari Job Deskripsi SpoolFile, saya baru bisa memperoleh User. Yaitu dengan menggunakan Retrieve Job Atribut dengan parameter Current user.
// klo Job Deskripsi (Job name, User dan Job Number) dicari menggunakan Retrieve Job Atribut, mka yang diperoleh adalah Job Deskrispi yang dari WRKACTJOB (QZRCSRVS/QUSER/#number). sedangkan yang diperlukan adalah job deskripsi di spoolFile.
// Untuk mendapatkan Job Name dan Job Number dari Job Deskripsi SpoolFile ada yang bisa bantu? ada yang tau command CL atau RPG nya?

// Sebelumnya saya pernah mencoba menggunakan Submit Job atau Change Job. namun ini berakibat SpoolFile Number kembali dari 1 lagi. sehingga ketika CPYSPLF ditemukan 2 spoolFile. sehingga muncul pesan kesalahan
// Solusi menggunakan option *LAST pernah saya coba juga. Namun ini tidak bisa dilakukan karena kehebatan proses paralelisme.
// Googling pun belum menorehkan hasil😦
// Ada Solusi menggunakan API, namun belum berhasil juga sampe sekarang😦
// Ada Solusi lain, namun mengubah skenario. yaitu program B jadinya tidak membuat SpoolFile, namun dia langsung menulis ke PF. ini membutuhkan trik DS sepertinya ;D