cancel
Showing results for 
Search instead for 
Did you mean: 

What is the key column name and value column name in JDBC Adapter parameter

Former Member
0 Kudos

Hi

Can any one please tell me what is the Key Column Name and Key Column Value in JDBC adatper parameters. If i dont mention those parameters i am getting the following error

<b> Value missing for mandatory configuration attribute tableEOColumnNameId</b>

Please help me

Best Regards

Ravi Shankar B

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi

Thanks for ur help.... I have resolved that error. Now i am getting the following error when i am testing the mapping

<b>Cannot produce target element /ns0:Dest_JDBC_MT/Phone. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd Cannot produce target element /ns0:Dest_JDBC_MT/Phone. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd</b>

Can any one tell me why i am getting this error

Please help me

Best Regards

Ravi Shankar B

Former Member
0 Kudos

This error is due to incorrect mapping.

Make sure that :-

1. All the mandatory fields are mapped

2. The data for each target field is and correct types( string, number ,date)

Bipin

Former Member
0 Kudos

Hi

Can any one tell me is there any wrong with my mapping

Source Data Type ....... UserName ... String.. 1..1 Occurence

Target Data Type ........ Phone............String.. 1..1 Occurence

The following code i have written in user defined function (DBProcessing_SpecialAPI)

   //write your code here
 String query = " ";
Channel channel = null;
DataBaseAccessor accessor = null;
DataBaseResult resultSet = null;

query = "select Phone from CheckUser where UserName = ' " +UserName[0]+ " '  ";
try {
	channel = LookupService.getChannel("ILG_Business_System","CC_JDBC");
	accessor = LookupService.getDataBaseAccessor(channel);
	resultSet = accessor.execute(query);
	for(Iterator rows = resultSet.getRows();rows.hasNext();){
		Map  rowMap = (Map)rows.next();
		result.addValue((String)rowMap.get("Phone"));
	}
}
catch(Exception e){
	result.addValue(e.getMessage());
}
finally{
	try{
		if(accessor != null)
			accessor.close();
	}catch(Exception e){
		result.addValue(e.getMessage());
	}
}

Now i have mapped source and target like this

<b>UserName -


> DBProcessing_SpecialAPI----


>Phone</b>

Can any one please tell me is there any worng with my mapping...becoz when i am executing this mapping i am getting the following error

<i><b>Compilation of JDBC_Message_Map successful Cannot produce target element /ns0:Dest_JDBC_MT/Phone. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd Cannot produce target element /ns0:Dest_JDBC_MT/Phone. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd</b></i>

Best Regards

Ravi Shankar B

prabhu_s2
Active Contributor
0 Kudos

try changing the occurence of the target node from 1..1 to 0..unbounded and test the mapping

Answers (2)

Answers (2)

prabhu_s2
Active Contributor
0 Kudos

<b>Key Column Name and Key Column Value in JDBC adatper parameters</b>

<i>Key Column Name</i> represent the keyfield of a table. Even based on the keyfield value you can perform an action in a table and it is represnted by the <i>Key Column Value</i>

Former Member
0 Kudos

Hi

I have one table CheckUser in SQL Server which have two fields one is UserName and one is PhoneNumber.. My Senario is just to get the phone number using user name field.. i dont have any Primary Keys.......

Are Key Column Name and Value Column Name are Mandatory.........

I have given the JDBC Adapter Parameter like this

Persistence : Database

Database Table Name : CheckUser

Key Column Name and Value Colum Name i left blank.....

But in RWB JDBC adapter showing the following error

<i><b>Value missing for mandatory configuration attribute tableEOColumnNameId</b></i>

Best Regards

Ravi Shankar B

prabhu_s2
Active Contributor
0 Kudos

Okie then make sure that the structure is as per the XI stds. In this case you can have only the Key Column Name i.e. field <b>username</b>. This is enough to retry the phone number.

Message was edited by:

Prabhu S

Former Member
0 Kudos

HI

Then what is the value column Name

Best Regards

Ravi Shankar B

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

What is the ACTION you have created in your JDBC message?

is it either , UPDATE or DELETE? If yes, did you mentioned the KEY Feilds?

Regards

Bhavesh

Former Member
0 Kudos

HI

Sorry i didnt get what ur saying............Please

Can u clearly tell me what do u mean by "Action Created in JDBC Message"

Whrer we need to give UPDATE and DELETE?

Best Regrads

Ravi Shankar B

prabhu_s2
Active Contributor
0 Kudos

hi ravi

pls follow the link <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm">Configuring the Receiver JDBC Adapter</a>

Thkx

Prabhu

bhavesh_kantilal
Active Contributor
0 Kudos

Okie, let me put my question in other words

1. What are you trying to do to your database. Are you trying to insert data, update data m, delete data?

2. Can you also post the target datatype you hafve created for the JDBC , the output of your mapping program that goes as the input to your JDBC adapter?

Regards

Bhavesh

Former Member
0 Kudos

Hi

I am doing DataBase Lookup in XI

First i have created a Table in Database( CheckUser) which has two fields UserName and PhoneNumber and then i have created

I have created one Communication Channel For Reciever Adapter .

I have given the parameters like this

JDBC Driver : com.microsoft.jdbc.sqlserver.SQLServerDriver

Connection : jdbc:microsoft:sqlserver://10.7.1.43:1433;DatabaseName=Ravi;

UserName.... sa

password.... sa

persistence : Database

Database Table Name : CheckUser

Key column name and Value column name i left blank and activated

and then

I have created

Data Types : Source ...... UserName

Destination.... PhoneNumber

Message Types

Message Interfaces

In Message Mapping

I have created one User Defined function DBProcessing_SpecialAPI().This method will get the data from the database....

In this function i have written the following code

   //write your code here
 String query = " ";
Channel channel = null;
DataBaseAccessor accessor = null;
DataBaseResult resultSet = null;

query = "select Password from CheckUser where UserName = ' " +UserName[0]+ " '  ";
try {
	channel = LookupService.getChannel("Ravi","CC_JDBC");
	accessor = LookupService.getDataBaseAccessor(channel);
	resultSet = accessor.execute(query);
	for(Iterator rows = resultSet.getRows();rows.hasNext();){
		Map  rowMap = (Map)rows.next();
		result.addValue((String)rowMap.get("Password"));
	}
}
catch(Exception e){
	result.addValue(e.getMessage());
}
finally{
	try{
		if(accessor != null)
			accessor.close();
	}catch(Exception e){
		result.addValue(e.getMessage());
	}
}

And the i have mapped like this

UserName -


> DBProcessing_SpecialAPI----


>PhoneNumber

when i am testing this mapping i am getting the following error

<?xml version="1.0" encoding="UTF-8"?>

<ns0:Dest_JDBC_MT xmlns:ns0="http://filetofilescenario.com/ilg"><phoneNumber>Plain exception:Problem when calling an adapter by using communication channel CC_JDBC (Party: , Service: Ravi, Object ID: c360bc139a403293afbc49d5c46e4478) Check whether the communication channel exists in the Integration Directory; also check the cache notifications for the instance Integration Server (central Adapter-Engine) Channel object with Id Channel:c360bc139a403293afbc49d5c46e4478 not available in CPA Cache.

com.sap.aii.mapping.lookup.LookupException: Problem when calling an adapter by using communication channel CC_JDBC (Party: , Service: Ravi, Object ID: c360bc139a403293afbc49d5c46e4478) Check whether the communication channel exists in the Integration Directory; also check the cache notifications for the instance Integration Server (central Adapter-Engine) Channel object with Id Channel:c360bc139a403293afbc49d5c46e4478 not available in CPA Cache.

at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.<init>(AdapterProxyLocal.java:61)

at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:98)

at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:38)

at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:270)

at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:70)

at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)

at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)

at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

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: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:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

</phoneNumber></ns0:Dest_JDBC_MT>

In RWB i have checked the status of JDBC driver its showing the following error

<b>Value missing for mandatory configuration attribute tableEOColumnNameId</b>

Best Regards

Ravi Shankar B

Message was edited by:

RaviShankar B

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

if only you had given all this detail earlier.

<i>persistence : Database

Database Table Name : CheckUser

Key column name and Value column name i left blank and activated</i>

<b>Persistence should be --> Local

Conflict resolution should be --> Redor</b>

The moment you make persistence Local, the KeyCoumnName and Calue will not be neded.

Regards

Bhavesh

Former Member
0 Kudos

Hi,

Uncheck the check box of Key Column name and Value Column name in the JDBC receiver adapter configuration.

You can go through this help document to know more about Key values:

<a href="http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm">Receiver JDBC adapter</a>

JE

Former Member
0 Kudos

Hi

When i am testing the message mapping still i am getting the following error

<b><?xml version="1.0" encoding="UTF-8"?>

<ns0:Dest_JDBC_MT xmlns:ns0="http://filetofilescenario.com/ilg"><phoneNumber>Plain exception:Problem when calling an adapter by using communication channel CC_JDBC (Party: , Service: Ravi, Object ID: c360bc139a403293afbc49d5c46e4478) Check whether the communication channel exists in the Integration Directory; also check the cache notifications for the instance Integration Server (central Adapter-Engine) Channel object with Id Channel:c360bc139a403293afbc49d5c46e4478 not available in CPA Cache.

com.sap.aii.mapping.lookup.LookupException: Problem when calling an adapter by using communication channel CC_JDBC (Party: , Service: Ravi, Object ID: c360bc139a403293afbc49d5c46e4478) Check whether the communication channel exists in the Integration Directory; also check the cache notifications for the instance Integration Server (central Adapter-Engine) Channel object with Id Channel:c360bc139a403293afbc49d5c46e4478 not available in CPA Cache.

at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.&lt;init&gt;(AdapterProxyLocal.java:61)

at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:98)

at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.&lt;init&gt;(SystemAccessorInternal.java:38)

at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:270)

at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:70)

at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)

at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)

at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)

at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

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: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:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

</phoneNumber></ns0:Dest_JDBC_MT></b>

bhavesh_kantilal
Active Contributor
0 Kudos

Well, the error now has changed and if you read through it,

<i>Check whether the communication channel exists in the Integration Directory</i>

Please check if you have given the correct Service name and the Communication channel nane in the JDBC look up code, You should have missed or given some extra space or something of that sort.

Make sure that the JDBC adapter is activated.

Regards

Bhavesh

Former Member
0 Kudos

Hi

Yes i have given

Persistence -


Local

Conflict Resolution -


Redor....

But still i am getting the same error.....

Can any one explain one more thing....

what is the difference between persitence LOCAL and DATABASE

and REDO and ERROR.....

I have gone through sap help but i didnt understand that..... can any one explain it please

Best Regards

Ravi Shankar B

Former Member
0 Kudos

Hi

Yes i have given

Persistence -


Local

Conflict Resolution -


Redor....

But still i am getting the same error.....

Can any one explain one more thing....

what is the difference between persitence LOCAL and DATABASE

and REDO and ERROR.....

I have gone through sap help but i didnt understand that..... can any one explain it please

Best Regards

Ravi Shankar B

bhavesh_kantilal
Active Contributor
0 Kudos

Ravishankar,

1. What is the current issue that you are facing? Is database lookuop working fine?

2. If the DB lookup issue is solved, close the thread and open a new thread as that way more people are going to be looking into your problem and can provisde you solutions as to understand your problem in this thread is going to take a lot of time and patience in this thread.

Regards

Bhavesh

Former Member
0 Kudos

Hi ,

Read "Exactly once Handling section" in this link..

http://help.sap.com/saphelp_nw2004s/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm

Sekhar