cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with JDBC results calling simple stored procedure in VC 7.0

former_member194198
Active Participant
0 Kudos

Hi all,

I am building a simple VC model which calls a stored procedure on a JDBC database. I have created the system in the portal, defined the alias and user mapping, the connection test is fine and the VC "find data" lists my bespoke stored procedure.

The stored procedure is :

CREATE PROCEDURE dbo.dt_getBieUsers

AS

select * from dbo.emailuserlink

GO

When I test it using query analyser, it returns 3 records each with the two fields I expect - user and email address.

I drag the model onto the workspace in VC and create an input form ( with just a submit button ). i drag the result port out to create a table. This has no fields in it.

I build and deploy as flex and the app runs, I click the submit button and SUCCESS! I get 3 records in my table each with 2 fields. The data is all correct. The problem with this is the fields are determined at runtime it seems.

I go back to the table and add 2 columns "email" and "address".

i build and deploy and run the app. Again I get 3 records, but this time the contents of all of the rows is not data, but "email" and "address". The data has been replaced by the header texts in all of the rows.

Can anyone help? Why isn't the data being put in my columns as I would expect?

I tried to build and deploy the app as Web Dynpro rather than Flex to see if it was a bug in Flex. The application starts but when I click the submit button to run the JDBC stored procedure I get a 500 Internal Server Error

com.sap.tc.wd4vc.intapi.info.exception.WD4VCRuntimeException: No configuration is defined for the entry JDBCFunction

at com.sap.tc.wd4vc.xglengine.XGLEngine.createComponentInternal(XGLEngine.java:559)

at com.sap.tc.wd4vc.xglengine.XGLEngine.getCompInstanceFromUsage(XGLEngine.java:362)

at com.sap.tc.wd4vc.xglengine.XGLEngine.getCompInstance(XGLEngine.java:329)

at com.sap.tc.wd4vc.xglengine.wdp.InternalXGLEngine.getCompInstance(InternalXGLEngine.java:167)

at com.sap.tc.wd4vc.xglengine.XGLEngineInterface.getCompInstance(XGLEngineInterface.java:165)

The JDBC connection I am using has a connection URL of jdbc:sap:sqlserver://localhost;DatabaseName=BIEUSERS

and a driver class of com.sap.portals.jdbc.sqlserver.SQLServerDriver

Can anyone solve my wierd problems?

Cheers

Richard

Accepted Solutions (1)

Accepted Solutions (1)

former_member203343
Contributor
0 Kudos

Hi Richard,

After you drag and drop the data service, right click on it and choose "Test data service". Then click on "Execute" and after you see the result on the right, click on "Add fields" button (inside the same window). Now you'll see that the fields are on the tabel. This is required only for JDBC data services, since this data (how the resultset is built) is not know in DT and it needs to be run firest - then analysed and only then you have to add the fields to the table).

Regards,

Natty

Answers (1)

Answers (1)

former_member194198
Active Participant
0 Kudos

Hi Natty,

Thanks for the tip. I've clicked the "Add Fields" button and the table now has the 2 fields in it. I can now map these to other forms etc.

Cheers

Richard