Nachdem ich hier im Forum manchmal durch Motz oder Unwissenheit aufgefallen bin, möchte ich auch etwas zurückgeben. Öfters wird nach dem Transfer in Excel gefragt und meistens als Antwort auf das schnöde CSV verwiesen. Dabei lassen sich via ACS auch in Batch Excel Dateien erstellen, nicht schnell aber immerhin und für lau.
Hier der Code als CLLE:
Code:
/* Batch Excel Transfer mit ACS */
/* ---------------------------------------- mylogic.io */
PGM PARM(&LIB &FILE &XLSFILE)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&XLSFILE) TYPE(*CHAR) LEN(30)
DCL VAR(&SYSNAME) TYPE(*CHAR) LEN(8)
DCL VAR(&JAVA) TYPE(*CHAR) LEN(1500)
DCL VAR(&HOME) TYPE(*CHAR) LEN(50) +
VALUE('/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit')
DCL VAR(&JARNAME) TYPE(*CHAR) LEN(50) +
VALUE('/QIBM/ProdData/Access/ACS/Base/acsbundle.jar')
/* Check Parameters */
IF COND((&LIB *EQ ' ') *OR (&FILE *EQ ' ') *OR +
(&XLSFILE *EQ ' ')) THEN(RETURN)
/* Get System Name */
RTVNETA SYSNAME(&SYSNAME)
/* Set Environment */
ADDENVVAR ENVVAR(JAVA_HOME) VALUE(&HOME) LEVEL(*SYS) +
REPLACE(*YES)
MONMSG MSGID(CPF0000)
/* Set no Messages */
ADDENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE(NONE) +
LEVEL(*JOB) REPLACE(*YES)
MONMSG MSGID(CPF0000)
/* Create Java String */
CHGVAR VAR(&JAVA) VALUE('java +
-Dcom.ibm.iaccess.ActLikeExternal=true -jar')
CHGVAR VAR(&JAVA) VALUE(&JAVA *bcat &JARNAME)
CHGVAR VAR(&JAVA) VALUE(&JAVA *bcat +
'/plugin=cldownload /system=')
/* add Systemname */
CHGVAR VAR(&JAVA) VALUE(&JAVA *tcat &SYSNAME)
CHGVAR VAR(&JAVA) VALUE(&JAVA *bcat '/clientfile=')
/* add XLS Filename (/Pfad/File.xlsx) */
CHGVAR VAR(&JAVA) VALUE(&JAVA *tcat &XLSFILE)
/* SQL String */
CHGVAR VAR(&JAVA) VALUE(&JAVA *bcat '/sql="select * +
from')
CHGVAR VAR(&JAVA) VALUE(&JAVA *BCAT &LIB *TCAT '/' +
*CAT &FILE)
CHGVAR VAR(&JAVA) VALUE(&JAVA *tcat '"')
/* Header Columns 0=keine, 1=Feldnamen */
/* CHGVAR VAR(&JAVA) VALUE(&JAVA *bcat '/colheadings=0') */
/* Header Columns Bezeichnung */
CHGVAR VAR(&JAVA) VALUE(&JAVA *bcat '/usecollabels')
/* Java Call */
QSH CMD(&JAVA)
RMVENVVAR ENVVAR(JAVA_HOME)
MONMSG MSGID(CPF0000)
ENDPGM
Bookmarks