Using XSLT to link XML and ABAP data
Hi Experts,
I am using XSLT to deal with XML and ABAP data.
I using the following statement to convert a Internal Table to XML String:
CALL TRANSFORMATION id SOURCE root = lt_sflight RESULT XML l_xml_string.
And I get the XML String:
<?xml version="1.0" encoding="utf-16" ?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ROOT>
<SFLIGHT>
</SFLIGHT>
<SFLIGHT>
</SFLIGHT>
</ROOT>
</asx:values>
</asx:abap>
But What I expected is:
<?xml version="1.0" encoding="utf-16" ?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ROOT>
<DATA>
</DATA>
<DATA>
</DATA>
</ROOT>
</asx:values>
</asx:abap>
Could you tell me how to get my dream format using XSLT?
Best Regards,
Guo Guo Qing
Edited by: guoqing guo on Jun 11, 2008 9:58 AM
Hi Experts,
I am using XSLT to deal with XML and ABAP data.
I using the following statement to convert a Internal Table to XML String:
CALL TRANSFORMATION id SOURCE root = lt_sflight RESULT XML l_xml_string.
And I get the XML String:
<?xml version="1.0" encoding="utf-16" ?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ROOT>
<SFLIGHT>
</SFLIGHT>
<SFLIGHT>
</SFLIGHT>
</ROOT>
</asx:values>
</asx:abap>
But What I expected is:
<?xml version="1.0" encoding="utf-16" ?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ROOT>
<DATA>
</DATA>
<DATA>
</DATA>
</ROOT>
</asx:values>
</asx:abap>
Could you tell me how to get my dream format using XSLT?
Best Regards,
Guo Guo Qing
Edited by: guoqing guo on Jun 11, 2008 9:58 AM
Similar Messages
-
XSLT transformation for XML to ABAP internal table
Hi, can anyone please tell me how it should be the xslt tranformation to conver this xml
<Embargos_ARBA_DOC>
<ns:Embargos_ARBA_MT
xmlns:ns="un:swissmedical:sap:proxy:embargos_arba:file">
<Embargos_ARBA_MT>
<FECHA>20081101</FECHA>
<CUIT>50000002124</CUIT>
<MONTO>0000013794090</MONTO>
<RAZON_SOCIAL>RAUL ARMANDO CUNQUEIRO S.A.C.I.</RAZON_SOCIAL>
</Embargos_ARBA_MT>
<Embargos_ARBA_MT>
<FECHA>20081101</FECHA>
<CUIT>55000001456</CUIT>
<MONTO>0000001144410</MONTO>
<RAZON_SOCIAL>PARODI ESTEBAN ARMANDO</RAZON_SOCIAL>
</Embargos_ARBA_MT>
</ns:Embargos_ARBA_MT>
</Embargos_ARBA_DOC>
to this abap Table....
DATA: BEGIN OF i_embargos_arba_doc occurs 0,
fecha TYPE d,
cuit TYPE char11,
monto TYPE char13,
razon_social(120),
END OF i_embargos_arba_mt.
so i can transform it with this sentence
CALL TRANSFORMATION ('embargos_transformation')
SOURCE XML source
RESULT Embargos_ARBA_DOC = embargos.
pls i need help because i am unable to create this xslt transformation...
I will give the highest rewards points to the one who can help me.
thanks!
marianoHi Mariano
Why you need to use XSLT for transforming XML file into ABAP table
Code is a part of some ABAP report. Looks like it is reading a file from file system and updating table after transformation
If you have requirement like you need to read XML file and then insert the data into a SAP table
You can use
File to RFC
File to Proxy scenario using SAP PI.
Please provide more inputs on requirement to help
Thanks
Gaurav -
How to convert xml to ABAP data?
Hi Expert,
I need to write a transformation and convert an XML file into ABAP data.
The XML looks like following:
<?xml version="1.0" ?>
- <ServiceProtocol version="2.1">
- <CmdTest CheckId="123456789">
- <ExceptionMessage>
<id>003</id>
<text>Test</text>
- <arguments>
<argument>2.2</argument>
<argument>2.1</argument>
</arguments>
<creator>Hello</creator>
</ExceptionMessage>
</CmdTest>
</ServiceProtocol>
I have no knowledge in transformation. Can some one help me on this or provide deatail guideline on the conversion of XML to ABAP data.
Thanks in advance,
Best Regards, Johnney.Hi Johnney,
It's actually not that difficult. For that little XML of yours, I would suggest a Simple Transformation, because it's ... simple. And fast.
You should do some reading in the online documentation, and then it's trial-and-error. To accelerate your trialling, I've prepared a little example for you. Which you can use as follows.
Call SE80, and go Workbench > Edit object... , and create a "Transformation" (you give it a suitable name, and click on the "Create" button; in the pop-up, you specify Transformation type = "Simple transformation").
In the source code, you replace everything between "<tt:transform>" and "</tt:transform>" with the following bit of code:
<tt:root name="PROTOCOL_VERSION"/>
<tt:root name="CHECK_ID"/>
<tt:root name="MESSAGE_ID"/>
<tt:root name="MESSAGE_TEXT"/>
<tt:root name="CREATOR"/>
<tt:root name="T_ARGUMENTS"/>
<tt:template>
<ServiceProtocol>
<tt:attribute name="version" value-ref="PROTOCOL_VERSION"/>
<CmdTest>
<tt:attribute name="CheckId" value-ref="CHECK_ID"/>
<ExceptionMessage>
<id>
<tt:value ref="MESSAGE_ID"/>
</id>
<text>
<tt:value ref="MESSAGE_TEXT"/>
</text>
<arguments>
<tt:loop name="Arguments" ref="T_ARGUMENTS">
<argument>
<tt:value ref="$Arguments.ARGUMENT"/>
</argument>
</tt:loop>
</arguments>
<creator>
<tt:value ref="CREATOR"/>
</creator>
</ExceptionMessage>
</CmdTest>
</ServiceProtocol>
</tt:template>
Your simple transformation is ready; all you have to do is call it from a little program, more or less as follows:
DATA:
l_prot_version TYPE string,
l_check_id TYPE string,
l_msg_id TYPE string,
l_msg_text TYPE string,
l_creator TYPE string,
BEGIN OF ls_arguments,
argument TYPE string,
END OF ls_arguments,
lt_arguments LIKE STANDARD TABLE OF ls_arguments.
TRY.
CALL TRANSFORMATION your_transformation_name
SOURCE XML l_xml_string
RESULT protocol_version = l_prot_version
check_id = l_check_id
message_id = l_msg_id
message_text = l_msg_text
t_arguments = lt_arguments
creator = l_creator.
CATCH cx_st_error.
* Your error handling comes here...
ENDTRY.
The variables starting with "l_" should be character fields of appropriate length, or character strings, while "lt_arguments" should be a standard table with a single field called "ARGUMENT" (otherwise you'd have to change the name in the transformation, in the line that says "<tt:value ref="$Arguments.ARGUMENT"/>").
There's more pitfalls for you, like the encoding of the XML string, but you'll find examples of how to handle that if you look for class CL_ABAP_CONV_IN_CE, either here in the forum or in your system (or in the online help, of course).
Oh, and you should definitely catch and handle CX_ST_ERROR - transformations dump easily if something is wrong with the data.
Hope this helps - sure took longer than planned...
Rainer -
Re: [SunONE-JATO] Re: Using an object to store and display data
Personally, I think there is little or no value to creating a "domain"
object that itself relies on a JATO QueryModel internally, but hides that
fact and requires use of BeanAdapterModel.
It would be more appropriate (and much less work, and more scalable) to just
derive a QueryModel subclass and add the domain-specific behavior to the
model. In other words, what's the point of creating an object that hides
JATO inside it when you're running in JATO to begin with? Now if the domain
object were doing plain JDBC, and thus trying to be JATO independent, that
would be different. However, you could still implement the Model interface
on the object (or use BeanAdapterModel) to integrate it seamlessly with the
View tier.
Todd
----- Original Message -----
From: "grschroeder" <grschroeder@y...>
Sent: Wednesday, July 31, 2002 12:00 PM
Subject: [SunONE-JATO] Re: Using an object to store and display data
Craig,
I think it all finally makes sense. First, your assumption is
correct regarding the process flow. The ViewBean will interact with
a custom Javabean which will then in turn interact with a SQL Model
to access the database. So now let me make sure I understand what I
need to do. Basically the custom Javabean will have a method to get
the SQLModel. I would then invoke the setValue method on the
SQLModel and call the appropriate execute method( e.g.,
executeUpdate, etc. ) just like I would do from a ViewBean. Does
this sound correct?
Thanks,
Greg
--- In SunONE-JATO@y..., "Craig V. Conover" <craig.conover@s...>
wrote:
Greg,
see below...
grschroeder wrote:
Thanks for the help Craig. I looked at the sample code that makes
use of the BeanAdapterModel. Basically it looks like it allows a
view to interact with a bean the same way it would interact with
any
other model. That part I think I understand.
This is correct.
The part I'm a little
unclear on still is how to interface this BeanAdapterModel( which
is
a very basic model ) that I now have with a query model toactually
interact with the database.
Not sure what you mean by "interface this BeanAdapterModel ... witha
query model". Does this mean that you have a ViewBean the interactswith
a custom JavaBean via the BeanAdpterModel wrapper, and from the
JavaBean you are interacting with the SQL Model?
So it looks like this: ViewBean > BeanAdapterModel(Custom JavaBean)
SQL Model > RDBMS
That's what I am reading anyway. Please explain this to me.
Would I need to make direct JDBC calls
from my custom model instead of letting JATO dynamically create
the
calls for me?
If my assumptions above are correct, then the custom JavaBean cansimply
use the SQL Model in exactly the same manner as the ViewBean,otherwise,
if no SQL Model is involved, then yes, you need to handle JDBCdirectly,
which is fine, if you do it "right" (connection pooling, result set
handling, etc.).
Thanks,
Greg
--- In SunONE-JATO@y..., "Craig V. Conover" <craig.conover@s...>
wrote:
I think the best approach would be to treat your Domain Objects
(DO) as
the Database (the enterprise tier) from JATO's perspective. You
could
create custom models that interface with our DO's and then the
JATO
Views could easily bind to the custom DO models just like anyother
model. This should eliminate the need for pushing data/objectsfrom
>
view
to model to database.
There is a JATO class called BeanAdapterModel that might be just
what
you need, however, I am not experienced with using it. Maybe
someone
else on my team or in the community could better explain how to
use
>
this
class.
craig
grschroeder wrote:
Venki,
Thanks for the response. Actually, I'm not sure if I can answer
all
of your questions because those are some of the same questions
that
we're trying to answer ourselves. Basically, what we're trying
to
>do
is incorporate our domain object model into the JATO framework.
My
thinking was that one way we could accomplish this was by
storing
>a
Javabean object in the HTTPSession to represent an object in the
domain model, and that the Viewbean and JATO Model could get and
set
data from there. If you have a better suggestion of how to
accomplish this, I'm definitely open to hearing it.
Thanks,
Greg
--- In SunONE-JATO@y..., Venki <heyvenki@y...> wrote:
OK grschroeder , first let me get this straight:
0. Are you going to pass this object to the model, or are u
going
>
to pass the session object to the model?
1. Is there any specific reason for this approach you are
taking?
2. Will there be a notification from the object u havementioned
>to
have the model persist the data?
3. What about the reverse case, when the model refreshes the
data,
how are you going to refresh you object?
4. The JavaBean Object that u are talking about, is it your own
object or is it implementation of an existing JATO interface?
~Venki
grschroeder wrote:I'm fairly new to JATO, but I think I now
have
>a
basic understanding
of how Viewbeans and Models interact. However, I want to
incorporate
the use of a Javabean object that will be stored in the HTTP
session
and will act as the connection between the Viewbean and Model
instead
of having the Viewbean and Model interact directly with each
other.
Basically I would like to have the Model set data in the object
stored in the session so that the Viewbean can pull it out to
display
it. And vice versa, once the user modifies the data and is
ready
>
to
persist it, I would like to have the Viewbean set data in the
object
stored in the session so that the Model can pull it out to
store
>it
in the database. I'm not sure what the best approach would be
to
accomplish this. Any help you could give would be greatly
appreciated.
Thanks,
Greg
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
Service.
Venki
IT Solutions
#6, Pycrofts Garden Road, Nugambakkam, Chennai - 600 006
91-44-4925740(Home) 91-44-8212877(Work)
* Luck is what happens when Preparation meets Opportunity.
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
>To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jspPersonally, I think there is little or no value to creating a "domain"
object that itself relies on a JATO QueryModel internally, but hides that
fact and requires use of BeanAdapterModel.
It would be more appropriate (and much less work, and more scalable) to just
derive a QueryModel subclass and add the domain-specific behavior to the
model. In other words, what's the point of creating an object that hides
JATO inside it when you're running in JATO to begin with? Now if the domain
object were doing plain JDBC, and thus trying to be JATO independent, that
would be different. However, you could still implement the Model interface
on the object (or use BeanAdapterModel) to integrate it seamlessly with the
View tier.
Todd
----- Original Message -----
From: "grschroeder" <grschroeder@y...>
Sent: Wednesday, July 31, 2002 12:00 PM
Subject: [SunONE-JATO] Re: Using an object to store and display data
Craig,
I think it all finally makes sense. First, your assumption is
correct regarding the process flow. The ViewBean will interact with
a custom Javabean which will then in turn interact with a SQL Model
to access the database. So now let me make sure I understand what I
need to do. Basically the custom Javabean will have a method to get
the SQLModel. I would then invoke the setValue method on the
SQLModel and call the appropriate execute method( e.g.,
executeUpdate, etc. ) just like I would do from a ViewBean. Does
this sound correct?
Thanks,
Greg
--- In SunONE-JATO@y..., "Craig V. Conover" <craig.conover@s...>
wrote:
Greg,
see below...
grschroeder wrote:
Thanks for the help Craig. I looked at the sample code that makes
use of the BeanAdapterModel. Basically it looks like it allows a
view to interact with a bean the same way it would interact with
any
other model. That part I think I understand.
This is correct.
The part I'm a little
unclear on still is how to interface this BeanAdapterModel( which
is
a very basic model ) that I now have with a query model toactually
interact with the database.
Not sure what you mean by "interface this BeanAdapterModel ... witha
query model". Does this mean that you have a ViewBean the interactswith
a custom JavaBean via the BeanAdpterModel wrapper, and from the
JavaBean you are interacting with the SQL Model?
So it looks like this: ViewBean > BeanAdapterModel(Custom JavaBean)
SQL Model > RDBMS
That's what I am reading anyway. Please explain this to me.
Would I need to make direct JDBC calls
from my custom model instead of letting JATO dynamically create
the
calls for me?
If my assumptions above are correct, then the custom JavaBean cansimply
use the SQL Model in exactly the same manner as the ViewBean,otherwise,
if no SQL Model is involved, then yes, you need to handle JDBCdirectly,
which is fine, if you do it "right" (connection pooling, result set
handling, etc.).
Thanks,
Greg
--- In SunONE-JATO@y..., "Craig V. Conover" <craig.conover@s...>
wrote:
I think the best approach would be to treat your Domain Objects
(DO) as
the Database (the enterprise tier) from JATO's perspective. You
could
create custom models that interface with our DO's and then the
JATO
Views could easily bind to the custom DO models just like anyother
model. This should eliminate the need for pushing data/objectsfrom
>
view
to model to database.
There is a JATO class called BeanAdapterModel that might be just
what
you need, however, I am not experienced with using it. Maybe
someone
else on my team or in the community could better explain how to
use
>
this
class.
craig
grschroeder wrote:
Venki,
Thanks for the response. Actually, I'm not sure if I can answer
all
of your questions because those are some of the same questions
that
we're trying to answer ourselves. Basically, what we're trying
to
>do
is incorporate our domain object model into the JATO framework.
My
thinking was that one way we could accomplish this was by
storing
>a
Javabean object in the HTTPSession to represent an object in the
domain model, and that the Viewbean and JATO Model could get and
set
data from there. If you have a better suggestion of how to
accomplish this, I'm definitely open to hearing it.
Thanks,
Greg
--- In SunONE-JATO@y..., Venki <heyvenki@y...> wrote:
OK grschroeder , first let me get this straight:
0. Are you going to pass this object to the model, or are u
going
>
to pass the session object to the model?
1. Is there any specific reason for this approach you are
taking?
2. Will there be a notification from the object u havementioned
>to
have the model persist the data?
3. What about the reverse case, when the model refreshes the
data,
how are you going to refresh you object?
4. The JavaBean Object that u are talking about, is it your own
object or is it implementation of an existing JATO interface?
~Venki
grschroeder wrote:I'm fairly new to JATO, but I think I now
have
>a
basic understanding
of how Viewbeans and Models interact. However, I want to
incorporate
the use of a Javabean object that will be stored in the HTTP
session
and will act as the connection between the Viewbean and Model
instead
of having the Viewbean and Model interact directly with each
other.
Basically I would like to have the Model set data in the object
stored in the session so that the Viewbean can pull it out to
display
it. And vice versa, once the user modifies the data and is
ready
>
to
persist it, I would like to have the Viewbean set data in the
object
stored in the session so that the Model can pull it out to
store
>it
in the database. I'm not sure what the best approach would be
to
accomplish this. Any help you could give would be greatly
appreciated.
Thanks,
Greg
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
Service.
Venki
IT Solutions
#6, Pycrofts Garden Road, Nugambakkam, Chennai - 600 006
91-44-4925740(Home) 91-44-8212877(Work)
* Luck is what happens when Preparation meets Opportunity.
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
>To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp -
Breaking Links to and External Data Connection using the cubevalue() function
I have spreadsheets that connect to an MSAS cube successfully and pull data in the cells using the CUBEVALUE function.
Is there a way to perform the equivalent of 'breaking links' to the external database so that the spreadsheet can be distibuted to others that will not have the external database connection set up on their computer/excel environment.
I find that if i email a spreadsheet with data retreived using cubevalue functions to someone without the external database connection they do not see the values preserved with the spreadsheet and end up with blank or zero cells, etc.
I have unchecked the box related to 'refresh data when opening file'.
In a perfect world i would like to remove the db connection and be left with pasted values, similar to breaking links to an external workbook but I am not sure if that is possible.
I am desperate to find a way to distribute these spreadsheets and be confident that Excel won't be unsuccessfully trying to refresh a connection that isn't on other peoples computer.
Thanks for any guidanceMaybe you can upload a sample file to a file sharing site and then share the link with us.
As you said you have already unchecked the option 'Refresh data when opening the file' within Connection Properties.
When you send the Excel file to someone without this data connection, they should get the correctly data unless they click the button 'Refresh All'.
Wind Zhang
TechNet Community Support -
XSLT transformation in XML to ABAP: special characters issue
Hi,
I am parsing well-formed XML file that has the following data (:
<projects><project><name>Wallis & Futuna</name></project></projects>
I use XSLT transformation:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="projects">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<PROJECTS>
<xsl:for-each select="project">
<PROJECT>
<NAME>
<xsl:value-of select="name"/>
</NAME>
</PROJECT>
</xsl:for-each>
</PROJECTS>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:transform>
If I use the above example without &amp; everything works fine, but the original XML fails with exception CX_XSLT_DESERIALIZATION_ERROR and message "Error during deserialization". Googling around did not give an answer.
Any words of wisdom?
Edited by: Alexei Isaev on Apr 26, 2011 5:04 AM
Edited by: Alexei Isaev on Apr 26, 2011 5:05 AMHi,
Please visit the following link for reference.
http://help.sap.com/abapdocu_70/en/ABAPCALL_TRANSFORMATION.htm
Thanks & Regards,
Harish -
How to use STRANS to translate XML to ABAP with deep structure
every experts, I want to use Tcode: STRANS to translate XML to ABAP, But it does not work well,
here is XML code,I want to translate this XML into an an Inter table gt_orders with deep structure of oeb, and colum oeb is also and intertable,how can I do this.
<?xml version="1.0" encoding="gb2312" ?><axmt410><ObjectID>setSalesOrder</ObjectID><azp01>000000</azp01><oea00>1</oea00><ta_oeaecn>SO-140227-3041</ta_oeaecn><oea03>25325017</oea03><oea02>2014-02-27 17:44:44.0</oea02><ta_oea002>2763.0</ta_oea002><ta_oea001>0.0</ta_oea001><oea14></oea14><oea15>25325017</oea15><oea23>RMB</oea23><oeaconf>S3</oeaconf><oea10></oea10><oeaud01>null</oeaud01><ta_oea007></ta_oea007><oea25>101</oea25><ta_oea008>0</ta_oea008><ta_oea009>null</ta_oea009><oeauser>Hanjingya</oeauser><ta_oeanday>2014-02-27 17:44:44.991</ta_oeanday><ta_oeamday>2014-02-28 08:30:14.866</ta_oeamday><ta_oeacday>2014-02-28 08:30:14.866</ta_oeacday><oeaud02>0</oeaud02><ta_oea030>null</ta_oea030><oeb><oeb03>1</oeb03><oeb04>7400208249</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address1</ta_oeb003><ta_oeb004>zhangdagui、zhanglan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb><oeb><oeb03>2</oeb03><oeb04>7400208250</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address2</ta_oeb003><ta_oeb004>zhangdagui、chenlan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb></axmt410>
I write these codes in SAP XSLT editor
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
<xsl:strip-space elements="*"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ORDERS>
<xsl:apply-templates select="//axmt410"/>
</ORDERS>
</asx:values>
</asx:abap>
</xsl:template>
<xsl:template match="axmt410">
<OBJECTID>
<xsl:value-of select="ObjectID"/>
</OBJECTID>
<AZP01>
<xsl:value-of select="azp01"/>
</AZP01>
<OEA00>
<xsl:value-of select="oea00"/>
</OEA00>
<TA_OEAECN>
<xsl:value-of select="ta_oeaecn"/>
</TA_OEAECN>
<OEA03>
<xsl:value-of select="oea03"/>
</OEA03>
<OEA05>
<xsl:value-of select="oea05"/>
</OEA05>
<OEA02>
<xsl:value-of select="oea02"/>
</OEA02>
<TA_OEA002>
<xsl:value-of select="ta_oea002"/>
</TA_OEA002>
<TA_OEA001>
<xsl:value-of select="ta_oea001"/>
</TA_OEA001>
<OEA14>
<xsl:value-of select="ora14"/>
</OEA14>
<OEA15>
<xsl:value-of select="ora15"/>
</OEA15>
<OEA23>
<xsl:value-of select="ora23"/>
</OEA23>
<OEACONF>
<xsl:value-of select="oeaconf"/>
</OEACONF>
<OEA10>
<xsl:value-of select="ora10"/>
</OEA10>
<OEAUD01>
<xsl:value-of select="oeaud01"/>
</OEAUD01>
<TA_OEA007>
<xsl:value-of select="ta_oea007"/>
</TA_OEA007>
<OEA25>
<xsl:value-of select="ora25"/>
</OEA25>
<TA_OEA008>
<xsl:value-of select="ta_oea008"/>
</TA_OEA008>
<TA_OEA009>
<xsl:value-of select="ta_oea009"/>
</TA_OEA009>
<TA_OEA013>
<xsl:value-of select="ta_oea013"/>
</TA_OEA013>
<TA_OEA014>
<xsl:value-of select="ta_oea014"/>
</TA_OEA014>
<TA_OEA015>
<xsl:value-of select="ta_oea015"/>
</TA_OEA015>
<TA_OEA016>
<xsl:value-of select="ta_oea016"/>
</TA_OEA016>
<TA_OEA017>
<xsl:value-of select="ta_oea017"/>
</TA_OEA017>
<TA_OEA018>
<xsl:value-of select="ta_oea018"/>
</TA_OEA018>
<TA_OEA019>
<xsl:value-of select="ta_oea019"/>
</TA_OEA019>
<TA_OEA020>
<xsl:value-of select="ta_oea020"/>
</TA_OEA020>
<TA_OEA021>
<xsl:value-of select="ta_oea021"/>
</TA_OEA021>
<TA_OEA022>
<xsl:value-of select="ta_oea022"/>
</TA_OEA022>
<TA_OEA028>
<xsl:value-of select="ta_oea028"/>
</TA_OEA028>
<OEAUSER>
<xsl:value-of select="oeauser"/>
</OEAUSER>
<TA_OEANDAY>
<xsl:value-of select="ta_oeanday"/>
</TA_OEANDAY>
<TA_OEAMDAY>
<xsl:value-of select="ta_oeamday"/>
</TA_OEAMDAY>
<TA_OEACDAY>
<xsl:value-of select="ta_oeacday"/>
</TA_OEACDAY>
<OEAUD02>
<xsl:value-of select="oeaud02"/>
</OEAUD02>
<TA_OEA030>
<xsl:value-of select="ta_oea030"/>
</TA_OEA030>
<OEB>
<xsl:for-each select="oeb">
<OEB03>
<xsl:value-of select="oeb03"/>
</OEB03>
<OEB04>
<xsl:value-of select="oeb04"/>
</OEB04>
<OEB05>
<xsl:value-of select="oeb05"/>
</OEB05>
<OEB17>
<xsl:value-of select="oeb17"/>
</OEB17>
<OEB13>
<xsl:value-of select="oeb13"/>
</OEB13>
<OEB15>
<xsl:value-of select="oeb15"/>
</OEB15>
<OEB12>
<xsl:value-of select="oeb12"/>
</OEB12>
<OEB09>
<xsl:value-of select="oeb09"/>
</OEB09>
<TA_OEB001>
<xsl:value-of select="ta_oeb001"/>
</TA_OEB001>
<TA_OEB002>
<xsl:value-of select="ta_oeb002"/>
</TA_OEB002>
<TA_OEB003>
<xsl:value-of select="ta_oeb003"/>
</TA_OEB003>
<TA_OEB004>
<xsl:value-of select="ta_oeb004"/>
</TA_OEB004>
<TA_OEB005>
<xsl:value-of select="ta_oeb005"/>
</TA_OEB005>
<TA_OEB006>
<xsl:value-of select="ta_oeb006"/>
</TA_OEB006>
<OEBUD01>
<xsl:value-of select="oebud01"/>
</OEBUD01>
</xsl:for-each>
</OEB>
</xsl:template>
</xsl:transform>
and I use below ABAP program for a test, but the items from XML can not translate into Interner table gt_orders-oeb[]
TYPE-POOLS abap.
CONSTANTS gs_file TYPE string VALUE 'C:\temp\order02.xml'.
* This is the structure for the data from the XML file
TYPES:
BEGIN OF typ_s_oeb,
oeb03 TYPE string, "
oeb04 TYPE string, "
oeb05 TYPE string, "
oeb17 TYPE string, "
oeb13 TYPE string,
oeb15 TYPE string,
oeb12 TYPE string, "
oeb09 TYPE string, "
ta_oeb001 TYPE string, "
ta_oeb002 TYPE string, "
ta_oeb003 TYPE string, "
ta_oeb004 TYPE string, "
ta_oeb005 TYPE string, "
ta_oeb006 TYPE string, "
ta_oeb013 TYPE string, "
ta_oeb014 TYPE string, "
ta_oeb015 TYPE string, "
ta_oeb016 TYPE string, "
ta_oeb017 TYPE string, "
ta_oeb018 TYPE string, "
ta_oeb019 TYPE string, "
ta_oeb020 TYPE string, "
ta_oeb021 TYPE string, "
ta_oeb022 TYPE string, "
oebud01 TYPE string, "
END OF typ_s_oeb.
TYPES: typ_t_oeb TYPE TABLE OF typ_s_oeb WITH KEY oeb03.
TYPES:
BEGIN OF typ_s_order,
objectid TYPE string, "
azp01 TYPE string, "
oea00 TYPE string, "
ta_oeaecn TYPE string, "
oea03 TYPE string, "
oea02 TYPE string, "
ta_oea002 TYPE string, "
ta_oea001 TYPE string, "
oea14 TYPE string, "
oea15 TYPE string,
oea23 TYPE string, "
oeaconf TYPE string, "
oea10 TYPE string, "
oeaud01 TYPE string, "
ta_oea007 TYPE string, "
oea25 TYPE string, "
ta_oea008 TYPE string, "
ta_oea009 TYPE string, "
oeauser TYPE string, "
ta_oeanday TYPE string, "
ta_oeamday TYPE string, "
ta_oeacday TYPE string, "
oeaud02 TYPE string, "
ta_oea030 TYPE string, "
ta_oea013 TYPE string,
ta_oea014 TYPE string,
ta_oea015 TYPE string,
ta_oea016 TYPE string,
ta_oea017 TYPE string,
ta_oea018 TYPE string,
ta_oea019 TYPE string,
ta_oea020 TYPE string,
ta_oea021 TYPE string,
ta_oea022 TYPE string,
ta_oea025 TYPE string,
oeb TYPE typ_t_oeb,
END OF typ_s_order.
* Table for the XML content
DATA: gt_itab TYPE STANDARD TABLE OF char2048,
gs_itab LIKE LINE OF gt_itab.
* Table and work ares for the data from the XML file
DATA: gt_orders TYPE STANDARD TABLE OF typ_s_order,
gs_orders TYPE typ_s_order.
* Result table that contains references
* of the internal tables to be filled
DATA: gt_result_xml TYPE abap_trans_resbind_tab,
gs_result_xml TYPE abap_trans_resbind.
* For error handling
DATA: gs_rif_ex TYPE REF TO cx_root,
gs_var_text TYPE string.
* Get the XML file from your client
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = gs_file
CHANGING
data_tab = gt_itab
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
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.
* Fill the result table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "IPERSON".
GET REFERENCE OF gt_orders INTO gs_result_xml-value.
gs_result_xml-name = 'ORDERS'.
APPEND gs_result_xml TO gt_result_xml.
* Perform the XSLT styleshee
TRY.
CALL TRANSFORMATION zfx_so_xml_to_abap
SOURCE XML gt_itab
RESULT (gt_result_xml).
CATCH cx_root INTO gs_rif_ex.
gs_var_text = gs_rif_ex->get_text( ).
MESSAGE gs_var_text TYPE 'S'.
ENDTRY.
LOOP AT gt_orders INTO gs_orders.
ENDLOOP.The simplest way seems to me is to use a XSL file for that. The <xsl:output> attributes doctype-system and doctype-public generate the DTD declaration <!DOCTYPE YOUR_ROOT SYSTEM "yourDTDfile.dtd"> and <!DOCTYPE YOUR_ROOT PUBLIC "yourDTDfile.dtd">, respectively.
When calling transformerInstance.transform() the XSLT processor performs the identity transformation - it just copies elements, attributes, content, processing instructions and comments to the result stream.
If you're using an xsl file for your transformation already, simply add <xsl:output doctype-system="yourDTDfile.dtd"/> to your existing XSL file.
If you're only using the identity transformation you'd need to change the line of code where you obtain the transformer instance from the TransformerFactory to:
t_factory.newTransformer(new StreamSource("test.xsl"));
and use this as test.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-system="yourDTDfile.dtd"/>
<!-- this is the identity transformation -->
<xsl:template match="*|@*|comment()|processing-instruction()|text()">
<xsl:copy>
<xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>Good luck. -
Hi All,
we are working on PI and Abap connectivity and its done but,
when I execute SPROXY transaction in ECC, I see Service methods..I am not sure which method to use to write the ABAP code to push the data to PI server.
Earlier In XI 3.0 I used execute asynchronous method.
BUT here i have PI and am clueless with PI methods.
Can anyone share some documents or link or sample code to let me know under which method of PI i can write ABAP code ?
Thanks
MeetaHi
Could any body share with me the sample abap code for outbound in PI or XI and Abap connectivity via Proxy..
i have a requirment for Outbound where i need to fetch data from ECC and abap has to send data to PI or Xi.....( Outbound )
Please not i need for Outbound and not for Inbound
Points will be rewarded for most relevant help..
Thanks
Meeta -
How to process XML into ABAP data?
Hi,
I have a string variable which content is a xml file. Then how to extract data from it into corresponding ABAP data objects like internal table or structure?
Thanks a lot!HI Long
check this code which converts xml to bap internal table using DOM
REPORT Z_XML_TO_TABLE.
TYPE-POOLS: ixml.
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:\temp\orders_dtd.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 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.
ENDIF.
Process the document
IF l_parser->is_dom_generating( ) EQ 'X'.
PERFORM process_dom USING l_document.
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
regards
kishore
reward if helpful -
I am new to flash's dynamic data uses - I have a 100
responses to 23 question form which I wish to display using flash
in a presentation - I wish to sort the info only by either
individuals forms or question/answers. Once created i do not need
to amend the data - i will be delivering this on a cd.
Could I add the 100 responses into an XML File for flash to
read the data from? Is it easy to sort this information?
I just used jen de hanns tutorial with the data wizards - is
this appropriate - or is what I am wanting to do more complex?
Many thanks for any adviceSorting of data can be done by a database which you are not
using, a
serverside script which you are not using, in your own AS
code or possibly
an Flash UI component.
You might want to post this message in the Flash Actionscript
forum and ask
how you can sort data in As or UI components.
Lon Hosford
www.lonhosford.com
May many happy bits flow your way!
"stacyp" <[email protected]> wrote in
message
news:e2371n$n00$[email protected]..
I am new to flash's dynamic data uses - I have a 100
responses to 23
question
form which I wish to display using flash in a presentation -
I wish to sort
the
info only by either individuals forms or question/answers.
Once created i do
not need to amend the data - i will be delivering this on a
cd.
Could I add the 100 responses into an XML File for flash to
read the data
from? Is it easy to sort this information?
I just used jen de hanns tutorial with the data wizards - is
this
appropriate
- or is what I am wanting to do more complex?
Many thanks for any advice -
Using ADL when Application.xml and Content.swf are not in the BIN directory
Hello, I am trying to use the air debug launcher (ADL) to
launch a simple air app. My issue is I am trying to have ADL launch
this app from outside of the bin directory of the SDK. Whenever I
try to pass adl the full path to the Applicaiton.xml file it says
"application descriptor not found" Does anyone know how to get
around this? How can I run an AIR app that is outside of the bin?
My situation C:\AIR has the Applicaiton.xml and Content.swf
files, then a directory way below C:\Program Files\....\..... has
the bin directory. I can run adl using its full path C:\Program
Files\....\bin\adl, but when I pass it the full path for
Application.xml it fails.
By the way when I put everything in the bin, or below the bin
it works just fine.If you're receiving this error message then the full path
you're specifying for application.xml must be incorrect. -
How to insert the partner link (xml)response to data base adapter in BPEL:
Hi to every one,
I have little bit knowledge in oracle SOA suit and having knowledge in java technologies,
I am developing one central reporting server for this I have the following requirement.
I need to call ‘N’ departmental servers (partner links) daily at specific time I need to insert all the transaction details (xml) response in central database (db adapter).
I’m able to call the ‘N’ partner links but I’m facing the problem while inserting ‘N’ servers response into central db using db adapter.
I written one common xsd file for request and response for N departmental server.
Following are the SOAP request and response formats for your reference.
<!-- =========== request formate ========= -->
<Reportreq xsi:type="rep:Reportreq">
<reqdate xsi:type="xsd:string">01-01-2010</reqdate>
<reqtime xsi:type="xsd:string">1100</reqtime>
</Reportreq>
<!-- ======= Response Formate ================================ -->
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:ResponseBean" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="ReportServer">
<errorcode xsi:type="xsd:string"/>
<errordesc xsi:type="xsd:string" xsi:nil="true"/>
<reportres xsi:type="xsd:string">
<![CDATA[<response:getTransData>
<transdate>01-01-2010</transdate>
<transtime>1100</transtime>
<distcode>03</distcode>
<transdata>
<centre>GVLH</centre><deptcode>15</deptcode><servicecode>1</servicecode>
<cashtrans>1</cashtrans><cashamt>165</cashamt><chqtrans>0</chqtrans>
<chqamt>0</chqamt><ddtrans>0</ddtrans><ddamt>0</ddamt>
<cardtrans>0</cardtrans><cardamt>0</cardamt>
<epaytrans>0</epaytrans><epayamt>0</epayamt><userchrgs>0</userchrgs>
</transdata>
<transdata><centre>RBVP</centre><deptcode>15</deptcode>
<servicecode>1</servicecode><cashtrans>1</cashtrans><cashamt>3000</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans><ddamt>0</ddamt><cardtrans>0</cardtrans>
<cardamt>0</cardamt><epaytrans>0</epaytrans><epayamt>0</epayamt>
<userchrgs>0</userchrgs></transdata>
<transdata><centre>RKBH</centre><deptcode>15</deptcode>
<servicecode>1</servicecode><cashtrans>1</cashtrans><cashamt>412</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans><ddamt>0</ddamt><cardtrans>0</cardtrans><cardamt>0</cardamt><epaytrans>0</epaytrans>
<epayamt>0</epayamt><userchrgs>0</userchrgs></transdata>
<transdata><centre>ARLV</centre><deptcode>101</deptcode>
<servicecode>1</servicecode><cashtrans>1</cashtrans><cashamt>125</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans>
<ddamt>0</ddamt><cardtrans>0</cardtrans><cardamt>0</cardamt>
<epaytrans>0</epaytrans><epayamt>0</epayamt><userchrgs>0</userchrgs>
</transdata>
<transdata><centre>NTRS</centre><deptcode>101</deptcode>
<servicecode>1</servicecode><cashtrans>7</cashtrans><cashamt>2567</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans>
<ddamt>0</ddamt><cardtrans>0</cardtrans>
<cardamt>0</cardamt><epaytrans>0</epaytrans><epayamt>0</epayamt>
<userchrgs>0</userchrgs></transdata>
<!-- I will get “transdata” tag nearly 1000 to 10000 -->
</response:getTransData> ]]>
</reportres>
</multiRef>
In java I hold the response XML string between the <response> tag and with the DOM parser I am able to insert the response data into central server.
Now I want to do this in BPEL, I am getting the response from N partner links but I am facing the problem while inserting the response data into central database.
Let me know if you have any idea or small example to achieve my requirement.
Note: All partner services were implemented in bottom up approach.
Have a good day,
Thanks in advance,
Regards,
Ishmayel.vHi to every one,
I have little bit knowledge in oracle SOA suit and having knowledge in java technologies,
I am developing one central reporting server for this I have the following requirement.
I need to call ‘N’ departmental servers (partner links) daily at specific time I need to insert all the transaction details (xml) response in central database (db adapter).
I’m able to call the ‘N’ partner links but I’m facing the problem while inserting ‘N’ servers response into central db using db adapter.
I written one common xsd file for request and response for N departmental server.
Following are the SOAP request and response formats for your reference.
<!-- =========== request formate ========= -->
<Reportreq xsi:type="rep:Reportreq">
<reqdate xsi:type="xsd:string">01-01-2010</reqdate>
<reqtime xsi:type="xsd:string">1100</reqtime>
</Reportreq>
<!-- ======= Response Formate ================================ -->
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:ResponseBean" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="ReportServer">
<errorcode xsi:type="xsd:string"/>
<errordesc xsi:type="xsd:string" xsi:nil="true"/>
<reportres xsi:type="xsd:string">
<![CDATA[<response:getTransData>
<transdate>01-01-2010</transdate>
<transtime>1100</transtime>
<distcode>03</distcode>
<transdata>
<centre>GVLH</centre><deptcode>15</deptcode><servicecode>1</servicecode>
<cashtrans>1</cashtrans><cashamt>165</cashamt><chqtrans>0</chqtrans>
<chqamt>0</chqamt><ddtrans>0</ddtrans><ddamt>0</ddamt>
<cardtrans>0</cardtrans><cardamt>0</cardamt>
<epaytrans>0</epaytrans><epayamt>0</epayamt><userchrgs>0</userchrgs>
</transdata>
<transdata><centre>RBVP</centre><deptcode>15</deptcode>
<servicecode>1</servicecode><cashtrans>1</cashtrans><cashamt>3000</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans><ddamt>0</ddamt><cardtrans>0</cardtrans>
<cardamt>0</cardamt><epaytrans>0</epaytrans><epayamt>0</epayamt>
<userchrgs>0</userchrgs></transdata>
<transdata><centre>RKBH</centre><deptcode>15</deptcode>
<servicecode>1</servicecode><cashtrans>1</cashtrans><cashamt>412</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans><ddamt>0</ddamt><cardtrans>0</cardtrans><cardamt>0</cardamt><epaytrans>0</epaytrans>
<epayamt>0</epayamt><userchrgs>0</userchrgs></transdata>
<transdata><centre>ARLV</centre><deptcode>101</deptcode>
<servicecode>1</servicecode><cashtrans>1</cashtrans><cashamt>125</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans>
<ddamt>0</ddamt><cardtrans>0</cardtrans><cardamt>0</cardamt>
<epaytrans>0</epaytrans><epayamt>0</epayamt><userchrgs>0</userchrgs>
</transdata>
<transdata><centre>NTRS</centre><deptcode>101</deptcode>
<servicecode>1</servicecode><cashtrans>7</cashtrans><cashamt>2567</cashamt>
<chqtrans>0</chqtrans><chqamt>0</chqamt><ddtrans>0</ddtrans>
<ddamt>0</ddamt><cardtrans>0</cardtrans>
<cardamt>0</cardamt><epaytrans>0</epaytrans><epayamt>0</epayamt>
<userchrgs>0</userchrgs></transdata>
<!-- I will get “transdata” tag nearly 1000 to 10000 -->
</response:getTransData> ]]>
</reportres>
</multiRef>
In java I hold the response XML string between the <response> tag and with the DOM parser I am able to insert the response data into central server.
Now I want to do this in BPEL, I am getting the response from N partner links but I am facing the problem while inserting the response data into central database.
Let me know if you have any idea or small example to achieve my requirement.
Note: All partner services were implemented in bottom up approach.
Have a good day,
Thanks in advance,
Regards,
Ishmayel.v -
XSLT Transformation from XML to ABAP field
Hi all,
How can I retrieve my XML node's value (EMPLOYEE) XML to an ABAP variable (W_KUNNR)
DATA w_kunnr TYPE string.
CONCATENATE
'<services>'
'<Myservice>'
'<APPLICATION>APPLI1</APPLICATION>'
'<SERVICE>SERV1</SERVICE>'
'<TOSAP>'
'<EMPLOYEE>00000036</EMPLOYEE>'
'</TOSAP>'
'</Myservice>'
'</services>'
INTO request.
CALL TRANSFORMATION z_trans
SOURCE XML request
RESULT kunnr = w_kunnr.
thanks.
Edited by: Noureddine MOUTAA on Oct 28, 2008 2:25 PMI did like this:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<KUNNR>
<xsl:value-of select="//services/Myservice/TOSAP/EMPLOYEE"/>
</KUNNR>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:transform> -
Using OBIEE Scheduler to export and save data in excel/pdf
Hi
Is it possible to use obiee scheduler and run particular reports and export the data into excel/pdf and save this file at given location on server.
env: obiee 11g/linux OS
Thanks for any ideas.Hi,
Yes it is possible.
As per my knowledge we don't have such option but we can do one way.
Using IBOTS you can store specific report and specific time in specific location.
Note : Using JS script.
Are you going to implement this way send me your mails id will send you js script for doing this.
Re: Auto SAVE to excel -- Please refer this thread.
Create js file using the below script and add this js scrif in your ibot advanced tab.
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var foldername = 'D:\IBOT'
if (FSO.FolderExists(foldername))
var fileName = foldername + "\\" +Parameter(1);
var fooFile = FSO.CopyFile(Parameter(0), fileName, true);
else
FSO.CreateFolder(foldername);
var fileName = foldername + "D:\IBOT" + Parameter(1);
var fooFile = FSO.CopyFile(Parameter(0), fileName, true);
Thanks,
Satya -
Localdefinitions.xml and format date for Calendar Prompt
HI!
1. I change in localdefinitions.xml all dateformats for my locale
2. I restarted my BI
3. no effects
why?yes, I restarted presentation server and oc4j.
but has no effects.
date prompt has strange behaviour...
for Administrator user
in English locale
default format YYYY-MM-DD
after change date by calendar, it has M.D.YYYY format
in my locale
default format YYYY-MM-DD
after change date by calendar, it has YYYY.M.D format
for other users
in English locale
default format YYYY-MM-DD
after change date by calendar, it has YYYY.M.D format
in my locale
default format YYYY-MM-DD
after change date by calendar, it has YYYY.M.D format
Maybe you are looking for
-
Connection cancellation error with Azure
Hello! From night to day started getting the error below when I run my application on the local machine. Publishing the application on Azure have no problems. I researched this error and in some places say it is temporary. Try again later. Others say
-
Remove password from main user account on os x 10.8
How do i remove password from main user account on os x 10.8 Thank you John
-
My overall speakers work but when I plug them into my iPod, there is no sound
How do you fix this?
-
Why does my photobooth unexpectedly quit?
When I start a video, it only records for 1 to 3 seconds and shuts the photobooth window right away. Then it asks to send an error report or restart it. I have no idea why it does this because I have a brand new macbook pro so it shouldn't have issue
-
Hi everyone, I have installed OIM 11g R2 successfully. I created a new user. When I want to see user's detail, following options open : Attibutes Roles Entitlements Accounts Direct Reports Admin Roles I want to provision a Resources, but Resources is