Call tranformation
In which cases can the abap statement call transformation can be used?
a. to transform as ixml document object into and abap data structure using xslt.
b. to transform an xml document contained in a string into another xml document using and xslt program.
c. to get canonic xml display of an abap data structure.
d. to transform an xml document contained in an xstring into another xlm document using an ST program.
e. to transform and abap data structure into an sml document using ST.
Thanks & Regards
Pragathi.
Hi
I feel more than one answer suits this question.
But if only one option then (e) satisfies
its not compulsory to be ixml document or any strict ABAP data type.(String or XString)
ST is used for the transformation of ABAP data to XML (serialization) and from XML to ABAP data (deserialization).
http://www.sap-hefte.de/download/dateien/1112/076_leseprobe.pdf
http://help.sap.com/saphelp_nw2004s/helpdata/en/27/101640a991c742e10000000a1550b0/frameset.htm
Thanks
Gaurav
Similar Messages
-
Trouble with Call Tranformation id_indent
Hello Guru,
Can anyone tell me why I'm having trouble with this.
" Convert xstring back into XML
CALL TRANSFORMATION id_indent
SOURCE XML gd_xstring
RESULT itab = <gt_itab>.
Exception : XSLT_BAD_SOURCE_CONTEXT
Regards,
KaisSorry buddy, I have been along way from home.
Can't remember how I solve it
Can you?
Probably, your string does contain some missleading characters. -
How to call a Proxy method in a program
hello All,
I created proxy which consumes Soap webservice. A method exits in that proxy. I created a program in which am calling the proxy method and passing input parameters(Exporting) and in output(Importing) am not getting any output. When i debugged the code, exceptions were raised during call tranformation.
What might me the error. Is the error in wsdl?
Regards,
Sanjani
Edited by: Sanjani on Dec 17, 2010 1:27 PM// Modified from Just Java
import java.io.*;
public class execDir {
public static void main(String args[]) {
try {
Runtime rt = Runtime.getRuntime(); // step 1
Process prcs = rt.exec("doDir.bat"); // step 2
InputStreamReader isr = // step 3
new InputStreamReader( prcs.getInputStream() );
BufferedReader br = new BufferedReader( // step 4.
isr );
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
} catch(IOException ioe) { System.out.println(ioe); }
Maybe this will help you. -
Hi
Using <b>XSLT</b> and <b>Call transformation</b> (XSLT scheme) to convert XML file to html the problem is that line breaks in xml are ignored when passing the call tranformation.
<b>Note in xml look like:</b>
<com:Note><![CDATA[
Serie 87% 0,000000
Amount in this period 01-01-2006 - 01-07-2006 - 180 days
Currency 16.267.117,38 DKK
Loan DKK 14.332.700,00
Debt 7.358.534,23
Indexsfactor 226,230
]]></com:Note>
<b>When HTML displayed in sap, - note is just a long string which continue out of the screen. Note looks like:</b>Serie 87% 0,000000Amount in this period 01-01-2006 - 01-07-2006 - 180 daysCurrency 16.267.117,38 DKKDebt 7.358.534,23Indexsfactor 226,230
What to do ? Any ideas ?hi Jan,
Check out the link
http://www.topxml.com/code/default.asp?p=3&id=v20031025170911&ms=20&l=xsl&sw=categ
This link contains a file that contains an importable xslt stylesheet with two templates. The first is a text wrap template that breaks texts at carriage returns. You need to modify the xslt.
[code]<xsl:template name="text.wrap">
<xsl:param name="texttowrap"/>
<xsl:variable name="textlength" select="string-length($texttowrap)"/>
<!-- don't waste time if no text supplied or remaining from recursion-->
<xsl:if test="$textlength > 0">
<xsl:choose>
<xsl:when test="contains($texttowrap,$CR)">
<!-- get the text before the first instance of a carriage return character-->
<xsl:variable name="<span style="background-color:yellow;color:red;font-weight:bold;">line</span>beforefirst<span style="background-color:yellow;color:red;font-weight:bold;">break</span>" select="substring-before($texttowrap,$CR)"/>
.................[/code]
Hope this helps.
Regards,
Richa -
Call transformation XSLT and long note string in XML
Hi
Using call transformation (XSLT scheme) to convert XML file to html the problem is that line breaks in xml are ignored when passing the call tranformation.
<b>Note in xml look like:</b>
<com:Note><![CDATA[
Serie 87% 0,000000
Amount in this period 01-01-2006 - 01-07-2006 - 180 days
Currency 16.267.117,38 DKK
Loan DKK 14.332.700,00
Debt 7.358.534,23
Indexsfactor 226,230
]]></com:Note>
<b>When HTML displayed in sap, - note is just a long string which continue out of the screen. Note looks like:</b>
Serie 87% 0,000000Amount in this period 01-01-2006 - 01-07-2006 - 180 daysCurrency 16.267.117,38 DKKDebt 7.358.534,23Indexsfactor 226,230
<i>What to do ? Any ideas ?</i>Hi Jon,
What is the XSLT program that you're using to transform the XML?
Can you try modifying the XSLT stylesheet and add or modify the following attribute.
<xsl:output indent="yes"/>
Regards,
Erwin -
Defining XSLT from Abap to XML and XML to Abap (Internal Table)
Hi Experts, I need help with this XSLT for call transformation. I have defined an internal table and intend to use it as a source for Call Tranformation. But I have a Problem defining its XSLT and help would be greatly appreciated! I also wonder if this XSLT can be used for XML to internal table? Or do I have to define another XSLT again.... Hope to hear from any of u soon!
CODES->>>
TYPES: BEGIN OF CONTENT,
CONTENT1(20),
CONTENT2(20),
END OF CONTENT.
TYPES: T_CONTENT TYPE TABLE OF CONTENT.
DATA: BEGIN OF I_DATA OCCURS 0,
KEY1(10),
KEY2(10),
CONT TYPE T_CONTENT,
END OF I_DATA.
DATA: WA_TBL TYPE CONTENT.
DATA: LI_TBL TYPE T_CONTENT.
START-OF-SELECTION.
populate data 1
CLEAR I_DATA.
I_DATA-KEY1 = 'AMI'.
I_DATA-KEY2 = 'LEE'.
CLEAR WA_TBL.
REFRESH LI_TBL.
WA_TBL-CONTENT1 = 'PENHAS ROAD'.
WA_TBL-CONTENT2 = 'SG'.
APPEND WA_TBL TO LI_TBL.
WA_TBL-CONTENT1 = 'GILLMAN ROAD'.
WA_TBL-CONTENT2 = 'SG'.
APPEND WA_TBL TO LI_TBL.
I_DATA-CONT = LI_TBL.
APPEND I_DATA.
populate data 1
CLEAR I_DATA.
I_DATA-KEY1 = 'KAI'.
I_DATA-KEY2 = 'LEE'.
CLEAR WA_TBL.
REFRESH LI_TBL.
WA_TBL-CONTENT1 = 'SUNSET WAY'.
WA_TBL-CONTENT2 = 'SG'.
APPEND WA_TBL TO LI_TBL.
WA_TBL-CONTENT1 = 'BEDOK NORTH'.
WA_TBL-CONTENT2 = 'SG'.
APPEND WA_TBL TO LI_TBL.
I_DATA-CONT = LI_TBL.
APPEND I_DATA.
call transformation (xslt)
source i_data = i_data
result xml xmlstr.here is the code sample using ixml library .
just create a report program and copy paste the following code.
if time permits, later on i will post the xslt program which you can use it call transformation.
REPORT y_test_xml.
DATA: l_ixml TYPE REF TO if_ixml,
l_ixml_sf TYPE REF TO if_ixml_stream_factory,
l_istream TYPE REF TO if_ixml_istream,
l_ostream TYPE REF TO if_ixml_ostream,
l_booklist TYPE REF TO if_ixml_element,
l_document TYPE REF TO if_ixml_document,
l_parser TYPE REF TO if_ixml_parser,
l_root_element TYPE REF TO if_ixml_element,
l_book_record TYPE REF TO if_ixml_element,
l_date TYPE REF TO if_ixml_element ,
l_time TYPE REF TO if_ixml_element ,
l_book_group TYPE REF TO if_ixml_element,
l_book_cat TYPE REF TO if_ixml_element ,
others TYPE REF TO if_ixml_element ,
link TYPE REF TO if_ixml_element ,
description TYPE REF TO if_ixml_element ,
xml TYPE xstring ,
size TYPE i ,
l_xml TYPE REF TO cl_xml_document .
DATA: xml_out TYPE string ,
temp_string TYPE string .
TYPES: BEGIN OF add_category,
category_id(10),
category_desc(40),
END OF add_category,
add_t_category TYPE add_category OCCURS 0 .
TYPES: BEGIN OF add_book_grp,
book_category TYPE add_t_category,
END OF add_book_grp,
add_t_book_grp TYPE add_book_grp OCCURS 0.
TYPES: BEGIN OF add_book,
book_num(10) TYPE c,
short_desc(40) TYPE c,
book_group TYPE add_t_book_grp,
END OF add_book,
add_t_book TYPE add_book OCCURS 0.
TYPES: BEGIN OF type_data,
date TYPE sy-datum,
time TYPE sy-uzeit,
book_record TYPE add_t_book,
END OF type_data.
DATA: i_data TYPE type_data OCCURS 0 WITH HEADER LINE.
DATA: itab LIKE soli OCCURS 0 WITH HEADER LINE.
DATA: cat_wa TYPE add_category ,
bk_gp_wa TYPE add_book_grp ,
bk_rec_wa TYPE add_book ,
bk_wa LIKE LINE OF i_data .
DATA: cat_tab TYPE STANDARD TABLE OF add_category ,
bk_gp_tab TYPE STANDARD TABLE OF add_book_grp ,
bk_rec_tab TYPE STANDARD TABLE OF add_book .
MOVE: '03' TO cat_wa-category_id ,
' BK GP 3' TO cat_wa-category_desc .
APPEND cat_wa TO cat_tab .
MOVE: '02' TO cat_wa-category_id ,
' BK GP 2' TO cat_wa-category_desc .
APPEND cat_wa TO cat_tab .
bk_gp_wa-book_category = cat_tab.
APPEND bk_gp_wa TO bk_gp_tab .
MOVE: '0012345678' TO bk_rec_wa-book_num ,
'OMS book' TO bk_rec_wa-short_desc .
bk_rec_wa-book_group = bk_gp_tab .
APPEND bk_rec_wa TO bk_rec_tab .
CLEAR:bk_gp_tab, cat_tab .
REFRESH :bk_gp_tab, cat_tab .
MOVE: '01' TO cat_wa-category_id ,
' BK GP 1' TO cat_wa-category_desc .
APPEND cat_wa TO cat_tab .
MOVE: '09' TO cat_wa-category_id ,
' BK GP 9' TO cat_wa-category_desc .
APPEND cat_wa TO cat_tab .
bk_gp_wa-book_category = cat_tab.
APPEND bk_gp_wa TO bk_gp_tab .
MOVE: '00123456789' TO bk_rec_wa-book_num ,
'SAP book' TO bk_rec_wa-short_desc .
bk_rec_wa-book_group = bk_gp_tab .
APPEND bk_rec_wa TO bk_rec_tab .
MOVE: sy-datum TO bk_wa-date ,
sy-uzeit TO bk_wa-time .
bk_wa-book_record = bk_rec_tab .
APPEND bk_wa TO i_data .
CLEAR: cat_wa , bk_gp_wa ,bk_rec_wa , bk_wa .
l_ixml = cl_ixml=>create( ).
l_ixml_sf = l_ixml->create_stream_factory( ).
l_document = l_ixml->create_document( ).
l_root_element = l_document->create_element( name = 'asx:abap' ).
l_root_element->set_attribute( name = 'xmlns:asx' value = 'http://www.sap.com/abapxml' ) .
l_root_element->set_attribute( name = 'version' value = '1.0' ).
l_document->append_child( new_child = l_root_element ).
others = l_document->create_simple_element( parent = l_root_element name = 'asx:values' ).
l_booklist = l_document->create_simple_element( parent = others name = 'BOOKLIST' ).
LOOP AT i_data INTO bk_wa .
CLEAR temp_string .
MOVE: bk_wa-date TO temp_string .
l_date = l_document->create_simple_element( parent = l_booklist name = 'DATE' value = temp_string ).
CLEAR temp_string .
MOVE: bk_wa-time TO temp_string .
l_time = l_document->create_simple_element( parent = l_booklist name = 'TIME' value = temp_string ).
LOOP AT bk_wa-book_record INTO bk_rec_wa .
l_book_record = l_document->create_simple_element( parent = l_booklist name = 'BOOK_RECORD' ) .
CLEAR temp_string .
MOVE: bk_rec_wa-book_num TO temp_string .
l_date = l_document->create_simple_element( parent = l_book_record name = 'BOOK_NUM' value = temp_string ).
CLEAR temp_string .
MOVE: bk_rec_wa-short_desc TO temp_string .
l_time = l_document->create_simple_element( parent = l_book_record name = 'SHORT_DESC' value = temp_string ).
l_book_group = l_document->create_simple_element( parent = l_book_record name = 'BOOK_GROUP' ).
LOOP AT bk_rec_wa-book_group INTO bk_gp_wa .
LOOP AT bk_gp_wa-book_category INTO cat_wa .
l_book_cat = l_document->create_simple_element( parent = l_book_group name = 'BOOK_CATEGORY' ).
CLEAR temp_string .
MOVE: cat_wa-category_id TO temp_string .
l_date = l_document->create_simple_element( parent = l_book_cat name = 'CATEGORY_ID' value = temp_string ).
CLEAR temp_string .
MOVE: cat_wa-category_desc TO temp_string .
l_time = l_document->create_simple_element( parent = l_book_cat name = 'CATEGORY_DESC' value = temp_string ).
ENDLOOP .
ENDLOOP .
ENDLOOP .
ENDLOOP .
l_ostream = l_ixml_sf->create_ostream_xstring( xml ).
l_document->render( ostream = l_ostream ).
CREATE OBJECT l_xml.
CALL METHOD l_xml->parse_xstring
EXPORTING
stream = xml.
l_xml->render_2_string(
EXPORTING
pretty_print = 'X'
IMPORTING
* RETCODE = RETCODE
stream = xml_out
size = size
CALL METHOD l_xml->display.
Hope this is helpful.
do let us know how it goes.
Regards
Raja -
Hi Experts, I need help with this XSLT for call transformation. I have defined an internal table and intend to use it as a source for Call Tranformation. But I have Problems to defining my internal table to get the resut of the function transformation.(SAP 4.7)
In my case i have a xml with attibutes and i can't store these attibutes in internal table.
Hope to hear from any of u soon!
CMA
<--XSLT--
>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/abapxml" version="1.0">
<xsl:template match="//Catalog">
<asx:abap xmlns:asx="http://www.sap.com/abapxml">
<asx:values>
<CATALOG>
<!-- Boucle catalogue -->
<xsl:for-each select="EnTete">
<ENTETE>
<EMETTEUR>
<xsl:value-of select="Emetteur"/>
</EMETTEUR>
<DATEPUBLICATION>
<xsl:value-of select="DatePublication"/>
</DATEPUBLICATION>
<!-- Suite -->
<xsl:for-each select="Univers">
<UNIVERS>
<LIBELLE>
<xsl:value-of select="@libelle"/>
</LIBELLE>
<OBJREF>
<xsl:value-of select="@objref"/>
</OBJREF>
<OBJID>
<xsl:value-of select="@objid"/>
</OBJID>
<EMETTEUR>
<xsl:value-of select="Emetteur"/>
</EMETTEUR>
</UNIVERS>
</xsl:for-each>
</ENTETE>
</xsl:for-each>
<!-- ENTETE-->
</CATALOG>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:transform>
<--XML--
>
<?xml version="1.0" encoding="UTF-8"?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml">
<asx:values>
<Catalog>
<EnTete>
<Emetteur>UGAP</Emetteur>
<DatePublication>27/06/2007 09:20:02</DatePublication>
<Univers libelle="Nettoyage, hygine et entretien" objref="08" objid="374417o.bemp" >
<Emetteur>UGAP</Emetteur>
</Univers>
<Univers libelle="Nettoyage, hygine et entretien" objref="09" objid="374417o.bemp" >
<Emetteur>UGAP</Emetteur>
</Univers>
</EnTete>
</Catalog>
</asx:values>
</asx:abap>
<--abap--
>
TYPES: BEGIN OF t_universs,
libelle(35),
objref(35),
objid(35),
boutique TYPE t_boutique,
END OF t_universs.
TYPES: t_univers TYPE t_universs OCCURS 0.
UNIVERS *
TYPES: BEGIN OF t_entetes,
Emetteur(20),
DatePublication(30),
UNIVERS TYPE t_univers,
END OF t_entetes.
*TYPES: t_entete TYPE t_entetes OCCURS 0.
DATA: it_data TYPE STANDARD TABLE OF t_entetes,
wa_data TYPE t_entetes.
PARAMETER p_file(200) DEFAULT '/tmp/catalogue4.xml' LOWER CASE .
start-of-selection.
DATA: dsn(20) VALUE '/usr/catalogue2.xml',
msg(100).
data : l_sysubrc like sy-subrc.
*OPEN DATASET p_file FOR INPUT MESSAGE msg
IN TEXT MODE ENCODING DEFAULT.
OPEN DATASET p_file FOR INPUT IN BINARY MODE.
IF sy-subrc = 0.
CLEAR : gv_read_xml.
clear l_sysubrc.
READ DATASET p_file INTO gv_read_xml.
Transformation XML en ABAP-DATA
PERFORM check_xml USING gv_read_xml.
CLOSE DATASET p_file.
ENDIF.
*& Form check_xml
FORM check_xml USING p_xml TYPE string.
DATA: cx_runtime_error TYPE REF TO cx_xslt_runtime_error.
DATA: cx_format_error TYPE REF TO cx_xslt_format_error.
DATA: err_text TYPE string.
DATA: lt_xml TYPE STANDARD TABLE OF typ_xml,
ls_xml TYPE typ_xml,
source_xml TYPE string,
lt_result_xml TYPE abap_trans_resbind_tab,
ls_result_xml TYPE abap_trans_resbind.
TRY.
CALL TRANSFORMATION ZUGAP
SOURCE XML p_xml
RESULT CATALOG = it_data.
ENDTRY.
LOOP AT it_data INTO wa_data.
ENDLOOP.
i'm wonder if is it possible to get attribute from xml with abap function transformation...
Hope to hear from any of u soon!Hi Marcelo,
Thanks a lot for your reply, your code is very usefull but my problem is located around the XSLT file.
With my progam (abap), I can't read the attibutes from a XML file correctly because the XSLT have not the suitable tags.
In my XML i have 2 rows of "Univers" and after use the function transformation from abap i can store only 1 rows in internal table :
<Catalog>
<EnTete>
<Emetteur>UBB</Emetteur>
<b><Univers libelle="Nettoyage, hygine et entretien" objref="08">
</Univers>
<Univers libelle="Nettoyage, hygine et entretien" objref="09">
</Univers></b>
</EnTete>
</Catalog>
XSLT :
<xsl:for-each select="EnTete">
<ENTETE>
<EMETTEUR>
<xsl:value-of select="Emetteur"/>
</EMETTEUR>
<xsl:for-each select="Univers">
<UNIVERS>
<UNIVERS1>
<LIBELLE> <xsl:value-of select="@libelle"/></LIBELLE>
<OBJREF> <xsl:value-of select="@objref"/> </OBJREF>
</UNIVERS1>
</UNIVERS>
</xsl:for-each>
</ENTETE>
</xsl:for-each>
My question is : How can i do to define attributes in XSLT to allow read them by a program abap ?
In my example, the program abap get only 1 attribute in my iternal table, what is the suitable syntax in the xslt to read all the attributes ?
Hope to hear from any of u soon!
Christophe. -
How to change XML Header in file
Hi,
How to have the following XML output header XML with simple transformation:
<?xml version="1.0"> encording="ISO-8859-1"?>
When I used the following transformation template:
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
I get the following output header and file is not readable.
<?xml version="1.0" encoding="utf-16" ?>
If i call tranformation without encoding option file is creted and readable. Does there is any impact on functionality if file is without header.
Thanks
anyaHi,
you could use the below alternative solution also as some Web services do not accept the message , if Content type is application/XML in the HTTP Header, it will accept only Text/XML. So While calling the Web service, the content has to be changed, This is possible using Module of the adapter as shown in the screen shot.
HTTP Header field values before using the module
User-Agent: SAP-Messaging-com.sap.aii.messaging/1.0505
content-id: [email protected]
content-type: application/xml
Content-Length: 1280
Module name - localejbs/AF_Modules/MessageTranspormationBean
Type - Local Enterprise Bean Module - This is defined by the user, but the same name should be given in the module configuration for passing the parameters. In this case transform In the module configuration ,
Module key - In this case transform
Parameter name - Transform.ContenType
Parameter Value - text/xml;charset=utf-8
Here you could use the required parameters and pass the values....:-))
Thanks
Swarup -
IDOC(ALEAUD01) to file...
Hi ..
we have a client requirment were they want the ALEAUD acknowledgement in the form of file.
So we are creating a IDOC to file scenario, where IDOC is ALEAUD which is mapped to create a file in the traget system. but when we post the IDoc we get thwe following error.
**Note: have a small doubt. Can we use ALEAUD Idoc as a normal IDoc to File Scenario. because with the documents i understand that ALEAUD is a acknowledgment IDoc which is generated based on the request IDOC. but in our scenario we are manually using the structure of ALEAUD in the source system**
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- Inbound Message
-->
<SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapter</SAP:Category>
<SAP:Code area="IDOC_ADAPTER">ATTRIBUTE_NO_REQUEST</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>ALEAUDIT IDoc cannot find request IDoc in Integration Server</SAP:Stack>
<SAP:Retry>N</SAP:Retry>
</SAP:Error>
please refer the thread having similer query...
Error in IDOC(ALEAUD) to file Scenario
anybdy have done the scenario....?????????/
Actualy i am sending shipment details from legacy system to SAP using IDOC (TPSSHT01)..and ... i dont want the acknowledgement imidiately....
is there any solution for this????/Hi Biplab,
Looking at the Structure of the IDOC ALEAUD basic type ALEAUD01 it doesnt seem like you can use it in a request sccenario.
Check the segment
E1PRTOB : IDoc number and application object in receiving system.
It would always have a receving system Information attached.
Hence I feel, you cannot use it for Request messages.
To convert this to a XML file, you can use SAP function modules or call tranformations directly which generate files. If i understand your requirement correctly, no mapping would be needed.
Let me know if this was helpful.
Regards,
Abhishek -
Java.lang.thread exception while using Xalan 2.0 in WLS 6.0
Hi, I'm trying to use Xalan 2.0 in a servlet hosted by WLS. Ive
modified Xalan's SimpleTransform sample to be a servlet. I
create a Transformer with the .xsl, then call tranform() to
print the tranformed xml to the response stream. The xml is
tranformed correctly, but it throws a java.lang.thread
exception. The standalone Xalan sample doesn't do this. Anyone
else seen this problem?
Here's the code of interestest, I apologize if its not formatted very well:
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException
PrintWriter out = res.getWriter();
res.setContentType("text/html");
out.println("<html><head><title>XalanTest<title></head>");
out.println("<body><h1>XalanTest</h1>");
try{
TransformerFactory tFactory = TransformerFactory.newInstance();
StreamSource ss = new StreamSource("file:\\\\My-path\\birds.xsl");
Transformer transformer = tFactory.newTransformer(ss);
StreamResult SR = new StreamResult(out);
transformer.transform(new StreamSource("file:\\\\My-path\\birds.xml"), SR );
catch(Exception e){
out.println("<p>" + e.toString() + "</p>");
e.printStackTrace(out);
out.println("<p>Exception</p>");
out.println("</body></html>");It also looks like the workaround suggested does not work.
I put the following code as workaround:
response.setContentType("text/html");
response.setHeader ("Pragma", "no-cache");
Transformer transformer;
TransformerFactory factory = TransformerFactory.newInstance();
String stylesheet = "config\\closs\\applications\\webroot\\jsp\\example\\Load2.xsl";
String sourceId = "config\\closs\\applications\\webroot\\jsp\\example\\Load2.xml";
String outputFile = "config\\closs\\applications\\webroot\\jsp\\example\\Load2.html";
String outputDirectFile = "config\\closs\\applications\\webroot\\jsp\\example\\Load2_Direct.html";
try
PrintWriter fout = new PrintWriter (new FileOutputStream (outputFile));
OutputStream os = new ByteArrayOutputStream();
transformer = factory.newTransformer(new StreamSource(stylesheet));
transformer.transform(new StreamSource(sourceId), new StreamResult(outputDirectFile));
transformer.transform(new StreamSource(sourceId), new StreamResult(os));
os.flush ();
os.close();
out.print(os.toString());
fout.print (os.toString ());
fout.flush ();
fout.close ();
catch (Exception e)
// Error Handler
e.printStackTrace();
The two .html files produced look exactly the same, which is good.
However, the screen output to my html browser (Internet Explorer 5.50 sp1) produces
different output.
That is strange, but that shows that this bug does not have a known workaround
"Rabinowitz" <[email protected]> wrote:
>
I have the same problem with java sun xml parser (jaxp 1-1)
It is interesting to know that all this perfectly works under weblogic
5.1, so
I cannot migrate my application to 6.0
So, the functionality of weblogic 6.0 degraded since 5.1.
I cannot buy the explanation that that is not bea's fault, because it
perfectly
worked with the same version of xml parser.
Now, their customer support is saying they have not decided whether this
is a
bug or a feature.
Interesting to know that degradation of functionality could be a feature!
It is now June 21, 3 months since this bug was reported, sp2 was shipped
since
that time, and this bug is still there.
"Chuck H. Zhao" <[email protected]> wrote:
I am having the exact same problem you are having. If we analyze the
stack
trace:
javax.xml.transform.TransformerException: java.lang.Thread
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
ava:1212)
at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2894)
at java.lang.Thread.run(Thread.java:484)
java.lang.ClassCastException: java.lang.Thread
at
weblogic.servlet.internal.ResponseHeaders.setDateHeader(ResponseHeaders.java
:273)
at
weblogic.servlet.internal.ServletResponseImpl.setDateHeader(ServletResponseI
mpl.java:449)
at
weblogic.servlet.internal.ServletResponseImpl.writeHeaders(ServletResponseIm
pl.java:637)
at
weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutputStreamI
mpl.java:124)
at
weblogic.servlet.internal.WLOutputStreamWriter.flush(WLOutputStreamWriter.ja
va:124)
at java.io.PrintWriter.flush(PrintWriter.java:120)
at
org.apache.xalan.serialize.SerializerToXML.flushWriter(SerializerToXML.java:
1431)
at
org.apache.xalan.serialize.SerializerToXML.endDocument(SerializerToXML.java:
629)
at
org.apache.xalan.transformer.ResultTreeHandler.endDocument(ResultTreeHandler
..java:180)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
ava:1194)
at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2894)
at java.lang.Thread.run(Thread.java:484)
What happened is: to support incremental output, Xalan-Java performs
the
transformation in a second thread while building the source tree inthe
main
thread. So Transformer.transform() creates a new thread to run the
transformer.run() method, which will write to weblogic's internal
ServletOutputStreamImpl, and in the end calls flush() on it.
ServletOutputStreamImpl determines that the headers haven't been written
yet, and the headers need to be written before any servlet output, so
it
calls ServletResponseImpl.writeHeaders(), which eventually calls
ResponseHeaders.setDateHeader(). The last method assumes the thread
is
weblogic's internal ExecuteThread and tries to cast the thread as such,
maybe to get the date from it. But the thread is a plain java.lang.Thread
created by xalan, thus we get the java.lang.ClassCastException:
java.lang.Thread
This suggests a second workaround: call ServletResponse.flushBuffer()
before any xalan stuff, which will force the headers to be written in
weblogic's ExecuteThread. The shortcoming of this is that this will
cause
the response to be commited, and if the xalan stuff throws exception
you can
not forward to another page.
Another thing is that xalan should not directly call flush() on
ServletOutputStreamImpl at all. I will report it to xalan and see if
they
consider that a bug. If they fix that then we have a third workaround:
set
the buffer size of ServletResponse big enough to accomodate everything
including the xslt outputs, so the ServletOutput does not need to be
flushed
during xalan code.
I do not consider this problem a weblogic bug, since the servlet container
has to right to expect any thread inside it to be its own. Serlvet2.2
spec
says:
1.2 What is a Servlet Container?
A Servlet Container may place security restrictions on the environment
that
a servlet executes in. In
a Java 2 Platform Standard Edition 1.2 (J2SE) or Java 2 Platform Enterprise
Edition 1.2 (J2EE)
environment, these restrictions should be placed using the permission
architecture defined by Java 2
Platform. For example, high end application servers may limit certain
action, such as the creation of
a Thread object, to insure that other components of the container are
not
negatively impacted.
Weblogic should explicitly warn the developers that creating threads
inside
the servlet container may have adverse effects, the same kind of problem
we
are having. (or maybe they already did somewhere in their documentation?)
On the xalan side, I would suggest them to either give the option to
switch
the two threads, or to give the option to buffer the output and write
it out
in the main thread, which is exactly what you did in your first workaround.
Any comments or thoughts on the subject are welcome.
-- Chuck Zhao
"MK Parini" <[email protected]> wrote in message
news:[email protected]...
I found, what I think to be a bug, and a work-around for it.
When doing an XSLT Transformation, you must specify a StreamResult
to which to write the output. I was doing my transformation in
a
servlet so I was writing my output to the HttpResponse
(The variable res is a javax.servlet.http.HttpServletResponse
object)
StreamResult htmlTarget = new StreamResult(res.getWriter());
If I use this, when I perform the transformation using the TRAX
APIs,
InputStream xslFile = context.getResourceAsStream(fileName);
TransformerFactory tFactory = TransformerFactory.newInstance();
Templates xslTemplates = tFactory.newTemplates(new StreamSource(xslFile));
transformer = xslTemplates.newTransformer();
transformer.transform(xmlSource, htmlTarget);
I receive the ClassCastException from the class
weblogic.servlet.internal.ResponseHeaders.setDateHeader(ResponseHeaders.java
:273),
as seen in my previous posting.
I discovered, if I write my output to a StringBuffer, and then
I write
the StringBuffer to the HttpResponse, I do not get the ClassCastException.
For example,
StringWriter myWriter = new StringWriter(2400);
StreamResult htmlTarget = new StreamResult(myWriter);
<Same transformation code as above>
myWriter.close();
PrintWriter out = res.getWriter();
out.print(myWriter.toString());
Is this a bug in the weblogic internal servlet class or am I just
missing something?
Also, one concern that I have with the workaround is that it might
hurt performance.
Any comments or thoughts on the subject are welcome. -
EOIO lost when tranform called in BPM
Hey all - we recently upgraded to SP11 & have found that for an EOIO interface, if it goes into a BPM & a transform step is called, the output is no longer EOIO. We THOUGHT this worked before, but wondering if anyone has seen something similar? We are searching thru OSS now... Thanks!
For fun, we tested a BPM process with no transform step that is simple...
receive -> branch -> send
The branch has the "default" leg going to the send, the other 2 are filters to end successfully... And when we send 100 interfaces thru this, they end up in order. I ran the test about 10 times, just to be sure we weren't lucky - and always the sequence is maintained...
Do you have the OSS note from your friend? If we could see this in writing - that the sequence isn't guaranteed - it would help us a lot. Thanks for all the input!!! -
Need help in creating XSD for a WSDL file to tranform given XML
Hi,
Please let me knoe if this is the right forum to post the query below:
We are trying to transform a XML output from a webservice using a XSD file. But we are facing problem as the XML output has some namespace issue and schema due to which transformation is not working fine. I am pasting the files below:
WSDL file used is
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/Projectix20/SOAPAccess" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/Projectix20/SOAPAccess" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/Projectix20/SOAPAccess">
<s:element name="ExecuteSQLToXML">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SQL" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ExecuteSQLToXMLResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ExecuteSQLToXMLResult">
<s:complexType mixed="true">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="NewDataSet">
<s:complexType>
<s:choice>
<s:element minOccurs="0" maxOccurs="unbounded" name="Table1">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="10" name="FName" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:choice>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetDataTablePage">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SQL" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="PageNumber" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="RecordsPerPage" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetDataTablePageResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetDataTablePageResult">
<s:complexType mixed="true">
<s:sequence>
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetRecordCount">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SQL" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetRecordCountResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="GetRecordCountResult" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="UploadCanAtt">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="CanID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="Filename" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="bytesData" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="UploadCanAttResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="UploadCanAttResult" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="DownloadCanAtt">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="CanAttID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="DownloadCanAttResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="DownloadCanAttResult" type="s:base64Binary" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="ExecuteSQLToXMLSoapIn">
<wsdl:part name="parameters" element="tns:ExecuteSQLToXML" />
</wsdl:message>
<wsdl:message name="ExecuteSQLToXMLSoapOut">
<wsdl:part name="parameters" element="tns:ExecuteSQLToXMLResponse" />
</wsdl:message>
<wsdl:message name="GetDataTablePageSoapIn">
<wsdl:part name="parameters" element="tns:GetDataTablePage" />
</wsdl:message>
<wsdl:message name="GetDataTablePageSoapOut">
<wsdl:part name="parameters" element="tns:GetDataTablePageResponse" />
</wsdl:message>
<wsdl:message name="GetRecordCountSoapIn">
<wsdl:part name="parameters" element="tns:GetRecordCount" />
</wsdl:message>
<wsdl:message name="GetRecordCountSoapOut">
<wsdl:part name="parameters" element="tns:GetRecordCountResponse" />
</wsdl:message>
<wsdl:message name="UploadCanAttSoapIn">
<wsdl:part name="parameters" element="tns:UploadCanAtt" />
</wsdl:message>
<wsdl:message name="UploadCanAttSoapOut">
<wsdl:part name="parameters" element="tns:UploadCanAttResponse" />
</wsdl:message>
<wsdl:message name="DownloadCanAttSoapIn">
<wsdl:part name="parameters" element="tns:DownloadCanAtt" />
</wsdl:message>
<wsdl:message name="DownloadCanAttSoapOut">
<wsdl:part name="parameters" element="tns:DownloadCanAttResponse" />
</wsdl:message>
<wsdl:portType name="SOAPAccessSoap">
<wsdl:operation name="ExecuteSQLToXML">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Executes a SQL statement and returns a generic XML document with results from SQL statement.</documentation>
<wsdl:input message="tns:ExecuteSQLToXMLSoapIn" />
<wsdl:output message="tns:ExecuteSQLToXMLSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetDataTablePage">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Executes a SQL statement and returns a generic XML document with results from SQL statement.</documentation>
<wsdl:input message="tns:GetDataTablePageSoapIn" />
<wsdl:output message="tns:GetDataTablePageSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetRecordCount">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Executes a SQL statement and returns a generic XML document with results from SQL statement.</documentation>
<wsdl:input message="tns:GetRecordCountSoapIn" />
<wsdl:output message="tns:GetRecordCountSoapOut" />
</wsdl:operation>
<wsdl:operation name="UploadCanAtt">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Uploads a text or binary attachment file for a Candidate record.</documentation>
<wsdl:input message="tns:UploadCanAttSoapIn" />
<wsdl:output message="tns:UploadCanAttSoapOut" />
</wsdl:operation>
<wsdl:operation name="DownloadCanAtt">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Uploads a text or binary attachment file for a Candidate record.</documentation>
<wsdl:input message="tns:DownloadCanAttSoapIn" />
<wsdl:output message="tns:DownloadCanAttSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SOAPAccessSoap" type="tns:SOAPAccessSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="ExecuteSQLToXML">
<soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/ExecuteSQLToXML" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetDataTablePage">
<soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/GetDataTablePage" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetRecordCount">
<soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/GetRecordCount" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="UploadCanAtt">
<soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/UploadCanAtt" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="DownloadCanAtt">
<soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/DownloadCanAtt" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SOAPAccess">
<wsdl:port name="SOAPAccessSoap" binding="tns:SOAPAccessSoap">
<soap:address location="http://sales.projectix.com:81/customer/SOAPAccess.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
XSD file used for transformation is:
<?xml version = '1.0' encoding = 'UTF-8'?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="ExecuteSQLToXMLResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="ExecuteSQLToXMLResult"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="parameters">
<xs:complexType>
<xs:sequence>
<xs:element ref="ExecuteSQLToXMLResponse"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ExecuteSQLToXMLResult">
<xs:complexType>
<xs:sequence>
<xs:element ref="NewDataSet"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FNAME" type="xs:string"/>
<xs:element name="Table1">
<xs:complexType>
<xs:sequence>
<xs:element ref="FNAME"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Table1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML Output from webservice call that we are trying to tranform using above XSD is:
<parameters >
<ExecuteSQLToXMLResponse xmlns = "http://tempuri.org/Projectix20/SOAPAccess" >
<ExecuteSQLToXMLResult >
<NewDataSet xmlns = "" >
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:msdata = "urn:schemas-microsoft-com:xml-msdata" >
<xs:element name = "NewDataSet" msdata:IsDataSet = "true" >
<xs:complexType >
<xs:choice maxOccurs = "unbounded" >
<xs:element name = "Table1" >
<xs:complexType >
<xs:sequence >
<xs:element name = "FNAME" type = "xs:string" minOccurs = "0" ></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<Table1 >
<FNAME >
JOHN
</FNAME>
</Table1>
<Table1 >
<FNAME >
John
</FNAME>
</Table1>
<Table1 >
<FNAME >
John
</FNAME>
</Table1>
<Table1 >
<FNAME >
JOHN
</FNAME>
</Table1>
<Table1 >
<FNAME >
John
</FNAME>
</Table1>
</NewDataSet>
</ExecuteSQLToXMLResult>
</ExecuteSQLToXMLResponse>
</parameters>
I am not sure what we are missing in XSD file that the XML output is not getting transformed correctly...although we tried transforming the XML output by removing some information in XML output above and it was getting trasformed properly..
We remove
1. xmlns = "http://tempuri.org/Projectix20/SOAPAccess" from <ExecuteSQLToXMLResponse xmlns = "http://tempuri.org/Projectix20/SOAPAccess" >
2. xmlns = "" from <NewDataSet xmlns = "" >
3 remove <parameters > and </parameters > tags from output and the XML Output is getting tranformed correctly.
Please let us know if we can transform the XML Output without requiring these removals.
Thanks,
PawanCould you clarify some things? You are saying you are trying to transform the xml output of a webservice with an xsd, but an xsd is a schema that describes the allowed format of a xml file. If you want to transform xml from one format to an other (from one xsd to an other) you have to use a xsl file. You can make and test this with JDeveloper. Are you calling the webservice from esb or bpel?
Kind Regards,
Andre -
How to do a FFT tranformation for every file in a folder of another folder?
Dear all,
I have a folder A, there are seven folders in folder A, I call these seven folders B. and there are 100 files in every folder B. These files are all the data information of current.
ok, now I need to transfer every current file into a FFT tranformation, and save the transferred files corresponding to the original file.
Does anyone have some idea? Thank you for any help!
JingHi Mike
In this way, How can I save the transferred files as the same way as the original files and folders?
after FFT transformation, I hope to get 100 files in every "transferred B" and seven "transferred B" folders in one "transferred A" folder.
Jing -
Problem with Call Transformation (ABAP to XML)
Hello
I call the tranformation function to serialize. I want to convert a ABAP internal table into XML.One of the column type is of time(t). On transformation, the values are changed.
Ex : If I have a value of 000009 (time format), on calling transformation it gets converted to 00:00:09. I dont want this conversion. I want to have the value as it is. I cant change the column data type from time to string.
Regards
Raghavendrahi
good
try this code
Just look at this piece of code, I think it should help you.
DATA : ITAB TYPE TABLE OF SPFLI,
L_XML TYPE REF TO CL_XML_DOCUMENT.
SELECT * FROM SPFLI INTO TABLE ITAB.
CREATE THE XML OBJECT
CREATE OBJECT L_XML.
CONVERT THE DATA TO XML
CALL METHOD L_XML->CREATE_WITH_DATA( DATAOBJECT = ITAB[] ).
DATA IS CONVERTED TO XML; DISPLAY THE XML-DOCUMENT
CALL METHOD L_XML->DISPLAY.
thanks
mrutyun^ -
Error in Tranform Activity While Writing From File to DB Table
Hi All,
I m trying to read the contents of a csv file and writing it to the db table.
When I am trying to map the file content to the db table using tranform activity, I am getting error as "failed to save XSL Map. Make sure XSL Map is valid".
Any ideas on how to over come this issue.
thnx in advance
Edited by: md.irfan.khan on Sep 7, 2009 4:00 AMfollowed the steps mentioned below. but still I'm getting the same error:
my transform.xsl file is as follows:
<?xml version = '1.0' encoding = 'UTF-8'?>
<ns0:SampledataCollection xmlns:ns0="http://xmlns.oracle.com/pcbpel/adapter/db/top/dbWriteService">
<ns0:Sampledata>
<ns0:firstnm>1</ns0:firstnm>
<ns0:gender>2</ns0:gender>
<ns0:age>3</ns0:age>
<ns0:lastnm>4</ns0:lastnm>
</ns0:Sampledata>
<ns0:Sampledata>
<ns0:firstnm>5</ns0:firstnm>
<ns0:gender>6</ns0:gender>
<ns0:age>7</ns0:age>
<ns0:lastnm>8</ns0:lastnm>
</ns0:Sampledata>
<ns0:Sampledata>
<ns0:firstnm>9</ns0:firstnm>
<ns0:gender>10</ns0:gender>
<ns0:age>11</ns0:age>
<ns0:lastnm>12</ns0:lastnm>
</ns0:Sampledata>
</ns0:SampledataCollection>
Logs from Audit Trails Activity:
<?xml version="1.0" encoding="UTF-8" ?>
- <audit-trail>
- <event sid="0" cat="2" type="2" n="0" date="2009-09-08T10:14:48.080+03:00">
- <message>
- <![CDATA[ New instance of BPEL process "file2DbProcess" initiated (# "40001").
]]>
</message>
</event>
- <event sid="BpPrc0.1" cat="1" type="2" label="process" n="1" date="2009-09-08T10:14:48.095+03:00" psid="0">
- <message>
- <![CDATA[ _cr_
]]>
</message>
</event>
- <event sid="BpTry0.2" cat="1" type="2" n="2" date="2009-09-08T10:14:48.127+03:00" psid="BpPrc0.1">
- <message>
- <![CDATA[ _cr_
]]>
</message>
</event>
- <event sid="BpSeq0.3" cat="1" type="2" label="sequence" n="3" date="2009-09-08T10:14:48.127+03:00" psid="BpTry0.2">
- <message>
- <![CDATA[ _cr_
]]>
</message>
</event>
- <event sid="BpSeq0.3" cat="2" type="2" wikey="40001-BpRcv0-BpSeq0.3-1" n="4" date="2009-09-08T10:14:48.158+03:00">
- <message>
- <![CDATA[ Received "inputVariable" call from partner "client"
]]>
</message>
<details id="0" />
- <detailsTemplate>
- <![CDATA[ <inputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload"><toReplace id="0"/></part></inputVariable>
]]>
</detailsTemplate>
</event>
- <event to="Invoke_fileService_SyncFileReadOperation_InputVariable_1" sid="BpSeq0.3" cat="2" type="1" wikey="40001-BpAss0-BpSeq0.3-2" n="5" date="2009-09-08T10:14:48.189+03:00">
- <message>
- <![CDATA[ Updated variable "Invoke_fileService_SyncFileReadOperation_InputVariable_1"
]]>
</message>
- <details>
- <![CDATA[
<Invoke_fileService_SyncFileReadOperation_InputVariable_1><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Empty"><empty xmlns="http://xmlns.oracle.com/pcbpel/adapter/file/fileReadService/">
<ns1:input xmlns:ns1="http://xmlns.oracle.com/file2DbProcess">gdfghf</ns1:input>
</empty>
</part></Invoke_fileService_SyncFileReadOperation_InputVariable_1>
]]>
</details>
</event>
- <event sid="BpSeq0.3" cat="2" type="4" wikey="40001-BpInv0-BpSeq0.3-3" partnerWSDL="fileReadService.wsdl" n="6" date="2009-09-08T10:14:48.439+03:00">
- <message>
- <![CDATA[ Faulted while invoking operation "SyncFileReadOperation" on provider "fileReadService".
]]>
</message>
- <details>
- <![CDATA[
<messages><input><Invoke_fileService_SyncFileReadOperation_InputVariable_1><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Empty"><empty xmlns="http://xmlns.oracle.com/pcbpel/adapter/file/fileReadService/">
<ns1:input xmlns:ns1="http://xmlns.oracle.com/file2DbProcess">gdfghf</ns1:input>
</empty>
</part></Invoke_fileService_SyncFileReadOperation_InputVariable_1></input><fault><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>null</code>
</part><part name="summary"><summary>file:/C:/OracleBpel/10.1.3.1/OraBPEL_1/bpel/domains/default/tmp/.bpel_file2DbProcess_v2009_09_08__36696_083f54f05823204c42612c5188057cd4.tmp/fileReadService.wsdl [ SyncFileReadOperation_ptt::SyncFileReadOperation(Empty,SampledataCollection) ] - WSIF JCA Execute of operation 'SyncFileReadOperation' failed due to: Error while translating.
Error occured while translating content from file C:\JDeveloperStudio10131\jdev\mywork\inputs\fileRead\csvFileInput.csv [Caused by: Start of root element expected.]
; nested exception is:
ORABPEL-11008
Error while translating.
Error occured while translating content from file C:\JDeveloperStudio10131\jdev\mywork\inputs\fileRead\csvFileInput.csv [Caused by: Start of root element expected.]
Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
</summary>
</part><part name="detail"><detail>null</detail>
</part></bindingFault></fault></messages>
]]>
</details>
</event>
- <event sid="BpSeq0.3" cat="2" type="4" wikey="40001-BpInv0-BpSeq0.3-3" n="7" date="2009-09-08T10:14:48.439+03:00">
- <message>
- <![CDATA[ "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown.
]]>
</message>
- <details>
- <![CDATA[
<bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>null</code>
</part><part name="summary"><summary>file:/C:/OracleBpel/10.1.3.1/OraBPEL_1/bpel/domains/default/tmp/.bpel_file2DbProcess_v2009_09_08__36696_083f54f05823204c42612c5188057cd4.tmp/fileReadService.wsdl [ SyncFileReadOperation_ptt::SyncFileReadOperation(Empty,SampledataCollection) ] - WSIF JCA Execute of operation 'SyncFileReadOperation' failed due to: Error while translating.
Error occured while translating content from file C:\JDeveloperStudio10131\jdev\mywork\inputs\fileRead\csvFileInput.csv [Caused by: Start of root element expected.]
; nested exception is:
ORABPEL-11008
Error while translating.
Error occured while translating content from file C:\JDeveloperStudio10131\jdev\mywork\inputs\fileRead\csvFileInput.csv [Caused by: Start of root element expected.]
Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
</summary>
</part><part name="detail"><detail>null</detail>
</part></bindingFault>
]]>
</details>
</event>
- <event sid="BpPrc0.1" cat="2" type="4" n="8" date="2009-09-08T10:14:48.439+03:00">
- <message>
- <![CDATA[ "BPELFault" has not been caught by a catch block.
]]>
</message>
</event>
- <event sid="BpPrc0.1" cat="1" type="2" n="9" date="2009-09-08T10:14:48.455+03:00">
- <message>
- <![CDATA[ _cl_
]]>
</message>
</event>
- <event sid="BpSeq0.3" cat="1" type="2" n="10" date="2009-09-08T10:14:48.455+03:00">
- <message>
- <![CDATA[ _cl_
]]>
</message>
</event>
- <event sid="BpPrc0.1" cat="2" type="2" n="11" date="2009-09-08T10:14:48.470+03:00">
- <message>
- <![CDATA[ BPEL process instance "40001" cancelled
]]>
</message>
</event>
</audit-trail>
Maybe you are looking for
-
How can I create a mobile application to connect with my php system
II have few question to ask all expert here : 1. Im using Netbeans IDE, how can I compile the .java file to .jar ? 2. Currently, I have created a point of sales application using php and I hope to create a Mobile application to connect with tis syste
-
Hi, I'm having a problem with the following code, when I add alphabetic characters or even nothing at all in the principal amt text field, I expect to get an error message, but I do not. This happens no matter which method I choose to compute the mor
-
Can Captivate 4 project files be opened in Captivate 5?
I was wondering if captivate 4 project files can be opened in captivate 5? I know captivate 2 project files cannot. Thanks guys, Kya.
-
How to output a checkbox in Smartform?
Does anybody know how to output a boolean as a checkbox in Smartform. I looked at the online help but found nothing about this. Thanks.
-
[CS3 - JS - Mac] JSXBIN issue
Hi, I made a .jsx script file that create and manage a menu item inbetween ID main menu. I put it in Startup Script folder and everyhting works. Why if I put there the same file exported as .jsxbin it doesn't work?