Technique/SAP BW2011. 11. 29. 13:32

Time desync of data loading from data source - 0CSM_CASE_ATTR
Hema Lakshmi SAP Employee 
Business Card
Company: SAP Labs
Posted on Nov. 28, 2011 03:35 AM in Enterprise Data Warehousing/Business Warehouse, ABAP, Public Sector, SAP NetWeaver Platform

ISSUE :

Time zone difference causes incorrect data loading from data source -   0CSM_CASE_ATTR.

SOLUTION:

The case extractor 0CSM_CASE_ATTR is being used by many customers successfully with no issues in data extraction. 

In the extractor 0CSM_CASE_ATTR the default time zone is UTC. This is the architectural design where all time fields in the Basis Case Management application are in UTC format. The table SCMG_T_CASE and SCMG_T_CASE_ATTR would have all time fields in UTC format during save/retrieval or any other operation.

In the extractor 0CSM_CASE_ATTR we use the ABAP statement 'CONVERT DAT' which converts the timestamp from local time zone to UTC format. No other format would be supported because then it would cause inconsistencies with the database.

Initially in a similar issue reported by another customer we first were exploring the idea of increasing the time range interval in RSA2 transaction in the customer system directly. But then this range has been set from beginning and has worked fine for all the customers till now. So the issue would not be resolved by this action.

Below notes explain about the Time Zone issues ~
198411  - Current data and information about time zones
741734  - Incorrect times due to the time zone settings
481835  - Analyzing the time zone settings
101726  - Incorrect times and time zone setting
15913    - Timezone problems (local vs. global time)

Refer to the below notes which talk about Daylight Saving issues ~
126692  - Daylight saving time rules are incorrect
102088  - Reducing downtime when changing from summer to winter
7417      - Conversion between winter time and daylight saving

Go through each of the notes in detail (most would have manual instructions to be performed and nothing should be skipped as it could result in inconsistencies).

Additionally if after applying all the above notes the issue still persists then the below notes would be useful -
<1> For issues on CRM cases refer to note ~
       1470994  - 0CRM_CASE_ATTR: additional fields
<2> For issues on Basis Case extraction refer to notes ~
       1281000  - retrieval of data from case extractor taking a lot of time
       1159696  - Not able to get the data using case type from case
       996360    - Case Extractor not able to pull more than 1 data package.

Hema Lakshmi   is an expert in AP Netweaver Folders Management


http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/27514%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529

Posted by AgnesKim
Technique/SAP HANA2011. 11. 29. 13:30

Dealing with R and HANA
Alvaro Tejada Galindo Active Contributor Silver: 500-1,499 points
Business Card
Company: SAP Labs
Posted on Nov. 28, 2011 05:03 PM in Analytics, Beyond SAP, In-Memory Business Data Management, Open Source

 
 

First things first...what's "R"? Simply put...is a programming language and software environment for statistical computing and graphics. More infomation can be found here R on Wikipedia

 

I have code in many programming languages, some of them very commercial, and some of them little known, but I got say, that from all, "R" is one of the most weird and awesome languages I have ever played with...and it has an amazing repository of custom add-ons.

 

If you have read the HANA Pocketbook you will realize that there's a reference to "R" in the page 59. Now, that kind of integration between "R" and HANA haven't been developed yet, but it doesn't mean we can get our hands dirty doing some research and development.

 

What I did for this example was to simply show the information of my Analytic View on HANA and exported as an CSV file. From there, it's easy to import it into "R" and start doing some nice things. (The idea is that we should be able to code "R" straight in the HANA environment...or at least that's how I think it's going to be...)

 

image

 

image

 

image

 

The first example that we're going to build on "R" is a simple Pie graphic, using the information from the FORCURAM and CARRNAME fileds.

 

image

 

In this example, we're basically reading the CSV file, including the header. And doing an aggregation of the two fields we want to interact with. After that, it's just a matter of pass the values, the names and call the pie.

 

image

 

Next example is a little bit more complex...and uses a custom package call Word Clouds

 

image

 

Here, we have to load the required libraries, read the CSV file, do the aggregation, create a matrix with the aggregation values, sort the matrix, create a new vector, get it's length, create an array containing the names and finally assign the values and call the wordcloud graphic method...

 

image

 

Hope you like it...and stay tuned for more "R"...

 

Alvaro Tejada Galindo  Active Contributor Silver: 500-1,499 points is a Development Expert, Scripting Languages Geek, Programming books author, Geek Comics author and SAP Mentor Alumni.



http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/27548%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529
Posted by AgnesKim
Technique/SAP HANA2011. 11. 29. 13:28

How to Best Leverage SAP BusinessObjects BI 4.0 on SAP HANA 1.0 - Webinar Presentation

     Patrice Le Bihan    Presentation     (PDF 2 MB)     19 October 2011
  •  Overview

In this session you will learn how to best integrate SAP BusinessObjects 4.0 with SAP HANA 1.0. We will cover the capabilities and implementation options for not only reporting but also data modeling, security and other deployment considerations.

Posted by AgnesKim
Technique/SAP BW2011. 8. 8. 14:01

Execute a BW query by excluding values from another BW query.
Bhushan Suryavanshi 
Business Card
Company: Bombardier Aerospace
Posted on Aug. 07, 2011 02:12 AM in ABAP, Analytics, Enterprise Data Warehousing/Business Warehouse

 
 

Motivation

In SAP BW, usually there is no easy way of performing set operations (union, intersection, outer joins etc.) of two queries. This is usually a manual activity. Basically, post processing using two query results is difficult. Infosets can be used in some scenarios but these need additional modelling steps and not as flexible. This blog illustrates how we can fetch values from one query and then exclude these selected values from another query.

Business Example

Using technical content, you want to find out all infocubes that exists in the system but with no data being fetched from them over the last two years (via queries say).

Let X = {A1, A2, .. AN} be a query that delivers all the cubes in the system.

Let Y = {A1, A2, A3} be the query that delivers all the cubes in use over the last two years i.e. some data was fetched from them.

You want to find Z = X - Y = {A4, A5 .. AN}.

Steps

1) In query X, create a customer exit variable of type Selection option on characteristic A.

 

2) Write the customer exit coding in FUNCTION EXIT_SAPLRRS0_001 include ZXRSRU01. We calculate the variable values set at i_step=1. (How customer exit variables are processed is out of scope of this blog)

 

3) Code sample

Initialization of the request object (Every query execution is represented in BW via a request object).

DATA:

l_r_request TYPE REF TO cl_rsr_request,

l_s_compkey TYPE rszcompkey.

*** Initialization with query Y to be executed from within the ABAP code ***

l_s_compkey-objvers = rs_c_objvers-active.

l_s_compkey-infocube = 'INFOCUBE'.

l_s_compkey-compid = 'QUERY_Y'.   *** executing query Y

l_s_compkey-comptype = rzd1_c_comptp-report.

 

4) Get the internal query id for QUERY_Y

* Get the compkey

CALL FUNCTION 'RRI_REPDIR_READ'

CHANGING

c_s_repkey = l_s_compkey

EXCEPTIONS

entry_not_found = 1.

IF sy-subrc <> 0.

MESSAGE s792(brain) WITH l_s_compkey-compid.

EXIT.

ENDIF.

 

5) Create the Request object

CREATE OBJECT l_r_request

EXPORTING

i_genuniid = l_s_compkey-genuniid

EXCEPTIONS

OTHERS = 1.

 

 6) Call the query Y from within ABAP code

* get the query definition

CALL METHOD l_r_request->get_initial_state

IMPORTING

e_t_dim = l_t_dim

e_t_mem = l_t_mem

e_t_cel = l_t_cel

e_t_atr = l_t_atr

e_t_con = l_t_con

e_t_fac = l_t_fac

e_t_prptys = l_t_prptys

EXCEPTIONS

x_message = 8

OTHERS = 1.

 

* Set the request

CALL METHOD l_r_request->set_request

EXPORTING

i_t_dim = l_t_dim

i_t_mem = l_t_mem

i_t_cel = l_t_cel

i_t_atr = l_t_atr

i_t_con = l_t_con

i_t_fac = l_t_fac

i_t_prptys = l_t_prptys

EXCEPTIONS

no_processing = 1

x_message = 8.

 

* read data

CALL METHOD l_r_request->read_data

IMPORTING

e_warnings = l_warnings

EXCEPTIONS

no_processing = 1

x_message = 8.

  

*close the request

l_r_request->p_r_olap->FREE( ).

 

7) After fetching the results, assign the result set elements {A1, A2, A3} as exclude 'E' to the exit variable.

* Get the text table from the output handle of the request

ASSIGN l_r_request->n_sx_output-text->* TO <l_th_text>.

loop at <l_th_text> into l_s_txt_n.

clear l_s_range.

l_s_range-low = l_s_txt_n-CHAVL_EXT.

l_s_range-sign = 'E'. *** Excluding

l_s_range-opt = 'EQ'.

append l_s_range to e_t_range.

endloop.

......

e_t_range contains the variable values which will finally be submitted to OLAP to fetch the results of query X excluding values of Y i.e. X - Y.

Thus, in this way you can perform other set operations simply in the customer exit coding itself.

 

 P.S. For more details on executing BW queries from within ABAP, please refer: http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/43db5ee1-0701-0010-2d90-c3b991eb616c

Bhushan Suryavanshi   is a SAP BI Analyst at Bombardier Aerospace.


출처 : http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/25643%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529

'Technique > SAP BW' 카테고리의 다른 글

Repeat Delta Elucidate From OLTP to BW System  (0) 2011.11.25
Using Nested Exception Aggregation in BEx Reports- Scenario  (0) 2011.11.25
Remodeling on DSO  (0) 2011.07.12
Remodeling in SAP BI 7.0  (0) 2011.05.11
Interrupting the Process chain  (0) 2011.05.10
Posted by AgnesKim
Technique/SAP BW2011. 3. 27. 15:24

SAP BW - RFC Function Module Reconciliation SAP BW and ECC Sales Header Data

Suraj Tigga    Article     (PDF 664 KB)     21 March 2011 

Overview

Document specifies the detailed understanding for reconciling the SAP ECC (Sales Order Header data - 2LIS_11_VAHDR) with the data loaded to SAP BI. Reconciliation of the data is done using RFC function module and ABAP report. Advantage of using this method is one can schedule the ABAP report at any specific time and get the detail list of mismatched Sales Order.

Posted by AgnesKim
Technique/SAP BW2011. 3. 27. 15:22

SAP BW - Excel Pivot Chart and Pivot Table Report (Excel)

Suraj Tigga (Capgemini Consulting)    Article     (PDF 590 KB)     21 March 2011  


Overview

Document explains to create Excel Pivot Chart and Pivot Table Report for the SAP BW data using Microsoft Excel.

Posted by AgnesKim
Technique/그외2011. 3. 27. 15:19

New Memory Analysis Features in NetWeaver 7.0 EHP2
Stephen Pfeiffer SAP Employee 
Business Card
Company: SAP AG
Posted on Mar. 24, 2011 03:42 PM in ABAP

 
 

In the old R/3 days, ABAP programmers rarely needed to analyze memory consumption in their programs.  The simple and robust ABAP memory model made it very hard for anyone to program a serious ABAP memory leak.

With the addition of more types of dynamic memory objects – not just internal tables, but also strings, anonymous data objects, boxed components – and a trend toward transactions that live longer, it’s now possible to write an ABAP program that can run into memory problems.

Since ABAP programmers can no longer ignore memory consumption, the ABAP Workbench has greatly enhanced the memory analysis tools in the New ABAP Debugger and in the Memory Inspector (transaction SMI or S_MEMORY_INSPECTOR).

This weblog showcases the enhancements that come with EHP2:

  • The Dominator Tree (or keep-alive tree) for containment hierarchies in memory objects – which runtime entity is keeping which memory object alive. This new analysis tool is offered in both the New ABAP Debugger and in the Memory Inspector. 
  • The Memory Object Explorer in the New ABAP Debugger, for navigating up and down through the memory objects in the keep-alive hierarchy of objects. Starting from any memory object, you can navigate up to its parents or down to its children, and you can take a look at the contents of each memory object.
  • A separate weblog shows you the new Application-specific memory analysis tools in the New ABAP Debugger – for looking at the memory consumption of ABAP Web Dynpro applications. There is also a similar tool for analyzing Web Service / HTTP applications.

You may also notice that doing memory analysis in the debugger is much more comfortable, and that we have made improvements in the user interface in the Memory Inspector as well. But we do not go into these UI changes in detail, nor will we look at the Memory Inspector transaction in this blog.

The New Features in Practice in the Debugger

You do memory analysis usually for one of two purposes:

  • You want to see how big your program – or objects in it - are in terms of memory consumption. Is it bigger than you expect?  Usually you’re in the New ABAP Debugger when you do this.
  • You want to see whether you have a memory leak. Does the memory consumption of your program change over time?  Or – how did it get so big that it dumped because of lack of memory – this question also sometimes comes up.

Usually, you’re comparing memory snapshots in the Memory Inspector (transaction SMI) when you’re doing this type of analysis.

Let’s see how the new memory analysis features work if you are in the debugger, just checking how much memory your program uses. Maybe you’re just being cautious in doing this checking – or maybe you’ve learned:  a long-running transaction or service with lots of dynamic memory objects means, you better check the memory consumption before your customers find out about it for you.  What you see here on the new memory analysis features applies just as well in the separate Memory Inspector transaction.

A Comfortable Quick Look at Memory Consumption – The Memory Analysis Tab

You don’t have to switch to a memory analysis tool anymore to see how much memory objects in your program are using.  There’s a new Memory Analysis tab in the new ABAP Debugger, on the Variable Fast Display. Just switch to the tab, click on a variable in your program, and you can see how much memory the object uses.

The Memory Analysis Tab in the ABAP Debugger 

Here we have two tables that have the same number of rows, and we happen to know that they contain the same data - except that IT_CUSTOMERS contains extra data.  Even so, IT_CUSTOMERS is smaller in memory.  How is the difference explained?   Does IT_CUSTOMERS offer a more efficient way to organize the table?  A closer look shows that we don’t understand how IT_CUSTOMERS is organized. The table statistics don’t seem to match the memory size.

  • The size of table IT_SCUSTOM is okay – 4637 rows of 16 fields with a row-length of 464 bytes is close to the Bound Used Memory (bound memory is the memory that would be freed if the table were cleared) plus some management overhead.   The table simply is that big.
  • The size of IT_CUSTOMERS is puzzling. It has the same number of rows as IT_SCUSTOM but a row length of 32 bytes. No way that the table body itself comes close to 1.7 million bytes of bound memory.

Analyzing Table IT_CUSTOMERS with the Memory Analysis Tool

To study table IT_CUSTOMERS, you activate the Memory Analysis Tool by choosing the New Tool or Replace Tool button, opening the Memory Management folder, and clicking on Memory Analysis.

 image

The tool that was available before EHP2 was the Memory Objects view, shown below in its form in NetWeaver 7.0 EHP2. This tool shows you the memory objects of the program (the representations of dynamic variables in the memory management system) ranked by size. 

Memory Objects also shows you which variables reference each memory object.  But the view does not help us to understand the differences between the IT_CUSTOMERS and IT_SCUSTOM tables. Essentially we just have an unstructured list of memory objects ranked by size.

 image

Here’s where the new Dominator Tree view (below) shows how useful it is.  In this view, it’s immediately clear how IT_CUSTOMERS is structured. The rows are so short because they contain only an object reference. The CUSTOMER objects in the table contain, by the way, a further object, ACCOUNT.  The CUSTOMER objects are also keeping several strings – variables NAME, ADDRESS, and CITY - alive.  The bound storage of the table is so high because the table is keeping all of the customer object hierarchies alive.  (Without the references from IT_CUSTOMER, the ABAP garbage collector would clear the objects away and free the memory.)

image 

The organization of the table is now clear. Where does the advantage in memory use of the IT_CUSTOMERS table come from, compared to table IT_SCUSTOM? 

To find the answer, you could copy the name of a CUSTOMER object into the clipboard, and start the Memory Object Explorer (available only in the debugger, not in the Memory Inspector). In the Memory Object Explorer (below), we can follow edges from the CUSTOMER object to its children, all of the objects that it references.

The Dominator Tree shows only strings and instances of classes that belong to the bound storage of each CUSTOMER class object. These are the objects that CUSTOMER keeps alive. The Memory Object Explorer, by contrast, also shows objects that are referenced by more than one CUSTOMER instance, memory objects that are in effect shared. Can it be that sharing of objects accounts for the reduced storage use?

We follow a CUSTOMER object to its referenced objects and then check some of the referenced objects themselves in the Explorer. COUNTRY looks like a good variable to check for sharing among multiple CUSTOMER objects. So we go from string {S:S9} ADDRESS-COUNTRY up the memory hierarchy – Higher-Level Memory Objects - to see the parents of this string, objects that reference this string.

image 

And in fact, as you can see below, the more efficient storage use in table IT_CUSTOMERS than in IT_SCUSTOM could be due to massive sharing of string objects in memory.  There are many CUSTOMER objects from our table that reference the same COUNTRY string.

image 

The IT_CUSTOMERS table design takes advantage of the fact that string variables that have the same content share a single memory object.  (See ‘value semantic’ in the ABAP Online Help (transaction ABAPHELP or at help.sap.com).  ABAP gives a string or other value-semantic object its own memory object only on an as-needed basis – if the string is changed.

In many applications, a table like this list of customers is rarely changed, but is used instead to guide processing. In this case, it may make sense to make use of memory object sharing to reduce storage consumption.  In this application, CUSTOMER attributes like the country-of-residence reference the same string, as long as the same country is being referenced.  You can check out whether the strategy is really worthwhile – when filling a table, when reading a table, in the event that object attributes are changed – by doing some testing of the alternatives in the ABAP Runtime Analysis, transaction SAT. (See the weblogs by Olga Dolinskaja on the new SAT.)

An advantage of doing memory analysis in the debugger is that you can see what the value of the variables is. This is something that you cannot do when you analyze memory snapshots in the Memory Inspector (transaction SMI).  A double click on string {S:S9} above shows us what country all of those customers inhabit:

 Displaying the Value of a Memory Object in the ABAP Debugger

But the Memory Inspector, in turn, has the advantage of being able to compare memory snapshots and show changes in memory use over time. That’s an invaluable capability for checking for leaks in a long-running ABAP application.

 

 

 

 

 

 

 

 

 

Stephen Pfeiffer   is a senior developer in the ABAP Infrastructure development group.


http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/23875%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529

Posted by AgnesKim
Technique/그외2011. 3. 27. 15:17

Difference between transactions RS12 / SM12 ?
Martin Maruskin 
Business Card
Company: self employed
Posted on Mar. 25, 2011 01:35 PM in Enterprise Data Warehousing/Business Warehouse

URL: http://sapport.blogspot.com/2011/03/difference-between-transactions-rs12.html

Seems there is no difference; at least as of BW 3.0 and above. According SAP Note 316329 - Master data table locked locks on master data were handled differently in BW versions 2.0 – 2.1C. The difference is that not standard SAP lock mechanism was used but there was BW specific locking mechanism used. This was however removed in version 3.0 and subsequent. Therefore transaction RS12 is still in BW just because of BW history. As you can see the same ABAP report (RSENQRR2) is called by both TAs.

SM12

 

RS12

Martin Maruskin   SAP NetWeaver BW certified consultant


http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/23880%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529

Posted by AgnesKim
Technique/SAP BW2011. 3. 27. 15:16

How to find BWA version?
Martin Maruskin 
Business Card
Company: self employed
Posted on Mar. 25, 2011 01:46 PM in Enterprise Data Warehousing/Business Warehouse

URL: http://sapport.blogspot.com/2011/03/how-to-find-bwa-version.html

 
 

Well, from SAP BW side not that easy J however everything is possible since there is a class CL_RSDDTREX_SERVICE.

For very simple information about BWA release and its revision you can call GET_BIA_RELEASE method:

GET_BIA_RELEASE

For little bit more comprehensive information about SP of BW as itself you can call method COMP_BI_SP_BIA_REV.

 COMP_BI_SP_BIA_REV

Martin Maruskin   SAP NetWeaver BW certified consultant


Comment on this article
Comment on this weblog

Showing messages 1 through 3 of 3.

Titles Only Main Topics Oldest First
  • What was the background?
    2011-03-26 07:34:19 Vitaliy Rudnytskiy Business Card [Reply]

    Thanks for sharing Martin. What was the case where you needed to check it in ABAP? Thanks. -Vitaliy
    • What was the background?
      2011-03-26 09:31:28 Martin Maruskin Business Card [Reply]

      Hi Vitaliy, at current prj I have access only to BW backed into which BWA is connected to. And simply I was just curious about BWA version. For sure there many other ways to find it out from different places e.g OS shell scripts?, TREX Admin Tools?. This is just one that I was able to find.
      Cheers, Martin
      • What was the background?
        2011-03-26 12:50:12 Vitaliy Rudnytskiy Business Card [Reply]

        If you do not have access to standard transactions RSDDBIAMON and TREXADMIN, but have access to RSRV (and time, because it might take some time depending on the size of BWA) go to RSRV -> System Information -> BI Accelerator -> Simple BIA functionality check.
        In the output you'll find:
        ...
        ====== BIA Instances ======
        BIA instance found on ...
        ------ Instance XXX/00 ------
        version: 700.54.216538
        ...

Showing messages 1 through 3 of 3.



http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/23805%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529
Posted by AgnesKim
Technique/그외2011. 1. 27. 10:20

Step by Step Guide for Language Translation Tool

Sai Ram Reddy Neelapu    Article     (PDF 403 KB)     06 January 2011

Overview

This document helps people to understand the steps involved in translation of standard SAP screen and also helps to change the description of standard fields.

Posted by AgnesKim