Connect MAPICS to Anything with System Link (CISTECH R7.8 series) Denise Luther Senior IT Consultant denise.luther@cistech.net 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 denise.luther@cistech.net 704-814-0017 Sales Information Ben McCormick ben.mccormick@cistech.net 704-814-0016