This article introduces the python how to use the package code examples, the text through the sample code is very detailed, for everyone's learning or work has a certain reference learning value, the need for friends can refer to the following
The code is as follows
#coding=utf-8 import jpype import os class JT400Helper(object): def __init__(self, server,username,pwd): jvmpath=r"C:\Program Files\Java\jre1.8.0_60\bin\server\" jarpath=r'd:\temp\' jvmArg = "-=%s" % jarpath (jvmpath,jvmArg) #jt400 AS400=('..AS400') CommandCall=('.') ProgramCall=('.') SpooledFileList=('.') AS400Text=('..AS400Text') AS400JDBCDriver=('..AS400JDBCDriver') #java Connection=('') DatabaseMetaData=('') Statement=('') =('') ,, = server,username,pwd =('.') self.AS400FTP=('..AS400FTP') =('.') =('.') =('.') =('') (AS400JDBCDriver()) =AS400(server,username,pwd) =CommandCall() = SpooledFileList() = ProgramCall() def ShowIfs(self,ifspath): ifs=(,ifspath) print 'exists : ',() print 'isDirectory : ',() print 'isFile : ',() fs=() if len(fs)>0: for f in fs: print def ShowObj2(self,lib,obj): od = (system,lib,obj,"FILE") print od.CHANGE_DATE_AND_TIME def ShowObj(self,lib,obj,tmplib): cmdstr = "DSPOBJD OBJ(%s/%s) OBJTYPE(*PGM) OUTPUT(*OUTFILE) OUTFILE(%s/OBJD)" % (lib,obj,tmplib) msg = (cmdstr) if msg == "": cmdstr = "SELECT ODLBNM, ODOBNM, ODOBTP, ODOBAT,ODOBSZ , ODOBTX, ODLDAT, ODLTIM, ODOBSY, ODCRTU, ODJRST, ODJRNM, ODJRLB, ODJRIM, ODJREN,ODJRCN, ODJRDT, ODJRTI FROM %" % tmplib (cmdstr) def SaveFieldDef(self,flib,file,tmplib,ofile): cmdstr = "DSPFFD FILE(%s/%s) OUTPUT(*OUTFILE) OUTFILE(%s/FIELDDEF)" % (flib,file,tmplib) msg = (cmdstr) if msg == "": cmdstr = "SELECT WHFLDI, WHFTXT, WHFLDT, WHFLDD, WHFLDP,WHFLDB, WHFOBO FROM % WHERE WHFLDI <> ' ' ORDER BY WHFOBO" % tmplib (cmdstr,ofile) def SaveJobLog(self,jobstr,ofile): msg = (jobstr) with open(ofile,'w') as f: (msg) def GetJobLog(self,jobstr): jobarr = ('/') jobnum,jobuser,jobname=jobarr[0],jobarr[1],jobarr[2] return (jobnum,jobuser,jobname) def GetJobLogByNum(self,jobnum,jobuser,jobname): joblog=(,jobname,jobuser,jobnum) () () num=() msgs = [] for i in range(0,num): qmsg=(i) (("MESSAGE_TEXT")) msg = '\n'.join(msgs) return msg def GetSQLResult(self,cmdstr,ofile=""): connection = ("jdbc:as400://" + , , ) dmd = () select = (.TYPE_SCROLL_SENSITIVE,.CONCUR_UPDATABLE) print cmdstr rs = (cmdstr) strs = "" cols = ().getColumnCount() while (()): rowstrs = [] for i in range(1,cols+1): value = (i) if ' ' in value: value = '"%s"' % value ((i)) strs+=','.join(rowstrs)+'\n' (); if ofile <> "": with open(ofile,'w') as f: (strs) else: print strs def CallProgram(self,plib,pgm,paras): #WRKACTJOB SBS(QUSRWRK) JOB(QZRCSRVS) - dump not work #paras=["Y","12345"," "] pgmparas=[] for para in paras: (ProgramParameter(para)) print str(()) ("//%/%" % (plib,pgm),pgmparas) successfully = () msg = '' job = () print () print () if successfully <> True: ml=() for m in ml: msg += () +'\n' print msg () return msg def GetCmdMsg(self,cmdstr): msg = '' print cmdstr successfully = (cmdstr) if successfully <> True: ml=() for m in ml: msg += () +'\n' print msg return msg def CheckObjExists(self,lib,file,type="*FILE"): str = "CHKOBJ OBJ(%s/%s) OBJTYPE(%s)" % (lib,file,type) return (str) def DeleteObj(self,lib,file): str = "DLTF FILE(%s/%s)" % (lib,file) return (str) def FileToIfs(self,lib,file,mem,ifspath): # don't use RMVBLANK(*TRAILING) ,will cause numeric field contains blank characters error when put ifs to file str = "CPYTOIMPF FROMFILE(%s/%s %s) TOSTMF('%s') MBROPT(*REPLACE) STMFCCSID(*STMF) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE)" % (lib,file,mem,ifspath) print lib,file,mem,"->",ifspath return (str) def IfsToFile(self,ifspath,lib,file,mem): str = "CPYFRMIMPF FROMSTMF('%s') TOFILE(%s/%s %s) MBROPT(*REPLACE) RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(',') ERRRCDOPT(*REPLACE) RPLNULLVAL(*FLDDFT)" % (ifspath,lib,file,mem) print ifspath,"->",lib,file,mem return (str) def FileToPc(self,lib,file,mem,ofile): tmpifs = "QDLS/TEMP/%" % mem (lib,file,mem,tmpifs) (tmpifs,ofile) def PcToFile(self,ifile,lib,file,mem): tmpifs = "QDLS/TEMP/%" % mem (ifile,tmpifs) (tmpifs,lib,file,mem) def FtpGetIfsFile(self,ifspath,ofile): ftp=self.AS400FTP() successfully = (ifspath,ofile) print ifspath,"->",ofile return successfully def FtpGetText(self,lib,srcf,mem,dest=r"d:\temp"): ftp=self.AS400FTP() target="//%/%/%" % (lib,srcf,mem) if (dest): dest=(dest,mem+".txt") print target,"->",dest successfully = (target,dest) return successfully def FtpGetSavf(self,lib,savf,dest=r"d:\temp"): ftp=self.AS400FTP() target="//%/%" % (lib,savf) # QUOTE SITE NAMEFMT 0 QGPL/ # QUOTE SITE NAMEFMT 1 //// ("quote site namefmt 1") if (dest): dest=(dest,savf+".SAVF") # can not get it if not set data transfer type (1) successfully = (target,dest) return successfully def FtpPutIfsFile(self,ifile,ifspath): ftp=self.AS400FTP() successfully = (ifile,ifspath) print ifile,"->",ifspath return successfully def FtpPutText(self,ifile,lib,srcf,mem): ftp=self.AS400FTP() dest="//%/%/%" % (lib,srcf,mem) successfully = (ifile,dest) print ifile,"->",lib,srcf,mem return successfully def GetOutQList(self,outqlib,outq): print "OutQueue : %s/%s" % (outqlib,outq) ("//%/%" % (outqlib,outq)) ("*ALL") () enums=() i = 1 info = "" while (()): splf=() if(splf<>None): strs=[] ("System :%s , File : %s , File Number : %s , Progarm :%s , Date : %s" % ((271),(104),(105).toString(),(272),(34))) ("Number/User/Job : %s/%s/%s" % ((60),(62),(59))) ("File Pages: %s , Print quality : %s , Printer device type : %s , Page size length : %d " % ((111).toString(),(48),(90),(78).intValue())) info += '\n'.join(strs)+'\n' i+=1 () print "total spool files : ",i print info def GetSpoolFile(self,sflib,sffile,sfname,sfjobnum,fnum,dest): if (sflib,sffile)<>"": # IGCDTA parameter is for DBCS file ("CRTPF FILE(%s/%s) RCDLEN(160) IGCDTA(*YES)" % (sflib,sffile)) str = "CPYSPLF FILE(%s) TOFILE(%s/%s) JOB(%s) SPLNBR(%d)" % (sfname,sflib,sffile,sfjobnum,fnum) msg = (str) if msg == "": (sflib,sffile,sffile,dest) print "download successfully!" def PutMsg(self,qlib,qname,msg): qstr = "//%/%" % (qlib,qname) dataqueue=(,qstr) (msg) def GetMsg(self,qlib,qname): qstr = "//%/%" % (qlib,qname) dataqueue=(,qstr) dqdata = () dqdatastr = 'No data' if dqdata <> None: dqdatastr = () print dqdatastr return dqdatastr if __name__ == '__main__': pass
This is the whole content of this article.