Reading masterdata of attribute in BI 7.0

Hello Gurus
I have the following situation:
I am creating a transformation from an ODS to the Cube. I have an InfoObject in the cube which should be populated based on the value of another InfoObject in the ODS (which is a navigation attribute of another characteristic present in the ODS).
What should be the best approach for this
Thanks

Hope I can help you.
The scenrio is simplied based on CVS file, our real scenrio are logistical data model which date are  from shipping item, order itme data.
We have a infoobject named material which has a attribute material type. its data like this:
Material     Material_Type
MAT001     ZDIE
MAT002     ZIFG
MAT003     ZDIE
MAT004     ZIFG
We hava a another DSO named delivery ODS which data like below:
Material     DeliveryDoc     DeliveryItem     DeliveryDate
MAT001     12345678     1     20070501
MAT002     12345679     1     20070502
MAT003     12000000     1     20070503
MAT004     12000001     1     20070504
We have a another DSO named invoice ODS which data like below:
Material     InvoiceDoc     InvoiceItem     Billingdate     ReferedDeliveryDoc     ReferedDeliveryItem
MAT001     30000000     1     20080101     12345678     1
MAT002     30000001     1     20080102     12345679     1
MAT003     30000002     1     20080103     12000000     1
MAT004     30000003     1     20080104     12000001     1
Our business requirements is:
1. Need to create the third DSO which will merge data from the above two DSOs.
2. the third DSO name "Deliveried sales order info DSO" which has the following model:
   Material     InvoiceDoc     InvoiceItem   DeliveryDoc  DeliveryItem  Act_Goods_Issue_DATE
3. The Act_Goods_Issue_DATE will be filled from delivery ODS or invoice ODS, the rule is if material type is "ZDIE" which means it is a non-physical product (service product), the Act_Goods_Issue_DATE should be filled from Billingdate of invoice ODS. if the material type is "ZIFG" that means it is a physical product. the the Act_Goods_Issue_DATE should be filled from the DeliveryDate of delivery ODS.
Implement mothod:
1. We create a transformation from delivery ODS to "Deliveried sales order info DSO", most infoobjects were mapped directly.
2. we create a transformation from invoice ODS to "Deliveried sales order info DSO".  we create a start routine for Act_Goods_Issue_DATE. the main code is like below.
$$ begin of global - insert your declaration only below this line  -
    DATA: G_MATERIAL TYPE TABLE OF /BIC/PIO_MATG.
    DATA: G_DSO_DELI TYPE TABLE OF /BIC/AZ_ODS200. 
$$ end of global - insert your declaration only before this line   -
$$ begin of routine - insert your code only below this line        -
... "insert your code here
*--  fill table "MONITOR" with values of structure "MONITOR_REC"
*-   to make monitor entries
... "to cancel the update process
   raise exception type CX_RSROUT_ABORT.
Get material master date into the internal table G_MATERIAL
SELECT * INTO TABLE G_MATERIAL
      FROM /BIC/PIO_MATG
       FOR ALL ENTRIES IN SOURCE_PACKAGE
     WHERE /BIC/IO_MATG = SOURCE_PACKAGE-/BIC/IO_MATG.
    SORT G_MATERIAL BY /BIC/IO_MATG.
Get delivery DSO active table data into the internal table G_DSO_DELI
    SELECT * INTO TABLE G_DSO_DELI
      FROM /BIC/AZ_ODS200
        FOR ALL ENTRIES IN SOURCE_PACKAGE
      WHERE /BIC/ZDOC002 = SOURCE_PACKAGE-/BIC/ZDOC001
      AND /BIC/ZITEM02 = SOURCE_PACKAGE-/BIC/ZITEM0001.
    SORT G_DSO_DELI BY /BIC/ZDOC002 /BIC/ZITEM02.
$$ end of routine - insert your code only before this line         -
3. Then add the fields Material,Billingdate,ReferedDeliveryDoc,and ReferedDeliveryItem as input for the infoobject Act_Goods_Issue_DATE and write transfer routine like below:
$$ begin of routine - insert your code only below this line        -
    ... "insert your code here
*--  fill table "MONITOR" with values of structure "MONITOR_REC"
*-   to make monitor entries
    ... "to cancel the update process
   raise exception type CX_RSROUT_ABORT.
    ... "to skip a record"
   raise exception type CX_RSROUT_SKIP_RECORD.
   result value of the routine
   DATA : W_MATERIAL TYPE /BIC/PIO_MATG.
    DATA : W_DELIVERY TYPE /BIC/AZ_ODS200.
    READ TABLE G_MATERIAL INTO W_MATERIAL WITH KEY /BIC/IO_MATG =
    SOURCE_FIELDS-/BIC/IO_MATG
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
      IF W_MATERIAL-/BIC/IO_MATTY = 'ZDIE'.    // if the material is a service product.
        RESULT =  SOURCE_FIELDS-/BIC/ZDATE01.
      ELSE.
if  the material is a non service product, then search internal table G_DSO_DELI to get DeliveryDate.
        READ TABLE G_DSO_DELI INTO W_DELIVERY WITH KEY
               /BIC/ZDOC002 = SOURCE_FIELDS-/BIC/ZDOC001
               /BIC/ZITEM02 = SOURCE_FIELDS-/BIC/ZITEM0001
               BINARY SEARCH.
        IF SY-SUBRC EQ 0.
Assign  DeliveryDate "/BIC/ZDATE02" to result.
          RESULT =  W_DELIVERY-/BIC/ZDATE02.
        ENDIF.
      ENDIF.
    ENDIF.
$$ end of routine - insert your code only before this line         -

Similar Messages

  • Function modules in CRM (read Business Partner attributes)

    Hi,
    I would like to print a document in wich will be Business Partner attributes and other crmdata. Does anybody know how I can read the Business Partner marketing attributes. Can I use for this some function modules or else?
    Are there some documentations about all Function modules in CRM and what they do?
    Thanks,
    Malnor

    Hi Malnor,
    Marketing attributes of a BP can be found in table AUSP.
    You can build your own custom function module to read marketing attributes.
    Refer to the link below for sample code of a FM to read BP marketing attributes -
    [Custom Function module to read BP marketing attributes|http://divulgesap.com/blog.php?p=NDg=]
    Hope it helps.
    Regards,
    Ravi

  • Read Context  Node/Attribute option in webdynpro code wizard not available

    Hi Expets,
    I am new to webdynpro Abap, i have developed a small application to set default values for two fields. i want to use code wizard to implement the code. When i click on code wizard icon  in application tool bar, i have found lot of option like Method call in current controller, method call in used controller, Instantiate used component ... etc. But i didn't find the option Read Context Node/Attribute. Do i need to do any settings to get that. Kindly suggest. Your help will be greatly appreciated.
    Venkat

    Hi,
    Check the NW release,
    I checked with NW 7.02 - 2 tabs were available.
    with NW 7 - only 1 tab was available which you mentioned.
    Additional tab (Context ) might have been added after NW release 7.0.
    Regards
    Manas Dua

  • Reading custom OID Attributes

    We have a dev and a test portal server, and we have been successfully using the following code to read custom OID atributes. ie We have created our own LDAP schema/class with some of our own attributes. Then doing the following:
         PortletRenderRequest pReq = (PortletRenderRequest)request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
         String flag = pReq.getUser().getPropertyValue("myflag");
    This is working quite fine in our dev server, but does not work in our test server. The "flag" variable comes out as null in the test environment.
    As far as I can tell everything is configured and setup exactly the same. As this is someone else's code that I am maintaining I am not quite sure where to start looking. Can someone point me in the right direction on where to look to work out how this "getPropertyValue" is supposed to work?

    Hello Amarys,
    - In order to add Custom Attributes to Portal Database (default Java), you dont have to do attribute mapping in the XML. It is applicable for LDAP scenarios only.
    - You need to define Administrator / Self Managed Custom Attributes based on who views / modifies [UME Custom Attributes|http://help.sap.com/saphelp_nw70ehp2/helpdata/en/44/0316d50bbe025ce10000000a1553f7/frameset.htm]
    - You can use the UME API to read the custom attribute value set during the registration process  -
    static final String CUSTOMER_NAMESPACE = "com.customer.usermanagement";
    IUser user = . . .;
    String org[] = user.getAttribute(CUSTOMER_NAMESPACE,"hr_org");
    if (org != null) {
    for (int i=0; i< org.length(); i++) {
    response.write("Org: " + i + " = " + org<i>);
    } else {
    response.write("No orgs found for this user.");
    -  Extremely good reference (make sure you dont use any depricated API) -
    [UME API|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/3641e490-0201-0010-c68f-e51221925714?QuickLink=events&overridelayout=true]
    Hope this helps ! ~ Dhanz

  • Key Figure - Data in InfoObject (MasterData) as attribute - how to....

    Hello,
    I have following scenario: I have a key figure which is filled with priorities (1-5). Now I have as a requirenemt - in order that the user can report on the priority - to fill a new InfoObject with the same content (priority). The new InfoObject is an attribute on an already existing InfoObject.
    It should be a one-time action for data for the past.
    Any (creative) idea?

    You can add a CHAR Infoobject Priority in same Infoprovider and map it to Key figure priority. Then you can use the new Char Priority to report.

  • How do I turn off the Read Only Folder attribute

    I have created a new drive for a Windows Server 2012 and have tried formatting it with various ways.  Each time I format the drive, when I create a folder, the read only attribute is set and I can't turn it off.  I have looked at other forums for
    similar issues and all suggest using the attrib function.  This appears to work, but when I refresh the folder, the read only is back on. 
    Even after assigning permissions, I can create files in the folders, but I cannot modify them in MS Office or any other application.  Any ideas on how to resolve this.  It appears to be alot of recurring posts for the same issue with no results. 

    Hi,
    Windows Explorer does not allow you to view or change the Read-only or System attributes of folders. When a folder has the Read-Only attribute set it causes Explorer to request the Desktop.ini of that folder to see if any special folder settings need
    to be set.
    You cannot view or change the Read-only or the System attributes of folders in Windows Server 2003, in Windows XP, in Windows Vista or in Windows 7
    http://support.microsoft.com/kb/326549
    You mentioned that you cannot modify the file created in the folders. Can you modify a txt file? Please check if you have modify permissions on that files.
    Regards,
    Mandy
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • How to read context node/attribute data of diff UI component of same screen

    Hi,
    I am new to CRM and as well as BSP, Now the requirement is, at the time of Lead creation, when the end user enters customer code and sales area i need to fetch and display the customer group 1 value( VIP,KAM etc) based on the customer's sales area, ( these are sales area specific values).
    but the problem is Customer code is in diff UI component and sales area data is in diff UI component .
    1) customer code attribute is in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTPARTNERPROSPECT.
    2) sales area fields are in the UI component BTORGSET, View BTORGSET\OrgSetData, Context node is BTORGSET.
    3) I have created new field(customer type to display the customer group 1 value "VIP") in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTLEADH.    
    To display the value in the context node BTLEADH, i need to know the sales area data which is entered in BTORGSET.
    Kindly let me know how to read the data which is in diff UI component of the same Lead creation screen.
    i written following code in context node BTLEADH, atttribute New Zfield, in get method, but not able solve, please guide me.
      DATA: LR_ENT TYPE REF TO CL_CRM_BOL_ENTITY,
                 LR_COL TYPE REF TO IF_BOL_ENTITY_COL.
      LR_ENT ?= ME->TYPED_CONTEXT->BuilHeader->COLLECTION_WRAPPER->GET_CURRENT( ).
      LR_COL = LR_ENT->GET_RELATED_ENTITIES( IV_RELATION_NAME = 'BuilSalesArrangementRel' ).
      LR_ENT ?= LR_COL->GET_FIRST( ).
      IF LR_ENT IS BOUND.
        LR_ENT->GET_PROPERTY_AS_VALUE( EXPORTING IV_ATTR_NAME = 'DIVISION'  IMPORTING EV_RESULT =  LV_DIVISION  ).
      ENDIF.
    I'll appreciate if you can provide me some documents to refer.
    awaiting for your responses.
    Thanks
    Bhanu

    Hi Gangadhar,
    I think i have not clearly explained my requirement, let me put it once again. My requirement is, I have to read two UI component data, validate and display some value in one new zfield which is in one of the UI components.
    I need to display customer's sales area specific data like customer group 1 value in that new zfield. for that i need Customer code and as well as sales area data from the screen.
    1) customer code attribute is in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTPARTNERPROSPECT.
    2) sales area fields are in the UI component BTORGSET, View BTORGSET\OrgSetData, Context node is BTORGSET.
    3) I have created new field(customer type to display the customer group 1 value "VIP") in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTLEADH.
    As per my understanding, in the context node BTLEADH, GET_METHOD of atttribute New Zfield, i have to read customer code from UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTPARTNERPROSPECT and Sales area data from UI component BTORGSET, View BTORGSET\OrgSetData, Context node is BTORGSET based on the values, validate and display the data.
    But as per your recent reply you are asking me to write the code in get_property_attribute---division. so i didnt understand.
    Kindly clarify if i am wrong.
    awaiting for your response.
    Thanks
    BHanu

  • How does one read Digital Certificate attributes/values?

    The plan:
    Distribute a document secured by "Certificate Security".  For those who have been granted the rights to print the document, need to be able to print the "User's Name" on the document - for traceability reasons.
    In before Acrobat XI (using Pro version), I was able do this with in a javascript  assigning "identity.name" and "identity.loginName" to arbitrary variable; then use addwatermarkfromtext function to display this data on each page.
    However with Acrobat XI, I see that identity.name and identity.loginName are Privileged and cannot be called from a page or document level script.  Furthermore addwatermarkfromtext is not supported in Reader (which the recipients are using). So my old tricks no longer work.
    I've over come the addwatermarkfromtext restriction inelegantly by using textboxes.
    The self-signed certificate I'm using allows for signing and execution of script; but not been successful in using the identity attributes - even with trying "app.trustedfunction... app.beginPriv() etc...
    In checking the API reference, see a possible work-around using the certificate properties - specially: certificate.subjectCN. The API reference shows this as a read-only, non-Privileged value!  Am at a loss on how to call/retrieve.  What I am hoping to do is: as the document is secured by Certificate, I want to read the Certificate's "common name" value of the person who opened the document and use this as my traceability token on printed documents.
    Would appreciate examples of JavaScript code to retrieve and use the Certificate.subjectCN of the user who has the document open.
    (or if I'm still barking up the wrong tree - direction to the right path).
    Many Thanks !

    If you just want to read the current state of the lines when one changes, you could configure non-buffered change detection (call DAQmxCfgInputBuffer with 0 samples per channel after you configure change detection timing but before you start your task).
    Use the change detection event and read just a single sample per callback.
    If the software can't keep up though, you wouldn't have a buffer of all of the previous transitions.  If this is something you need, you'll need to keep using the buffered change detection.  Either event could work, but not without caveats:
    1.  The Every N Samples event is generated when the requested number of samples are transferred off of the device to the host PC buffer.  It is difficult to control exactly when this transfer happens (though there are channel properties you can try setting--I can't experiment since I don't have the same hardware handy).  You're not getting the events currently because it is likely that the data is sitting in the device FIFO until the transfer is initiated.
    2.  The change detection event is generated from the hardware signal.  You have to read the data to get the data transfer to happen though, but until you read the data you don't know how many samples there will be (if the line is changing rapidly you might get several samples per event for example).
    For the record I find the buffering pretty awkward on USB devices when dealing with callbacks (e.g. if you are using EveryNSamples callback shouldn't the data transfer be initiated every time N samples are acquired?).  I haven't played with it in a while and it's possible the Data Transfer and Memory Channel Properties can be used to deal with the buffering issues.
    Best Regards,
    John Passiak

  • Reading EXIF Tag Attributes

    Image FIles have Properties like Width, Height, Duration, Bit Rate, Date Created, Date Modified, Date Picture Taken etc.
    I need to read these attributes ( EXIF Tag ) of these Image Files before uploading them and storing them separately in the SAP system. Does anyone know how this can be achieved thro ABAP please
    Thanx in adavance

    I doubt you'll find something like that in ABAP. If I were you, I would try to execute a command-line third-party application from ABAP.
    You can use for instance [ExifTool|http://www.sno.phy.queensu.ca/~phil/exiftool/]. I use it to work on my personal photo collections and works very well reading exif tags information, and can be used in both Linux and Windows, in case you need to save it within the Application Server.
    Cheers,
    Andres.

  • Error when reading master data attribute in transformation

    Hi All,
    I have 0employee in source DSO and it is mapped to Cube transformation correctly.. There are other objects in cube which are the attribute of 0employee master... I map 0employee to these objects and in transformation i select read from master data then it throws up an error...
    bold S:RSTRAN:556 39 0EMPLGROUP 01 Standard Group 0EMPLOYEE
    Dont know why this error is popping up ...
    Any pointers on this...
    Thanks & Regards,
    Anup
    Edited by: Anup Chaudhari on Feb 20, 2012 1:29 PM
    Edited by: Anup Chaudhari on Feb 20, 2012 1:30 PM

    Hi,
    This is a strange error that everybody faces but you can try this way.
    1) select the target object Employee attribute in the transformation
    2) assign the source field in the transformation. the source field should be 0EMPID
    3) In this source field there is a coulmn called IOASSIGNMENT. Type 0EMPID at that point
    4) change the rule type from direct assignment to master data attribute. Now you can select the field 0EMPID.
    Regards,
    Siva

  • Reading XML element attribute

    I use JSTL to read a remote XML but can only print the content of the elements. How do i print the content of the attributes?
    <root><person id="1">George</person></root>
    For example, to read the Person's name i use:
    <x:out select="$xmloutput/ROOT/person"/>
    But how do i print the ID value of the element?
    Thanks in advance.

    Already found the answer:
    <x:out select="@attribute_name" />
    Just add the @ sign

  • ORACLE OLAP: trying to read french dimension attributes fails

    We have set up the CHANNEL dimension of the GLOBAL AW to have a french translation for the attributes CHANNEL_SHORT_DESCRIPTION and CHANNEL_LONG_DESCRIPTION. Using the AW Manager we had verified that the french values are output correctly. Also when using the OLAP Worksheet we got the correct output. Unfortunately issuing the same sequence of commands via ODP.NET does not output the dimension attribute in the appropriate language. Does anybody know about this problem or have the same experience?
    Here is the command stack of the Olap Worksheet
    ->RPR DOWN CHANNEL CHANNEL_SHORT_DESCRIPTION SKIP
    --------------ALL_LANGUAGES--------------
    ----------------AMERICAN-----------------
    CHANNEL_SHORT_DESCRI
    CHANNEL PTION
    1 All Channels
    4 Internet
    2 Direct Sales
    3 Catalog
    ->LOCK_LANGUAGE_DIMS=no
    ->LMT ALL_LANGUAGES TO 'FRENCH'
    ->RPR DOWN CHANNEL CHANNEL_SHORT_DESCRIPTION SKIP
    --------------ALL_LANGUAGES--------------
    -----------------FRENCH------------------
    CHANNEL_SHORT_DESCRI
    CHANNEL PTION
    1 All Channels
    4 Internet
    2 Ventes Directes
    3 Catalogue

    Just to update this thread: while preparing a little test program, which should make this problem reproducable, I found an ALLSTAT command in our lengthy command stack. This caused the ALL_LANGUAGES_DIM to loose its limit on the selected language. Our parser in turn didn't have any trouble with this, but output the first language, which was the default. The problem was on our side and is solved now.

  • Reading manifest.mf attributes using JMX

    Hi,
    Could you pls let us know if there is any JMX MBean that provides an API to read the manifest.mf file attributes of an EAR?
    We are fine with using weblogic JMX if not available under standard JMX API. I need to read a set of attributes like Classpath, version etc which are present in the
    EAR file deployed in a WL domain ?
    Thanks

    Eclipse does not read manifest classpath entries. You can workaround this problem by setting api.jar and wls-api.jar in your build path. These jars contain all the public api classes that WLS exposes.

  • FM to read sales org attributes with scenario SALES

    HI,
    My requirement is to read the Sales org attribute for scenario SALES. My input would be the sales org number.
    Is there any FM with this requirement or how can i find the table link for the same.

    Hi,
      You can use the FM RHGA_READ_ATTRIBUTES for this. Say, you want to read an attribute "COUNTRY" for the scenario 'SALE',
    Data: lt_attrib TYPE hrtb_attrib,
            lt_attr_val TYPE hrtb_attvalrt,
            ls_attrib LIKE LINE OF lt_attrib.
          ls_attrib = 'COUNTRY'.
          INSERT ls_attrib INTO TABLE lt_attrib.
          CALL FUNCTION 'RHGA_READ_ATTRIBUTES'
            EXPORTING
              scenario                = 'SALE'
              otype                   = 'O '  "for organization
              realo                   =  '<give Org ID>'
              attributes              = lt_attrib
    *       CHECK_AUTHORITY         = ' '
    *        PPOMA_MODE              = 'X'
    *        NO_CHECKS               = 'X'
    *       NO_INH_RESOLUTION       = ' '
    *       RECURSION               = ' '
           IMPORTING
             attrib_ext              = lt_attr_val
           EXCEPTIONS
             internal_error          = 1
             invalid_object          = 2
             invalid_scenario        = 3
             invalid_attribute       = 4
             no_authority            = 5
             OTHERS                  = 6
          IF sy-subrc <> 0.
          ENDIF.
    *Check the lt_attr_val table for attribute values
    Regards,
    Arun Prakash

  • Can you loop through a collection of entites to read a given attribute?

    I got an entity called <b>the applicant</b>. and this entity has an attribute called <b>the full name of the applicant</b>.
    I want to go through the collection of <b>the applicants</b> and get the <b>full name</b> for each applicant and assign it to a text variable with comma seperated. Is it possible to do this in OPA?
    this is what i want to do
    <b>"the names" </b>is the variable that I want to store the list of names
    read the collection of applicants
    the names = the concatenation of the names & " " & the full name of the applicant & ","
    end
    so it will give me an output like <b>James Blunt, David Brown, Julia Guilard</b>
    Edited by: Davin Fifield on Oct 16, 2011 10:57 PM - removed inappropriate "moderation" edit

    Wow harsh moderation there by rukbat! I don't know who he/she is but I apologise and assure you most people on this forum are not so mean.
    To answer your question, there's no built-in way to do what you want. Normally displaying something like this would be considered an application problem rather than a rule-level problem, however if you really want it done in a rule, you could do it with a custom function.

Maybe you are looking for

  • My music won't play on my stereo since downloading recent update

    I recently purchased a new iPod touch. Used it a couple of times in my home stereo and work stereo with an apple dock adaptor that I purchased for my iPhone. The music came through the speakers for both stereos no problems but since the most recent u

  • Patch number of Solaris 9 SPARC for Oracle 9.2.0.4 - 9.2.0.7

    Hello! Could anybody point me the right document with information about Solaris 9 patch version for Oracle 9.2.0.4 and 9.2.0.7. Server: FS PRIMEPOWER 250 SPARC64™ V Thanks, Viacheslav

  • What are the major logic steps of WL Portal Server process a portal request

    Hi, I comes from IBM and we provided a product to monitor most types of J2EE App Server about transactions and performance. we will monitor WebLogic Portal Server in next release. So would you please tell me: How Weblogic Portal handles a page reques

  • Steps required in File to Idoc Scenario

    Hey guys i m doin a file to Idoc scenario and just wanna make sure my steps r correct. steps done on the XI server 1.Create RFC destination(test the destination by giving the target host as the R/3 server). 2.Create port for the RFC destination. step

  • Cleaning Aluminium 24" iMac Screen

    My iMac glass screen has got lots of greasy splashes on it after someone ate a meal at the desk. Water alone won't shift it for some reason. Is it ok to use a tiny amount of vinegar in the water as a solvent? I mean I hope there is no layer of bloom