Functional and Performance Testing in HFM, FDM, HFR

Does anyone know how to write test scripts relating to functional testing of HFM, FDM, Hyperion Financial Reporting applications including testing of HFM Business Rules.
I would very much appreciate if you give me step-by-step on how to go about achieving the project goal and how to write these scripts including any recommendation you may have.

Hi..
Following is the information that you need to know about how rules are used in Financial
Management. You use rules to automate the calculations of data within an application. You can
use rules for these purposes:
● Calculate data entry level amounts for a specific entity, scenario, and period.
● Prevent data entry for a specific cell in a specific entity, scenario, and period.
● Allow input at the Parent entity level.
● Calculate data that cannot be calculated through a hierarchical aggregation, such as ratios
or variance analysis.
● Perform allocations from a parent entity to a list of base entities.
● Perform complex currency conversions, calculate exchange rate differences, or perform
other calculations necessary for your consolidation.
● Define formulas to dynamically calculate accounts.
● Specify the accounts in the application that support intercompany transactions.
You can write rules in a text editor, or you can use the Financial Management Rules Editor to
create rules.
For more information on rules pls refer hfm_admin.pdf
Best Regards
Edited by: Naveen Vasa on Jul 9, 2010 10:10 AM

Similar Messages

  • OIM Functionality and Performance Testing

    Hello there,
    Can anybody provide some input related to OIM testing - any experience testing any functionality? The testing depends on the functionality provided by OIM so I purposely want the scope of this question to be broad and want to have an idea of it. The purpose is to reduce human intervention and generate some kinds of script of use some kind of automated tool to test the functionality.
    For eg: Testing tools related to may be GTC reconciliation, user provisioning, etc.
    Any input is appreciated.
    Thanks,
    - oidm.

    Hi oidm
    May be this is not the answer for your question but in my experience so far (very less :) ) I saw guys doing manual testing for IDM projects whether it is of SIM or OIM.
    But I heard about asqard. It is a testing tool for IDM projects but I am not very sure whether it is only Novell IDM specific or we can use it with OIM as well.
    http://www.novell.com/coolsolutions/tools/byproduct/50.html

  • Functional and performance testing on Forms 6.0 and higher

    I want to make functional tests on GUI Oracle Forms ver. 6.0 and higher.
    I'm thinking in a IBM tool called Rational Robot but it's seems not very good. HP also has this type of tool with forms support but I haven't tested it, yet.
    Does Oracle have some tool like this ?
    Thanks !

    Hi..
    Following is the information that you need to know about how rules are used in Financial
    Management. You use rules to automate the calculations of data within an application. You can
    use rules for these purposes:
    ● Calculate data entry level amounts for a specific entity, scenario, and period.
    ● Prevent data entry for a specific cell in a specific entity, scenario, and period.
    ● Allow input at the Parent entity level.
    ● Calculate data that cannot be calculated through a hierarchical aggregation, such as ratios
    or variance analysis.
    ● Perform allocations from a parent entity to a list of base entities.
    ● Perform complex currency conversions, calculate exchange rate differences, or perform
    other calculations necessary for your consolidation.
    ● Define formulas to dynamically calculate accounts.
    ● Specify the accounts in the application that support intercompany transactions.
    You can write rules in a text editor, or you can use the Financial Management Rules Editor to
    create rules.
    For more information on rules pls refer hfm_admin.pdf
    Best Regards
    Edited by: Naveen Vasa on Jul 9, 2010 10:10 AM

  • Load and performance testing

    How to do Load and performance test after upgrading database to 11gR2 during the dev and acceptance test. How to compare the performance before upgrade(10gR2 with 11.5.01.2) and after upgrade 11Gr2(11gR2 with 11.5.10.2).
    Regards
    appsdba

    Please see old threads for similar discussion -- http://forums.oracle.com/forums/search.jspa?threadID=&q=Performance+AND+Testing&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • Forms and Reports: Automated Test tools - functionality AND performance

    All,
    I'm looking to get a few leads on an automated test tools that may be used to validate Oracle forms and reports (see my software configuration below). I'm looking for tools that can automate both functional tests and performance. By this I mean;
    Functional Testing:
    * Use of shortcut keys
    * Navigation between fields
    * Screen organisation (filed locations)
    * Exercise forms validation (bad input values)
    * Provide values to forms and simulate user commit, and go and verify database state is as expected
    Performance Testing:
    * carry out tests for fixed user load
    * carry out tests for scaled step increase in user load
    * automated collection of log files and metrics during test
    So far I have:
    http://www.neotys.com/
    Thanks in advance for your response.
    Mathew Butler
    Configuration:
    Red Hat Enterprise Linux x86-64 architecture v4.5 64 bit
    Oracle Application Server 10.1.2.0.2 ( with patch 10.1.2.3 )
    Oracle Developer Suite (Oracle Forms and Reports) V10.1.2.0.2 ( with patch 10.1.2.3 )
    Oracle JInitiator 1.3.1.17 or later
    Microsoft Internet Explorer 6

    are there any tools for doing this activity like oracle recommended tools?
    Your question is unclear.  As IK mentioned, the only tool you need is a new version of Oracle Forms/Reports.  Open your v10 modules in a v11 Builder and select Save.  You now have a v11 module.  Doing a "Compile All PL/SQL" before saving is a good idea, but not required.  The Builders and utilites provided with the version 11 installation are the only supported tools for upgrading your application.  If you are trying to do the conversion of many Forms files in a scripted manner, you can use the Forms compiler in a script.  Generating new "X" files will also update the source modules (fmb, mmb, pll).  See MyOracleSupport Note 955143.1
    Also included in the installation in the Forms Migration Assistant.  Although it is more useful to people coming from older versions, it can also be used to move from v10 to 11.  It allows you to select more than one file at a time.  Documentation for this utility can be found in the Forms Upgrade Guide.
    Using the Oracle Forms Migration Assistant

  • Help:set up simple test sequence, operator selects particular test then teststand links to part of sequence file and performs test

    Hi,
    I am extremely new to TestStand, please see question below and offer advice.
    I want to set up a simple test sequence.
    I want a message to popup on screen that asks the operator which unit of 6(max 10) Units to test(i.e. there are say 6-10 box's to select from).
    Then the sequence goes to the particular part of the sequence and performs the test on which ever unit was selected.
    What is the best way to do this?
    Could i use message popups to do this?and if so what do i need to do link it to the correct part of the sequence file?
    Do message popups only allow 6 options to select from?
    Thanks,
    Solved!
    Go to Solution.

    Hi,
       You can do using message popup method. You can ask the user which unit want to execute by inserting message in message expression in message popup step settings.Something like below
    "Enter unit number to execute 
     1.  Unit1
     2.  Unit 2
     10. Unit 10"
    then check "Enable response text box" from options tab in step settings.When user enters unit number you can get the user entered value by inserting the below statement in post expression of message popup step settings
        Locals.String = Step.Result.Response 
        Note : String is a local variable to be defined.
    Convert that string in to number and send that output to switch expression there by you can use a sequence call step to call sequence whichever to be executed. (I hope your each unit will be seperate sequence file)
    I hope these resolves your problem. If you don't understand let me know so that I can develop a small example and send it to.
    Cheers,
    krishna 

  • Functional and structural testing

    Hello,
    I would appreciate some information about functional and structural (white box and black box testing).
    Could someone please give a brief example of each or any other information or tell me if the following 2 paragraphs make sense:
    Structural testing is testing individual bits of code e.g. testing if a array holds the right information. Not sure how I would go about doing this tho, example would help.
    Functional testing is more simple as this involves valid or invalid input into the program e.g. if a program compares 2 ages input by the user then functional tests would involve entering non valid ages (ages out of range and the wrong format) or correct ages.
    Thanks anyone

    Hello,
    I would appreciate some information about functional
    and structural (white box and black box testing).
    Could someone please give a brief example of each or
    any other information or tell me if the following 2
    paragraphs make sense:
    Structural testing is testing individual bits of code
    e.g. testing if a array holds the right information.
    Not sure how I would go about doing this tho, example
    would help.System.out.println(aVariable);
    Or:
    if (obj.getSomeValue != x) System.out.println("Houston, we have a problem.")
    Functional testing is more simple as this involves
    valid or invalid input into the program e.g. if a
    program compares 2 ages input by the user then
    functional tests would involve entering non valid
    ages (ages out of range and the wrong format) or
    correct ages.It's just about calling a method to see whether it provides the correct results on good input and a defined error state on bad input.

  • Lync Stress and performance test - DTMF

    Hi all,
    I found the below parameters in the CAA xml file generated by the LSS tool.
          <ConfIdEntryDelayInSec>15</ConfIdEntryDelayInSec>
          <PlayParticipantName>true</PlayParticipantName>
          <ParticipantNamePlayDurationInSec>45</ParticipantNamePlayDurationInSec>
          <ParticipantNameAudioFileName>Audio.wma</ParticipantNameAudioFileName>
          <DtmfEntryPercentage>0</DtmfEntryPercentage>
          <DtmfEntryIntervalInSeconds>600</DtmfEntryIntervalInSeconds>
          <Dtmfs>*1,*6</Dtmfs>
          <DtmfHardMutePercentage>0</DtmfHardMutePercentage>
          <DtmfHardMuteDelayInSeconds>300</DtmfHardMuteDelayInSeconds>
          <DtmfUnHardMuteDelayInSeconds>300</DtmfUnHardMuteDelayInSeconds>
          <DtmfAdmitAllPercentage>0</DtmfAdmitAllPercentage>
          <DtmfAdmitAllDelayInSeconds>300</DtmfAdmitAllDelayInSeconds>
    Based on the DTMF parameters, am i correct in saying that generic DTMF inputs can be stress tested, but there isn't an option to enter conference ID's of manually created conferences via the tool ?
    Thanks
    If you see a post that helped you please click "Vote as Helpful" and if it answered your question, please click "Mark as Answered.
    Murali Krishnan | My blog: UnifiedMe
    | Twitter: @mkris9

    I am afraid not.
    LSS is used to simulate all Lync Server workloads or just specific workloads and perform a stress testing exercise.
    Lisa Zheng
    TechNet Community Support

  • Stress and Performance test SAP NW EP7

    Hi Experts,
      Is there any application that we can use for stress/load and/or performance testing on
      SAP NW7 EP7 SP15.
       We are on Windows 2003/ Oracle 10g
    Thanks,

    Hi,
    You can book a GoLive service as per your requirement.
    Refer https://websmp107.sap-ag.de/supportofferings
    Thank you,
    Tilak

  • 2.1.0.62: Problem with Package.Functions and Unit Tests

    I like the new Sqldeveloper - I startet trying Unit Tests as described here: Link: [http://www.oracle.com/technology/obe/11gr2_db_prod/appdev/sqldev/sqldev_unit_test/sqldev_unit_test.htm#t4]
    It worked with a test-procedure. Now i am trying to test my package functions, but all i get is this:
    Die folgende Prozedur wurde ausgeführt.
    Ausführungsaufruf
    BEGIN
    :1 := "PKG_MYPACK"."CREATEFUNCTION"(IN_PROGRAMMEID=>:2,
    IN_AMOUNT=>:3,
    IN_SWS=>:4);
    END;
    Bind-Variablen verwendet
    1 INTEGER OUT (null)
    2 INTEGER IN 1
    3 INTEGER IN 10
    4 INTEGER IN 11
    Ausführungsergebnisse
    ERROR
    Ungültige Konvertierung angefordert
    oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:439)
    oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7723)
    oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7496)
    oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7978)
    oracle.jdbc.driver.OracleCallableStatement.setObject(OracleCallableStatement.java:4063)
    oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:221)
    oracle.dbtools.raptor.datatypes.strategies.callablestatement.CallableBindingDatum.customBindIN(CallableBindingDatum.java:135)
    oracle. ...
    what can i do?

    Created
    Bug 8976245 - EA1: UNIT_TEST: INVALID CONVERSION ERROR USING INTEGER PARAMETER
    and have asked bug responder to keep you updated on status here in the forum.
    Bad news is that any INTEGER parameter for which you specify a non-null value will fail.
    Possibly helpful news is that if you create a 'clone' of you function using NUMBER as the data type, you can continue to experiment with how unit testing may be of use to you.
    Sorry no instant answer. :(
    Brian
    SQL Developer Team

  • Some Thoughts On An OWB Performance/Testing Framework

    Hi all,
    I've been giving some thought recently to how we could build a performance tuning and testing framework around Oracle Warehouse Builder. Specifically, I'm looking at was in which we can use some of the performance tuning techniques described in Cary Millsap/Jeff Holt's book "Optimizing Oracle Performance" to profile and performance tune mappings and process flows, and to use some of the ideas put forward in Kent Graziano's Agile Methods in Data Warehousing paper http://www.rmoug.org/td2005pres/graziano.zip and Steven Feuernstein's utPLSQL project http://utplsql.sourceforge.net/ to provide an agile/test-driven way of developing mappings, process flows and modules. The aim of this is to ensure that the mappings we put together are as efficient as possible, work individually and together as expected, and are quick to develop and test.
    At the moment, most people's experience of performance tuning OWB mappings is firstly to see if it runs set-based rather than row-based, then perhaps to extract the main SQL statement and run an explain plan on it, then check to make sure indexes etc are being used ok. This involves a lot of manual work, doesn't factor in the data available from the wait interface, doesn't store the execution plans anywhere, and doesn't really scale out to encompass entire batches of mapping (process flows).
    For some background reading on Cary Millsap/Jeff Holt's approach to profiling and performance tuning, take a look at http://www.rittman.net/archives/000961.html and http://www.rittman.net/work_stuff/extended_sql_trace_and_tkprof.htm. Basically, this approach traces the SQL that is generated by a batch file (read: mapping) and generates a file that can be later used to replay the SQL commands used, the explain plans that relate to the SQL, details on what wait events occurred during execution, and provides at the end a profile listing that tells you where the majority of your time went during the batch. It's currently the "preferred" way of tuning applications as it focuses all the tuning effort on precisely the issues that are slowing your mappings down, rather than database-wide issues that might not be relevant to your mapping.
    For some background information on agile methods, take a look at Kent Graziano's paper, this one on test-driven development http://c2.com/cgi/wiki?TestDrivenDevelopment , this one http://martinfowler.com/articles/evodb.html on agile database development, and the sourceforge project for utPLSQL http://utplsql.sourceforge.net/. What this is all about is having a development methodology that builds in quality but is flexible and responsive to changes in customer requirements. The benefit of using utPLSQL (or any unit testing framework) is that you can automatically check your altered mappings to see that they still return logically correct data, meaning that you can make changes to your data model and mappings whilst still being sure that it'll still compile and run.
    Observations On The Current State of OWB Performance Tuning & Testing
    At present, when you build OWB mappings, there is no way (within the OWB GUI) to determine how "efficient" the mapping is. Often, when building the mapping against development data, the mapping executes quickly and yet when run against the full dataset, problems then occur. The mapping is built "in isolation" from its effect on the database and there is no handy tool for determining how efficient the SQL is.
    OWB doesn't come with any methodology or testing framework, and so apart from checking that the mapping has run, and that the number of rows inserted/updated/deleted looks correct, there is nothing really to tell you whether there are any "logical" errors. Also, there is no OWB methodology for integration testing, unit testing, or any other sort of testing, and we need to put one in place. Note - OWB does come with auditing, error reporting and so on, but there's no framework for guiding the user through a regime of unit testing, integration testing, system testing and so on, which I would imagine more complete developer GUIs come with. Certainly there's no built in ability to use testing frameworks such as utPLSQL, or a part of the application that let's you record whether a mapping has been tested, and changes the test status of mappings when you make changes to ones that they are dependent on.
    OWB is effectively a code generator, and this code runs against the Oracle database just like any other SQL or PL/SQL code. There is a whole world of information and techniques out there for tuning SQL and PL/SQL, and one particular methodology that we quite like is the Cary Millsap/Jeff Holt "Extended SQL Trace" approach that uses Oracle diagnostic events to find out exactly what went on during the running of a batch of SQL commands. We've been pretty successful using this approach to tune customer applications and batch jobs, and we'd like to use this, together with the "Method R" performance profiling methodology detailed in the book "Optimising Oracle Performance", as a way of tuning our generated mapping code.
    Whilst we want to build performance and quality into our code, we also don't want to overburden developers with an unwieldy development approach, because what we'll know will happen is that after a short amount of time, it won't get used. Given that we want this framework to be used for all mappings, it's got to be easy to use, cause minimal overhead, and have results that are easy to interpret. If at all possible, we'd like to use some of the ideas from agile methodologies such as eXtreme Programming, SCRUM and so on to build in quality but minimise paperwork.
    We also recognise that there are quite a few settings that can be changed at a session and instance level, that can have an effect on the performance of a mapping. Some of these include initialisation parameters that can change the amount of memory assigned to the instance and the amount of memory subsequently assigned to caches, sort areas and the like, preferences that can be set so that indexes are preferred over table scans, and other such "tweaks" to the Oracle instance we're working with. For reference, the version of Oracle we're going to use to both run our code and store our data is Oracle 10g 10.1.0.3 Enterprise Edition, running on Sun Solaris 64-bit.
    Some initial thoughts on how this could be accomplished
    - Put in place some method for automatically / easily generating explain plans for OWB mappings (issue - this is only relevant for mappings that are set based, and what about pre- and post- mapping triggers)
    - Put in place a method for starting and stopping an event 10046 extended SQL trace for a mapping
    - Put in place a way of detecting whether the explain plan / cost / timing for a mapping changes significantly
    - Put in place a way of tracing a collection of mappings, i.e. a process flow
    - The way of enabling tracing should either be built in by default, or easily added by the OWB developer. Ideally it should be simple to switch it on or off (perhaps levels of event 10046 tracing?)
    - Perhaps store trace results in a repository? reporting? exception reporting?
    at an instance level, come up with some stock recommendations for instance settings
    - identify the set of instance and session settings that are relevant for ETL jobs, and determine what effect changing them has on the ETL job
    - put in place a regime that records key instance indicators (STATSPACK / ASH) and allows reports to be run / exceptions to be reported
    - Incorporate any existing "performance best practices" for OWB development
    - define a lightweight regime for unit testing (as per agile methodologies) and a way of automating it (utPLSQL?) and of recording the results so we can check the status of dependent mappings easily
    other ideas around testing?
    Suggested Approach
    - For mapping tracing and generation of explain plans, a pre- and post-mapping trigger that turns extended SQL trace on and off, places the trace file in a predetermined spot, formats the trace file and dumps the output to repository tables.
    - For process flows, something that does the same at the start and end of the process. Issue - how might this conflict with mapping level tracing controls?
    - Within the mapping/process flow tracing repository, store the values of historic executions, have an exception report that tells you when a mapping execution time varies by a certain amount
    - get the standard set of preferred initialisation parameters for a DW, use these as the start point for the stock recommendations. Identify which ones have an effect on an ETL job.
    - identify the standard steps Oracle recommends for getting the best performance out of OWB (workstation RAM etc) - see OWB Performance Tips http://www.rittman.net/archives/001031.html and Optimizing Oracle Warehouse Builder Performance http://www.oracle.com/technology/products/warehouse/pdf/OWBPerformanceWP.pdf
    - Investigate what additional tuning options and advisers are available with 10g
    - Investigate the effect of system statistics & come up with recommendations.
    Further reading / resources:
    - Diagnosing Performance Problems Using Extended Trace" Cary Millsap
    http://otn.oracle.com/oramag/oracle/04-jan/o14tech_perf.html
    - "Performance Tuning With STATSPACK" Connie Dialeris and Graham Wood
    http://www.oracle.com/oramag/oracle/00-sep/index.html?o50tun.html
    - "Performance Tuning with Statspack, Part II" Connie Dialeris and Graham Wood
    http://otn.oracle.com/deploy/performance/pdf/statspack_tuning_otn_new.pdf
    - "Analyzing a Statspack Report: A Guide to the Detail Pages" Connie Dialeris and Graham Wood
    http://www.oracle.com/oramag/oracle/00-nov/index.html?o60tun_ol.html
    - "Why Isn't Oracle Using My Index?!" Jonathan Lewis
    http://www.dbazine.com/jlewis12.shtml
    - "Performance Tuning Enhancements in Oracle Database 10g" Oracle-Base.com
    http://www.oracle-base.com/articles/10g/PerformanceTuningEnhancements10g.php
    - Introduction to Method R and Hotsos Profiler (Cary Millsap, free reg. required)
    http://www.hotsos.com/downloads/registered/00000029.pdf
    - Exploring the Oracle Database 10g Wait Interface (Robin Schumacher)
    http://otn.oracle.com/pub/articles/schumacher_10gwait.html
    - Article referencing an OWB forum posting
    http://www.rittman.net/archives/001031.html
    - How do I inspect error logs in Warehouse Builder? - OWB Exchange tip
    http://www.oracle.com/technology/products/warehouse/pdf/Cases/case10.pdf
    - What is the fastest way to load data from files? - OWB exchange tip
    http://www.oracle.com/technology/products/warehouse/pdf/Cases/case1.pdf
    - Optimizing Oracle Warehouse Builder Performance - Oracle White Paper
    http://www.oracle.com/technology/products/warehouse/pdf/OWBPerformanceWP.pdf
    - OWB Advanced ETL topics - including sections on operating modes, partition exchange loading
    http://www.oracle.com/technology/products/warehouse/selfserv_edu/advanced_ETL.html
    - Niall Litchfield's Simple Profiler (a creative commons-licensed trace file profiler, based on Oracle Trace Analyzer, that displays the response time profile through HTMLDB. Perhaps could be used as the basis for the repository/reporting part of the project)
    http://www.niall.litchfield.dial.pipex.com/SimpleProfiler/SimpleProfiler.html
    - Welcome to the utPLSQL Project - a PL/SQL unit testing framework by Steven Feuernstein. Could be useful for automating the process of unit testing mappings.
    http://utplsql.sourceforge.net/
    Relevant postings from the OTN OWB Forum
    - Bulk Insert - Configuration Settings in OWB
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=291269&tstart=30&trange=15
    - Default Performance Parameters
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=213265&message=588419&q=706572666f726d616e6365#588419
    - Performance Improvements
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=270350&message=820365&q=706572666f726d616e6365#820365
    - Map Operator performance
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=238184&message=681817&q=706572666f726d616e6365#681817
    - Performance of mapping with FILTER
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=273221&message=830732&q=706572666f726d616e6365#830732
    - Poor mapping performance
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=275059&message=838812&q=706572666f726d616e6365#838812
    - Optimizing Mapping Performance With OWB
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=269552&message=815295&q=706572666f726d616e6365#815295
    - Performance of mapping with FILTER
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=273221&message=830732&q=706572666f726d616e6365#830732
    - Performance of the OWB-Repository
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=66271&message=66271&q=706572666f726d616e6365#66271
    - One large JOIN or many small ones?
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=202784&message=553503&q=706572666f726d616e6365#553503
    - NATIVE PL SQL with OWB9i
    http://forums.oracle.com/forums/thread.jsp?forum=57&thread=270273&message=818390&q=706572666f726d616e6365#818390
    Next Steps
    Although this is something that I'll be progressing with anyway, I'd appreciate any comment from existing OWB users as to how they currently perform performance tuning and testing. Whilst these are perhaps two distinct subject areas, they can be thought of as the core of an "OWB Best Practices" framework and I'd be prepared to write the results up as a freely downloadable whitepaper. With this in mind, does anyone have an existing best practices for tuning or testing, have they tried using SQL trace and TKPROF to profile mappings and process flows, or have you used a unit testing framework such as utPLSQL to automatically test the set of mappings that make up your project?
    Any feedback, add it to this forum posting or send directly through to me at [email protected]. I'll report back on a proposed approach in due course.

    Hi Mark,
    interesting post, but I think you may be focusing on the trees, and losing sight of the forest.
    Coincidentally, I've been giving quite a lot of thought lately to some aspects of your post. They relate to some new stuff I'm doing. Maybe I'll be able to answer in more detail later, but I do have a few preliminary thoughts.
    1. 'How efficient is the generated code' is a perennial topic. There are still some people who believe that a code generator like OWB cannot be in the same league as hand-crafted SQL. I answered that question quite definitely: "We carefully timed execution of full-size runs of both the original code and the OWB versions. Take it from me, the code that OWB generates is every bit as fast as the very best hand-crafted and fully tuned code that an expert programmer can produce."
    The link is http://www.donnapkelly.pwp.blueyonder.co.uk/generated_code.htm
    That said, it still behooves the developer to have a solid understanding of what the generated code will actually do, such as how it will take advantage of indexes, and so on. If not, the developer can create such monstrosities as lookups into an un-indexed field (I've seen that).
    2. The real issue is not how fast any particular generated mapping runs, but whether or not the system as a whole is fit for purpose. Most often, that means: does it fit within its batch update window? My technique is to dump the process flow into Microsoft Project, and then to add the timings for each process. That creates a Critical Path, and then I can visually inspect it for any bottleneck processes. I usually find that there are not more than one or two dogs. I'll concentrate on those, fix them, and re-do the flow timings. I would add this: the dogs I have seen, I have invariably replaced. They were just garbage, They did not need tuning at all - just scrapping.
    Gee, but this whole thing is minimum effort and real fast! I generally figure that it takes maybe a day or two (max) to soup up system performance to the point where it whizzes.
    Fact is, I don't really care whether there are a lot of sub-optimal processes. All I really care about is performance of the system as a whole. This technique seems to work for me. 'Course, it depends on architecting the thing properly in the first place. Otherwise, no amount of tuning of going to help worth a darn.
    Conversely (re. my note about replacing dogs) I do not think I have ever tuned a piece of OWB-generated code. Never found a need to. Not once. Not ever.
    That's not to say I do not recognise the value of playing with deployment configuration parameters. Obviously, I set auditing=none, and operating mode=set based, and sometimes, I play with a couple of different target environments to fool around with partitioning, for example. Nonetheless, if it is not a switch or a knob inside OWB, I do not touch it. This is in line with my dictat that you shall use no other tool than OWB to develop data warehouses. (And that includes all documentation!). (OK, I'll accept MS Project)
    Finally, you raise the concept of a 'testing framework'. This is a major part of what I am working on at the moment. This is a tough one. Clearly, the developer must unit test each mapping in a design-model-deploy-execute cycle, paying attention to both functionality and performance. When the developer is satisifed, that mapping will be marked as 'done' in the project workbook. Mappings will form part of a stream, executed as a process flow. Each process flow will usually terminate in a dimension, a fact, or an aggregate. Each process flow will be tested as an integrated whole. There will be test strategies devised, and test cases constructed. There will finally be system tests, to verify the validity of the system as a production-grade whole. (stuff like recovery/restart, late-arriving data, and so on)
    For me, I use EDM (TM). That's the methodology I created (and trademarked) twenty years ago: Evolutionary Development Methodology (TM). This is a spiral methodology based around prototyping cycles within Stage cycles within Release cycles. For OWB, a Stage would consist (say) of a Dimensional update. What I am trying to now is to graft this within a traditional waterfall methodology, and I am having the same difficulties I had when I tried to do it then.
    All suggestions on how to do that grafting gratefully received!
    To sum up, I 'm kinda at a loss as to why you want to go deep into OWB-generated code performance stuff. Jeepers, architect the thing right, and the code runs fast enough for anyone. I've worked on ultra-large OWB systems, including validating the largest data warehouse in the UK. I've never found any value in 'tuning' the code. What I'd like you to comment on is this: what will it buy you?
    Cheers,
    Donna
    http://www.donnapkelly.pwp.blueyonder.co.uk

  • Load & Performance Testing In The Cloud - Silverlight Support

    I currently have Visual Studio Premium with MSDN. I know in order to use Load Testing in the cloud I will have to upgrade to Ultimate.
    One of the our web apps that I need to do a load and performance test on uses SilverLight.
    Here is my questions. I want to verify that the provisioned virtual machines in the cloud when I run load testing will support Silverlight. I know it sounds like a silly question but before I go to Management to approve this upgrade I need to verify it will
    work. No need to waste money.
    Thanks

    Hi rgelston iso.com,
    The web tests: Web tests are used to test the functionality of Web applications and to test Web applications under load. Web tests are used both in performance tests and stress tests. It works at the protocol layer by issuing HTTP requests.
    Reference:
    https://msdn.microsoft.com/en-us/library/ff520100%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
    So the real issue is that whether your apps meet the above requirements.
    For example, for the general Silverlight Apps, it would have some limitations if you want to create web performance tests.
    http://blogs.msdn.com/b/anutthara/archive/2010/03/21/testing-support-for-silverlight-apps-in-visual-studio-2010.aspx
    Best Regards,
    Jack
    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.
    Click
    HERE to participate the survey.

  • Function Module to perform authorization and connect test for given RFC

    Hello Experts,
    I am working on request, which requires checking the RFC status.ie whether both Connection Test and Authorization test is OK for a given RFC.
    Please help me in finding the function module for the above request.
    Thanks in advance!!!!!!!
    Thanks,
    Karthik

    Hi Karthik,
    For connection test you can use RFC_PING as said by Thomas, for checking authorization using Uname/PWD etc use RFC_LOGIN.
    My Bad - You cannot use RFC_LOGIN, you can try with RFC_LOGIN_INFO and check the parameter "RFC_LOGIN_COMPLETE".
    Regards,
    Chen
    Edited by: Chen K V on Jun 3, 2011 2:16 PM
    Edited by: Chen K V on Jun 3, 2011 2:23 PM

  • GT70 2PC – Software testing and performance report.

    It is so excited here again. Currently, my first/only object after work is playing Titanfall.
    I intended to share another performance testing today. But I didn’t. I found there are too many great open box posts on different forums. Therefore, I decide to dig the MSI software compatibility and do a touring. What can I say? I’m Mr.Curiosity who really desires to know every built-in application in system. That is why I share this article with you, my friends. I would like to discuss with everybody who is interested in MSI software. Of course, I have some performance reports for you, too. Please also remind me if you find any typo/wrong in this post. Thanks in advance.  
    1. MSI Boot Configure
        This is the first software which pops up immediately. It is thoughtful design because we can choose enter the [Windows 8.1 metro] or [desktop] by ourselves now. I give it two thumbs up!!!
    Select your favorite boot configuration and press [OK]. If we want it work immdiately, we can logout the system and re-login again.
    2.   MSI Remind Manager
    Honestly, I didn’t know what it is in the beginning. The cute robot shows every time when I login the system. I found this is a reminder for product registration. Good, I would like to have best MSI support and warranty for my lovely GT70 2PC. But don’t worry, if you don’t want to get this message again, you just need to select the right option and close it.
    3.   Synaptics TouchPad
    This is a driver for mouse. [Mouse property] will show if we do the double clicks on TouchPad icon in tray. You can choose enable/disable internal pointing device when external pointing device is attached. This is brilliant. A tough guy (like me…HA! HA!) didn’t like to play game with touchpad. Because the character in game will be weak and slow if I control it by touchpad. Of course, I need the external mouse all the time and don’t want the interference from touchpad.
    4.   System Control Manager (SCM)
    We can enable/disable the WLAN/BT/camera devices by SCM. Besides, it can control the display brightness, volume, screen on/off and ECO. ECO is special mode for gaming watching movie.  
    5.   Sound Blaster CINEMA
    Sound Blaster CINEMA is come from an old school audio company – CREATIVE. The software can adjust the surround sound easily. We also can adjust 5.1/7.1 surround sound for the internal speakers and external headphone. That is great, isn’t it?
    Besides, we can also adjust CRYSTALIZER/BASS/SMART VOLUME/digital output by ourselves.
    6.   Killer Network Manager
    This is a major feature of MSI NB.
    In Killer Network Manager, we can set the network priority for each of applications and we also can abandon the connection from malicious software.
    [Performance] shows current status of network. We can find out which application occupied the most greedy resources by it.
    [Network -> Test Network Speed] will detect the network environment automatically. Furthermore, it will adjust the priority for applications.
    [Killer Ethernet] show the LAN connection info.
    [Killer Wireless] show the router info.
    7.   SteelSeries Engine
    This is another major feature of MSI NB
    If we do the right click on icon in tray, the menu will show following list. We can select [Launch SteelSeries Firmware Update Tool], [Updates]…and so on.
    If we select the [Settings]. It can help us change default language and set application auto running when system power on.
    I.   Buttons
    Double click to open the SteelSeries Engine. I think it can set 4 different keyboard settings for each of profiles. And it can switch by FN+1~4.
    [Keypress Marc] can record what you input. And [Record Delays ] can modify the delay time. HA! No game can block us anymore. Please remember to press the [SAVE] for your setting
    [Launch Application] can launch any application immediately. I suggest to set the cold key for this function.
    Here is example. I use [PgUp] to quick start the 3D Mark11. See, it will pop up when I pressed [PgUp].
    It is simple to use [TextMarco] set our own phrase. Now I become a quick speaker in my team. One key, only one key can help me to type a lot of words.
    Are you tired to press some keys that you never want to touch in game (Like WIN KEY)? It is not the problem now.  [Disable Key] will do the favor and disable any key which you hate.
    II.   [Colors] can change the color of backlight keyboard. Also, you can set different modes (Gaming/Audio…etc) on it.
    We can change the color zone. There is not only 4 or 5 colors. The engine provides thousands of colors for us. [Audio mode] is the coolest. It will change colors by itself when we play music by speakers. I like to dance with my keyboard.
    III.   We can select different languages by [Settings].
    IV.   [Properties] can save our hard works of settings reliably.
    V.   If you want to defeat your competitors, it is important to know your enemy. However, It is more important to know yourself. [Statistics] can help us observe which keys are most popular by our fingers.
    Right click on [Profile]. It can modify/export/import/delete the profiles.
    Mouse can use the same kind of settings as keyboard.
    DPI setting for mouse.
    Save files.
    We can record the mouse, too.
    8.   Norton
    Norton Internet Security: Anti-Virus software, MSI provides 60 days for free.
    Norton Online Backup: Online data backup software, MSI provides 30 days for free.
    Norton Anti-Theft: Anti-Theft software, MSI provides 30 days for free.
    If you like Norton’s products, you can buy it online.
    If you don’t, I believe we can uninstall it directly.
    So, the decision is ours.
    Introduction from Norton official website
    9.   Dragon Gaming Center
    I.   System Monitor:
    It can monitor CPU/GPU loading and temperature. We also can find the network speed and fan speed in it.  
    II.   Utility:
    You can set your favorite apps in [Add new Utility].
    E.g. I added a [MSI Afterburner]. Click [Open] to build the link. Do you feel familiar with something? Exactly, [Launch Application] of [SteelSeries Engine] can do this, too.
    III.   Instant Play:
    We can define [Fn+F4] to enable the quick start. But there is more secret.
    We can also use [Browse] to assign the game which we want.  
    Click the icon of game and [Fn+F4] will be ready. We can only use 1 program at once.  
    I usually change the brightness, volume and mouse sensitive before the game. As you know, every games are different. It is sweet because we can use  [Apply Setting] to do this.
    I can’t believe it. We also can find the clock feature in it. How convenient it is!
    IV.   Hybrid Power is another MSI feature.
    It can provide the power by AC adapter and battery in the same time. We can monitor the status in here.
    10. BurnRecovery
    It can create the recovery CD/DVD/USB for MSI NB.
    Here can select Recovery disc/USB/ISO.
    I will make a ISO file first.
    We can select where to put the ISO.
    Creating the recovery file...
    Finish!
    Open the folder and we can find 4 ISO files in it.
    Well…[BurnRecovery Help] provide the details spec.
    In my opinion, everyone should create their own recovery image. You will need it in one day.
    11. Battery Calibration
    This is software for battery calibration. In order to keep our battery good, we should do the calibration every three months. Don’t forget to plug-in the AC adapter and battery during the process..
    Press [Start] to begin the process. It will make the battery fully charged first.
    Then, it will empty the battery like this.
    System will shut down after the empty process. At last, fully charged again. It will take 4~5 hrs to complete the process.
    12. MSI Dragoon Army /MSI Facebook /Web site /YouTube
    Those are MSI forums/Facebook/official website/YouTube and links.
    [MSI Dragoon Army] is the official forum for MSI. We can find NB, MB and AIO info in it.
    Facebook Quick Link for many countries of world.
    MSI official website
    YouTube channel of MSI.
    13. Super-Charger
    There is no message when I click this app at the first time. But when I attached my IPAD, it pops up the [Super-Charger]. It is amazing because IPAD can’t be charge by this USB port. As far as I know, the USB 3.0 only provides maximum 900mA for its device. IPAD will need 2.1A for charge process. I have no idea how MSI NB make IPAD charging okay.
    14. XSplit GameCaster
    This is one of important features. I saw many different first class gaming machines this year. All of them have the broadcast software. (Like PS4, Xbos ONE)
    It can switch the default language after we login.
    Twitch/YouTube / Facebook/ Twitter/Google+ can be used by [Accounts]. It is easy to start the live show.
    We can modify the resolution and use twitch by [Setting]
    We can configure FPS/CPU loading/where to show on display by [Status label].
    Hotkey configuration.
    Videos storage.
    Press [Ctrl+Tab] to call Gamecaster in game. And we can twitch or modify setting. I will provide my gaming video for you later.
    15. Power DVD
    This is a famous video player. Also, it can support BD format.
    We can use the [Setting] to change our language.
    We can change 5 times for default country .
    It is glad that I’ve finished the introduction of GT70 software.
    Performance report:
    Um…Now is late at night. I should go to my lovely bed.  Following is the testing report for the reference.
    1.   FurMark
    1920*1080, 15 minutes.
    2.   AIDA 64
    CPU and GPU stress testing, 30 minutes.
    3. 3D Mark 11
    4. 3DMark Vantage
    5.   3DMark 2013
    6.   Heaven Benchmark 4.0
    7.   CINBENCH 11.5
    8.   FINAL FANTASY XIV Benchmark
    9.   PCMARK 7
    10.   HD Tune Pro  5.50
    11.   AS SSD Benchmark
    12.   Crystal Disk Mark
    I didn’t forget my promise. Here is my gaming videos
    http://youtu.be/tCd5Lnj2U0I

    Editors' Choice Award. Good job MSI !!
    http://www.computershopper.com/laptops/reviews/msi-gt70-dominator-893#review-body

  • Calling nested function to perform DML and wait for commit

    Hi everybody,
    I would like to do some DML -- an insert statement, to be specific -- in a function and have the function then return the numeric key of the newly added row. I call this function from another context and woud then be able to use the newly added data to do some stuff.
    More specifically, what I am going to do is this: I have a graph consisting of source, destination and distance triplets in a table. A user should now be able to
    1.) add a node 'A' to the graph,
    2.) add a node 'B' to the graph
    3.) get the shortest path from A to B through the graph.
    I have an inner function function INSERT_NEW_NODE(node_in in sdo_geometry, graph_in in integer) return integer
    is 
    pragma autonomous_transaction;
    cursor node_cur is 
      select
          source,
          source_geom
      from graph 
    cursor edge_cur is
        select
            source,
            destination,
            distance,
            edge_geom
        from
          graph
        where
          sdo_geom.relate(edge_geom, 'anyinteract', node_in, .005) = 'TRUE';
    begin
      -- check if identical with any existing node
      for node_rec in node_cur loop 
        if sdo_geom.relate(node_rec.source_geom, 'EQUAL', node_in, .005) = 'EQUAL' then
          return node_rec.source;
        end if;
      end loop;   
      -- get edges
      for edge_rec in edge_cur loop
         -- new_node-->edge.destination and vice versa
        insert into
          graph
            ID,
            GRAPH,
            SOURCE,
            DESTINATION,
            DISTANCE,
            SOURCE_GEOM,
            DESTINATION_GEOM,
            EDGE_GEOM
        values
          graph_id_seq.nextval, --id
          graph_in, --graph
          morton(node_in.sdo_point.x, node_in.sdo_point.y),  -- source morton key
          edge_rec.source, -- destination morton key
          sdo_geom.sdo_distance(edge_rec.source_geom_marl2000, node_in, .005, 'unit=M'), -- distance
          node_in, -- source geom
          edge_rec.source_geom,  -- dest geom
          split_line(edge_rec.edge_geom_marl2000, node_in).segment1 -- edge geom
        commit;
        --new_node-->edge.source and vice versa
        insert into
          gl_graph
            ID,
            GRAPH,
            SOURCE,
            DESTINATION,
            DISTANCE,
            SOURCE_GEOM,
            DESTINATION_GEOM,
            EDGE_GEOM
        values
          graph_id_seq.nextval, --id
          graph_in, --graph
          edge_rec.source, -- source morton key
          morton(node_in.sdo_point.x, node_in.sdo_point.y), -- destination morton key
          sdo_geom.sdo_distance(edge_rec.source_geom, node_in, .005, 'unit=M'), -- distance
          edge_rec.source_geom,  -- source geom
          node_in, -- dest geom
          split_line(edge_rec.edge_geom, node_in).segment2 -- edge geom
        commit;
      end loop
      return(morton(node_in.sdo_point.x, node_in.sdo_point.y));
    end insert_new_node;, which adds the new nodes to the graph, connects, calculates distances etc. and returns a handle to the newly added node. I call this function twice from another, outer function function get_path (line_in in sdo_geometry, graph_in in integer) return sdo_geometry
    is 
    source number;
    destination number;
    source_geom mdsys.sdo_geometry;
    destination_geom mdsys.sdo_geometry;
    begin
      source := insert_new_node(get_firstvertex(line_in), graph_in);
      destination := insert_new_node(get_lastvertex(line_in), graph_in);
      -- source := insert_new_node(get_firstvertex(line_in), graph_in);
      -- destination := insert_new_node(get_lastvertex(line_in), graph_in);
      return(get_path_geom(source, destination)); --returns a geometry which is the shortest path between source and destination
    end get_path;; and I think, I have to use automous transaction in the inner function, so that the outer function can see any change performed by the inner one. However, this only works, when I call the inner function twice (i.e. remove the comment signs in front of the last two lines of code right before the return statement in the outer function.
    So here's my questions: 1.) Why do I have to call the function twice to see the transaction complete? and 2.) How can I avoid that? Is there a way to wait with the execution of the return statement in the inner function until the insert is committed and can be seen by the outer function?
    Cheers!

    Tanks, everybody, for your replies! Let me go through them one by one
    smon asked: if you remove the pragma statement, does it work then?No, it does not, at least not, if I call the function from the outer function. In this case the insert statements in the inner function are not committed.
    If I call the inner function like thisDECLARE
      NODE_IN SDO_GEOMETRY;
      GRAPH_IN NUMBER;
      v_Return NUMBER;
    BEGIN
      NODE_IN := MDSYS.SDO_GEOMETRY(2001,<srid>,MDSYS.SDO_POINT_TYPE(<x>,<y>,<z>),NULL,NULL);
      GRAPH_IN := 3;
      v_Return := INSERT_NEW_NODE(
        NODE_IN => NODE_IN,
        GRAPH_IN => GRAPH_IN
    DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
      :v_Return := v_Return;
    END;, it works without autonomous transaction, but then again like this I do not use the handle to access the newly inserted data immediately to perform some other task with it.
    sb92075 said:COMMIT inside LOOP is sub-optimal implementation (increases elapsed time) & can result in ORA-01555 error.Thanks, that was very helpful; I changed my code to commit outside of the loop, just before the return statement and it performs a lot faster now.
    user1983440, regarding my statement I think, I have to use automous transaction in the inner function, so that the outer function can see any change performed by the inner one. asked: Are you certain that this is true? No, anything but certain. I should have said "It +seems+, I have to use autonomous transaction". I wish it would work without autonomous transaction, I think it actually should and I wonder why it does not. However, if I do not use autonomous transaction, the outer function seems to try to access the data that I have inserted in the inner function before it is committed, throws a no-data-found-exception, hence a rollback is performed.
    davidp 2 said:The outer function will see whatever the inner function has done, without commit or autonomous transaction [...] In PL/SQL, the default commit is COMMIT WRITE NOWAIT, which I think does mean the transaction might not be instantly visible to the outside transaction, because the call returns before the commit really finishes. Yes, that is my notion, too. However, without autonomous transaction the inner function completes without error, then the outer uses the handles returned by the inner function to call the function <font face="courier">get_path_geom()</font> which cannot find the handles in the graph-table which raises an exception and causes a rollback.
    Let me summarize: The inner function completes fine, without and with autonomous transaction and returns the handle. The inner function commits, if called directly, without and (of course) with autonomous transaction. The outer function does not see the data inserted by the inner function immediately, whether without or with autonomous transaction. If I let the outer function call the inner function twice (4 times, to be specific, but twice for each newly inserted row) from the outer function and do not use autonomous transaction, I get a no-data-found exception. If I let the outer function call the inner function twice and do use autonomous transaction, it works.
    I agree with everything that was said about not using autonomous transaction in this case and I still want to solve this the right way. Any ideas are welcome!

Maybe you are looking for

  • Why does firefox show a tab that says firefox has stopped you.. from opening this page and the ALLOW icon is there for me to click.

    from opening this page and then the ALLOW icon is there for you to click if you want to view this page. it happens almost everytime i surf the web and it is an extra step that is annoying. how do i disable it. thanks. andy

  • F110 - Changing Items in Payment Proposal

    Hello there, has anyone come across FM that can be used to update the items within the payment run proposal ? in my case -- would like to change the housebank from e.g. "AAAA" to "BBBB". BDC is workable. but taking into consideration, that later on w

  • Oracle BPM installed  Java out-of-memory exception

    Hi, I have installed the oracle BPM software in the server have the Ram capacity 8 GB,Could you please suggest some of the do's and don't's to avoid the Java out-of-memory exception which normally appearing on the console of weblogic server. My Serve

  • EncryptedChat

    Hello everyone, I am having a bit of trouble with my application. It is an encrypted chat client/server. It seems like the buffering is incorrect because the server recieves data one send too late, and the client, in turn, recieves data two sends too

  • Group total amount in body margin

    I have a group total amount and remark fields placed in the body margin. All the fields are inside a frame, which is set to "All Pages". And all the fields is set to "First Page". My expected result is that the content will only show at the end of ea