...USING :(Array or String of Host Variables)

It`s posible????
This is the code:
String s="SELECT namecolumn FROM nametable WHERE namevar1=:var1 AND namevar2=:var2";
String vars=":var1,:var2"
#sql [default_context]{begin
open :OUT cursor
for :s
using :vars;
end;};

The simplest (?) way to do it would be something like...
String[][] attribs = new String [4][2];
Class paramTypes[] = {String.class, attribs.getClass()};
Object[] params = new Object[] {"PRINTER",attribs};
Method m = obj.getClass().getMethod("cadastraTipoServico", paramTypes);
m.invoke(obj,params);After a quick flick through the 1.3 API, I don't know if there's a simple way to create a Class representing an array of another Class. You could do...
Class arrayClass = java.lang.reflect.Array.newInstance(componentClass, new int[] {0, 0}).getClass();... but you can guess why I might not recommend it in the general case.
Hope this helps,
-Troy

Similar Messages

  • Management Report - Cannot assign an empty string to host variable 10

    We ran a Management Report for the first time after completing the User/Role/Profile Full Sync and the user/Role/Profile Batch Risk Analysis.  The job failed with the following error:
    Oct 16, 2008 12:13:29 PM com.virsa.cc.xsys.bg.BatchRiskAnalysis runBkgMgmReport
    WARNING: Exception in Management Report Job: Cannot assign an empty string to host variable 10.
    com.sap.sql.log.OpenSQLException: Cannot assign an empty string to host variable 10.
    We are on GRC 5.3 support pack 4.  Has anybody encountered this error? What does host variable 10 refer to?

    I checked our USOBT_C table and we have a lot of empty values. If this is allowed to be empty in SAP and this is the table that is uploaded into CC, why would all the fields in CC tables then be defined as NOT NULL?  We suspect that since we had uploaded USOBT_C under 5.2 and if this had been an issue before, it may have been corrected when we upgraded to 5.3 but then the old data is still in our system. Is there an easy way to get around or correct this?
    Thanks.

  • Cannot assign an empty string to host variable 1

    Guys,
    I am getting the following problem while trying to create an entity bean., cmp field is not blank string yet I am getting the error. can you please help out?
    _33##0#0#Info##Plain###Remote Exception in Create: CreateA2iLogin: com.sap.engine.services.ejb.exceptions.BaseRemoteException: Exception in method a2i.beans.login.LoginHomeImpl0.create(java.lang.String).
         at a2i.beans.login.LoginHomeImpl0.create(LoginHomeImpl0.java:408)
         at a2i.beans.login.LoginHome_Stub.create(LoginHome_Stub.java:56)
         at com.nibco.a2i.beans.A2iLogin.createA2iLogin(A2iLogin.java:118)
         at com.nibco.a2i.beans.A2iLogin.<init>(A2iLogin.java:38)
         at com.nibco.training.servlet.SayHelloServlet.doPost(SayHelloServlet.java:121)
         at com.nibco.training.servlet.SayHelloServlet.doGet(SayHelloServlet.java:32)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:391)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:265)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:345)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:323)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:865)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:240)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
         at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)
    Caused by: com.sap.engine.services.ejb.entity.ContainerException: Exception in method ejbStore().
         at com.sap.engine.services.ejb.entity.ContextFP.store(ContextFP.java:118)
         at com.sap.engine.services.ejb.entity.ContextFP.store0(ContextFP.java:103)
         at com.sap.engine.services.ejb.entity.Context.passivate(Context.java:235)
         at a2i.beans.login.LoginHomeImpl0.create(LoginHomeImpl0.java:401)
         ... 21 more
    Caused by: com.sap.engine.services.ejb.exceptions.BaseEJBException: SQLException while the data is being flushed. The persistent object is a2i.beans.login.LoginBean0Persistent.
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:101)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flushAll(TransactionContext.java:429)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flush(TransactionContext.java:378)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.finishWork(TransactionContext.java:454)
         at a2i.beans.login.LoginBean0PM.ejbStore(LoginBean0PM.java:184)
         at com.sap.engine.services.ejb.entity.ContextFP.store(ContextFP.java:115)
         ... 24 more
    Caused by: com.sap.sql.log.OpenSQLException: Cannot assign an empty string to host variable 1.
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)
         at com.sap.sql.jdbc.common.CommonPreparedStatement.setString(CommonPreparedStatement.java:584)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setString(PreparedStatementWrapper.java:341)
         at a2i.beans.login.LoginBean0Persistent.ejb_iInsert(LoginBean0Persistent.java:335)
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:92)
         ... 29 more
    ; nested exception is:
         com.sap.engine.services.ejb.entity.ContainerException: Exception in method ejbStore().#
    #1.5#001143A7AF4000680000005900000F4C00040C3E95D97A60#1139362848402#System.out#sap.com/A2IEARCURR#System.out#Guest#0####edec5450984311da917b001143a7af40#SAPEngine_Application_Thread[impl:3]_33##0#0#Info##Plain###Success 2#

    Guys,
    I am getting the following problem while trying to create an entity bean., cmp field is not blank string yet I am getting the error. can you please help out?
    _33##0#0#Info##Plain###Remote Exception in Create: CreateA2iLogin: com.sap.engine.services.ejb.exceptions.BaseRemoteException: Exception in method a2i.beans.login.LoginHomeImpl0.create(java.lang.String).
         at a2i.beans.login.LoginHomeImpl0.create(LoginHomeImpl0.java:408)
         at a2i.beans.login.LoginHome_Stub.create(LoginHome_Stub.java:56)
         at com.nibco.a2i.beans.A2iLogin.createA2iLogin(A2iLogin.java:118)
         at com.nibco.a2i.beans.A2iLogin.<init>(A2iLogin.java:38)
         at com.nibco.training.servlet.SayHelloServlet.doPost(SayHelloServlet.java:121)
         at com.nibco.training.servlet.SayHelloServlet.doGet(SayHelloServlet.java:32)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:391)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:265)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:345)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:323)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:865)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:240)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
         at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)
    Caused by: com.sap.engine.services.ejb.entity.ContainerException: Exception in method ejbStore().
         at com.sap.engine.services.ejb.entity.ContextFP.store(ContextFP.java:118)
         at com.sap.engine.services.ejb.entity.ContextFP.store0(ContextFP.java:103)
         at com.sap.engine.services.ejb.entity.Context.passivate(Context.java:235)
         at a2i.beans.login.LoginHomeImpl0.create(LoginHomeImpl0.java:401)
         ... 21 more
    Caused by: com.sap.engine.services.ejb.exceptions.BaseEJBException: SQLException while the data is being flushed. The persistent object is a2i.beans.login.LoginBean0Persistent.
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:101)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flushAll(TransactionContext.java:429)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flush(TransactionContext.java:378)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.finishWork(TransactionContext.java:454)
         at a2i.beans.login.LoginBean0PM.ejbStore(LoginBean0PM.java:184)
         at com.sap.engine.services.ejb.entity.ContextFP.store(ContextFP.java:115)
         ... 24 more
    Caused by: com.sap.sql.log.OpenSQLException: Cannot assign an empty string to host variable 1.
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)
         at com.sap.sql.jdbc.common.CommonPreparedStatement.setString(CommonPreparedStatement.java:584)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setString(PreparedStatementWrapper.java:341)
         at a2i.beans.login.LoginBean0Persistent.ejb_iInsert(LoginBean0Persistent.java:335)
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:92)
         ... 29 more
    ; nested exception is:
         com.sap.engine.services.ejb.entity.ContainerException: Exception in method ejbStore().#
    #1.5#001143A7AF4000680000005900000F4C00040C3E95D97A60#1139362848402#System.out#sap.com/A2IEARCURR#System.out#Guest#0####edec5450984311da917b001143a7af40#SAPEngine_Application_Thread[impl:3]_33##0#0#Info##Plain###Success 2#

  • Using arrays as type for bind variable

    Hi all,
    I have this stored procedures that takes an array of strings as an argument:
    CREATE OR REPLACE PACKAGE mypackage AS
    TYPE StringArray IS VARRAY(100) OF VARCHAR2(16);
    PROCEDURE doSomething(v_strings IN StringArray);
    END;
    My java code looks something like:
    String[] strings = ...;
    CallableStatement cs = connection.prepareCall("CALL mypackage.doSomething(?)");
    cs.setObject(1, strings, java.sql.Types.ARRAY);
    calling the setObject method throws a SQLException: invalid column type.
    I have tried to change the call to:
    cs.setArray(1, new SqlStringArray(strings))
    where SqlStringArray is a wrapper around String[] that implements the java.sql.Array interface. This however throws a ClassCastException in oracle.jdbc.driver.OraclePreparedStatement. The latter is assuming it is receiving a class that implements yet another interface I guess.
    I also tried:
    cs.setObject(1, strings, java.sql.Types.VARCHAR);
    but that also throws a SqlException: invalid conversion requested
    Does anybody know how to bind String[] into a PreparedStatement?
    Any help is appreciated.
    Rudi.

    Made some progress. I am getting the OracleConnection from the WrappedConnection. This is a temporary solution for me so I would appreciate a final solution from anybody.
    I am now constructing a oracle.sql.ARRAY with an appropriate oracle.sql.ArrayDescriptor. I have found out that the type must be defined on a global level rather than in the scope of the package. Would be good if an Oracle expert could confirm that but I am happy to live with that.
    The IN parameter is correctly bound using the ARRAY instance but I am getting the following error when actually executing the statement:
    ORA-06512: Reference to uninitialized collection: at "BLUETEST_MYPACKAGE", line 57
    Now I have found quite some problem descriptions with that ORA error but all are dealing with OUT parameters that were not correctly initialized, i.e. the array constructor had not been called. In my case however, the array is initialized at by the java code and then bount to the sql statement. You would expect that the jdbc driver takes care of correctly initializing the PL/SQL collection wouldn't you.
    Does anybody know if I need to do anything extra?
    Many thanks,
    Rudi.

  • GRC 5.3 - Management Report Error: Cannot assign an empty string to host..

    Good day Kiran Kandepalli and Others.
    I have successfully executed the background jobs -
    Full User, Role, Profile Synchronization & a
    Full Batch Risk Analysis
    When I run the Management Reports I receive the following error -
    Error while executing the Job:Cannot assign an empty string to host variable 10.
    Has anybody had this error message before?
    When I check table VIRSA_CC_PRMVL, variable 10 is set to No in Nullable collumn.

    Hi Sahad,
    Thanks for your response.  I have checked the usr02 table and logs and do not see any empty fields or strings.  This process worked for 5.2 but fails in 5.3.  Here is the excerpt from the log for the Management Report run.  It seems to fail consistenly at a certain point.  If I knew what the batch job was looking for in host variable 10 I might be able to resolve the problem.  It seems to fail when it starts to report on users.
    Thanks.
    Dan.
    INFO: -
    Scheduling Job =>935----
    Jan 23, 2009 8:04:16 AM com.virsa.cc.xsys.bg.BgJob run
    INFO: --- Starting Job ID:935 (RISK_ANALYSIS_BATCH) - tst
    Jan 23, 2009 8:04:16 AM com.virsa.cc.xsys.bg.BgJob setStatus
    INFO: Job ID: 935 Status: Running
    Jan 23, 2009 8:04:16 AM com.virsa.cc.xsys.bg.BgJob findJobHistory
    FINEST: --- @@@@@@@@@@@ Find the Job History -
    1
    Jan 23, 2009 8:04:16 AM com.virsa.cc.xsys.bg.BgJob updateJobHistory
    FINEST: --- @@@@@@@@@@@ Updating the Job History -
    1@@Msg is tst started :threadid: 0
    Jan 23, 2009 8:04:16 AM com.virsa.cc.xsys.bg.dao.BgJobHistoryDAO insert
    INFO: -
    Background Job History: job id=935, status=1, message=tst started :threadid: 0
    Jan 23, 2009 8:04:16 AM com.virsa.cc.xsys.bg.BatchRiskAnalysis performBatchSyncAndAnalysis
    INFO: --- Batch Sync/Analysis/Mgmt Report started ---
    Jan 23, 2009 8:04:16 AM com.virsa.cc.xsys.bg.BatchRiskAnalysis runBkgMgmReport
    INFO: --- Running the Background Management Report -
    Jan 23, 2009 8:04:39 AM com.virsa.cc.xsys.mgmbground.dao.MgmStats execute
    INFO: Start insert int cc_mgriskd all violations.... 1232726679108
    Jan 23, 2009 8:04:49 AM com.virsa.cc.xsys.bg.BatchRiskAnalysis runBkgMgmReport
    WARNING: Exception in Management Report Job: Cannot assign an empty string to host variable 10.
    com.sap.sql.log.OpenSQLException: Cannot assign an empty string to host variable 10.
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)
         at com.sap.sql.types.VarcharResultColumn.setString(VarcharResultColumn.java:57)
         at com.sap.sql.jdbc.common.CommonPreparedStatement.setString(CommonPreparedStatement.java:511)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setString(PreparedStatementWrapper.java:355)
         at com.virsa.cc.xsys.mgmbground.dao.MgmStats.execute(MgmStats.java:314)
         at com.virsa.cc.xsys.bg.BatchRiskAnalysis.runBkgMgmReport(BatchRiskAnalysis.java:1182)
         at com.virsa.cc.xsys.bg.BatchRiskAnalysis.performBatchSyncAndAnalysis(BatchRiskAnalysis.java:1430)
         at com.virsa.cc.xsys.bg.BgJob.runJob(BgJob.java:402)
         at com.virsa.cc.xsys.bg.BgJob.run(BgJob.java:264)
         at com.virsa.cc.xsys.riskanalysis.AnalysisDaemonBgJob.scheduleJob(AnalysisDaemonBgJob.java:240)
         at com.virsa.cc.xsys.riskanalysis.AnalysisDaemonBgJob.start(AnalysisDaemonBgJob.java:80)
         at com.virsa.cc.comp.BgJobInvokerView.wdDoModifyView(BgJobInvokerView.java:436)
         at com.virsa.cc.comp.wdp.InternalBgJobInvokerView.wdDoModifyView(InternalBgJobInvokerView.java:1225)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doModifyView(DelegatingView.java:78)
         at com.sap.tc.webdynpro.progmodel.view.View.modifyView(View.java:337)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.doModifyView(ClientComponent.java:481)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doModifyView(WindowPhaseModel.java:551)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:148)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:321)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:46)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
    Jan 23, 2009 8:04:49 AM com.virsa.cc.xsys.bg.BgJob run
    WARNING: *** Job Exception: Cannot assign an empty string to host variable 10.
    com.sap.sql.log.OpenSQLException: Cannot assign an empty string to host variable 10.
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)
         at com.sap.sql.types.VarcharResultColumn.setString(VarcharResultColumn.java:57)
         at com.sap.sql.jdbc.common.CommonPreparedStatement.setString(CommonPreparedStatement.java:511)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setString(PreparedStatementWrapper.java:355)
         at com.virsa.cc.xsys.mgmbground.dao.MgmStats.execute(MgmStats.java:314)
         at com.virsa.cc.xsys.bg.BatchRiskAnalysis.runBkgMgmReport(BatchRiskAnalysis.java:1182)
         at com.virsa.cc.xsys.bg.BatchRiskAnalysis.performBatchSyncAndAnalysis(BatchRiskAnalysis.java:1430)
         at com.virsa.cc.xsys.bg.BgJob.runJob(BgJob.java:402)
         at com.virsa.cc.xsys.bg.BgJob.run(BgJob.java:264)
         at com.virsa.cc.xsys.riskanalysis.AnalysisDaemonBgJob.scheduleJob(AnalysisDaemonBgJob.java:240)
         at com.virsa.cc.xsys.riskanalysis.AnalysisDaemonBgJob.start(AnalysisDaemonBgJob.java:80)
         at com.virsa.cc.comp.BgJobInvokerView.wdDoModifyView(BgJobInvokerView.java:436)
         at com.virsa.cc.comp.wdp.InternalBgJobInvokerView.wdDoModifyView(InternalBgJobInvokerView.java:1225)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doModifyView(DelegatingView.java:78)
         at com.sap.tc.webdynpro.progmodel.view.View.modifyView(View.java:337)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.doModifyView(ClientComponent.java:481)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doModifyView(WindowPhaseModel.java:551)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:148)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:321)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:46)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
    Jan 23, 2009 8:04:49 AM com.virsa.cc.xsys.bg.BgJob setStatus
    INFO: Job ID: 935 Status: Error
    Jan 23, 2009 8:04:49 AM com.virsa.cc.xsys.bg.BgJob updateJobHistory
    FINEST: --- @@@@@@@@@@@ Updating the Job History -
    2@@Msg is Error while executing the Job:Cannot assign an empty string to host variable 10.
    Jan 23, 2009 8:04:49 AM com.virsa.cc.xsys.bg.dao.BgJobHistoryDAO insert
    INFO: -
    Background Job History: job id=935, status=2, message=Error while executing the Job:Cannot assign an empty string to host variable 10.
    Jan 23, 2009 8:04:49 AM com.virsa.cc.xsys.riskanalysis.AnalysisDaemonBgJob scheduleJob
    INFO: -
    Complted Job =>935----

  • How to use host variable in Java?

    How do I use host variable in java? I am getting SQL code of -404 and description of SQL code is The UPDATE or INSERT statement specifies a String that is too long column-name SQLSTATE=22001. Below is my code:
    * i n s e r t M e s s a g e
    * insertMessage: This method will retrive detail message and other fields for
    * selected item from screen1.
    public final Collection insertMessage(String businessId,String messageNumber,String messageType,
    String messageTitle,String printStyle,String statusIndicator,
    String approverId,String lastUpdateId,String longMessage) {
    MessageTransport msi = new MessageTransport();
    PreparedStatement ps = null;
    Connection connection = null;
    MessageTransport msi1 = new MessageTransport();
    PreparedStatement ps1 = null;
    Connection connection1 = null;
    ArrayList list = new ArrayList();
    try {
    if (businessId != null) {
    businessId = businessId.trim();
    if (messageNumber != null) {
    messageNumber = messageNumber.trim();
    if (messageType != null) {
    messageType = messageType.trim();
    if (messageTitle != null) {
    messageTitle = messageTitle.trim();
    if (printStyle != null) {
    printStyle = printStyle.trim();
    if (statusIndicator != null) {
    statusIndicator = statusIndicator.trim();
    if (approverId != null) {
    approverId = approverId.trim();
    if (lastUpdateId != null) {
    lastUpdateId = lastUpdateId.trim();
    if (longMessage != null) {
    longMessage = longMessage.trim();
    int len = longMessage.length();
    if (len > 254) {
    int constant = 254;
    int k = len % constant; //k will hold value that has number of loops including initial insert.
    k = k - 1; //this is for total number of loop.
    int j = len / constant; //this will have remainder if any to insert rest of longmessage.
    System.out.println("Display remainder: " + k);
    System.out.println("Display divisible: " + j);
    System.out.println("Display Length of longMessage: " + len);
    StringBuffer sql = new StringBuffer();
    sql.append("INSERT INTO " + MESSAGE_TBL + " ( MT_BUS_ID,MT_MSG_NBR,MT_MSG_TYPE,MT_MSG_TITLE,MT_PRINT_STYLE,MT_APV_STATUS,MT_APV_ID,MT_APV_DT,MT_APV_TM,MT_LAST_UPDATE_ID,MT_LAST_UPDATE_DT,MT_LAST_UPDATE_TM,MT_MSG_TXT ) VALUES ");
    sql.append("(");
    sql.append("'");
    sql.append(businessId).append("'");
    sql.append(",").append(messageNumber);
    sql.append(",").append("'I'");
    sql.append(",").append("'").append(messageTitle).append("'");
    sql.append(",").append("'").append(printStyle).append("'");
    sql.append(",").append("'P'");
    sql.append(",").append("' '");
    sql.append(",").append("CURRENT DATE");
    sql.append(",").append("CURRENT TIME");
    sql.append(",").append("'").append(lastUpdateId).append("'");
    sql.append(",").append("CURRENT DATE");
    sql.append(",").append("CURRENT TIME");
    sql.append(",").append("'").append(longMessage).append("'");
    sql.append(")");
    System.out.println("Display SQL Statement: " + sql);
    connection = DriverManager.getConnection(DATABASE_URI, USER, PASS);
    ps = connection.prepareStatement(sql.toString());
    ps.executeUpdate();
    System.out.println("Refreshed Record: ");
    catch (SQLException sqle) {
    System.out.println("SQLException: "+ sqle + ". SQLSTATE=" + sqle.getSQLState()+" SQLCODE=" + sqle.getErrorCode());
    finally {
    if (ps != null) {
    try {
    ps.close();
    ps=null;
    catch (Exception e) {}
    if (ps1 != null) {
    try {
    ps1.close();
    ps1=null;
    catch (Exception e) {}
    if (connection != null) {
    try {
    connection.close();
    connection = null;
    catch (Exception e) {}
    if (connection1 != null) {
    try {
    connection1.close();
    connection1 = null;
    catch (Exception e) {}
    return list;
    if my longMessage is smaller like one line then everything works fine, but as soon as my longMessage if greater than 254 it starts giving me -404. How do I work around or Is there any way to use host variable in Java?
    All kind of help is appreciated. Any question then please email me at [email protected].
    Thank you.

    This is what you got to do to insert a larger value.
    //Assuming that message length is less than 254+ 254 characters.
    //If larger then run the update loop that many times.
    String longMessage = "Blah blah ... ";
    String firstPart = "";
    String secondPart = "";
    int messageLength = longMessage.length();
    if (messageLength > 254)
         try
              firstPart = longMessage.subString(0, 253);
              secondPart = longMessage.subString(254, message);
         catch (IndexOutOfBoundsException e)
    //In the first insert  set the first 254 characters
    ps.setString(1, firstPart);
    int result = ps.executeUpdate();
    if (result != 0)
           System.out.println("Insert  sucessful  ");
           if (messageLength > 254)
                //now update with the second part.
                static String UPDATE_SECOND_PART = UPDATE my.table SET LONG_COL = LONG_COL || ? WHERE KEY_COL = ?;
                ps2 = connection.getPreparedStatement(UPDATE_SECOND_PART);
                ps2.setString(1, secondPart);
                ps2.setString(2, businessId);  //assuming that businessId is the primary key.
                int result2 = ps2.executeUpdate();
                if (result2 != 0)
                      System.out.println("Update  sucessful  ");
                else
                     System.out.println("Update failed ");
    else
           System.out.println("Insert failed ");
    }Hope this helps.

  • How can i asign value to variables stored in an array of string?

    hi
    how can i asign value to variables stored in an array of string. i need to do it so that i can evaluate a math expression by usin those values. for example, i have a string array like [x, y, z, k]. now i need to asign 2.0 to x, 3.0 to y and so on. then if i type x+y, the program should evaluate the expression by usin x=2.0 and y=3.0. i am usin JEP for parsing and evaluating.
    any help or suggestion would be much apreciated.
    here is how i got the array
    System.out.println("Type first expression");
    BufferedReader br1 = new BufferedReader( new
                         InputStreamReader(System.in));
    String expression1 = br1.readLine();
    Jep jep = new Jep();
    Node node1 = jep.parse(expression1);
    TreeAnalyzer Ta1 = new TreeAnalyzer(node1);
    Map<Variable, Integer> map1 = Ta1.getVariables();
    /**The following will convert the variable names to a sorted array*/
         /**with the result in varNames.*/
    String[] res1 = new String[map1.size()];
                int i=0;
                for(Variable v:map1.keySet())
                    res1[i++]=v.getName();  
    System.out.println(Arrays.toString(res1));

    I could not use HashMap as those variables are to be retrieved from any expression typed by user and thus unknown to me beforehand.
    System.out.println("Type first expression");
    BufferedReader br1 = new BufferedReader( new
                         InputStreamReader(System.in));
    String expression1 = br1.readLine();
    Jep jep = new Jep();
    Node node1 = jep.parse(expression1);
    TreeAnalyzer Ta1 = new TreeAnalyzer(node1);
    Map<Variable, Integer> map1 = Ta1.getVariables();then i have converted them to a sorted array
    String[] res1 = new String[map1.size()];
                     int i=0;
                     for(Variable v:map1.keySet())
                         res1[i++]=v.getName();              
                     System.out.println(Arrays.toString(res1));now i need to assign random double values to those variables.
    and then use those double values for variables when evaluating the expression.
    pls help.

  • Array of string in a shared variable

    I am trying to write a 1-D array of strings to a network published shared variable, but it does not seem to write it. On the host, I can read the variable after I write to it, but I can't read it on the remote system (real-time). It is always blank. I checked the System Manager and it also shows the variable to be NULL.
    Solved!
    Go to Solution.

    Hi,
    It sounds like there might be a problem with the way you are publishing your network shared variables. Do you have any other shared variables of a different type that are working?
    What machine is hosting the variables? In either case, make sure they are deployed correctly. If the variables are hosted on your PC, check the Variable Manager and ensure that your variable is listed there and is being correctly updated. If it is, ensure your network is not blocking port traffic (turn off any firewalls.) Also ensure the path to the shared variable in real time is pointing to the correct location of the shared variable engine.
    Asa Kirby
    CompactRIO Product Marketing Manager
    Sail Fast!

  • Why string arrays not allow in shared variables?

    I'm changing a program to replace some global variables with shared variables.  The need for an executable is the reason the globals are being replaced with SV's.  At least one of the variables is a 2 diminsion array of strings.  Under the 'data type' drop down list on the shared variable properties there is no option for an array of strings among the 28 posibilities.  Any way this can be accomplished?  I'm using version 8.0
    thanks, Mike

    Nick, I am attempting your solution.  I upgraded to 8.5, created a custom control as a 2 diminsional array and made it a shared variable.  it works fine in uncompiled mode but when the programs are made executables the array info is not passed.  Now I have to say I find the whole compile process with Labview pretty confusing so I'm guessing I'm doing something wrong in that procedure or I am simply misunderstanding this whole data passing concept on some fundemental level. .  I have attempted several different compile property setting under the "Source Files" page.  Both the write and read programs are in one project along with the custom control and the shared variable.  I compile two applications using the write and read vi's as startup files and have included the custom control and the shared variable in the "always included" area.  I've tried including the last two files or not including them in the compile and it makes no difference.  Setting the variable as 'single process or  'network published'  makes no difference either.   
    Attachments:
    controlrw.lvproj ‏9 KB

  • Using query strings to pass variables...

    I'm trying to use the query string method to pass some
    variables into a SWF, but I can't seem to get it to work. All of
    the documentation I've seen references the object/embed method for
    displaying the SWF, but I'm using Dreamweaver's
    AC_RunActiveContent.js method to display the SWF. Would this cause
    a problem for the query string?
    Here's what I'm trying in the HTML that houses it:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1" />
    <title>Untitled Document</title>
    <link href="../bk.css" rel="stylesheet" type="text/css"
    />
    <script src="../Scripts/AC_RunActiveContent.js"
    type="text/javascript"></script>
    </head>
    <body>
    <script type="text/javascript">
    AC_FL_RunContent( 'codebase','
    http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','wid th','301','height','240','src','videoplayer','quality','high','pluginspage','http://www.ma cromedia.com/go/getflashplayer','movie','videoplayer'
    ); //end AC code
    </script><noscript><object
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="
    http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
    width="301" height="240">
    <param
    name="movie" value="videoplayer.swf?vid=dbc2006" />
    <param name="quality" value="high" />
    <embed
    src="videoplayer.swf?vid=dbc2006" quality="high"
    pluginspage="
    http://www.macromedia.com/go/getflashplayer"
    type="application/x-shockwave-flash" width="301"
    height="240"></embed>
    </object></noscript>
    </body>
    </html>

    I've been doing a little research... not being a programmer,
    I'm a little out to lunch on this stuff. I now realize that what I
    put in the HTML page is meaningless, unless the viewer's browser
    won't use JavaScript.
    I now know that I need to define my variables in the HTML
    page, and have the .js file recongnize and use them.
    That's where my lack of knowledge really gets in the way. :)
    Does anyone have any thoughts on how to modify the .js file to put
    my "?vid=dbc2006" into the string?
    Thanks!

  • How to set #HOST# variable used in Chart template using Multiple Domains?

    I have a extended question to How can I set #HOST# variable referenced in the Chart template?
    In addition to the Proxy layer, we are looking to use multiple sub-domain names into the same Oracle APEX instance (through the one DAD) each mapped to a different application id. Therefore I don't think the solution in the link will work for me - as this embeds a single domain name in the DADS.CONF.
    Two questions:
    - Is it possible to set the "HTTP_HOST" in "dads.conf" using an existing HTTP Header value? - my proxy can pass on the original domain as "HTTP_X_FORWARDED_HOST". So if it was possible to use (say: using whatever form/syntax of parameterisation is available) ?
    >
    PlsqlCGIEnvironmentList HTTP_HOST=%{HTTP_X_FORWARDED_HOST}
    >
    If it can then that would work for me. It would be great if modl_plsql handled this out of the box as I understand the "X-FORWARDED" approach is pretty standard in the proxy world including passing on original IP addresses. Hitting an phpinfo() site shows headers
    >
    HTTP_X_FORWARDED_FOR     192.168.2.100
    HTTP_X_FORWARDED_HOST     dev.mycompany.com:443
    HTTP_X_FORWARDED_SERVER     mycompany.com
    >
    - Alternatively is it possible in APEX environment to set the #HOST# from the HTTP Header "HTTP_X_FORWARDED_HOST" if it exists for all requests?
    Thanks

    Hi Donna,
    changing the CGI environment variables HTTP_HOST, REQUEST_PROTOCOL and SERVER_PORT is the correct way how to resolve this, because it appears that your hiding the web server where you have installed mod_plsql or EPG by a different outside facing web server (also called reverse proxy). That's why APEX gets the host name, protocol and port of the internal web server, but should actually get the values of your reverse proxy web server. Can can fix that by changing the following CGI environment variables.
    HTTP_HOST should just contain the domain name (no protocol or port). For example: www.oracle.com
    REQUEST_PROTOCOL should contain http or https
    SERVER_PORT should be the port for https
    I don't want to add a new cgi variable called HOST because HOST sounds so generic and it might interfere with something else running in our environment. Or, I don't want to change the plsql cgi environment variable (such as HTTP_HOST) because many developers may use owa_util.get_cgi_env('HTTP_HOST') to get the current server. If the SERVER_PORT is part of the #HOST# then what could I change it to if it needs to be null. If you leave it blank, then the default SERVER_PORT comes from the CGI variables.The value of HTTP_HOST is wrong anyway and points to your internal web server, but I assume your developers actually want to get the host name of your external web server if they use it to generate absolute URLs. That's why I wouldn't bother and set it to the correct host name.
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • "Using a CIN to Create an Array of Strings in LabVIEW" example crashes LV on Linux

    Tried to utilize this NI example: "Using a CIN to Create an Array of Strings in LabVIEW" (http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B4B282BE7EF907C8E034080020E74861&p_node=&p_source=External)
    Compiles OK with the makefile made by the LV's lvmkmf utility. Nevertheless when I try to run the VI (with the code loaded into the CIN, of course), LabVIEW 7.1.1 on a SUSE 9.3 Linux machine crashes:
    LabVIEW caught fatal signal
    7.1.1 - Received SIGSEGV
    Reason: address not mapped to object
    Attempt to reference address: 0x0
    Segmentation fault
    Any ideas? Did anybody try this on a Windows machine?

    H View Labs wrote:
    Tried to utilize this NI example: "Using a CIN to Create an Array of Strings in LabVIEW" (http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B4B282BE7EF907C8E034080020E74861&p_node=&p_source=External)
    Compiles OK with the makefile made by the LV's lvmkmf utility. Nevertheless when I try to run the VI (with the code loaded into the CIN, of course), LabVIEW 7.1.1 on a SUSE 9.3 Linux machine crashes:
    LabVIEW caught fatal signal
    7.1.1 - Received SIGSEGV
    Reason: address not mapped to object
    Attempt to reference address: 0x0
    Segmentation fault
    Any ideas? Did anybody try this on a Windows machine?
    This code is badly broken. In addition to resizing the actual handle to hold the number of string handles you also would need to create the string handles itself before attempting to write into them. NumericArrayResize is the fucntion to use as it will either resize an existing handle (if any) or create a new one if the value is uninitialized (NULL).
    /* resize strarr to hold handles to NUMSTRINGS strings */
    err = SetCINArraySize((UHandle)strarr, 0, NUMSTRINGS);
    if (err)
    goto out;
    /* perform this loop once for each element */
    /* of array of strings being created */
    for (i = 0; i < NUMSTRINGS;) {
    LStrHandle handle = (*strarr)->arg1[i];
    /* determine length of string that will be element of strarr */
    strsize = StrLen(str[i]);
    err = NumericArrayResize(uB, 1, &handle, strsize);
    if (err)
    goto out;
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    /* moves strsize bytes from the address pointed to */
    /* by str[i] to the address pointed to by the data pointer in the handle */
    MoveBlock(str[i], LStrBuf(*handle), strsize);
    /* manually set size of string pointed to by *strarr */
    (*((*strarr)->arg1[i]))->cnt = strsize;
    /* manually set dimSize of strarr */
    (*strarr)->dimSize = ++i;
    return noErr;
    out:
    return err;
    Rolf KalbermatterMessage Edited by rolfk on 06-30-2005 03:15 AM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Can I use C++ objects as Host variables in Pro*C++

    Hi,
    I have a C++ object in my Pro*C++ program. The objects has
    members representing all the fields of a oracle table record.
    e.g. For a table TEST_PRODUCT ( product_id, name),
    the C++ class is :
    class prd
    public:
    int id;
    char name[50];
    Can I use the Object of this class as a Host Variable ? In SQL
    select query , I want to directly fetch record into this object.
    When I declare this object within EXEC SQL BEGIN DECLARE SECTION
    and END DECLARE SECTION , it gives me compilation error.
    Is that supported by Pro*C++ ? If yes, how to do it?
    Pls help.
    Thanks

    I find it easier to decalre a local variable in the EXEC SQL
    block and then assign that to your class variable at the end of
    the statement. It makes it easy to check for nulls and db
    errors without affecting the C++ object.
    PT

  • Using an array of strings to name an object

    Hey everyone
    I have an array of strings that are supposed to be the names of each panel in a grid, but I dont know how to use the string values to name the panels. From searching the forums almost everything refered to using a Map to do this, but I still can't grasp how to use one. Can someone help me with this?
    import java.awt.*;
    import javax.swing.border.*;
    import javax.swing.*;
    public class test
        public test()
        public JPanel grid()
             JPanel mainPanel = new JPanel(new GridLayout(10, 10));
             String [] names = new String[100];
             Border innerBorder = BorderFactory.createLineBorder(Color.black, 1);
              for (int i = 0; i < 100; i++)
                   names[i] = "Panel" + i;
              for (int r = 0; r < 100; r++)
                   String varName = names[r];
                   JPanel /*I would like the JPanel to be named what the string varName is*/justSoItCompiles = new JPanel(new GridLayout(2,1));
                   /*The JPanel above*/justSoItCompiles.setBorder(innerBorder);
                   mainPanel.add(justSoItCompiles);
              return mainPanel;
    }Thanks in advance

    You just make a Map as:
    Map<String, JPanel> panelMap = new HashMap<String, JPanel>();then add a panel as
    panelMap.add("Panel1", new JPanel());then you can do whatever with it by saying
    panelMap.get("Panel1").add(something);Make sense?

  • Using JNI to pass an array of Strings to C and back from C

    I have some C code that I want to integrate with a new Java application and I need to be able to pass an array of strings to the C program and then the C program needs to be able to build an array of strings that is passed back to the Java program. I've got the first part working so that I can pass an array of strings to the C program and display them, but I can't figure out how to build the strings in C so that that when Java gets back control, it can display the strings tha were built in the C program.
    Has anyone done this? Do you have some sample code?

    I have a program which is written in C. I can give you the whole project as it is in a zip file. You'll need VC to work with it. By the way, I am using Windows for development. Should you need it, I'll mail you the same. Give me your mail address.

Maybe you are looking for

  • Automatic TO Creation for Inventory loading

    Hi , Is there any way to create Transfer Order for a material document with 561 movement type (With and without Handling Units ) ? I believe system doesn't create any TR for intial inventory upload  , is that also correct ? Regards Sandeep

  • Automatic creation of thumbnail image in BC4J App

    I have created a BC4J application using the default wizards that displays the content of the following table: CREATE TABLE EMPLOYEE_PHOTO ( ID NUMBER (3) NOT NULL, DESCRIPTION VARCHAR2 (20), PIC ORDIMAGE, THUMB ORDIMAGE, EMPLOYEE_NAME VARCHAR2 (50))

  • Printing with comments in acrobat 9 pro

    I am having trouble when printing a pdf with my comments. The comments simply do not print. I have tried every option I could find under commenting. Help please.

  • Yet another iMovie 6 bug-Crashing!

    Why did I have to upgrade on both my drives? Buggy, buggy, buggy. Transitions don't work properly, neither do video effects and it has a tendency to crash. But, hey, great-looking box! I wish instead of coming out with all these fancy new features, t

  • Clip Art

    Is there somewhere I can go to get free clip art that is easy to download.  Needing in particular Network diagrams. bill k