Requirement of additional object at query level

hi all
there is a requirement of purchasing group as a characteristics in query level..i am using standard cube 0pur_c01(purchasing data)..can u plz tell me how i shuld go about it....
thanks
shalini

Hi Shalini
0PUR_GROUP is navigational attribute of 0Orgunit and 0orgunit is again navigational attribute of 0BPARTNER and 0BPARTNER is navigational attribute of 0vendor...0vendor is an infoobject for your infocube...so definitely you will get this...please check once again...and also check mappings in transfer rules for all the above objects and update rules for mapping 0vendor.....
Thanks
Teja

Similar Messages

  • BAPI_OBJCL_GET_KEY_OF_OBJECT - Class type 001 requires additional objects

    ABAP'ers
    I am trying to use BAPI's to complete class assignments (mimicking CL20N). 
    I am using BAPI_OBJCL_GET_KEY_OF_OBJECT to get the internal object key that is needed for BAPI_OBJCL_CHANGE_KEY, which I am using to complete the classification.
    When I execute BAPI_OBJCL_GET_KEY_OF_OBJECT for class type 002 I get the internal key needed for the second BAPI.
    When I execute the same BAPI for class type 001 I get the following error:
    "CL669 - Class type 001 requires additional objects"
    I have seen other posts on the forums on how to do this for class type 023, but I need to complete this for class type 001. 
    What are the additional objects needed? 
    Can I use this feature if a material HAS NOT been extended to a plant or storage location?
    I have looked in table INOB and there are no entys for this class type - is this normal?  Is there something that I am missing?
    I have already tried internal and external values, concatenating with the client number and plant number but still get the same error.

    Hey Chris,
    You cannot use the BAPI for class type 001, This BAPI can only be used with class types which have multiple objects enabled.
    For changing the characteristics of material try using  BAPI_OBJCL_CHANGE.
    Here the key of the object will be your material number

  • Need the solution in the Bex Query level for a Business Requirement.

    Hi BI Experts,
    I have a requirement at Bex Query level and the scenario is like this:
    Business Logic.
    Right now am showing the Stocks falling in to time slot like 6-9 months and 10-12 months from the date of PKD in two columns B1 and B2 respectively.
    And also calculating the stock selling price of B1 with 30 % discount and B2 with 50% discount.
    In the above said discounts client may change the discount % in any future Quarters
    Now the requirement is, if client needs to see the history of sales according to the declared Discount selling prices of stocks falling into B1 and B2 slots, he must get the values accordingly.
    ( Am using the Formulas for calculating the Discount % for the Stocks fall in to B1 and B2 slots)
    Business Example:
    For Q4 2007 The discount for B1 Stocks is 35% and B2 Stocks is 60%.
    For Q2 2008 The discount for B1 Stocks is 35% and B2 Stocks is 55%.
    For Q3 2008 The discount for B1 Stocks is 30% and B2 Stocks is 50%.
    For Q4 2008 The discount for B1 Stocks is 40% and B2 Stocks is 50%.
    Now running report ( running in Q4 2008  at some date) if client needs to check the B1 and B2 stocks in Q4 2007 or Q3 2008 the values need to come with the calculation of repective % of disounts declared in that quarters along with the selling prices in that quarter.
    This all should be done at query level nothing to do at Infoproviders level.
    Is there any option like storing query data as a master data  and retrive it according to the selection to get the exact values of the respective % Discounts and time lines.
    If It is not clear come up with questions for still more clarifications.
    Points are assured.
    Thanks in Advance,
    RK.

    Who is defining the % discounts for periods/quaters?
    Is this maintained in a custom table or externally in legacy/R3 system?
    There are various ways to achieve the result. Variable exits can be used or virtual KF/char can be used but all depends on actual requirements.
    Cheers

  • Query Level Analysis Authorization

    Experts,
    I have a requirement to provide Analysis Authorizations at a QUERY level.  For example, I have two analysis authorizations: (1) Org Unit and (2) Material Number.  I populate each of these Analysis Authorizations using a BEx Variable (through RSECAUTH) and customer exit "EXIT_SAPLRRS0_001".  In the user exit I look up what authorizations the user has for each field in a custom table.  For example, User A has access to Org Unit ORG1 and Materials M1, M2, M3.  User B has access to Org Unit ORG2 and Materials M4, M6, M8.  The Analysis Authorizations are assigned to the users via S_RS_AUTH object and it works perfectly.
    However,  we now have a new report, where we would like continue restricting the user to ORG1 but allow them to see ALL Materials.  But this requirement is only for a couple of reports. All other reports should continue to enforce BOTH restrictions.
    I don't see a way to determine which query the user is running.  In the user exit for normal variable exits, I can reference the field i_s_rkb1d-compid which has the query technical name.  But when filling the authorization variable in I_STEP = 0, that field is not populated.
    Has anyone experienced a way to create authorizations at a query level?  Is there an SAP InfoObject like 0TCAACTVT where I can specify a query name?  Your help is greatly appreciated.  Thanks!
    J

    Hi,
    SAP BW Authorization is definitely different from R/3 authorization. Why? Well, first, R/3 authorization usually involves up to the transaction code level. But for SAP BW, the mostly used transaction is "RSA1" and "RRMX". Therefore, authorization based on transaction code alone, is definitely not sufficient.
    So how do we design authorization in SAP BW? There's a few authorization objects that relates to SAP BW.
    For reporting, you will most probably use the following SAP BW authorization object:
    S_RS_COMP - Reporting Component, here is where you control the query authorization blah blah.
    S_RS_COMP1 - Reporting Component Owner, you can control users to only be able to access report created by Power Users, here.
    S_RS_FOLD - Disable/Enable the 'InfoAreas' button.
    Besides that, you will also need to configure the following authorizations:
    S_RS_ICUBE - Infocube authorization
    S_RS_ODSO - ODS Objects
    S_RS_HIER - Hierarchy Authorization
    For SAP BW administration purposes, aside from the above, you also need to configure the following authorization objects:
    S_RS_ADMWB - Administrator Workbench
    S_RS_IOBJ - Info Objects authorization
    S_RS_ISOURCE - Transaction Infosource
    S_RS_ISRCM - Master Data Infosource
    There that's what you need for authorization. Anyway, to achieve "field level" authorization like those in R/3, you can create a customize object, select the infoobject that has been set "authorization relevant", and add it in the authorization matrix, and walla, you got "field level" authorization.
    and refer the below link,
    Re: BI 7.0 Analysis authorization- How to control
    Hope it helps you,
    Regards,
    Ravindra.

  • Information Broadcasting Authorization at Query Level

    Hi,
    I would like to know, is there any way to authorized a user at query level in information broadcasting?
    For example, there are three plant P1,P2 and P3 showing in Query, now i want to broadcast this query to E-mail to two user U1 and U2 in following manner.
    1.) User U1 get only Plant P1 Data.
    2.) User U2 get only Plant P2 Data.

    Yes, you can do that. For that;
    Plant should be authorization relevant info object
    (ii) you must have roles to give access to users at Plant level
    (iii) Users U1 and U2 must be SAP user IDs and should have required role for Plant access
    (iv) Query to be broadcasted must have auhtorization variable for Plant
    Once the basic setup is ready, you can test it by executing the report for individual users U1 and U2 and they should see data only for respective Plants.
    Now in the broadcasting setting, specify the users U1 and U2 in User box seperated by semi-colon and tick the checkbox "User Specific" - this will make sure that data is executed as per the data aurthoziation and also format will be selected as per the user profile (date format etc).
    If U1 and U2 are not the SAP users, you will have give their email addresses and will have to create two different broadcast settings to send data for selection plants.
    I hope it helps.
    Regards,
    Gaurav

  • Query level filter not working in Webi report

    Hi All,
    I am using BOXI R3.1 (SP3), m facing one problem when refreshing Webi report on daily basis. I am using three query level filter as a prompt, but i checked one filter is not working then i need to reapply this filter and rest 2 filter is working fine.
    Can anyone suggest me why problem is coming?
    Regards,

    Hi,
    Prompts are interactive, and come from the query panel. Filters are not interactive, and are set on the report or block. There are also input controls, which are interactive filters
    1. Select the universe in the list of universes to open the Query Panel.
    2. Drag the Year object to the Result Objects pane.
    3. Drag the Number of Guests object to the Query Filters pane and create a report filter that restricts Number of Guests to greater than n.
    4. Click Combined Query.
    The Combined Query pane appears in the bottom left of the Query panel with the two queries joined by UNION.
    5. Click on the second query and remove the Year and Number of Guests objects.
    6. Drag the Reservation Year object to the Result Objects pane.
    7. Drag the Future Guests object to the Query Filters pane and create a report filter that restricts the future guests to greater than n.
    8. Click Run Query.
    Best Regards
    Naveen

  • Is there a way to force a View Object to query the database always?

    Dear All,
    Is there a way to force a view object to always scan the database table to read the latest data?
    Here's my use case.
    I have a page that loads data then I have a button which executes the following code.
    viewObject.setApplyViewCriteriaName("SampleCriteria");
    viewObject.setNamedWhereClauseParam("arg1", "test");
    viewObject.executeQuery();
    RowSetIterator it = viewObject.createRowSetIterator(null); 
    while(it.hasNext()) {
         /* More Code */
    }Suppose after page load, I edited some row in the table and then I clicked the button. I notice that my edited row
    was not reflected in the query.
    I am not sure but is there some configuration to check so that when the viewobject executes it will always query the data
    from the table?
    I am thinking that there is some level of caching and I want to disable it. If I restart my application, I notice that it is able to read the latest data.
    JDEV 11.1.1.5

    By default a view object performs its query against the database to retrieve the rows in its resulting row set. However, you can also use view objects to perform in-memory searches and sorting to avoid unnecessary trips to the database.
    The view object's query mode controls the source used to retrieve rows to populate its row set. For more details please refer: http://docs.oracle.com/cd/B31017_01/web.1013/b25947/bcadvvo005.htm
    Also, see if this helps: setQueryMode for secondary rowSet not working

  • Ascending Order of Objects at universe Level

    Hi Techies.
    I am working on BO 3.1 Designer SP5.
    I have one Period (Month Year) object at universe level and I have arranged the order of object as Descending by editing the properties of the object.
    and when I use this object in the Query Filter section and making it as a Mandatory prompt, the values are loading in a different way rather than descending order.
    Please help me on this......
    thanks in Advance...

    Hi
    If you want to sort the LOV’s, use the  LOV’s based on custom SQL option.
    Please find the below sample code.
    Sample Code
    SELECT DISTINCT FIELD
    FROM
    TABLE
    ORDER BY 1
    And find the below link for more info.
    http://scn.sap.com/community/semantic-layer/blog/2014/06/11/how-to-sort-the-list-of-values-in-the-prompts-screen

  • How to write an inverse routine for an info object at field level.

    Hi All,
    Our requirement is as follows:
    Need to populate 0MAT_PLANT in a virtual provider. But during query performance it is like -
    If someone were to add a filter to the BW query on 0MAT_PLANT, it would take the system awhile to search the APO database for that 18 CHAR material number because the data in APO is stored differently (40 CHARs).  The point of the  inverse routine is to convert the 18 CHAR to be 40 CHAR for those times when someone selects on 0MAT_PLANT.  That way, the field types match and finding the data in APO is much quicker.
    Hence if we need selection on the selection scree of the query for 0MAT_PLANT, we are trying for inverse routine which will convert 18 chars to 40 chars in the query level and the performance will be quicker.
    See, 0MAT_PLANT is of 18 Char length. We are mapping it from ZMATNR in source which is of 40 chars. Thus initially in the field routine we will write a code to convert 0MAT_PLANT to 18 from 40.
    Below is the code and the place we now we also need to write inverse routine to convert it to 40 from 18 chars.
    *****Code to convert from 40 chars to 18******
    *In APO if the material contains all integers values the material will
    * come over as a 40 byte field.  It needs to be shortened.
      IF SOURCE_FIELDS-/BIC/ZMATNR CO '0123456789'.
        short_material = SOURCE_FIELDS-/BIC/ZMATNR+22(18).
    *In APO if the material contains any character fields the material will
    * not be zero filled and will be left alligned. Take the 1st 18 bytes.
      ELSE.
        short_material = SOURCE_FIELDS-/BIC/ZMATNR(18).
      ENDIF.
    *add leading zeros to numeric only value
      IF short_material CO '0123456789 '.
         w_num18 = short_material.
         short_material = w_num18.
      ENDIF.
      RESULT = short_material.
    *$*$ end of routine -
    ***********here the iverse routine need to write************
    *       Method invert_0MATERIAL
    *       This subroutine needs to be implemented only for direct access
    *       (for better performance) and for the Report/Report Interface
    *       (drill through).
    *       The inverse routine should transform a projection and
    *       a selection for the target to a projection and a selection
    *       for the source, respectively.
    *       If the implementation remains empty all fields are filled and
    *       all values are selected.
      METHOD invert_0MATERIAL.
    *$*$ begin of inverse routine - insert your code only below this line*-*... "insert your code here
    Here you would write logic in 0MAT_PLANT to do the opposite of the above,
    convert 18 back to 40 characters.
    *$*$ end of inverse routine - insert your code only before this line *-*
      The articulated form above in RED says that the subroutine i.e. the inverse routine is implemented for direct access and report to report interface.
    Could anybody please help me or let me know any idea related to this.

    Hi All,
    Our requirement is as follows:
    Need to populate 0MAT_PLANT in a virtual provider. But during query performance it is like -
    If someone were to add a filter to the BW query on 0MAT_PLANT, it would take the system awhile to search the APO database for that 18 CHAR material number because the data in APO is stored differently (40 CHARs).  The point of the  inverse routine is to convert the 18 CHAR to be 40 CHAR for those times when someone selects on 0MAT_PLANT.  That way, the field types match and finding the data in APO is much quicker.
    Hence if we need selection on the selection scree of the query for 0MAT_PLANT, we are trying for inverse routine which will convert 18 chars to 40 chars in the query level and the performance will be quicker.
    See, 0MAT_PLANT is of 18 Char length. We are mapping it from ZMATNR in source which is of 40 chars. Thus initially in the field routine we will write a code to convert 0MAT_PLANT to 18 from 40.
    Below is the code and the place we now we also need to write inverse routine to convert it to 40 from 18 chars.
    *****Code to convert from 40 chars to 18******
    *In APO if the material contains all integers values the material will
    * come over as a 40 byte field.  It needs to be shortened.
      IF SOURCE_FIELDS-/BIC/ZMATNR CO '0123456789'.
        short_material = SOURCE_FIELDS-/BIC/ZMATNR+22(18).
    *In APO if the material contains any character fields the material will
    * not be zero filled and will be left alligned. Take the 1st 18 bytes.
      ELSE.
        short_material = SOURCE_FIELDS-/BIC/ZMATNR(18).
      ENDIF.
    *add leading zeros to numeric only value
      IF short_material CO '0123456789 '.
         w_num18 = short_material.
         short_material = w_num18.
      ENDIF.
      RESULT = short_material.
    *$*$ end of routine -
    ***********here the iverse routine need to write************
    *       Method invert_0MATERIAL
    *       This subroutine needs to be implemented only for direct access
    *       (for better performance) and for the Report/Report Interface
    *       (drill through).
    *       The inverse routine should transform a projection and
    *       a selection for the target to a projection and a selection
    *       for the source, respectively.
    *       If the implementation remains empty all fields are filled and
    *       all values are selected.
      METHOD invert_0MATERIAL.
    *$*$ begin of inverse routine - insert your code only below this line*-*... "insert your code here
    Here you would write logic in 0MAT_PLANT to do the opposite of the above,
    convert 18 back to 40 characters.
    *$*$ end of inverse routine - insert your code only before this line *-*
      The articulated form above in RED says that the subroutine i.e. the inverse routine is implemented for direct access and report to report interface.
    Could anybody please help me or let me know any idea related to this.

  • Logical Formula at query level?

    I have requirment like if D =  0 then ' ' (SAPCE) else E / F.
    I dont know how to get space ?
    please help me to create this formula at query level?

    hi Hari,
    I am not really sure ,but u can try this...
    if D = 0 then ' ' (SPACE) else E / F.
    use the same formula and make it Zero instead of space and then in the Query properties replace Zero with Blank or Space Values.
    Rgds
    SVU123
    Edited by: svu123 on Sep 30, 2010 6:53 AM

  • Query level formula is not working for all the amounts

    Hi Friends,
    In my production system I found new thing that in my query level I done some calculation (as per my requirement I done amount devide by 100 to get correct values)
    It is working for all the amounts except 1or 2 amounts, im uploading same source file for  all the amountsu2026 why it is happening like this u2026and is there any availability to change those 1 or 2 values at data base tables level  or at any pleace (I hope in SAP it is may not possible)u2026can any body tell me why it is happening like this. u2026 because of  this issue only my report is pending to sign off u2026.please  can any body find  the solution ASAP.
    Regards,
    VENKAT

    Are they non decimal currencies?
    If yes, create RKF1 on amount field excluding the currencies for which you are not getting currect values then in CKF or formula as RKF1 / 100.   Similarrly create another RKF2 on amount only including the currencies which are excluded in RKF1, create a CKF or formula as RKF2/10000. Then created another formula wich adding CKF1 and CKF2.

  • WEB BEx Analyzer Comments on Query level

    I would like to enable BW users to create comments for some queries an enable other user to read them. System BW 7.01.
    Issues and questions:
    -how to create comment on query level - it's always on data (KYF), Metadata or Master data level
    -I would like to show the document icon - next to the query title (it's relevant for the query)
    -when I create Comments (with the button in the standard template), it's on the data level (combination of KYF) - and when I
    switch to icon display (settings) I get icons in every line. If this would be just at KYF header??
    -where can I edit, delete, ... recorded comments
    Thanks, Tom

    Hi Tom,
    1) If you want to create comments on query level, you need to create metadata documents, object type 'ELEM', object name is the technical name of the query.
    2) Document icons are always shown in the data table. Thus it will be hard to show a document icon for a document on query level. If you are using web templates, you can insert a single document item on metadata documents to display the comment on the query.
    3) Where the document is displayed depends on the document properties. If a characteristic is document property depends on the infoobject setting -> transaction RSD1 -> enter the characteristic -> tab 'general'.
    To see the document properties you can execute the query for example in RSRT (html mode) -> create a new document on any cell. On the bottom you will see the document assignment. Compare this assignment with the cell next to it. If its the same the document will be displayed in both cells. The same can be done for example in java web -> create a new document and switch to the second tab ('BI').
    4) Documents can be edited and deleted in the document browser itself, when you open the document in the executed query or in transaction RSA1 -> documents.
    Best regards,
    Janine

  • Data at Query level

    Good Afternoon everyone,
    data is loaded correctly in my infocube thru flat file.but wen i create query on this provider n drill down on one of the object i see different data then cube(field is 'assigned to' which actually store the person's name who the ticket is assigned to but in query it is showing some data which look as some date in single quotes.ex- '20080101').wat can be possible reson for this?
    Regards,
    Deepika

    Hi,
    You are trying to see a assignne name but u are getting a date.
    Thats only possible if the mappings are wrong(identifications) in multicube or u are giving different restrictions at the cube level and at the query level.
    The cube is defenately going to contain the values shown in the report for that infoobject.
    Again go through the restrictions and filters in the query.
    Query will show whatever is in the cube based on the restrictions.
    It will not do the conversions as u have said in your case.
    If it is a multicube check for the identifications again in the multicube for this charactritics.
    It is possible that update rules are correct but the identification in the multicube is incorrect and assignne is mapped to some date.
    Thanks
    Ajeet

  • How to pass an array or structure, in addition to a query, or multiple queries to the Report Builder as parameters

    Is there a way to pass an array or structure for example as parameters, in addition to a query, or multiple queries to the Report Builder in CF8? I believe this was recommended by users to be in CF8.

    BrianO,
    Although it's been a while, I thought I'd provide the code to do this for you. It works for me in CF8, and probably will in CF7.
    Here I create a structure called My, and provide that one parameter to my CFReportParam tag.
    <CFSet My = {
    Client = "Client Name",
    ReportDateFrom = DateFormat(ThisStartDate, DateMask),
    ReportDateTo = DateFormat(ThisEndDate, DateMask),
    PageHeaderImage = ImagePath & "\Logos\Page_Header.png",
    WatermarkImage = ImagePath & "\Logos\Watermark.png",
    GetBarSummary = GetBarSummary,
    GetPieSummary = GetPieSummary
    }>
    <CFReport Template="#ReportPath#\SpendSummary.cfr" Format="PDF" Query="GetSummary">
    <CFReportParam Name="My" Value="#My#">
    </CFReport>
    Inside the report itself, reference the given parameter as Param.My.PageHeaderImage for example. It can be referenced that way from any expression inside the report builder. You can even use the queries as the data source for charts (using the Data From a Query -> Query Builder -> Advanced) by entering "Param.My.GetPieSummary" where it says "Variable containing query object".
    HTH
    Swift

  • HOw to achieve this at report/query level

    Hi Experts
    Please update me how can i achieve this at query level
    Lets Consider Data in my Cube
    Dept_id--Date--
    Qty
    -101.01.20093-----
    -101.01.20095-----
    -101.01.20098-----
    -101.01.20091-----
    -101.01.20099-----
    That is how data is avaliable in my cube
    When i run the report the output is displayed as
    Dept_id--Date--
    Qty
    -101.01.200926-----
    That is what it actually do...it will sumirises into one record.....
    BUT
    My requirment is the query result should be ....with out summarisation
    Dept_id--Date--
    Qty
    -101.01.20093-----
    -101.01.20095-----
    -101.01.20098-----
    -101.01.20091-----
    -101.01.20099-----
    Please update me is there any setting i can make at query level

    Hi,
    By default data will be aggregated in Query.
    How come data available in Cube at different aggregation level...? due to request no or some other characteristic which is unique for each record...??
    If some other characteristic available, make it available that characteristic in rows to get desired result.
    Srini

Maybe you are looking for