Friday, May 3, 2013

Introduction of Graphtalk technology

 Introduction to Graphtalk Technology

GraphTalk is a Client-Server based solution for life assurance, both individual and group, health insurance, pensions and other employee benefits, targeted to the EMEA (European Medicines Evaluation Agency) market.

It provides an integrated end-to-end fulfillment process with:
  • A complete overview of all client relationships
  • Flexible product definition
  • Variety of investment vehicles including unit linked and traditional
  • Support for multiple distribution channels
  • Total administration of the portfolio
  • Product and task orientated workflow
  • Flexible customization without programming

GraphTalk A.I.A has an advanced system architecture that has kept pace with technical evolution. It has been designed for deployment in a variety of technical structures, and for operation in tandem with other applications. Its open architecture enables integration with other systems, thereby enabling customers to protect their software investments.
Why Graphtalk?

GraphTalk Developer is part of a range of products which cover the whole scope of the development process and its life cycle

-       Graphtalk Meta Tool
-       Graphtalk Designer
-       Graphtalk Developer
-       Graphtalk A.I.A

Main Characteristics

-       Integrated Development Environment
-       Support full life cycle & iterative development
-       GroupWare facilities
-       Object Oriented Development
-       High level language

Execution Environment
-       Scalable Client/Server architecture
-       Batch Processing
-       Portable & Open

-       Isolation of application code from IT evolution
-       Protection of AIA over time since 1991

-       Presentation logic mapping: Win32, Web Navigator
-       Data storage logic mapping on R-DBMS: Oracle, DB/2, SQL/Anywhere
-       Business logic integration: Tuxedo, DCOM (*), CORBA (*)

Integrated Development Environment

-       A single window (explorer) to browse/find source objects
-       Full Life-cycle: prototype, design, development, qualification, deployment, maintenance
-       WYSIWYG Window/Report editor (include ActiveX Control)
-       R-DBMS Administration Tool
-       Multi-lingual support
-       Integration with GraphTalk Designer (Lynx)

GroupWare Facilities
-       Repository = GraphTalk Developer objects stored on DB
-       Concurrent access with integrity control
-       Import/Export

Version Control
-       Workspaces isolate parallel developments
-       Support incremental integration (fine-grained object)
-       No lock but Conflict Highlighting
-       Configuration management

-       AIA Customizations
-       Allow upgrade and retrofit of AIA base product

Object Oriented Development
-       Component based modeling
-       Mapping between Objects and RDBMS Tables
-       Object cache management

Historical management for objects
-       Based on Effective Date
-       Based on Effective Date and Knowledge Date

High Level Language
-       Object Oriented Language + PROLOG Language
-       Extensions to go beyond traditional OO languages: Backtracking & unification give the ability to find solutions = objects satisfying a set of logical expressions
-       Rule based language
- 374 links for PROLOG

Virtual Machine
-       Garbage collector (no memory leaks)
-       On the fly compiler

Scalable Client / Server Architectures
2nd generation

Scalable Client / Server Architectures

Web Server

Scalable Client / Server Architectures
3rd generation

Batch Processing

-       Batch Architecture
-       A model to design batch procedures
-       Allow parallel processing


-       Tuning features: Profiler, SQL hints
-       Data access optimization with cache management
-       Support huge database volume

Portable & Open

-       R-DBMS: Oracle 7.3, Oracle 8.X, DB2, SQL Anywhere
-       Middleware: TUXEDO, CORBA (*), DCOM (*)
-       Call-in/Call-out: DLL, COM, ActiveX, Automation
-       Operating Systems: Windows 95, Windows NT, AIX, HP/UX, Sequent

Modules implemented.

·         Claims Management (Individual and Group products)
·         Payment Mechanism (ATM, Bill Desk, SI, Credit Card, Salary deduction, Cheque / Drafts)
·         Design and development of products like ULIP, ULIP + etc...
·         Change Channel Management , DOB etc…
·         New Business - Products

Wednesday, May 1, 2013

Converting amount to words

if Amount <=> 0 or Amount <=> 0.0
 Value = "zero"
 ( Amt_string = to_str (Amount) & Parts = :str.tokenize (Amt_string, ["."]) & :lst.member (Parts, Rupee_str, 1) & format_amount (Rupee_str, Rupee) & if ?:lst.length (Parts) <=> 1 then ( Paise = "" ) else ( :lst.member (Parts, Paise_str, 2) & format_amount (Paise_str, Paise) ) & if Paise <=> "" then Value = "Rupees " ++ Rupee ++ " only" else Value = "Rupees " ++ Rupee ++ " and " ++ Paise ++ " paise only" ) ; format_amount (Amount, Res) :- Length = :str.length (Amount) & Length > 2 & ! & Group_list = [" crore " = 7, " lakh " = 5, " thousand " = 3, " hundred " = 2] & loop m:prop.get (Group_list, Prop, Num_zero) define Res = "" do ( if Res? <=> "" & Length > Num_zero then ( Part1 = :str.sub (Amount, 1, ?(Length - Num_zero)) & Len1 = :str.length (Part1) & Part2 = :str.sub (Amount, ?(Len1 + 1), ?(Length - Len1)) & format_amount (Part1, Str1) & format_amount (Part2, Str2) & if ?:str.strip (Str1, " ", [mid]) <=> "" then Res = Str2 else Res = Str1 ++ Prop ++ Str2 ) else Res = Res? ) ; format_amount (Amount, Res) :- Num = to_integer (Amount) & case Num <=> 0 then Res = "" else_if Num < 20 then :$claimref:methods.get_enum_single ($techncl:general, ones_type, Res, ?to_str (Num), _) otherwise ( :$claimref:methods.get_enum_single ($techncl:general, tens_type, Str1, ?:str.sub (Amount, 1, 1), _) & format_amount (?:str.sub (Amount, 2, 1), Str2) & Res = Str1 ++ " " ++ Str2 )

Saturday, January 1, 2011

Tips on setting up Graphtalk with Oracle 10g

Setting up Graphtalk with Oracle 10g
Ensure the following are present:

Check for the following permissions for import as follows:
a) Go to "Control Panel" -> "Admin Tools" -> "Local Security Policy."
    Within "Local Policies", go to user "Right Assignment."
    Add the user to "Logon as a Batch Job."

b)In the Enterprise Manager Console, add the user who will run the Export/ImportDataPump job as an Administrator who can login to Enterprise Manager to performmanagement tasks like set Blackouts, email notification schedules.

c)- login as user SYSTEM (or user SYS) to the 'Enterprise Manager 10g Database Control'- At the top right, click on the link 'Setup'- On the page 'Administrators', click on the button 'Create'- On the page 'Create Administrator: Properties', add the user who will run the Export/Import DataPump job- Click on the button: 'Finish'- On the page 'Create Administrator: Review', click on the button: 'Finish'- On the page 'Administrators', confirm that the user has been added.- At the top right, click on the link 'Logout'. Now login as the user who will run the Export/Import DataPump job (Graphtalk),and re-create the DataPump job.

Creation of XML file from the Graphtalk instances

Pls look Below code by providing appropriate field names and class name!!!

:dom.create_document (Doc) &
Employees = x:Doc.create_element ("employees") &
create_employees (Doc, Employees) &
x:Doc.append_child (Employees) & ("c:\employees.xml") &
create_employees (Doc, Employees) :-
 count (1, 2,Obj= m:obj.find ($contract:p_ci_prot, nil)) &

 create_employee_element (Doc, Obj, EmployeeNode) &
 x:Employees.append_child (EmployeeNode) &
create_employees (_, _) ;

create_employee_element (Doc, Obj, EmployeeNode) :-
 IdStr = get:Obj.nmbr & get_elt_data (nmbr, Obj, FamilyStr, CountFamily, SepFamily) & get_elt_data (situation, Obj, FirstNStr, CountFirstN, SepFirstN) & EmployeeNode = x:Doc.create_element ("employee") & x:EmployeeNode.set_attribute ("id", IdStr) & create_text_elt (Doc, "nmbr", FamilyStr, CountFamily, SepFamily, Fam) & create_text_elt (Doc, "situation", FirstNStr, CountFirstN, SepFirstN, FirstN) & x:EmployeeNode.append_child (Fam) & x:EmployeeNode.append_child (FirstN);
create_text_elt (Doc, Tag, Content, Count, Sep, Elt) :- Elt = x:Doc.create_element (Tag) & set_attribute_def (Elt, "count", "1", Count) & set_attribute_def (Elt, "separator", " ", Sep) & TextNode = x:Doc.create_text_node (Content) & x:Elt.append_child (TextNode);
set_attribute_def (_, _, Default, Default) :- !;set_attribute_def (Elt, Attr, _, Val) :- x:Elt.set_attribute (Attr, Val);
get_elt_data (Field, Obj, Str, Count, Sep) :- DbData = get:Obj.Field & elt_data (DbData, Str, Count, Sep);
elt_data ([List, Sep], Str, Count, Sep) :- ! & CountI = :lst.length (List) & Count = to_str (CountI) & :lst.make_str (List, Str, Sep);elt_data (Str, Str, "1", _) ;

Common FAQ's in Batch Architechture

Batch Architecture in Graphtalk
1)Error Message “Finalization of execution 475 aborted: uncompleted slices left”
a) The batch controller class should be persistent, with no historical management and its parent class should be $gtbatch:c_slice_ctrl
b) Check if TMP directory is present in the location specified
c) Future date transactions
2)Error Message “An Error occurred while running the command “process_slices_” The Execution 472 has been stopped.” This occurs if number of processes is less than number of users
Sol: The number of GraphTalk processes running at the time of execution should be equal to the number of users entered plus one (the master process).
3) Error Message “Batch descriptor “Batch name” already in use.”
Sol: Batch architecture implementation doesn't allow concurrent users to execute a same batch.
4) Error Message "“Cannot find the .ini file “D:\exp_xosl2_d_b.ini””"
Sol: Suppose the batch parameter “shared_ini_files” is specified with a value of a .ini file which is not there in the specified path & if the “process_number” parameter is greater than 0 then the following error is thrown

More about Graphtalk

Double side printing in Graphtalk
The present print_word_management doesn’t provide an option to set the duplex printing function. This can be handled by the usage of logical printers.
Once logical printeres are installed the following code needs to be written in graphtalk to call the double side logical printer
Word = :ole.create_object("Word.Application") & if
x:Word.activeprinter = "Doubleside[V1] "
) &
Depending on the need the above piece of code may be used before the call of print_word_management
[V1]Would be the Printer name depending on choice of duplex or single

Saturday, December 11, 2010

GraphTalk: INSURANCE Graphtalk TOOL

GraphTalk: INSURANCE Graphtalk TOOL: "GraphTalk is a tool which is basically designed for Insurance sector and having all features of OOPS and coupled with Oracle.Graphtalk tool ..."