Transcript - Cistech
Connect MAPICS to Anything with
System Link
(CISTECH R7.8 series)
Denise Luther
Senior IT Consultant
[email protected]
Agenda
•
•
•
•
•
•
•
What is System-Link
Methods to connect
Managing System-Link
Simulator
LPI
Web portal
Web services
What is System-Link
• Bridge between XA and other systems
– Inquiry
– Maintenance
• XML – Standard interface
– Other ERP systems and other platforms
– Request/Response
• Part of IDF
– CSM, PM, OBPM, EPDM, MM…
– CO’s, PO’s, MO’s, Engineering…
Why use System-Link
• Universal Off-Line Load
• Build websites for customers, vendors and
partners that links directly to the XA
database
• Web Services – industry standard way to
run programs over the web
Why use System-Link
System-Link handles:
Database files and fields (objects, attributes)
Logical fields
Business rules
Editing
Default generation
User Exits
Security
Attachments
Host jobs and reports
Logical and object transactions
Methods to Connect
• System-Link Simulator
– Use for testing/troubleshooting
• Directly to System-Link via LPI
– Call an RPG program with parameters
• To web server via XML
– Web pages – Java/HTML
• Web Services
– Anything Microsoft-enabled
– Requires Enterprise Integrator
• IBM’s WebSphere MQ
– Global enterprises
– Requires IBM products
System-Link References
• System-Link User Guide – Release 7.7
– Download from Infor support website
- Documentation
- Product Manuals
- Miscellaneous
- SYSL
• System-Link Installation Instructions R7
Managing System-Link
• Use Link Manager to manage System-Link
processes
By environment
By machine
Distribute server load across resources
Managing System-Link
Link Manager 7.8
Managing System-Link
•
•
•
•
System-Link processes must be started on auxiliary
Autostart System-Link with environment
Right click or toolbar to start/stop/restart/Move
View Logs and diagnostics
System-Link Simulator
URL points to your host server
System-Link Simulator
Navigation/System-Link request
Not required to create System-Link requests but it
makes the job easy
Display PO’s for vendor 100 – Restricted List,
navigate from Vendor object or subset
System-Link Request
System-Link Request
Paste from clipboard
2-14
System-Link Request
Variables
2-15
System-Link Response
Check the response
2-16
System-Link Response
2-17
System-Link Response - Error
Request has errors – Check the response
2-18
System-Link Request
System-Link Request
Requesting System-Link from Card File
System-Link Sessions
WRKODBCJOB command will allow you to
manage System-Link jobs.
2-21
System-Link Sessions
• IP address of auxiliary server will be System-Link
sessions
• View job log (Option 10) for troubleshooting
• Link Manager 7.8
• Errors from associated Integrator user exits will
be in QSYSOPR message queue
2-22
Local Program Interface
• RPG program you call from anywhere
– PSVPSR1R in AMALIBx
• Parameters for the XML to send and receive
– Send an inquiry
• Receive the results
– Send an update
• Receive confirmation
2-23
LPI Parameters
Parm
Description
P#XREQ
XML Request
I
65,535
A
P#XRSP
XML Response
O
65,535
A
P#MRQR
More records?
O
8
A
P#ERFD
Internal Errors
O
8
A
P#MSID
External Errors
PSX0122 – System-Link not
started
PSX0130 – Response > 65K
O
7
A
*YES if more records to
return
*YES if response contains
errors
Use
Size
Type
2-24
LPI Sample
• Available as a download
– SH14873
• Illustrate one way of using System-Link with your
RPG programs
– Send a request - Send XML request to LPI
– Parse the response - Receive and parse XML
response from LPI
• Create a report of PO’s for a vendor
• Only change required – Supply data for login
substitutions
2-25
Constructing a Request
• Write a service program with functions
• for sections, tags and actions
XML header
Login
Request
Property path wrapper based on type:
alpha, numeric
• Common actions
•
•
•
•
2-26
Parsing Response
• Sample parsing program USRLPI1R is written generically
– Can be used for just about any object (use it for
yours)
– V5R4 New XML functions for parsing
%XML, XML-INTO, %HANDLER, XML-SAX
• Sample print program calls the parser field-by-field
– You can use this technique in your programs
2-27
Response_sessionHandle='1a5f739:fc75bbe92b:_7aef‘_workHan
<QueryListResponse_name='queryList_PurchaseOrderGeneral‘_r
<DomainEntity_domainClass='com.mapics.pm.PurchaseOrder'
Starts a new record
<Key>
<Property_path='order'>
<Value><![CDATA[P000349]]></Value>
</Property>
</Key>
<Property_path_='order'>
<Value><![CDATA[P000349]]></Value>
</Property>
<Property_path='vendor'>
Field values
<Value><![CDATA[100]]></Value>
</Property>
<Property_path='vendorName'>
<Value><![CDATA[Hi_Tech_Corp]]></Value>
</Property>
<Property_path='orderStatus'>
2-28
<
Fetch Next
• Don’t ask for too many records at once.
– You set the limit with MaxReturned
• LPI tells you if there are more.
• ‘FetchNext’ is the way to get more.
– Our sample programs shows you how.
– Create loop that processes until P#MRQR
= *NO
2-29
Transaction Group
StartTransactionGroup tag
A StartTransactionGroup tag is used to group all
subsequent maintenance actions in a request
document as a single transaction.
Normally, most maintenance actions are “autocommit”: each maintenance action commits prior to
the next action being run.
2-30
Transaction Group
<Request sessionHandle='*current' workHandle='*new' broker='EJB' maxIdle='1000'>
<Update name='updateObject_Vendor1' domainClass='com.mapics.pm.Vendor'>
...
</Update>
<StartTransactionGroup />
<Create name='createObject_PurchaseOrder' domainClass='com.mapics.pm.PurchaseOrder'>……..
</Create>
<Create name='createObject_PurchaseOrderItem1' domainClass='com.mapics.pm.PoItem'> ………
</Create>
<Create name='createObject_PurchaseOrderItem2' domainClass='com.mapics.pm.PoItem'> ………
<Create name='createObject_PurchaseOrderItem3' domainClass='com.mapics.pm.PoItem'> ……….
</Create>
<Update name='updateObject_Vendor2' domainClass='com.mapics.pm.Vendor'>
.............
</Update>
</Request>
2-31
Supplier Portal – Web application
•HTTP Post interfaces with System-Link servlet
•Login information used to construct Login tag
•System-Link request to retrieve P.O. lines
•Auto content security determines what rows to return
•Deployment profile provides “firewall”
2-32
Supplier Portal – Web application
Style sheet used to present the XML data
2-33
Supplier Portal – Web application
Upload shipping documents to host server
Create PowerLink attachment via System-Link request
Power Link transactions
• Events on the web page are used to construct a SystemLink request to create records in a custom transaction
file. Transactions can be viewed in Power Link
• Custom transaction file is a business object with
Integrator user exits.
• User exits are used to perform work on the host (update
flags, dates, perform edits, default data generation)
• Integrator user exits execute if object is being
maintained via PowerLink, System-Link or NetLink
• Ability to update Purchase orders directly
2-35
Power Link transactions
2-36
Custom objects
Custom objects can be used with System-Link (EI)
2-37
Web Services
Use RPG, HTML, Java, PHP, MS Office, anything
that can communicate with a web server
2-38
Web Services
•Create a deployment profile
Include the object(s) you want
Specify the attributes
Specify the actions
•Generate the web service (URL)
WSDL – Web services description language
Identifies information required for Request
Type of Response that will be received
2-39
Web Services
•Web service provider WSDL information
•Tools for analyzing WSDL
• WDSc's Web Services Explorer
• SQLData System's Generic SOAP Client
• WebserviceX.NET's WSDL Analyzer
2-40
Web Services – Price Book
MS Excel Worksheet containing pricing data
A button on the worksheet sends data to an
XA Pricebook
XA edits the data
Accepts some
Rejects some
Error messages are returned
2-41
Web Services – Price Book
On the server…
•Enterprise Integrator
•System-Link
On the client…
•Microsoft Office
•Microsoft Office XP Web Services Toolkit 2.0
2-42
Web Services – Price Book
• PriceBookExample.xls provided
– Enable macros, if necessary
– Change price book, etc. to match your environment
• Search for web services
– Tools => Macros => Visual Basic Editor => Web Service
References
– Enter the URL from the deployment profile
• Add two services
– PriceBookBasePriceSvc
– SystemOperations
• Import sample code (File => Import File)
– ExamplesCode.bas
– MAPICSLogonPrompt.frm
Web Services – Price Book
Web Services – Price Book
Web Services – Price Book
Host edits, subscriptions…everything works
Thank You!
Technical Information
Denise.Luther
[email protected]
704-814-0017
Sales Information
Ben McCormick
[email protected]
704-814-0016