SoFunction
Updated on 2024-11-21

Example of how python uses package code

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.