ODI Scenario vs Mapping Execution

Hello everyone,
I want to learn the difference between the mapping scenario and mapping itself. When I create a package, I can drag mapping / scenario to execute the task I wanted. I could not understand the difference here. I always use mapping itself. It is an easy question I know, but I should know. Please help me.
Thank you

When you add a mapping to the package the mapping tasks are executed as part of the session created for the package. Whereas when you add scenario to the package it is added as the OdiStartScen tool in the package and during invocation the scenario is executed as a child session separately. For example if you add Mapping M1 to Package P1 then on executing P1 there would be one session for P1 having one step for M1 and under that the tasks associated with the mapping. But when you add the scenario S1 to the package P1 then on execution there would be two sessions created first parent session for the package and a child session for the scenario.

Similar Messages

  • Event based Automatic execution of ODI scenario (or package)

    My requirement is that whenever my source XML data file is replaced with new file (file-name remains same by the way; the new file is ftp'ed at this location);
    Whenever this event occurs my odi scenario (or package) should get executed automatically.
    I don't wish to achieve this using web-services.
    I am using ODI 11g.
    Any help appreciated.

    Thanks a lot Sutirtha Roy.
    I achieved what I was trying but one issue is still there:
    Following are steps I follow in my ODI Package:
    Step 1:
    Odi File Wait (Waits for XML input file)
    Step 2:
    Execute interface (this interface actually does transfer of Src data of XML to Oracle db)
    Step 3:
    ODI File Move (Moves processed file to some other dir)
    ---- At this point I see a lock .lck file is created of input file
    Step 4:
    ODI File Delete (deletes .lck file)
    Step 5:
    Loop Back to "Odi File Wait" step 1
    But after first file is processed and second file is received at src directory the ODI package couldn't load data in db.
    The interface got executed as if it was void.
    I suspect File is locked in Driver.
    The deletion in step 4 didnt help.
    How can I resolve it.
    Is there a way to execute 'UNLOCK file <fileName>' command on the driver.

  • How to measure mapping execution speed

    Hi,
    currently i'm trying to measure performance differences between Interface Mappings which contain one single Message Mapping and Interface Mappings which contain 2 or 3 Message Mappings.
    I already tried to do this with RWB and Performance-Monitoring. But Performance Monitoring shows the processing time through the whole XI, and not only Mapping execution time. So it is difficult to get a clean measuring there, without influences from queueing and so on.
    Test Tab on Integration Builder has a too big step (one second). Mapping execution time is slower.
    Do you have any ideas to measure this?
    Or do you have experience with performance differences between those two kinds of Interface Mappings?
    regards,
    ms
    P.S. i'm using XI 3.0

    Hi, Manuel:
    For the two scenarios you want to compare performance, trigger them separately.
    You take following steps to take measurement for those two scenarios:
    Go to SXMB_MONI, find the message, go to pipeline step after your "Request Message Mapping"
    e.g. you can select "Technical Routing" step, expand it, -> SOAP Header -> Performance Header:
    You will see the start time stamp for each steps executed up to current step.
    Locate your mapping programs, get the begin time stamp and end time stamp, then you will know the how long the mapping program take.
    For the scenario that you have several mapping programs, make sure you get begin timestamp for the first mapping program and end timestamp for last mapping program, the difference is the time for you few mapping program take.
    Hope this helps.
    Liang
    Edited by: Liang Ji on Mar 29, 2008 5:42 AM

  • How to pass a Variable value into an ODI Scenario from ODI Package

    I have created an Interface that uses the variable #ENTITY_ID for retrieving entity data from the DWH; now I have generated a Scenario from the interface and placed the Scenario in an ODI Package; am not sure how to pass the #ENTITY_ID variable to the ODI Scenario?
    Any help is greately appreciated.
    Best Regards
    Bee

    Hi Sutrtha,
    Yeah I got the pop up asking to select the variables used, I have selected ENTITY_ID that was used by the interfaces, but on execution of the package the Scenario did not work as the passeed variable #ENTITY_ID is set to 0 instead of the value I am passing.
    Am I missing something?
    Regards
    B

  • Error in Mapping Execution

    Hi Experts,
       I am doing the dat file to RFC scenario.. development has been done.
       While testing i am facing the problem with mapping execution. I have tested with single record structure and multiple record structure.. but getting the same error.. pls see the below error.
    <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MM_DATA2RFC_</SAP:P1>
      <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException:</SAP:P2>
      <SAP:P3>Fatal Error: com.sap.engine.lib.xml.parser.ParserE</SAP:P3>
      <SAP:P4>xception: Invalid char #0x0 (:main:, row:5, col:2~</SAP:P4>
      <SAP:AdditionalText />
      <SAP:Stack>Runtime exception occurred during application mapping com/sap/xi/tf/_MM_DATA2RFC_; com.sap.aii.utilxi.misc.api.BaseRuntimeException:Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0x0 (:main:, row:5, col:2~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I have maintained FCC in configuration...
    can any one suggest what would be the problem.
    Thanks,
    Swetha

    Hi Stefen,
      You are absolutely right/correct.. i have saved file in another editor with ANSI.. and triggered the interface but now i am facing the problem with message mapping.. pls see the below error.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MM_EMFDATA2RFC_</SAP:P1>
      <SAP:P2>com.sap.aii.mappingtool.tf7.MessageMappingExceptio</SAP:P2>
      <SAP:P3>n: Runtime exception when processing target-field</SAP:P3>
      <SAP:P4>mapping /ns1:Z_H_EMF_RFC/IPFILE1/item[2]/TRMDA; r~</SAP:P4>
      <SAP:AdditionalText />
      <SAP:Stack>Runtime exception occurred during application mapping com/sap/xi/tf/_MM_EMFDATA2RFC_; com.sap.aii.mappingtool.tf7.MessageMappingException: Runtime exception when processing target-fieldmapping /ns1:Z_H_EMF_RFC/IPFILE1/item[2]/TRMDA; r~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    can you pls suggest abt the above error.
    Thanks,
    Swetha

  • Skipping mapping execution in process flow

    I have a process flow that calls multiple mappings. Based on some condition I want a mapping not to execute, E.g. when rerunning the process flow in case of failure. Currently I keep track of mapping execution and store the status in a control table. When a mapping has completed, it updates the status as completed. When I need to rerun, in the SQL of the tables join in the mapping, I have a where clause that returns 0 rows (mapping_completed = N) . So mapping is excuted but no rows added/updated.
    The flip side of the approach is when using a complex join specially using views, the SQL takes a long time to run only to return 0 rows. So logic is okay but I want to save time by avoiding the execution of the mapping it self.
    I would like to know how others are implementing this scenario.
    Regards
    Sandeep

    Can you not have two different mappings one for running it first time and one which you can run on failure...
    In your process flow you can have a param i.e 'F for failure and 'I' for intial and based on this condition you can decide which mapping to invoke and hte path to be followed.

  • Exception during mapping Execution

    Hi Experts
    an Matmas05 xml is coming from MDM system. & it should be posted as Matmas05 in R/3.
    i imported the MDM content in IR. but the fields order in coming Matmas05 xml file and the fields order in
    Matmas05 Idoc  are Not same.
    while Executing Mapping it  throws 'Exception during mapping execution'
    so pls give solution How can i solve...this error
    pls ....urgent.
    thanks & regards
    swapna

    HI swapna,
    The XMl coming from MDM have the different sequence than the original Matmas05 IDOC that you have imported in IR,.
    Lets take it this way as the Original Matmas IDOC structre is not matched up with the sender side Structure.
    You can change the sequence of IDOC XSD file with some tools like Altova xmlSpy and make it same as sender side. Then import the modified XSD file as external defination and use it on sender side.
    On Receiver side your Matmas05 structre sequence should have to be original one.
    Now map the corresponding fields and execute the scenario.
    thanks
    Swarup

  • Automate an ODI scenario

    Need to aumtomate an odi scenario with some conditions.
    Let me know any link on which all the related information regarding scheduling an odi scenario will be done.

    rv wrote:
    I have read this document and done all that steps which are explained in it.
    What I am trying to do is that when an automatic scenario failed to do the work which was planned.
    Then after how much time it will try to do that work again.
    In the execution cycle tab of scenario scheduling the constraints tab have two option of number of attempts on failure and stop execution after but there is no option of time after which it will restart the scenario.
    This is the problem which i am facing.
    Please suggestIn your package that is calling the scenario, you have 'Number Of Attempts' and 'time between attempts (in seconds)' you can set it there.

  • Start ODI scenario from Planning

    I would like to start the execution of an ODI scenario as a result of some defined action being taken from within Planning. Is there a way to do this? Planning and ODI agents run on different servers.
    Ideally, Planning and ODI would have some way of directly communicating with one another (e.g., via web services), but it doesn't appear that any such means exist, at least none that are publicly exposed.
    Any suggestions will be much appreciated. Thanks.

    One way could be to develop a java cdf which is called from a rule that fires off a web service call.
    Another option is to create planning task with a URL, the URL calls the web service to start a scenario.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Need to automate odi scenario through windows

    Hi,
    i need to run an odi scenario through windows scheduler.
    Please let me know.
    Thanks,

    Try creating a BAT file with the scenario execution written for the command line. Here's an example:
    How to run ODI scenario using command prompt
    Then schedule the BAT file through Windows task Scheduler:
    http://www.iopus.com/guides/winscheduler.htm

  • How to make ODI scenario sessions run mutually exclusive

    We want to restrict the end user of the ODI scenario to be able to run only 1 instance of the scenario at once. Is it possible in ODI ? Basically we want the ODI scenario sessions to be mutually exclusive ? if one is running, and if user tried to run another one, it should not allow him to do so.
    Please note that we are aware of how to handle parallel runs while coding for the same, but here we don't even want to get to a situation like that.
    Thanks,
    Ankit

    Hi Ankit,
    Trying to help...
    Two solutions -
    Solution 1:-
    Create a dedicated agent for that particular execution and for that agent set the maximun number of execution as 1.
    (so only one session will be executed at a time)
    Solution 2:-
    Create a log table/ (lock table) to maintain the status of the execution . (column - Session state)
    When ever an execution starts change the satus of the log (lock) table column as "Running"
    and once the session is completed change the status of the column as "Not Running"
    And in the package (starting) put a condition variable to check the column - Session state of the table log table/ (lock table)
    if its running exit the application , else continue.
    Hope this helps.
    Regards,
    Rathish

  • Invoking ODI scenario using ESS

    Hi all,
    As a part of data migration , I am required to invoke an ODI scenario using a java program which in turn is invoked by an ESS job. So as a part of this, how would it be possible for me to invoke the ODI scenario via java code. Are there any web service that is provided by ODI to invoke scenarios. I am new to ODI.
    Thanks and Regards
    Rohin

    Hi,
    I was able to expose a webservice that could invoke a scenario. This is how I went about doing it.
    1. Created a J2EE agent by following the steps in this link
    http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/odi/odi_11g/setup_jee_agent/setup_jee_agent.htm
    2. Create a physical agent and logical agent in ODI IDE
    Goto : http://agentHost:port/oraclediagent/OdiInvoke?wsdl
    I then used httpanalyser from JDEV and was able to give the name of the scenario and the version number as input parameter. And "SEND REQUEST"...(There has to be better ways to do this I am new to this..)
    The scenario should execute successfully. You can also view the results of scenario execution in the operator navigator in ODI IDE.
    Regards
    Rohin

  • Is Oracle Scenario same as ODI scenario?

    Hi
    I haven't worked on the ODI's scenario.., so have query regarding this.
    1.) Is oracle DB scenario same as the scenarios generates in ODI??
    2.) Provide me an example of writing scenario in ODI.
    3.)Can we map ODI file extraction with Oracle DB scenario?
    Hope for a reply.

    Hi ,
    1) ODI scenario is different from Oracle scenario .
    ODI scenario is nothing but the freezed ODI code .
    Say you have an ODI package and now you have created a scenario out of it . The code will get freezed in that scenario.
    Now if you make some changes in that particular package , those changes will not be a part of the scenario created . You have to regenerate the scenario or re-create it to get those changes .
    Once generated, the scenario is stored inside the work repository. The scenario can be exported then imported to another repository and used in different contexts.
    2) You can create ODI scenario by right clicking on Package, Interface, Procedure , Variable etc and choosing the option called "Generate Scenario" .
    3) Can you elaborate on this ? Perhaps an example ?
    Thanks,
    Sutirtha

  • ERROR WHILE RUNNING ODI SCENARIO FROM BAM ALERT

    We are using oracle data integrator 11g and have created an ODI Scenario and able to run the scenario from ODI studio client.
    We have done the configuration for BAM-ODI integration as mentioned in http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/bam_odi.htm#BABEJIGD
    We have started ODI Agent, soa and bam servers. Created a BAM alert -> select action - Run ODI Scenario -> selected the same scenario.
    Alert ran at scheduled time but failed with following error:
    java.io.IOException : truncated data integrator frame received
    Error Message (if any)
    [2012-08-06T11:24:21.046+05:30] [bam_server1] [WARNING] []
    [oracle.bam.eventengine] [tid: bam-pool-Action-thread-1] [userId:
    OracleSystemUser] [ecid:
    3576f9092ef9497a:-743c430a:138fa7450c3:-8000-00000000000000a8,1:23453] [APP:
    oracle-bam#11.1.1] EventEngine: Error occured while running a ODI Scenario.
    [2012-08-06T11:24:21.250+05:30] [bam_server1] [ERROR] []
    [oracle.bam.eventengine] [tid: bam-pool-Action-thread-1] [userId:
    OracleSystemUser] [ecid:
    3576f9092ef9497a:-743c430a:138fa7450c3:-8000-00000000000000a8,1:23453] [APP:
    oracle-bam#11.1.1] EventEngine: Action exception: EEInstEv2 EEInstAct1 Rule
    Id: 2 exception: java.io.IOException: truncated Data Integrator Frame
    received
    [2012-08-06T11:24:21.250+05:30] [bam_server1] [WARNING] []
    [oracle.bam.eventengine] [tid: bam-pool-Action-thread-1] [userId:
    OracleSystemUser] [ecid:
    3576f9092ef9497a:-743c430a:138fa7450c3:-8000-00000000000000a8,1:23453] [APP:
    oracle-bam#11.1.1] EventEngine: Exception stack trace: [[
    at
    oracle.bam.eventengine.engine.event.action.RunScenario.invokeScenario(RunScena
    rio.java:145)
    at
    oracle.bam.eventengine.engine.event.action.ActionProcessor.runScenario(ActionP
    rocessor.java:891)
    at
    oracle.bam.eventengine.engine.event.action.ActionProcessor.actionHandler(Actio
    nProcessor.java:337)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.j
    ava:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at oracle.bam.system.Delegate$Sink.invoke(Delegate.java:80)
    at oracle.bam.system.Delegate.dynamicInvoke(Delegate.java:186)
    at
    oracle.bam.common.threading.threadpool.ThreadPoolController$PoolQueueItem.proc
    essWorkRequest(ThreadPoolController.java:155)
    at
    oracle.bam.common.threading.threadpool.ThreadPoolController$PoolQueueItem.run(
    ThreadPoolController.java:128)
    at
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java
    :886)
    at
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908
    at java.lang.Thread.run(Thread.java:619)
    Any help on this is highly appreciated...
    Thanks
    Rajdip Mukherjee

    Hi,
    Forgot to include the ODI classes RunScenario.invokeScenario() is invoking odi scenario using odi sdk api. Please see the below stack trace :-
    java.io.IOException: truncated Data Integrator Frame received
    at
    oracle.odi.sdk.invocation.internal.AgentNetworkCmd.readCmd(AgentNetworkCmd.java:303)
    at
    oracle.odi.sdk.invocation.OdiInvocation.invokeCommand(OdiInvocation.java:176)
    at
    oracle.bam.eventengine.engine.event.action.RunScenario.invokeScenario(RunScenario.java:140)
    at
    oracle.bam.eventengine.engine.event.action.ActionProcessor.runScenario(ActionProcessor.java:891)
    at
    oracle.bam.eventengine.engine.event.action.ActionProcessor.actionHandler(ActionProcessor.java:337)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Thanks
    Rajdip Mukherjee

  • Error while running the ODI Scenario

    Hi All,
    I am trying to execute ODI Scenario from operator window getting below error. I am not sure why the error is comming yesterday it was running successfully.
    I checked the agent connection via test button, it is working fine.
    com.sunopsis.dwg.cmd.b: Error during Scenario launching : Error during Session Preparation : You are trying to execute a session with an agent that is undefined in your repository. Please check the agent -NAME parameter.
         at com.sunopsis.dwg.dbobj.SnpScen.a(SnpScen.java)
         at com.sunopsis.dwg.dbobj.SnpScen.remoteExecute(SnpScen.java)
         at com.sunopsis.dwg.dbobj.SnpScen.remoteExecute(SnpScen.java)
         at com.sunopsis.graphical.g.ot.m(ot.java)
         at com.sunopsis.graphical.o.z.actionPerformed(z.java)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
         at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
         at com.jidesoft.plaf.vsnet.VsnetMenuItemUI.doClick(Unknown Source)
         at com.jidesoft.plaf.vsnet.VsnetMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
         at java.awt.Component.processMouseEvent(Component.java:6263)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
         at java.awt.Component.processEvent(Component.java:6028)
         at java.awt.Container.processEvent(Container.java:2041)
         at java.awt.Component.dispatchEventImpl(Component.java:4630)
         at java.awt.Container.dispatchEventImpl(Container.java:2099)
         at java.awt.Component.dispatchEvent(Component.java:4460)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
         at java.awt.Container.dispatchEventImpl(Container.java:2085)
         at java.awt.Window.dispatchEventImpl(Window.java:2478)
         at java.awt.Component.dispatchEvent(Component.java:4460)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

    I'm guessing the name on the physical agent was different from the agent name of the process running on the server? That's generally when I get this error...

Maybe you are looking for