BI & Oracle XI data exchanges using WEBServices (into both sides)
Hello,
Would you be so kind and give me suggestions.
We have:
<b>BI 7 server Oracle Exchange Infrastructure Oracle DB server</b>
Our client wants to implement this data exchange solution:
<u>Scenario A: i have load data to BI from Oracle DB</u>
My steps are: from <i>BI</i> i have to call WEBService from <i>Oracle Exchange Infrastructure</i> when <i>Oracle Exchange Infrastructure</i> calls WEBService from <i>Oracle DB</i> and <i>Oracle DB</i> returns data set to <i>BI</i> via <i>Oracle Exchange Infrastructure.</i>
How to schedule job for calling WEBServices from <i>Oracle Exchange Infrastructure</i>? What have i configure in <i>BI</i>?
<u>Scenario B: Application based on Oracle DB wants to get data from BI</u>
Steps are: <i>Oracle DB</i> calls WEBService from <i>Oracle Exchange Infrastructure</i> when <i>Oracle Exchange Infrastructure</i> calls WEBService from <i>BI</i> and <i>BI</i> sends data to <i>Oracle DB</i> via <i>Oracle Exchange Infrastructure</i>.
<i>BI</i> offers <i>Open Hub Service</i> for data distribution from <i>BI</i>, but I didnt find description how to distribute data using WEBServices.
Is is possible to implement Scenario A and Scenario B in BI with standard tools.
Could you give me detailed answers(step-by-step what I have to do)?
Thanks in advance.
Best Regards,
Arunas Stonys
Arunas,
Quite an interesting landscape....
Also what do you mean by standard tools ?
Option A :
You can use the XML datasource for the same and once the XML data source is called , the data enters the Delta Queue in the BI server and from there you can use the normal infopackage / real time daemon to load data into your cubes / DSO. The XML datasource works on SOAP and this has to be supported by the Oracle XI.
Option B:
Slightly more trickier since you are hitting the BI server directly....
I am not sure if an infospoke can be a web service but some of the ways this could be done is :
a. Have an Func Module which acts as a web service and have that FM return the data
b. Have SAP XI inbetween to do the same
Also on the landscape- depending on the nature of data loads / data requests - if BI-Oracle is more - you can look at having SAP XI there instead....
Arun
Hope it helps....
P.S I would also suggest that you post the same in the Enterprise SOA forums / enterprise web services and people like Karthik Iyengar , Durairaj etc can respond to the same in a much better way that what I am able to give you right now...
Message was edited by:
Arun Varadarajan
Similar Messages
-
Who can tell me the ' Oracle Application Data Exchange ' download url ?
Who can tell me the ' Oracle Application Data Exchange ' download url ?
thanks
Yiming Gao
[email protected]Can you refer the Note:68795.1 ?
Regards -
How to return a set of data by using webservice ?
Hi.
I am finding how to return a set of data by using java webservice that serves clients written by others such as VB. Net. Please help me !
Thanks in advance.Check the how to on Accessing Oracle9iAS Java Web Service from a .NET Client
http://otn.oracle.com/sample_code/tech/java/codesnippet/webservices/index.html
Chandar -
SAP 4.7 XML data exchange using XSLT
Hello All,
Hopefully the right place to post such article but here goes any way.
My project involves producing XML files and then reading them back into to SAP internal tables. I am ok with writing SAP data to external XML file but reading it back in is causing a lot of head scratching.
I am able to double click the XML file and it launches Ok in Internet Explorer.
I am also able to debug the xslt file from within SE80 and the correct output is displayed.
However, where I am trying to read the contents of the xml file via the Call Transformation procedure call my output table is not getting populated but instead I am recieving an error message saying the following is not correct:
xmlns:sapxsl="http://www.sap.com/sapxsl
but the above line is placed automaticlly in the XSLT when you create a new one from within SE80.
I am new to SAP ABAP development so not sure what's exactly wrong.
Any help on this issue will be greatfully appreciated. Thanks in Advance,
Wasif
REPORT z_hp_xml_test .
TYPE-POOLS: ixml.
TABLES: tstc, tstct.
TYPES: BEGIN OF ty_transactions,
tcode LIKE tstc-tcode,
ttext LIKE tstct-ttext,
sprsl LIKE tstct-sprsl,
END OF ty_transactions.
DATA: itab_transactions TYPE STANDARD TABLE OF ty_transactions.
TYPES: BEGIN OF t_xml_line,
data(256) TYPE x,
END OF t_xml_line.
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_parser TYPE REF TO if_ixml_parser,
l_istream TYPE REF TO if_ixml_istream,
l_document TYPE REF TO if_ixml_document,
l_node TYPE REF TO if_ixml_node,
l_xmldata TYPE string.
DATA: l_elem TYPE REF TO if_ixml_element,
l_root_node TYPE REF TO if_ixml_node,
l_next_node TYPE REF TO if_ixml_node,
l_name TYPE string,
l_iterator TYPE REF TO if_ixml_node_iterator.
DATA: l_xml_table TYPE TABLE OF t_xml_line,
l_xml_line TYPE t_xml_line,
l_xml_table_size TYPE i.
DATA: l_filename TYPE string.
PARAMETERS: pa_file TYPE char1024 DEFAULT 'C: emp ransactions.xml'.
Validation of XML file: Only DTD included in xml document is supported
PARAMETERS: pa_val TYPE char1 AS CHECKBOX.
START-OF-SELECTION.
Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
wrap the table containing the file into a stream
l_istream = l_streamfactory->create_istream_itable( table =
l_xml_table
size =
l_xml_table_size ).
Creating a document
l_document = l_ixml->create_document( ).
Create a Parser
l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
istream = l_istream
document = l_document ).
Validate a document
IF pa_val EQ 'X'.
l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
ENDIF.
Parse the stream
If any errors then disply else convert XML to table
IF l_parser->parse( ) NE 0.
IF l_parser->num_errors( ) NE 0.
DATA: parseerror TYPE REF TO if_ixml_parse_error,
str TYPE string,
i TYPE i,
count TYPE i,
index TYPE i.
count = l_parser->num_errors( ).
WRITE: count, ' parse errors have occured:'.
index = 0.
WHILE index < count.
parseerror = l_parser->get_error( index = index ).
i = parseerror->get_line( ).
WRITE: 'line: ', i.
i = parseerror->get_column( ).
WRITE: 'column: ', i.
str = parseerror->get_reason( ).
WRITE: str.
index = index + 1.
ENDWHILE.
ENDIF.
ELSE.
TRY .
CALL TRANSFORMATION (`Z_HP_TEST_XSLT`)
SOURCE XML l_xml_table
RESULT outtab = itab_transactions.
DATA: xslt_err TYPE REF TO cx_xslt_exception .
CATCH cx_xslt_exception INTO xslt_err.
DATA: s TYPE string.
s = xslt_err->get_text( ).
WRITE: ': ', s.
STOP.
ENDTRY .
Process the document
IF l_parser->is_dom_generating( ) EQ 'X'.
PERFORM process_dom USING l_document.
ENDIF.
ENDIF.
*& Form get_xml_table
FORM get_xml_table CHANGING l_xml_table_size TYPE i
l_xml_table TYPE STANDARD TABLE.
Local variable declaration
DATA: l_len TYPE i,
l_len2 TYPE i,
l_tab TYPE tsfixml,
l_content TYPE string,
l_str1 TYPE string,
c_conv TYPE REF TO cl_abap_conv_in_ce,
l_itab TYPE TABLE OF string.
l_filename = pa_file.
upload a file from the client's workstation
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = l_filename
filetype = 'BIN'
IMPORTING
filelength = l_xml_table_size
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Writing the XML document to the screen
CLEAR l_str1.
LOOP AT l_xml_table INTO l_xml_line.
c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data
replacement = space ).
c_conv->read( IMPORTING data = l_content len = l_len ).
CONCATENATE l_str1 l_content INTO l_str1.
ENDLOOP.
l_str1 = l_str1+0(l_xml_table_size).
SPLIT l_str1 AT cl_abap_char_utilities=>cr_lf INTO TABLE l_itab.
WRITE: /.
WRITE: /' XML File'.
WRITE: /.
LOOP AT l_itab INTO l_str1.
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab
IN
l_str1 WITH space.
WRITE: / l_str1.
ENDLOOP.
WRITE: /.
ENDFORM. "get_xml_table
*& Form process_dom
FORM process_dom USING document TYPE REF TO if_ixml_document.
DATA: node TYPE REF TO if_ixml_node,
iterator TYPE REF TO if_ixml_node_iterator,
nodemap TYPE REF TO if_ixml_named_node_map,
attr TYPE REF TO if_ixml_node,
name TYPE string,
prefix TYPE string,
value TYPE string,
indent TYPE i,
count TYPE i,
index TYPE i.
node ?= document.
CHECK NOT node IS INITIAL.
ULINE.
WRITE: /.
WRITE: /' DOM-TREE'.
WRITE: /.
IF node IS INITIAL. EXIT. ENDIF.
create a node iterator
iterator = node->create_iterator( ).
get current node
node = iterator->get_next( ).
loop over all nodes
WHILE NOT node IS INITIAL.
indent = node->get_height( ) * 2.
indent = indent + 20.
CASE node->get_type( ).
WHEN if_ixml_node=>co_node_element.
element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
WRITE: / 'ELEMENT :'.
WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
IF NOT nodemap IS INITIAL.
attributes
count = nodemap->get_length( ).
DO count TIMES.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).
prefix = attr->get_namespace_prefix( ).
value = attr->get_value( ).
WRITE: / 'ATTRIBUTE:'.
WRITE: AT indent name COLOR COL_HEADING INVERSE, '=',
value COLOR COL_TOTAL INVERSE.
ENDDO.
ENDIF.
WHEN if_ixml_node=>co_node_text OR
if_ixml_node=>co_node_cdata_section.
text node
value = node->get_value( ).
WRITE: / 'VALUE :'.
WRITE: AT indent value COLOR COL_GROUP INVERSE.
ENDCASE.
advance to next node
node = iterator->get_next( ).
ENDWHILE.
ENDFORM. "process_dom
Section 3: My XSLT file:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sapxsl="http://www.sap.com/sapxsl"
<xsl:strip-space elements="*"/>
<xsl:template match="TransList">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="Tcode">
Tcode <xsl:apply-templates />
</xsl:template>
<xsl:template match="ttext">
ttext <xsl:apply-templates />
</xsl:template>
<xsl:template match="sprsl">
sprsl <xsl:apply-templates />
</xsl:template>
</xsl:transform>The exact error message I'm getting is :
ABAP XML formatting error in XML node of type "element", name: "abap" -
Hi ,
I am using Oracle report 10G
And trying to create report with dynamic table
SELECT &COL1, &COL2
FROM &TAB
If I put this on data model it gives below error
ORA-00936: missing expression
==> from
Can anybody advise to solve this issue.
Regards,
BrajeshLook in the Reports Builder Help:
If you want to use lexical references in your SELECT clause, you should create a separate lexical reference for each column you will substitute. In addition, you should assign an alias to each lexical reference.
Does adding the column alias solve the problem? -
Oracle spatial data compression (using advance compression).
What are the bast practice for oracle spatial to compress data using advance compression).
ver. 11.2.0.3Details about Advanced Compression can be found in:
Oracle E-Business Suite Release 12.1 with Oracle Database 11g Advanced Compression (Doc ID 1110648.1)
Is Advanced Compression Supported In The E-business Suite ? (Doc ID 1368152.1)
https://blogs.oracle.com/stevenChan/entry/using_advanced_compression_with_e-business_suite
Thanks,
Hussein -
How to insert encrypted data by using blowfish into mysql database
Hi
I have encrypted data using blowfish algorithm . And i tried to insert that encrypted data into mysql. it was stored but i dont know that it stores in the same encrypted formate
When i am trying to get the encrypted data from the mysql database and decrypting that data i am getting errors.
Exception are like
input length should be multiple of 8 bits
or Given block are not properly padded
and when i am displaying the data using system.out.println ();
the string is not similar to the string which is in database.
what is the problem how can i solve my problem
thank youIt sounds like your column is a VARCHAR so you need to Base64 or Hex encode the cipertext bytes before putting them in the database.
-
DATA exchange using XML using ABAP
Client is having requirement of sharing data with Third party using XML files and this needs to be done using ABAP and changes in XML structure are highly likely in the future and structure is very complex around 100 fields corresponding to an account , three ways are there as far i am aware of :-IXML library,Simple transformation and XSLT ,
confusion is which way to follow as Performance constraints are also there and Simple transformation had failed in the past with large amount of data,
I would like to know what is Industry wide accepted way of doing this in SAP ( XI is out of scope here ) using ABAP and which one will be the best regarding quality of design and performanceHi,
what about the Client Data Bag? http://help.sap.com/saphelp_nw70ehp1/helpdata/en/68/322a9261c54e51b7965f86aac3dae2/content.htm
Stores data on the client (browser) side and as long as the user is using CTRL+L to open the new window, the information is preserved.
br,
Tobias -
How to insert data values using Poplist to both block items....
Hi,
I have created a poplist which should return a sequence(which is stored in a db table) and a description .
The sequence(stored in table) is of number datatype and the description is of varchar2.....
I have created the required record group as:
rg_id := Create_Group_From_Query('TEXNIKOS_GROUP', 'select eponymo , to_char(seq_code_ergazomenoy)
from ref_ergazomenos,ref_eidikothta
where ref_ergazomenos.code_eidikothtas_type_id=ref_eidikothta.seq_code_eidikothtas
order by 1');
status := Populate_Group( rg_id );
if (status = 0)
then
POPULATE_LIST('MOD2_KLISI_VLAVIS.TEXNIKOS_FNAME','TEXNIKOS_GROUP');
end if;The field 'MOD2_KLISI_VLAVIS.TEXNIKOS_FNAME' is the description i described above ... and whereas this block item is filled with the selected poplist... the sequence - the code of the db table- is not.....
Is it possible to do so.... ????
NOTE: i use Dev10g.
Many thanks,
SimonI have two block items:
seq_code_ergazomenoy: number datatype , db item , invisible
eponymo:varchar2 datatype , non db item , visible
How to fill these both block items using the written record group...?????
Now , only the "eponymo" block item is filled but not the required "seq_code_ergazomenoy"....
In other words.... is there any manner to do the column mapping of the two selected columns (in the dynamically created record group) to the two block items....????
Thanks,
Simon
Message was edited by:
sgalaxy -
Will indexes be used on the both sides of the join?
SELECT * FROM emp a, dept b WHERE a.dept_no = b.dept_no
Assume we have bitmap index on emp (dept_no) and we have binary index on dept (dept_no), will both the indexes be used for searching when equated?Prasath N wrote:
I had looked the Explain plan, but it is taking only one index (index on dept (deptno)).
I tried giving hint for the other index, still no change in explain plan.
Will the other index be used while joining and not shown in explain plan?Care to show us your test case?
And your Oracle version?
Here's mine....
create table my_emp as
select *
from scott.emp
create table my_dept as
select *
from scott.dept
create index my_dept_i01 on my_dept(deptno);
create bitmap index my_emp_i01 on my_emp(deptno);
explain plan for
SELECT b.deptno
FROM my_emp a, my_dept b
4 WHERE a.deptno = b.deptno;
Explained.
Elapsed: 00:00:00.01
TUBBY_TUBBZ?
TUBBY_TUBBZ?select * from table(dbms_xplan.display(NULL, NULL, 'ALL'));
PLAN_TABLE_OUTPUT
Plan hash value: 697535001
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 14 | 364 | 1 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 14 | 364 | 1 (0)| 00:00:01 |
| 2 | BITMAP CONVERSION TO ROWIDS | | 14 | 182 | 1 (0)| 00:00:01 |
| 3 | BITMAP INDEX FAST FULL SCAN| MY_EMP_I01 | | | | |
|* 4 | INDEX RANGE SCAN | MY_DEPT_I01 | 1 | 13 | 0 (0)| 00:00:01 |
Query Block Name / Object Alias (identified by operation id):
1 - SEL$1
2 - SEL$1 / A@SEL$1
4 - SEL$1 / B@SEL$1
Predicate Information (identified by operation id):
4 - access("A"."DEPTNO"="B"."DEPTNO")
Column Projection Information (identified by operation id):
1 - (#keys=0) "B"."DEPTNO"[NUMBER,22]
2 - "A".ROWID[ROWID,10], "A"."DEPTNO"[NUMBER,22]
3 - STRDEF[BM VAR, 10], STRDEF[BM VAR, 10], STRDEF[BM VAR, 7920],
"A"."DEPTNO"[NUMBER,22]
4 - "B"."DEPTNO"[NUMBER,22]
Note
- dynamic sampling used for this statement (level=2)
36 rows selected.
Elapsed: 00:00:00.02
TUBBY_TUBBZ?
TUBBY_TUBBZ?select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
5 rows selected.
Elapsed: 00:00:00.01Edited by: Tubby on May 28, 2010 9:20 AM
Added test case. -
Retrive data from two tables into one internal table.
Hi SDN,
I am downloading the Assets data from two tables ANLA,ANLZ.
there is a common field ANL1in both tables and i have to retrive the data by using anl1 into the internal table.
can you please send me the SELECT Syntax for this probl.....
Thank you & Regards,
ManojHi manoj,
Please see the following sample code. But kindly don't use join as it may hamper ur performance. No trouble in using two select query.
data: begin of itab occurs 0,
BUKRS like anla-BUKRS,
ANLN1 like anla-ANLN1,
BDATU like anlz-BDATU,
end of itab.
select anlabukrs anlaANLN1 anlzBDATU into corresponding fields of table itab from anla inner join anlz on anlaanl1 eq anlz~anl1 where (logexp).
Please come back for any clarification.
Thanks and Regards,
saurabh -
Error while connecting to oracle 10g data base
Following is the code we used to connect to oracle 10g data base using symbian 7.1 series 80 SDK
int CTest_S80AppUi::SetupODBC(void)
RETCODE rc;
char *DataSource = OD_DATA_SOURCE;
char UserId = "system", Password = "manager";
rc=SQLAllocEnv(&Henv);
//if (TEST_CHECK_ERR(SQL_NULL_HSTMT, rc, "SQLAllocEnv", FALSE) < 0) return(-1);
rc=SQLAllocConnect(Henv, &Hdbc);
//if (TEST_CHECK_ERR(SQL_NULL_HSTMT, rc, "SQLAllocConnect", FALSE) < 0)
//return(-1);
rc = SQLConnect(Hdbc, (unsigned char *)DataSource, SQL_NTS,
(unsigned char *)UserId, SQL_NTS,
(unsigned char *)Password, SQL_NTS);
bConnected = TRUE;
//if (TEST_CHECK_ERR(SQL_NULL_HSTMT, rc, "SQLConnect", FALSE) < 0) return(-1);
SQLAllocStmt(Hdbc, &Hstmt);
//if (TEST_CHECK_ERR(SQL_NULL_HSTMT, rc, "SQLAllocStmt", FALSE) < 0) return(-1);
return (1);
} /* SetupODBC */
iam getting the return code for SQLConnect as -1.
Thanks in advance.Thanks for the reply.
//syntax means comments.
chk the following code.
int SetupODBC(void)
char *DataSource = "polite";
char UserId = "system", Password = "manager";
if ( SQLAllocEnv(&Henv) < 0 )
return -1;
if ( SQLAllocConnect(Henv, &Hdbc) < 0 )
return -1;
if ( SQLConnect(Hdbc, (unsigned char *)DataSource, SQL_NTS,
(unsigned char *)UserId, SQL_NTS,
(unsigned char *)Password, SQL_NTS) < 0 )
return -1;
if (SQLAllocStmt(Hdbc, &Hstmt) < 0 )
return -1;
return (0);
As said earlier there is a problem in SQLConnect. It is returning -1.
But the code should return 0 if successfully connected.
The info regarding the arguments used in the above methods:
HENV Henv; /* Handle to ODBC Environment object */
HDBC Hdbc; /* Handle to ODBC Connection object */
HSTMT Hstmt; /* Handle to ODBC Statement object */ -
How to load the data from excel file into table in oracle using UTL_FI
How to load the data from excel file into table in oracle
and from table to excel file
using UTL_FILE package
Please give me some exampleThis is something i tried in oracle apex
http://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/
Regards,
CKLP -
Hi,
I have a requirement to receive files from sharepoint and upload files to share point.
So is there anyway we can achive this using webservices in BizTalk (without using sharepoint adapter)
Thanks in advaceI do not have a sample flow... but if you refer to the samples where these web services are used then you'd be able to translate those code samples into BizTalk flows.. For e.g.:
http://msdn.microsoft.com/en-us/library/office/ms429658(v=office.14).aspx refers to returning list items. When you add generated items to your BizTalk for SharePoint Web Services, you'd get the schemas (xmlDocs in the sample) which you'd instantiate and
call.
When dealing with lists, you will need the GUID of the list so you need to do a GetLists call first and then get the GUID for your specific list from that. You will also encounter CAML which is what is used to query and get List Data.
Have fun.
Regards. -
Data import automation using webservices
Hi,
We have a requirement to load data into Oracle On demand monthly from an external application. We want to automate the task using webservices.
Did anyone of you work on such automation? If yes, request you please provide me the details of the same.
Thanks in advance.
regards,
mHi ,
Automated Data Import / Export to or from Oracle SOD using Web-Service is a very much a common requirement these days and we at CRMIT should be able to do that for you.
Drop me your requirement to [email protected] so that we can help you take it forward.
Regards,
Deepak H Andeli
Maybe you are looking for
-
Hello Experts, I want to clear GR/IR clearing account run with creiterial like Profit Center. Can I do that. for f.13 where do I have to set criteria. Can we do this clearing base on profit center or plant. If ther is more than one plant and profit c
-
2.1 Cannot remove filter on table column on data tab of table browser
In table browser, click on the data tab. Click a column name, click a data value and then double click to filter by the data value. Data filters as expected. However, when you click on the filter icon which appears to the right of the column name, it
-
Exporting iDVD5 to be opened in iDVD4
Hello, I'm interested in migrating back to iDVD 4. There are some bugs in version 5 that affect every project I work on (I've just reported them, don't worry). Anyway, I just installed v4.x and can't open my v5.x projects (oops). I've moved the v4.ap
-
How to create a tree structure,like I want to create Bill/Payment Tree
How to create a tree structure , like I want to create a Bill/Payment Tree containing a single node for all A/R related activities for a specific bill period, in reverse chronological order. Basically the tree should look like + Bill - Date: 03-17-20
-
Fireworks CS3 Not Displaying Photoshop CS3 file Exactly
Ok, so I was down to start using Fireworks to do my image optimization, in fact I was somewhat excited. I heard that Fireworks CS3 was supposed to load in PSD's seamlessly, support the layer styles, and all that good stuff. Well mine doesn't. It does