How to check who deleted your BW object?

Most of the objects are not modifiable on the quality or production systems, but we have exceptions like Infopackages on BW. Yesterday I have to check who deleted an object from the system and fortunately, there is the log for this operation. I will show you how to check this. We have to go to the transaction SGL1 and search for RSSM Now you should be able to find the impostor 🙂 ...

January 10, 2021 · 1 min

Developing custom HANA adapter – quickstart

In this blog post, I will show you how you can fast start with developing custom HANA adapters in JAVA. S-User is required to download data provisioning agent: https://launchpad.support.sap.com/#/softwarecenter/template/products/%20_APP=00200682500000001943&_EVENT=DISPHIER&HEADER=Y&FUNCTIONBAR=N&EVENT=TREE&NE=NAVIGATE&ENR=73555000100200005999&V=MAINT&TA=ACTUAL&PAGE=SEARCH/HANA%20DP%20AGENT%202.0 I downloaded the Linux version, but windows should work too (I’m on Mac OS). I will proceed in SAP Hana Studio because Eclipse is missing some packages. If you don’t have SAP Hana Studio, please check: https://launchpad.support.sap.com/#/softwarecenter/template/products/%20_APP=00200682500000001943&_EVENT=DISPHIER&HEADER=Y&FUNCTIONBAR=N&EVENT=TREE&NE=NAVIGATE&ENR=73554900100200000585&V=MAINT&TA=ACTUAL&PAGE=SEARCH/SAP%20HANA%20STUDIO%202 Download missing plugins: https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api/2.3.0 https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl/2.3.3 and put into the plugins folder Unpack dpagent.tar.gz Run Hana Studio and go to the Help -> Install new Software. Then click on Add, Local and choose patch to UI folder from extracted DPAGENT.TGZ Install the plugin. Create a hello world adapter. Change perspective to Plug-in development. Click on File->New->Plugin Project. Check to Generate an activator flag. Right-click on the project, Debug As ->Debug Configurations Unselect Target Platform and click on Add Required Bundles Select org.eclipse.equinox.console and com.sap.hana.dpagent. Next click on Add Required Bundles Click on Apply, then Debug. When this is finished, everything should work perfectly. Now we can use dplogin to deploy plugin into your Hana system. If you are using HANA Express, dpagent can be activated on HXE instance from SYSTEM connection by: ALTER DATABASE HXE ADD 'dpserver' ...

October 18, 2020 · 2 min

Create new SAP client

In the SAP NetWeaver system, clients are used for many purposes. One of the business purposes can be handling many sub-companies on one system. From a development perspective, you can use a different client to protect your development or split the system by development and unit tests. Last time I also create a new client on my instance, to separate the client between data to my extractors and rest. How you can achieve this? Let’s start from edit a file on your hard drive. ...

June 3, 2019 · 2 min

How to extend decision​ tree in process chain?

Toady short tutorial about extending the decision tree in the process chain. As you probably know decision three blocks can be extended. In our example, we want to run a delta info package in everyday processing, and depending on our customizing perform a full load. Process chain example: Customization table: Basically, if the value of param ISIP in our customer table is set to DELTA, we want to execute the delta info package. If param will be set to the FULL, execute ISIP in full mode. ...

May 15, 2019 · 2 min

Działania na plikach

Potrafimy już tworzyć podstawowe struktury danych, wiemy też jak zalogować informację przy użyciu Balloga. Czas więc przejść do kolejnego kroku i dowiedzieć się w jaki sposób możemy przeprocesować dane zewnętrzne w ABAPie. Weźmy na przykład taki plik .csv, z którego chcielibyśmy przenieść do tabeli: employees Pobierz Procedura jest ogólnie będzie dość prosta – jedną tabelkę już przecież mamy. Nasz program będzie potrafił: wczytać dane od użytkownika, wprowadzić nowe wpisy od użytkownika do bazy , wprowadzić wpisy z serwera aplikacji do bazy. Fajnie byłoby aby program był tak dynamicznie napisany, że nie będziemy musieli go zmieniać nawet jeżeli będziemy chcieć „wpisać” dane do tabeli określonej w pierwszej kolumnie naszego pliku. Jeżeli otworzymy zbiór danych, zobaczymy że prezentują się one następująco: ...

May 6, 2019 · 8 min

SQL ON conditions in left join

Even if you use SQL for your daily work, it is possible that you might don’t know about two ways to set a condition: using “where” and .. put the condition into the join. The main issue is that they can return different results. Let me explain more. 1.Let’s assume that you have 2 tables. Content of first one 2.Content of the second one Now let’s get only this employees with salary bigger than 4 000 select * from employees emp left join salaries sal on emp.id = sal.employee where sal.salary > 4000 ...

April 14, 2019 · 3 min

Ballog czyli logowanie danych w ABAPie

Każdy język programowania posiada możliwość zapisania informacji technicznej, czy też zdarzenia które może być pomocna później na przykład podczas sprawdzenia poprawności działania napisanego programu. W wielu językach czynność ta sprowadza się często do napisania jednej linijki kodu, np: console.log("Oh, coś poszło nie tak!"); W ABAPie sytuacja jest trochę bardziej skomplikowana. Zacznijmy może od napisania prostego programu, który będzie opierać się na stworzonych przez nas wcześniej obiektach DDICowych. Żeby nauczyć się czegoś nowego polecam razem ze mną wykonać wszystko w eclipse, oczywiście równie dobrze każdy krok będzie działać też bezpośrednio w SAP GUI. ...

April 14, 2019 · 4 min

How Oracle store your data

All of you probably at least once in your life try to insert some records to a database table, but is anyone of you ever tried to understand how Oracle actually saves the entries in the database? Last time I was making a small experiment and I want to share my results with you. Step one, let’s build a small table and insert a few records: INSERT INTO tab1 VALUES('AAA',111); INSERT INTO tab1 VALUES('AAA',222); INSERT INTO tab1 VALUES('AAA',333); INSERT INTO tab1 VALUES('AAA',444); INSERT INTO tab1 VALUES('BBB',111); INSERT INTO tab1 VALUES('BBB',222); INSERT INTO tab1 VALUES('BBB',333); INSERT INTO tab1 VALUES('BBB',444); INSERT INTO tab1 VALUES('CCC',111); INSERT INTO tab1 VALUES('CCC',222); INSERT INTO tab1 VALUES('CCC',333); INSERT INTO tab1 VALUES('CCC',444); Let’s start some fun and check how my dump from Oracle DB looks like. First of all, I need to find the block where the table is stored: ...

August 10, 2018 · 4 min

How to debug background/batch job in SAP ?

Today I want to show you a simple way to debug a batch job. Sometimes you just want to debug some process witch default runs in batch. Everything looks simple but you should notice that breakpoints sometimes don’t work in these cases. The situation can be even worst when your job runs only a few seconds. First of all if your job works for a short time, you just should keep him working for a while. To do this you just can create an infinitive loop. So just go to your code and in property place paste: data: lv_wait. while lv_wait <> 1. endwhile. Now go to transaction sm50, click on „ALL work process” and then select your process. Remember that your background process could run on one of many application servers Click on Administration-> Program -> Debugging. After confirming the pop-up you should see a debugger.

February 17, 2018 · 1 min

Access transaction without auth

How to access transactions without an authorization? One big requirement to do this trick is having to debug and replace the function. Let’s start! I prepared myself, user, without authorization to the db02 transaction. When I want to run this transaction, I get a message: „You are not authorized to use transaction” Go to the SE37 transaction, and display function module: AUTH_CHECK_TCODE. Now seat a breakpoint on line 28, where sy-subrc is checked (in new versions line 53). ...

December 16, 2017 · 1 min