Here is LO Cockpit Step By Step
LO EXTRACTION
- Go to Transaction LBWE (LO Customizing Cockpit)
1). Select Logistics Application
SD Sales BW
Extract Structures
2). Select the desired Extract Structure and deactivate it first.
3). Give the Transport Request number and continue
4). Click on `Maintenance' to maintain such Extract Structure
Select the fields of your choice and continue
Maintain DataSource if needed
5). Activate the extract structure
6). Give the Transport Request number and continue
- Next step is to Delete the setup tables
7). Go to T-Code SBIW
8). Select Business Information Warehouse
i. Setting for Application-Specific Datasources
ii. Logistics
iii. Managing Extract Structures
iv. Initialization
v. Delete the content of Setup tables (T-Code LBWG)
vi. Select the application (01 – Sales & Distribution) and Execute
- Now, Fill the Setup tables
9). Select Business Information Warehouse
i. Setting for Application-Specific Datasources
ii. Logistics
iii. Managing Extract Structures
iv. Initialization
v. Filling the Setup tables
vi. Application-Specific Setup of statistical data
vii. SD Sales Orders – Perform Setup (T-Code OLI7BW)
Specify a Run Name and time and Date (put future date)
Execute
- Check the data in Setup tables at RSA3
- Replicate the DataSource
Use of setup tables:
You should fill the setup table in the R/3 system and extract the data to BW - the setup tables is in SBIW - after that you can do delta extractions by initialize the extractor.
Full loads are always taken from the setup tables
The query could not be saved due to a problem in transport
After creating a query in BEX, you try and save the query, it gives you the following popup message:
"The query could not be saved due to a problem in transport".
Steps to correct the problem:
1. Within Adminstrator Workbench click on the Transport Connection tab in the Navigation Window on the left
hand side.
2. Select the Request BEx button on the toolbar.
3. Create a transport.
4. Try to change the query again.
How to build an extractor using bw?
Using SAP BW 2.1C and soon 3.0A we have to extract data from R/3 FI.
Standard extractor can´t be used, since data need to be enhanced and go throug various routines before data contains all information needed in BW. Delta upload mechanism is needed.
Where can information on
- building a new extractor (including delta mechanism)
- enhancing a standard extractor be found?
Technically, programming a function module data source would be a modification. There's also a way that allows you to stay close to the standard, especially if you extract data from standard tables:
In OLTP:
1) Find out which change document object points to the table.
2) Use the generic extractor to build a data source for _master data_ over the table.
3) Use the "enhance extract structure" feature in the BW img to add computed fields to the data source
4) Use the user exit for extraction to program your enhancement logic and compute additional fields
5) In data source maintenance, enter the change document object to delta-enable the data source
In BW:
7) Create an infoobject with attributes. (Key figures can be attributes, too.) Use concatenated keys or "Klammerung" to make the key fields identical to the key fields of your source table.
8) Create infopackages for initial load and delta load, and load data.
Now you need to load the data from your infoobject into a data target for transactional data (ODS or InfoCube).
In BW:
9) In infoobject maintenance, look up the view for master data for your new infoobject.
10) Use the generic extractor to create a generic datasource for transactional data out of this view.
11) Load data from this second generic extractor into your Cube/ODS.
As far as I know, BW 3.0 will allow loading data straight from OLTP _master_data datasources into BW ODS/Cubes, so as soon as you've upgraded, steps 7 - 11 will be obsolete.
Huge Performance Problems on SAP BW 3.10.
We have huge performance problems on SAP BW 3.10. (Oracle 9.2, AIX). Our users don't get the results of theirs queries, and they often have to log-off from sap when they use the bex analyzer .
I have read the differents topics regarding this problem , and read the differents SAP notes.
*The database statistics are refreshed every moring , after the data loads.
(statistic for the fact table is always current, transaction db20)
* Oracle Parameters are set according to SAP notes 632556.
* Oracle indices are deleted and recreated every day
* Fact table is partitioned
* I have tried to change the read mode in RSRT but it didn't work
I have checked the BW statistics (st03 and table RSDDSTAT). The database proportion is very high FOR ALL QUERIES (40 to 90%), and for the infocube (64%).
The ratio of selected to transfered record is 397 for the infocube and for the queries : 270.000 to 30.
We do not use aggregates and we do not use Cube compression. At first , I thought it was the reason of our problem but now I'm wondering If we do not have a database problem.
Is there anyone who could give me some advice ?
Further informations :
Data Buffer Quality : 96,3 %
I/O read times :
Read (Avg ms) : 2 to 7
Write (Avg ms) :150 to 459
According to OSS note 443544 , IO timesbelow should be acceptable below 10 ms, but in BW only the read mode (queries performances) is important, right ?
It looks like you are doing a great job tuning the database, an area I tend to neglect (as a non DBA BW consultant). However you say you are not using aggregates. I have to ask why?
The fact you have a selected to transfered ration of 270,000 in some queries suggests having to read many base level records to produce a summary result. By using the BW server to summarise into aggregates at load time, generally a quiet time, you will reduce the amount of work it has to do at query time.
If you decide to use aggregates you can let BW design aggregates for you, in which case you get many aggregates based on navigations in statistics, or design a few levels yourself, which means you control the extra storage. I tend to create a summary level aggregate, and mid level aggregate and sometimes additional customer without material or material without customer aggregates.
As you are using Oracle did you also know you can run an 'explain' on the SQL statement of a poorly performing query - run the query -> trans SM66 to find the Process ID (PID) of a the query -> trans ST04 -> detailed analysis -> oracle session -> select SQL text from DBA_VIEWS where PID -> use DBA tools to run an explain on the SQL statement. From this you may also find some areas for improvement.
Not much to add to the above great answer: looks like you're a textbook example to use aggregates.
In addition also have a look at compression: note 590370 explains the advantages you could get from it.
The above note may mention this , but in order to reap the benefits of fact table partioning you need to compress your infocube.
Database partioning works on the 'E' table within the infocube (not the 'F' fact table that hold the uncompressed data).
Thank you all, for your usefull answers, it seems that the aggregates are really required
How To Do Transports in BW?
Step by step procedure for transporting in BW:
1. In RSA1 go to Transport Connection
2. Select Object Types Your Object that you want to transfer.
3. Choose grouping method (in data flow before and after)
4. Drag and drop your object.
5. Click the Truck button to transfer
6. In Source System (e.g Dev SE09).
a. Expand to choose your child request
b. Click on the release button (truck)
c. Choose the parent request and click the Truck button release.
7. In Target System (e.g QA) go to STMS
a. Click on Truck button (Import Overview)
b. Dbl click on your QA system queue
c. Clck on Refresh
d. Clk on adjust import queue
e. Select ur request and click on F11.
Transport Process Chains to Test System
What is the best way to transport process chains to test system?
I got many other additional and unwanted objects got collected when I tried for collection of process chains from transport connection.
To transport a process chain the best is to transport only objects created for the process chain. On my system I created specific obejcts for PC : Infopackages, jobs, variant. those objects are only use for PC. By this way I avoid errors when users restart load or job manually.
So when I want to transport a process chain I go in the monitor and select the PC make a grouping on only necessary objects, and I go through the tree generated to select only what I need. Then I go in SE10 to check if the transport contains not other objects which can impact my target system.
You can avoid some uncessary objects by clicking in Grouping > Data flow before & Data Flow After . For example you already have infopackages in your target system but not process chains & you only want to transport only process chain without any other objects like transfer structure or infopackages . You can choose before or after option .
You can also choose hierachries or display option from the Display tab too if you have objects in bulk but make sure all object are selected ( in case when different-2 process chain having different kind of object then better use Hierarchy, not list )
While Creating these TR some objects may be in use or locked in other TR so first release them by Tcode Se03 ,using unclock object ( Expert Tool ).
These options can reduce your effort while collecting your objects , even after so much effort you get some warning or Error like :- objects are already in system then ask basis to use overwrite mode.
Transport a specific infoobject
How to transport a specific info object? I tried to change it and then save but the transport request won't appear. How to manually transport that object?
1. Administrator Workbench (RSA1), then Transport Connection
2. Object Types, then from the list of objects put the requested one on the right side of the screen (drag & drop)
3. Click "Transport Objects", put the development class name and specify the transport (or create the new one)
4. Transaction SE01, check transport and release it
5. Move the transport up to the another system.
If you change and reactivate the infoobject, but get no transport request, this means that your infoobject is still in $tmp class.
go in to the maintenance of the infoobject, menu extras, object directory entry and change the development class. at this point you should have a pop-up requesting a transport request
If you're not getting a transport request when you change and activate, it could also be that the InfoObject is already on an open transport.
When you collect the object in the transport connection as described above, you will see in the right hand pane an entry called Transport Request. If there is an entry here, the object is already on a transport and this gives you the transport number.
You can then use SE01 or SE10 to delete the object from the existing transport if that is what you want to do then, when you change and activate the object again, you should be prompted for a transport request. Alternatively, you can use the existing transport depending on what else is on it.
SAP BW ERROR : replicate data from source system
BW 2.1C
OS WINT4
The RFC is working fine and you are trying to replicate data from source system (4.0B), while doing this you got an
error an ABAP dump, in this dump the Exception Condition are "CNTL_ERROR" raised
Take a look at OSS notes 158985 and 316243.
Depending on what patch level, GUI, or Kernel you are on.
Error in transport in bw
After creating a query in BEX, you try and save the query, it gives you the following popup message:
"The query could not be saved due to a problem in transport".
Steps to correct the problem:
1. Within Adminstrator Workbench click on the Transport Connection tab in the Navigation Window on the left
hand side.
2. Select the Request BEx button on the toolbar.
3. Create a transport.
4. Try to change the query again.
Deltas Not Working for Installation Master Data
I am having trouble with the deltas for master data object "installation". The changes are clearly recorded in the time dependent and time independent tables, EANL/EANLH. The delta update mode is using ALE pointers, does anyone know of a table where I can go check where these deltas/changes are temporarily stored, or what's the process behind this type of delta?
The following steps must be executed:
1. Check, whether the ALE changepointer are active in your source system (Transaction BD61) and whether the number range is maintained (Transaction BDCP).
2. In addition, check in the ALE Customizing, whether all message types you need are active (Transaction SALE -> Model and implement business processes -> Configure the distribution of master data -> Set the replication of changed data -> Activate the change pointer for each message type ).
3. Check, whether the number range for the message type BI_MSTYPE is maintained (Transaction SNUM -> Entry 'BI_MSTYPE' -> Number range -> Intervals). The entry for 'No.' must be exactly '01'. In addition, the interval must start with 0000000001, and the upper limit must be set to 0000009999.
4. Go to your BW system and restart the Admin. workbench.
All of the following activities occur in the InfoSource tree of the Admin. Workbench.
5. Carry out the function "Replicate DataSource" on the affected attached source system for the InfoObject carrying the master data and texts.
4. Activate the X'fer structure
All changes, all initial data creations and deletions of records from now on are recorded in the source system.
5. Create an InfoPackage for the source system. In the tabstrip 'update parameter', there are three alternative extraction modes:
Full update
Delta update
Initialization of delta procedure
First, initialize the delta procedure and then carry out the delta update.
An update on this issue:
In the EMIGALL process, SAP decided to bypass all the standard proces to update the delta queues on IS-U, because it would cause too much overhead during the migration. It is still possible to modify the standard programs, but it is not recommended, except if you want to crash you system.
The other options are as follows :
- Extract MD with full extractions using intervalls..
- modify the standard to put data in a custom table on which you are going to create a generic delta;
- modify the standard to put the ALE pointers in a custom table and then use a copy of the standard functions to extract these data....
- Extract the data you want in a flat file and load it in BW...
By the way, if you want to extract the data from IS-U, forget to do it during migration, find another solution to extract after.
PS: Well if you have generic extractor and huge volume data then you can do it with multiple INITS with RANGES as selection criteria and then a single DELTA(which is summation of all INITS) in order to improve performance with GENERIC DELTA.
How To Convert Base Units Into Target Units In BW Reports
My client has a requirement to convert the base units of measurements into target units of measurements in BW reports. How to write the conversion routine and otherwise pls refer conversion routine used so that the characteristic value(key) of an infoobject can be displayed or used in a different format to how they are stored in the database.
Have a look at the how to document "HOWTO_ALTERNATE_UOM2"
or
You can use the function module 'UNIT_CONVERSION_SIMPLE'
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
EXPORTING
input = ACTUAL QUANTITY
* NO_TYPE_CHECK = 'X'
* ROUND_SIGN = ' '
unit_in = ACTUAL UOM
unit_out = 'KG' ( UOM YOU WANT TO CONVERY )
IMPORTING
* ADD_CONST =
* DECIMALS =
* DENOMINATOR =
* NUMERATOR =
output = w_output-h_qtyin_kg
* EXCEPTIONS
* CONVERSION_NOT_FOUND = 1
* DIVISION_BY_ZERO = 2
* INPUT_INVALID = 3
* OUTPUT_INVALID = 4
* OVERFLOW = 5
* TYPE_INVALID = 6
* UNITS_MISSING = 7
* UNIT_IN_NOT_FOUND = 8
* UNIT_OUT_NOT_FOUND = 9
* OTHERS = 10
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Removing '#' in Analyzer (Report)
In ODS, there are records having a value BLANK/EMPTY for some of the fields. EX: Field: `Creation Date' and there is no value for some of the records.
For the same, when I execute the query in Analyzer, the value `#' is displaying in place of `BLANK' value for DATE and other Characteristic fields. Here, I want to show it as `BLANK/SPACE' instead of `#'. How to do this?
I had a similar problem and our client didn't want to see # signs in the report. And this is what I did. I created a marco in Workbook as SAPBEXonRefresh and run my code in Visual Basic editor. You can run same code in query also as when you will refresh query this # sign will be taken care. You can see similar code in SAP market place.
I will still suggest not to take out # sign as this represent no value in DataMart. And this is SAP standard. I did convince my client for this and later they were OK with it.
The codes are below:
Sub SAPBEXonRefresh(queryID As String, resultArea As Range)
If queryID = "SAPBEXq0001" Then
resultArea.Select
'Remove '#'
Selection.Cells.Replace What:="#", Replacement:="", LookAt:=xlWhole, _ SearchOrder:=xlByRows, MatchCase:=False, MatchByte:=True
'Remove 'Not assigned'
Selection.Cells.Replace What:="Not assigned", Replacement:="", LookAt:=xlWhole, _ SearchOrder:=xlByRows, MatchCase:=False, MatchByte:=True
End If
' Set focus back to top of results
resultArea(1, 1).Select
End sub
No comments:
Post a Comment