write .csv file to folder

  • omeja
  • Topic Author
  • Visitor
  • Visitor
13 years 9 months ago #8885 by omeja
write .csv file to folder was created by omeja
Hi all,
Im trying to read fields from Ft transactions with commision.type eq nssfcom and to write them to a folder in .csv format but i get the error below. Find the routine at the end. Itis attached to the version for FT

0049 DEBUG
jBASE debugger->C
Invalid or uninitialised variable -- NULL USED ,
Var Y.COMPANY , Line 80 , Source TB.NSSF.TRANS.FILE
Invalid or uninitialised variable -- NULL USED ,
Var Y.NSSF.NO , Line 80 , Source TB.NSSF.TRANS.FILE
Invalid or uninitialised variable -- NULL USED ,
Var Y.CONTRIB.MONTH , Line 80 , Source TB.NSSF.TRANS.FILE
Invalid or uninitialised variable -- NULL USED ,
Var Y.CONTRIB.YEAR , Line 80 , Source TB.NSSF.TRANS.FILE
Invalid or uninitialised variable -- NULL USED ,
Var Y.PAID.AMNT , Line 85 , Source TB.NSSF.TRANS.FILE
Invalid or uninitialised variable -- NULL USED ,
Var Y.PAY.DATE , Line 85 , Source TB.NSSF.TRANS.FILE
** Error [ NOT_FILE_VAR ] **
Variable is not an opened file descriptor ,
Var (UNKNOWN) , Line 88 , Source TB.NSSF.TRANS.FILE
Trap from an error message, error message name = NOT_FILE
0088 WRITE Y.REC TO OUT.FILE
jBASE debugger->


routine
*
*
* <Rating>269</Rating>
*
SUBROUTINE TB.NSSF.TRANS.FILE
*

*
*
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.FUNDS.TRANSFER
$INSERT BP I_F.TAB.H.NSSF.PARAM1


GOSUB OPENFILE
GOSUB PROCESS
RETURN

*********
OPENFILE:
*********

FN.NSSF.PAR = 'F.EB.TAB.H.NSSF.PARAM1'
F.NSSF.PAR = ''
CALL OPF(FN.NSSF.PAR,F.NSSF.PAR)

FN.INFO = 'F.EB.TAB.H.NSSF.PRN.DETS'
F.INFO = ''
CALL OPF(FN.INFO,F.INFO)


CUS.COMPANY.POS = ''
CALL GET.LOC.REF('FUNDS.TRANSFER','COMPANY.NAME',CUS.COMPANY.POS)
CUS.NSSF.POS = ''
CALL GET.LOC.REF('FUNDS.TRANSFER','NSSF.NO',CUS.NSSF.POS)
PAYMENT.AMT.POS = ''
CALL GET.LOC.REF('FUNDS.TRANSFER','NSSF.PAY.AMT',PAYMENT.AMT.POS)
YEAR.POS = ''
CALL GET.LOC.REF('FUNDS.TRANSFER','CONTRIB.YEAR',YEAR.POS)
MONTH.POS = ''
CALL GET.LOC.REF('FUNDS.TRANSFER','CONTRIB.MONTH',MONTH.POS)

RETURN

********
PROCESS:
********
DEBUG

IF APPLICATION = 'FUNDS.TRANSFER' THEN
Y.COM = R.NEW(FT.COMMISSION.TYPE)

IF Y.COM = 'NSSFCOM' THEN

Y.COMPANY = R.NEW(FT.LOCAL.REF)<1,CUS.COMPANY.POS>
Y.NSSF.NO = R.NEW(FT.LOCAL.REF)<1,CUS.NSSF.POS>
Y.NSSF.AMT = R.NEW(FT.LOCAL.REF)<1,PAYMENT.AMT.POS>
Y.CONTRIB.YEAR = R.NEW(FT.LOCAL.REF)<1,YEAR.POS>
Y.CONTRIB.MONTH = R.NEW(FT.LOCAL.REF)<1,MONTH.POS>
Y.PAID.AMNT = R.NEW(FT.DEBIT.AMOUNT)
IF Y.PAID.AMNT = '' THEN
Y.PAID.AMNT = R.NEW(FT.CREDIT.AMOUNT)
END
Y.PAY.DATE = R.NEW(FT.DEBIT.VALUE.DATE)
Y.FT.REF = ID.NEW

END

END


Y.ID = 'SYSTEM'
CALL F.READ(FN.NSSF.PAR,Y.ID,R.NSSF.PAR.REC,F.NSSF.PAR,PAR.ERR)
IF PAR.ERR <> '' THEN RETURN
Y.PATH.OUT = R.NSSF.PAR.REC<EB.TAB58.OUT.PATH >

Y.FT.REF = ID.NEW:'.csv'
*
Y.FILE.ID = Y.COMPANY:'/':Y.NSSF.NO :'/':Y.CONTRIB.MONTH::Y.CONTRIB.YEAR:'/':Y.FT.REF

*Open, writing and closing the file.
OPENSEQ Y.PATH.OUT:Y.FILE.ID TO OUT.FILE ELSE CREATE OUT.FILE ELSE PRINT 'CANNOT OPEN'

Y.REC = Y.COMPANY:',':Y.NSSF.NO:',':Y.PAID.AMNT:',':Y.CONTRIB.YEAR:',':Y.CONTRIB.MONTH:',': Y.PAY.DATE:',':Y.FT.REF
*
*
WRITE Y.REC TO OUT.FILE


RETURN

CLOSESEQ OUT.FILE

RETURN
END ;*DONE

Please Log in or Create an account to join the conversation.

  • jpb
  • jpb's Avatar
  • Offline
  • Moderator
  • Moderator
  • retired . . . ¯\_(ツ)_/¯
More
13 years 9 months ago - 13 years 9 months ago #8887 by jpb
Replied by jpb on topic Re: write .csv file to folder
1. Do the WRITE only inside IF Y.COM = 'NSSFCOM' to avoid NULL.USED etc. (move END for the IF to end of routine)
2. Have a look at OPENSEQ command - shouldn't you use LOCKED ?
3. writing to a sequential file should be done with WRITESEQ (and maybe APPEND)
4. The CLOSESEQ is never executed
Last edit: 13 years 9 months ago by jpb.

Please Log in or Create an account to join the conversation.

Time to create page: 0.037 seconds