Is it possible to Call ODI Scenario from eBS Concurrent request
Hi Experts
We have a concurrent request running on oracle eBS system. Is it possible to Invoke the ODI Scenario (on a different server) by submitting a concurrent request. Mostly the concurrent program will be a PL/SQL
Thanks in advance.
hey,
yeah its possible..
Check this.
/people/vanita.thareja2/blog/2006/05/23/bpm-sending-message-asynchronously-and-getting-the-response-from-synchronous-system-using-abap-proxies
These replies too..
Proxy in BPM
BPM file to ABAP proxy
Thanks,
Vijaya.
Edited by: Vijaya Lakshmi Palla on Jun 4, 2008 5:32 AM
Similar Messages
-
Call ODI Scenario from a Java Program
Hi,
I would like to invoke the ODI Scenario from a Java Program. Is there any way i can do this?
Please let me know if you have any posts related to this.
Thanks,
MansurCheck this ..
How to run ODI scenario from java? -
Invoking ODI Scenario from a BPEL process - Resolved
I new to Oracle products.
I am exploring Oracle Data Integrator tool.
I would like to call ODI scenario from a BPEL process.
I created a scenario in ODI, I have SOA suite10.1.3.3 installed in my machine.
In some portal I have read that, we need to deploy apache axis to Oracle App server and then deploy the ODI public web service to axis. This public web service facilitates us to call scenario from partner link.
Following are my questions:
1) I guess Oracle App server acts as webservice container too. Why should I use apache axis here?
2)If axis must be used, please let me know how to deploy it to OAS.
If axis is not required, please guide me how to deploy public web service to OAS.
Thanks!!Hi:
I have similar problem, when invoke ODI Scenario from a BPEL Process, the error in ODI Designer is:
java.lang.NullPointerException
at com.sunopsis.dwg.dbobj.SnpSession.a(SnpSession.java)
at com.sunopsis.dwg.dbobj.SnpSession.y(SnpSession.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSessionPreTrt(SnpSession.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(Thread.java:595)
In the BPEL Console the result is OK and process complete, but in the INVOKE scenario send message:
<messages><ODI_REQUEST><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="part1"><invokeScenarioRequest xmlns="xmlns.oracle.com/odi/OdiInvoke/">
*<RepositoryConnection xmlns=""*
<JdbcDriver>oracle.jdbc.driver.OracleDriver</JdbcDriver>
<JdbcUrl>jdbc:oracle:thin:@192.168.1.109:1521:ORCL</JdbcUrl>
<JdbcUser>dimaster</JdbcUser>
<JdbcPassword>sabr0sa</JdbcPassword>
<OdiUser>SUPERVISOR</OdiUser>
<OdiPassword>SUNOPSIS</OdiPassword>
<WorkRepository>TESTWORKREP1</WorkRepository>
</RepositoryConnection>
*<Command xmlns="">*
<ScenName>P_TRASPASOSOP09</ScenName>
<ScenVersion>2</ScenVersion>
<Context>Global</Context>
<LogLevel>5</LogLevel>
<SyncMode>0</SyncMode>
<SessionName/>
<Keywords/>
<Variables>
<Name/>
<Value xmlns:ns1="http://xmlns.oracle.com/Recepcion">
<ns1:Escenario>P_TRASPASOSOP09</ns1:Escenario>
<ns1:Version>2</ns1:Version>
<ns1:Contexto>Global</ns1:Contexto>
<ns1:ID>1</ns1:ID>
<ns1:NivelLogeo>5</ns1:NivelLogeo>
</Value>
</Variables>
</Command>
*<Agent xmlns="">*
<Host>192.168.1.109</Host>
<Port>20910</Port>
</Agent>
</invokeScenarioRequest>
</part></ODI_REQUEST><ODI_RESPONSE><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="part1"><odi:invokeScenarioResponse xmlns:odi="xmlns.oracle.com/odi/OdiInvoke/">
<odi:CommandResultType>
<odi:Ok>true</odi:Ok>
<odi:SessionNumber>445000</odi:SessionNumber>
</odi:CommandResultType>
</odi:invokeScenarioResponse>
</part></ODI_RESPONSE></messages> -
Problems with the call of an ODI scenario from an OS Command.
I'm having a trouble to understanding regarding the call an ODI scenario from an OS Command.
On the machine "XPTO" is installed the Agent.
For my local computer, by Designer ODI I can usually run the scenarios, using the Agent that is installed in the machine "XPTO".
When attempting to run ODI scenario directly from the machine "XPTO", where we have the agent installed within the /Ora_Home/oracledi/bin the file STARTSCEN.BAT not exist.
On the machine where you installed the agent I should also have the client installed, so as to be able to run the StartScen.bat?As suggested, I ran the following command line:
*./startcmd.sh OdiStartScen -SCEN_NAME=STG_CRTC -SCEN_VERSION=001 -CONTEXT=GLOBAL -AGENT_CODE=ODI_2001*
But gave the error below:
com.sunopsis.core.f:*
at com.sunopsis.tools.connection.DwgRepositoryConnectionsCreator.a(DwgRepositoryConnectionsCreator.java)*
at com.sunopsis.tools.connection.DwgRepositoryConnectionsCreator.a(DwgRepositoryConnectionsCreator.java)*
at com.sunopsis.tools.connection.DwgRepositoryConnectionsCreator.a(DwgRepositoryConnectionsCreator.java)*
at com.sunopsis.tools.connection.DwgRepositoryConnectionsCreator.a(DwgRepositoryConnectionsCreator.java)*
at com.sunopsis.security.c.b(c.java)*
at com.sunopsis.security.c.b(c.java)*
at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.u(SnpsFunctionBaseRepositoryConnected.java)*
at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java)*
at com.sunopsis.dwg.tools.StartScen.main(StartScen.java)*
at com.sunopsis.dwg.tools.OdiStartScen.main(OdiStartScen.java)*
Can anyone help me? -
Launch ODI scenario from PL/SQL
I want to execute ODI scenario from PL/SQL procedure.
1. I have created the java method using oracle.odi.sdk.invocation.*
// Create the scenario command
OdiCommandScenario cmd = new OdiCommandScenario();
cmd.setScenName(pckName);
cmd.setScenVersion(pckVer);
cmd.setSyncMode(lSyncMode);
cmd.setLogLevel(lLogLevel);
cmd.setContext(lCtx);
cmd.setSessionName(sesName);
// Additional variables
if (parNames != null) {
for (int j=0; j<parNames.length;j++) {
cmd.addVariable(parNames [j], parValues[j]);
// Create the repository connection
OdiRepositoryConnection conn = new OdiRepositoryConnection();
conn.setOdiUser(lOdiUsr);
conn.setOdiPassword(lOdiPwd);
// Launch scenario (use Agent scheduler)
try
invocation = new OdiInvocation(lHostName,lPortNum);
catch (Exception e2) { throw new Exception ("open OdiInvocation="+e2.getMessage());}
OdiInvocationResult result = invocation.invokeCommand(cmd,conn);
if (!result.isOk())
{throw new Exception ("invokeCommand="+result.getErrorMessage());}
else
{sid = result.getSessionNumber();}
invocation.close();
rv = "OK"+sid;
catch (Exception e) { rv = "ERROR: "+e.getMessage(); }
finally
return rv;
// System.exit(0); // !!
2. I have created a PL/SQL wrapper for this java method
It is working satisfactory, an ODI scenario is launched, ID of ODI session is returned, but a java session is not finished, it stay to hang up.
I have got the same result if I try to execute java-method directly from command line - session is hang up.
I found only workaroud to use "System.exit(0)" to terminate session, but it is not a way I can use inside JVM.
(I can to resolve it by deploying java method as web-service and call this webservice from DB - it works OK ... but it seems uselessly complicated ... )
Version ODI: 10.1.3.5.3, JDK 5.0, Windows (but I've got the same result on the Linux)
Any suggestions? Thank you very much.In your example you invoke ODI scenario using "startscen" command (using java method for launching OS command from PL/SQL).
Yes, I have also tried this workaround - but it is complicated to get back a session ID or ODI error message. In addition to I had a problem with calling ODI scen asynchrounously - but I didn´t investigate this possibility too properly ...
Thanks -
How to execute ODI scenario from a web application
Hi
I need to execute ODI scenario from ApEx form.
how to execute ODI scenario from application. Using 10.1.3.5.5
-appIn the SQL property of the TQuery object, enter the call as an anonymous block:
begin
pkg_name.procedure_name(true);
end; -
How to call a Scenario from BPEL
Can anyone briefly explain a way to call ODI scenario through a web service from BPEL? I have read the document, "Executing a Scenario using a Web Service", and it provides a simple SOAP request. How a wsdl file is created from the soap request?
You can also use the Java API for invoking a ODI scenario.
Sample code:
boolean result = false;
OdiCommandScenario odicmdScenario = new OdiCommandScenario();
OdiRepositoryConnection odiConnection = new OdiRepositoryConnection();
OdiInvocationResult odiInvocationResult = null;
OdiInvocation odiInvocation = null;
odiConnection.setOdiUser("SUPERVISOR");
odiConnection.setOdiPassword("password");
odiConnection.setJdbcDriver("oracle.jdbc.driver.OracleDriver");
odiConnection.setJdbcUrl("jdbc:oracle:thin:@ipaddress:port:sid");
odiConnection.setJdbcUser("ODI master repository user name");
odiConnection.setJdbcPassword("ODI master repository password");
odicmdScenario.setScenName("Scenario name");
odicmdScenario.setScenVersion("Scenario Version");
odicmdScenario.setLogLevel(5);
odicmdScenario.setContext("Global");
odicmdScenario.addVariable("Your variable (if needed)", "(Variable value)");
odiConnection.setWorkRepositoryCode("Work Repository");
try {
odiInvocation = new OdiInvocation("Agent IP Address", <Agent Port>); //20910 default port
odiInvocationResult = odiInvocation.invokeCommand(odicmdScenario,odiConnection);
result = odiInvocationResult.isOk();
} catch (IOException e) {
result = false;
return result; -
Call ODI interface from Business Rule
Hi All,
Is there any way to call ODI interface from business rule?
I search the forum and found there is a way to call java code from business rule by CDF.
ODI provide a dos batch file to invoke the ODI interface. But, how can I call batch file from business rule.
I am using planning version 11.1.1Thanks.
I can call the JAVA from business rule after assign the security in udf.policy.
And, I am working on calling ODI scenario. However, I found connection refuse as follows.
ava.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:520)
at java.net.Socket.connect(Socket.java:470)
at java.net.Socket.<init>(Socket.java:367)
at java.net.Socket.<init>(Socket.java:180)
at oracle.odi.sdk.invocation.internal.AgentNetworkCmd.<init>(AgentNetworkCmd.java:38)
at oracle.odi.sdk.invocation.OdiInvocation.<init>(OdiInvocation.java:107)
at com.gammonconstruction.odi.ODICaller.main(ODICaller.java:
do I need to add scheduler agent for java request ?
and, how to add the agent if need? -
Invoke ODI scenario from Fusion ESS
Hi,
We have developed one ODI scenario as part of our project to migrate the data from source(oracle DB) to target(oracle DB).
We would need to call this ODI scenario from a ESS Job to migrate the data to target.
Can you please let us know, what job type need to be defined for ESS job and
how the ODI scenario can be invoked from the ESS job ?
ThanksCan you go to the command line from ESS?
Install the Agent only runtime client so its visible to ESS and run startcmd.sh in this format :
startcmd.sh OdiStartScen -SCEN_NAME=PURGE_OPERATOR_LOG -SCEN_VERSION=-1 -CONTEXT=GLOBAL -AGENT_CODE=DGDW_AGN
If you want to specify the agent.
or simply :
startscen.sh PURGE_OPERATOR_LOG -1 GLOBAL NAME=DGDW_AGN
if you are happy for the machine where the Agent software has been installed to orchestrate the job.
Failing that, you could look at invoking your scenario from web services ? -
Error while running a ODI scenario from command prompt
Hi,
I'm trying to run a ODI scenario from command prompt. I've edited the tnsnames.ora and odiparam.bat file with exact host and port details. Even though I'm facing the below error.
command:startcmd.bat OdiStartScen -SCEN_NAME=INT.CUSTOMER_STG -SCEN_VERSION=001 -CONTEXT=ICM -AGENT_CODE=KANBAN
Error: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:orcl
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:280)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:328)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:361)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:151)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:595)
at com.sunopsis.sql.SnpsConnection.u(SnpsConnection.java)
at com.sunopsis.sql.SnpsConnection.c(SnpsConnection.java)
at com.sunopsis.sql.i.run(i.java)
Please help in resolving the error...
Thanks in advance.
Edited by: 894841 on Dec 22, 2011 11:15 PMHi,
Are you able to start the Standalone Agent(KANBAN) and test it in the Topology?
Check the value of the ODI_MASTER_URL variable in odiparams file(at the path <ODI_HOME>\oracledi\agent\bin) of the agent.
Specify the full the JDBC URL properly not like localhost(until the DB is on same machine as your ODI). -
Is it possible to call web service from ABAP SAP 4.6 c..If yes how
Hi Friends,
Is it possible to call web service from ABAP-SAP 4.6 c..If yes Could you please let me know how.
Thanks in Advance.
Murali Krishna K
Edited by: Murali Krishna Kakarla on Jan 26, 2008 7:09 PM
Edited by: Murali Krishna Kakarla on Jan 26, 2008 7:11 PMOlivier CHRETIEN wrote:>
> Hi Terry,
>
> So these function modules must use the SAPHTTPA RFC destination which uses the exe saphttp.exe ?
>
> How much abap code lines do you have for a web service call ?
> Do you have to code the call specifically for each different web service ?
> Are you able to use the WSDL ?
>
> Nice job if you have coded your own private SOAP runtime !
>
> But I don't think this is an easy solution for everybody...
>
> Regards,
>
> Olivier
Yes, SAPHTTPA (runs on application server) and/or SAPHTTP (runs on front-end pc), one of which, is required for HTTP communication. So far, nothing too elaborate as far as SOAP goes, but the logic is simplistic. Here's some sample code:
DEST = 'SAPHTTPA'.
TRANSLATE HOST TO LOWER CASE.
MYURL = 'wssrvTest/Service.asmx/GetByOrderItem'.
CONCATENATE HOST MYURL INTO MYURL.
REQUEST_HEADERS-DATA =
'Content-type: application/x-www-form-urlencoded'.
APPEND REQUEST_HEADERS.
CLEAR REQUEST_HEADERS.
*........Convert Order Number to External Format........................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ORDER
IMPORTING
OUTPUT = ORDER.
*........Convert Item Number to External Format.........................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITEM
IMPORTING
OUTPUT = ITEM.
*........Convert Material Number to External Format.....................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = MATERIAL
IMPORTING
OUTPUT = MATERIAL.
CONCATENATE 'sOrder=' ORDER
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CONCATENATE '&sItem=' ITEM
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CONCATENATE '&sMaterial=' MATERIAL
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CALL FUNCTION 'HTTP_POST'
EXPORTING
ABSOLUTE_URI = MYURL
RFC_DESTINATION = DEST
BLANKSTOCRLF = 'X'
TABLES
RESPONSE_ENTITY_BODY = RESPONSE_BODY
REQUEST_ENTITY_BODY = REQUEST_BODY
RESPONSE_HEADERS = RESPONSE_HEADERS
REQUEST_HEADERS = REQUEST_HEADERS
EXCEPTIONS
CONNECT_FAILED = 1
TIMEOUT = 2
INTERNAL_ERROR = 3
TCPIP_ERROR = 4
DATA_ERROR = 5
SYSTEM_FAILURE = 6
COMMUNICATION_FAILURE = 7
OTHERS = 8.
CHECK SY-SUBRC = 0. "more appropriate msg goes here
LOOP AT RESPONSE_BODY.
IF RESPONSE_BODY+0(7) <> '<string' AND
RESPONSE_BODY+0(8) <> '</string' AND
RESPONSE_BODY+0(5) <> '<?xml'.
SPLIT RESPONSE_BODY-DATA AT '=' INTO FIELD_NAME FIELD_VALUE.
TRANSLATE FIELD_NAME TO UPPER CASE.
CASE FIELD_NAME.
WHEN 'HEIGHT'.
HEIGHT = FIELD_VALUE.
WHEN 'WIDTH'.
WIDTH = FIELD_VALUE.
WHEN 'LENGTH'.
LENGTH = FIELD_VALUE.
WHEN 'WEIGHT'.
WEIGHT = FIELD_VALUE.
WHEN 'QTY'.
QTY = FIELD_VALUE.
ENDCASE.
ENDIF.
ENDLOOP.
Hope this helps...
Terry
Edited by: Terry West on Feb 4, 2008 3:08 PM -
Possible to call a transaction from a planning book using a macro button?
Hi All,
Is it somehow possible to call a transaction using a macro button in the planning book? Also, the current selection should be passed as input parameters to the transaction.
In my example, I am trying to run the transaction /SAPAPO/MC90 - Release to Supply Network Planning from the Demand Planning Planning Book/Data View. This way if planners need to change forecasts mid month for specific selections, they can easily transfer to SNP without having to go out of interactive planning.
Thank you,
MariaHello Maria,
It's possible to call a transaction from a planning book using a macro button.
What you can do is ..... Create a function module and inside it use the command "Call Transaction Tcode" (ABAPer can do this) to call ur specific transaction. And this module can in turn be called from your macro. Please find the below link which explanis how to call a function module from a macro. Do let me know if you need more information on this.
Calling a function module from APO Macro
Regards,
Siva. -
How to invoke odi scenario from bpel without passing plain text password
Hi
We have following requirement,we would like to invoke odi scenario from oracle bpel process.But one problem is we dont want to pass the odi password as plain text.Please let me know how do i achive this task.
Thanks
BajiHi,
Thanks its working now. I am facing another issue. I do not use parameters in my Scenario. Now when i run my scenario i m getting the following error. I think its because i have not assigned anything to the Variable element. I guess its taking null value for Variable element here and cheking if such a variable exists. Have you come accross such an issue? If so, please sugest remedy.
java.lang.Exception: Specified variable not found in the Repository : null
at com.sunopsis.dwg.dbobj.SnpSession.a(SnpSession.java)
at com.sunopsis.dwg.dbobj.SnpSession.y(SnpSession.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSessionPreTrt(SnpSession.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(Thread.java:619)
Edited by: silas.john on May 13, 2009 1:29 AM -
It it possible to call web service from SAP 4.6 c..If yes how
Hi Friends,
It it possible to call web service from SAP 4.6 c..If yes how
Thanks in Advance.
Murali Krishna KIt is not possible to directly call a web service from SAP 4.6c.
Indeed, web service enablement is available as from Web AS 6.20, thus as from SAP R/3 4.7
So as described above, the solution is indeed to make use of PI(XI) for this.
Rgds,
Karim -
Is it possible to call ctx_doc.filter from Java?
Hello all,
Is it possible to call ctx_doc.filter from Java?
If so, do you have a code sample?
Thanks,
MarvinI have some Java code using ctx_doc.markup that can help:
try {
//make db conn
OracleCallableStatement stmt =(OracleCallableStatement)conn.prepareCall("begin "+
"ctx_doc.markup(index_name=>'text_idx', "+
"textkey=>?,"+
"text_query=>?,"+
"restab=>?,"+
"starttag=> '<a>',"+
"endtag=> '</a>' "+
"); " +
"end; ");
... // register other parameters
stmt.registerOutParameter(3, OracleTypes.CLOB);
stmt.execute();
oracle.sql.CLOB text_clob=null;
text_clob = ((OracleCallableStatement)stmt).getCLOB(3);
// read the CLOB by chunks
int chunk_size=text_clob.getChunkSize();
Reader char_stream = text_clob.getCharacterStream();
char[] char_array = new char[chunk_size];
for(int n=char_stream.read(char_array);n>0; n=char_stream.read(char_array)){
out.print(char_array);}
}catch (SQLException e)
Maybe you are looking for
-
How to CREATE VIEW to merge two tables each of which has CLOB-typed column
I failed in creating a view to merge two tables that have CLOB-type column each. The details are: Database: Oracle 9i (9.2.0) Two tables "test" and "test_bak", each of which has the following structure: ID Number(10, 0) DUMMY VARCHAR2(20) DUMMYCLOB C
-
Error while opening Crystal report 2008
Hi All, I get the following error when I try to open crystal report 2008 trial version: "Entry Point Not Found The procedure entry point ?CanStackDump@SLogger@CXLib400@@SA_NXZ could not be located in the dynamic link library cxlibw-4-0.dll." To over
-
Adobe CS2 Installs with ARD?
We recently purchased a volume license for Adobe CS2. I have read the information on the Adobe website about configuring a silent install. All seems to be fine with putting the files together in a directory as they say but I am hitting a wall when it
-
HI! Any material to start deploying pdf with developer studio?
-
Help please, I have an old iMac running OS X 10.2.8 and lost internet capabilities, how do I update and get the internet back?