Presentation on theme: "Integrating with Sage Line 500 / Sage 1000"— Presentation transcript:
1Integrating with Sage Line 500 / Sage 1000 William EastburySage User NetworkTuesday, 08 June 2010
2Session Content Background Get information from an external source into Sage transactions.Get supplementary information into Sage and display it.Get information out of Sage, and use it elsewhere.Product Tips and Best PracticesMiddlewareIn SummaryAny Questions
3BackgroundThere are many reasons to integrate with Sage Line 500 / Sage 1000 ERP, but they mainly focus around three main areas.Get information from an external source into Sage transactions.Get supplementary information into Sage and display it, either on a Sage form or somewhere else.Get information out of Sage, and use it elsewhere.
4Get information into Sage transactions. Where could the information come from ?Traditional Electronic Data Interchange (EDI)Business 2 Business Online Trading (B2B)Business 2 Consumer Online Trading (B2C)Separate vertical market / bespoke systems that need to be interfaced together (Promotions, Forecasting, etc.)Examples of tools that can we use for this ?Sage EDI Input ModuleDefacto FS Import ModuleAPIs
5Example: iPath Interface to Sage GL iPath is a bespoke trade promotions system written in-house for Simple.It produces a list of accruals to be uploaded to the Sage GL system, these are passed through Datel’s NominalLedger API and posted directly to the Sage General Ledger as an unposted journal batch.iPathDatel NL APISage GL
6Example: EDI Inbound Order Trade Sales order from TescoThe order arrives via GXS Value Added NetworkThe order is converted to xml via Cindercone MagmaThe order is sent to SageIn batch mode via the Sage EDI Input Module (ei)ORDirectly, via The Datel FUSION SalesOrder API.Sage EI ModuleGXS VANCreate FileMagma ServerBatch ImportSage SOPDirect ImportDatel API
7Get supplementary information into Sage and display it Where could the information come from ?Hand keyed by usersExternal document attachmentsWeb ServicesSeparate vertical market / bespoke systems that need to be interfaced togetherExamples of tools that can we use for this ?FCE’sSage Tcr databaseDatel FUSION EnhancerBespoke (Visual Studio (.net), Eclipse (java) etc.)
8Example: GL Mapping for Parent company’s chart of accounts We need to report on our parent company’s consolidated accounting criteria, alongside our existing chart of accounts.Use Datel’s FUSION Enhancer package to automatically create an FCE-invoked form allowing users to maintain an ‘alternative’ chart of accounts mapping for sage posting codes.Design ViewLive ViewClick HereAnd this appears
9Get information out of Sage, and use it elsewhere. Where could the information come from ?Sage Company DatabasesExamples of tools that can we use for this ?ODBC / OLEDB (With Excel / Access)SQL Server Reporting Services (SSRS)SQL Server Integration Services (SSAS) / DTS 2000Add-In ExpressIron Speed DesignerBespoke (Visual Studio (.net), Eclipse (java) etc.)
10Example : Referencing Sage Tables 1 We want to deliver access to view a list of Sage products from a dropdown in our web application.Lets consider a hypothetical staff shop web application, built in Iron Speed Designer, but we want to allow the user only to select products that exist in Sage, and we want them to be able to select by description, not code.So this needs to be a dropdown,populated from sage table stockmCreate a SQL user that has read onlyaccess to the required tablesIf you want to, create a view to filter thewarehouse from your table.** USE THE WITH NOLOCK QUERY HINTIN A PRODUCTION SAGE SYSTEM **And grant that account access.GRANT SELECT ON <ViewName> TO <UID>
11Example : Referencing Sage Tables 2 Connect Iron Speed to the Sage DatabaseCreate a Virtual Primary Key on the view that you created, against the ‘Product’ field.
12Example : Referencing Sage Tables 3 Create a Formula to display the correct lookup value in a dropdown list
14Product Tips and Best Practices FUSION APIs By far the easiest ‘hands off’ way we have found to handle integration into sage.They are a ‘Direct Integration’, unlike the Sage Modules or Defacto modules, which require someone to either run the interface, or some kind of polling process.Although these are Java based, they can be called from .NET applications and web services.Use IKVM.NET to convert the Java .jar file to a .NET DLLDo NOT try and use the .NET - Java BridgeBe careful if using SalesOrder API with BOMs and bundles, as not all of this functionality seems to work exactly as expected... Ensure you do adequate testing...
15We can use Add-in Express to create an Excel Add-In and Example : Referencing Sage In an Excel Addin 1 Product : Add-In ExpressLet’s suppose that we want to integrate and do some budgeting work outside of Sage, and our users want to work in Microsoft Excel.We can use Add-in Expressto create an Excel Add-In andbuild sage data into this Add-in.
16Example : Referencing Sage In an Excel Add-In 2 Product : Add-In Express And here is our Add-In happily running in Excel 2003, extracting budget data.Note: There is no reason why this could not be a 2-way process, allowing you to write back the budget data to the database.
17Product Tips and Best Practices Iron Speed Designer This is the easiest code generator out there to use ...Download the free version and try it ...You should create the appropriate ‘virtual foreign keys’ and ‘virtual primary keys’ that are not created in the sage db, then Iron Speed will automatically work with those keys.Will automatically discover your database and build solid code to add, change, remove or view records.So use it with care !You MUST create a new sql user that only has access to the tables / views that you are required to useUnless you want to wait for Iron Speed to read the entire schema of all 8,000 + sage tables ! ! !Do not use the URL validation functionality as it does not work.
18Product Tips and Best Practices FUSION Enhancer This product builds FCE’s and web-pages to be called from fce’s.It will also build an underlying database table for you to store your fce data in.It basically consists of a Generic FCE and a set of code generation libraries, with a designer front-end.The Enhancer forms database can be modified to use the Generic FCE to call other (bespoke) web pages etc.It is extremely simple to use, if you can use the sage forms designer, then you can use this.It requires both SQL Server and IIS to be running somewhere on your network, even when used with the GUI client.
19Tip: Using the tools together You can use these tools together to create 2-way interfaces.Use enhancer to create a form and FCE and modify the enhancer db tables to call an Iron Speed application which holds info in a temporary table, then calls the API to send it back once changed.As above, but instead of using Enhancer / Iron Speed to create a web application, use add-in express to create a bespoke excel add-in which pulls information from ODBC / OLEDB, then holds said info in an excel spreadsheet, then calls the API to send it back once changed.
20Best Practices : Tiered Integration If doing EDI, EAI or any kind of B2B / B2C online activity, it’s a really good idea (but not mandatory) to use some kind of middleware product to handle at least the data mapping and translation tasks.This is not necessary when integrating vertical market apps internally within your own organisation.Example Products :-Cindercone MagmaMicrosoft BizTalkGentran Integration SuiteORBespoke XML Web service
21Product Tips and Best Practices Middleware : Cindercone Magma Magma is an integration gateway, consisting essentially of an xml mapper (via xslt) and an http server, and a management console.Very good at mapping both xml and non-xml data and moving it from a to b.It requires either xslt knowledge or consultancy to configure, and can be tricky to troubleshoot.In our experience, it is not great in hightransaction-volume or real-time environmentssuch as B2C commerce (Although it does work)But it is perfect for batch process style jobssuch as EDI.Works with virtually all message transportmethods you could choose to use :-http, https, ftp, sftp, cifs, as/2, smtpWorks with the Fusion API’s or Sage EDIModules as a transport method into Sage.
22Product Tips and Best Practices Middleware : Bespoke Web Service SIGNature is our bespoke integration gateway, that we use for B2C e-commerceBased upon .NET Web Services technology and uses an open-source embedded database (sqlite.net) , so is SQL agnostic and not tied to your Sage platform DB version.It is designed to be easy to administer, fast, and to be flexible in it’s messaging, which is based upon html templates (Uses wkhtmltopdf to render pdf documents from an html page).Not a hint of xslt in sight,but does require a ASP.NET (VB)programmer for changesReceives xml and uses .netPlugins for transmission intosage. (One of which is a .netwrapper around the DatelAPI’s)
23In Summary These are the approaches that we usually take in-house Extending and adapting Sage: FUSION EnhancerExtending and adapting Excel: Add-in Express with Datel APIsLinking web-applications to Sage data: Iron Speed DesignerB2B and EDI IntegrationCurrently: Cindercone Magma with Sage EDI ModulesIn Progress: Cindercone Magma with Datel APIsB2C Integration: Bespoke Gateway with Datel APIs