Mastering SQL Queries for SAP Business One - Guang Hui Du - E-Book

Mastering SQL Queries for SAP Business One E-Book

Guang Hui Du

0,0
44,39 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

EPUB
MOBI

Seitenzahl: 380

Veröffentlichungsjahr: 2011

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Mastering SQL Queries for SAP Business One
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Instant Updates on New Packt Books
Preface
Business Intelligence (BI)
What this book covers
Section 1: SQL Query Basic
Section 2: SQL Query in Action
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. SQL Query Basic
1. SAP Business One Query Users and Query Basics
Who can benefit from using SQL Queries in SAP Business One?
Consultant
Developer
SAP Business One end user
Non-SAP Business One users
SQL query and related terms
RDBMS
Table
Field
SQL
T-SQL
Subsets of SQL
Query
Data dictionary
SAP Business One—Database tables reference
Naming convention of tables for SAP Business One
Three letter words
"O" tables
"A" tables
Document header tables
Document line tables
Important table examples
Table links—the key for the right query
Primary key
Foreign key
Example of table links within SAP Business One
Base tables versus target tables
Keeping it simple—The key to build a good query
Summary
2. Query Generator and Query Wizard
Query Generator
Query Generator overview
Left part of Query Generator form
Middle and right parts of Query Generator form
Executing a query from query generator form
Query wizard
Query Wizard overview
Step 1—Splash screen
Step 2—Select tables for the report
Step 3—Select fields and sort orders
Step 4—Conditions and relations
Step 5—Query wizard completion
What is the difference between Query generator and Query wizard?
Benefitting from built-in system queries
Summary
3. Query Manager and Query Statements
Query manager user interface
Display all existing queries
Creating and saving user queries
Deleting user queries
Managing query categories
Commonly used statements
SELECT—first statement to retrieve data
The scope of the value that can be retrieved
A single value
A group of values
Return a single database table column
Return a group of database table columns
Return complete database table columns
Used in a subquery
The numbers of columns to be included
Column name descriptions
Clauses can follow this statement
DISTINCT—duplicated records can be removed
TOP—number of lines returned by ranking
FROM—data resource can be assigned
A single table
A group of linked tables
Multiple tables separated by commas
JOIN—addition table or tables can be linked
Inner Join
Outer Join
Left Outer Join
Right Outer Join
Full Outer Join
Self-Join
WHERE—query conditions to be defined
BETWEEN—ranges to be defined from lower to higher end
IN/EXISTS—the value list that may satisfy the condition
LIKE—similar records can be found
GROUP BY—summarizing the data according to the list
HAVING—conditions to be defined in summary report
ORDER BY—report result can be by your preferred order
UNION/UNION ALL—to put two or more queries together
Some important functions to return values
ISNULL() predicate
SUM() function
MAX() function
MIN() function
COUNT() function
DATEDIFF() function
DATEADD() function
DATEPART() function
CAST()/CONVERT() function
CASE expressions
IF expressions
Summary
2. SQL Query in Action
4. Query Examples
Why three categories have been chosen
Defining variables for queries
Case 4-R1: Four variables in one query
Case 4-R2: Variables first or last
Date function—where the most problems emerge
Case 4-D1: Balance of production for a month
Case 4-D2: How to input a fixed date range
Orange arrow—an excellent tool for drill down
Case 4-O1: Make it simple
Case 4-O2: Sales order updating alert with drill down
Getting a subtotal from the query
Case 4-T1: By Union ALL
Case 2: By running total
Query for marketing documents
Case 4-M1: Overview of BP with selection of realized balance
Case 4-M2: Top five items sold
Case 4-M3: A filter by notes from OCRD
Case 4-M4: Adding sales employees' names to a query
Case 4-M5: A case for solution just from deduction
Case 4-M6: Goods Receipt PO within 10 days
Case 4-M7: Quantity purchased, received, and returned
Case 4-M8: Customized sales analysis report
Case 4-M9: Average sales per month
Case 4-M10: Credit Memo user check
Case 4-M11: Delivery date on sales order
Case 4-M12: Reducing from two to one line for the sales summary
Case 4-M13: Tax code summary
Case 4-M14: Sales by states
Case 4-M15: Many linked tables in one query
Case 4-M16: Sales Order with PO
Query for inventory transactions
Case 4-I1: Adding stock total to the query
Case 4-I2: Adding a total to the query bottom
Case 4-I3: Items not delivered within 15 days
Case 4-I4: Active item list
Case 4-I5: How to find stock taking details
Case 4-I6: Query on price updates
Case 4-I7: Planned quantity versus in stock
Case 4-I8: Adding to the production orders list from a sales order
Case 4-I9: Complete item list with or without transactions
Query for financial transactions
Case 4-F1: Top five customers
Case 4-F2: Incoming payment
Case 4-F3: Linking an incoming payment with an invoice
Case 4-F4: Listing both types of payment transactions
Case 4-F5: Incoming payment filtering
User query for alert
Case 4-A1: Creating a right alert without duplicated lines
Case 4-A2: Alert for invoice without base document
Case 4-A3: A/R Invoice past due alert
Case 4-A4: Special ship to alert for Sales Order
Case 4-A5: Open Sales Opportunity alert
User query alert guide
Miscellaneous query examples
Case 4-X1: Query related to service call
Case 4-X2: Concatenating two text columns
Summary
5. Securities and Approvals
How to handle securities for query usage
Giving only a few users the capability to build a query report
Creating queries under different categories
Query Groups: a tool to assign user permissions
How to use query for approval procedures
Creating approval stages
Creating approval templates
Originator
Documents
Stages
Terms
Selecting a query for the approval template
Examples of user queries for approval
Case 1—Approval for adding delivery document
Case 2—"On Account" outgoing payment approval
Case 3—Approval for invoice to special customer groups
Case 4—Approval for over booking sales order
Case 5—None cash outgoing payment approval
Summary
6. SQL Query for Formatted Search (FMS)
Formatted Search and User-Defined Values
How to work with User-Defined Values
Search in existing User-Defined Values according to the saved queries
Where do the $ values come from?
How to get the value you need from, and for, the FMS query
Can you run FMS queries directly?
What is the negative sign's function in FMS query?
Search in existing User-Defined Values only
A typical FMS query application: auto code creation
BP code auto generation
Item code auto generation
Special code auto generation
General FMS query examples
Case 1—Double quotes should be avoided
Case 2—Price value validation on line level
Case 3—Populating a UDF from OITM in a UDF on quotation
Case 4—Difference between two UDFs into another UDF
Case 5—Displaying warehouse name beside warehouse code
Case 6—Showing purchase order due date on sales order
Case 7—Auto populating the profit center code
Case 8—Calculation by three user-defined fields
Case 9—Open order reminder in new order
Case 10—Commitment checks for warehouse in stock
Case 11—Multiplying a field from OITM with a field on order line
Case 12—Multiplying two UDF values from two tables
Case 13—Last sales price for a customer
Case 14—Calling a UDF value in the BOM to Production Order
Case 15—Multiplying a UDF value with a system field value
Case 16—Eliminating the duplicate lines returned by FMS query
Case 17—Getting the sales rep code assigned to an activity form
Case 18—FMS query for User-Defined Table (UDT)
Summary
7. SQL Query for Reporting Tools
Query Print Layout Designer (QPLD) and its usage
Simple query report printing
Query Print Layout Designer
Working with a QPLD report
Creating a QPLD report
Editing a QPLD report
Working with Print Layout Designer for a QPLD report
Working with a property form when editing QPLD
Editing QPLD field content and the limitation in editing
Changing field type of QPLD
Saving a QPLD report
Printing a QPLD report
Deleting a QPLD report
Recreating the QPLD report
Direct query for Crystal Reports (Command)
Working with Standard Report Wizard
Creating a new database connection
Adding a Command to a report
Working with a Command
Selecting fields from a Command
Working with two optional forms—records selection and templates
Basic formatting for a Crystal Report
Summary
8. SQL Query for a Stored Procedure
Why Stored Procedure is included in this book
SBO_SP_TransactionNotification overview
How to work with SBO_SP_TransactionNotification
Some example queries for this SP
Case 1—Blocking an outgoing payment for a specific BP
Case 2—Restricting outgoing payments above 20,000
Case 3—Blocking goods receipt entry
Case 4—Blocking a sales quotation if no value in row level UDF
Case 5—Blocking invoice based on GL account and project
Case 6—Blocking GRPO if quantity is more than PO quantity
Case 7—Blocking, adding, or updating an order for duplicated BP ref #
Case 8—Blocking sales documents based on dates
Case 9—Validation service type A/R credit memo
Case 10—Blocking goods issue for none super user
Case 11—Blocking Goods Receipt PO if no based PO
Summary
9. More Complicated SQL Query Topics
The Case expression usage
Case 9-C1—Displaying Transtype as code instead of a number
Case 9-C2—Combining two queries with a Case expression
Case 9-C3—Showing discount percentage for each interval
Case 9-C4—Item wise subtotal in a goods receipt
Case 9-C5—Updating UDF with different dates
Working with a subquery
Case 9-S1—Item groups not in use
Case 9-S2—YTD sales for two years
Case 9-S3—Checking only the similar records
Case 9-S4—Showing the last A/P invoice document date for items
Using PIVOT to simplify a cross tab style queries
Case 9-P1—Monthly sales by geography
Case 9-P2—Complete list of all items with/without sales
Database query for Excel
Creating a new data source
New data source added within Excel
New data source added from the control panel
Query wizard for database query in Excel
Microsoft Query window
Avoiding pitfalls while building queries
Creating a query before knowing the data table structure
Complicating the logic instead of simplifying it
Trying to do too many things in one query
Relying on others' help only
Summary
A. Appendix
Original transaction list by code
Original transaction list by name
Object codes and names
Index

Mastering SQL Queries for SAP Business One

Mastering SQL Queries for SAP Business One

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]>)

Credits

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

About the Author

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.

Acknowledgement

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.

About the Reviewers

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.

www.PacktPub.com

Support files, eBooks, discount offers and more

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. 

Why Subscribe?

Fully searchable across every book published by PacktCopy and paste, print and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

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.

Instant Updates on New Packt Books

Get notified! Find out when new books are published by following @PacktEnterprise on Twitter, or the Packt Enterprise Facebook page.

Preface

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.

Business Intelligence (BI)

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.

Tip

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.

What this book covers

There are two sections present in this book.

Section 1: SQL Query Basic

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.

Section 2: SQL Query in Action

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

What you need for this book

SAP Business One installation or trial systemAn eagerness to get more pertinent information from your databaseA table reference from help file REFDB.CHM in SAP Business One SDK Help Center

Who this book is for

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.

Reader feedback

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.

Customer support

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.

Downloading the example code

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.

Errata

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

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.

Questions

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.

Part 1. SQL Query Basic

SAP Business One Query Users and Query Basics

Query Generator and Query Wizard

Query Manager

Chapter 1. SAP Business One Query Users and Query Basics

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.

Who can benefit from using SQL Queries in SAP Business One?

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:

Do you need to check specific sales results over certain time periods, for certain areas or certain customers?Do you want to know who the top vendors from certain locations for certain materials are?Do you have dynamic updated version of your sales force performance in real time?Do you often check if approval procedures are exactly matching your expectations?Have you tried to start building your SQL query but could not get it done properly?Have you experienced writing SQL query but the results are not always correct or up to your expectations?

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.

Consultant

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.

Developer

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.

SAP Business One end user

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.

Non-SAP Business One users

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.

SQL query and related terms

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

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

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 "@".

Field

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

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.

T-SQL

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.

Subsets of SQL

There are three main subsets of the SQL language:

Data Control Language (DCL)Data Definition Language (DDL)Data Manipulation Language (DML)

Each set of the SQL language has a special purpose:

DCL is used to control access to data in a database such as to grant or revoke specified users' rights to perform specified tasks.DDL is used to define data structures such as to create, alter, or drop tables.DML is used to retrieve and manipulate data in the table such as to insert, delete, and update data. Select, however, becomes a special statement belonging to this subset even though it is a read-only command that will not manipulate data at all.

Query

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.

Note

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.

Data dictionary

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.

SAP Business One—Database tables reference

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.

Naming convention of tables for SAP Business One

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.

Three letter words

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:

ADM: AdministrationATC: AttachmentsCPR: Contact PersonsCRD: Business PartnersDLN: Delivery NotesHEM: EmployeesINV: Sales InvoicesITM: ItemsITT: Product Trees (Bill of Materials)OPR: Sales OpportunitiesPCH: Purchase InvoicesPDN: Goods Receipt POPOR: Purchase OrdersQUT: Sales QuotationsRDR: Sales OrdersRIN: Sales Credit NotesRPC: Purchase Credit NotesSLP: Sales EmployeesUSR: UsersWOR: Production OrdersWTR: Stock Transfers

"O" tables

All tables starting with "O" refer to master tables. O here represents Object. For example:

OITM: Items MasterOCRD: Business Partners MasterOSLP: Sales Employee

"A" tables

Most tables starting with "A" may mean historical log tables. A here represents Archive. For example:

AITM: Items—HistoryACRD: Business Partners—HistoryAUSR: Archive Users—History

Document header tables

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:

OINV: A/R Invoice HeaderOPCH: A/P Invoice HeaderOIGN: Goods Receipt Header

Document line tables

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.

INV1: A/R Invoice RowPCH1: A/P Invoice RowIGN1: Goods Receipt RowINV2: A/R Invoice—Row Expense

Important table examples

Some specific tables very important for query building are listed here:

OJDT-Journal Entry: This table includes all financial journal entries no matter whether they are automatically posted or manually posted.OINM-Warehouse Journal: This table includes all inventory-related transactions. It is a single point to check everything in relation to your inventory (or stock). It becomes a view in the new version. This view must be queried very carefully.ADOC-Document History: This table includes all document history. However, it is wrongly named in the documentation, "Invoice History" table in the help file.

Table links—the key for the right query

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.

Primary key

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.

Foreign key

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.

Example of table links within SAP Business One

To be clearer about the link, here are a few table link examples:

OITM-Items table and ITM1-Items Prices table:

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 versus target tables

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.