JDBC Sender adapter - can VIEW be used in Query statement
Hi,
In JDBC Sender adapter, can we use a VIEW sql query in the "Query SQL Statement" placeholder?
For eg:
CREATE VIEW <view name> as SELECT * from <table name> WHERE <condition>
instead of the usual:
SELECT * from <table name> WHERE <condition>
Thanks,
Vishak
Hi
What exactly is your use of creating a view, if you are going to fetch data from different tables, then you can use the view through stored procedures.
Hope this clears your doubts
Thanks
Saiyog
Similar Messages
-
JDBC sender adapter, ...Processing parameters, Update SQL statement
in JDBC sender adapter, ...Processing parameters, there is an Update SQL statement field, can u tell me ...why this is required,,,,,and in one of the example scenario...it was given as <TEST>..
Sudheep,
In the sender JDBC adapter you have the select query to select data from the database.
Let us summer 2 cases,
1. You have <test> in the UPDATE . In this case, during every polling interval the JDBC adapter will end up selecting the same data from the Database. This would not be needed in most f the cases. Why would you want to select the same data over an over again?
2. If you have an update Statement in the Update field you can make sure that the data selected in the selected statement is updated so that the same rows are not selected again.
Take a look at this blog,
/people/yining.mao/blog/2006/09/13/tips-and-tutorial-for-sender-jdbc-adapter
Regards
Bhavesh -
JDBC sender adapter can not get any message
HI~
I have a problem with my JDBC Sender which reads data from a SQL Server. Previously it was working fine but It is not Picking the records from the JDBC table.
I have checked in RWB communication Channel monitoring there no any error or success messages but channel is showing healthy status only(Green).
User's authorization and SQL statement is all right. I checked the SQL in the DB and there are some messages that should be processed.
I also inactive and active the Comunication Channel.
I also checked the LOCKING ADAPTER in Visual Administration is nothing.
BUT the same configuration in DEV system are work perfectly.
I don't want to restart XI,because is PRD system.Hi,
1 ) What is exact audit log message ?
2) Try fetching the count in SQL statement if there are any valid records it will give the count.
May for testing you can use <TEST> in update statement.
3) Have you used taskTimeout parameter ?
4) Are multiple channels polling on same table ?
regards
Ganga -
JDBC Sender Adapter - SQL-Statement
Hi,
I'm using the JDBC-Sender-Adapter and need to use a SQL-Statement like this:
SELECT * FROM myTable WHERE myDate = <current_date>
Is such a dynamic-sql possible, or can I only use static sql-statements. And if yes how can I solve this problem.
many thxHi Werner,
inside the <b>Query SQL Statement</b> you can use <b>SQL EXECUTE</b>
which can execute a stored procedure
in which you can do
SELECT * FROM myTable WHERE myDate = <current_date>
http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions">XI FAQ - Frequently Asked Questions</a> -
Hi,
am I right in saying that the JDBC Sender Adapter can't request XI system level acknowledgements. Due to this it is necessary to establish an integrations process fed with the data from the sender adapter, sending it to the target system and receiving an acknowledgement?
Kind regards,
HeikoHi heiko,
a JDBC sender adapter cannot be configured Synchronously and so, what you are stating sounds perfect
If you want an update back to the database after execution , BPM is one way .
But, if you are looking to update some info immediately after sender adapter finishes its exectuion, then UPDATE statment can be used.
Regards,
Bhavesh -
How to update two tables in a single call using JDBC Sender adapter
Hello All,
The scenario is, database entries have to be selected from two tables and at the same time those tables have to be udpated with the flag.
We are using JDBC sender adapter and in Select Query, we are fetching the data by joinin the two tables.
Update Statemtent: We can only update one table using this statement.
Is it possible to update two tables using the Update Statement without using Stored Procedures.
Let me know.
Regards,
Sreenivas.Hi Sreenivas,
> Is it possible to update two tables using the Update Statement without using Stored Procedures.
Yes its possible through join statement
Check this links
Update in JDBC Sender adapter for more than one table
data from 2 tables for jdbc sender adapter
Regards
Ramesh -
How to use sql variables in jdbc send adapter??
Hi,
i wanna use a variable in the sql statement in the jdbc send adapter.
i know i can key sql statement in the "Query SQL Statement" in the jdbc send adapter.but i dont know how to use variables in the sql statement.
i mean, for example, the sql statement is "SELECT * FROM t_student WHERE READFLAG = 0", but now i wanna instead of "0"(the value of the READFLAG) using a variable.
and if i can use a variable to replace the "0"(the value of the READFLAG above sql statement), then how can i send a value to the variable??
request help in the regard.
thx in advance.
BrianHi,
Use the place holders to pass the data at runtime. Check the below structure for more details.
Hope this helps.
Thanks and Regards,
Kalpesh
<root>
<stmt>
<Student action="SQL_QUERY">
<access> SELECT * FROM t_student WHERE READFLAG = '$FLAG$ </access>
<key>
<FLAG>0</FLAG>
</key>
</Student>
</stmt>
</root> -
Can we proceed even if no ResultSet Returned In JDBC Sender Adapter ?
Hi friends ,
My scenario is JDBC to RFC . I am reading table using JDBC Sender Adapter and i am passing values to RFC .
If my select Query has not returned any row then it won't come to Pipeline right ?
What i want is
<b> If no rows returned then call one RFC to insert the remarks .
If rows found call another RFC to insert the values </b>
How can i handle the Situtation ?
Expecting your reply asap
Regards.,
V.RangarajanHi Rangarajan,
i answered your question and shown up a solution: If Connection Lost in JDBC or no resultset returned how to handle ?.
Double postings makes it difficult for all involved people to inform theirselfes about the point of discussion.
The polling sender adapter is doing nothing, if no rows selected. So how do want to send a message?
You have to use the JDBC receiver adapter, invoke the message by a job in ERP, for example with a self written RFC or a proxy. You can decide at ERP side, which function module it to be called. Of coz there are other possibilities, for example to put the logic into a business process, but you wont have success with the sender adapter.
Regards,
Udo -
Storedprocedure trigger using JDBC sender adapter.
Hi All,
How can i execute the storedprocedure using JDBC sender adapter. I need to trigger the storedprocedure once in every hour. so i would like to use the JDBC sender adapter. My question is what is the SQL i need use in the SQLstatement parameter..?? I don't want to send parameters and not expecting any return values. It should just trigger the procedure.
Thanks in adv.
Regards,Hi Murali,
it is possible to execute a stored porcedure using a sender JDBC adapter.
Just Specify an SQL EXECUTE statement to execute a stored procedure, which contains exactly one SELECT statement.
This will have to be done for your SELECT statement in JDBC adapter. ALso, make the UPDATE as either TEST, if you dont want any updations or give an UPDATE statement for the UPDATE query.
Set the polling interval of your JDBC adapter to 1 hour and it will work like u want.
http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
Regards,
Bhavesh -
Hi everybody
I have the following error in my JDBC to JDBC scenario; I configured the JDBC sender adapter and receive the following message back. In the Configuration I set Document Name to MT_ScanningStatus:
<?xml version="1.0" encoding="utf-8" ?>
<MT_ScanningStatus>
<row>
<ScannerNb>1</ScannerNb>
<Status>0</Status>
</row>
<row>
<ScannerNb>2</ScannerNb>
<Status>2</Status>
</row>
<row>
<ScannerNb>3</ScannerNb>
<Status>0</Status>
</row>
<row>
<ScannerNb>4</ScannerNb>
<Status>2</Status>
</row>
</MT_ScanningStatus>
I defined the corresponding datatype as follow:
DT_ScanningStatus Complex Type
row Element 1...unbounded
ScannerNb Element 1
STatus Element 1
In the following Mapping I tried to Map this structure to the Structure used to send an Update SQL Statement to the JDBC Receiver to update the same table. A normal Test in the Mapping Tool runs fine but when I enter under source the above incoming Message from the JDBC Adapter I got the following error. I think the incoming message cannot be interpreted. Can someone support me? I read the documentation for the JDBC adapter and also a lot of weblogs and discussion threads. Maybe someone knows a weblog describing more detailed the sender adapter and how to handle the incoming Message!!
Thanks in advance Oliver
14:58:03 Start of test
Compilation of MM_JDBC_to_JDBC_test successful
Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
com.sap.aii.utilxi.misc.api.BaseRuntimeException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:130)
at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68)
Root Cause:
com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)(:main:, row=1, col=8) -> com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
at com.sap.engine.lib.xml.parser.XMLParser.scanPI(XMLParser.java:2009)
at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2657)
at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2713)
at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:162)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:132)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:142)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:245)
at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:276)
at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:338)
at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:128)
at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68)
at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:144)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:128)
at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68)
Caused by: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
at com.sap.engine.lib.xml.parser.XMLParser.scanPI(XMLParser.java:2009)
at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2657)
at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2713)
at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:162)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:132)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:142)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:245)
at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:276)
at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:338)
at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
... 3 more
Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)Hi Oliver,
>>>>source the above incoming Message from the JDBC Adapter I got the following error. I think the incoming message cannot be interpreted.
do this:
in the test tab try your mapping once more
(the correct one)
then save the source xml as file
next compare this saved file with the one
you get from the jdbc sender
>>>>>Declaration not allowed here.(:main:, row:1, col:8)
and compare the first lines in those two XML files
are they the same?
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a> -
PI 7.1 JDBC sender adapter huge load from DB select
Hi,
We have the problem that the JDBC sender adapter is selecting a huge amount of data from a Oracle DB. The Adapter seems to be able to cope the load but when sending to the integration server it causes problems. We found values to adjust but I dont think increasing them is a good solution.
My question is:
Is there any way to send the data in blocks with using the PI standard JDBC adapter ?
Thank you and regards,
AndreasHi,
You can use the below parameter in JDBC sender.
Specify additional Parameter Names and Parameter Values in the table.
Due to messages of large size it may cause issue
Following are the parameters to be set in the table to limit the message size per polling:
● msgLimit :
● maxMsgSize : SAP note 1253826.
● maxRowSize : SAP note 1253826.
Additional parameters are published in SAP Note 801367.
Refer the link.
Defining Additional Parameters in Advanced mode
http://help.sap.com/saphelp_nw73/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm -
JDBC Sender adapter - Oracle - Stored Procedure - Error
Hello,
Need few clarifications on JDBC sender adapter and stored procedures when connecting to Oracle DB.
My scenario is, Oracle to SAPBW. So in sender JDBC adapter, we have used a SP having multiple SQL statements it, esp. one of the SELECT statment having Joins on a table and View.
My questions are,
1) Is it possible to have more SQL statements in SP for Sender JDBC?
2) Is the SP of Oracle DB returns resultset or cursor?
I have tried in searching the forum perticularly for connecting to Oracle as Sender and below like said that there is a limitation of XI JDBC when connecting to Oracle.
Executing an Oracle Stored Procedure from Sender JDBC adapter
So please clarify the doubts and help me.
With regards,
JilanHi Jilan,
Unlike what was mentioned in the link given by you that oracle returns cursor and not resultset is not completely true. It may be difficult but certainly not impossible.
Refer : http://www.enterprisedt.com/publications/oracle/result_set.html
regards
joel -
JDBC sender adapter outofmemory error
Dear friends,
We are getting following error on JDBC sender Adapter: Error during conversion of query result to XML: java.lang.OutOfMemoryError: Java heap space (failed to allocate 1073741848 bytes)
I have read blogs where there have been suggestions to limit the amount of data picked by using WHERE condition and not using SELECT *
In our scenario we are creating GL IDOCs . In SQL when PI picks it up it needs to get all the corresponding Header and line items together. We cannot randomly pick 1000 records at a time. The SQL table has 500,000 rows in the following format
H H H L1 L1 L1
H H H L2 L2 L2
H H H L3 L3 L3
H1 H1 H1 L1 L1 L1
H1 H1 H1 L2 L2 L2
H1 H1 H1 L3 L3 L3
Please let me know how can we solve this issue?
Thank you,
Teresa
Edited by: Teresa lytle on Sep 27, 2011 3:13 PMIf you are using oracle database, uses ROWNUM field to fetch first set of records and you can update those records with the flag as true.
similarly If you are using MS SQL database, uses SELECT TOP command to fetch first set of records and you can update those records with the flag as true.
Like File/FTP adapter, the next poll interval would be as scheduled. The Administrator can then alter the table contents, to ensure lesser no of records are picked up.
Here You need to limit the no of rows if you again face the problem. Please chec the SAP Note
https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1296819 -
JDBC Sender Adapter without polling?
Hi,
I need pick up some data from a Oracle 8.1 Database but I don't want to use a polling from a JDBC Sender Adapter. Because this impact the XI performance and we use several BPM's.
Any Ideas?Hi,
from SP19 you should be able to use
a scheduler with jdbc adapter but till then
you need to use some other solutions
maybe you can use a BPM which can be scheduled
(by any interface) and inside use receiver jdbc
adapter to do a select
or you can start the adapter manually whenever necessary....
Regards,
michal -
Hi,
Scenario: JDBC-XI-R/3
I am trying to run the JDBC sender adapter every 3 minutes based on the poll interval to select rows from Oracle db.
In the select and update statements when I use the rownum < '11' and flag condition (Y or N), then I see XI is picking up 10 rows in a two times and I see two parallel processes in SXMB_MONI.
I want XI to run only pickup 10 rows for every 3 minutes and update only 10 rows in Oracle to "N" from "Y".
When I take out the rownum condition from update I do not see this issue.
<u>Update statement:</u>
Update <TABLE> set status_flag = 'N' WHERE status_flag = 'Y' and rownum < '11'.
Can some body point me in the right direction ?
Thanks
SteveHi there,
See if this works. Though I never came across such a scenario, I can think what to be done in this case.
Create a staging table as same structure as from where our JDBC adapter is picking up the data currently.
Whrite a tigger(after delete) on staging table to call a stored procedure.
stored procedure will select the data from source table and insert them in to staging table (rownum<11) as well as update the flag column in source table.
Now load the staging table initially from source table with only 10 rows (one time process). Configure your JDBC adapter on staging table. In update sqlquery field of JDBC adapter write delete statement for all the data from staging table to be purged, as there will not be more than 10 rows at any time and after each time the adapter supplied Delete statement will purge the data so you dont have to worry about selecting 10 rows or updating 10 rows from JDBC adapter. As every time the trigger after delete statement will fire and load only 10 rows from source marking those 10 rows as read_already status.
NOTE: for Calling stored procedure from trigger follow your database SQL reference documentation.
Thanks.
-Nilkanth.
Maybe you are looking for
-
How to merge pages within the same document?
Can I merge pages within the same pdf document? I have two large maps, an east and west, can I put the two pages together to make one map?
-
Send email/notification when server shutting down?
Is it possible to send out a notification via e-mail (or maybe even text) to all the users listed in the user accounts when the server is shutting down? We have been experiencing some severe weather here and I need to shut the server down on occasion
-
Is the OnPlus interface supposed to save when a view is customized? Please see this thread. https://supportforums.cisco.com/message/3925799#3925799 I thought I had this issue resolved but it appears that after a certain period of time not being logge
-
I AM NOT AN EXPERT. I AM MAKING ASSUMPTIONS. My issue, tech spec's and assumptions are listed below. MY ISSUE: My Rocketfish headphones work perfectly with my iMac but not with my Macbook Pro Retina. The Macbook Pro does recognize the device but wh
-
Has anyone received an error code of -3212 when trying to access the Itunes Store?
Has anyone received an error code of -3212 when trying to access the Itunes Store?