SYSPRO e.net Solutions is a framework that enables developers to write their own software applications for SYSPRO without compromising the SYSPRO technology or environment.
Developers are able to customize SYSPRO's business functionality, effectively tailoring solutions around the core product without using the standard user interface, but still leveraging all the existing SYSPRO security, configuration options, and operator settings.
The e.net Solutions architecture replaces the need for the SYSPRO user interface. Instead, it uses business objects (pieces of SYSPRO business logic) that can be called programmatically from outside of SYSPRO. Instructions are passed to the business objects in XML and after processing the request (updating the database if required) results are returned in XML.
The framework comprises the following:
COM object
WCF service
DCOM client
Business objects
Web services
Web-based applications
Document Flow Manager
Although each of the above can interact with business objects, most of the interaction is done through the e.net Solutions COM Object.
These are pieces of SYSPRO logic that can be called programmatically from outside of SYSPRO; passed instructions in XML; process the request (updating the database, if required) and return the results in XML.
The business objects share the SYSPRO security model, provide a consistent interface to the SYSPRO database and shield the database from possible corruption caused by direct data access.
They can also be invoked using the VBScripting capabilities of SYSPRO (via DCOM or Web Services).
The business objects must reside in the SYSPRO \Program folder on the application server.
The Component Object Model (COM) provides a language-neutral interface that exposes business objects to developers via the COM Object SYSPRO32.DLL. The file resides in the \Base folder on the SYSPRO application server.
In a 64-bit environment, the COM Object is named SYSPRO64.DLL and in versions prior to SYSPRO 7, the COM object is named ENCORE.DLL.
The COM Object contains four classes; each containing several methods. A method is an instruction to call a specific routine within a business object.
Class | Methods | Description |
---|---|---|
Utilities | Used for logging on/off, retrieving operator preferences and calling a third party application written using Net Express (that does not have a user interface). | |
Logon | Used to logon to e.net Solutions. | |
Logoff | Used to logoff from e.net Solutions. | |
GetLogonProfile |
Used to retrieve information/user preferences for the currently logged on session. | |
Run |
Used to run a Net Express program. | |
Query | Used for calling query business objects. The queries don't update or change the underlying data in the database; they simply retrieve data, applying business rules to the returned information. | |
Browse | Used to generically return specified columns from all rows of the named table. | |
Fetch | Used to generically return all columns from a specified row in the named table. | |
Query | Used to access query-type business objects. | |
NextKey | Used to generically retrieve a key alphabetically higher than the supplied key. | |
PreviousKey | Used to generically retrieve a key alphabetically lower than the supplied key. | |
Setup | Used to create and modify semi-static items such as stock codes and customers. | |
Add | Used to add single or multiple items with a single call. | |
Update | Used to change single or multiple items with a single call. | |
Delete | Used to delete single or multiple items with a single call. | |
Transaction | Used to post transactional data like inventory movements, sales orders and invoices. | |
Build | Used to retrieve information helpful during the post. | |
Post | Used to post transactions. |
The business objects are called from a third party application or script that resides on the SYSPRO application server.
The COM object receives the request from the application and calls the specified business object, passing it the XML that was supplied.
The business object processes the XML and returns the resulting XML to the COM object, which routes it back to the application.
SYSPRO e.net WCF Services is the recommended way of communicating with the business objects if the application is not running on the SYSPRO application server.
WCF services exposes both SOAP (Simple Object Access Protocol) and REST (Representation State Transfer) endpoints.
A third party application running on a remote workstation can use either protocol to talk to the WCF service on the SYSPRO application server
The WCF service then communicates with the business objects via the COM object. If using the SOAP protocol, additional libraries are provided to simplify the development process.
Both SOAP and REST allow for communication over HTTP, enabling remote e.net Solutions communications to work over the internet.
This allows remote access to business objects.
When a call is made from the application to the COM object, DCOM intercepts the call on the workstation and routes it to the COM object on the SYSPRO application server.
The COM object then passes the request to the business objects.
Once the request has been processed, the results are routed back (via DCOM) to the script that originally made the call on the remote computer.
DCOM uses TCP port 135 to start its communication and, as it is unlikely that port 135 will be open on most firewalls, it is extremely unlikely that you could use e.net Solutions over the internet if you are using DCOM.
DCOM should, therefore, only be used on an organization's internal network.
This provides remote access to business objects without requiring the installation and configuration of DCOM.
The Web services expose the functionality of the business objects through a web interface. These are typically used where the third party application is being run on a machine on a different network/over the internet.
There is a significant overhead when using e.net Solutions with Web services, as all the messages must be wrapped in a SOAP envelope (which consumes more bandwidth) and the envelope needs to be added/removed at each end.
The Web services also require a Microsoft IIS web server in order to run. This IIS server could be installed on the SYSPRO application server, in which case the Web services would talk directly to the COM object.
If the Web services are installed on a web server that is not the SYSPRO application server, DCOM will still need to be configured between the web server and the SYSPRO application server. The application will call the Web services on the IIS server. The Web services will attempt to talk to the COM object, and this request will be intercepted by DCOM and routed to the COM object on the SYSPRO application server.
The COM object will talk to the business objects and the response from the business objects will be routed back via the COM object to DCOM, and on to the Web services.
This is an out-of-the-box web user-interface that accesses SYSPRO data via the business objects. Source code is provided so that administrators and developers can change, or extend them, as required.
The Web-based applications are installed under Microsoft IIS (either on the SYSPRO application server, or on a remote IIS server).
If a remote IIS server is used, the Web-based applications use WCF, Web services, or DCOM to talk to the business objects on the SYSPRO application server.
The Web-based applications ship with its source code, enabling developers to extend its functionality.
This provides a means of automating the processing of incoming XML documents using the business objects. It is installed on the SYSPRO application server.
Contracts are used to configure the type of document to look for, and at which location (e.g. folders, attachments to emails) and passed to the Microsoft Message Queue (MSMQ) along with the contract information.
When they reach the top of this queue they are processed, calling the relevant business object.
The results can be output to files in specific folders, or as email attachments.
The DFM and MSMQ must reside on the SYSPRO application server, and calls to the business objects are direct (i.e. they do not go through the COM object).
The contract can contain an XSLT code to transform the XML file before it is passed to the business object, and it can also contain some to transform the output from the business object.
SYSPRO is licensed concurrently across user bands (e.g. 16-user license). Each login by an operator consumes a single license, regardless of the part of SYSPRO they are using. If you require an additional user that exceeds your current band, you will need to license the next user band for all modules. In addition, licensing an additional module must be for the current user band (e.g. 16 users).
e.net Solutions licensing is only required if you are going to use it outside of SYSPRO. If you are going to call a business object from within SYSPRO (e.g. from a customized pane or SYSPRO form) then this is typically covered by your SYSPRO license.
Business object licensing is by functional area (subset of a module) and operator. For example: Accounts Payable has two functional areas: Accounts Payable Primary Query and Accounts Payable Primary Posting.
Functional area licenses are available in multiples of 10 and are based on the principle of a named user (i.e. SYSPRO operator code) where only that user can consume the license.
To license a functional area, you need to license the e.net Solutions System Manager as well as the corresponding SYSPRO module. For example: to license the Inventory Primary Query Functional Area you must license the e.net Solutions System Manager and the Inventory Control module.
When you purchase the e.net Solutions System Manager, you are licensed for the following functional areas:
e.net System Query functional area
This contains all the queries that are not module-specific (e.g. generic browse, generic fetch, message inbox query, and the custom form query).
e.net System Posting functional area
This contains posting business objects that are not module-specific (e.g. writing to the message inbox, changing the operator password, and writing to the NT Event Log).
e.net System Setup functional area
This contains all the setup class business objects that create and modify semi-static data for all modules (e.g. add/update/delete a customer or stock code, etc).
Aside from those linked to the System Manager, functional areas are subsets of SYSPRO modules. All the modules and their associated functional areas can be seen in the Business Object Library located on the SYSPRO InfoZone.
Document Flow Manager licensing includes access to any of the business objects as long as they are being used by DFM. If you also want to access them using another application, then they will need to be licensed separately.