RFC XI JDBC to external database.... Get data in multiple rows
Hi,
We have been really struggling with this scenario. We have created a RFC that has 1 Import parameter (Order_ID) and table parameter (3 Columns: Order_ID, Partner_type, Partner_no).
When we call this RFC in SAP, it should make a connection to external database via JDBC and get multiple row data for every Order_ID. We are not using Oracle Stored Procedure, instead we are using simple Select statement. Did all the mapping and configured correctly. However, we are getting short-dump when we execute RFC. When we checked in XI, it says " Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at "
Has anyone tried getting multiple row information from external database(Oracle) using Select statement in XI ? IF so, can you pl let us know if we need to something different in Mapping ?
Niranjan
Niranjan,
Check this blog of mine to see how the datatype for Synchronous Select should be constructed,
https://weblogs.sdn.sap.com/pub/wlg/3928. [original link is broken] [original link is broken] [original link is broken] [original link is broken]
If this looks good, a few checks
1. Check the request inbound payload , i.e the RFC request in MONI. Is this as expected?
2. Check the output of the request mapping and check if this is as expected.
3. Check the response from JDBC, is this as per the datatype defined.
4. Check the mapping from JDBC response to RFC response.
To me this looks like an issue with the JDBC response structure.
Meanwhile to understand how to test mapping, check blog of michal,
/people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios
Regards
Bhavesh
Similar Messages
-
Jdbc getting data from multiple tables
hi guys
how can i get data from multiple tables in MSAccess
please help>
here is code thata i want to do
i have 3 tables in my MSAccess databace
Stud_O which consist name,surname fields
Stud_I consist address,tel
Stud_E department,faculty fields
Based on this I would guess that you are missing a key field. There is no way to connect the tables.
I make the class to insert data to the tables. But
cant do getting datas from this tables.
can anybody help me in making query
and method that displays reultset strings to the
textBoxes
A select ...
select name,surname from Stud_O. Use the executeQuery() method. -
Fastest way to get data from Multiple lists across multiple site collections
HI
I need to get data from multiple lists which spread across 20 site collections and need to show it as list view.
I have searched on internet about this and got some info like options would be to use search core APIs or BCS . I can't use search because I want real time data. Not sure of any other ways.
if anybody can provide ideas it would be help.Might LINQ be an option for you? Using
LINQPad and the
SharePoint Connector, you should be able to write a query that'll retrieve this data, from which you can tabulate it. I'm not sure how you'd be able to automate this any further so that it's then imported in as list.
For something more specific, I used a third party tool called the
Lightning Tools Lightning Conductor, which is essence a powerful content roll-up tool. In one of my solutions, I created a calculated column that gave an order / ranking on each item, so that when lists were combined, they'd still have some form of
order. The web part is also fairly customisable and has always proven a useful tool.
Hope that helps.
Steven Andrews
SharePoint Business Analyst: LiveNation Entertainment
Blog: baron72.wordpress.com
Twitter: Follow @backpackerd00d
My Wiki Articles:
CodePlex Corner Series
Please remember to mark your question as "answered" if this solves (or helps) your problem. -
Splitting comma seperated column data into multiple rows
Hi Gurus,
Please help me for solving below scenario. I have multiple value in single column with comma seperated values and my requirement is load that data into multiple rows.
Below is the example:
Source Data:
Product Size Stock
ABC X,XL,XXL,M,L,S 1,2,3,4,5,6
Target Data:
Product Size Stock
ABC X 1
ABC XL 2
ABC XXL 3
ABC M 4
ABC L 5
ABC S 6
Which transformation we need to use for getting this output?
Thanks in advance !Hello,
Do you need to do this tranformation through OWB mapping only? And can you please tell what type of source you are using? Is it a flat file or a table?
Thanks -
Procedure to insert data in multiple rows
Hi,
I need a stored procedure which inserts data into multiple rows..
Ex: I need to have 3 columns in Procedure, where col3 has limit in size let's say 500.
If user insert about 1500 in col3, i has to insert first 500 in row1 and 501 - 1000 in row 2 and 1001 - 1500 in row 3.
Can any one help in creating procedure for above scenario.
Thanks in Advance...
Sreecreate table #t (id int, id1 int)
WITH [1-20]
AS
SELECT row_number() over (order by number) rn,number
FROM master..spt_values
WHERE type = 'P'
AND number BETWEEN 1 AND 20
[21-30]
AS
SELECT row_number() over (order by number) rn,number
FROM master..spt_values
WHERE type = 'P'
AND number BETWEEN 21 AND 30
) INSERT INTO #t
SELECT A.number,B.number FROM
[1-20] A JOIN [21-30] B ON A.rn=B.rn
SELECT * FROM #t
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
BPM getting data from multiple JDBC databases
Hi - a 'high level' question...
I have a scenario where the first step in my bpm is a receive step which will be a JDBC send adapter/comm channel to a particular database. The rows returned will have a key field called "ID". For each of these rows, I need to go to a completely different JDBC database to gather more data based on this key "ID".
Not sure how to go about this, but this is my best guess
1) receive step, asynchronous which will be used by the jdbc send adapter
2) create a block, mode ForEach referring to the messages returned in the initial receive step. In this block there will be:
3)THIS IS THE PART I'M CONFUSED ON - do i need a synchronous send step, with the request message being the message from the initial receive and a response message being the message from the JDBC recieve adapter? How does the "ID" get passed in to select the proper record? How is a SQL created to get the proper record from the second database?
4 etc) After that, it would be a straight forward transform and send to the target system...which i'm ok with.
Again, my confusion is how the key field is somehow passed to the second JDBC call.
any assistance or clarification would be greatly appreciated! thanks /daveHI,
<i>For each of these rows, I need to go to a completely different JDBC database to gather more data based on this key "ID"</i>
>>>To gather more data, means you are going to select the data for each key ID. Then this data you need to send to target system right ? If so, you need to have Synchronous Send from BPM.
Your BPM steps will be like this
1) Receive the message from Database(JDBC sender)
2) Block with Foreach
3) Send the data Synchrnously to the other database with the help of Reciever JDBC adapter
4) Receive the Response, and Send this Asynchrnoulsy to the Target System.
DO you need Foreach loop here , i am just thinking ? You can pass multplr Key Values to the JDBC Receiver structure and get the Response at a time.
For more on JDBC Sync-
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
Regards,
Moorthy -
RFC to JDBC Sync Scenario and get JDBC response
Hi All,
We need to create RFC to JDBC synchronous interface with update_insert action.
And we need to get the number of records updated or inserted as response and map the response and send it back to ECC as RFC response mesg.
I have gone through the help document on JDBC and it says :
The response document has the following format; one of the two values is always 0 because either an UPDATE or an INSERT action is always executed:
<update_count>count</update_count>
<insert_count>count</insert_count>
Now following is the question: Is this this the standard feature? Because in our case Database side they will not be sending any response back.
So with the synchronous receiver JDBC channel would we get this update and insert count as response by default?.
Please help with replies.
Thanks,
JaneHi Jane
No setting needs to be done by the Database team, it is a standard feature.
Whenever you insert or update records in DB using the JDBC Adapter, you will get the response with the count.
If insertion fails due to some reason in JDBC Adapter, then there will be no response.
Regards
Osman -
Cannot get data of the row from OLE DB provider "OraOLEDB.Oracle" for linked server
I have created a stored procedure in SQL Server for a report that uses parameters. In the report I am linking an Oracle table. I use a subquery like this to query the Oracle table: (select * from openquery(oracle_linked_server, 'select
partno, description from oracletable')). If I run the subquery it works fine every time. The linked server uses an oracle account which has access to the oracle table. When I first created the Stored Procedure it worked fine for me. When
I test the report, it worked fine. Then I asked another user to test it and it broke with the below error message.
OLE DB provider "OraOLEDB.Oracle" for linked server "XXXX_ORACLE" returned message "ORA-01403: no data found".
Msg 7346, Level 16, State 2, Procedure usp_report_XXXXXX, Line 15
Cannot get the data of the row from the OLE DB provider "OraOLEDB.Oracle" for linked server "XXXX_ORACLE".
Now when I try the report or the stored procedure, I get the same error. I tested the oracle subquery in the stored procedure and it still works. The report uses a service account to execute the stored procedure.
I am using SQL Server 2012 Developer Edition 64 bit (11.0.5058) Management Studio to develop the stored procedure. The SQL Server I am accessing and running the stored procedure is SQL Server 2008R2 Developer Edition 64bit (10.50.2550). The user
that tested the report for me has SQL Server 2008R2 but that shouldn't matter since he is running the report in Internet Explorer.
What is changing that it works for a while and then stops?
Fred
Fred SchmidI found the answer. It was in the query. I put the TRIM statement on the part# field in the Oracle subquery and took the LTRIM function out of the ON clause that joined my SQL Server table with the Oracle linked server table. Now everything
works. The query looks like this:
SQL_Server_Table sst
LEFT OUTER JOIN
(SELECT * FROM OPENQUERY(OracleLinkedServer, 'SELECT TRIM(partNo) AS partNo, partDesc FROM OracleTable')) ols
ON sst.partNo = ols.partNo
Thanks for pointing me in the right direction.
Fred Schmid -
How to manipulate data in multiple rows without using cursor??
Hi all,
I have a form in which there is a push button & 4 text fields.
Push button : Process
Text fields: Year, Month, Financial_To_Year, Financial_From_Date.
In database , there are tables like, CUSTOMER_MASTER, FD_ACCOUNT_MASTER, FD_ACCOUNT_DTL, CUSTOMER_YEARLY_INTEREST, etc.
In table FD_ACCOUNT_MASTER, there are columns, like CUST_CODE, FD_ACCT_NO, FD_AMOUNT, ACCT_OPEN_DT, ACCT_CLOSE_DATE, ACCT_TYPE, INTEREST_RATE, etc.
There are thousands of records in the table.
For Push button : Process , TRIGGER: When button pressed,
I have to do all the process of FD for all the FD_ACCOUNTS at once. Process means i have to calculate Interest for all the accounts, calculate interest monthly, quarterly, yearly and make the FD_Accounts disable after the date of ACCT_CLOSE_DATE is reached, make the accounts renewed , etc all the process.
But to do this process for multiple rows at once, we use cursor, but i don't want to use cursor as i feel its too tedious to do.
Is there any other way , where i do process of multiple records at once without using cursor??
Help me, Thank You.
Oracle Forms Builder 6i.
Oracle9i Enterprise Edition Release 9.2.0.1.0 - ProductionAn Update statement certainly can update sets of data instead single row updates:
UPDATE Statement
if you can't do it in a single statement you can use bulk processing as well:
PLSQL 101
cheers -
Spry:repeat display data in multiple rows/columns
I know how to use spry:repeat to display data in table rows,
one item per row.
Is there a way to tell spry to display data in a grid of x
rows by y columns?
I'm trying to maximize the page's real estate. Here is the
page
http://www.jannah.com/mp3/browse.html
Click on "Artist/Scholar" in "STEP1" section. "STEP2" section
gets filled with a list. I'm trying to display that list in 3
columns and as many rows as needed. How do I do that?
While I'm at it, I also can't figure out why the spry:select
is not working for "STEP2" section; I need to click twice on the
same item to get it highlighted. the other spry selects on the page
work ok. Can someone take a look.
Greatly appreciated.You can't use Spry with tables to do this, but if you're up
to using a div based layout/presentation, it is possible. Check out
the Zuggest sample:
http://labs.adobe.com/technologies/spry/samples/data_region/ZuggestSample.html
It uses floated divs to get the same effect. The nice thing
about using divs, is that more columns dynamically appear as the
horizontal real-estate is expanded.
--== Kin ==-- -
DB get step: managing multiple row returned from a table
Hi,
please can someone tell me if it is possible to manage multiple row when returned in a db get step?
For example, I execute a SELECT in db read step to read an SQL table which returns two rows. From each row I get two string variables, let's say: "Var1", "Var2".
Assigning them to local variables, I am able to assign just the 2 variables of the first row, not the variables of the second row.
I tried to use array as local variables with not success, how can I do?
Thanksmmaddalena,
You have two options, you can pre populate, or work row by row.
Prepopulate:
String[] Var1
int row
DBGet Loop:
DBGet
Successful:
save to Var1[row]
increment row
Goto DBGet Loop
No data:
/* this is the last row */
Goto After DB Get Loop
After DB Get Loop:
/* do whatever with the data */
Conversely:
Row by row:
String Var 1
int row
DBGet Loop:
DBGet
Successful:
/* do whatever with the data */
Increment row
Goto DBGet Loop
No data:
/* no more data (last row) */
Goto After DB Get Loop
After DB Get Loop:
/* do whatever after your done with the data */ -
Collecting data from multiple rows into one column
I'd like to run a query and put a collection of items into one output column instead of multiple rows. See the example below:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Prod
PL/SQL Release 10.2.0.5.0 - Production
"CORE 10.2.0.5.0 Production"
TNS for 32-bit Windows: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production
CREATE TABLE "SKIP"."INGREDIENTS"
( "INGRED_ID" NUMBER,
"INGRED_NAME" VARCHAR2(20 BYTE),
"STORES" VARCHAR2(20 BYTE)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ;
REM INSERTING into SKIP.INGREDIENTS
Insert into SKIP.INGREDIENTS (INGRED_ID,INGRED_NAME,STORES) values (1,'SEA SALT','Food lion');
Insert into SKIP.INGREDIENTS (INGRED_ID,INGRED_NAME,STORES) values (2,'TABLE SALT','Food lion');
Insert into SKIP.INGREDIENTS (INGRED_ID,INGRED_NAME,STORES) values (3,'FLOUR','Piggly Wiggly');
Insert into SKIP.INGREDIENTS (INGRED_ID,INGRED_NAME,STORES) values (4,'YEAST',null);
Insert into SKIP.INGREDIENTS (INGRED_ID,INGRED_NAME,STORES) values (5,'BEER','ABC Store');
CREATE TABLE "SKIP"."PRETZELS"
( "PRETZEL_ID" NUMBER,
"PRETZEL_NAME" VARCHAR2(20 BYTE),
"PRETZEL_DESC" VARCHAR2(100 BYTE)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ;
REM INSERTING into SKIP.PRETZELS
Insert into SKIP.PRETZELS (PRETZEL_ID,PRETZEL_NAME,PRETZEL_DESC) values (1,'CLASSIC','Classic knot pretzel');
Insert into SKIP.PRETZELS (PRETZEL_ID,PRETZEL_NAME,PRETZEL_DESC) values (2,'THICK STICK','Straight pretzel, abt 1/2" in dia');
CREATE TABLE "SKIP"."INGRED_XREF"
( "PRETZEL_ID" NUMBER,
"INGRED_ID" NUMBER
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ;
REM INSERTING into SKIP.INGRED_XREF
Insert into SKIP.INGRED_XREF (PRETZEL_ID,INGRED_ID) values (1,1);
Insert into SKIP.INGRED_XREF (PRETZEL_ID,INGRED_ID) values (1,2);
Insert into SKIP.INGRED_XREF (PRETZEL_ID,INGRED_ID) values (1,4);
Insert into SKIP.INGRED_XREF (PRETZEL_ID,INGRED_ID) values (2,2);
Insert into SKIP.INGRED_XREF (PRETZEL_ID,INGRED_ID) values (2,3);
Insert into SKIP.INGRED_XREF (PRETZEL_ID,INGRED_ID) values (2,5);
-- Constraints for Table INGRED_XREF
ALTER TABLE "SKIP"."INGRED_XREF" MODIFY ("PRETZEL_ID" NOT NULL ENABLE);
ALTER TABLE "SKIP"."INGRED_XREF" MODIFY ("INGRED_ID" NOT NULL ENABLE);
{code}
Desired output (note how the ingredients are all listed in one column, separated by commas):
{code}
PRETZEL_ID PRETZEL_NAME PRETZEL_DESC INGREDIENTS
1 CLASSIC Classic knot pretzel SEA SALT, TABLE SALT, YEAST
2 THICK STICK Straight pretzel, abt 1/2" in dia TABLE_SALT, FLOUR, BEERSee the FAQ : {message:id=9360005}
Especially links concerning string aggregation. -
Calculated fields based on data in multiple rows
Hi,
I am using SOA Suite 11.1.1.4 for BAM.
Can someone please help explain to me if and how we can use calculated fields in BAM data objects where the calculations are not only based on the data for that row, but on multiple rows ?
Like for example, this case can easily be constructed -->
TestDataObject Layout
Column1 integer
Column2 integer
Column3 calculated = Column1 + Column2
But if I want to create something like this -->
TestDataObject Layout
Column1 integer
Column2 integer
Column3 calculated = max(Column1) + avg(Column2)
Is it possible to do the above ?
Is it possible to check multiple rows of the other columns while calculating a value ?
Thanks & Regards,
Karan.
Edited by: user8890668 on Mar 9, 2011 3:58 AMHi, Karan.
Do you know you can do that in reports with calculated fields?
I guess it is not possible using calculating functions offered in data objects to do that.
If you, or anybody, discover how do that, please tell us. I would like to know that.
Luciano Gomes
user8890668 wrote:
Hi,
I am using SOA Suite 11.1.1.4 for BAM.
Can someone please help explain to me if and how we can use calculated fields in BAM data objects where the calculations are not only based on the data for that row, but on multiple rows ?
Like for example, this case can easily be constructed -->
TestDataObject Layout
Column1 integer
Column2 integer
Column3 calculated = Column1 + Column2
But if I want to create something like this -->
TestDataObject Layout
Column1 integer
Column2 integer
Column3 calculated = max(Column1) + avg(Column2)
Is it possible to do the above ?
Is it possible to check multiple rows of the other columns while calculating a value ?
Thanks & Regards,
Karan.
Edited by: user8890668 on Mar 9, 2011 3:58 AM -
Custom database functoid to return multiple rows from database
Hi,
I have created a custom database fucntoid to execute a stored procedure which returns just single row from the database.But I could not manage to return multiple rows from the database.
Does anyone know how to return multiple rows from DB and create a node with that many occurrences in the target schema?
Thanks
JBIf you want to do this in messaging-only way without orchestration, then only option let to you is using .NET in BizTalk:
We had similar requirement with one of our clients, where they didn’t want to use orchestration (though we emphasised on less impact orch would have compared to manageability),
they still wanted to have pure-messaging only.
We extended the custom XslTransform component that ships with BizTalk SDK (<BizTalk installation directory>\SDK\Samples\Pipelines\XslTransformComponent)).
Created a custom disassembler pipeline component, used the XslTransform component from SDK to execute the map’s XSLT. Here we created a map with every links except the database ones. After executing the map, access the database, execute the store procedure
which returns more than one row/dataset, enrich the XSLT transformed message with the dataset from your database in disassembler.
Since .NET gives you the flexibility of access the dataset with more than one row, you can enrich the message in custom pipeline code.
Other option is code the message transformation completely in .NET code in custom disassembler by passing the received message to method/code which would code the map/enrichment.
While enriching you can execute the store procedure which returns more than one row/dataset, enrich the message further with the dataset from db.
If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply. -
Need to get data from multiple database instances in a single query
Hi,
I need a small favour from you guys. The prob is as follows:
I need to get name, row_id from table A from schema 1 and gbu_name, name from table B from schema 2 where a.name = b.name. I wrote the query in the following manner:
SELECT a.name, a.row_id, b.gbu_name
FROM Schema1.A as a, Schema2.B as b
Where a.name = b.name
But this query is not working and the error is like " The table does not exists".
Please update me how to avoid the error and get the right sort of result.
Thanks & Regards,
DebabrataAh, youre actually asking different things.
In your topic title, you say youre running separate instances
In your body text, you say you are under different user/schema
So tell me, do you have more than one database or not? How many entries in your TNS file?
I would say, for "multiple database instances"
SELECT
a.id, b.id
FROM
tableA a
INNER JOIN
tableB@OTHER_DATABASE_LINK_NAME b <--NOTE!
USING(id)And of course you will have to look up CREATE PUBLIC DATABASE LINK sql..
Message was edited by:
charred
Maybe you are looking for
-
How to load a html page in a div?
I appreciate any suggestions. Tks
-
GL A/C no Validation for ME21N
I am using user exit to validate fields in PO's. Enhacement "MM06E005" with FM "EXIT_SAPMM06E_017". I am not ble to find the GL Account no. Field in FM to validate. Kindly help me to validate the GL A/C no. for PO.. Thanks
-
I recently purchased a retail version of Leopard. I want to install this on my 2010 3.3ghz 6-core Mac Pro, but no luck. The DVD just does not work. I'm thinking you can't do it on the Mac Pro.. Thoughts? Thank you.
-
Multi language Support - JDeveloper 11.1.1.0.0
Hello everyone, We have an application developed using Rich ADF Faces(JDeveloper 11.1.1.0.0). We have to do a POC in order to support multi language in the input text labels for the JSF Screens. Any ideas please?
-
Monitor window offset in iMovie HD 6.0
I notice that in the version 6.0 on my system the Monitor window is offset to the left by a small amount. The left hand side is hard up against the left where normally you would have the gray bezel. The blue-colored scubber bar extends all the way to