Title: SYMCONNECT
1SYMCONNECT
2MACUs History
- MACU signed with DI before MCW was available.
- DI went down a few times, right at month end.
- DI has failed to produce an integrated Loan
Application after 2 years. - E-Services purchases MCW as a backup, they state
concerns with high volume traffic and MCW. - The concept of using DI and MCW together is not
available without DI to MCW whisper. - Lending department makes a few requirements for
their Online Loan Application including, NADA
Blue Book included, and validation on non-member
Loan Applications with Check Systems. - SYMCONNECT with ASP.NET is started.
3What does SYMCONNECT allow you to do?
- The Symconnect syntax allows you to do file
maintenance and transactions with a series of
complex commands. All we need is file
maintenance. At first I though I was going to
have to build individual queries for every
possible FM scenario in the web application.
4What does SYMCONNECT allow you to do?
- Fortunately Symconnect lets you run on-demand
specfiles and pass values to and from the repgen.
You cant do transactions with repgen, but that
is the beauty of our interfacewe dont need
transactions, just FM. DI handles the
transactions. We built our interface to just use
repgen, since we are already familiar with FM
scripting using the simple FMPERFORM commands.
5So what did we need besides purchasing (ouch)
that SYMCONNECT license?
- Some VB knowledge to create our own DLL.
- We selected ASP.NET to create the web interface,
so we needed to learn a new language. - We purchased the NADA Blue Book database, with
updates, and the COM interface for SQL. - (This will be a hidden cost savings since we
developed a web interface for our internal users
to use and will no longer have to purchase the
books. The books cost more than we pay for the
monthly SQL update)
6Hurdles we faced
- Socket concerns
- Windows Messaging Queue
- VB.NET
7How does it work for MACU?
There are two components that interact make this
work
EXE monitors the incoming queue and sends the
message on to Symitar and waits for a response
from Symitar and places response into the
outgoing queue.
ASP.NET SERVER
SYMITAR HOST SYTEM
USER
EXE
Incoming
Outgoing
DLL
DLL creates a Symconnect message and passes it to
the incoming Message Queue and waits for a
response in the outgoing
WIN MESSAGE QUEUE
8Example of the code used
The ASP page presents the HTML form to the user
from whom we collect information. For example
the member inputs an email address in a text box.
We already have their account number and pin from
the sign on page. Every Symconnect message
requires the account number and pin. When the
information is posted to the server we store it
in variable varEmail. The following code
illustrates how we process the request.
9Example
dim msg as new messObj msg.accountvarAccountNum m
sg.pinvarPinNum msg.rgJBF.SYMCONNECT.SAMPLE ms
g.rgusernum11 msg.rguserchr1varEmail msg.go
msg.go tells the object to build the Symconnect
message using the properties we assigned to the
object, and pass it to the message queue. msg.rg
identifies the on-demand repgen to run. The
rgusernumX and rguserchrX values will be passed
to the repgen The repgen looks like this
10Example
JBF.SYMCONNECT.SAMPLE SYMCONNECT
TARGETACCOUNT DEFINE FMERRCHARACTER END
PRINT TITLENOTHING IF _at_RGUSERNUM11 THEN
DO FMPERFORM REVISE NAME 0 (0,0,FMERR) DO
SET EMAIL TO _at_RGUSERCHR1 END IF
FMERR THEN DO PRINT OKAY NEWLINE
END ELSE DO PRINT ERROR NEWLINE
END END END
11Example
Whatever is printed in a Symconnect repgen is
passed back in the response message. Back in the
ASP.net script, the msg.textout property now
contains the Symconnect response message.
if msg.textout.indexof(OKAY)gt0 then tell the
user it worked. else tell the user we suck. end
if
12It is easy to populate HTML listboxes or tables
with information from Symitar. For example
FOR EACH SHARE WITH (SHARECLOSEDATE--/--/--
DO PRINT Share SHAREID SHAREDESCRIPTION
PRINT SHAREBALANCE NEWLINE END FOR
EACH LOAN WITH (LOANCLOSEDATE--/--/-- DO
PRINT LOAN LOANID LOANDESCRIPTION
PRINT LOANBALANCE NEWLINE END NEWLINE
Everything printed between the PRINT and
NEWLINE commands is easily extracted from the
Symconnect message and popped into HTML form
controls like listboxes or tables. In this case,
a member can choose a share or loan from an HTML
drop down box.
13Summary
- Disadvantages We are at the mercy of all the
weaknesses of Microsoft Server products so
dealing with the viruses, worms, and hackers are
issues are we need to be proactive about. - Advantages Because the ASP code is separate from
repgen, we could cheaply contract with a kid
still in college to do the ASP/HTML side. They
would only need to learn the some simple object
properties to pass information to Symitar. Then
we could write the repgen side. We could then get
rid of expensive and expendable programmers like
James.
14- An object or .dll I created in VB.net. This
object creates the Symconnect message based on
properties passed to it from the ASP page. This
object does NOT send the message to Symitar. It
passes it instead to the incoming Message Queue
and waits for a response in the outgoing
Message Queue. - An executable running on the server also written
in VB.net that constantly monitors the incoming
queue. When a message is found in that queue
(passed from the object) the executable sends the
message on to Symitar and waits for a response
from Symitar. When the response is received, the
executable puts the response into the outgoing
queue where it is picked up by the object. The
executable then monitors the incoming queue
again. VB.net allows you to create executables as
a Windows Service. This is convenient in that the
server can be rebooted and the executable will
run without a user having to log in and start it.