SAP Business One – Software Development Kit (SDK)
Mostafa Sharaf, SAP Business One Solution Architect, DACH & EMEA, SAP Germany
21st November, 2013
© 2013 SAP AG. All rights reserved. 2Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging & Deployment
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 3Public
SAP Business One – Business Platform
© 2013 SAP AG. All rights reserved. 4Public
Client
Server
Server
SAP Business OneDatabase
SAP BusinessOne Client
3rd PartyApplication
Java
Co Data
InterfaceAPI
LicenseService
UDO
DI Server
2 4 6 6
Use
rInt
erfa
ceA
PI
1
5
3 3
SAP Business One – SDK Components Diagram
© 2013 SAP AG. All rights reserved. 5Public
SAP Business One - Technology and Interfacing
SAP® Business One
Server
RDBMS
Integration
Services
Client
Interfaces
Continuous and integrated solutionWindows look & feel (SAP style)Simple navigationAbility to drill down to details“Drag and relate” feature
Two-tier client-server architecture (fat client)Microsoft Windows 32 based, 64 Bit supp.Microsoft SQL Server / HANA Server
Ease of Use
ProductArchitecture
CustomizingForm SettingsQueries / ReportsUser-Defined Tables and FieldsLinkage of input fields to queriesUser-Defined Objects (UDOs)
Microsoft Excel, Word (out)Microsoft Outlook (in / out)
Adaptations
MS OfficeIntegration
File-based (built-in)SOAP (HTTP/XML)APIs (COM, web services (SOA) starting)User-Defined objects (UDOs)Integration (not only) to SAP systems
Interfaces
SDK (COM)
GUI
Backup
MicrosoftSQL Server
/HANA
SDK (COM)
SDK (DI Server)
License
© 2013 SAP AG. All rights reserved. 6Public
SAP Business One SDK - Motivation
Customizationcapabilities arepowerful!
Customizationcapabilities cannotsolve everyrequirement.
Source code notaccessible!
Use SDK!
SAPAdd-Ons
SoftwareDevelopment Kit
PartnerAdd-Ons
SAPBusiness One
© 2013 SAP AG. All rights reserved. 7Public
SAP Business One SDK – Terminology and Packaging
The SDK consists of 2 major packages:The Runtimes (i.e. the APIs)
The runtimes (DI API + UI API) are installed together with the SAP Business One clientapplication
DI API can be installed stand-alone (separate installer package available)
The documentation (samples, helpfiles, utilities) named „SDK Installation“
© 2013 SAP AG. All rights reserved. 8Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging & Deployment
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 9Public
SAP Business One SDK – Data Interface API
Provides objects and methods (add, update etc.) to work on data level – installing the SAPBusiness One client application is not required
Provides access to business objects (e.g. master data and transactional data) and crossfunctionalities (services)
Performs the same checks as the SAP Business One client application
Links existing third-party solutions “as-is”
Use COM capable development tools (e.g. Microsoft Visual Studio)
SAP Business OneCompanyDatabase
DI API(or JCo
orDI Server)
UDO
3rd PartyApplication
SAPBusiness One
© 2013 SAP AG. All rights reserved. 10Public
Data Interface API – Use cases
There are a couple of scenarios where Data Interface API is engaged:
Data level integration of existing applications:Easily read or write data from / to SAP Business One – when needed
Data Import / Export scenarios – which are not covered through SAP tools – and where thecapabilities of the SAP Business One application are not sufficient.
Depending on the architecture of the overall solution you might consider to use DI Serverthough.
Handling data in an Add-On that uses UI API (see next unit) beyond UI API‘s capabilities.Essentially writing data to the SAP Business One database by default requires usage of DIAPIEven though other techniques may be faster when it comes to reading data from thedatabase – usage of DI API is often a good choice regarding usability (no need to requestadditional credentials etc) and data coherence (imagine that the required data might bestored in various tables).
© 2013 SAP AG. All rights reserved. 11Public
SAP Business One SDK – DI Server
The DI Server is designed to run on a server machine and supplies a light-weight SOAP-based access layer
Based on the DI API technology but acts as a “Server” (as a service)Supports all business objects that are exposed by the DI APIEnables to develop SOAP-based solutionsPotential Solution to heavy duty operations (e.g. batch)Can support larger number of clients working at the same time.
© 2013 SAP AG. All rights reserved. 12Public
The User Defined Object offers partners the ability to:Add own Business Objects to the application’s object collection.Use the set of services that the application offers, such as:
Connect a Form to the Object; use Find, Add, and Update modes and other predefinedservices.Optionally the predefined behavior of the services can be modified and extendedthrough implementing a class that inherits (C++) from a business object base class in aDLL and overriding virtual methods.
SAP Business One supports two types of main Objects:Master Data ObjectDocument Object
SAP Business One SDK – User Defined Object (UDO)
Object Collection
AddFind
Remove…..
New partnerobject
Register theobject forservices
UDO
© 2013 SAP AG. All rights reserved. 13Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging & Deployment
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 14Public
SAP Business One SDK – User Interface API
Provides objects and methods to access screen objects of the User Interface
Provides access to internal system events of the user interface
Provides ability to modify or add menus, windows, or fields
Provides one integrated user interface
Use COM capable development tools (Microsoft Visual …)
SAP Business OneCompanyDatabase
DataInterface
API
Use
rInt
erfa
ceA
PI
UDO
3rd PartyApplication
SAPBusiness One
© 2013 SAP AG. All rights reserved. 15Public
User Interface API – Use Cases
User Interface API is usually used to:
Reach a „seamless“ integration of additional functionality with SAP Business One(usually requested by customers)
…including hooking on SAP Business One standard processes…including adding own GUI elements into SAP Business One standard forms…including adding own forms and plugging the corresponding data behind
Manipulate SAP Business One standard functionality (when standard options do notapply to the customer‘s processes (or the branch the customer works in))
…including hiding SAP Business One GUI elements…including blocking SAP Business One events
© 2013 SAP AG. All rights reserved. 16Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging & Deployment
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 17Public
SAP Business One Studio Suite
Developer Consultant Customer IT
SAP Business One Studio for Microsoft VisualStudio
SAP Business One StudioSuite
UX Designer
• SAP Business One Studio
• SAP Business One Studio for Microsoft Visual Studio
Target Users
© 2013 SAP AG. All rights reserved. 18Public
SAP Business One Studio - Highlights
Reduce development effort
Offer better user experience by drag & drop
Cover user/UDO/system forms (compatible screen painter file format)
Open platform for functions like SAP Business One Workflow
© 2013 SAP AG. All rights reserved. 19Public
SAP Business One Studio for Microsoft Visual Studio -Highlights
Leverage Visual Studio (SAP Business One 9.0 supports C# only.)Design and develop user/UDO/system forms and event handling by drag & dropAdd-On code generation based on SDK UI Object Level EventShared input and output between Studio and Studio for VS
© 2013 SAP AG. All rights reserved. 20Public
Typical Use Cases
Case1: consultant designs a Add-On form in Studio, a developer programs thisform in Studio for VS.
Case2: customer IT designs and implement a UDO in Studio for VS.
Case3: developer implements a Add-On from scratch in Studio for VS.
Case4: consultant/UI designer draw a form in Studio; a developer loads it by rawAPI.
Case5: continue developing old SRF generated from ScreenPainter in Studio forVS.
© 2013 SAP AG. All rights reserved. 21Public
It has 4 components:Workflow Manager
Workflow Instance
Workflow Worklist
Workflow Monitor
More infohttp://sappartneredge.com/B1/howtoguides
Workflow Worklist
Workflow Monitor
Workflow Instance
Workflow Manager
SAP Business One Workflow
© 2013 SAP AG. All rights reserved. 22Public
SAP Business One Workflow: Business Example
Bryce the accountant, wants to get fullcontrol of new business partners createdin the system.
You tell him about the Workflow solutionin SAP Business One.
OEC Computers has dedicated users responsible for financialrelevant data at Business Partner Master Data.
Therefore, once new Business Partner Master Data is created theresponsible user should get a task to check and complete thefinancial data at this new Business Partner Master Data.
OEC Computers
© 2013 SAP AG. All rights reserved. 23Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging, DeploymentTopic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One on – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 24Public
Add-On Packaging
Pack Add-On components (including registration data file, setup etc.)
Create Add-On Installer, that must be 1 (one!) executable file
Provide Documentation
Describe User-defined fields and tables
Describe the User-defined objects you define in your Add-On (if applicable)
List where you modify SAP Business One standard functionality (if appropriate):
List where you interfere in the control flow of SAP Business One standard functionality (ifappropriate)
© 2013 SAP AG. All rights reserved. 25Public
Add-On Deployment
Register / Install / Administrate
Develop / Create Package
Register (and install) the Add-On
Create registration data file
Create installation program
Set User Preferences
Set Company Preferences
Run-time
Compile the Add-On program
Run or Stop the Add-On
Assign Add-On Licenses to Users (if appropriate)
© 2013 SAP AG. All rights reserved. 26Public
Add-On Administration
The Add-On Administration tool is designed to help administrators deploy and manage add-on applications on end-users workstations.
Add-Ons on the server NOTassigned to current company.
Add-Ons assigned tocurrent company.
© 2013 SAP AG. All rights reserved. 27Public
Add-On Support 32 bits & 64bits Processing
32 bit Addon32 bit Addon32bit Add-on
32 bit Addon32 bit Addon64bit Add-on
32bit B1 Client 64bit B1 Client
32bit Add-on 64bit Add-on
SBO-COMMON
32bit DIAPI 64bit DIAPI32bit UIAPIServer
64bit OS
64bit UIAPIServer
Add-onRegistration
Add-onDeployment
© 2013 SAP AG. All rights reserved. 28Public
License Server SLD
Server Machine
Browser/SLD Client
ServiceManager
CORBA
HTTP
• License
• Server list• SSO• Db credential• Site user• Dynamic key• Encryption algorithm• Read-Only db userlogin login
config config
B1 client Addon
License Server & System Landscape Directory (SLD)
The license service is part of the SAP Business One server tools andcan be installed on a central machine that can support multiple SAPBusiness One systems and Company Databases.
© 2013 SAP AG. All rights reserved. 29Public
Add-Ons Licensing
Licenses vs. Components LicenseType UI API DI API DI Server Screen
PainterSAP Add-Ons
Namespace andAdd-On registration
SDK Development Conc. X X - - - Yes
<(ISV) Solution License> Named X X - - - -
DI Server CPU - - X - - -
SAP Add-Ons (free) Named - - - - X -
SDK Tools (free) Named - - - X - -
Historical Licenses
SDK Implementation (free) Conc. X - - - - -
Compatibility License (free) Conc. X X - - - -
The following table lists relevant licenses and what each of them allows to use.Named = Named user licenseConc. = Concurrent user licenseCPU = CPU-based license
© 2013 SAP AG. All rights reserved. 30Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging & Deployment
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One on – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 31Public
SAP Business One Integration – B1if
Network of Solutions Supporting Network of Business and People
B1i as the platform for integration & collaboration
Integrates business partners, employees across system environmentsUnifies business processes, and automates operations across the ecosystem
© 2013 SAP AG. All rights reserved. 32Public
B1if Components
© 2013 SAP AG. All rights reserved. 33Public
B1if Connectivity Types
B1if provides many of out-of-the-boxconnectivity types
SAP Business One (DI, SQL)
SAP ERP (RFC / ALE/XI-PI)
SAP NetWeaver BW (RFC / SOAP)
Database systems (SQL)
HTTP any
File (CSV, Offset)
Web Services (In/Out, Sync/Async)
FTP
CSV, DSV, Offset, IDE
SQL
DI, SQL
SOAP
RFC, ALE,
BAPI, XI
Web Services
B1if
© 2013 SAP AG. All rights reserved. 34Public
B1BC: Intercompany Solution
• Enables businesses running SAP Business One to manage intercompany transactions formore than one company.
• Automatically replicates corresponding transactions across multiple company databases.Automating the replication of such transactions significantly reduces the amount of end-user effort and manual rekeying of data to maintain intercompany trading financialstatements.
© 2013 SAP AG. All rights reserved. 35Public
B1iSN & B1BC: Subsidiary & Intercompany integration
© 2013 SAP AG. All rights reserved. 36Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging & Deployment
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One on – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 37Public
Why SAP Business One on SAP HANA
SAP HANA technology relies on main memory for computer data storage, providing fasterand more predictable performance than database management systems that employ adisk storage mechanism.The analytical features powered by SAP HANA:
Perform enterprise searches based on the SAP HANA database.Access dashboards based on the SAP HANA database.Generate pre-defined and customized Crystal reports based on SAP HANA.Perform Microsoft Excel interactive analysis.
Import and deploy customized SAP HANA models.
© 2013 SAP AG. All rights reserved. 38Public
What is SAP Business One Analytics 1.1,powered by HANA
© 2013 SAP AG. All rights reserved. 39Public
SAP Business One Analytics 1.1, powered by HANA:Architecture
© 2013 SAP AG. All rights reserved. 40Public
What is SAP Business One 9.0, version for HANA
© 2013 SAP AG. All rights reserved. 41Public
SAP Business One 9.0, version for HANA: Architecture
© 2013 SAP AG. All rights reserved. 42Public
Topic 3: User Interface API
Topic 4: SAP Business One Development Tools
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: Add-Ons Packaging & Deployment
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 9: SAP Business One on Cloud
Topic 10: SAP Business One – How to
© 2013 SAP AG. All rights reserved. 43Public
SAP Business One Mobile
© 2013 SAP AG. All rights reserved. 44Public
Topic 3: User Interface API
Topic 4: Add-Ons Packaging & Deployment
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: SAP Business One Development Tools
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 45Public
SAP Business One Cloud
© 2013 SAP AG. All rights reserved. 46Public
Topic 3: User Interface API
Topic 4: Add-Ons Packaging & Deployment
Topic 1: Introducing SAP Business One SDK
Topic 2: Data Interface API
Topic 5: SAP Business One Development Tools
Topic 6: SAP Business One Integration Framework
Topic 7: SAP Business One on SAP HANA
Introducing SAP Business One SDK
Topic 8: SAP Business One on Mobile
Topic 10: SAP Business One – How to
Topic 9: SAP Business One on Cloud
© 2013 SAP AG. All rights reserved. 47Public
Partner support process
Partner needs help inusing the feature
Support sends sampleand documentation;
Eventually a requestmay be considered
„consulting“ and thusmight be billable
There is a bug inthe feature
BUG is transfered todevelopement
for fix
The feature doesn‘t exist inthe version the partner uses
If the feature doesn‘t alreadyexist in the future version,
Start aDRQ process
Use SAP Service Marketplace alias “sbosupport”
Partner opens a Customer message
The Global Support Center (GSC) team gets the message and answers the partner.If needed, the message is escalated to Development support team.There are 3 Possibilities:
1 2 3
© 2013 SAP AG. All rights reserved. 48Public
DRQ – Development Request Process
Partner that needs a feature that the API doesn‘t supply has to open a DRQmessage
DRQ - Development request for the continuous improvement of SAP Business OneAny request for changes or improvements in the system from it’s current behaviorDevelopment requests should be handled through the DRQ process
ProcessOpen message for component SBO-DRQ
The Local PM will receive the DRQ messages and handle the versions content
© 2013 SAP AG. All rights reserved. 49Public
Naming Conventions – Motivation
Partner 1
DoSomething.dll
Partner 2
DoSomething.dll
Customer 1
DoSomething.dll
© 2013 SAP AG. All rights reserved. 50Public
Naming Conventions – Solution
Partner 1
XX_DoSomething.dll
Partner 2
YY_DoSomething.dll
Customer 1
XX_DoSomething.dll
YY_DoSomething.dll
Customer 2
XX_DoSomething.dll
YY_DoSomething.dll
© 2013 SAP AG. All rights reserved. 51Public
SAP Business One SDK - More Information
Visit us at:http://www.sap.com/smbhttp://service.sap.com/smb
The most important source of information for developers:The SAP Community Network (aka SAP Developer Network):http://www.sdn.sap.com
© 2013 SAP AG. All rights reserved. 52Public
What you can find on SDN: People like you...
© 2013 SAP AG. All rights reserved. 53Public
What you can find on SDN: Technical information...
© 2013 SAP AG. All rights reserved. 54Public
What you can find on SDN: Development tools
© 2013 SAP AG. All rights reserved. 55Public
The SAP Service Marketplace
http://service.sap.com
To access, the SAP Service Marketplace you will need a login or “S-Number” (Somebodywithin your organization will be able to create S-Numbers if you don’t have one yet.)
An “alias” is a URL-suffix that gives you access to a particular page on the SAP ServiceMarketplace.
Example: “smb” alias is: http://service.sap.com/smb
Useful siteshttp://service.sap.com/noteshttp://service.sap.com/knowledgebasehttp://service.sap.com/namespaceshttp://service.sap.com/smb
To contact the community or use its resources go to:https://www.sdn.sap.com/irj/sdn/businessone
© 2013 SAP AG. All rights reserved. 56Public
a. Market Place – How to open a customer message?
www.service.sap.com/smb/sbo/support
© 2013 SAP AG. All rights reserved. 57Public
b. Market Place - Searching for notes
To search for a note, use SAP Service Marketplace alias “notes”
(http://service.sap.com/notes)
Select “Restrict by Software Components”, then enter your selection on therestrictions options, then after pressing Select choose the sofware componentyou are looking for a note on it:
SBO-DI-APISBO-UI-APISBO-JAVACOSBO-DTWSBO-PAINTR… etc.
Or use “SBO*” for all notes related to SAP Business One
© 2013 SAP AG. All rights reserved. 58Public
c. Market Place – How to Download patches?
© 2013 SAP AG. All rights reserved. 59Public
d. Market Place - How to Order License File?
License from SAP can be ordered from the SAP Service Marketplacehttp://service.sap.com/licensekeys
© 2013 SAP AG. All rights reserved. 60Public
e. Market Place - Self Learning site
“Education” site in Channel Partner Portal http://channel.sap.com
© 2013 SAP AG. All rights reserved. 61Public
SAP Developer Network - Developer Area & Forum
Join the community at: http://sdn.sap.com
© 2013 SAP AG. All rights reserved. 62Public
Useful Links
SAP Business One 9.0 Central Informationhttp://sappartneredge.com/B1/90
B1 Innovationshttps://service.sap.com/smb/sbo/innovations
SAP Business One Integration Capabilitieshttp://sappartneredge.com/B1/b1i
SDN B1if key topic pagehttp://scn.sap.com/community/business-one-integration-technology
SAP Business One on SAP HANA Productshttp://sappartneredge.com/B1/hana
© 2013 SAP AG. All rights reserved. 63Public
Q & A