Sei sulla pagina 1di 60

No File Enquiries

Objectives

Why NoFILE Enquiry


How Enquiry Subsystem Works
When to Create NoFILE Enquiry
Steps to Create NoFile Enquiry
Error Shots
Session Plan

Session 1
 Introduction to Nofile Enquiry & creation of Standard Selection
Session 2
 Creation of NOFILE Enquiry
Session 3
 Examples
Session 4
 Workshops
Why NOFILE Enquiry

ENQUIRY system works on a single file which is given in the FILE.NAME


field of ENQUIRY application
To fetch data available in Multiple files, NOFILE Enquiry is the option
Nofile enquiry can be designed to fetch data from any number of files
How enquiry subsystem works?

Builds up a list of ids


Picks up each id
Constructs a record
Displays the records.
Use subroutine for enhancements
Standard Selection

Allows definition of local subroutines.


Used as selection items in the Enquiry system.
SS can be used within enquiry to perform selections of data .
Also used to build virtual records
How Does The ENQUIRY Application Work

FILE.NAME – Holds the T24 application from where data is going to be extracted

FIXED.SELECTION – Allows the user to filter data before its displayed (same for all
users who execute the enquiry)

FIXED SORT – Allows data to be sorted and displayed

RUNTIME SELECTION – This selection at runtime is optional. It acts as a further


filter to the records selected for display (may differ at every execution)

Before data is actually displayed, all the ENQUIRY application has, are a list of ID’s
that satisfy all the filters mentioned above

Sli
de
Setting Up An ENQUIRY Record

How does T24 validate the application entered in FILE.NAME?


 It checks for a Standard Selection record

A NOFILE enquiry does not have an associate file, so it does not have field
definitions and hence no Standard Selection record

What FILE.NAME do we specify when creating a NOFILE enquiry using the


ENQUIRY application?
 Nothing?
 No – it is a mandatory field and expects a valid Standard Selection ID
 So lets create a dummy Standard Selection record

Try to create a Standard Selection record with an ID of your choice. Does T24 allow
you to do so ?

Sli
de
How Does The ENQUIRY Application Work

No – It looks for a valid FILE.CONTROL entry with the same ID

If we take time to understand these validations, you will see that they are very
meaningful

An application that stores data, must have fields and hence it will have a standard
selection record

All ‘files’ that store data in T24 have a FILE.CONTROL record

So we have to find a work around these validations when it comes to a NOFILE


enquiry

Sli
de
Creating NoFile Enquiry

So now that we know the problems we will face, lets see what a NOFILE enquiry is
made up of

A jBASE BASIC subroutine to pick up data from as many applications as we want

A Standard Selection record to mention in the ENQUIRY (FILE.NAME field)

And finally an ENQUIRY to display the results

Sli
de
Create an Enquiry to Display the following details

© 2010 Capgemini - All rights reserved 11


Create an Enquiry to Display the following details cont…

Total Fwd Cr – Total of the forward credit movements (Money that is due to the
customer at a future date)

Total Fwd Dr – Total of the forward debit movements (Money that the customer is
liable to pay at a future date)

Total Cr Interest - Accrued interest that is due to the customer (total)

Total Dr Interest - Accrued interest that the customer is liable to pay (total)

Sli
de
Solution – jBASE BASIC Routine

The details that must be displayed in the report are picked up from multiple
applications

Before writing the routine we must decide a few things


 What are the applications that we need to access and what fields do we pick up and display?

 Do we need any run time input from the user?

Sli
de
Solution – jBASE BASIC Routine

T24 Applications to be accessed


CUSTOMER.ACCOUNT

Concat File - To obtain the list of


accounts for a particular customer.

ID is CUSTOMER

Record contains all Account Numbers


of a CUSTOMER

Access this file to obtain the list of


accounts for a particular customer

Sli
de
Solution – jBASE BASIC Routine

ACCT.ENT.FWD

Live File - Contains forward


STMT.ENTRY Ids for an account
(Will affect ACCOUNT at a future
date)

ID is ACCOUNT

Record contains STMT.ENTRY ID’s

We can obtain ID’s using which we


can pick up the Dr or Cr amount
from the STMT.ENTRY Application
for columns 2 & 3 in the enquiry
output

Sli
de
SYS.FIELD.NO and USR.FIELD.NO

Used to hold the routine name.


The associated SYS.TYPE or USR.TYPE is a type R.
Format:
 Subroutine name
Invoked:
From CONCAT.LIST.PROCESSOR
Arguments:
 Single outgoing argument
Steps to create NOFILE

Use logical file name


 For a logical file there will not be a FILE.CONTROL
 So FILE.CONTROL will not be checked for validation
Define it in STANDARD.SELECTION
Start STANDARD.SELECTION ID with NOFILE
Use the SS id in Enquiry field FILE.NAME which is mandatory.
Creating Standard Selection Record

Id should start with NOFILE


Must have ROUTINE type user field defined
SELECTION type fields can be defined
NOFILE Standard Selection Records

No actual underlying file in the system.


The selection must be performed by a routine.
R.RECORD is built from the routine
Example

Create a Enquiry which displays Customer Number, Account Number, Customer


Mnemonic, Working balance
Routine
Routine
Compile and Catalogue
Standard Selection Record
Enquiry
Run the Enquiry
jBASE Basic Code

To access the customer number input by the user, use the common
variables in I_ENQUIRY.COMMON

 D.FIELDS – For fields available in the selection criteria window


 D.LOGICAL.OPERANDS – Operands entered
 D.RANGE.AND.VALUE – Value entered by user

All these common variables are dynamic arrays

FIELD.NAME OPERAND VALUE

CUSTOMER.ID EQ 1234

D.FIELDS<1> = CUSTOMER.ID
D.LOGICAL.OPERANDS<1> = EQ
D.RANGE.AND.VALUE<1> = 1234

Sli
de
Solution - jBASE Basic Code
*SUBROUTINE TO WRITE A NOFILE ENQUIRY

SUBROUTINE TEST.NOFILE(AC.DETAILS)

$INSERT I_COMMON

$INSERT I_EQUATE

$INSERT I_F.CUSTOMER.ACCOUNT

$INSERT I_F.STMT.ENTRY

$INSERT I_F.ACCR.ACCT.CR

$INSERT I_F.ACCR.ACCT.DR

$INSERT I_ENQUIRY.COMMON

GOSUB INIT

GOSUB OPENFILES

GOSUB PROCESS

RETURN

Sli
de
Solution - jBASE Basic Code
INIT: C.ID = ’’

NO.OF.REC = '' AC.ID = '‘

SEL.LIST = '' RETURN

AC.ID = '‘ OPENFILES:

DR.AMT = '' FN.CA = 'F.CUSTOMER.ACCOUNT'

CR.AMT = '' F.CA = '‘

CR.INT = '' CALL OPF(FN.CA,F.CA)

DR.INT = '' FN.FWD = 'F.ACCT.ENT.FWD'

AC.DETAILS = '' F.FWD = '‘

ST.ID = '' CALL OPF(FN.FWD,F.FWD)

R.FWD = '' FN.ST = 'F.STMT.ENTRY'

R.ST = '' F.ST = '‘

FWD.POS = '' CALL OPF(FN.ST,F.ST)

Sli
de
Solution - jBASE Basic Code
FN.INT.CR = 'F.ACCR.ACCT.CR'

F.INT.CR = '‘

CALL OPF(FN.INT.CR,F.INT.CR)

FN.INT.DR = 'F.ACCR.ACCT.DR'

F.INT.DR = '‘

CALL OPF(FN.INT.DR,F.INT.DR)

RETURN

PROCESS:

LOCATE "CUSTOMER.NO" IN D.FIELDS<1> SETTING CUS.POS THEN

CUSTOMER.NO = D.RANGE.AND.VALUE<CUS.POS>

END

CALL F.READ(FN.CA,CUSTOMER.NO,R.CA,F.CA,CA.ERR)

NO.OF.AC = DCOUNT(R.CA,FM)

Sli
de
Solution - jBASE Basic Code

NO.OF.AC = DCOUNT(R.CA,FM)

FOR I = 1 TO NO.OF.AC

AC.ID = FIELD(R.CA,@FM,I)

CR.AMT = 0.0; DR.AMT = 0.0; CR.INT = 0.0; DR.INT = 0.0

CALL F.READ(FN.FWD,AC.ID,R.FWD,F.FWD,FWD.ERR)

LOOP

REMOVE ST.ID FROM R.FWD SETTING FWD.POS

WHILE ST.ID:FWD.POS

CALL F.READ(FN.ST,ST.ID,R.ST,F.ST,ST.ERR)

STMT.AMOUNT = R.ST<AC.STE.AMOUNT.LCY>

IF STMT.AMOUNT LT 0 THEN

DR.AMT = DR.AMT + STMT.AMOUNT

Sli
de
Solution - jBASE Basic Code
END ELSE

CR.AMT = CR.AMT + STMT.AMOUNT

END

REPEAT

CALL F.READ(FN.INT.CR,AC.ID,R.AC.CR.REC,F.INT.CR,ACCT.CR.ERR)

CR.INT = R.AC.CR.REC<IC.ACRCR.TOTAL.INTEREST>

CALL F.READ(FN.INT.DR,AC.ID,R.AC.DR.REC,F.INT.DR,ACCT.DR.ERR)

DR.INT = R.AC.DR.REC<IC.ACRDR.TOTAL.INTEREST>

AC.DETAILS<-1> =
AC.ID:"*":DR.AMT:"*":CR.AMT:"*":DR.INT:"*":CR.INT

NEXT I

RETURN

Sli
de
jBASE Debug mode

Sli
de
NOFILE – ENQUIRY record

Sli
de
NOFILE – ENQUIRY record

A valid application name should be given in the field FILE.NAME which is checked
against STANDARD.SELECTION (SS) application

A NOFILE enquiry does not have a single associated file

Create a dummy record in STANDARD.SELECTION application

Sli
de
NOFILE – ENQUIRY record

Can you create a record with any ID of your choice in SS?

Checks for a valid FILE.CONTROL entry with the same ID

What could be the way out to overcome these validations in case of a Nofile
enquiry?

Sli
de
NOFILE – ENQUIRY record

ID of the record in SS should be prefixed with ‘NOFILE.’

Does not check for any entries in other applications

Syntax for the ID in SS is NOFILE.<VALIDTEXT>

This ID should be given in the field FILE.NAME in the ENQUIRY application

Sli
de
Solution – STANDARD.SELECTION

Sli
de
Solution – ENQUIRY

Sli
de
Solution – ENQUIRY

Sli
de
Solution – ENQUIRY

Sli
de
Executing The Enquiry

Sli
de
Enquiry Output

Sli
de
WorkShop 1

Create an Enquiry which display the LD Contract number, The Account


Number and Account Name.
Routine
Routine
Standard Selection Record
Enquiry
Output
Workshop 2

Create a nofile enquiry which displays the FT id, Debit account name,
Customer Mnemonic, Credit Account name, customer name.
Routine
Routine
Routine
Standard Selection
Enquiry
Result
Error Shots
Error Shots
Error Shots
www.capgemini.com/financialservices

Potrebbero piacerti anche