Script needed at OS level to Convert XML to FlatFile
Hi All,
Can any one providde me Script to Convert XML to FlatFile at OS Level(Windows Based script).I'd thankful for your suggestions..
Thanks
Pullarao
Hi !!
You can execute a Unix script running in the XI server from the File communication channel. Ie. if you want to do something which was not part of XI adapter configuation , then you can make use of external unix script and you can execute those from the XI.
For this, write a unix script and place in the XI OS level provided that path is accessible from PI Channel.
E.g
So u can use this in either Sender Channel to modify the data before it reaches into the Integration Server or in Receiver channel it is generally used to transfer the files into different location via Secure FTP
SAP help: http://help.sap.com/saphelp_nw2004s/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
Blog:/people/sameer.shadab/blog/2005/09/21/executing-unix-shell-script-using-operating-system-command-in-xi
XI can be in any OS.
Go through this again first.
http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
More in this blog,
/people/shabarish.vijayakumar/blog/2006/08/01/along-came-a-file-adapter-mr-ftp-and-rest-of-the-gang
Check these links
/people/venkat.donela/blog/2005/06/08/how-to-send-a-flat-file-with-various-field-lengths-and-variable-substructures-to-xi-30
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
<b>Pls Reward if useful</b>
Similar Messages
-
Need to have 'variable name' node in the converted XML data.
i am converting the abap data to xml using cl_xml_document. in the converted xml data, i need to have one more node. in the below example, i want a node <variable name="productionOrderDetails"> to come after the Data node.
?xml version="1.0"?>
<Data>
<item>
<DISPO>100</DISPO>
<PLNBEZ>F126</PLNBEZ>
<GAMNG>300.000</GAMNG>
<ERFMG>285.000</ERFMG>
<PRE_PROD>100.000</PRE_PROD>
<PRE_BLOG>0.000</PRE_BLOG>
<BLOG_MTD>144.000</BLOG_MTD>
<BAL_PLAN>144.000</BAL_PLAN>
</item>
</Data>
thanks in advanceHi ,
you can use class IF_IXML_NODE, first you need to read (go thru ) XML then need to Insert a New Node.
ref SAP Program BCCIIXMLT1/BCCIIXMLT*
regards
Prabhu -
To convert XML to ABAP internal table can we do it with DOM or we need XSLT
I have a requirement where I need to collect the data from XML file into an internal table.
I need to collect this data into an internal table as I should make use of this data and do Goods Receipt in SAP.
My XML file is very very complex and the child nodes in my XML file may occur ones or 10 times and change dynamically.
I want to know if XML to ABAP internal table is possible with DOM or does it need XSLT too.
I used the blog of Robert which uses DOM, but it I am unable to collect the data in internal table. The blog explains only how to wtite the out put to screen as element and value.
I want to know if XML to ABAP internal table is possible with DOM or do I need XSLT too? I am confused please help.
Any help will be highly appreciated.
Regards,
Jessica SamHello Jessica
Why not using the DOM itself for processing?
Below you see the post-processing coding which I use to add the interchange control number (ICN) into an EDI message (which at this stage is still an XML-EDI stream). This is done on SAP-XI yet on the ABAP stack so you could use this approach on your R/3 system as well.
method POSTPROCESSING.
* Post-Processing of outbound EDI invoices & dispatch advices
me->map_icn( ).
endmethod.
method MAP_ICN.
* define local data
DATA: lo_node TYPE REF TO if_ixml_node,
ld_name TYPE string,
ld_value TYPE string,
ld_error_code type MPG_ERRCODE,
** ld_control_number TYPE char13,
ld_rc TYPE i,
ld_msg TYPE string. " bapi_msg.
DATA: ld_interface TYPE string.
DATA: incode TYPE REF TO if_ixml_node_collection.
LOG-POINT ID zedi
SUBKEY mc_subkey_method_trace.
ld_error_code = md_clsname.
* Get next interchange control number (ICN)
me->md_next_number = me->get_next_number(
id_nrobj = me->md_nrobj " Object (SNRO)
id_nrnr = me->md_nrnr ). " Number Range
CALL METHOD zcl_edi_uk_counter=>calculate_modulo_n09
EXPORTING
id_input = me->md_next_number
receiving
rd_output = me->md_next_number.
* Build ICN according to naming conventions agreed with EDI customer
me->md_icn = me->generate_icn( me->md_next_number ).
ld_value = me->md_icn. " type conversion to string
CLEAR: incode,
lo_node.
incode = me->mo_document->get_elements_by_tag_name( mc_d_0020 ).
lo_node = incode->get_item( index = 0 ).
CALL METHOD lo_node->set_value
EXPORTING
value = ld_value
RECEIVING
rval = ld_rc.
IF ( ld_rc NE 0 ).
CONCATENATE 'Error [' mc_d_0020
']: Method SET_VALUE (IF_IXML_NODE)'
INTO ld_msg.
CONDENSE ld_msg.
me->mif_trace->trace2( message = ld_msg ).
RAISE EXCEPTION TYPE cx_mapping_fault
EXPORTING
* textid =
* previous =
error_code = ld_error_code
error_text = ld_msg.
** MESSAGE ld_msg TYPE 'A'.
ENDIF.
CLEAR: incode,
lo_node.
incode = me->mo_document->get_elements_by_tag_name( mc_d_0020_2 ). " element for ICN
lo_node = incode->get_item( index = 0 ).
CALL METHOD lo_node->set_value
EXPORTING
value = ld_value
RECEIVING
rval = ld_rc.
IF ( ld_rc NE 0 ).
CONCATENATE 'Error [' mc_d_0020_2
']: Method SET_VALUE (IF_IXML_NODE)'
INTO ld_msg.
CONDENSE ld_msg.
me->mif_trace->trace2( message = ld_msg ).
RAISE EXCEPTION TYPE cx_mapping_fault
EXPORTING
* textid =
* previous =
error_code = ld_error_code
error_text = ld_msg.
** MESSAGE ld_msg TYPE 'A'.
ENDIF.
* define local data
DATA: ls_record TYPE mpp_dynamic.
CLEAR: ls_record.
ls_record-namespace = mc_dynamic_namespace.
ls_record-name = mc_icn.
ls_record-value = ld_value.
mif_dynamic->add_record( ls_record ).
endmethod.
In your case you would need to do a DO...ENDDO loop until you parsed all required nodes.
NOTE: ME->MO_DOCUMENT is of TYPE REF TO IF_IXML_DOCUMENT.
Regards
Uwe -
Error on viewing an uploaded Xdo file of a converted XML report
1. Report converted from XML to BI publisher following the steps mentioned in the Oracle® Business Intelligence New Features Guide
Release 10.1.3.4.1
2. Uploaded the generated xdo file from the BI publisher screen "Upload a Report" option
3. The upload is successful. But when the report is clicked for viewing, it displays the error
"The report cannot be rendered because of an error, please contact the administrator"
"oracle.apps.xdo.dataengine.Parameter.getParameterDataType()I"
4. I set the debug level in the System Maintenance -> Server Configuration-> debug level option of the Admin Tab and bounced the OC4J
5. The following error displayed in the OC4J start screen
[030310_033043195][][STATEMENT] Setting JDBC Connections..
[030310_033043632][][EXCEPTION] java.lang.NoSuchMethodError: oracle.apps.xdo.dat
aengine.Parameter.getParameterDataType()I
Could someone help me out?
Thanks
SubuHello Tim / Experts,
Running EBS report in BI publisher
Followed the steps mentioned in the Standard Oracle docs/guides:
1. Change the output format of the report in concurrent program definition to produce XML output
2. Create the Data Definition by registering the concurrent program shortname in the Data definition of BI publisher
3. Create RTF template
4. Upload RTF template into the template manager of BI publisher to display the output from the concurrent request.
The step3 to create the RTF template has not been given much coverage in any of the oracle docs/guides
The requirement is for the RTF to have the same layout as the original rdf so that it displays the output in the same fashion. In order to produce the rtf file followed the steps below:
Converting Reports from Oracle Reports to Oracle BI Publisher
1. Saved the 6i RDF report in 10g report builder
2. From the Tools menu and File conversion sub-menu, converted the report in XML format
3. Ran the conversion script, with the input file as the XML file saved above
java.exe -classpath ……………………\xdocore.jar; ……………………\collections.jar; ……………………\aolj.jar; ……………………\xmlparserv2-904.jar oracle.apps.xdo.rdfparser.BIPBatchConversion -source ……………………\input -target ……………………\output -debug
4. The conversion script above produced the following outputs:
• Report definition file REPORT.xdo
• DataTemplate REPORT_template.xml
• PL/SQL package specification REPORTS.pls
• PL/SQL package REPORTB.pls
• RTF Layout Template REPORT.rtf
• Log file REPORT.log
5. The RTF Layout Template REPORT.rtf had field orientation changed from horizontal to vertical i.e. the fields in the original report were in one straight horizontal line, whereas the converted report output rtf had all these fields arranged in a vertical fashion
6. Compiled the packages into database
7. Uploaded the REPORT.rtf of steps 5 into the template manager of BI publisher
8. Ran the concurrent request
The report failed with warnings, not surprising since the layout was disoriented
Queries:
1) Which is the easiest method of producing the RTF template (that has an identical layout of the rdf report) ? Any document which explains all this ?
2) Steps to create the RTF template
3) To attach format triggers and other things which are not supported by conversion tool ?
Thanks
Anupam -
Getting error while converting xml to xsd
I am getting error"The table (citeinfo) cannot be the child table to itself in nested relations"
at "http://www.flame-ware.com/products/xml-2-xsd/Default.aspx", while converting
xml into xsd so i can register.
Wherever citeinfo is there it is giving error.
Please look at bold and suggest solution
thank you
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE metadata SYSTEM "http://www.fgdc.gov/metadata/fgdc-std-001-1998.dtd">
<metadata>
<idinfo>
<citation>
*<citeinfo>(1)*<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>One</sername>
<issue>One</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
<lworkcit>
*<citeinfo>(2)*<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>One</sername>
<issue>One</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
*</citeinfo>(2)*</lworkcit>
*</citeinfo>(1)*</citation>
<descript>
<abstract>Easement</abstract>
<purpose>E911 System</purpose>
<supplinf>None</supplinf>
</descript>
<timeperd>
<timeinfo>
<sngdate>
<caldate>20040512</caldate>
<time>09000000</time>
</sngdate>
</timeinfo>
<current>publication date</current>
</timeperd>
<status>
<progress>Complete</progress>
<update>As needed</update>
</status>
<spdom>
<bounding>
<westbc>
-122.339</westbc>
<eastbc>
-121.0716</eastbc>
<northbc>
37.4900</northbc>
<southbc>
36.9086</southbc>
</bounding>
</spdom>
<keywords>
<theme>
<themekt>Easement</themekt>
<themekey>Easement</themekey>
</theme>
<place>
<placekt>San Jose</placekt>
<placekey>San Jose</placekey>
</place>
<stratum>
<stratkt>None</stratkt>
<stratkey>None</stratkey>
</stratum>
<temporal>
<tempkt>None</tempkt>
<tempkey>None</tempkey>
</temporal>
</keywords>
<accconst>None</accconst>
<useconst>None</useconst>
<ptcontac>
<cntinfo>
<cntperp>
<cntper>Earl Harris</cntper>
<cntorg>City of San Jose</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>Actual Address</addrtype>
<address>801 N 1 ST</address>
<city>San Jose</city>
<state>CA</state>
<postal>90000</postal>
<country>USA</country>
</cntaddr>
<cntvoice>408.277.5626</cntvoice>
<cnttdd>408.277.5626</cnttdd>
<cntfax>408.298.8382</cntfax>
<cntemail>[email protected]</cntemail>
<hours>9-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</ptcontac>
<browse>
<browsen>None</browsen>
<browsed>None</browsed>
<browset>None</browset>
</browse>
<datacred>Unknown</datacred>
<secinfo>
<secsys>FGDC</secsys>
<secclass>Confidential</secclass>
<sechandl>Confidential Information</sechandl>
</secinfo>
<native>Microsoft Windows NT Version 4.0 (Build 1381) Service Pack 6; ESRI ArcCatalog 8.3.0.800</native>
<crossref>
*<citeinfo>(3)*<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
<lworkcit>
*<citeinfo>(*4)
<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
*</citeinfo>(*3)
</lworkcit>
*</citeinfo*>(4)
</crossref>
</idinfo>
<dataqual>
<attracc>
<attraccr>All the related attributes are populated 100%.</attraccr>
<qattracc>
<attraccv>100%</attraccv>
<attracce>All the related attributes are populated 100%.</attracce>
</qattracc>
</attracc>
<logic>100% adjusted,modified and captured easements.</logic>
<complete>100%</complete>
<posacc>
<horizpa>
<horizpar>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</horizpar>
<qhorizpa>
<horizpav>2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</horizpav>
<horizpae>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</horizpae>
</qhorizpa>
</horizpa>
<vertacc>
<vertaccr>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</vertaccr>
<qvertpa>
<vertaccv>2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</vertaccv>
<vertacce>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</vertacce>
</qvertpa>
</vertacc>
</posacc>
<lineage>
<srcinfo>
<srccite>
<*citeinfo>(5)*<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
<lworkcit>
*</citeinfo>(5*)*<citeinfo>(6)*
<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
*</citeinfo>(5)*
</lworkcit>
*</citeinfo>(6)*
</srccite>
<srcscale>24000</srcscale>
<typesrc>FTP</typesrc>
<srctime>
<timeinfo>
<sngdate>
<caldate>20040512</caldate>
<time>09000000</time>
</sngdate>
</timeinfo>
<srccurr>publication date</srccurr>
</srctime>
<srccitea>Unknown</srccitea>
<srccontr>MGE dgn contains easement data.</srccontr>
</srcinfo>
<procstep>
<procdesc>Easement data is reprojected from NAD27 to NAD83.
Further it is adjusted as per the spatial alignment shown in MGE input dgn.</procdesc>
<srcused>Easement</srcused>
<procdate>20040512</procdate>
<proctime>09000000</proctime>
<srcprod>BAS_EASEMENT</srcprod>
<proccont>
<cntinfo>
<cntperp>
<cntper>Mahesh P Choudhury</cntper>
<cntorg>Rolta International Inc.</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>mailing address</addrtype>
<address>5865 North Point Parkway</address>
<city>Alpharetta</city>
<state>GA</state>
<postal>30022</postal>
<country>USA</country>
</cntaddr>
<cntvoice>678.942.5015</cntvoice>
<cnttdd>678.942.5015</cnttdd>
<cntfax>678.942.5001</cntfax>
<cntemail>[email protected]</cntemail>
<hours>8-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</proccont>
</procstep>
</lineage>
<cloud>Unknown</cloud>
</dataqual>
<spdoinfo>
<indspref>unknown</indspref>
<direct>Vector</direct>
<ptvctinf>
<sdtsterm>
<sdtstype>String</sdtstype>
<ptvctcnt>2203</ptvctcnt>
</sdtsterm>
</ptvctinf>
</spdoinfo>
<spref>
<horizsys>
<geograph>
<latres>5.5</latres>
<longres>5.5</longres>
<geogunit>Decimal degrees</geogunit>
</geograph>
<geodetic>
<horizdn>North American Datum of 1983</horizdn>
<ellips>Geodetic Reference System 80</ellips>
<semiaxis>1</semiaxis>
<denflat>2</denflat>
</geodetic>
</horizsys>
<vertdef>
<altsys>
<altdatum>North American Vertical Datum of 1988</altdatum>
<altres>0.002</altres>
<altunits>sf</altunits>
<altenc>Attribute values</altenc>
</altsys>
<depthsys>
</depthsys>
</vertdef>
</spref>
<eainfo>
<detailed>
<enttyp>
<enttypl>
BAS_EASEMENT</enttypl>
<enttypd>Contains geometry and attributes for easement segments</enttypd>
<enttypds>Data Model Dictionary</enttypds>
</enttyp>
<attr>
<attrlabl>BAS_EASEMENT_ID</attrlabl>
<attrdef>Migrated from STREET table ID column. After all the existing IDs have been migrated, assign ID #70,001 onwards for the new easement (or what ever # is available sequentially using, street centerline #) ID's.</attrdef>
<attrdefs>ESRI</attrdefs>
<attrdomv>
<udom>Sequential unique whole numbers that are automatically generated.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>SURVEY_LENGTH</attrlabl>
<attrdef>Actual length of easement (international foot).This DOES take into account the State Plane Coordinate System.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Surveyed segment length</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>ROW_WIDTH</attrlabl>
<attrdef>Width of right-of-way (international feet)</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Right-of-way width</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated from ROW files</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>FROM_EASEMENT_ID</attrlabl>
<attrdef>Self-referential key to BAS_EASEMENT table, that contains locational information about the easement that the easement is digitized from. "FROM" is the starting point of digitization</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an easement to which FROM side of this easement is connected.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>FROM_STREET_ID</attrlabl>
<attrdef>Foreign key to BAS_STREET_SEGMENT table, that contains locational information about street segment that the easement is digitized from. "FROM" is the starting point of digitization</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an street segment to which FROM side of this easement is connected.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>TO_EASEMENT_ID</attrlabl>
<attrdef>Self-referential key to BAS_EASEMENT table, that contains locational information about the easement that the easement is digitized to. "TO" is the ending point of digitization.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an easement to which TO side of this easement is closely located.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>TO_STREET_ID</attrlabl>
<attrdef>Foreign key to BAS_STREET_SEGMENT table, that contains locational information about street segment that the easement is digitized to. "TO" is the ending point of digitization.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an street segment to which TO side of this easement is closely located.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>OTH_PROCESSING_STATUS_ID</attrlabl>
<attrdef>ID of the status/result of last run batch job.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Migrated from PLAN_1 in MGE tables and GIS_TRACKING.MDB Access Database</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>MUNICIPALITY_NAME</attrlabl>
<attrdef>Name of municipality in which the easement primarily resides.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<codesetd>
<codesetn>MUNICIPALITY_NAME_DOMAIN</codesetn>
<codesets>Data Model Dictionary</codesets>
</codesetd>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated using Municipal boundary source data.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>RECORD_DRAWING_FLAG</attrlabl>
<attrdef>Engineering plan that has been accepted by the City of San Jose (Y or N).</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>USERNAME who last modified this record</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated using source data.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>ACQUISITION_DATE</attrlabl>
<attrdef>Official date engineering plan accepted by the City of San Jose on this date</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Date/Time stamp of last record modification</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated using source data.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>GEO_MOD_DATE</attrlabl>
<attrdef>Time stamp when GEOMETRY column was last modified.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Time stamp when GEOMETRY column was last modified.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Data modified date.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>GDO_GEOMETRY</attrlabl>
<attrdef>Contains spatial data with true arc geometry.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Oracle Spatial Geometry Data - True Arcs</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>MAN_OVERRIDE</attrlabl>
<attrdef>This flag is 'N' by default. If this flag is set to 'Y' no unattended batch process will touch it ever again.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Flag set for batch process</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>MESSAGE</attrlabl>
<attrdef>Message from automated batch process to operator; can be "OK", or error message, or "to be checked", etc.</attrdef>
<attrdefs>data model dictionary</attrdefs>
<attrdomv>
<udom>GDO_GEOMETRY.LEN</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>OTH_PLAN_CREATED</attrlabl>
<attrdef>PLAN_1 in STREET table should be migrated to BAS_EASEMENT table OTH_PLAN_ID_CREATED column. This value should also be entered into the OTH_PLAN table PLAN_NAME column if not present.</attrdef>
<attrdefs>Data Dictionary</attrdefs>
<attrdomv>
<codesetd>
<codesetn>OTH_PLAN_DOMAIN</codesetn>
<codesets>data model dictionary</codesets>
</codesetd>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>OTH_PLAN_MODIFIED</attrlabl>
<attrdef>PLAN_2 in STREET table should be migrated to BAS_EASEMENT table OTH_PLAN_ID_MODIFIED column. This value should also be entered into the OTH_PLAN table PLAN_NAME column if not present</attrdef>
<attrdefs>Data dictionary</attrdefs>
<attrdomv>
<codesetd>
<codesetn>OTH_PLAN_DOMAIN</codesetn>
<codesets>data model dictionary</codesets>
</codesetd>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>LINEAGE_ID</attrlabl>
<attrdef>Artificial Numeric Identifier; Assigned to any graphical object; Unique throughout the system. Shared among tables. This column would also be used by EDL Administrator for lineage.</attrdef>
<attrdefs>Data dictionary</attrdefs>
<attrdomv>
<udom>Artificial Numeric Identifier</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>GDO_GEOMETRY.LEN</attrlabl>
<attrdef>Created default</attrdef>
<attrdefs>Data model</attrdefs>
<attrdomv>
<udom>unknown</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
</detailed>
<overview>
<eaover>Populated using MRF Tools</eaover>
<eadetcit>Various sources</eadetcit>
</overview>
</eainfo>
<distinfo>
<distrib>
<cntinfo>
<cntperp>
<cntper>Earl Harris</cntper>
<cntorg>City of San Jose</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>Actual Address</addrtype>
<address>801 N 1 ST</address>
<city>San Jose</city>
<state>CA</state>
<postal>90000</postal>
<country>USA</country>
</cntaddr>
<cntvoice>408.277.5626</cntvoice>
<cnttdd>408.277.5626</cnttdd>
<cntfax>408.298.8382</cntfax>
<cntemail>[email protected]</cntemail>
<hours>9-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</distrib>
<resdesc>Unknown</resdesc>
<distliab>Unknown</distliab>
<stdorder>
<digform>
<digtinfo>
<formname>GM Pro Access</formname>
<formvern>5.1</formvern>
<formspec>GM Pro 5.1</formspec>
<formcont>Easement data</formcont>
<filedec>no compression applied</filedec>
<transize>60</transize>
</digtinfo>
<digtopt>
<onlinopt>
<computer>
<networka>
<networkr>FTP</networkr>
</networka>
</computer>
<accinstr>FTP</accinstr>
<oncomp>FTP server</oncomp>
</onlinopt>
<offoptn>
<offmedia>None</offmedia>
<reccap>
<recden>1</recden>
<recdenu>None</recdenu>
</reccap>
<recfmt>None</recfmt>
<compat>None</compat>
</offoptn>
</digtopt>
</digform>
<fees>Unknown</fees>
<ordering>Unknown</ordering>
<turnarnd>Unknown</turnarnd>
</stdorder>
<custom>Unknown</custom>
<techpreq>Unknown</techpreq>
<availabl>
<timeinfo>
<sngdate>
<caldate>20040512</caldate>
<time>09000000</time>
</sngdate>
</timeinfo>
</availabl>
</distinfo>
<metainfo>
<metd>20040512</metd>
<metrd>20040512</metrd>
<metfrd>20040519</metfrd>
<metc>
<cntinfo>
<cntperp>
<cntper>Mahesh P Choudhury</cntper>
<cntorg>Rolta International Inc</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>mailing address</addrtype>
<address>5865 North Point Parkway</address>
<city>Alpharetta</city>
<state>GA</state>
<postal>30022</postal>
<country>USA</country>
</cntaddr>
<cntvoice>678.942.5015</cntvoice>
<cnttdd>678.942.5015</cnttdd>
<cntfax>678.942.5001</cntfax>
<cntemail>[email protected]</cntemail>
<hours>8-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</metc>
<metstdn>FGDC Content Standards for Digital Geospatial Metadata</metstdn>
<metstdv>FGDC-STD-001-1998</metstdv>
<mettc>local time</mettc>
<metac>Unknown</metac>
<metuc>Unknown</metuc>
<metsi>
<metscs>Unknown</metscs>
<metsc>Confidential</metsc>
<metshd>Unknown</metshd>
</metsi>
<metextns>
<onlink>http://www.esri.com/metadata/esriprof80.html</onlink>
<metprof>ESRI Metadata Profile</metprof>
</metextns>
</metainfo>
</metadata>I am having error while registering as undefined element for citeinfo, timeinfo and cntinfo as shown below
Please could you help me solve.
thanks
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="citationType">
<xs:sequence>
*<xs:element ref="citeinfo"/>*
</xs:sequence>
</xs:complexType>
SQL> BEGIN
2 DBMS_XMLSCHEMA.registerSchema(
3 SCHEMAURL => 'fgdc-std-001-1998-sect011.xsd',
4 SCHEMADOC => bfilename('XMLDIR','fgdc-std-001-1998-sect011.xsd'),
5 CSID => nls_charset_id('UTF8'));
6 END;
7 /
BEGIN
ERROR at line 1:
ORA-31154: invalid XML document
ORA-19202: Error occurred in XML processing
LSX-00021: undefined element "citeinfo"
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 37
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 61
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 126
ORA-06512: at line 2
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="timeperdType">
<xs:sequence>
*<xs:element ref="timeinfo"/> *
<xs:element ref="current"/>
</xs:sequence>
</xs:complexType>
<xs:element name="current" type="currentType">
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="ptcontacType">
<xs:sequence>
*<xs:element ref="cntinfo"/> *
</xs:sequence>
</xs:complexType>
<xs:element name="browse" type="browseType">
<xs:annotation> -
Converting XML to String in OSB
Hi All,
Is there any function (apart from fn-bea:serialize function) for converting XML payload to a String in OSB. Please let me know.
Thanks,
BpeltechieThat's how it's worded by W3C
http://www.w3.org/TR/REC-xml/#syntax
The ampersand character (&) and the left angle bracket (<) must not appear in their literal form, except when used as markup delimiters, or within a comment,
a processing instruction, or a CDATA section. If they are needed elsewhere, they must be escaped using either numeric character references or the
strings " & " and " & lt; " respectively. The right angle bracket (>) may be represented using the string " & gt; ", and must, for compatibility, be
escaped using either " & gt; " or a character reference when it appears in the string " ]]> " in content, when that string is not marking the end
of a CDATA section.Note that it says left angle bracket must not appear in their literal form, but the right angle bracket may be represented using the string " &gt; "
Cheers,
Vlad -
Convert XML to SAP internal table
Hi gurus,
My program is suppose to get current exchange rate file from website and upload it in SAP.
by using FM 'HTTP_GET', im getting the data in XML format.My problem is..i have tried to use transformation but failed to
map it against XML data element..and i have tried to use CALL FUNCTION 'SCMS_TEXT_TO_XSTRING' and then CALL FUNCTION 'SMUM_XML_PARSE' but it returns initial value with error ''line 0 col 12-unexpected symbol: '>'' .
Below is an excerpt of my XML file:
..<xml version>
..<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
.. xmlns:o="urn:schemas-microsoft-com:office:office"
.. xmlns:x="urn:schemas- microsoft-com:office:excel"
.. xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
.. <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>10875</WindowHeight>........ <WindowWidth>13260</WindowWidth><WindowTopX>480</WindowTopX><WindowTopY>30</Wind
.. <Style ss:ID="Default" ss:Name="Normal">
.. <Alignment ss:Vertical="Bottom"/>
.. <Borders/>
.. <Font/>
.. <Interior/>
.. <NumberFormat/>
.. <Protection/>
.. </Style>
.. <Style ss:ID="BoldColumn">
.. <Font ss:FontName="Microsoft Sans Serif" x:Family="Swiss" ss:Bold="1"/>
.. <Worksheet ss:Name="Page1"><Table ss:StyleID="s21" > <Column ss:Width="130"/> <Column ss:Width="85"/> <Column .. ss:Width="85"/> <Column ss:Width="85"/> <Column ss:Widt
.. Cell><Cell ss:MergeAcross="1" ss:StyleID="BoldColumn"><Data ss:Type="String">Average Buying Rates</Data></Cell><Cell .. ss:MergeDown="1" ss:StyleID="BoldColumn"><Data ss:Type="Stri
.. ss:Type="Number">47.3732</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">47.5374</Data></Cell><Cell .. ss:StyleID="Decimal"><Data ss:Type="Number">48.2323</Data></Ce
.. " ><Data ss:Type="String">HONG KONG</Data></Cell><Cell ss:StyleID="StringLiteralCenter" ><Data .. .. ss:Type="String">HKD</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Numb
.. ss:Type="Number">22.8131</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">23.2595</Data></Cell>.. .. </Row><Row><Cell ss:StyleID="StringLiteral" ><Data ss:Type="String"
.. ss:StyleID="StringLiteralCenter" ><Data ss:Type="String">IDR</Data></Cell><Cell ss:StyleID="Decimal"><Data .. ss:Type="Number">3.0395</Data></Cell><Cell ss:StyleID="Decimal"><Data
.. ecimal"><Data ss:Type="Number">30.6424</Data></Cell></Row><Row><Cell ss:StyleID="StringLiteral" ><Data .. ss:Type="String">AUSTRALIA</Data></Cell><Cell ss:StyleID="StringLiteralCe
.. ell ss:StyleID="Decimal"><Data ss:Type="Number">0.3392</Data></Cell><Cell ss:StyleID="Decimal"><Data .. ss:Type="Number">0.3409</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Typ
.. StringLiteral" ><Data ss:Type="String">DENMARK</Data></Cell><Cell ss:StyleID="StringLiteralCenter" ><Data .. ss:Type="String">DKK</Data></Cell><Cell ss:StyleID="Decimal"><Data ss
.. ata ss:Type="Number">4.4550</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.6073</Data></Cell>.. </Row><Row></Row><Row></Row><Row><Cell ss:MergeAcross="4" ss:Style
.. s of 23 November 2010</Data></Cell></Row><Row></Row><Row><Cell ss:MergeAcross="4" .. ss:StyleID="BoldColumn_Left" ><Data ss:Type="String">2. Foreign Exchange Rates (THOMSON REUTE
.. ><Data ss:Type="String">ZAR</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.2735</Data></Cell>.. <Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.3125</Data></
.. ="Decimal"><Data ss:Type="Number">106.5459</Data></Cell><Cell ss:StyleID="Decimal"><Data .. ss:Type="Number">107.5164</Data></Cell></Row><Row><Cell ss:StyleID="StringLiteral" ><Da
.. a></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.6916</Data></Cell></Row><Row><Cell .. ss:StyleID="StringLiteral" ><Data ss:Type="String">BANGLADESH</Data></Cell><Cell
.. r">0.0074</Data></Cell></Row><Row><Cell ss:StyleID="StringLiteral" ><Data ss:Type="String">KENYA</Data></Cell><Cell .. ss:StyleID="StringLiteralCenter" ><Data ss:Type="String">KE
.. ><Cell ss:StyleID="StringLiteral" ><Data ss:Type="String">VIET NAM</Data></Cell><Cell ss:StyleID="StringLiteralCenter" >.. <Data ss:Type="String">VND</Data></Cell><Cell ss:StyleI
.. A</Data></Cell><Cell ss:StyleID="StringLiteralCenter" ><Data ss:Type="String">LKR</Data></Cell><Cell .. .. ss:StyleID="Decimal"><Data ss:Type="Number">0.2686</Data></Cell><Cell ss:St
.. String">OMR</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">77.7094</Data></Cell><Cell
Please help me to translate my XML file into SAP format...i need it fixed urgently..
Edited by: Guest101 on Dec 28, 2010 12:11 PMIt has 2 part one is source code and another is the XML file
create an XML file with the data provided in the last 2.
then place it in a path mention the path in the below source.
1. Complete code for converting XML to internal table in SAP.
*& Report ZTST_PGM02
REPORT ZTST_PGM02.
Load iXML Lib.
type-pools: ixml.
class cl_ixml definition load.
data: G_IXML type ref to if_ixml.
data: STREAMFACTORY type ref to if_ixml_stream_factory.
data: ISTREAM type ref to if_ixml_istream.
data: DOCUMENT type ref to if_ixml_document.
data: PARSER type ref to if_ixml_parser.
data: LV_FILE_URL type rlgrap-filename.
You should provide the parameter for file name
LV_FILE_URL = 'D:\navps\input_xml.xml'.
types: begin of XML_LINE,
DATA(256) type x,
end of XML_LINE.
types: begin of TY_HEADER,
CUST_NAME(20) type c,
CARD_NO(20) type c,
TAX_AMOUNT(10) type c,
TOTAL_AMOUNT(10) type c,
end of TY_HEADER.
types: begin of TY_ITEM,
ITEM_NO(4) type n,
ITEM_ID(20) type c,
ITEM_TITLE(50) type c,
ITEM_QTY(10) type c,
ITEM_UPRICE(10) type c,
end of TY_ITEM.
data: GV_HEADER type TY_HEADER.
data: GT_ITEM type standard table of TY_ITEM with header line.
data: XML_TABLE type table of XML_LINE,
XML_TABLE_SIZE type i.
The next step is creating the main factory for the iXML library:
G_IXML = cl_ixml=>create( ).
Now Create Stream Factory
STREAMFACTORY = G_IXML->create_stream_factory( ).
upload a file from the client's workstation
call function 'WS_UPLOAD'
exporting
filename = LV_FILE_URL
filetype = 'BIN'
importing
filelength = XML_TABLE_SIZE
tables
data_tab = XML_TABLE
exceptions
others = 11.
wrap the table containing the file into a stream
ISTREAM = STREAMFACTORY->create_istream_itable( table = XML_TABLE
size = XML_TABLE_SIZE )
Get the file data as Stream
*istream = streamfactory->create_istream_uri( public_id = lv_file_url
system_id = lv_file_url ).
Create XML Document instance
DOCUMENT = G_IXML->create_document( ).
Create parser Object
PARSER = G_IXML->create_parser( stream_factory = STREAMFACTORY
ISTREAM = istream
DOCUMENT = document ).
Parse an XML document into a DOM tree
*parser->parse( ).
Parsing Error Processing
if PARSER->parse( ) ne 0.
if 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 = PARSER->num_errors( ).
write: COUNT, ' parse errors have occured:'.
INDEX = 0.
while INDEX < COUNT.
PARSEERROR = 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.
Close the stream since it #s not needed anymore
call method ISTREAM->close( ).
clear ISTREAM.
Now try to make it look good
data : lv_size type sytabix,
lv_ret_code type sysubrc.
data: lo_xml_document type ref to cl_xml_document.
field-symbols: <fs_xml_data> type any table.
lo_xml_document = document.
call method lo_xml_document->get_as_table
importing
table = <fs_xml_data>
size = lv_size
retcode = lv_ret_code
*data: items type ref to if_ixml_node_collection.
*items = document->get_elements_by_tag_name( name = 'Item' ).
*data: iterator type ref to if_ixml_node_iterator,
node type ref to if_ixml_node.
*iterator = document->create_iterator( ).
*node = iterator->get_next( ).
*while not node is initial.
do something with the node
node = iterator->get_next( ).
*endwhile.
DATA : GV_NODE type ref to if_ixml_node.
DATA : GV_NODETEXT type STRING.
data: GV_FIRST_TIME.
GV_FIRST_TIME = 'X'.
GV_NODE = DOCUMENT.
GT_ITEM-item_no = 1.
perform GET_DATA tables GT_ITEM
using GV_NODE
changing GV_HEADER.
Last item is still not added.
append GT_ITEM.
write : GV_HEADER-cust_name,
GV_HEADER-card_no,
GV_HEADER-tax_amount,
GV_HEADER-total_amount.
loop at GT_ITEM.
write /:.
write : GT_ITEM-item_no,
GT_ITEM-item_id,
GT_ITEM-item_title,
GT_ITEM-item_qty,
GT_ITEM-item_uprice.
endloop.
FORM Get_data *
form get_data tables YT_ITEM structure GT_ITEM
using value(x_node) type ref to if_ixml_node
changing Y_HEADER type TY_HEADER.
data: INDENT type i.
data: PTEXT type ref to if_ixml_text.
data: STRING type string.
data: TEMP_STRING(100).
case X_NODE->get_type( ).
when if_ixml_node=>co_node_element.
STRING = X_NODE->get_name( ).
GV_NODETEXT = STRING.
when if_ixml_node=>co_node_text.
PTEXT ?= X_NODE->query_interface( IXML_IID_TEXT ).
if PTEXT->ws_only( ) is initial.
STRING = X_NODE->get_value( ).
case GV_NODETEXT.
when 'Customer'.
clear GV_HEADER.
when 'Name'.
move STRING to GV_HEADER-cust_name.
when 'Cardnum'.
move STRING to GV_HEADER-card_no.
when 'Tax'.
move STRING to GV_HEADER-tax_amount.
when 'Total'.
move STRING to GV_HEADER-total_amount.
Iteam details
when 'ID'.
move STRING to GT_ITEM-item_id.
when 'Title'.
move STRING to TEMP_STRING.
move TEMP_STRING to GT_ITEM-item_title.
when 'Quantity'.
move STRING to GT_ITEM-item_qty.
when 'UnitPrice'.
move STRING to GT_ITEM-item_uprice.
endcase.
endif.
endcase.
if GV_NODETEXT = 'Customer'.
clear GV_HEADER.
elseif GV_NODETEXT = 'Item'.
if GV_FIRST_TIME ne 'X'.
append GT_ITEM.
clear : gt_item.
GT_ITEM-item_no = gt_item-item_no + 1.
endif.
GV_FIRST_TIME = ' '.
endif.
Get the next child
X_NODE = x_node->get_first_child( ).
Recurse
while not X_NODE is initial.
perform GET_DATA tables GT_ITEM
using X_NODE
changing GV_HEADER.
X_NODE = x_node->get_next( ).
endwhile.
endform.
Create an XML file with the following DATA given below and place it in the path mentioned above source code.
2. XML File DATA. You create an XML File in this format to test the same.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
- <Order>
- <Customer>
<Name>Bill Buckram</Name>
<Cardnum>234 234 234 234</Cardnum>
</Customer>
- <Manifest>
- <Item>
<ID>209</ID>
<Title>Duke: A Biography of the Java Evangelist</Title>
<Quantity>1</Quantity>
<UnitPrice>$10.75</UnitPrice>
</Item>
- <Item>
<ID>208</ID>
<Title>100% Pure: Making Cross Platform Deployment a Reality</Title>
<Quantity>1</Quantity>
<UnitPrice>$10.75</UnitPrice>
</Item>
- <Item>
<ID>204</ID>
<Title>Making the Transition from C++ to the Java(tm) Language</Title>
<Quantity>1</Quantity>
<UnitPrice>$10.75</UnitPrice>
</Item>
- <Item>
<ID>202</ID>
<Title>Web Servers for Fun and Profit</Title>
<Quantity>1</Quantity>
<UnitPrice>$10.75</UnitPrice>
</Item>
- <Item>
<ID>210</ID>
<Title>I Think Not: Dukes Likeness to the Federation Insignia</Title>
<Quantity>1</Quantity>
<UnitPrice>$10.75</UnitPrice>
</Item>
</Manifest>
- <Receipt>
<Subtotal>$53.75</Subtotal>
<Tax>$4.43</Tax>
<Total>$58.18</Total>
</Receipt>
</Order> -
Problem writing a XSLT to convert XML in desired format from a table having self join
Hello,
I have to write a style sheet to convert XML generated from XSQL into a different format. The query that I have is as follows.
select LEVEL depth,
'H' || hierarchy_id id,
name,
nvl2(parent_id, 'H' || parent_id, 0) parent_id,
CURSOR(select LEVEL depth,
'H' || hierarchy_id hid,
name hname,
nvl2(parent_id, 'H' || parent_id, 0) hparent_id,
decode(system_id, NULL, '0', 'S' || system_id) formatted_system_id,
system_id
from hierarchy
where parent_id = h.hierarchy_id
and system_id is not null
) as systems
from hierarchy h
where system_id is null
start with parent_id is null
connect by prior hierarchy_id = parent_id
The hierarchy table has a self join to itself. The selfjoin is on the hierarchyid and the parentid fields which is evident from the query.
Here the hierarchy table contains the parent system and also the child systems underneath. The problem is that the no. of levels that it can go deep is not fixed. The output of this in sqlplus is as follows.
Depth Hierarchyid, name parentid
1 h1 xxx <null>
2 h2 bbb h1
3 h3 ccc h2
<Cursor for systems>
hid hname hparentid formatted_system_id systemid
h4 ccc h2 s1 1
h5 ccc h2 s2 2
<Back to original data>
Depth Hierarchyid, name parentid
2 h6 ddd h1
2 h7 eee h1
The desired output required from the stylesheet is as follows
<h id=h1 name=xxx>
<h id=h2 name=bbb parentid=h1>
<h id=h3 name=ccc parentid=h2>
<h id=h4 name=fff parentid=h3 systemid=s1>
<h id=h5 name=ggg parentid=h3 systemid=s2>
</h>
</h>
<h id=h6 name=ddd parentid=h1/>
<h id=h7 name=eee parentid=h1/>
</h>
Could some one guide me as to how to get this. I did write a stylesheet which gives me the following output.
<h id=h1 name=xxx>
<h id=h2 name=bbb parentid=h1/>
<h id=h3 name=ccc parentid=h2/>
<h id=h4 name=fff parentid=h3 systemid=s1>
<h id=h5 name=ggg parentid=h3 systemid=s2>
</h>
<h id=h6 name=ddd parentid=h1/>
<h id=h7 name=eee parentid=h1/>
</h>
As you can see I am missing the closing of the tag on the 7th line in the desired format. I have written the following stylesheet.
<!-- Hierarchy.xsl: Transform ROWSET/ROW format to the required Hierarchy format. -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- Template for matching the rowset..... -->
<xsl:template match="HIERARCHY">
<HIERARCHY><xsl:apply-templates/></HIERARCHY>
</xsl:template>
<!-- Template for matching the row .... -->
<xsl:template match="HELEMENT">
<xsl:choose>
<xsl:when test="PARENT_ID=0">
<helement id="{ID}" name="{NAME}" parentid="{PARENT_ID}"/>
</xsl:when>
<xsl:when test="PARENT_ID!='0'">
<helement2 id="{ID}" name="{NAME}" parentid="{PARENT_ID}">
<xsl:for-each select="SYSTEMS/SYSTEMS_ROW">
<helement3 id="{HID}" name="{HNAME}" parentid="{HPARENT_ID}" systemid="{FORMATTED_SYSTEM_ID}">
</helement3>
</xsl:for-each>
</helement2>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Is there any way of achieving this. Any help would be appreciated. I am using XSQL to generate first the basic XML output and then applying stylesheet to achieve the desired output.
Sincerely,
DHello,
I have to write a style sheet to convert XML generated from XSQL into a different format. The query that I have is as follows.
select LEVEL depth,
'H' || hierarchy_id id,
name,
nvl2(parent_id, 'H' || parent_id, 0) parent_id,
CURSOR(select LEVEL depth,
'H' || hierarchy_id hid,
name hname,
nvl2(parent_id, 'H' || parent_id, 0) hparent_id,
decode(system_id, NULL, '0', 'S' || system_id) formatted_system_id,
system_id
from hierarchy
where parent_id = h.hierarchy_id
and system_id is not null
) as systems
from hierarchy h
where system_id is null
start with parent_id is null
connect by prior hierarchy_id = parent_id
The hierarchy table has a self join to itself. The selfjoin is on the hierarchyid and the parentid fields which is evident from the query.
Here the hierarchy table contains the parent system and also the child systems underneath. The problem is that the no. of levels that it can go deep is not fixed. The output of this in sqlplus is as follows.
Depth Hierarchyid, name parentid
1 h1 xxx <null>
2 h2 bbb h1
3 h3 ccc h2
<Cursor for systems>
hid hname hparentid formatted_system_id systemid
h4 ccc h2 s1 1
h5 ccc h2 s2 2
<Back to original data>
Depth Hierarchyid, name parentid
2 h6 ddd h1
2 h7 eee h1
The desired output required from the stylesheet is as follows
<h id=h1 name=xxx>
<h id=h2 name=bbb parentid=h1>
<h id=h3 name=ccc parentid=h2>
<h id=h4 name=fff parentid=h3 systemid=s1>
<h id=h5 name=ggg parentid=h3 systemid=s2>
</h>
</h>
<h id=h6 name=ddd parentid=h1/>
<h id=h7 name=eee parentid=h1/>
</h>
Could some one guide me as to how to get this. I did write a stylesheet which gives me the following output.
<h id=h1 name=xxx>
<h id=h2 name=bbb parentid=h1/>
<h id=h3 name=ccc parentid=h2/>
<h id=h4 name=fff parentid=h3 systemid=s1>
<h id=h5 name=ggg parentid=h3 systemid=s2>
</h>
<h id=h6 name=ddd parentid=h1/>
<h id=h7 name=eee parentid=h1/>
</h>
As you can see I am missing the closing of the tag on the 7th line in the desired format. I have written the following stylesheet.
<!-- Hierarchy.xsl: Transform ROWSET/ROW format to the required Hierarchy format. -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- Template for matching the rowset..... -->
<xsl:template match="HIERARCHY">
<HIERARCHY><xsl:apply-templates/></HIERARCHY>
</xsl:template>
<!-- Template for matching the row .... -->
<xsl:template match="HELEMENT">
<xsl:choose>
<xsl:when test="PARENT_ID=0">
<helement id="{ID}" name="{NAME}" parentid="{PARENT_ID}"/>
</xsl:when>
<xsl:when test="PARENT_ID!='0'">
<helement2 id="{ID}" name="{NAME}" parentid="{PARENT_ID}">
<xsl:for-each select="SYSTEMS/SYSTEMS_ROW">
<helement3 id="{HID}" name="{HNAME}" parentid="{HPARENT_ID}" systemid="{FORMATTED_SYSTEM_ID}">
</helement3>
</xsl:for-each>
</helement2>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Is there any way of achieving this. Any help would be appreciated. I am using XSQL to generate first the basic XML output and then applying stylesheet to achieve the desired output.
Sincerely,
D -
How to convert xml file to xsl using java
Hi all,
I have an XML file with which i need to convert(transform) it to an xsl file using java.
I am new to converting xml file to xslt.Please send me if u have code .
Thanks in advance
regards
RamYou seem to be asking the wrong question. An XSL file can be used to transform an XML file, but transforming an XML into an XSL does not make sense. The API for running XSL transforms on the Java platform is described here:
http://java.sun.com/javase/6/docs/api/javax/xml/transform/package-summary.html -
How to develop a user defined function to convert XML to Base64Binary
Hello,
I am trying to develop a solution in which I need to convert XML into Base64Binary so that I can then write this Base64Binary opaquely to a file (as opaque data is nothing but Base64 encoded data)
So, I want to develop a flow in which:
*File Adapter (read file based on some XSD) ----{color:#99cc00}XML{color}-----> BPEL/ESB input ----{color:#99cc00}XML{color}--------->Transform ----{color:#99cc00}Base64Binary{color}---------File Adapter that writes files opaquely*
{color:#000000}
What should be the signature of such a function. How I can pass the input to it.
TIA
{color}Think i got something here How to convert String to base64Binary in BPEL process
but its BPEL all the way, how to get hold of input in an ESB process? -
How to connect to external web service and convert XML to a table
Hi experts,
I need to connect to external/non-SAP web service and convert XML in that site to a SAP table?
Is there a function call(SE37) to do this? Is it a must for me to install AS JAVA or PI and configure enterprise service? Please provide a link for me to retrieve relevant infomation, thx.No, you don't need PI or the Java stack for this. You can create an ABAP proxy using the WSDL file for the web service and call the web service using the proxy class in an ABAP program. You can transform the XML response to internal tables/structures/variables using a transformation template that you create.
-
How to convert xml to non xml in business service
I have created a business service which routes the data to the respective given email addresses.But the body of the body is in the form of xml tags but need the body to be in normal document type format.
I have tried converting xml to mlf format(with delimiter '\n') before routing but still its the same xml tag which i get it from the body ,the only change being this time its a very simple xml file with just elements in it and no namespace declaration ,namespace definition etc.Please help me solve this problem?I am not sure exactly in which format you want to translate the XML but you may use either MFL transformation/Java callout in OSB to convert XML into non-XML or vice-versa -
http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/part_fb.htm#BABEAIAF
Regards,
Anuj -
Hi all,
I need to do a POC on converting XML format to JSON format,i found that there is rest adapter which we can achieve this ,
but i couldn't find the adapter in the list of adapters ,how to download this adapter from sap market place and also is there any alternative way of achieving this.Hi Vidya Sagar,
REST Adapter is not available for free like SOAP, FTP, SFTP etc Adapters. You need to purchase it from third party vendors like Advantco. You can visit the link below for more information:
REST Adapter for SAP NW PI | Advantco SAP NetWeaver Solutions
https://www.advantco.com/misc/Gateway%20or%20Progress%20Integration.pdf
Alternate way to convert XML to JSON and viceversa is use of open source technology - Apache Camel. You can download the Apache Camel from the link below:
Apache Camel: Camel 2.13.2 Release
Also you can refer to tutorials and examples available on the site - Apache Camel: Tutorials for the implementation.
Regards,
Shreyansh Shah -
Hi Experts,
I need a tool to convert XML message to EDI.Hi,
Conversion Agent
Purpose
SAP Conversion Agent by Informatica is a data conversion system that enables you to create interfaces between any data formats and XML-based systems. The Conversion Agent can convert unstructured, semi-structured, and structured formats to XML, and the other way around.
The Conversion Agent comprises the Conversion Agent Studio and the Conversion Agent Engine. In the Conversion Agent Studio you can develop and configure data conversions. The Conversion Agent Engine executes the data conversions.
Conversion Agent in Process Integration
figer here-
In Process Integration you call the Conversion Agent by using an adapter module. For this purpose, you must integrate this module in the module processor of your adapter. You can only use the Conversion Agent with the SAP adapters of the Adapter Engine.
The module in the sender adapter uses a data conversion statement to call the Conversion Agent Engine and it then receives the converted XML document. In a receiver adapter the source format is XML.
For current information and FAQs for the Conversion Agent, see SAP Note 894815.
Features
If you want to use data transformations in Process Integration, you must perform the following steps after you have installed the Conversion Agent:
For information about installing the Conversion Agent, see Deploying and Using Conversion Agent and Getting Started with Conversion Agent.
1. Define your data transformation in the Conversion Agent Studio.
For more information, please see: Getting Started with Conversion Agent.
2. Configure a communication channel within your integration scenario.
More information: Communication channel.
3. In the adapter configuration under Modules, integrate the adapter module CMTransformModule in the adapter type for your communication channel.
○ Under Parameter Name in the Module Configuration, enter the name TransformationName, and under Parameter Value, enter the name of the data transformation you defined.
○ The document to be converted must be in the main payload of the message.
○ If the document to be converted is in an attachment, you can use the PayloadSwapBean module to exchange the payloads.
○ The adapter module can be integrated in all adapters that can be enhanced with additional modules (for example, the SOAP adapter or mail adapter).
For more information about integrating the adapter module, see Deploying and Using Conversion Agent.
For more information about integrating modules in an adapter, see: Module Processor
For more information about enhancing the module processor, see Extending the Module Chain in the Module Processor.
Getting Started with the Conversion Agent
To quickly get up to speed with the SAP NetWeaver Conversion Agent, read the following documentation:
Document Name
Deploying and Using Conversion Agent
Contents
Contains detailed information about how you can use the Conversion Agent in SAP NetWeaver. It also includes a description of how to deploy the adapter module for calling the Conversion Agent Engine.
Document Name
Getting Started with Conversion Agent
Contents
Uses exercises to introduce you to Conversion Agent Studio.
Also contains short installation instructions.
Conversion Agent Guides
The following guides are available:
Document Name
Conversion Agent Administratoru2019s Guide
Contents
Contains information on the following topics:
● Installing the Conversion Agent Studio
● Updating Conversion Agent projects
● Configuration Editor
This editor enables you to configure the parameters of an existing Conversion Agent installation.
Document Name
Conversion Agent Studio Useru2019s Guide
Contents
Contains a description of all functions of the Conversion Agent Studio.
Document Name
Conversion Agent Engine Developeru2019s Guide
Contents
Contains information about how you enable transformations defined in the Conversion Agent Studio to be executed by the Conversion Agent Engine.
PS,Reward me if usefull
reg,
suresh -
Hey,
Does anyone have any code on how to convert an XML file into a JTree. I also need to be able to convert a JTree into XML.
Any help would be great!http://java.sun.com/webservices/jaxp/dist/1.1/docs/tutorial/dom/3_tree.html
Maybe you are looking for
-
I am so sorry that I ever signed up for iCloud. The only thing that ever worked is that I had two messages drop into iCloud when there was an open wifi connection. It is synced with Yahoo. It was taking up so much space as I had a lot of attachment
-
HP Color LaserJet 5525 Fuser trouble shooting
My HP Color LaserJet 5525 has a squeek or squeel at the top of the printer when printing or initializing. Could this be a bad Fuser Unit?
-
40 gig video from my camcorder becomes 117 gigs in iMovie
I have a Cannon Vixia HG20 with about two hours of HD video on it. It's only taking up 40 gigs of my camcorder's hard drive. When I tried to import these videos to iMovie, I found out that the Movies\Movies Events\ folder became a whopping 117 gigs.
-
I have a 8800 smartphone with software version V4.5.0.37 (platform 2.7.0.55). I bought a bluetooth stereo headset which is A2DP enabled. I am not able to use this with my mobile. Any support/suggestions?
-
Mac Estimated time is always wrong... FOR YEARS!
Sometimes it will say estimated time remaining 45 minutes and then it will just jump to 10 minutes and then back up to something rediculous like "about an hour" and then back down to 20... It's crazy and as it's been this way as far as I can recall f