denise luther senior it consultant [email protected] connect mapics to anything with system...
TRANSCRIPT
Denise LutherSenior IT Consultant
Connect MAPICS to Anything Connect MAPICS to Anything with System Link with System Link
(CISTECH R7.8 series)(CISTECH R7.8 series)
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…
• 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 fieldsBusiness rulesEditingDefault generationUser ExitsSecurityAttachmentsHost jobs and reportsLogical and object transactions
Why use System-Link
• 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
Methods to Connect
• System-Link User Guide – Release 7.7– Download from Infor support website
- Documentation- Product Manuals
- Miscellaneous - SYSL
• System-Link Installation Instructions R7
System-Link References
• Use Link Manager to manage System-Link processes
By environmentBy 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
Managing System-Link
URL points to your host server
System-Link Simulator
Navigation/System-Link requestNot required to create System-Link requests
but it makes the job easyDisplay PO’s for vendor 100 – Restricted List,
navigate from Vendor object or subset
System-Link Simulator
System-Link Request
2-2-1414
Paste from clipboard
System-Link Request
2-2-1515
Variables
System-Link Request
2-2-1616
Check the response
System-Link Response
2-2-1717
System-Link Response
2-2-1818
Request has errors – Check the response
System-Link Response - Error
System-Link Request
Requesting System-Link from Card File
System-Link Request
2-2-2121
WRKODBCJOB command will allow you to manage System-Link jobs.
System-Link Sessions
2-2-2222
• IP address of auxiliary server will be System-Linksessions
• View job log (Option 10) for troubleshooting
• Link Manager 7.8
• Errors from associated Integrator user exits will be in QSYSOPR message queue
System-Link Sessions
2-2-2323
• 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
Local Program Interface
2-2-2424
Parm Description Use Size Type
P#XREQ XML Request I 65,535 A
P#XRSP XML Response O 65,535 A
P#MRQR More records? *YES if more records to return
O 8 A
P#ERFD Internal Errors*YES if response contains errors
O 8 A
P#MSID External ErrorsPSX0122 – System-Link not startedPSX0130 – Response > 65K
O 7 A
LPI Parameters
2-2-2525
• 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
LPI Sample
2-2-2626
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-2-2727
• 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
Parsing Response
2-2-2828
<<Response_sessionHandle='1a5f739:fc75bbe92b:_7aef‘_wResponse_sessionHandle='1a5f739:fc75bbe92b:_7aef‘_workHanorkHan
<QueryListResponse_name='queryList_PurchaseOrderGe<QueryListResponse_name='queryList_PurchaseOrderGeneral‘_rneral‘_r
<DomainEntity_domainClass='com.mapics.pm.PurchaseO<DomainEntity_domainClass='com.mapics.pm.PurchaseOrder'rder'
<Key><Key><Property_path='order'><Property_path='order'>
<Value><![CDATA[P000349]]></Value><Value><![CDATA[P000349]]></Value></Property></Property>
</Key></Key><Property_path_='order'><Property_path_='order'>
<Value><![CDATA[P000349]]></Value><Value><![CDATA[P000349]]></Value></Property></Property><Property_path='vendor'><Property_path='vendor'>
<Value><![CDATA[100]]></Value><Value><![CDATA[100]]></Value></Property></Property><Property_path='vendorName'><Property_path='vendorName'>
<Value><![CDATA[Hi_Tech_Corp]]></Value><Value><![CDATA[Hi_Tech_Corp]]></Value></Property></Property><Property_path='orderStatus'><Property_path='orderStatus'>
<Value><![CDATA[20]]></Value><Value><![CDATA[20]]></Value>
Starts a new recordStarts a new record
Field valuesField values
2-2-2929
• 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
Fetch Next
2-2-3030
Transaction GroupStartTransactionGroup tag 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 “auto-commit”: each maintenance action commits prior to the next action being run.
2-2-3131
Transaction Group<Request sessionHandle='*current' workHandle='*new' broker='EJB' maxIdle='1000'> <Request sessionHandle='*current' workHandle='*new' broker='EJB' maxIdle='1000'> <Update name='<Update name='updateObject_Vendor1' domainClass='com.mapics.pm.Vendor'> updateObject_Vendor1' domainClass='com.mapics.pm.Vendor'> ... ... </Update></Update>
<<StartTransactionGroup /> StartTransactionGroup /> <Create name='createObject_PurchaseOrder' <Create name='createObject_PurchaseOrder' domainClass='com.mapics.pm.PurchaseOrder'>……..domainClass='com.mapics.pm.PurchaseOrder'>……..</Create> </Create> <Create name='createObject_PurchaseOrderItem1' <Create name='createObject_PurchaseOrderItem1' domainClass='com.mapics.pm.PoItem'> ………domainClass='com.mapics.pm.PoItem'> ………</Create> </Create> <Create name='createObject_PurchaseOrderItem2' <Create name='createObject_PurchaseOrderItem2' domainClass='com.mapics.pm.PoItem'> ………domainClass='com.mapics.pm.PoItem'> ………
<Create name='createObject_PurchaseOrderItem3' <Create name='createObject_PurchaseOrderItem3' domainClass='com.mapics.pm.PoItem'> ……….domainClass='com.mapics.pm.PoItem'> ……….</Create> </Create>
<Update name='<Update name='updateObject_Vendor2' domainClass='com.mapics.pm.Vendor'>updateObject_Vendor2' domainClass='com.mapics.pm.Vendor'>............. ............. </Update> </Update> </Request> </Request>
2-2-3232
•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”
Supplier Portal – Web application
Style sheet used to present the XML data
2-2-3333
Supplier Portal – Web application
Upload shipping documents to host server Create PowerLink attachment via System-Link request
Supplier Portal – Web application
• Events on the web page are used to construct a System-Link 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-2-3535
Power Link transactions
2-2-3636
Power Link transactions
2-2-3737
Custom objects can be used with System-Link (EI)
Custom objects
2-2-3838
Web ServicesUse RPG, HTML, Java, PHP, MS Office,
anything that can communicate with a web server
2-2-3939
Web Services
•Create a deployment profileInclude the object(s) you wantSpecify the attributesSpecify the actions
•Generate the web service (URL)WSDL – Web services description languageIdentifies information required for Request Type of Response that will be received
2-2-4040
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-2-4141
Web Services – Price Book MS Excel Worksheet containing pricing dataA button on the worksheet sends data to an XA PricebookXA edits the data
Accepts someRejects some
Error messages are returned
2-2-4242
Web Services – Price Book On the server…•Enterprise Integrator•System-Link
On the client…•Microsoft Office•Microsoft Office XP Web Services Toolkit 2.0
• 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
Web Services – Price Book