Unconcetenate field to use in dimension

Hello,
I have table TABLE1 with columns "People_id", "Concetenate_values".
Example values:
"1", "1,2,4"
"2", "2,5"
Now I need to use "Concetenate_values" as dimension. I can't change TABLE1 table but I can create the others. Maybe anyone could give best practice for it? I was thinking about creating TABLE2 with columns "People_id", "Value":
"1", "1"
"1", "2"
"1", "4"
"2", "2"
"2", "5"
But if I in analysis services will connect TABLE2 to TABLE1 won't it multiply results?

Hello Suhas,
I'd like take to the end this situation.
So, I have TABLE 1 (Fact) with values
People_id Value
"1", "1,2,4"
"2", "2,5"
And created TABLE 2 (dimension?)
People_id, value
"1", "1"
"1", "2"
"1", "4"
"2", "2"
"2", "5"
How to create dimension from Table 2 and how to connect to Table1?
If I create dimension from Table2 with key People_id I get an error that there is dublicate key. Of course, because value 1 repeating 3 times and value 2 repeating 2 times.
If I create dimension from Table2 with key People_id + Value I can't join with Table 1, because there exists ONLY 1 field - People_id. I can't join because it demands 2 columns for joining.
So how to solve this situation?
This is need for filtering. For example if I in dimension filter would choose from Table2 value "4" it is need to show all People_id from Table1 which have value '4' in column "Value". In this particular case it is People_id = 1.

Similar Messages

  • Workaround for HFM Drill-Through when using custom dimensions ( 4) in FDM

    Hi all,
    we have the following scenario:
    - Target Custom 3 is defined as a combination of Target Product and Target Cost Center
    - Target Product needs to be obtained by mapping field "PRODUCT" in the source file
    - Target Cost Center needs to be obtained by mapping field "CC" in the source file
    So,
    One approach would be to enable Custom5 and Custom 6 dimensions in FDM, and configure sequence so these two dims are mapped before custom 3 which has a conditional map to get
    values from target c4 and c5 (using varvalues...)
    The issue here is that drill-through does not work as the sql query for the intersection is looking for UD5x and UD6X as NULL, N, or [NONE], and these two columns have a value as they were mapped.
    Trying to solve this issue, we configured C5 and C6 as lookup dimensions so we could create the mapping tables for them although in order to import data from source file fields we used attr2 and attr3. Besides UD5 and UD6, as expected, were not displayed in the Import and Validate/Export grids
    Then the idea was to update the work table with attr2->ud5 and attr3->ud6 in a event script (importaction or befprocmap..) so ud5 and ud6 are mapped.
    The problem is that we noticed that ud5 and ud6 are not updated from attributes. It seems that as they are configured as lookup dims, values may be mapped but not copied from work table to tdataseg.
    If this would work, then after custom3 is mapped we could set ud5x and ud6x to [none] in order the drill-through query to work.
    Having all in custom 3 dim and use mappings on combinations is not desired by the customer as they want to keep product and cc mappings separately.
    I was thinking to use a dummy location for product and cost center mappings and then emulate mappings using SQL but would like to avoid this.
    Any other suggestion?
    Thanks!

    The criteria for mapping C3 is:
    - If Plan = 6 Then Target C3 = SUBACCOUNT
    - If Plan <> 6 AND Account IN range [70000,70999] Then Target C3 = Target CC
    - If Plan <> 6 AND Account NOT IN range [70000,70999] Then Target C3 = Target CC_Target Product
    Fields in the file
    - PLAN
    - ACCOUNT
    - SUBACCOUNT
    - Source CC
    - Source Product
    So current solution actually is to put that logic in the import format so:
    - If Plan = 6 Then Source C3 = SUBACCOUNT
    - If Plan <> 6 AND Account IN range [70000,70999] Then Source C3 = "RULE2"
    - If Plan <> 6 AND Account NOT IN range [70000,70999] Then Source C3 = "RULE3"
    In the mapping of C3, we managed a simple script mapping checking the source C3
    If source c3 = RULE 2 -> Target C3 = Target CC
    If source C3 = RULE 3 -> Target C3 = Target CC_Target Product
    Else Target C3 = source C3 (which is SUBACCOUNT)
    C5 (Cost Center) and C6 (Product) are mapped before C3.
    In order to make Drill-Through working, we save UD5X and UD6X in ATTR2, ATTR3 so the user can see it, and we set then UD5X and UD6X to [None] so the Drill_Through SQL Query returns the values from FDM. If after loading the user goes to validate step, he will see [None] in C5 and C6 but actually this does not really matter as C3 has already been mapped and is the value to be loaded. If the want to review target product or target cc then they drill down to attribute information.
    regards

  • Use one dimension to feed 2 other dimensions

    Is there a way to use one dimension to push data into two other dimensions using push logic?  The client has one dimension in App1 that is a combination of 2 dimensions in App2 ie the Costcenter dimension in App1 is a combination of Plant and Account in App2.
    Now they want to push data from App1 into App2 using the Costcenter dimension to populate the Plant and Account.
    I have Plant and Acct properties in the Costcenter dimension for mapping.
    I tried to use *Rename_dim CC= CC.Plant and *Rename_dim CC=CC.Acct but would get errors when validating the logic script.
    Any help would be greatly appreciated.

    Parameters
    COSTCENTER: 70101014
    When I test the logic using the logic debugger, I get the error:
    Validate member failed:
    70101014
    70101014
    70101014
    70101014 on COSTCENTER dimension
    When I run the logic thru data manager, the package is successful but the end of the detail status log is 'No records to process'
    The push logic should ideally take the Costcenter 70101014 from App1 and take the first 4 char (7010) and record to the Plant dimension in App2 then take the last 4 char (1014) and record to the Account dimension in App2
    Logic script:
    *DESTINATION_APP= APP2
    *RENAME_DIM CC = ACCOUNT
    *RENAME_DIM CC= PLANT
    *WHEN CATEGORY
    *IS "AOP"
    *REC(CC=CC.RPT_A,CC=CC.PLANT,CATEGORY=AOP)
    *ENDWHEN     
    *COMMIT

  • Read selected values from a multi choice field programatically using Microsoft.SharePoint.Client namespace.

    All examples I found refer to classes under Microsoft.SharePoint namespace. However, I have the SharePoint CSOM that only gives me the Microsoft.Sharepoint.Client namespace.
    I need to read the selected values of a multichoice field, but not sure how to do it with classes in the namespace above.
    everthing works, exept the TSQL_x0020_Reference_x0020_Numbe field.
    my code looks like this:
    Webweb = cont.Web;
                cont.Load(web);
                cont.ExecuteQuery();
    Listsstest = web.Lists.GetByTitle("T-SQL
    Code Review Tracking");
    //CamlQuery query = CamlQuery.CreateAllItemsQuery();
    CamlQueryquery =
    newCamlQuery();
                query.ViewXml =
    @"<View>
                               <ViewFields>
                                    <FieldRef Name='Category'/>
                                    <FieldRef Name='Review_x0020_Type'/>
                                    <FieldRef Name='Review_x0020_Start_x0020_Date'/>
                                    <FieldRef Name='Title'/>
                                    <FieldRef Name='Location'/>
                                    <FieldRef Name='Project'/>
                                    <FieldRef Name='Author0'/>
                                    <FieldRef Name='AssignedTo'/>
                                    <FieldRef Name='TSQL_x0020_Reference_x0020_Numbe'/>
                                </ViewFields>
                             </View>"
     ListItemCollectionitems
    = sstest.GetItems(query);
                cont.Load(items);
                cont.ExecuteQuery();
    foreach(ListItemitem
    initems)
                    Output0Buffer.AddRow();
                    Output0Buffer.ReviewStatus = item.FieldValues[
    "Category"] !=
    null? item.FieldValues["Category"].ToString()
    : String.Empty;
                    Output0Buffer.ReviewType = item.FieldValues[
    "Review_x0020_Type"] !=
    null? item.FieldValues["Review_x0020_Type"].ToString()
    : String.Empty;
                    Output0Buffer.ReviewDate =
    DateTime.Parse(item.FieldValues["Review_x0020_Start_x0020_Date"].ToString());
                    Output0Buffer.Module = item.FieldValues[
    "Title"] !=
    null? item.FieldValues["Title"].ToString()
    : String.Empty;
                    Output0Buffer.BranchLocationURL = item.FieldValues[
    "Location"] !=
    null? item.FieldValues["Location"].ToString()
    : String.Empty;
                    Output0Buffer.ProjectName = item.FieldValues[
    "Project"] !=
    null? item.FieldValues["Project"].ToString()
    : String.Empty;
                    Output0Buffer.Author = item.FieldValues[
    "Author0"] !=
    null? item.FieldValues["Author0"].ToString()
    : String.Empty;
    FieldLookupValueflvAssignedTo =
    newFieldUserValue();
                    flvAssignedTo = item.FieldValues[
    "AssignedTo"]
    asFieldLookupValue;
    if(flvAssignedTo !=
    null)
                        Output0Buffer.AssignedTo = flvAssignedTo.LookupValue;
    varv = item.FieldValues["TSQL_x0020_Reference_x0020_Numbe"];
    if(v !=
    null)
                        Output0Buffer.Reason2 = v.ToString();
                 Output0Buffer.SetEndOfRowset();           

    Hi,
    According to your description, my understanding is that you want to read the selected choice field value using Client Object Model.
    In my environment, I create a list with a mutichoice fileld named "choice" and then I used the code snippet below to get the selected value in choice field.
    ClientContext clientContext = new ClientContext("http://sp2013sps/sites/test1");
    Microsoft.SharePoint.Client.List spList = clientContext.Web.Lists.GetByTitle("list1");
    clientContext.Load(spList);
    clientContext.ExecuteQuery();
    if (spList != null && spList.ItemCount > 0)
    Microsoft.SharePoint.Client.CamlQuery camlQuery = new CamlQuery();
    camlQuery.ViewXml =
    @"<View>
    <ViewFields><FieldRef Name='choice' /></ViewFields>
    </View>";
    ListItemCollection listItems = spList.GetItems(camlQuery);
    clientContext.Load(listItems);
    clientContext.ExecuteQuery();
    string value = listItems[0]["choice"].ToString();
    Console.WriteLine(value);
    Console.ReadKey();
    Thanks
    Best Regards
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • #SYNTAX error while using Merge Dimension in webi report

    Hi All,
    # Syntax error when using merge dimension in webi report
    screen shot has been attached.
    iam using BO 4.0 SP6
    checked the datatypes in BW
    they are same in BW in both the queries
    i followed the given links but no result.
    https://websmp230.sap-ag.de/sap%28bD1lbiZjPTAwMQ==%29/bc/bsp/sno/ui_entry/entry.htm?param=69765F6D6F64653D3030312669765F7361706E6F7465735F6E756D6265723D3138343530303526
    https://websmp230.sap-ag.de/sap%28bD1lbiZjPTAwMQ==%29/bc/bsp/sno/ui_entry/entry.htm?param=69765F6D6F64653D3030312669765F7361706E6F7465735F6E756D6265723D3136323339323126
    https://websmp230.sap-ag.de/sap%28bD1lbiZjPTAwMQ==%29/bc/bsp/sno/ui_entry/entry.htm?param=69765F6D6F64653D3030312669765F7361706E6F7465735F6E756D6265723D3137353438313026
    http://scn.sap.com/thread/3592588#15241008
    Need Help!!!!!
    Regards
    Sushma

    Hi Mark,
    Thanks for the reply,
    I did not use any formula,
    I used merge dimension
    Anyways i tried in other system,it s working fine.
    Regards
    sushma

  • How to get a field that using variable in order to create a query

    Hi,
    I found a difficulty when creating a query. so, I would like to ask you some question.
    1. How to get a field that using variable which that field I want to put it in my query?
    For example, I would like to take quantity field in inventory audit report. And when I put my cursor in
    quantity field, there was only variable, item, etc. How to get this and put it in query?
    2. How to combined the invoice quantity with inventory audit report quantity?
    3. I have a query like this:
    SELECT distinct T0.[DocDate] as 'Tanggal', T0.[DocNum] as 'No.Faktur', T1.[ItemCode] as 'Kode Barang',
    T1.[Dscription] as 'Deskripsi', T1.[Quantity] as 'Quantity', ((T1.[LineTotal])/(T1.[Quantity])) as 'Harga
    Satuan', T1.[LineTotal] as 'Harga Total', T3.[CalcPrice] as 'HPP Satuan', ((T3.[CalcPrice]) * (T1.
    [Quantity])) as 'HPP Total', T4.[ItmsGrpNam] as 'Jenis Barang', T5.[SlpName] as 'Nama Sales', T1.
    [WhsCode] as 'Kode Gudang' FROM [dbo].[OINV] T0 INNER JOIN [dbo].[INV1] T1 ON T0.DocEntry =
    T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode INNER JOIN OINM T3 ON T2.ItemCode
    = T3.ItemCode INNER JOIN OITB T4 ON T2.ItmsGrpCod = T4.ItmsGrpCod INNER JOIN OSLP T5 ON
    T0.SlpCode = T5.SlpCode WHERE T3.[TransType] = '13' and T3.[CreatedBy] = T1.[DocEntry] and T0.
    [DocDate] >=[%0] and T0.[DocDate] <=[%1] and T4.[ItmsGrpNam] =[%2] and T1.[WhsCode] =[%3]
    Is it possible if I just take one invoice with invoice quantity and only show up at once although I have a
    lot item cost for that item? (because I'm using FIFOmethod).
    Please help me.. cause I'm stuck with this thing :l.
    Thank you very much, and I'm waiting your respon soon.
    Regards,
    Sisca

    Try this one:
    SELECT distinct T0.DocDate as 'Tanggal', T0.DocNum as 'No.Faktur', T1.ItemCode as 'Kode Barang',
    T1.Dscription as 'Deskripsi', T1.Quantity as 'Quantity', ((T1.LineTotal)/(T1.Quantity)) as 'Harga
    Satuan', T1.LineTotal as 'Harga Total', T3.CalcPrice as 'HPP Satuan', ((T3.CalcPrice) * (T1.
    Quantity)) as 'HPP Total', T4.ItmsGrpNam as 'Jenis Barang', T5.SlpName as 'Nama Sales', T1.
    WhsCode as 'Kode Gudang'
    FROM dbo.OINV T0 INNER JOIN dbo.INV1 T1 ON T0.DocEntry =T1.DocEntry
    INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
    INNER JOIN OINM T3 ON T2.ItemCode = T3.ItemCode AND T3.TransType = '13' and T3.CreatedBy = T1.DocEntry AND T3.Warehouse = T1.WhsCode
    INNER JOIN OITB T4 ON T2.ItmsGrpCod = T4.ItmsGrpCod
    INNER JOIN OSLP T5 ON T0.SlpCode = T5.SlpCode
    WHERE T0.DocDate >=[%0\] and T0.DocDate <=[%1\] and T4.ItmsGrpNam =[%2\] and T1.WhsCode =[%3\]
    Thanks,
    Gordon

  • Hello, I have created a distribution kit for my program.The problem is that the when the program is installed onto another computer, it fails to communicate with field point (Using FP-AO-200 and FP-AO-1000). Help is greatly appreciated, Thanks faen9901

    Hi Everyone,
    I have a program that sends information(analog output) to lab windows cvi in the form of a text file or user input.
    The program runs on the computers that I have the field point explorer and lab windows cvi installed on. In order to run the program without always installing labwindows/cvi and field point; I wanted to create an executable file that could be load on another computer.
    I used the create distribution kit part of labwindows/cvi to do this.After creating the distribution kit, I then installed it
    to another computer.
    My user interface appears on the screen, when the user clicks on the exe. file, but no data is sent to the field point module. I know that the data is being read from the user and textfile because in it appears in the uir.
    The following are some details about the problem:
    1. On another computer without labwindows/cvi and field point explorer not installed - no data is sent to field point module
    I know this because a current is being read on the current meter connected to field point module.
    My questions are the following:
    1. What are the possible reasons for the data not being sent to the field point module?
    2. Do I still need to create an iak. (Installing Field point Explorer) file stored on any new computer that I install my created distribution kit file too?
    Thankyou very much for any help that you can provide. I greatly appreciate it.
    Faen9901

    Re: Hello, I have created a distribution kit for my program.The problem is that the when the program is installed onto another computer, it fails to communicate with field point (Using FP-AO-200 and FP-AO-1000). Help is greatly appreciated, Thanks faen9901Faen9901,
    1) If you do not install FieldPoint Explorer, the FieldPoint Server is not installed so there is nothing on the target computer that knows how to talk to the FieldPoint system.
    2) Yes, you need an IAK file on the target computer. Assuming the settings (i.e. com port#) are identical you can simply include the iak file as part of the distribution.
    3) You also need to include as part of your installer the file "fplwmgr.dll". If this file is not installed, your program will not be able to access the FieldPoint Server. Alternatively, this file is installed automatically if FieldPoint Explorer detects LabWindows/CVI or Measurement Studio Development versions on the target computer or if you choose to do a custom FieldPoint Explorer installation and
    choose to provide LabWindows/CVI support.
    Regards,
    Aaron

  • In table pa0002 need which fields is used for what countries

    Hi
    My client is implementing PA for 10 countries
    From pa0002 table the client wants a reports where he wants fields and the countries in which thats fields are used ?
    How and where can i get this information
    Thanks
    Raj

    Hi Raj,
    you can take this from Ad-Hoc qry (SQ01) as a report.

  • #Error & #Syntax when we are using merged dimension in BO4.1 SP3

    Dear All,
    We are using BO4.1 SP3 and Bex query as datasource.
    When we are trying to take merged dimensions in Report block its giving #Syntax Error.
    When we are defining variable with merged dimension, its giving #Error message and the merged dimension is deleted from the definition.
    Please guide how can I use merged dimension.
    Kindly let us know if there are some update required in the current BO version.
    Warm Regards,
    Sonal

    First things abt merge dimension is that merge is applicable only on dimension not on measures.
    And other is dimension that are going to be merge should have same data type.
    I think you should check these conditions then it will works.
    Merge is nothing but full outer join between two data providers. It helps joining two result sets on webi level.
    Kindly attach your screen shots so that it would be helpful.

  • Use of Dimensions in APO DP Planning Object Structures

    In APO DP Planning Objct Structures, I know that it's possible to assign Dimensions to characteristics.
    The standard help documentation suggests this is 'to improve performance'.
    Can anyone give practical guidance about how to assign Dimensions to improve performance?
    Thanks,
    Bob Austin

    the characterisitcs are grouped logically using the Dimensions
    the use of dimensions allows data to be stored in a combination of dimension tables and fact tables
    the dimention table consists of the dimension number, a primary key characteristics you assign to the dimension
    the primary keys from various dimension tables link up at the fact table and to the values stored in it
    so you can think of a star schema of tables with the dimension acting as the link
    so when you look for a particular value the dimension table is first quesried based on which the fact table the primary key is linked to is looked up
    in order to improve performance, make sure you dont assign too many characterisitics to one dimension
    try to logically group the characterisitics - geography for eg can be made of state, region (not material type)
    you can also try to match the dimension with the selections you will be using in the planning book,
    dimension tables could grow as your characteristic values increase so SAP advices you keep an eye on it (i am not sure of how functionally you can help this but i believe basis will be able to help you with allocating space on an oversized table)
    there is a document somewhere in sap marketplace that i am not able to find a link... hopefully someone will link it up here

  • How to validate an text field item using javascript for numbers only.

    hi,
    how to validate an text field item using javascript for numbers only.please help me on this urgent
    please mail me solun if posible on [email protected]

    Hi,
    Page HTML header
    <script>
    function onlyNum(evt) {
      // Usage: onKeyPress="return onlyNum(event)"
      evt = (evt) ? evt : window.event;
      var charCode = (evt.which) ? evt.which : evt.keyCode;
      if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        var status = 'This field accepts numbers only!';
        alert(status);
        return false;
      var status = '';
      return true;
    </script>Item HTML Form Element Attributes
    onKeyPress="return onlyNum(event)"Br,Jari

  • Using a Dimension/ Measure in a Where clause of Another Dimension/ Measure in IDT

    Hi All
    I am building a Universe using Information Design Tool. In the Business Layer, I need to use a created Business Layer Dimension (not Tables) in a Where clause of another dimension as follow:
    Dimension: "Current Week No"
         SELECT
              budgets.dbo.Calenderweeks.WeekNo
         WHERE
              budgets.dbo.Calenderweeks.EndDate = convert(SMALLDATETIME, fn CURDATE()})  
    Dimension: "Last Week No"
         SELECT
              budgets.dbo.Calenderweeks.WeekNo
         WHERE
              budget.dbo.Calenderweeks  .WeekNo = @Select(Dimension\Current Week No) - 1
    The first dimension is working well. However, the "Last Week No" shows NOTHING (I do not get any value)
    Anyone can explain why I am not get any value from the second dimension, and how I can use a Dimension/ Measure in a Where clause of another Dimension/ Measure ?
    Thanks

    Short answer:
    Beware of object WHERE clauses. They are rarely (I'd almost say never) the solution to the problem you're trying to solve.
    Long answer:
    It doesn't work because you are inadvertently filtering the same value twice in two incompatible ways in the same SQL statement.  Both objects SELECT the same column in the database.  The first object uses a WHERE clause to set it to the current week.  The second object attempts to use a WHERE clause to set it to the previous week, but does so by selecting the first object, so you end up with both objects in your data provider.
    Remember that BO is going to place all the objects in your data provider in the same SQL (except of course where your context definition has ensured otherwise.), so you have two WHERE clauses in your generated SQL which attempt to find a line equal both the current week and the previous week... and returns, naturally, no results.
    Rewrite it with a derived table (as explained in the response above) and you'll get what you want.

  • Using time dimension in materialized view

    Do anybody has an example of using Time dimension in MVIEW?. The time tablke has no relation with oder object (ex. i will join the time table with sales table, which has no relation with each other.
    Thanks in advance
    Mehdi

    Hi
    Check the foreign key on the fact table to see how it is related to the time dimension table.
    Cheers
    David

  • Check list field values using LINQ

    I have to check if the CURRENT USER is already in the list USERS by comparing his AccountName to the list field ACCOUNTNAME.
    If the USER is on the list I have to check if the field IsFollower is YES or NO and change it according to some conditions.
    I think LINQ would be the correct way of doing this but I have no clue how to do that.
    Any ideas pls, thanks

    Hi,
    Yes, you can query the list using LINQ.
    You need to get the SPList Object firstly, and then you can query list item value using LINQ.
    More information about how to check list field value using LINQ:
    http://msdn.microsoft.com/en-us/library/office/ee538250(v=office.14).aspx
    http://www.wolfsys.net/query-sharepoint-lists-with-linq/
    http://geekswithblogs.net/TanviBlog/archive/2013/06/06/linq-in-sharepoint-and-querying-list-items.aspx
    More information about how to use Server Object Model in SharePoint lists:
    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspx
    http://msdn.microsoft.com/en-us/library/office/ms456030(v=office.14).aspx
    Best regards

  • How to create field catalog using field-symbols in normal alv report?

    hi all,
    how to create field catalog using field-symbols in normal alv report? i.e, using function modules...reuse_alv_list_display/grid_display?
    regards,
    jack

    HI
    LIKE THIS
    TYPE-POOLS : slis.
    DATA : t_fieldcat TYPE slis_t_fieldcat_alv,
           st_fieldcat TYPE slis_fieldcat_alv.
    st_fieldcat-fieldname     = 'STATUS'.
      st_fieldcat-seltext_l     = 'STATUS INDICATOR'.
      st_fieldcat-outputlen     = 17.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBELN'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Sales Document No.'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUDAT'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Date'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBTYP'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Type'.
      st_fieldcat-outputlen     = 4.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUART'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Category'.
      st_fieldcat-outputlen     = 1.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUGRU'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Reason'.
      st_fieldcat-outputlen     = 3.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'NETWR'.
      st_fieldcat-do_sum        = 'X'.
      st_fieldcat-seltext_l     = 'Net Amount'.
      st_fieldcat-outputlen     = 15.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'WAERK'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Unit'.
      st_fieldcat-outputlen     = 5.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
    *sortinfo
      st_sort-fieldname = 'AUART'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBTYP'.
      st_sort-up        = 'X'.
      st_sort-subtot    = ' '.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'WAERK'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBELN'.
      st_sort-up        = ' '.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type     = 0
       IMPORTING
         et_events       = it_eventcat
       EXCEPTIONS
         list_type_wrong = 1
         OTHERS          = 2.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
      IF grid = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
         I_INTERFACE_CHECK                 = ' '
         I_BYPASSING_BUFFER                = ' '
         I_BUFFER_ACTIVE                   = ' '
          i_callback_program                = g_program
          I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
         I_CALLBACK_USER_COMMAND           = ' '
          I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
         I_CALLBACK_HTML_END_OF_LIST       = ' '
         I_STRUCTURE_NAME                  =
         I_BACKGROUND_ID                   = ' '
         I_GRID_TITLE                      =
         I_GRID_SETTINGS                   =
         IS_LAYOUT                         =
           it_fieldcat                       = t_fieldcat
         IT_EXCLUDING                      =
         IT_SPECIAL_GROUPS                 =
          it_sort                           = t_sort
         IT_FILTER                         =
         IS_SEL_HIDE                       =
         I_DEFAULT                         = 'X'
         I_SAVE                            = ' '
         IS_VARIANT                        =
         IT_EVENTS                         =
         IT_EVENT_EXIT                     =
         IS_PRINT                          =
         IS_REPREP_ID                      =
         I_SCREEN_START_COLUMN             = 0
         I_SCREEN_START_LINE               = 0
         I_SCREEN_END_COLUMN               = 0
         I_SCREEN_END_LINE                 = 0
         I_HTML_HEIGHT_TOP                 = 0
         I_HTML_HEIGHT_END                 = 0
         IT_ALV_GRAPHICS                   =
         IT_HYPERLINK                      =
         IT_ADD_FIELDCAT                   =
         IT_EXCEPT_QINFO                   =
         IR_SALV_FULLSCREEN_ADAPTER        =
       IMPORTING
         E_EXIT_CAUSED_BY_CALLER           =
         ES_EXIT_CAUSED_BY_USER            =
          TABLES
            t_outtab                          = it_final
          EXCEPTIONS
            program_error                     = 1
            OTHERS                            = 2
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    REWARD IF USEFULL

Maybe you are looking for