44,39 €
SAP Business One is an integrated Enterprise Resource Planning (ERP) software which offers an ideal solution for growing small to midsized businesses. For such companies, retrieving the most relevant information from their business data can be key to standing out from the competition. SAP Business One is a rapidly growing software package and this book is timely in giving those businesses an advantage in the area of Business Intelligence. Having SQL query skills in- house is the most important and cost-effective move you can make in this growing field.This practical guide will provide you with the skills to gain more specific business information from SAP Business One by using SQL queries. It will provide you with solutions for solving complicated report related problems, covering basic tools like the Query Generator and Query Wizard. More advanced content like using queries with Crystal Reports will also be delved into.SQL query is one of the advanced tools available in SAP Business One which is easily learned and quickly utilized. By referring back to and applying the many examples in this book, you will be able to create and run correct, and therefore effective, SQL queries to help your business.The book begins by teaching a clear definition of the SQL query, and covers the data dictionary and table links. Coverage will then jump to a higher level of complex SQL queries, discussing features like FMS. Along the way more advanced SQL Query topics will be covered, such as extending the scope of basic SQL queries for more complicated cases. You will ultimately gain in depth query knowledge to bring more Business Intelligence into SAP Business One.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 380
Veröffentlichungsjahr: 2011
Copyright © 2011 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: May 2011
Production Reference: 2190511
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-849682-36-7
www.packtpub.com
Cover Image by David Guettirrez (<[email protected]>)
Author
Gordon Du
Reviewers
Zal Parchem
Muddassar Imran
Wolfgang Niefert
Acquisition Editor
Stephanie Moss
Development Editor
Susmita Panda
Technical Editor
Pallavi Kachare
Copy Editor
Laxmi Subramanian
Project Coordinator
Vishal Bodwani
Proofreader
Aaron Nash
Indexer
Monica Ajmera
Graphics
Geetanjali Sawant
Production Coordinator
Arvindkumar Gupta
Cover Work
Arvindkumar Gupta
Gordon Du studied System Engineering and Computer Science at the Nankai University in Tianjin, China. He has over 28 years of experience in diversified information technology fields. His experience with SQL goes back to 1987.
Gordon was the first person in China to successfully implement an international software package for a Chinese investment-only company in 1995.
Gordon has been the top contributor on the SAP Business One forum since August 2008. He has been awarded 45,000 points as of January 16, 2011. This is the highest lifetime points recorded by SAP Community Network for a non-SAP employee since 2004. Over 25 percent of Gordon's points are related to solving SQL query questions and problems posted by other forum members. Here are some links demonstrating this.
His SCN profile link for reference:
http://forums.sdn.sap.com/profile.jspa?userID=4130357
His first blog on SCN:
http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/17099
The congratulations and thanks thread to his 35,000 points from forum users:
http://forums.sdn.sap.com/thread.jspa?threadID=1718298&tstart=0
Gordon has worked and trained extensively in China, Singapore, USA, and Canada. He also holds the following certificates: a Microsoft Certified System Administrator, Microsoft Certified System Engineer, and a Microsoft Certified Database Administrator.
Gordon is planning to write a series of books related to SAP Business One in response to the demand from many SAP Business One users and consultants.
Special thanks goes to my wife, Lisa, whose love and encouragement helped me to complete this book. Thank you, my son Mason and his fiancée, Ava, for your support and reviews. Thank you to Zal Parchem, who not only inspired me from the beginning, but also provided a professional technical review. Thanks to the staff at Packt Publishing and all my friends who supported me in writing this book. Among all my friends, MS Christine Malone has given me the greatest support by her excellent final proof reading and editing.
Last but not least, thank you to everyone who posted on the SAP Business One forum providing me the opportunity to solve so many SQL query problems.
Zal Parchem has been in the business world working in the Information Systems area for over 31 years. For the past 10 years, he has been working as an Independent Consultant, concentrating on helping small to midsize companies install and customize their ERP (Enterprise Resource Planning) systems. He has restricted his work efforts to the SAP Business One (SAP B1) ERP system and is actively involved in many SAP Forums, SAP Blogging areas, and the Wiki sections for SAP B1. He works with SAP, SAP B1 Partners, and Customers around the world. For the past three years, Zal Parchem has been using SQL extensively in SAP B1 for reporting and customization purposes in SAP B1.
He has been employed in a variety of industries, with company sizes ranging from six personnel to over 250,000 employees. Having retired from The Home Depot in 2001, he started his career as an Independent Consultant.
He has also written a "guerrilla handbook" titled Project Methodology and Documentation for SAP Business One Implementations. He actively reviews all SAP B1 books available in print; his reviews can be seen online at Amazon.
I would like to thank Gordon Du for this opportunity to do the technical aspect of his work in SQL. Gordon is the most active participant in the SAP B1 forums where he helps dozens of people daily. I am honored to know Gordon as a Fellow Forum Friend (FFF) and to have been asked to work with PacktPub on this publication, which is certainly going to extend Gordon's ability to help even more individuals to be productive and effective in the use of SQL inside SAP Business One.
Muddassar Imran is a passionate Web Developer. He is the Web Developer at Page and Moy, UK. He is a First Class Graduate from DMU (De Montfort University, Leicester UK) and was awarded the best final year project award from BCS (British Computer Society). Moreover, he is a Professional Member of BCS. He is enthusiastic about modern expert system and database administration. He has aesthetic skills in writing complex SQL Queries, ASP.NET, VB.NET and AJAX.
Imran was born in Gujranwala, a small city famous for its peaceful atmosphere. He attended Suffa Secondary School at 10th Grade and achieved the highest scores in his city. He got admission at the Government College University, Lahore for further education in Computer Science. He went to Malaysia for higher education and finished a Higher Diploma in Computing Studies from KDU College Malaysia. Then he went back to Pakistan and worked with Wateen Telecom Pvt. Ltd. and Telenor for two years, primarily developing web-based applications and working on automation projects.
Muddassar then traveled to the United Kingdom to attend the De Montfort University. In 2010, he received his Bachelors in Computer Science. While studying at DMU, he was working with Venus Packaging Solutions Ltd. As a VB.NET Developer until March 2011 and then joined Page & Moy in April 2011.
Further, Imran writes on his blog (www.blog.mudasar.co.uk) and his personal website is www.mudasar.com. For relaxation, he likes to workout at the gym and travel.
After passing B-Tech in Computer Science and Engineering Wolfgang Niefert joined ITSL Technologies as a .Net developer in June 2007. He worked on ERSys (ERP Systems) and internal CRM product of ITSL Technologies. He then moved to SAP as TechnoFunctional consultant, and also provided training on TB1000, TB1100, TB1200 books. After that he joined Sapphire systems in June 2010 as SAP SDK Support consultant.
He is an active contributor to the SAP sdn community. He got gold contribution status in the year 2010 in sdn community.
I would like to thank my family and my team for helping and supporting me.
You might want to visit www.PacktPub.com for support files and downloads related to your book.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.
Get notified! Find out when new books are published by following @PacktEnterprise on Twitter, or the Packt Enterprise Facebook page.
This book has been created to serve the needs of many SAP Business One users. If you have a chance to browse the SAP business One website between mid-2008 and mid-2011, you will find that my name is always on the top contributor's list. I have solved many SQL Query related problems faced by many users, and some such users have asked me to write a blog or wiki page on the topic. However, the subject is too big to fit into any of those information holders. That is why this book came into being.
This is a buzz word nowadays. Usually, only big companies use this term very often. However, from the strict definition from Wikipedia, we can understand the following:
BI refers to computer-based techniques used in spotting, digging-out, and analyzing business data, such as sales revenue by products and/or departments or associated costs and incomes. BI technologies provide historical, current, and predictive views of business operations. BI often aims to support better business decision-making.
That means BI can be used in any type of solution as long as the technology allows the supporting business decision making process. In this book, you will learn why BI could be a perfect fit for SAP Business One. Hence, it will benefit small-to-midsized businesses. SQL Query is one of the most powerful tools in SAP Business One that is related to BI.
SAP Business One is usually abbreviated as B1 by many users. It could be easily confused with BI. In this book, B1 is not used. Full names of SAP Business One can be found throughout.
There are two sections present in this book.
The first section is mainly for beginners who have limited knowledge of SQL Query but want to use this tool as soon as possible. You will learn basic tools to start writing your query quickly. Upon completion, you could jump to the next section to further your skills to complete more. Section 1, SQL Query Basic comprises three chapters:
Chapter 1, SAP Business One Query Users and Query Basics, discusses the basic concepts and knowledge needed to use SQL query in SAP Business One. You will learn a clear definition of SQL query, the data dictionary, and table links.
Chapter 2, Query Generator and Query Wizard, introduces two basic tools for SAP Business One. Query Generator and Query Wizard will teach you to create SQL query in SAP Business One quickly to get the job done.
Chapter 3, Query Manager, illustrates the most important business intelligence tool for SAP Business One. Query Manager will help you write query freely. This chapter covers the most frequently used query statements one by one. All statements are explained with concrete examples.
Through these three chapters, you will gain the basic knowledge to jump to the next section and have to use SQL query in more areas. Even experienced readers may find some value in going through this section.
The second part of the book will jump to a higher level of complex SQL queries. You will learn different skills for different categories. This section is more closely related to Business Intelligence more closely because it can retrieve more business required data at the right time by the right people. Section 2, SQL Query in Action comprises six chapters:
Chapter 4, Query Examples, shows the most widely used query examples. You will learn more query features first. By showing query examples from three primary usage categories, you will be able to build the queries to meet your specific need. The alert query examples are discussed especially for those important on-demand situation.
Chapter 5, Securities and Approval, describes the security for query by SAP Business One and also the query associated with approval processes. You will learn how to handle query security by utilizing query groups. You will also learn user query for approval procedures with query examples.
Chapter 6, SQL Query for Formatted Search (FMS), emphasizes one of the most frequently used and error-prone processes to create SQL Query for Formatted Search (FMS). You will learn everything needed in FMS query and the associated Auto Refresh functionality.
Chapter 7, SQL Query for Other Reporting Tools, focuses on SQL query usage in some other reporting tools. You will learn Query Print Layout Designer as well as the SQL query usage within Crystal Reports. The latter focuses on Command in the database expert selection of Crystal Reports.
Chapter 8, SQL Query for Stored Procedure (SP), is about one of the very special cases for query usage. You will learn query that is used in a special Stored Procedure: SBO_SP_TransactionNotification. By giving a clear overview of the SP, the last section shows some kernel SQL query examples for this SP.
Chapter 9, More Complicated SQL Query Topics, extends the scope of basic SQL query to more complicated cases. You will get in depth query knowledge to bring more Business Intelligence into SAP Business One. At the end of the book, you will get some good advices about query writing.
Through these six chapters, you will gain more knowledge regarding SQL query for SAP Business One. If you have specific questions in mind, you may jump to the chapter that most attracts you and go from there.
Each chapter contains specific query examples. For ease of reference in Chapters 4 and 9, each example refers to the chapter number, along with a letter code denoting the subject of the query. Please refer to the following key:
Letter code
Query subject
R
Variables
D
Data function
O
Orange arrow
T
Subtotal
M
Marketing documents
I
Inventory transactions
F
Financial transactions
A
Alerts
X
Miscellaneous
C
Case expression usage
S
Subquery
P
PIVOT
This book is written for every kind of SAP Business One user who needs to obtain information, which is not available in the standard reports. SQL query is also the tool to provide specific solutions and alternatives to SAP Business One authorizations and standard business Processes. The audience for this book includes Consultant, Programmer, Administrator, and many other end users. In fact, every SAP Business One customer could benefit from this book. To get the right information at the right time is one of the most important tasks to bring SAP Business One's power to small and midsize businesses. This is the main goal of the book.
If you have started to use SQL Query already, the book will help you to use this tool more efficiently. If you are a beginner with very limited SQL knowledge, you will find the book easy to follow to solve your SQL query problems quickly. You may also find the book helpful if you are not a SAP Business One user, but have interest in learning SQL query skills. However, to run example queries in the book, SAP Business One installation or trial system is required. There are many examples in the book that are "Ready to Go". They cover many areas that may be similar to what you need.
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail <[email protected]>.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the erratasubmissionform link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors, and our ability to bring you valuable content.
You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.
SAP Business One Query Users and Query Basics
Query Generator and Query Wizard
Query Manager
This chapter will begin by identifying the target audience of this book, and will then go on to discuss the basic concepts and knowledge needed to use SQL query in SAP Business One. In the first section, you will be given a clear definition of the specific scope of the SQL and Query used in this book. The following section discusses the Data Dictionary and table links such as base tables versus target tables. The last section gives you a key concept to remember for building a good query by keeping it simple.
It may not be easy to deduce the ideal reader of this book. In fact, there are many different groups of SAP Business One users who may need this tool.
To my knowledge, there is no standard organization chart for Small and Midsized enterprises. Most of them are different. You may often find one person that handles more than one role. In this sense all users, especially end users, may need this book as long as they can use SQL query with the basic knowledge required.
You may check the following list to see if anything applies to you:
If the answer to any of the questions mentioned earlier is "yes", then you can certainly benefit from reading this book. It will answer each and every question mentioned earlier and give you the power to solve complicated problems.
If you are an SAP Business One consultant, you have probably mastered SQL query already. However, if that is not the case, this book would be a great help to extend your consulting power. It will probably become a mandatory skill in the future that any SAP Business One consultant should be able to use SQL query.
If you are an SAP Business One add-on developer, these skills will be good additions to your capabilities. You may find this book useful even in some other development work like coding or programming. Very often you need to embed SQL query to your codes to complete your Software Development Kit (SDK) project.
If you are simply a normal SAP Business One end user, you may need this book more. This is because SQL query usage is best applied for the companies who have SAP Business One live data. Only you as the end users know better than anyone else what you are looking for to make Business Intelligence a daily routine job. It is very important for you to have an ability to create a query report so that you can map your requirement by query in a timely manner.
To the other readers who are not SAP Business One users, you could still get some hints and tips from this book because the working and the problematic queries are both shown. Even without an SAP Business One user interface, you may still gain some useful concepts. In one query example of this book, I will show you that even without the actual data from my database to test the query due to localization limitation, the correct answer to the questioner can still be deduced.
No matter what your background is, you will find this book useful whenever you need to get certain data quickly and accurately.
Before going into the details of SQL query, I would like to briefly introduce some basic database concepts because SQL is a database language for managing data in RelationalDatabaseManagementSystems (RDBMS).
RDBMS is a Database Management System that is based on the relation model. Relational here is a key word for RDBMS. You will find that data is stored in the form of Tables and the relationship among the data is also stored in the form of tables for RDBMS.
Table is a key component within a database. One table or a group of tables represent one kind of data. For example, table OSLP within SAP Business One holds all Sales Employee Data. Tables are two-dimensional data storage place holders. You need to be familiar with their usage and their relationships with each other. If you are familiar with Microsoft Excel, the worksheet in Excel is a kind of two-dimensional table.
Table is also one of the most often used concepts in the book. Relationships between each table may be more important than tables themselves because without relation, nothing could be of any value. One important function within SAP Business One is allowing UserDefinedTable (UDT). All UDTs start with "@".
A field is the lowest unit holding data within a table. A table can have many fields. It is also called a column. Field and column are interchangeable. A table is comprised of records, and all records have the same structure with specific fields. One important concept in SAP Business One is User Defined Field (UDF). All UDFs start with U_.
SQL is often referred to as Structured Query Language. It is pronounced as S-Q-L or as the word "Sequel". There are many different revisions and extensions of SQL. The current revision is SQL: 2008, and the first major revision is SQL-92. Most of SQL extensions are built on top of SQL-92.
This book has very specific scope for the terms "SQL" and "query". Please read through this section carefully first if you find that the scope of the book is not right for your needs.
We have to limit the scope of the term SQL in this book. First of all, since SAP Business One is built on Microsoft SQL Server database, SQL here means Transact-SQL or T-SQL in brief. It is a Microsoft's/Sybase's extension of general meaning for SQL. Because we only use T-SQL throughout the book, SQL in this book will mean T-SQL unless it is clearly mentioned otherwise.
There are three main subsets of the SQL language:
Each set of the SQL language has a special purpose:
Query is the most common operation in SQL. It could refer to all three SQL subsets. In this book, however, you will only learn the read-only part of the query. No Add, Delete, or Update SQL statement in DML will be discussed in the book since it is prohibited from SAP support policy for SAP Business One database integrity. All DCL or DDL SQL will also not be included because we neither control access to data in a database, nor define data structure for a database. You will find SELECT leading query only within the book. Read-only query SELECT has powerful functionality for finding useful information to meet your specific needs.
You have to understand the risks of running any Add, Delete, or Update queries that could potentially alter system tables even if they are User Defined Fields. Only SELECT query is legitimate for SAP Business One system table.
In order to create working SQL queries, you not only need to know how to write it, but also need to have a clear view regarding the relationship between tables and where to find the information required. As you know, SAP Business One is built on Microsoft SQL Server. Data dictionary is a great tool for creating SQL queries. Before we start, a good Data Dictionary is essential for the database. Fortunately, there is a very good reference called SAP Business One Database Tables Reference readily available through SAP Business One SDK help Centre. You can find the details in the following section.
The database tables reference file named REFDB.CHM is the one we are looking for. SDK is usually installed on the same server as the SAP Business One database server. Normally, the file path is: X:\Program Files\SAP\SAP Business One SDK\Help. Here, "X" means the drive where your SAP Business One SDK is installed. The help file looks like this:
In this help file, we will find the same categories as the SAP Business One menu with all 11 modules. The tables related to each module are listed one by one. There are tree structures in the help file if the header tables have row tables. Each table provides a list of all the fields in the table along with their description, type, size, related tables, default value, and constraints.
To help you understand the previous mentioned data dictionary quickly, we will be going through the naming conventions for the table in SAP Business One.
Most tables for SAP Business One have four letters. The only exceptions are number-ending tables, if the numbers are greater than nine. Those tables will have five letters. To understand table names easily, there is a three letter abbreviation in SAP Business One. Some of the commonly used abbreviations are listed as follows:
All tables starting with "O" refer to master tables. O here represents Object. For example:
Most tables starting with "A" may mean historical log tables. A here represents Archive. For example:
These are special O tables with the exact same structure. They can be tables related to Sales or Purchase. These are called Marketing Documents. These also include most Inventory transaction tables. Some examples are:
All tables ending with a number refer to document line detail tables or subtables for the master table. Numbers here could refer to different properties of the header tables.
Some specific tables very important for query building are listed here:
Table links are fundamental for query building. You will see some different links in this section, but the most common links will be discussed in the next section because there are too many and they are used too often.
To understand table links, you need to know more about table structures.
Every table has a primary key. Some of the tables have foreign keys too. All those keys are used for the index. Docentry is a typical primary key to link OXXX with XXXn document tables. For example, Docentry is a common key field to link OPOR with POR1, POR2 to POR12.
A primary key can be one or more fields. For a simple table one key field would be good enough. For a complicated table, two or more fields for primary key are not rare.
A primary key has to be unique within the same table. This key will not allow NULL value—that is, an empty field or a field with no data.
A foreign key is usually used to link to some other table's primary key. This field will be updated whenever the other table record has changed.
Although, you could link any fields between tables, if the field is not NULL, you should try to use key link wherever possible in order to increase the database performance.
To be clearer about the link, here are a few table link examples:
These two tables are linked through ItemCode field. Both tables have the same field name to link. It is not one-to-one but one-to-many relationships. One Item Code in item master may have more than one item price associated.
OITT-Product Tree table and ITT1-Product Tree Child Items:These two tables are linked through Code field in OITT and Father field in ITT1. These tables are used for Bill of Materials.
OCRD-Business Partner table and OSLP-Sales Employee table:These two tables are linked through the same name field SlpCode. In the second table, SlpCode is the primary key for OSLP. On the other hand, it is a foreign key in the first table OCRD.
Base tables and target tables are special linked tables within SAP Business One. They are the most often used linked tables for SQL queries too.
You may find most of them related to "Sales-A/R" and "Purchase-A/P" documents or so-called "Marketing Documents".
Marketing documents may not have base tables or target tables. From the previous screenshot, you could clearly find that the Base Document and Target Document are available to this Sales Order. To get the Base Document, you may click on the "left arrow icon" or use the shortcut key Ctrl+N. To get the Target Document, you may click on the "right arrow icon" or use the shortcut key Ctrl+T. Only when the base table or target table is available to the current document, will you find the menu items and icons in active status. Otherwise, both icons and menu items are grayed out.
