on 09-30-2010 11:20 PM
Scenario- Proxy to JDBC stored procedure.
I am getting the below error in my JDBC communication channel.
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'wh06ar_H_I_Insert' (structure 'Statement'): java.lang.IllegalArgumentException
I have compared the data type defined in database as well as in PI it is same.
My structure is below:-
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:SKUMasterJDBC_Async_V01 xmlns:ns0="http://levi.com/LearningSandbox">
- <Statement>
- <StoredProcedure Action="EXECUTE">
<table>wh06ar_H_I_Insert</table>
<ACTION_ID isInput="true" type="VARCHAR">1</ACTION_ID>
<PRODUCT IsInput="true" type="VARCHAR">1234567890</PRODUCT>
<PRODUCT_SIZE isInput="true" type="VARCHAR">1234</PRODUCT_SIZE>
<DES_SKU isInput="true" type="VARCHAR">test scenario</DES_SKU>
<COD_EAN isInput="true" type="VARCHAR">12</COD_EAN>
<SKU_GROUP isInput="true" type="VARCHAR">1</SKU_GROUP>
<WAIST_LABEL isInput="true" type="VARCHAR">30</WAIST_LABEL>
<LEG_LABEL isInput="true" type="VARCHAR">12</LEG_LABEL>
<WAIST_SORT isInput="true" type="VARCHAR">30</WAIST_SORT>
<VALID_FROM isInput="true" type="DATE" />
<VALID_TO isInput="true" type="DATE">10.01.10</VALID_TO>
<PRODUCT_LINE_VARIATION isInput="true" type="VARCHAR">6</PRODUCT_LINE_VARIATION>
<CATEGORY isInput="true" type="VARCHAR">1</CATEGORY>
<COMMODITY_CODE isInput="true" type="VARCHAR">0</COMMODITY_CODE>
<COMMODITY_CODE_DES isInput="true" type="VARCHAR">test scenario</COMMODITY_CODE_DES>
<ITEM_GROUP_QUALIFIER isInput="true" type="VARCHAR">0</ITEM_GROUP_QUALIFIER>
<BRAND_CODE isInput="true" type="VARCHAR">1</BRAND_CODE>
<SEASON_CODE isInput="true" type="VARCHAR">1</SEASON_CODE>
</StoredProcedure>
</Statement>
</ns0:SKUMasterJDBC_Async_V01>
any hint..
chirag
Very Good Morning Chirag,
I am n't exactly sure about this error, But i will suggest you, You please go for this structure apart from that structure,
My meaning in the sense, your structure is also correct,below structure is also working as same.
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:SKUMasterJDBC_Async_V01 xmlns:ns0="http://levi.com/LearningSandbox">
- <Statement>
- <wh06ar_H_I_Insert Action="EXECUTE">
<ACTION_ID isInput="true" type="VARCHAR">1</ACTION_ID>
<PRODUCT IsInput="true" type="VARCHAR">1234567890</PRODUCT>
<PRODUCT_SIZE isInput="true" type="VARCHAR">1234</PRODUCT_SIZE>
<DES_SKU isInput="true" type="VARCHAR">test scenario</DES_SKU>
<COD_EAN isInput="true" type="VARCHAR">12</COD_EAN>
<SKU_GROUP isInput="true" type="VARCHAR">1</SKU_GROUP>
<WAIST_LABEL isInput="true" type="VARCHAR">30</WAIST_LABEL>
<LEG_LABEL isInput="true" type="VARCHAR">12</LEG_LABEL>
<WAIST_SORT isInput="true" type="VARCHAR">30</WAIST_SORT>
<VALID_FROM isInput="true" type="DATE" />
<VALID_TO isInput="true" type="DATE">10.01.10</VALID_TO>
<PRODUCT_LINE_VARIATION isInput="true" type="VARCHAR">6</PRODUCT_LINE_VARIATION>
<CATEGORY isInput="true" type="VARCHAR">1</CATEGORY>
<COMMODITY_CODE isInput="true" type="VARCHAR">0</COMMODITY_CODE>
<COMMODITY_CODE_DES isInput="true" type="VARCHAR">test scenario</COMMODITY_CODE_DES>
<ITEM_GROUP_QUALIFIER isInput="true" type="VARCHAR">0</ITEM_GROUP_QUALIFIER>
<BRAND_CODE isInput="true" type="VARCHAR">1</BRAND_CODE>
<SEASON_CODE isInput="true" type="VARCHAR">1</SEASON_CODE>
</wh06ar_H_I_Insert >
</Statement>
</ns0:SKUMasterJDBC_Async_V01>
Thank you
Sateesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Chirag,
Please ignore the optional "table" element while calling the stored procedure. So the syntax of the message would be:
<?xml version="1.0" encoding="UTF-8" ?>
<ns0:SKUMasterJDBC_Async_V01 xmlns:ns0="http://levi.com/LearningSandbox">
<wh06ar_H_I_Insert action="EXECUTE">
<ACTION_ID isInput="true" type="VARCHAR">1</ACTION_ID>
<PRODUCT IsInput="true" type="VARCHAR">1234567890</PRODUCT>
<PRODUCT_SIZE isInput="true" type="VARCHAR">1234</PRODUCT_SIZE>
<DES_SKU isInput="true" type="VARCHAR">test scenario</DES_SKU>
<COD_EAN isInput="true" type="VARCHAR">12</COD_EAN>
<SKU_GROUP isInput="true" type="VARCHAR">1</SKU_GROUP>
<WAIST_LABEL isInput="true" type="VARCHAR">30</WAIST_LABEL>
<LEG_LABEL isInput="true" type="VARCHAR">12</LEG_LABEL>
<WAIST_SORT isInput="true" type="VARCHAR">30</WAIST_SORT>
<VALID_FROM isInput="true" type="DATE" />
<VALID_TO isInput="true" type="DATE">10.01.10</VALID_TO>
<PRODUCT_LINE_VARIATION isInput="true" type="VARCHAR">6</PRODUCT_LINE_VARIATION>
<CATEGORY isInput="true" type="VARCHAR">1</CATEGORY>
<COMMODITY_CODE isInput="true" type="VARCHAR">0</COMMODITY_CODE>
<COMMODITY_CODE_DES isInput="true" type="VARCHAR">test scenario</COMMODITY_CODE_DES>
<ITEM_GROUP_QUALIFIER isInput="true" type="VARCHAR">0</ITEM_GROUP_QUALIFIER>
<BRAND_CODE isInput="true" type="VARCHAR">1</BRAND_CODE>
<SEASON_CODE isInput="true" type="VARCHAR">1</SEASON_CODE>
</wh06ar_H_I_Insert >
</ns0:SKUMasterJDBC_Async_V01>
here , i am assuming that the stored procedure name that you want to call is "wh06ar_H_I_Insert".
Also, the action attribute in your case is "Action". Please change it to "action" so that there is no error in parsing the message by the JDBC adapter.
Also check the VALID_FROM element as suggested by Nikhil.
I hope this helps.
Regards, Gaurav.
Edited by: Kr.gaurav on Oct 1, 2010 8:33 AM
This seems wrong to me:
> <VALID_TO isInput="true" type="DATE">10.01.10</VALID_TO>
it should be 2010-01-10
Maybe exchange date with varchar and do casting inside your stored procedure.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Chirag,
1. Have you executed the Mapping ?
2. Is there any mapping function defined for DATE ?
I see only problem at "VALID_FROM" is empty.
Regards,
Nikhil Bose
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.