API and transactional ODS

Can anyone tell me how I can use API for transactional ODS?
Thanks

Hi,
use tcode SE37 and search for BAPI_ODSO*
/manfred

Similar Messages

  • Difference between standard ods and transaction ods

    hi experts make this answer

    Transactional ODS Object
    Definition
    A transactional ODS object differs from a standard ODS object in the way it prepares data. In a standard ODS object, data is stored in different versions (active, delta, modified), whereas a transactional ODS object contains the data in a single version.  Therefore, data is stored in precisely the same form in which it was written to the transactional ODS object by the application. In BW, you can use a transaction ODS object as a data target for an analysis process. You can find more information under Analysis Process Designer.
    The transactional ODS object is also required by diverse applications, such as SAP Strategic Enterprise Management (SEM) for example, as well as other external applications.
    Use
    Transactional ODS objects allow data to be available quickly. The data from this kind of ODS object is accessed transactionally, that is, data is written to the ODS object (possibly by several users at the same time) and reread as soon as possible.
    It offers no replacement for the standard ODS object. Instead, an additional function displays those that can be used for special applications.
    Structure
    The transactional ODS object simply consists of a table for active data. It retrieves its data from external systems via fill- or delete- APIs. Refer to ODS Data and External Applications.
    The loading process is not supported by the BW system. The advantage to the way it is structured is that data is easy to access. They are made available for reporting immediately after being loaded.
    http://help.sap.com/saphelp_nw04/helpdata/en/c0/99663b3e916a78e10000000a11402f/frameset.htm
    Regards
    Anujit Ghosh

  • Report on standard ODS object  and transactional ODS object

    hi gurus
    i have an infoset which is built on two transactional ODS objects and one standard ODS object which gets the data on regulr schedule. the transactional ODS obejcts get the user entered data.
    when i query on the infoset, i am getting the data. and when i query on the standard ODS object i am getting the data. but when i am trying to create a query on the combination of the Infoset and the ODS object i am not getting the data.
    is there any way to generate report on the standard ods object and Infoset from transactional ods objects.
    your help will be greatly appreciated.
    thanks in advance
    vijaykumar

    Hello ViJaY,
    how r u ?
    Try creating a MultiProvider with the Standard ODS and InfoSet.
    Best Regards....
    Sankar Kumar

  • Scalability with Collections-API and transactions

    I'm using the BerkeleyDB such that a visualization which depends on some computations scales even if I just use the saved items to prune the underlying tree (a SunburstView).
    Now I have just implemented the BerkeleyDB binding and use the Collection-API. I'm running a transaction after a specified amount of items have been appended to a List to save the list in a database:
    <pre>
    /** {@inheritDoc} */
    @Override
    public void diffListener(final EDiff paramDiff, final IStructuralItem paramNewNode,
    final IStructuralItem paramOldNode, final DiffDepth paramDepth) {
    mDiffs.add(new Diff(paramDiff, paramNewNode.getNodeKey(), paramOldNode.getNodeKey(), paramDepth));
    mEntries++;
    if (mEntries == AFTER_DIFFS) {
    try {
    mRunner.run(new PopulateDatabase(mDiffDatabase, mDiffs));
    } catch (final Exception e) {
    LOGWRAPPER.error(e.getMessage(), e);
    mEntries = 0;
    mDiffs = new LinkedList<>();
    /** {@inheritDoc} */
    @Override
    public void diffDone() {
    try {
    mRunner.run(new PopulateDatabase(mDiffDatabase, mDiffs));
    } catch (final Exception e) {
    LOGWRAPPER.error(e.getMessage(), e);
    mStart.countDown();
    </pre>
    Now I think about what's the right value for transactions? AFTER_DIFFS is currently set to 100 which means everytime the List has 100 elements it's saved in a database within a transaction and a new instance is created. I currently don't have time to empirically measure certain values, but maybe one can get a suggestion which might be a good value or if it really depends? I'm persisting a rather small Object with two long values, an enum (with just a few values and no methods) and another small Object with 2 int values, if that's of significance.
    I think the transaction is bound to the current thread, maybe it would be also good to use an ExecutorService with a single thread and let the transaction, the Runner.run(TransactionWorker); run in this thread?
    best regards,
    Johannes

    I changed the database to a temporary database, but I'm getting a horrible read-performance (with and without the temporary database setting). I thought the database wouldn't be persisted if the data isn't too big.
    Some debugging output is:
    02:13:53.906 [pool-4-thread-1] DEBUG o.t.g.view.model.TraverseCompareTree - stats: I/O: Log file opens, fsyncs, reads, writes, cache misses.
         bufferBytes=3,145,728
         endOfLog=0x0/0x439
         nBytesReadFromWriteQueue=0
         nBytesWrittenFromWriteQueue=0
         nCacheMiss=0
         nFSyncRequests=0
         nFSyncTimeouts=0
         nFSyncs=0
         nFileOpens=0
         nLogBuffers=3
         nLogFSyncs=0
         nNotResident=0
         nOpenFiles=0
         nRandomReadBytes=0
         nRandomReads=0
         nRandomWriteBytes=0
         nRandomWrites=0
         nReadsFromWriteQueue=0
         nRepeatFaultReads=0
         nSequentialReadBytes=0
         nSequentialReads=0
         nSequentialWriteBytes=0
         nSequentialWrites=0
         nTempBufferWrites=0
         nWriteQueueOverflow=0
         nWriteQueueOverflowFailures=0
         nWritesFromWriteQueue=0
    Cache: Current size, allocations, and eviction activity.
         adminBytes=153
         avgBatchCACHEMODE=0
         avgBatchCRITICAL=0
         avgBatchDAEMON=0
         avgBatchEVICTORTHREAD=0
         avgBatchMANUAL=0
         cacheTotalBytes=8,265,140
         dataBytes=5,118,941
         lockBytes=318
         nBINsEvictedCACHEMODE=0
         nBINsEvictedCRITICAL=0
         nBINsEvictedDAEMON=0
         nBINsEvictedEVICTORTHREAD=0
         nBINsEvictedMANUAL=0
         nBINsFetch=343
         nBINsFetchMiss=0
         nBINsStripped=0
         nBatchesCACHEMODE=0
         nBatchesCRITICAL=0
         nBatchesDAEMON=0
         nBatchesEVICTORTHREAD=0
         nBatchesMANUAL=0
         nCachedBINs=234
         nCachedUpperINs=8
         nEvictPasses=0
         nINCompactKey=2
         nINNoTarget=0
         nINSparseTarget=8
         nLNsFetch=686
         nLNsFetchMiss=0
         nNodesEvicted=0
         nNodesScanned=0
         nNodesSelected=0
         nRootNodesEvicted=0
         nThreadUnavailable=0
         nUpperINsEvictedCACHEMODE=0
         nUpperINsEvictedCRITICAL=0
         nUpperINsEvictedDAEMON=0
         nUpperINsEvictedEVICTORTHREAD=0
         nUpperINsEvictedMANUAL=0
         nUpperINsFetch=343
         nUpperINsFetchMiss=0
         requiredEvictBytes=0
         sharedCacheTotalBytes=0
    Cleaning: Frequency and extent of log file cleaning activity.
         cleanerBackLog=0
         fileDeletionBacklog=0
         nCleanerDeletions=0
         nCleanerEntriesRead=0
         nCleanerRuns=0
         nClusterLNsProcessed=0
         nINsCleaned=0
         nINsDead=0
         nINsMigrated=0
         nINsObsolete=0
         nLNQueueHits=0
         nLNsCleaned=0
         nLNsDead=0
         nLNsLocked=0
         nLNsMarked=0
         nLNsMigrated=0
         nLNsObsolete=0
         nMarkLNsProcessed=0
         nPendingLNsLocked=0
         nPendingLNsProcessed=0
         nRepeatIteratorReads=0
         nToBeCleanedLNsProcessed=0
         totalLogSize=1,074
    Node Compression: Removal and compression of internal btree nodes.
         cursorsBins=0
         dbClosedBins=0
         inCompQueueSize=0
         nonEmptyBins=0
         processedBins=0
         splitBins=0
    Checkpoints: Frequency and extent of checkpointing activity.
         lastCheckpointEnd=0x0/0x396
         lastCheckpointId=1
         lastCheckpointStart=0x0/0x16c
         nCheckpoints=0
         nDeltaINFlush=0
         nFullBINFlush=0
         nFullINFlush=0
    Environment: General environment wide statistics.
         btreeRelatchesRequired=0
    Locks: Locks held by data operations, latching contention on lock table.
         nLatchAcquireNoWaitUnsuccessful=0
         nLatchAcquiresNoWaitSuccessful=0
         nLatchAcquiresNoWaiters=0
         nLatchAcquiresSelfOwned=0
         nLatchAcquiresWithContention=0
         nLatchReleases=0
         nOwners=2
         nReadLocks=2
         nRequests=686
         nTotalLocks=2
         nWaiters=0
         nWaits=0
         nWriteLocks=0
    Seems it hasn't got any cache misses at all and the other values seem to be ok, too?
    best regards,
    Johannes

  • Problems with environments and transactional mode in the Python API

    Hello everyone,
    I have been having problems with the Python API, and I wonder if anyone can comment? I am using DB XML version 2.2.13, with python 2.3 (RedHat linux WS 4.0) and python 2.4 (SuSE 10.1) with identical results. I started with a simple example:
    #!/usr/bin/python
    """XPath example from http://www.w3schools.com/xpath/default.asp
    ported to DbXML
    from bsddb3.db import *
    from dbxml import *
    books = """<?xml version="1.0" encoding="ISO-8859-1"?>
    <bookstore>
      [xml data omitted for brevity]
    </bookstore>"""
    if __name__ == "__main__":
        conFlags = DB_CREATE | DB_NOMMAP
        myMgr = XmlManager()
        myMgr.setDefaultContainerFlags(conFlags)
        myMgr.setDefaultContainerType( XmlContainer.NodeContainer)
        uc = myMgr.createUpdateContext()
        container = myMgr.createContainer("books.dbxml")
        container.putDocument("books.xml", books, uc)So far, so good - this works, and creates a container books.dbxml that I can open and query. Next, I try to instantiate the XmlManager using an environment:
    if __name__ == "__main__":
        envFlags = DB_CREATE | DB_PRIVATE
        conFlags = DB_CREATE | DB_EXCL | DB_NOMMAP
        myEnv = DBEnv()
        myEnv.open("/home/pkeller/dbxml_tests", envFlags, 0)
        myMgr = XmlManager(myEnv, DBXML_ADOPT_DBENV)
        myMgr.setDefaultContainerFlags(conFlags)
        myMgr.setDefaultContainerType( XmlContainer.NodeContainer)
        uc = myMgr.createUpdateContext()
        container = myMgr.createContainer("books.dbxml")
        container.putDocument("books.xml", books, uc)This fails with the following output:
    Traceback (most recent call last):
      File "w3school_xpath_c2.py", line 60, in ?
        container = myMgr.createContainer("books.dbxml")
      File "/scratch_bernoulli/pkeller/dbxml/install/lib/python2.3/site-packages/dbxml.py", line 125, in createContainer
        def createContainer(*args): return dbxml.XmlManagercreateContainer(*args)
    RuntimeError: Error: Invalid argument
    Segmentation faultA bit odd - I can't find anything in the docs about the required arguments to XmlManager.createContainer being different if an environment has been used explicitly.
    Anyway, I persevered (my aim being to use transactional mode in Python). Changing the environment and container flags like so:
        envFlags = DB_CREATE  | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_PRIVATE
        conFlags = DB_CREATE  | DB_EXCL | DBXML_TRANSACTIONAL | DB_NOMMAPThis change allowed the script to run, outputting the single classic line:
    Segmentation fault(the C++ API docs at http://www.sleepycat.com/xmldocs/gsg_xml/cxx/transaction.html#initializetransaction are incorrect by the way - there is no flag DB_TRANSACTIONAL).
    In spite of the segfault, the file "books.dbxml" was produced and could be queried by another application. A transaction log file "log.0000000001" was also written (10485760 bytes long).
    Running this last example again with "python -v" showed that the segfault was being produced during the python's cleanup phase:
    # clear __builtin__._
    # clear sys.path
    # clear sys.argv
    # clear sys.ps1
    # clear sys.ps2
    # clear sys.exitfunc
    # clear sys.exc_type
    # clear sys.exc_value
    # clear sys.exc_traceback
    # clear sys.last_type
    # clear sys.last_value
    # clear sys.last_traceback
    # clear sys.path_hooks
    # clear sys.path_importer_cache
    # clear sys.meta_path
    # restore sys.stdin
    # restore sys.stdout
    # restore sys.stderr
    # cleanup __main__
    Segmentation faultCan anyone clarify what is going on? I had been hoping to deploy DB XML as an alternative to something more admin-heavy, but with this behaviour that would be hard to justify. A dirty exit from Python means that no-one will consider trusting their data to this engine (or am I doing something wrong?).
    Regards,
    Peter.

    Peter,
    Your first failure -- invalid argument -- was due to an invalid combination of
    flags to DBEnv.open(). Along with DB_CREATE you need at least DB_INIT_MPOOL.
    As you can see, it worked once you added more flags.
    The second, cleanup problem (segmentation fault) is the result of out of order
    destruction of objects. This is fixed in the next release (later this year), but
    you can work around it by ensuring that your XmlContainer and XmlManager
    objects are deleted/cleaned up before the DBEnv object.
    Python will cleanup in reverse order of creation, unless you perform explicit
    deletions, which is also fine (e.g. del container, del myMgr).
    Explicit deletion is always safe.
    Regards,
    George

  • How to see data in a transaction ODS

    Hi all,
    I am populating data into my Transactional ODS through the function module RSDRI_ODSO_INSERT_RFC . But not able to see the data in it. as there is no manage option to the ODS. and by default an export datasource is created for the ODS. do i have to create one more standard ods and use this export datasource as update rules and see the data?
    Please let me know how to see the data. and also and detail document on Transaction ODS?.

    Hello Satish,
    Data loaded through Planning Application eg. In Transactional ODS will not have manage option or request. You can view the data using following methods.
    Since transactional ODS objects cannot be filled with BW data using staging (data is not supplied from the DataSources), they are not displayed in the Scheduler or in the Monitor. Transactional ODS objects can therefore not be updated in the same way as standard ODS objects.
    If you switch a standard ODS object that already has update rules available to a transactional one, the update rules are set as inactive and are no longer processable.
    As no change log is generated, no delta update of data stored at the end of the process is possible.
    You cannot set the indicator for BEx Reporting when creating a transactional ODS object.
    1.) In order to report this, you can create an InfoSet and then execute a BEx query for it.
    2) You can also download the data from your transactional ODS object using the download function. You can find this function in the administration of the ODS objects, Tab Page Contents -> Active Data.  Choose Execute to display the data. Using the main menu Edit -> Download, you can download the data in different formats.
    Hope it helps.
    San.

  • Query on transactional ODS

    Hi All,
    I want to write a query on a multiprovider built on two transactional oDS.
    The first transactional ODS will have :
    1. Material
    2. Avg rating
    The secong transactional ODS will have:
    1. Material
    2. Vendor
    3. Avg rating
    Now, I want to build a MP on these two ODS' where the report should have:
    1. Material
    2. Vendor
    3. Rating
    4. Rating as a % of Avg rating
    How can I do it?

    Hi Ravi,
    I made a mistake in the specification.
    The first transactional ODS has:
    1. material
    2. Average rate
    The second ODS acyually has:
    1. material
    2. vendor
    3. rate
    Finally what I want to calculate on the MP is:
    vendor, material, rate and rate as % of average rate
    Please suggest.
    Regards,
    Sharmishtha

  • Why cant we Report on transactional ODS directly?

    Hi Pioneers
    could any one let me know the reason why we cant report on Transactional ODS directly?Why should we create an infoset for that purpose.Whats the reason?
    BR
    Ravi

    HI Ravi
    You cannot set the indicator for BEx Reporting when creating a transactional ODS object. In order to report this, you can create an InfoSet and then execute a BEx query for it.
    hope it helps
    regards
    AK
    thnaks=points
    check this link
    http://help.sap.com/saphelp_nw04/helpdata/en/c0/99663b3e916a78e10000000a11402f/content.htm
    regards
    AK
    Message was edited by:
            A K

  • Where we can use standard ODS Object and Trasactional ODS Object ?

    Where we can use standard ODS Object and Trasactional ODS Object ?

    Hi,
    In a standard ODS object, data is stored in different versions (active, delta, modified), whereas a transactional ODS object contains the data in a single version.  Therefore, data is stored in precisely the same form in which it was written to the transactional ODS object by the application. In BW, you can use a transaction ODS object as a data target for an analysis process. The transactional ODS object is also required by diverse applications, such as SAP Strategic Enterprise Management (SEM) for example, as well as other external applications.Transactional ODS objects allow data to be available quickly. The data from this kind of ODS object is accessed transactionally, that is, data is written to the ODS object (possibly by several users at the same time) and reread as soon as possible.
    It offers no replacement for the standard ODS object. Instead, an additional function displays those that can be used for special applications.
    Regards,
    R.Ravi

  • APD Query populating Transactional ODS

    Hi ,
       1) How do we find out if a Transactional ODS is populated by an APD Query. Where will this information be mentioned?
       2) If we dont know the name of the APD Query, but we know the transactional ODS, can we find out the APD query name.
       3) Is an APD Query created like a normal query?
       4) If we know the name of the APD Query, then where do we go and check it?

    Hi,
    You can chek the APD using Tcode RSANWB. Check your particular APD and dbl click on that you will get all information where it is picking and where the data populating.
    check this
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/96939c07-0901-0010-bf94-ac8b347dd541
    and sap help
    http://help.sap.com/saphelp_nw2004s/helpdata/en/39/e45e42ae1fdc54e10000000a155106/frameset.htm
    and service.sap.com/bi
    https://websmp206.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000585703&
    The SAP course that covers APD is BW380 - SAP Business Intelligence: Analysis Processes
    Check this link:
    http://help.sap.com/saphelp_nw04/helpdata/en/49/7e960481916448b20134d471d36a6b/frameset.htm
    Reg
    Pra

  • Info Set on Transactional ODS

    Hi Friends,
    My Requiement is to create a Info Set on Tannsactional ODS and On this info set i have to create a Bex Query.
    If i creata a Query on this info set whether we can get  all the query properties like currency conversion etc as for the query created on noramal info set which is created on standard ODS.
    Looking for more suggessions and answers.
    Thanks in advance.

    Hi Ashok,
    Thanks for the immediate replay.
    Hear i have to do a lenthi process before doing that ,i an looking for some b'dy who has worked on currency conversions at query level whcih are developed on infosets(i.e on Transactional ODS).
    Once again thanks for the usefull answer.
    Laxman

  • Vendor evaluation Transactional ODS

    Hi all,
    I need follwoing information with respect to supplier evaluation, pulling the data from SRM:
    1) what is the differnce between the ODS 0SRVE_O4 and 0SRVE_O2?
    2) what is the differnce betwwen the ODS 0SRVE_O3 and 0SRVE_O1?
    3) How and when can we use the transactional ODS 0SRVE_O1 and 0SRVE_O2?
    If anybody has worked on these ODS in any of the project, please share the experience of it and how to go about these transactional ODS, in the terms what is the utility of these transactional ODS.
    Thanks and Regards,
    Neha

    Hi Neha,
    Please check the following link, it will provide detailed information on all these ODS.
    http://help.sap.com/saphelp_nw70/helpdata/en/f0/3abab39e044d41b8a553136d5ff2f4/frameset.htm
    Usually for vendor evaluation ODS 0SR_VE and infocube 0SR_VE_C1 is enough to take care of the requirements. However, it depends on the business requirement whether you have to go for transactional ODS. The transactional ODS enrich the data of vendor evaluations by capturing the data from GRs etc.
    Hope this information helps.
    Please let me know in detail about your requirement so that I can help you.
    Regards,
    Sreenivas.

  • How to Create Transactional ODS in BI 7.0

    Hi Experts,
    What is Transactional ODS(3.5) in BI 7.0 ( when i am creatin DSO,i got 3 options Standard,direct,overwrite) which one i should select .
    Regards
    Sidhu

    Hi,
    Transactional ODS is now Direct update DSO in BI 7.0 and contains only active data table
    Direct update DSO
    http://help.sap.com/saphelp_nw04s/helpdata/en/c0/99663b3e916a78e10000000a11402f/content.htm
    Transactional oDS
    Thanks,
    JituK

  • How to store data in NON -Transactional ODS

    Hi,
    for reporting reasons I wish to store data in non-transactional ODS. Reading in this forum I found only the standard fm 'RSDRI_ODSO_MODIFY' but this fm is used only for transactional ODS.
    Any suggestions?
    Thanks in advance.
    Regards,
        Giovanni

    First of all, many thanks for the quick reply.
    To focus on my problem I have the necessity to realise what it is detailed in a document at this url:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60938938-de6f-2910-2080-fc80d38ebfec
    Working in SEM environment I have the necessity to handle text field in a non-transactional ODS for reporting without using an InfoSet.
    Observing the exceptions raised by calling the fm 'RSDRI_ODSO_MODIFY' it is possible to find the ODS_TYPE_NOT_TRANSACTIONAL showing that a non-transactional ODS is not handled.
    I hope to have explained my intention and my problem and I'm confident to receive your support.
    Thanks.
        Giovanni

  • The sequence of mater data and transaction loading...

    Hi all,
    I have 2 questions as follow:
    Q1. usually say that loading master before transaction data, but if some problem cause the master data loading fail, and transaction loading is successful, any troubles ?
    Q2. In settings of ODS, if the item "BEx reporting" was checked, BW will maintain SID of master data, does it mean that BW will add new records into SID table only or both of master data table(e.g. P, Q tables) and SID table in case of new master data determined? For cube, is there similar situation?
    Thanks a lot

    Hi Ryan.
    A1:  There may or may not be problems depending on what the transactional data does as it is loaded.  The load itself can be set to fail if master data does not exist already.  If this setting is turned off, then there are few possibilities.  If there is a straight transactional data load wihout any special lookups, the system will automatically create master data SIDs for the missing values.  If a user then runs a query, they may not see any attributes or texts associated with the master data.  However, if there are some lookups or master data attributes are written into the InfoCube, then there will be problems as these values are not in master data (due to the load failure).  This will cause the data in the InfoCube to be incorrect.
    A2: You are correct, BW will automatically create SID table entries for this case.  This allows the OLAP engine to run queries on the data.  There is nothing special produced in the P or Q tables unless you haev a special routine built to do that.  As for the InfoCubes, SIDs are always created.  The system presumes that since InfoCubes should have only data related to reporting, then all fields should be reportable and thus have SIDs.
    Regards,
    Adam

Maybe you are looking for