Is there an ABAP Workbench in SAP Business One 2007? - abap

Here comes a simple question but hard to find its answer.
Is there an ABAP Workbench (also known by the transaction code SE80 in SAP R/3) in SAP Business One 2007?
The workbench should be open and not just for SAP use. I would like to know if it's possible to create custom ABAP programs in this SAP solution.

It's not hard to find the answer at all if you bother searching. There is no ABAP Workbench in B1 because B1 is not built on top of the NetWeaver/ABAP stack.

SAP Business One is not built on NetWeaver platform, so there will be no way you can have an ABAP application server. Also, for your information, SBO is not a R/3 Structure .About the technical part in SBO, it has a SQL database and you can only write SQL queries to retrieve data and generate reports. There is a query generator to help you write queries. To conclude, data processing in SBO is very limited comparing to ABAP.

You need to use either .NET/Java for customising or developing screens in SAP Business One.
It doesn't have any relation with ABAP and there are no transaction codes in SAP Business One.

About the technical part in SBO, it has a SQL database and you can only write SQL queries to retrieve data and generate reports. There is a query generator to help you write queries. To conclude, data processing in SBO is very limited comparing to ABAP.
But once you have the data you can do whatever you want with it, for e.g the now native Crystal Report rutime in SBO...Also it has a a pretty rich and mature COM-based SDK for putting data in as well, the DI API (as well as the DI Server which is XML-based). I create solutions for SBO with these all the time in my job...

Related

Alter data source

Power BI can connect to various data sources and run SELECT queries.
Is it possible to run also other queries (INSERT INTO, UPDATE...)?
Now I need it for a postgresql database, but could use also for others in the future.
No, you can't run directly INSERT/UPDATE queries from Power BI. This isn't the idea of the tool. If you find you need it, then probably there is a major flaw in your design, or you are not using the right tool for this job. But there are few ways to workaround this (again, I'm not saying that you SHOULD do it). Usually this is done in a combination with custom written Power App, embedded in your report in Power Apps visual. The idea is that the app will write to the database, and will refresh your report after that (if needed).
You can start here and I will recommend you to look at this in-depth session - Writing back data to PowerBI from your reports.
The answer is No if I am very straight forward. PBI is a analysis platform for data. There are probably some advance way to do that but, this is not logical or good idea to think about manipulating data from report or from any BI tools. You can search answers from different blog where the same questions asked. For more details, you can check below links-
help link 1
help link 2

Best way to save SQL versions while working on Tableau?

I am working using Tableau and have to write down multiple different SQL each time, while making new data sources.
I have to save all changes on SQL for every data source.
Currently I would paste the SQL on notepad and save them on separate folder in my computer, along with description of the changes.
Is there any better way to do this?
Assuming you have permission to create objects in the database, begin by creating database views, As #Nick.McDermaid commented.
Then, instead of using Custom SQL data source in Tableau, just connect to the View as if it were a table.
If you need to track the changes to these SQL views of your data, you will need to learn how to use source control for the .sql files that can be scripted from within SQL Server Management Studio:
Your company or school may have a preferred source control system already in use, in which case you should use that. If they don't, or if you are learning at home, then Git and Subversion are popular open source choices.
There are many courses available on learning platforms like Coursera that will teach you how to learn how to use those systems.
I had similar problem as you.
We ended up writing the queries in SQL Editor SQL Work bench (https://www.sql-workbench.eu/), then managed the code history and performed code peer-review (logic, error check, etc) in team shared space (like confluence).
The reasons we did that is
1) SQL queries are much easy to write on Work Bench
2) Code review is a must! You will find through implementing a review process more mistakes than you could ever think about
3) The shared space is just really convenient as it is accessible by everyone, and all errors are documented. After sometimes you get a lot of visible knowledge accumulated.
I also totally agree with Nick as this is one step to a reporting solution. But developing a whole reporting server is heavy, costly and takes time. Unless management are really convinced of the importance of developing a reporting solution, you may have to get a workaround with queries and Tableau (at least that was the case for us)
A little late to the party, but I would suggest you simply version the tableau workbook. The contents of the workbook are XML, so perfect for versioning using file based tools (Dropbox, One Drive, etc.) or source control (git, etc.). The workbooks themselves are usually quite small, so just make sure to keep the extract data separate if you use it.

Where each of them used?

When I am studying about SAP HANA I come across various SQL terms
Open SQL
Native SQL
SQL script
Can somebody explain which one we use in HANA studio while creating CDS view or scripted calculation view and which SQL we use in our normal ECC program
I am little confused.
We have to start from a bit further
ABAP
Most SAP applications are written in their own programming language, ABAP (some is in java)
Open SQL
When you want to talk to your database in your ABAP program, you have to write SQL. As R3 from SAP works with most relational databases, a common set of features had to be used, with some SAP specific extensions which are translated by the ABAP kernel to be understood by the actual DB. This portable language is called Open SQL.
HAVING and UNION were not allowed for example before 2017, but easy insturctions are added to define where the result is stored.
Native SQL
If you develop for only one database, you can use its native instructions. These can bring additional features or speed, at the cost of transportability.
HANA
For decades SAP did not sell databases, you had to buy one for your ERP system from a third party. A few yeards back SAP started to create its own DB, called HANA.
When you call it from ABAP, you can use Open SQL. If you create a CDS view in HANA Studio, you write Native SQL.
SQLscript
If you want to write stored procedures, you have to use SQLscript, also developed by SAP. With it you have features completely foreign to SQL like loops.
It is just like Transact-SQL for SQL Server, PL/SQL for Oracle, etc - as Eralper wrote

How can I confirm which RDBMS I'm using (in any form of SQL)?

I'm writing instructions for people who are completely new to SQL and who are probably using an interface to talk to the database. The interface might be a SQL editor provided by their workplace, or it might be software (e.g. a BI reporting system) that allows them to write a query rather than use the gui. These are business people, not IT.
The first thing I want them to do is identify which RDBMS they have, so we can establish which type of SQL they need to learn. I.e. is it Oracle, Microsoft, MySQL, PostGre et al. I feel silly asking this: but is there an SQL command that works across all RDBMS to tell them this? The closest I've got is select version(), but this only gives the version number, not the RDBMS name. And anyway it isn't consistently implemented.
If the ANSI information schema is available:
SELECT * FROM information_schema.sql_implementation_info;
In particular the "DBMS NAME" and "DBMS VERSION" fields.
Usually, if they are using some sort of BI system, you can simply check the configuration of the software where the connection parameters are set

What is MDX and what is its use in SAP BPC

I would like to know more about "MDX" (Multidimensional Expressions).
What is it?
What is it used for?
Why would you use it?
Is it better than SQL?
What is its use in SAP BPS (I haven't seen BPC, just heard that MDX is in it and want to know more)?
MDX is the query language developed by Microsoft for use with their OLAP tools. Since its creation, others (The open source project Mondrian, and Hyperion) have tried to create versions of it for use in their products.
OLAP data tends to look like a star-schema with a central fact table surrounded by multiple dimensions. MDX is designed to allow you to query these structures and create cross-tab type results.
While the language looks like SQL it doesn't behave like it and if you are an SQL programmer, the mental leap can be tough.
As to whether it is better than SQL, it serves a highly specialized purpose, i.e. analyzing data in a specific format. So if you want to query a star schema, it is better, otherwise, SQL will probably do the job.
MDX means Multi Dimensional eXpressions or some such. It is relevant to OLAP cubes and not to regular relational databases such as Oracle or SQL Server (although some SQL Server editions come with Analysis Services which is OLAP). The multidimensional world is about data warehousing and efficient reporting, not about doing normal transactional processing so you wouldn't use it for an order entry system, but you might move that data into a datamart to run reports against to see sales trends. That should be enough to get you started I hope.
SQL is for 'traditional' databases (OLTP). Most people learn the basics fairly easily.
MDX is only for multi-dimensional databases (OLAP), and is harder to learn than SQL in my opinion. The trouble is they look very similar.
Many programmers never need MDX even if they have to query multi-dimensional databases, because most analysis software forces them to build reports with drag-drop interfaces.
If you don't have a requirement to work with a multi-dimensional database, then don't create one just for the fun of it.....it won't be...
There are 2 versions of SAP-BPC (Business Objects Planning and Consolidation)
SAP-BPC Netweaver
SAP-BPC Microsoft Analysis Services
The Microsoft analysis services version of the product allows you to use MDX or multi dimensional expressions to both query the multi-dimensional database (OLAP) and write calculation logic.
However, SAP-BPC does not require a knowledge of MDX to either be used or administered.
You can see product documentation and a demonstration.
Best of luck on your research,
Focused on SAP BPC:
What is it used for?
It's used when you want to apply some custom calculation/business logic over many records/intersections and after submitting raw data. Example, first send prices in one input schedule, then quantities in other one, as a third step run a calculation for sales amount based on prices and quantities for all products.
It's also used to execute the Business Rules, for that you run a predefined program (like CALC_ACCOUNT, CONSOLIDATION, etc)
Is it better than SQL?
In BPC, "SQL" logic scripts have better performance than MDX. However SQL for BPC purposes has not much to do with SQL used in other it's just how they call it.
You will get a good start by just searching for MDX in the search box up top.