Showing posts with label at work. Show all posts
Showing posts with label at work. Show all posts

1.25.2010

SAP BI Planning Sequence

Let's learn a bit about the result of button Start Modeller in transaction RSPLAN. Any of you wonder what is that thing - when an explorer burst out contains 5 tabs titled Modeller at the top of the window? Well I am. Why would we have to do it web based anyway. I'll let that to be a mystery for now.

Simply said, this window allow us to perform some 'query command' to an InfoProvider. Like we all IT freaks acknowledge, the famous "SELECT attribute_fields, SUM value_fields GROUP BY attribute_fields FROM table WHERE condition"

Those 5 tabs represent each piece of the famous statement above. InfoProvider represents the table. Aggregation level represents the SELECT and GROUP BY attribute_fields at the same time. Filter represents the WHERE condition. Planning function represents the type of command we need to do, whether it is delete or update. Other than that, a lot of actions already prepared by SAP. Moreover, we can add new type of actions when all that prepared don't fullfil our need. Planning sequence is like a wrapper that consist sequence of the planning functions needed to play together for a certain goal.

Up until here, I hope that helps to mend your confuse mind. And not get more confuse. Next...

This is some diagram to show the relationship between each tab.



So to get us started, first we need to define an aggregation level.
Following it, a filter and a planning function based on the aggregation level. Finally, put the planning function into a planning sequence.

Now the fun part, testing. First make sure the InfoProvider is in the Plan Mode. Go to RSA1 right click the InfoProvider. Change Real-Time Load Behaviour and tick Real-Time Data Target Can be Planned. After we do this, we need to close the browser and re-open it. In the extreme condition where SAP seems to be ignorant little thing, I even have to close the browser, close the GUI and re-login.

A planning sequence can be executed directly. You can see execute button on top of Planning Sequence tab. Don't be scared to click it because it won't change the actual data. Not until you click "Save Plan Data" and set the InfoProvider into Load Mode. The newly updated data will appear as a new request in Manage section of the InfoProvider.

The useful part, planning sequence can be called through Process Chain. You can find it under Process Type - Other BW Process - Execute Planning Sequence.

Phew, I'm done.

Written while listening: 죽어도 못 보내 - 2AM

12.30.2009

A Thing Called Planning Sequence

A planning sequence is a list of planning functions and parameter groups that are processed in the order you have previously defined. You use this function if you want to automate the sequential processing of multiple planning functions that you have defined. [SAP Help]

Planning functions are used within BI Integrated Planning for system-supported editing and generation of data. [SAP Help]

Related transaction: RSPLAN. Enough with the theory, let's jump into action. Read here.

Currently on my desk, SD KPI infocube is doing major data load. We deleted the wrong old data and reload them from the beginning. Wish us well or SD KPI will have zero data.

12.28.2009

Debug a Start, End or an Expert Routine in BI 7.0 Transformations

I have been wondering how to debug a transformation routine in SAP BI. Well this is how. After that, I wonder what should I do with the data I extract using the debug mode. At the second thought, just delete it after the culprit is found right?

12.22.2009

Upgrade Extraction Structure

Consider SAP Notes 328181 when you need to upgrade extraction structure in the Customizing Cockpit (transaction LBWE). And when the trouble has happened, check in SE37 whether you have MCEX_GENERATE_DDIC_HASH. If not, do SAP Notes 834897. Then say a pray and do this and this (the last one only for Purchasing, find relevant notes for other application).

11.21.2009

SAP BI GetQueryViewData

Now that my scope of work has shifted, I found new things to play with. Good bye ABAP-ing in ECC 6.0. Welcome ABAP-ing in SAP BI, kekekke. More than that, I am challenged to bring out SAP BI data to the world company. Like what my seniors and I have been doing in R3, we abused brought out the precious information to Web Services and SQL Servers. And the result are dynamic heart beats of transactions and reports that have the spirit of single source of truth. Speaking of information in our company is speaking of SAP data. No other. Of course, without having to remember a T-Code.

Years passed through. My interest got hooked on SAP BI. With all massive storage and OLAP techniques that makes reporting finally got its attention in the first place. To communicate with SAP BI from outside, I've tried the hard way and currently using the easy way. The hard way, learn MDX Query and pass it to BI by calling a BAPI. I can't remember the BAPI name, I don't want to discuss that now. Me feels too hard to coupe with MDX query. The easy way, using a web service that SAP BI provide. For doing this, you have to work with some one who have access to SAP BI GUI and can operate SAP Query Designer. Ask the dude to follow the steps to prepare the web service in SAP BI here. That document is a starter, the journey to have a ready-to-call web service has just begun my friend. This is tricky, you thought you got the web service link, but when you tried to access it, BUM! Failed. Well if that's the case, kindly contact me. See if I can help you. Been there, me. Sorry but I really need to skip so that I can finish this fast.

Specify your output data to SAP BI dude so that they can build that into a query, of course from the Query Designer. As a result, you will get query name and info provider name.

Now it's web application's turn. The service you need to call is GetQueryViewData. When testing, use a simple query without any variable screen. Because dealing with variable screen is the second confusing thing. Explanation from SAP on how to pass parameter to variable screen in this service is veeery hard. It is far away from plain. I have to google and google again until accidentally met the same programmer with the same problem. And this is how GetQueryViewData is called using parameter:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;

using System.Collections.Generic;
using System.Net;
using WSDashboardEnterprisePortal.SAPBIProxy.GetQueryData;
//That was the class of the web reference
public static GetQueryViewDataResponse GetQueryData() {
       NetworkCredential login = new NetworkCredential();
       GET_QUERY_DATA BWQuery = new GET_QUERY_DATA();
       login = new NetworkCredential();
       login.UserName = "UserName";
       login.Password = "Password";
       BWQuery.Credentials = login;
       BWQuery.PreAuthenticate = true;
       GetQueryViewData gqvd = new GetQueryViewData();
       gqvd.Infoprovider = "InfoProvider";
       gqvd.Query = "QueryName";
       List listParam = new List();
       W3query param;
       for (int k = 0; k < arrParameter.Length; k++) {
       //If you only have one parameter, omit this loop
            param = new W3query();
            param.Name = string.Concat("VAR_NAME_",(k+1).ToString()); //
VAR_NAME_1, VAR_NAME_2, and so on
            param.Value = "0CALMONTH";
            listParam.Add(param);
            param = null;
            param = new W3query();
            param.Name = string.Concat("VAR_VALUE_EXT_",(k+1).ToString());
            //That was VAR_VALUE_EXT_1, VAR_VALUE_EXT_2, and so on
            param.Value = "200909";
            listParam.Add(param);
      }
      gqvd.Parameter = listParam.ToArray();
      gqvd.ViewId = null;
      GetQueryViewDataResponse response = BWQuery.GetQueryViewData(gqvd);
      return response;
}

11.16.2009

Create New User in SQL Server

Credit: Dr. Herong Yang [www.herongyang.com]

C:\>sqlcmd -S localhost -U sa -P xxxx

1> -- Set DBPMSPemasaran as the current database
2> USE DBPMSPemasaran;
3> GO
Changed database context to 'DBPMSPemasaran'.

1> -- Create a new server login name: PMSPemasaran
2> CREATE LOGIN PMSPemasaran WITH PASSWORD = 'xxxxx'
3> GO

1> -- Create a new database user linked to the login name
2> CREATE USER PMSPemasaran FOR LOGIN PMSPemasaran;
3> GO

1> -- Grant database ALTER permision to the user
2> GRANT ALTER To PMSPemasaran;
3> GO

1> -- Grant database CONTROL permision to the user
2> GRANT CONTROL To PMSPemasaran;
3> GO

Here is what I did to test this new login name and user: PMSPemasaran

C:\>sqlcmd -S localhost -U PMSPemasaran -P xxxxx

1> -- Set DBPMSPemasaran as the current database
2> USE DBPMSPemasaran;
3> GO
Changed database context to 'DBPMSPemasaran'.

1> -- Create a new table
2> CREATE TABLE Test (ID INT);
3> GO

1> -- Drop the table
2> DROP TABLE Test;
3> GO

10.14.2009

At Surabaya

Staying at Town Square Suite Hotel for the first time. Nice. Might come back here for another business trip. Taste the food from the Surabaya Town Square's Qua-Li for dinner. Not bad. Have to finish a short presentation, so I will get back to this later.

10.06.2009

In Bandung

Currently developing SPC Customer Care application. They call it eServe. I call it Carlita, stands for Customer Care Online Pertamina. How do you think? Which name prettier?
Anyway when you hit Bandung, don't forget to stop by at Batagor Kingsley at Jalan Veteran. Not only the batagor are worth the money to be taken home as present, they also sell various snacks for alternative presents. Many kinds of keripik, brownies, dodol, you name it.
For dinner I don't go places high and cold which offer beautiful view like Kampung Daun. I am all the time a city girl :p But BIP also lack of the essence of Bandung. So Paris Van Java it is. A beautifully designed shopping place with some culinary delicacies. Starbucks, BMC yoghurt, Duck King and many more. And never forget to spare a dinner for nasi or mie goreng in front of Savoy Homann Hotel.
When craving for Sundanese food, simply hit Ampera restaurant at any places around Bandung. Still the first opened restaurant is the one located in front of Kalapa terminal. Aaah, and I see two Padang restaurants named Sederhana Bintaro here ^__^v
Drop by to Kartika Sari for its famous brownies and molen coklat keju. Following Prima Rasa for my very own favorite (again) brownies and molen kacang ijo.

9.16.2009

Dealing With XMLSerializer

The error caught was:

File or assembly name yofdjhlq.dll, or one of its dependencies, was not found.
at SerializationClass.ToXml() in d:\nur\work\iataadapter\serialization.cs:line
20
at IATAAdapter.IATAAdapter.Main(String[] args) in d:\nur\work\iataadapter\iat
aadapter.cs:line 25

What to do? another class that I tried to serialize has no problem. Got hint from 2 days googling for this problem. I add this line in app.config.







Then tried to run the application again. Write the name of the missing assembly and find it in the temp folder that the Visual Studio used to store its temporary assembly. At first I search it in wrong folder, which is C:\Windows\Temp. Well all of them in the asp.net forum make me concentrate on that folder, including granting the security for ASPNET user account as well. It turn out that the temporary assembly is stored in C:\Documents and Settings\[logged_user]\Local Settings\Temp. The result of adding the lines in app.config finally paid off. I found the [assembly_name].0.cs file and [assembly_name].out file which shows the actual error. In my case, this is it says:

error CS0030: Cannot convert type 'InvoiceTransmissionInvoiceSubInvoiceHeaderInvoiceLineSubItemSubItemProduct[]' to 'InvoiceTransmissionInvoiceSubInvoiceHeaderInvoiceLineSubItemSubItemProduct'
error CS0029: Cannot implicitly convert type 'InvoiceTransmissionInvoiceSubInvoiceHeaderInvoiceLineSubItemSubItemProduct' to 'InvoiceTransmissionInvoiceSubInvoiceHeaderInvoiceLineSubItemSubItemProduct[]'

The end of this story is a happy end. Finally found the mishaps in the class I tried to serialize and the XML Serializer is working just amazing.

9.14.2009

The Power of ST22

Bukan, bukan ST12 yang saya tonton waktu diundang dateng gebyar BCA yang ada Aura Kasih dan Glenn Fredly. Ini ST22 ABAP Runtime Error, yang menyelamatkan kebingungan Mas Azhar dan saya karena hari ini job SAP BI dari ECC kebakaran. Hampir semua dengan error ABAP/4 processor: OBJECTS_TABLES_NOT_COMPATIBLE. Cari-cari di Google malah diarahkan patch SAP Notes. Padahal ga ada perubahan apa-apa dari BASIS antara kemarin dan hari ini. Padahal kemarin job BI jalan2 aja. Maka pergilah Mas Azhar dan saya ke ST22, isi user dengan BIREMOTE dan keluarlah stack trace error ABAP-nya. Programnya teridentifikasi, line penyebab error tertera dengan jelas. Tinggal ke SE38, masukkan nama programnya, masuk tab Properties, lihat last updated by dan date-nya. Hah, baru diupdate kemarin *evil grin*

8.25.2009

Awwww.. It happened!

Gw delete formula di Key Figure!! NOOOO... Untung ada contekan dari PBD. Langsung balikin lagi. Gila. Kalo gw ngerti bikinnya mah santai, ini.. ga mudeng .. T__T Ya Allah.. selamatkan tanganku dari perbuatan aneh.. amiin. Hihi.

8.14.2009

Unicode Program in Unicode Environment

This person said it deeply :D
"Unchecking the unicode is a bad idea. Unchecking the unicode on a unicode system is a worst idea."
The code that I tried to copy wrote:
DO 20 TIMES
VARYING wa_0008 FROM p0008-lga01 NEXT p0008-lga02.
Because of the unicode check, the error came: "P0008-LGA01" and "WA_0008" are type-incompatible.
Then the solution:
DO 20 TIMES
VARYING wa_0008-lga FROM p0008-lga01 NEXT p0008-lga02
VARYING wa_0008-bet FROM p0008-bet01 NEXT p0008-bet02.

:)

8.13.2009

A Present for Tomorrow

Doing some kind of a present for tomorrow. Although it might not be come. Feels great and full of spirit. Facing it.

8.11.2009

Di Balikpapan

Di Balikpapan sampe besok. Makanan di Blue Sky Hotel kena banget sama lidah saya. Morning coffee-nya enak. Racikan saus 1000 Island-nya juga enak. Kamarnya lega, lay-outnya bagus, ada KBS World ^__^, deket sama kantor, ada antar-jemput bandara. Alhamdulillaah, orang-orang di kantor sini kooperatif. Nice.

7.07.2009

Bored Mode ON

Spamming time... hehehe, so bored after half day filling in people review.
Maybe one of the reason i like Korean entertainment is the FEEL it creates when they speak. I can only feel it right now, because without sub, I practically don't understand what (on earth) are these Koreans saying. Their intonation and accentuation on different syllable sounds traditional, thus polite, yet warm. I just looove conversation between singer Shin Hye Sung, Lee Ji Hoon on Kim Jung Eun's Chocolate. Simply cute. Even until now I don't have the sub, don't understand a bit :p
I may have to let go the opportunity to attend 10-year reunion with my high school friends. Luckily because I have to go somewhere nice hehe.
The Son of Sol's Pharmacy House is my recent recommended kdrama. Great dialogue, heartwarming story, full of life lesson.
Going home now. President election is tomorrow. Lanjutkan? :D

5.04.2009

Passing a list/array to an SQL Server stored procedure

Just what I need at the moment. Nice article.

2.17.2009

SAP Pricing Procedure

While making the sales order, pricing procedure is depend on the five parameters:
1.Sales Organisation
2.Document Pricing Procedure
3.Distribution Channel
4.Division
5.Customer Pricing Procedure

So that is it.

2.12.2009

Long Text for All HR Objects

HRP1000, field STEXT is the description of whatever object you are viewing. It can be a Job, Position, Work Center, Org_Unit, etc.

2.09.2009

Maafkan Kami, Indonesia

Kebanggaan menggunakan SAP yang dulu diperjuangkan dengan susah payah hancur sudah. Mudah-mudahan semua ada hikmahnya.

12.13.2008

Semoga Allah Terima Sebagai Ibadah

Jantung saya merosot rasanya. Hari Jumat, DO lagi banyak2 nya mengingat layanan jual depot tidak beroperasi Sabtu-Minggu. Jam 4 sore, DO tidak bisa di print. Kalau punya 2 jantung, mungkin yang satu merosot, yang satu lompat saking hopelessnya. Gimana niih.. rintih hati saya.
Otak saya menolak diajak bekerja, seharian capek, kemarin baru landing di Balikpapan, langsung siap-siapin data UAT, telpon orang2 terkait di Balikpapan untuk persiapan UAT. Belom lagi trainer OSDS di depot2 lain yang harus dibantu. Saya capek...
Tapi DO harus bisa diprint, orang-orang nunggu, para SIK unit stand by di depot, DO harus bisa diprint. Telp masuk ga berhenti-berhenti, semua tanya ada masalah apa? Oh.. hurry up, solve this... my heart cries ... Badan saya menyerah pukul 10 malam, setelah menebak semampunya apa yang bikin transport di PRD error, saya buat transport request baru, lalu kepala jatuh terkulai di atas laptop, tidur dengan pakaian lengkap, bahkan kerudung masih terpeniti dengan rapi di kepala. Maafkan saya bapak, ibu, mas, mbak dan rekan-rekan, sampai sebatas itu saja badan saya mampu bertahan ...
Semoga Allah menerima ini sebagai ibadah. Karena bekerja dengan tekanan seperti ini buat saya diluar batas. I am getting older and easily got heart bumps nowadays. Untuk itu, semoga Allah terima ini sebagai ibadah.

 
Template by yummylolly.com