Flexcube Ubs Infra
Flexcube Ubs Infra
INFRA Session
Reddy Prasad
Associate Consultant, Universal Banking Products
Safe Harbor Statement
Due care has been taken to make this Presentation as accurate as possible. Certain
statements made in this presentation may not be based on historical information or facts
and may be “forward looking statements” and may be subject to risks and uncertainties
that could cause actual results to differ materially and adversely from those that may be
projected by such forward looking statements.
These risks and uncertainties and other factors that could affect, including but not limited
to, competition, acquisitions, economic conditions, ability to retain highly skilled
employees, technology, law and regulatory policies, managing risks associated with its
business.
i-flex makes no representation or warranties with respect to the contents hereof and shall
not be responsible for any loss or damage caused to the user by the direct or indirect use
of this Presentation. i-flex may alter, modify or otherwise change in any manner the
content hereof, without obligation to notify any person of such revision or changes.
All company and product names are trademarks of the respective companies with which
they are associated.
i-flex® and FLEXCUBE® are registered trademarks of i-flex solutions. Reveleus™,
Daybreak™, Equinox™, Mantas and PrimeSourcing™ are trademarks of i-flex solutions and
are registered in several countries.
All company and product names are trademarks of the respective companies with which
they are associated.
3
Agenda
• Architecture of FCJ
• Introduction of FCJ Projects
• Technologies used in FCJ
• Getting started with FCJ Application
• Login Process
• Function Id launching
• Various Actions in FCJ
• Building request and response
Agenda Contd.
• LOV
• Basic Issues / Debugging
• Plug-ins (JS functions) available in FCJ
Technical Architecture – Flow Diagram
UI and State
Management
HTTP Web Services JMS
Client
Client Client Client
XML
Menu
Browser UI XML
Task List
XML / HTTP
XML / SOAP XML
Message Handlers,
HTTP Web Services WS Exec FC Client Session Management
Handler Handler Handler
XML / JMS
BPEL Process Process
Manager XML
Management
XML XML XML
Task List
Java API
Transaction
EJB MDB Management
XML
/
JDBC
Module Specific
Service Handler Services
Business Logic
and Parser
Data Stores &
Persistence
Middleware Business
Integration Logic
Legend
Request Response
FCJ Projects
• FCJUtility
– Contains the utility files related to encryption of user name and password.
– Contains the files related to login process and to store user globals of the
user currently logged in and application globals.
• FCJCoreEntities
– Contains the files related to build the queries for LOV ,DBUpload and
summary screens
• FCJCoreDAOOracle
– Contains DAO classes which interacts to the DB and get the result
• FCJSMS
– Contains the files which calls DAO classes to interact the DB and get the
result while logging in
FCJ Projects
• FCJGeneralEJB
– Contains the files related to call stored procedure to perform the operations
other than login
• FCJBatch
– Contains the files related to perform batch operations like EOD
• FCJNeoWeb
– Contains the java files related to login to FCJ and various handler classes to
process the requests
– Contains UIXML,JS,XSL ,JSP and CSS files
Technologies used in FCJ
• LoginServlet.java
– Creates the session through FCLogin class and sets session id and terminal
id as attributes to the current session.
– If SSO is installed the page will be redirected to SMFLOGINSSO.jsp
otherwise the page will redirected to SMFLOGIN.jsp
• SMFLOGIN.jsp
– Initializes the applet ClientAppletLogin which will encrypt / decrypt the
user id and password if SSO is not enabled
– If SSO is enabled the user name will go as plain text
– .Caches the label codes from CSTB_ITEM_DESC table whose function
id is INFRA
– On submit of login page LoginValidateServlet .java will get call to
validate the user.
FCJ Application – Login Process Contd.
• LoginValidateServlet.java
– This class will call process() in NonWorkflowHandler.java to process the
request.
• NonWorkflowHandler.java
– If branch plug in is included creates an object of BrnNonWorkflowHandler
– If the action type is login calls handleLogin()
– In handleLogin() the user id and password will be decrypted with the
sessionid and calls ToHostDispatcher.java and creates the login request xml
through txnDocWrapper class and sets values of user id and action.
– Calls callHostServer() from either Centralizthe edCall or De_Centralized call
• ToHostDispatcher.java
– If the branch is centralized the instance of CentralizedCall otherwise the
instance of De_CentralizedCall will get created dynamically.
FCJ Application – Login Process Contd.
• CentralizedCall.java
– Instantiates HostUpload.java dynamically and calls processMsg() with request xml
and operation as parameters.
• HostUpload.java
– In processMsg() if the operation is login FCControllerSMS class will get instantiated
and calls handleRequest() to handle the request.
• FCControllerSMS.java
– If the operation is login creates an instance of FCHandlerLogin and calls
getLoginResponce()
• FCHandlerLogin.java
– It calls methods from FCJLoginBean.java and SMSOracleDAO.java for validating
the user and to get menu details, browser details and user globals.
– These values will be appended to the response xml and response xml returns.
– The response will return to the NonWorkflowhandler and will be parsed.
FCJ Application – Login Process Contd.
• NonWorkflowHandler.java
– Once the response comes the menudetails will be set to session and request
objects and the request will be forwarded to SMMDIFRM.jsp
• SMMDIFRM.jsp
– This jsp will devide the frameset into different frames to accommodate for
menu,toolbar,application globals and application browser.
– On load of this page login details will get displayed if any error occurred the
same will be displayed with error code, which has been cached from
ertb_msgs table.
– The toolbar will get loaded from SMHTLBAR.jsp in the specified frame, the
menu will get loaded from SMAPPMNU.jsp in the specified frame.
– The application browser will get loaded from SMAPPBRW.jsp by applying
SMAPPBRW.xsl on the menu xml
will get constructed based on the function ids on which the user has rights.
The browser
FCJ Application – Function Id Launching
• SmhTlBar.js
– When the function id is requested the function doAction() will get call which
intern calls dispHref() function from SMAPPBRW.jsp
• SMAPPBRW.jsp
– If the function id is present in the gxmlmenu, SMSStartLogServlet.java will
get call to launch the function id with the action as ‘initiate’ by passing the
function id as parameter.
• SMSStartLogServlet.java
– This will call prepareScreenLaunchXML() to prepare the request xml for
screen launch with the template txn_common_data_template.xml
– Initializes ToHostDispatcher with LAUNCHSCR as operation.
• ToHostDispatcher.java
– Creates an instance of either CentralizedCall or De_CentralizedCall
based on either branch is centralized or de-centralized.
– Make a call to callHostServer() in the corresponding class instantiated.
FCJ Application – Function Id Launching Contd.
• CentralizedCall.java
– Instantiates HostUpload dynamically and calls processMsg() by passing
requestxml , operationcode and function id as parameters.
• HostUpload.java
– In processMsg() if the operation is LAUNCHSCR, FCControllerSMS class
will get instantiated and calls handleRequest() to handle the request
• FCControllerSMS.java
– If the operation is LAUNCHSCR creates an instance of
FCHandlerScreenLauncher and calls getScreenLaunchResponce()
• FCHandlerScreenLauncher.java
– Checks whether the user has rights to access the function id
– Gets all the details of function id like routing type, description, type string,
module id etc.
– Finally returns the response xml to FCControllerSMS by adding those
details to the response xml as node and value.
FCJ Application – Function Id Launching Contd.
– The response will return to SMSStartLogServlet.java and function id details
like moduleid, routing type etc will be set to the request
– If type string value is R the request will be forwarded to
LauncherBIReport.jsp
– If type string value is X the request will be forwarded to ExtLauncher.jsp
– Otherwise the request will be forwarded to Launcher.jsp
• Launcher.jsp
– Launcher.jsp will load all the JS files which are having the functionality to
launch the function id screen.
– On load of this launcher.jsp fnLoad() function will get call from mainatance.js
to launch the screen by passing xmlFileName,xslFileName as parameters
• Maintanance.js
– The fnLoad() function will call ShowXML() function from UiUtil.js which
will return the html by applying XSL on the function id UIXML.
– The html will be rendered in the browser and the screen will get launch.
FCJ Application – Actions in FCJ
– The following are the various actions present in FCJ
REVERSE
ROLLOVER
CONFIRM
LIQUIDATE
HOLD
TEMPLATE
VIEW
GENERATE
NEW
COPY
DELETE
CLOSE
UNLOCK
REOPEN
PRINT
AUTHORIZE
FCJ Application – Actions(New)
• SmhTlBar.js
– On click of new button doAction() method will get called which in turn calls
fnNew() method from Maintenance.js or Transaction.js
• Maintenance.js
– In fnNew() resets all elements
– Enables the form
– Sets focus on PK fields
FCJ Application – Actions(Save)
• SmhTlBar.js
– Onclick of save button doAction() method will get call which intern calls
fnSave() method from Maintenance.js or Transaction.js
• Maintenance.js
– Validates mandatory fields
– Prepares request xml by buildUBSXml() from BuildXML.js
– Calls fnPost() in databinding.js to invoke servlet to process the request
• Databinding.js
– Invokes FCClientHandler servlet by sending requestxml
• FCClientHandler.java
– Parses the request xml
– Invokes ToHostDispatcher.java
FCJ Application – Actions(Save) Contd.
• ToHostDispatcher.java
– If the branch is centralized the instance of CentralizedCall otherwise the
instance of De_CentralizedCall will get created dynamically.
• CentralizedCall.java
– Instantiates HostUpload.java dynamically and calls processMsg() with
request xml and operation as parameters.
• HostUpload.java
– Makes a check whether the user is having rights to perform the action
– FCController class will get instantiated and calls handleRequest() to handle
the request
• FCController.java
– Instantiates FCHandler and calls handleRequest() to process the request
FCJ Application – Actions(Save) Contd.
• FCHandler.java
– Calls callMaintenanceHandler()
– Instantiates FCHandlerMaintenance and calls execute() method
• FCHandlerMaintenance.java
– Calls processMsg() in FCJEJBBean.java
• FCJEJBBean.java
– Calls GWPKSS_SERVICE_ROUTER.PR_PROCESS_REQ_MSG to process
the request
FCJ Application – Actions(Save) Contd.
• Maintenance.js
– The response will be return
– The response will be displayed in showModalDialog window
– If the response contains FCUBS_ERROR_RESP node the error window
will get display with error codes and error description
– If the response contains FCUBS_WARNING_RESP node the window
will get display with warning codes and warning description
• UiUtil.js
– The response window will get display using ShowErrorDialog(), which opens
OVRDMSGS.jsp in the showModalDialog window
FCJ Application – LOV
• UiUtil.js
– Calls disp_lov() creates LOV window dynamically
– Invokes LOV.jsp
• LOV.jsp
– Invoke LOVHandler to initialize the LOV parameters
• LovHandler.java
– Prepares the request xml and instantiates ToHostDispatcher
• ToHostDispatcher.java
– Creates an instance of CentralizedCall / De_CentralizedCall based on
either branch is centralized or not.
FCJ Application – LOV
• LOVQueryOracleDAO.java
– Prepares the query by selecting the same from smtb_function_lov table
– Executes the query and returns the result as string LOV.jsp
• LOV.jsp
– The results will get display in the window by invoking the methods in
LOVHandler.java
FCJ Application – Debug
• Java debugging
– In Jdeveloper the application need to be run in debug mode
– F8 needs to be pressed to debug the next statement
– F7 needs to be pressed to enter into function definition if the statement is
function call
– The value can be viewed in watch window of the debugger
FCJ Application – Debug
• Java debugging
– In Jdeveloper the application need to be run in debug mode
– F8 needs to be pressed to debug the next statement
– F7 needs to be pressed to enter into function definition if the stement is
function call
– The value can be viewed in watch window of the debugger
FCJ Application – Plug-in javascript functions
• getRowIndex()
– Returns the index of the active row in the multiple entry block
• showData()
– Paints the data on the screen once the response is got from backend
• fnPost()
– Make a call to FCClientHandler servlet to process the request
– Gets the response xml from the DB
• buildUBSXml()
– Prepares request xml for the requested action