Parallel WF Reject Scenarios

Hi BPM Gurus,
Need your expert advice on how to address below scenario
There is parallel WF between actors Buyer and Supplier. If only both actors approve then only it need to go to next level else if either of actors i.e Buyer or Supplier rejects , the task from other should be deleted but process should continue. I am not sure how to achieve this
Request you to please help me. Many thanks in advance
Best regards,
Prasad

Hi Shilpa,
Thanks for the response, when Buyer rejects the task has to be reassigned to initiator and task need to be deleted from supplier UWL as well. Similarly if Supplier rejects it will be reassigned to initiator and task need to be deleted from Buyer UWL
Let me know incase you need further information
Best regards,
Prasad

Similar Messages

  • Parallel execution of scenario

    Hi,
    I'm trying to run a scenario (Say A) by passing different project variables simultaneously or in parallel.
    I'm invoking these executions from command line.
    Scenario A -> Variable X =1
    Scenario A -> Variable X=2
    The scenario loads data from a table to Essbase.
    This is not working because the value of the project variable changes whenever a new instance of the scenario is initiated. This alters the number of records loaded for the previous execution.
    Is there any other way of running scenarios in parallel ? (Scenarios that use a same global or project variable. )
    One clumsy way of making this work would be to create more variables, scenarios and assign each unique variable to a scenario.
    Are there any alternate options ?
    Any ideas will be appreciated...

    HI,
    Thanks for the reply..
    I tried running a scenario (created out of an package) using ODIStartScen utility (which inturn calls a scenario created out of an interface) but got the following error... I've tried running it both from command line and designer.
    com.sunopsis.core.SnpsInexistantObjectException: SnpAllocAgent.getObjectByIdent : SnpAllocAgent does not exist
         at com.sunopsis.dwg.dbobj.generated.GeneratedSnpAllocAgent.getObjectByIdent(GeneratedSnpAllocAgent.java)
         at com.sunopsis.dwg.dbobj.SnpAgent.getAgent(SnpAgent.java)
         at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java)
         at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.i(e.java)
         at com.sunopsis.dwg.cmd.h.y(h.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Unknown Source)
    Also a simple scenario created out of the package runs fine from the command line (using startscen.bat) but not from the ODi designer. I get the following error when i run it from the designer.
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 82, in ?
    AttributeError: class 'com.hyperion.odi.common.ODIConstants' has no attribute 'BUFFER_SIZE'
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlI.treatTaskTrt(SnpSessTaskSqlI.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.i(e.java)
         at com.sunopsis.dwg.cmd.h.y(h.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Unknown Source)
    A simple google search tells me that the above error is related to patching ODI. I'm currently on 10.1.3.5.5 (applied the .5 patch recently).
    While applying the patch, I copied the oracledi folder given in the patch onto the oracledi folder under oracle_home (ODI) directory, I also re-imported / replaced the "lkm SQL to Hyperion Essbase Data " knowledge module. If I edit the KM I can see the Buffer size attribute in there.
    Not sure what I'm missing here..
    Any help would be appreciated.

  • Excise implication in Rejection scenario

    Hi MM Gurus,
    Please let me know how to handle excise portion for the following scenario.
    I have received 10nos. of a material for which I have captured and posted Excise.
    After usage decision, 4 nos. are rejected and sent back to the vendor and 6 nos.
    are accepted. While sending 4nos. how to handle excise portion? Again, while
    receiving these 4 nos. from the vendor, how to handle excise?
    How to handle the above scenario in both domestic and import purchases?
    Thanks & Regards
    Yoga

    Hi,
    I know Domestic.This is vendor rejection w.r.t movement type 121 at the time of MIGO rejection Part 1 Entry will happen and go to j1IS,Select ref transactiontype MATD and save the document.
    This accounting will hit in output account.
    Import????????
    Raghu

  • Parallel execution of scenarios errors with Listener refused the connection

    When we are trying to run large number of sessions in parallel, ODI is erroring out with the following error.
    Caused By: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12519, TNS:no appropriate service handler found
    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:133)
    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:62)
    at oracle.odi.core.datasource.dwgobject.support.OnConnectOnDisconnectDataSourceAdapter.getConnection(OnConnectOnDisconnectDataSourceAdapter.java:63)
    Please find the detailed log below.
    It looks like we have exceeded the total number of database sessions set at the db level.
    But do we have a mechanism to configure the ODI in such a way that the sessions wait until the database sessions are available for use.
    For e.g. if we have 2000 as the db limit and the number of parallel sessions to be invoked is around 3000, how do we configure the ODI to wait for the sessions to be freed so that all the 3000 sessions can be run successfully instead of erroring out.
    Can this limit be set at ODI agent level (by setting Maximum number of sessions parameter)?
    How do we set this for a local agent (i.e Default agent).
    Caused By: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12519, TNS:no appropriate service handler found
    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:133)
    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:62)
    at oracle.odi.core.datasource.dwgobject.support.OnConnectOnDisconnectDataSourceAdapter.getConnection(OnConnectOnDisconnectDataSourceAdapter.java:63)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at com.sunopsis.sql.SnpsConnection.createConnection(SnpsConnection.java:390)
    at com.sunopsis.sql.SnpsConnection.connect(SnpsConnection.java:348)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.getExecutor(SnpSessTaskSql.java:2938)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2878)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2602)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:546)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1736)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1591)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:568)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:489)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1062)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:118)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$1.run(DefaultAgentTaskExecutor.java:49)
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor.executeAgentTask(DefaultAgentTaskExecutor.java:41)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doExecuteAgentTask(TaskExecutorAgentRequestProcessor.java:94)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.process(TaskExecutorAgentRequestProcessor.java:85)
    at oracle.odi.runtime.agent.RuntimeAgent.startScenario(RuntimeAgent.java:700)
    at oracle.odi.runtime.agent.InternalRuntimeAgent.startScenario(InternalRuntimeAgent.java:52)
    at com.sunopsis.dwg.tools.StartScen.startScenOnLocalAgent(StartScen.java:983)
    at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java:245)
    at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java:160)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java:3413)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeOdiCommand(SnpSessTaskSql.java:1488)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:32)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:1)
    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:49)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2890)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2602)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:546)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1736)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1591)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:568)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:489)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1062)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:118)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$1.run(DefaultAgentTaskExecutor.java:49)
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor.executeAgentTask(DefaultAgentTaskExecutor.java:41)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doExecuteAgentTask(TaskExecutorAgentRequestProcessor.java:94)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.process(TaskExecutorAgentRequestProcessor.java:85)
    at oracle.odi.runtime.agent.RuntimeAgent.startScenario(RuntimeAgent.java:700)
    at oracle.odi.runtime.agent.InternalRuntimeAgent.startScenario(InternalRuntimeAgent.java:52)
    at com.sunopsis.dwg.tools.StartScen.startScenOnLocalAgent(StartScen.java:983)
    at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java:245)
    at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java:160)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java:3413)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeOdiCommand(SnpSessTaskSql.java:1488)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:32)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:1)
    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:49)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2890)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2602)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:546)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1736)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1591)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:568)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:489)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1062)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:118)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$1.run(DefaultAgentTaskExecutor.java:49)
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor.executeAgentTask(DefaultAgentTaskExecutor.java:41)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doExecuteAgentTask(TaskExecutorAgentRequestProcessor.java:94)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.process(TaskExecutorAgentRequestProcessor.java:85)
    at oracle.odi.runtime.agent.RuntimeAgent.startScenario(RuntimeAgent.java:700)
    at oracle.odi.runtime.agent.InternalRuntimeAgent.startScenario(InternalRuntimeAgent.java:52)
    at com.sunopsis.dwg.tools.StartScen.startScenOnLocalAgent(StartScen.java:983)
    at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java:245)
    at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java:160)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java:3413)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeOdiCommand(SnpSessTaskSql.java:1488)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:32)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:1)
    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:49)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2890)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2602)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:546)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1736)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1591)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:568)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:489)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1062)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:118)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$1.run(DefaultAgentTaskExecutor.java:49)
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor.executeAgentTask(DefaultAgentTaskExecutor.java:41)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doExecuteAgentTask(TaskExecutorAgentRequestProcessor.java:94)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.process(TaskExecutorAgentRequestProcessor.java:85)
    at oracle.odi.runtime.agent.RuntimeAgent.startScenario(RuntimeAgent.java:700)
    at oracle.odi.runtime.agent.InternalRuntimeAgent.startScenario(InternalRuntimeAgent.java:52)
    at com.sunopsis.dwg.tools.StartScen.startScenOnLocalAgent(StartScen.java:983)
    at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java:245)
    at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java:160)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java:3413)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeOdiCommand(SnpSessTaskSql.java:1488)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:32)
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:1)
    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:49)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2890)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2602)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:546)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1736)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1591)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:568)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:489)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1062)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:118)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12519, TNS:no appropriate service handler found
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:543)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:368)
    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:352)
    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:316)
    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:275)
    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter$ConnectionProcessor.run(LoginTimeoutDatasourceAdapter.java:217)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    ... 1 more
    Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
    ORA-12519, TNS:no appropriate service handler found
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:394)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1056)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
    ... 15 more

    Hi,
    [oracle@myoramachine ~]$ oerr ora 12505
    12505, 00000, "TNS:listener does not currently know of SID given in connect descriptor"
    // *Cause:  The listener received a request to establish a connection to a
    // database or other service. The connect descriptor received by the listener
    // specified a SID for an instance (usually a database instance) that either
    // has not yet dynamically registered with the listener or has not been
    // statically configured for the listener. This may be a temporary condition
    // such as after the listener has started, but before the database instance
    // has registered with the listener.
    // *Action:
    //  - Wait a moment and try to connect a second time.
    //  - Check which instances are currently known by the listener by executing:
    //    lsnrctl services <listener name>
    //  - Check that the SID parameter in the connect descriptor specifies
    //    an instance known by the listener.
    //  - Check for an event in the listener.log file.
    [oracle@myoramachine ~]$1. Check lsnrctl services <listener name>
    2. Check tnsping output:
    tnsping MYORACLE
    3. Check connectivity to the machine where your Oracle Server resides to port ( I assume 1521):
    telnet <your_machine> 1521
    4. In case you're not able to connect to the Oracle Server - I'd investigate it in a few directions:
         - network infrastructure problem
         - some disturbing process(es) / virus(es) on Oracle Server itself
         - firewall issue
    Good luck!
    http://dba-star.blogspot.com/

  • Wrong workflow step after rejection

    we have a workitem which is sent to the Approver for approving the travel expense. (PRAP).in SAPP T&E module (travel and expense)
    When the Approver executes the workitem, he has an option to either approve or reject the travel expense.
    Approval
    After approval of travel expenses, the approver  can either be set as complete or cancel. However if the approver cancels it, although it remains in inbox the approver cannot process it further since the Expense has already been approved.
    This is fine as per our scenario
    Rejection
    The issue in rejection is that, once the approver rejects it in PRAP and the task is set as compelte, the workflow triggers an email that the expense has been approved whereas in reality the approver has rejected it. Currently the workflow is only working if the approver cancels the workitem after rejecting it. The workitem also no longer remains in the inbox. We have checked the Branching condition and it is defined properly but nevertheless it seems to only work when the work item is cancelled in rejection scenario
    Any pointers on how this issue can be resolved will be useful

    Make use of the attributes that are provided in BUS2089 Business object.Make use of these 2 Attributes in your workflow Approval status,Settlement status. You need to check what value it becomes when you reject it and accordingly filter it.
    <b>
    Reward points if useful and close thread if resolved</b>

  • Parallel Change Request Process in Material

    I am trying to prepare the parallel processing scenario in MDG 7.0 for Material configured MAT01, MAT02, MAT06,MAT0A,MAT0B scenarios as it
    is successfully.
    Material Change Request Scenario MAT02 is working as expected. 
    I just copied MAT02 change request and created parallel change request types PCMAT01, PCMAT02 and PCMAT03.
    Screen shots of PCMAT01
    PCMAT02 Screenshots
    PCMAT03 Screenshot
    While Executing Change Material, I am getting the following popup to select change request. But, When I choose the above 3 change requests,
    Workflow is getting User Agent Error. Do we need to have any special BRF+ catalogs for these change requests as well? Or we use same MAT02 BRF+ decision table?
    For Parallel change request scenario, apart from creating Parallel CR type, We need to take care of any BRF+ catalogs (new decision table
    set) ,interlocking logic or any other special requirements?

    Any way, this document explains how you can build parallel MDG workflow: Set up Parallel Workflow Tasks with BRF+ (BADI USMD_SSW_PARA_RESULT_HANDLER). You should always start your research for any MDG extension or enhancement here: Configuration and Enhancement of SAP Master Data Governance

  • SNC PO Collaboration- Quantity Change-Partial Rejection

    Hi all,
    In partial rejection scenario when the Quantity is Chaged in the suppliers view let us say the quantity ordered is 20 and supplier confirms only 12 qty.
    The customer Views it and Accept it, Later on he updates the schedule line.
    After the customer updates the schedule line and publish the PO the Quantity in ECC should get updated from 20 quantity to 12 in the line item of PO , but it is not getting updated. I am able to see the inbound idoc but the quantity is not getting updated.
    Please help me to resolve this issue.
    Thanks and regards
    shailesh

    Nikhil P wrote:
    Hi Shailesh,
    >
    > If RON_OUT is getting trigger then check IDoc in ECC.
    >
    > It looks like IDoc is getting failed check that error.
    >
    > ROC_OUT will update the confirmation control tab of the PO and RON_OUT will update the PO in ECC.
    >
    > Regards,
    > Nikhil
    Nikhil,
    Thanks a Lot for your support.
    RON_OUT is getting triggered and i have checked the xml message also the updated quantity is there.
    I have also checked the IDOC in which ORDERS05:ORDRSP field :WMENG is updated with the changes made by the supplier in the quantity. (there is no erro in the idoc)
    But still it is not updating the line Item of the PO.
    Regards
    shailesh

  • Sql loader and bulk data

    hi,
    I want to insert 100,000 records daily in a table for the first month and then in next month these records are going to be replaced by new updated records.
    there might be few addition and deletion in the previous records also.
    actually its consumer data so there might be few consumer who have withdrawn the utility and there will be some more consumer added in the database.
    but almost 99% of the previous month data have to be updated/replaced with the fresh month data.
    For instance, what i have in my mind is that i will use sql loader to load data for the first month and then i will delete the previous data using sqlPlus and load the fresh month data using sql loader again.
    1. Is this ok ? or there is some better solution to this.
    2. I have heard of external files, are they feasible in my scenario?
    3. I have planned that i will make scripts for sqlPlus and Loader and use them in batch files. (OS windows 2003 server, Oracle 9i database). is there some better choice to make all the procedure automatic?
    looking for your suggestions
    nadeem ameer

    I would suggest u use External tables since its more flexible then
    sqlloader & is a better option.
    For using external tables
    1)u will have to create a directory first
    2)Generally creation od directory is done by sys,hence after creating the directory
    privileges read & write to be provided to user .
    3)Creation of external tables.
    4) Now use the table as a normal table to insert ,update delete in
    ur table.
    U can get more information from
    http://www.oracle-base.com/articles/9i/SQLNewFeatures9i.php#ExternalTables
    Create Directory <directory_name> as <Directory path where file be present>
    Grant read,write on directory <directory_name> to <username>
    CREATE TABLE <table_name>
    (<column names>)
    ORGANIZATION EXTERNAL
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY ,directory_name>
    ACCESS PARAMETERS
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    LOCATION (<filename>)
    PARALLEL 5
    REJECT LIMIT 200;
    Hope this helps.

  • How to read any file using external tables.

    Hi folks,
    I have written an application that reads a series of csv files using external tables which works fine as long as I specify each file name in the directory i.e.......
    CREATE TABLE gb_test
    (file_name varchar2(10),
    rec_date date
    rec_name VARCHAR2(20),
    rec_age number,
    ORGANIZATION EXTERNAL
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY GB_TEST
    ACCESS PARAMETERS
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    LOCATION ('data1.csv','data2.csv','data3.csv','data4.csv')
    PARALLEL 5
    REJECT LIMIT 20000;
    However I have discovered that I may not know the name of the files to be processed prior to the program being run so just want to read any file regardless of it's name (although it will always be a .csv file).
    Is there a way to ensure that you don't need to specify the files to be read in the LOCATION part of the syntax.
    Thanks in advance.
    Graham.

    Right, I have now completed this, however it's currently only working as SYS as opposed to any user, however here is a detail of the scenario and the steps required in case any of you guys need in the future ......
    The problem was I needed to search for csv files on my hard-drive. These files would be stored in a series of directories (a through to z), so I needed a way to read all 26 directories and process all files in these directories.
    The problem was, prior to running the program, the user would remove all the files in the directories and insert new ones, but it was never known how many he would decide to do each time.
    Solution: I created a table called stock_data_directories as follows ...
    create table stock_data_directories(sdd_rec_no number,
    sdd_table_name varchar2(50),
    sdd_directory_name varchar2(50),
    sdd_directory_path varchar2(100));
    Then inserted 26 records like ...
    insert into stock_data_directories(sdd_rec_no,sdd_table_name,sdd_directory_name,sdd_directory_path)
    values(1,'rawdata_a','KPOLLOCKA','C:\KPOLLOCK\A')
    insert into stock_data_directories(sdd_rec_no,sdd_table_name,sdd_directory_name,sdd_directory_path)
    values(2,'rawdata_b','KPOLLOCKB','C:\KPOLLOCK\B');
    etc...etc...
    Then created 26 DIRECTORIES E.G.
    CREATE OR REPLACE DIRECTORY KPOLLOCKA AS 'C:\KPOLLOCK\A';
    CREATE OR REPLACE DIRECTORY KPOLLOCKB AS 'C:\KPOLLOCK\B';
    Then created 26 external tables like the following ...
    CREATE TABLE rawdata_a
    (stock varchar2(1000),
    stock_date varchar2(10),
    stock_open VARCHAR2(20),
    stock_high varchar2(20),
    stock_low varchar2(20),
    stock_close VARCHAR2(30),
    stock_qty varchar2(20) )
    ORGANIZATION EXTERNAL
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY KPOLLOCKA
    ACCESS PARAMETERS
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    LOCATION ('AA.csv')
    PARALLEL 5
    REJECT LIMIT 20000
    This basically says in directory rawdata_a it currently has 1 file called AA.csv.
    Then wrote a procedure as follows ...
    procedure p_process_files(pv_return_message OUT varchar2)is
    cursor c_get_stock_data_directories is
    select distinct sdd_directory_path,
    sdd_table_name
    from stock_data_directories
    order by sdd_table_name;
    vv_return_message varchar2(1000);
    begin
    -- here get the files for each directory
    for r_get_stock_directories in c_get_stock_data_directories loop
    p_build_external_table(r_get_stock_directories.sdd_directory_path,
         r_get_stock_directories.sdd_table_name,
         vv_return_message);
    end loop;
    end;
    then wrote a procedure called p_build_external_table as follows ...
    procedure p_build_external_table(pv_directory_path IN stock_data_directories.sdd_directory_path%type, -- e.g. 'C:\kpollock\A\
    pv_table_name IN stock_data_directories.sdd_table_name%type, -- e.g. rawdata_a
    pv_return_message OUT varchar2) is
    vv_pattern VARCHAR2(1024);
    ns VARCHAR2(1024);
    vv_file_name varchar2(4000);
    vv_start_string varchar2(1) := '''';
    vv_end_string varchar2(3) := ''',';
    vn_counter number := 0;
    vv_err varchar2(2000);
    BEGIN
    vv_pattern := pv_directory_path||'*';
    SYS.DBMS_BACKUP_RESTORE.searchFiles(vv_pattern, ns);
    FOR each_file IN (SELECT FNAME_KRBMSFT AS name FROM X$KRBMSFT) LOOP
    if each_file.name like '%.CSV' then
    vv_file_name := vv_file_name||vv_start_string||substr(each_file.name,instr(each_file.name,'\',1,3)+1)||vv_end_string;
         vn_counter := vn_counter + 1;
    end if;
    END LOOP;
    vv_file_name := substr(vv_file_name,1,length(vv_file_name)-1); -- remove final , from string
    execute immediate 'alter table '||pv_table_name||' location('||vv_file_name||')';
    pv_return_message := 'Successfully changed '||pv_table_name||' at '||pv_directory_path||' to now have '||to_char(vn_counter)||' directories';
    exception
    when others then
    vv_err := sqlerrm;
    pv_return_message := ' Error found updating directories. Error = '||vv_err;
    END;
    This reads every file in the directory and appends it to a list, so if it finds A.csv and ABC.csv, then using the dynamic sql, it alters the location to now read 'a.csv','abc.csv',
    It ignores all other file extentions.

  • Error while creating external table

    Hi i tried to create external table. The table is created but while selecting that table it is throwing below errors
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-04040: file Countries1.txt in EXT_TABLES not found
    ORA-06512: at "SYS.ORACLE_LOADER", line 19I've created temp directory in window under oracle directory " C:\oracle\product\10.2.0\temp"
    In the temp directory i've a text file countries1.txt
    the text file has the below information
    ENG,England,English
    SCO,Scotland,English
    IRE,Ireland,English
    WAL,Wales,WelshI've connected to system user and created one directory and granted the read and write permissions to user SCOTT.
    SQL> create or replace directory ext_tables as 'C:\oracle\product\10.2.0\temp\';
    Directory created.
    SQL> grant read,write on directory ext_tables to scott;
    Grant succeeded.The creation of external table query is
    CREATE TABLE countries_ext (
      country_code      VARCHAR2(5),
      country_name      VARCHAR2(50),
      country_language  VARCHAR2(50)
    ORGANIZATION EXTERNAL (
      TYPE ORACLE_LOADER
      DEFAULT DIRECTORY ext_tables
      ACCESS PARAMETERS (
        RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ','
        MISSING FIELD VALUES ARE NULL
          country_code      CHAR(5),
          country_name      CHAR(50),
          country_language  CHAR(50)
      LOCATION ('Countries1.txt')
    PARALLEL 5
    REJECT LIMIT UNLIMITED;And the error is
    SQL> select *from countries_ext;
    select *from countries_ext
    ERROR at line 1:
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-04040: file Countries1.txt in EXT_TABLES not found
    ORA-06512: at "SYS.ORACLE_LOADER", line 19
    SQL> Please help me in this

    You are missing something. Most probably the file does not exists in your specified path. This is working in my 10.2.0.3
    Step1: Check the file is actually there.
    C:\oracle\product\10.2.0>mkdir temp
    C:\oracle\product\10.2.0>cd temp
    C:\oracle\product\10.2.0\temp>dir
    Volume in drive C is C_Drive
    Volume Serial Number is 8A93-1441
    Directory of C:\oracle\product\10.2.0\temp
    07/30/2011  12:00 PM    <DIR>          .
    07/30/2011  12:00 PM    <DIR>          ..
    07/30/2011  12:00 PM                79 countries1.txt
                   1 File(s)             79 bytes
                   2 Dir(s)  50,110,582,784 bytes free
    C:\oracle\product\10.2.0\temp>type countries1.txt
    ENG,England,English
    SCO,Scotland,English
    IRE,Ireland,English
    WAL,Wales,Welsh
    C:\oracle\product\10.2.0\temp>Step 2: Creating the directory object.
    SQL> show user
    USER is "SYS"
    SQL> SELECT * FROM v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
    PL/SQL Release 10.2.0.3.0 - Production
    CORE    10.2.0.3.0      Production
    TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    SQL> create or replace directory ext_tables as 'C:\oracle\product\10.2.0\temp';
    Directory created.
    SQL> grant read,write on directory ext_tables to scott;
    Grant succeeded.
    SQL>Step 3: Table definition.
    C:\>sqlplus scott@orclsb/tiger
    SQL*Plus: Release 10.1.0.4.2 - Production on Sat Jul 30 12:04:24 2011
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL> CREATE TABLE countries_ext (
      2    country_code      VARCHAR2(5),
      3    country_name      VARCHAR2(50),
      4    country_language  VARCHAR2(50)
      5  )
      6  ORGANIZATION EXTERNAL (
      7    TYPE ORACLE_LOADER
      8    DEFAULT DIRECTORY ext_tables
      9    ACCESS PARAMETERS (
    10      RECORDS DELIMITED BY NEWLINE
    11      FIELDS TERMINATED BY ','
    12      MISSING FIELD VALUES ARE NULL
    13      (
    14        country_code      CHAR(5),
    15        country_name      CHAR(50),
    16        country_language  CHAR(50)
    17      )
    18    )
    19    LOCATION ('Countries1.txt')
    20  )
    21  PARALLEL 5
    22  REJECT LIMIT UNLIMITED;
    Table created.
    SQL> SELECT * FROM countries_ext;
    COUNT COUNTRY_NAME
    COUNTRY_LANGUAGE
    ENG   England
    English
    SCO   Scotland
    English
    IRE   Ireland
    English
    COUNT COUNTRY_NAME
    COUNTRY_LANGUAGE
    WAL   Wales
    Welsh

  • Link of material movement with inspection type

    Hello Masters,
    I have scenario where component at shop floor will be segregated for inspection. The requirement is to do result/defect recording for those parts and if required then those parts need to be scrapped. So one way of doing that can be to move those parts to either blocked stock or QI stock (ideal option) or to specific storage location so that planning can be taken care of (if material are still in unrestricted then planning will consider those part as OK part and planning may fail). And to record result/defect we require inspection lot, which can be created by using above mentioned material movement.
    But problem is how to create inspection lot so that we can do result/defect recording for those materials and scrap those material.
    Please note that material master will have QM setup active (inspection type 01 - Goods Receipt Insp. for Purchase Order) and hence we can move material from unrestricted stock to QI stock only through QM.
    I am not sure if we should use inspection type 08 - Stock transfer inspection, as there can be many instances of material transfer within plant. And with inspection type 08 active, system will create inspection lot every time there is any material transfer.
    One way can be to create new goods movement only for this kind of transfer and new inspection type and link both together. So that when ever material is transferred using that particular goods movement, system creates inspection lot as well as material will be in QI stock. But I am not sure how this is possible or not and if yes then how this can be done.
    I know query was too long to read and I think I was clear enough to explain what the requirement is.
    It would be great if I can get some guidance from you masters at the earliest convenience as it is bit of importance.
    Thanks and regards,
    Devang

    Hi Devang,
    I guess this is Line rejection scenario. Correct me if understanding goes wrong. You have okayed the material against 01 inspection lot and UD has been given. Now you find this material defective on shop floor.
    I think the 2nd option suggested by marwadi sounds better. I suggest one more possibility, just check whether feasible.
    1.     Create quality notification Q2 type through QM01. While creating you can give references of original PO and material document, which fetch vendor name and material code automatically.
    2.     Record defects and all other required information in notification.
    3.     After this, you find an option in action box, transfer post unrestricted - >block . Click there. This will transfer the stock from unrestricted to block.
    4.     If you want planning persons should not consider this stock as OK, remove block stock from MRP stock availability check. As a result of which stock lying in block will not be considered as available stock.
    5.     From block stock you can send this material back to vendor through MIGO. Otherwise you can create return delivery from notification through action box also. Check what is feasible in your case.
    Here you need not create inspection lot, no need to use any user exit.
    Regards,
    Anand Rao

  • Problem with external tables in 9i

    Okay I have copied the csv file to that directory. I get this error when I run the select statement... basically the fields dont get populated.
    *** SCRIPT START : Session:ADMAP@DEVDB2(1) 13-Nov-2006 16:38:53 ***
    Processing ...
    select * from proc_args
    select * from proc_args
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-00554: error encountered while parsing access parameters
    KUP-01005: syntax error: found "identifier": expecting one of: "comma, char, date, defaultif, decimal, double, float, integer, (, nullif, oracle_date, oracle_number, position, raw, recnum, ), unsigned, varrawc, varchar, varraw, varcharc, zoned"
    KUP-01008: the bad identifier was: VARCHAR2
    KUP-01007: at line 5 column 26
    ORA-06512: at "SYS.ORACLE_LOADER", line 14
    *** Script stopped due to error ***
    *** SCRIPT END : Session:ADMAP@DEVDB2(1) 13-Nov-2006 16:38:53 ***
    SCRIPTCREATE OR REPLACE DIRECTORY dir AS '/tmp/ext_dir';
    --grant read,write on directory ext_dir to bulk_load;
    CREATE TABLE proc_args (
    argument_name VARCHAR2(50),
    argument_value VARCHAR2(50)
    ORGANIZATION EXTERNAL (
    -- TYPE ORACLE_LOADER
    DEFAULT DIRECTORY dir
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    argument_name VARCHAR2(50),
    argument_value VARCHAR2(50)
    LOCATION ('input_arguments.csv')
    --PARALLEL 5
    --REJECT LIMIT UNLIMITED;
    select * from proc_args

    I think the fields specified in the ACCESS PARAMETERS section should be SQL*Loader datatypes, not standard SQL, e.g.
    CREATE TABLE proc_args (
    argument_name VARCHAR2(50),
    argument_value VARCHAR2(50)
    ORGANIZATION EXTERNAL (
    -- TYPE ORACLE_LOADER
    DEFAULT DIRECTORY dir
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    argument_name CHAR,
    argument_value CHAR
    LOCATION ('input_arguments.csv')
    Other valid types are specified here:
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_field_list.htm#sthref1004

  • Upload multiple excel files into tables using APEX

    Hi folks,
    I'm wondering if anyone has ever uploaded multiple .csv files simultaniously and store the data into the database using APEX XE before.
    I can browse for a single file, and execute that okay and a good example of doing that can be found at http://advait.wordpress.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/
    This works fine when the user browses to a specific file on their network and then uploads the data from that one file.
    However I need the ability to 'grab' every file in a specific directory one after the other to process rather than having to specify which one to load everytime, and wondered if anyone has come across this before.
    Many thanks
    Graham.

    Just for completeness ...
    Got this to work, but it's a pl/sql issue as opposed to an APEX issue.
    Anyway, if anyone needs to have the ability to read multiple files then a quick easy way to do it (as lomg as they know the file names that will be read), is to create a directory on the database which points to the actual harddrive on your PC, then create a table (called an external table) and read from that external table as if it was an actual database table ...
    1 - Log on as sys and grant CREATE ANY DIRECTORY to whatever user you are logging in as (assuming you are not using sys to create apps)
    2 - Create a directory e.g....CREATE OR REPLACE DIRECTORY GB_TEST AS 'c:\gbtest';
    3 - Create an external table as ...
    CREATE TABLE gb_test
    (file_name varchar2(10),
    rec_date date
    rec_name VARCHAR2(20),
    rec_age number,
    ORGANIZATION EXTERNAL
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY GB_TEST
    ACCESS PARAMETERS
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    LOCATION ('data1.csv','data2.csv','data3.csv','data4.csv')
    PARALLEL 5
    REJECT LIMIT 20000;
    That's it then ...
    select * from gb_test
    where file_name = 'xxx'
    will return all the data where the file_name = 'xxx'
    very easy to use.

  • SRM 7.0 Issue

    Hi Experts,
    This issue is in the implementing of SRM 7.0 and in the rejection scenario of the Shopping Cart (thru SRM portal), we want to make the "Approval note" a mandatory field to be filled in by the Approver.
    The following is what I have done thus far:
    1.     In the implemented class: ZCL_IM_SC_VALIDATE.
    2.     Use Function Module BBP_PD_SC_GETDETAIL to get E_LONGTEXT.
    3.     Use method GET_CURRENT_DECISION of class /SAPSRM/CL_WF_APV_FACADE to get current decision. 
    4.     Check if current decision is REJECTED.
    5.     Check if E_LONGTEXT has TDID = NOTM.
    6.     Populate error message u201CEnter Rejection Reason in Approval Noteu201D on to ET_MESSAGE.
    But when the approver clicks on REJECT button on the UWL, the SRM portal throws an exception. This exception is in class /SAPSRM/CL_PDO_BO_SC method CHANGE_DOCUMENT.
    Thanks in advance,
    Thembass.

    Hi Themba,
    This sounds like a requirement we had to implement in our system. It was tricky, but we got it. Someone else on this forum mighthave a better method, but here is what we did:
    1.) Enhance class /SAPSRM/CL_CH_WD_BOM_SC and add a Pre-Exit to method /SAPSRM/IF_CLL_BOM_SCREJECT,which gets called when the user rejects the shopping cart. In this pre-exit method, set a flag variable and export that variable to a memory ID. You should probably also create a pre-exit to method /SAPSRM/IF_CLL_BOM_SCAPPROVE that clears out this memory ID so if the user decides to approve the cart instead, they don't get the rejection logic.
    2.) Use an implementation of BADI BBP_DOC_CHECK_BADI to import the memory ID with your rejection flag. If the flag is checked from your pre-exit, validate the rejection note stored in E_LONGTEXT, tdid='NOTM' from your call to BBP_PD_SC_GETDETAIL. (actually, it looks like you already have most of this step in place)
    That should do the trick. Good luck!

  • Can Discoverer have link to display documents stored outside the database?

    I posted a message some time ago called "Possible for Discoverer to display BLOB type documents stored in database?" and got great answer.
    Now our customers are asking if it is possible, from Discoverer, to link somehow to a file stored outside the database on the Unix file system and get their computer to display it? Can anyone tell me if this is possible please?
    The only thing I've seen in the documentation that may be related is in Oracle Business Intelligence Discoverer Configuration Guide, section 10.6 List of Discoverer user preferences. It says there that Discoverer preference ProtocolList can be set so that Discoverer hyperlinks can be set to use protocols such as telnet, but the default is HTTP, HTTPS, and FTP.
    THank you in advance if you can help.
    Regards,
    Julie.

    Hi Rod,
    I have tried the second method: "create a Oracle directory pointing to the Unix directory containing the files". I have had success with it, but I'd be grateful if you could advise me if you would have done this the same way as described below:
    I put two Word docs and two text docs called clob_test1.txt, clob_test2.txt, blob_test1.doc, blob_test2 in the Unix directory corresponding to an Oracle directory called 'EIF'. I thought an extrenal table was needed so that Discoverer would have an object to write a queruy against. So I created a file called lob_test_data.txt with the following contents:
    1,01-JAN-2006,text/plain,clob_test1.txt
    2,02-JAN-2006,text/plain,clob_test2.txt
    3,01-JAN-2006,application/msword,blob_test1.doc
    4,02-JAN-2006,application/msword,blob_test2.
    THen I created an external table using the following DDL:
    CREATE TABLE jum_temp_lob_tab (
    file_id NUMBER(10),
    date_content DATE,
    mime_type VARCHAR2(100),
    blob_content BLOB
    ORGANIZATION EXTERNAL
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY EIF
    ACCESS PARAMETERS
    RECORDS DELIMITED BY NEWLINE
    BADFILE EIF:'lob_tab_%a_%p.bad'
    LOGFILE EIF:'lob_tab_%a_%p.log'
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    file_id CHAR(10),
    date_content CHAR(11) DATE_FORMAT DATE MASK "DD-MON-YYYY",
    mime_type CHAR(100),
    blob_filename CHAR(100)
    COLUMN TRANSFORMS (blob_content FROM LOBFILE (blob_filename) FROM (EIF) BLOB)
    LOCATION ('lob_test_data.txt')
    PARALLEL 2
    REJECT LIMIT UNLIMITED
    then created a Discoverer End User Layer folder against this external table, and used exactly the same technique as we did for downloading the BLOB from the database table (creating a new folder item containing a URL calling a database procedure which calls the Oracle code to download the doc). THis worked, but sometimes my PC didn't seem to know that the Word docs were Word docs and it needed to launch Word. Other times it did manage to do this OK. It always displayed the two .txt files as HTML docs.
    Just wondered if you'd be good enough to critique this approach.
    THank you, Julie.

Maybe you are looking for

  • Problem with flash in e51

    I m facing some problem while browsing internet with my e51 . If its a flash based website then it gives this message that i don't have the flash player installed. I tried to download the flash player from the adobe website. But couldnt do it. Any su

  • Shortcut to cycle open windows in current Space?

    Hi! How can I get a shortcut to cycle only between the windows in the current space? Please help! /roda

  • How to create a attribute for a table

    I am created a table with four columns. How to create a attribute for each column.........

  • Safari blank page or loading for ages and then timeout!

    Hi, this is my first topic so please any reply would be much appreciated. I had a week holiday when my Mac was switched off. Before that I havent noticed any problem with it, everything was working fine and fast. I came back on the 1st, had some upda

  • Use free iPod Touch discount for an iPad

    Hello, I would buy a MacBook Pro for college and I saw I can get a free iPod Touch 8GB. It cost $199, can I use this discount for an iPad or an iPhone? Thanks Julien