Wrong data in XML output of dunning letters
When changing the output format for concurrent program: "Dunning Letter Print from Dunning Letter Generate" to XML the following output occurs.
Parameters setting:
Order by "Customer"
Dunning as of date "14-NOV-2007"
Letter set low "STANDARD"
Letter set high "STANDARD"
Customer low and Customer high are filled with same customer name.
Dunning method "Staged Dunning"
Single staged letter "Yes" or "No" (no difference in output!)
Preliminary "No"
The following oupt is generated:
<?xml version="1.0" ?>
- <!-- Generated by Oracle Reports version 6.0.8.26.0 -->
- <ARDLP>
- <LIST_G_CORRESPONDENCES>
- <G_CORRESPONDENCES>
<SEND_TO_ORDER>AAAA</SEND_TO_ORDER>
<POSTAL_CODE1>F_postal_code</POSTAL_CODE1>
<NLR_TELEPHONE />
<NLR_FAX />
<NLR_EMAIL />
<CORRESPONDENCE_ID>-1</CORRESPONDENCE_ID>
<CUSTOMER_NAME>F_customer_name</CUSTOMER_NAME>
<POSTAL_CODE>F_send_to_zip</POSTAL_CODE>
<DUN_DATE>14-NOV-07</DUN_DATE>
<LETTER_NAME />
<SEND_TO_LOCATION>F_location</SEND_TO_LOCATION>
<SEND_TO_ADDRESS1>F_send_to_address_1</SEND_TO_ADDRESS1>
<SEND_TO_ADDRESS2>F_send_to_address_2</SEND_TO_ADDRESS2>
As you can see most of the data fields are "fieldnames" like F_send_to_address_2 while an proper address was expected.
For all dunning letters I've tested the same output occurs each time.
However when I change the parameter Preliminary to "Yes" (a list is printed) the output is good. But I want this also for a single dunning letter.
Does anyone know how to solve this problem?
Kind regards,
Koenraad
Thanks Gareth,
For your quick reply.
I've seen a second group (second top level element) and it seems to be the right data.
This might work, tanks,
Koenraad.
Similar Messages
-
Encapsulating Data in XML Output in CDATA tags
Hi,
I have a simple pdf fillable form that I created in LiveCycle Designer ES that saves/submits form data as XML for parsing into a database. The database parser requires all form data to be encapsulated into CDATA tags inside the XML fieldnames or it will not process it. Can anyone give some pointers to force the XML output to encapsulate the data inside CDATA tags within the XML fieldnames in my output XML file? Thanks.
DanHi Dan,
Can you post a sample of what you want the xml to look like. If I understand correctly, it sounds like a very strange parser. I would imagine you would have to preprocess the xml on the server.
Regards
Bruce -
Set character encoding for data template xml output
Hello everyone, in my data template, I have defined the header as
<?xml version="1.0" encoding="WINDOWS-1256"?>
but when output is generated, it is returned as:
<?xml version="1.0" encoding="UTF-8"?>
Is there a way for me to force the WINDOWS-1256 encoding in my data template?
Many ThanksThis data is read as
bytes then I am using the InputStreamReader to convert
to UTF-8 encoding.Don't you mean "from UTF-8 encoding"? Strings don't have an encoding, bytes can. And do you know that SQL Server produces those bytes encoded in UTF-8, or are you just assuming that?
The stream is then written to a file with the
extension ".xml". When I go and open the file, I get
errors stating that the characters were not
recognized.When you open the file with what? And what errors do you get?
However, when I open the file with
Notepad, I can see my xml data. -
What's wrong with the XML output?
I got an XML page in IE browser with XSQL Servlet&XSL. But its format is often disordered, for instance there are blank lines between two sequential tags, or the tags at the same level display from different start point. So the whole file seems fall into disorder!
What's wrong with it?
Are there some bugs in XSQL Servlet?
nullWould you send your XSL file and XSQL file?
-
Error for datatype mismatch or wrong data in XML to database ODI interface
Hello All,
I am doing XML to DB mapping in ODI. but when there is any mismatch in the datatype between source and target or any data issue, ODI is not showing any error for that. it is just inserting the data in the DB from XML up to that erroneous record without any error message.Could anybody please help, how can I get the error message for the same, from ODI when I execute that interface?
Thanks in Advance!no I could not find any records in the error table i.e E$_X table.
-
Dunning Letter XML not displaying XML version of Dunning Letter
I have changed the Output Format for "Dunning Letter Print from Dunning Letter Generate" to XML. When I run the Dunning Letter Generate process, though, the XML output in the Dunning Letter Print from Dunning Letter Generate does not display the XML of the Dunning Letter. Instead, the following XML is displayed:
<?xml version="1.0"?>
<!-- Generated by Oracle Reports version 6.0.8.27.0 -->
<ARDLP>
<LIST_G_CORRESPONDENCES>
</LIST_G_CORRESPONDENCES>
<R_INTEREST_RATE></R_INTEREST_RATE>
<R_DEFAULT_COUNTRY>NL</R_DEFAULT_COUNTRY>
<C_TRX_NUMBER>APP-00001: Unable to find message: AR_REPORTS_TRX_NUMBER</C_TRX_NUMBER>
<C_PO>APP-00001: Unable to find message: AR_REPORTS_PO</C_PO>
<C_DEBIT>APP-00001: Unable to find message: AR_REPORTS_DEBIT</C_DEBIT>
<R_DEFAULT_COUNTRY_DESC>M-3M-WM-4M-zM-6M-uM-5M-e</R_DEFAULT_COUNTRY_DESC>
</ARDLP>
Is there any specific setup required to generate the appropriate XML for the Dunning Letter?Kit
It is definitely possible to use XML Publisher for dunning letters. I would suggest your sample run did not select anything for dunning as the XML looks correct otherwise. The problem with this approach is that it is not a single step process to get the letters. You will only ever get XML from the dunning letter print report as there is nowhere in the submission screen to tell it what template to use. Therefore you will need to modify the after report trigger to submit the XML Report Publisher concurrent program to automatically pick up the XML and create the letters.
You might want to look at the standard functionality in collections or advanced collections (not sure about collections but definitely in advanced) as there is some standard functionality in there for Dunning which uses XML Publisher templates. The setup is a bit onerous (not sure what the developers were thinking) but at least you can use XMLP as standard.
Cheers,
Dave -
Dunning Letters and XML Publisher
I have created a template for the dunning letter print in applications. When we submit the dunning letter generate process it kicks off the print automatically and this gives us a problem as the print doesn't seem to have the XMLP template associated with it and we get no output. We can work round this by submitting the XML Report Publisher Request to get the dunning letter print as required. We do have the "one step" patch applied and other XML Publisher reports are working seamlessly so how do we get the dunning letters print to work seamlessly when we have no control of the submission?
Any help appreciated.
Thanks,
DaveTim
Yes it works fine in preview. Also works OK if I submit XML Report Publisher.
The problem is the template is for the dunning letters print report but we don't actually submit that, we submit the dunning letters generate which kicks off the dunning letter print. I guess the submit process within the generate process does not include the template in the parameters list so there is no output available when it runs.
Only thing I can think of is to modify the print report to submit the XML Report Publisher in the after report trigger but not sure if this is going to work?
I did see a similar query on metalink where the person was told there would be a solution in XMLP5.5 but I can't see anything in the about 5.5 doc that fits this issue.
Any ideas appreciated.
Thanks,
Dave -
Oracle Reports with XML output showing data as asterik character
Hello,
I'm trying to create an Oracle report with xml output. Here is the issue I'm having some of the columns in my report are of datatype number. When I run the report and generate xml file the values for those columns(datatype number) are showing as (*) character, other columns are showing fine. But when I run the report as text output then data is fine. I don't understand why this is happening.
The property of column is Column Type - Database Scalar, Datatype - Number , width 0,-127.
Does the width has to do anything with this?
I'm using Report Builder 6.0.8.11.3, DB version 10g.
Can anyone please help me with the issue I'm having.
ThanksIf the links in your example report1 and report2
follow my format stated earlier
http://machine:port/reports/rwservlet/report=reportnam
e.rdf&destype=cache& paramform=htmlcss&server=<YourReportSe
rverName>&userid=scott/tiger@hrdb&desformat=pdf
This is what I believe
>
so http://machine:port/ is the port where
JBoss is running and
This should be the port that the report server is listening on
>
server=<YourReportServerName> is the name of
my oracle report server
so I call the above link in my current application
and the report would show up
Yes
>
that means (correct me if I am wrong) that my reports
would have to be deployed in OracleAS
Yes
>
I have to try all this yet as till this point I was
trying to run Oracle reports deployed in JBoss...
This may be possible, I am not sure.
>
Oracle J2EE Thin Client?
I am not sure what this is used for in your setup. -
MD050 for dunning letters utilising XML publisher
Hi
Can someone, please, send me an MD050 for dunning letters?
We will use XML publisher for dunniung letters - but I need to prepare asn Md050 in 1 day..
Can someone help, please?
regards
ilinka
[email protected]Tim
Yes it works fine in preview. Also works OK if I submit XML Report Publisher.
The problem is the template is for the dunning letters print report but we don't actually submit that, we submit the dunning letters generate which kicks off the dunning letter print. I guess the submit process within the generate process does not include the template in the parameters list so there is no output available when it runs.
Only thing I can think of is to modify the print report to submit the XML Report Publisher in the after report trigger but not sure if this is going to work?
I did see a similar query on metalink where the person was told there would be a solution in XMLP5.5 but I can't see anything in the about 5.5 doc that fits this issue.
Any ideas appreciated.
Thanks,
Dave -
Wrong data type when writing XML file
We are trying to write an XML file from ODI but we get the following error:
ODI-1217: Fallo de la sesión CMT_PAQ_CREA_XML (15001) con código de retorno 8000.
ODI-1226: Fallo en el paso WRITE_XML_SCHEMA después de 1 intento(s).
ODI-1232: Fallo en la ejecución del procedimiento WRITE_XML_SCHEMA.
ODI-1228: Fallo en la tarea WRITE_XML_SCHEMA (Procedimiento) en el destino XML conexión CMTInCaMo.
Caused By: java.sql.SQLException: Could not save the file D:\ODI\oracledi\XMLFiles\Cuentas11g.xml because a class java.sql.SQLException occurred and said: java.sql.SQLException: java.sql.SQLException: Wrong data type: type: <b>NUMERIC (2) expected: INTEGER value: 301000000232</b>
at com.sunopsis.jdbc.driver.xml.SnpsXmlFile.writeToFile(SnpsXmlFile.java:740)
at com.sunopsis.jdbc.driver.xml.SnpsXmlConnection.internalExecute(SnpsXmlConnection.java:713)
at com.sunopsis.jdbc.driver.xml.SnpsXmlPreparedStatement.executeUpdate(SnpsXmlPreparedStatement.java:111)
at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java:665)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeUpdate(SnpSessTaskSql.java:3218)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java:1785)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java:2805)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2515)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:537)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:449)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:322)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:246)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:237)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:794)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
at java.lang.Thread.run(Thread.java:619)
The datastores have valid records but when we try to write them in the XML file it didn't work.
¿Can somebody help us?Thanks, let me give you an update:
The datatype of the element is defined as follows:
<xs:element name="AcctNo" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="60"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
</xs:element>
The ODI reverse ingeneering has created the column as VARCHAR(255). I think this ok, because XML driver doesn't takes in account the xsd element defined length.
We have checked the XSD and is valid.
In the other hand, I must say that we have created an interface that is loading data into the corresponding datastore without any problem but we couldn't generate an XML file from it.
Any other advice? -
R12 Check Printing Need XML output for seeded data definition--urgent
Hi--
I really need to get ahold of the XML output from the checks running off the data definition called "Oracle Payments Funds Disbursement Payment Instruction Extract 1.0" in Oracle R12 quickly--particulary the XML tag that holds the MICR string (should be the concatenation of Check Number, Routing and Acct number).
I found an entry here in the forums about running a query of:
SELECT XMLType.getClobVal(instruction)
FROM IBY_XML_FD_INS_1_0_V
WHERE rownum =1 ;
to get the entire XML output. I have an open SR but haven't really gotten anywhere with it yet.
However, all we get back is an error about datatype. Could someone please help out with this--it is quite urgent as I need to finish this last piece of the checks and work with the bank on formatting this week.
Thanks--I'd really appreciate any assistance!
KateSELECT XMLType.getClobVal(instruction)
INTO x_extract_doc
FROM iby_xml_fd_ins_1_0_v
WHERE payment_instruction_id = p_payment_instruction_id;
or you can use
SELECT document FROM iby_trxn_documents order by creation_date desc;
provided that the last run was urs. -
Dunning letters - customers title displayed wrong
Hello,
I am using F150 in order to issue dunning letters and this looks good with one exception: the address of customer contains the title "Mr." instead of "Herr", even the communication language is German and the form is translated in German as well. This title cames from structude ADRS, field ANRED and I think it should be taken from the communication language when I print the dunning letters... How can I solve this?
Thank you!Hi guys,
Thank you for your feedback!
I fixed it... in the end I found an SAP note which sent to another SAP note and even if I use 6.0 and these notes refers to 4.X, it worked also for me. The notes are 217638 and 146050.
The only change I applied:
Window ADDRESS
/: ADDRESS PARAGRAPH AS
/: TITLE
/: NAME , ...
/: STREET
/: POBOX CODE ...
/: POSTCODE
/: REGION
/: CITY
/: COUNTRY
/: FROMCOUNT
/: ADDRESSNUMBER "<-- INSERT
/: ENDADDRESS
I inserted /: ADDRESSNUMBER &KNA1-ADRNR&
Good luck to all of you which will have to deal with this issue! -
How to calculate number of data records in a XML output file
Hi,
After generating a XML output file from Oracle Reports, I want to calculate number of records in the XML file. Is it possible? Specifically, I want to calculate number of records for a group variable ( organization_id, which I use for bursting).
Thanks for the help.Thanks BIPuser. It is useful for me.
I can use this xsl function within the template. However, I'm also looking to print this in the concurrent request log file. So, outside of rtf template, id there any PL/SQL based XML functions I can use to count the number of records.
Thanks. -
Hi,
I have a customer (a completely seperate one to my other Dunning thread!) who wants to start using Dunning Letters.
They have the following Dunning Terms:
Letter 1 - 30 Days
Letter 2 - 60 Days
Letter 3 - 90 Days
...and it is set to "One Letter per Dunning Level".
.We have taken one BP with very aged transactions during our testing. The first letter printed OK. It was my belief that you cannot print 2 levels of Dunning Letters on the same day, so we waited until the next day to try Dunning Letter 2.
Dunning Letter 2 is not being produced by the Dunning Wizard despite the transactions being well overdue. I have tried changing the Letter 2 days to 31 as a test but the Dunning Wizard still ignores this customer.
What I am doing wrong?
Thanks
GreigHi,
This is the settings mentioned in the documentation for Dunning in the Documentation Resource Centre. I have taken some relevant part for you :
Dunning letter Effective After (days)
01 10
02 20
03 30
Effective After (Days) - This column is used for entering the
number of days following which the dunning level will become
effective. The daysu2019 counts are accumulative from one level to the
next, i.e. 10 days after the due date of the Invoice the level 1
dunning letter becomes effective. The level 2 dunning letter will
become effective 30 days after the level 1 dunning letter was
generated, and the level 3 dunning letter will become effective 50
days after the level 2 dunning letter was generated.
Check this if it helps.
Also, it would be helpful/informative for you if you check out the documentation on the Dunning on the Documentation resource centre. If you want the link, please feel free to ask.
Regards,
Jitin
SAP Business One Forum Team
Edited by: Jitin Chawla on Dec 11, 2008 5:48 PM -
Problem converting data in XML file to internal table data
Hi all,
I have a requirement. I need to convert an XML file to internal table data and based on that data do Goods Receipt in SAP.
With the help of this blog /people/r.eijpe/blog/2005/11/10/xml-dom-processing-in-abap-part-i--convert-an-abap-table-into-xml-file-using-sap-dom-approach
I am able to convert the XML file to data in SAP. But this blog will display the output on screen as ELELEMNT = nodename VALUE= value of that node.
But I donu2019t want in that way, I want to store all the data in XML file in an internal table so that I can make use of those values and do Goods Recipt in SAP.
Can some one suggest how should I read the data in an internal table.
Here is my code..what changes should I make?
*& Report z_xit_xml_check
REPORT z_xit_xml_check.
TYPE-POOLS: ixml.
TYPES: BEGIN OF t_xml_line,
data(256) TYPE x,
END OF t_xml_line.
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_parser TYPE REF TO if_ixml_parser,
l_istream TYPE REF TO if_ixml_istream,
l_document TYPE REF TO if_ixml_document,
l_node TYPE REF TO if_ixml_node,
l_xmldata TYPE string.
DATA: l_elem TYPE REF TO if_ixml_element,
l_root_node TYPE REF TO if_ixml_node,
l_next_node TYPE REF TO if_ixml_node,
l_name TYPE string,
l_iterator TYPE REF TO if_ixml_node_iterator.
DATA: l_xml_table TYPE TABLE OF t_xml_line,
l_xml_line TYPE t_xml_line,
l_xml_table_size TYPE i.
DATA: l_filename TYPE string.
PARAMETERS: pa_file TYPE char1024 DEFAULT 'c:\temp\orders_dtd.xml'.
Validation of XML file: Only DTD included in xml document is supported
PARAMETERS: pa_val TYPE char1 AS CHECKBOX.
START-OF-SELECTION.
Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
wrap the table containing the file into a stream
l_istream = l_streamfactory->create_istream_itable( table = l_xml_table
size = l_xml_table_size ).
Creating a document
l_document = l_ixml->create_document( ).
Create a Parser
l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
istream = l_istream
document = l_document ).
Validate a document
IF pa_val EQ 'X'.
l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
ENDIF.
Parse the stream
IF l_parser->parse( ) NE 0.
IF l_parser->num_errors( ) NE 0.
DATA: parseerror TYPE REF TO if_ixml_parse_error,
str TYPE string,
i TYPE i,
count TYPE i,
index TYPE i.
count = l_parser->num_errors( ).
WRITE: count, ' parse errors have occured:'.
index = 0.
WHILE index < count.
parseerror = l_parser->get_error( index = index ).
i = parseerror->get_line( ).
WRITE: 'line: ', i.
i = parseerror->get_column( ).
WRITE: 'column: ', i.
str = parseerror->get_reason( ).
WRITE: str.
index = index + 1.
ENDWHILE.
ENDIF.
ENDIF.
Process the document
IF l_parser->is_dom_generating( ) EQ 'X'.
PERFORM process_dom USING l_document.
ENDIF.
*& Form get_xml_table
FORM get_xml_table CHANGING l_xml_table_size TYPE i
l_xml_table TYPE STANDARD TABLE.
Local variable declaration
DATA: l_len TYPE i,
l_len2 TYPE i,
l_tab TYPE tsfixml,
l_content TYPE string,
l_str1 TYPE string,
c_conv TYPE REF TO cl_abap_conv_in_ce,
l_itab TYPE TABLE OF string.
l_filename = pa_file.
upload a file from the client's workstation
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = l_filename
filetype = 'BIN'
IMPORTING
filelength = l_xml_table_size
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Writing the XML document to the screen
CLEAR l_str1.
LOOP AT l_xml_table INTO l_xml_line.
c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data replacement = space ).
c_conv->read( IMPORTING data = l_content len = l_len ).
CONCATENATE l_str1 l_content INTO l_str1.
ENDLOOP.
l_str1 = l_str1+0(l_xml_table_size).
SPLIT l_str1 AT cl_abap_char_utilities=>cr_lf INTO TABLE l_itab.
WRITE: /.
WRITE: /' XML File'.
WRITE: /.
LOOP AT l_itab INTO l_str1.
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab IN
l_str1 WITH space.
WRITE: / l_str1.
ENDLOOP.
WRITE: /.
ENDFORM. "get_xml_table
*& Form process_dom
FORM process_dom USING document TYPE REF TO if_ixml_document.
DATA: node TYPE REF TO if_ixml_node,
iterator TYPE REF TO if_ixml_node_iterator,
nodemap TYPE REF TO if_ixml_named_node_map,
attr TYPE REF TO if_ixml_node,
name TYPE string,
prefix TYPE string,
value TYPE string,
indent TYPE i,
count TYPE i,
index TYPE i.
node ?= document.
CHECK NOT node IS INITIAL.
ULINE.
WRITE: /.
WRITE: /' DOM-TREE'.
WRITE: /.
IF node IS INITIAL. EXIT. ENDIF.
create a node iterator
iterator = node->create_iterator( ).
get current node
node = iterator->get_next( ).
loop over all nodes
WHILE NOT node IS INITIAL.
indent = node->get_height( ) * 2.
indent = indent + 20.
CASE node->get_type( ).
WHEN if_ixml_node=>co_node_element.
element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
WRITE: / 'ELEMENT :'.
WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
IF NOT nodemap IS INITIAL.
attributes
count = nodemap->get_length( ).
DO count TIMES.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).
prefix = attr->get_namespace_prefix( ).
value = attr->get_value( ).
WRITE: / 'ATTRIBUTE:'.
WRITE: AT indent name COLOR COL_HEADING INVERSE, '=',
value COLOR COL_TOTAL INVERSE.
ENDDO.
ENDIF.
WHEN if_ixml_node=>co_node_text OR
if_ixml_node=>co_node_cdata_section.
text node
value = node->get_value( ).
WRITE: / 'VALUE :'.
WRITE: AT indent value COLOR COL_GROUP INVERSE.
ENDCASE.
advance to next node
node = iterator->get_next( ).
ENDWHILE.
ENDFORM. "process_dom
Any help would be highly apperciated.
regards,
Jessica SamPavel Vera,
With your example i tries doing the following .....
I tried to convert the data of XML file to internal table data. I am collecting the data in internal table to do goos recipt with that data.
Please find my XML file, ABAP pgm and XSLT pgm . I donu2019t know what I am missing I am not getting any output. I donu2019t know what is wrong please help me with this
Below is my XML file, My code and XSLT Program. In the below XML file I need to collect Vendor Number, Order Number, and Date tags which occur only once for one XML file.
I also need to collect the following tags from <Shipmentdetail>
<Shipmentdetail> has following child nodes and I need to collect them
TrackingNumber
Freight
Weight
ShipmentDate
ShipmentMethod
Need to collect to collect the following tags from <ProductInformation>
<ProductInformation> has following child nodes and I need to collect them
LineNumber
SKUNumber
OrderedQuantity
ShippedQuantity
UOM
The <Shipmentdetail> and <ProductInformation> are child nodes of <OrderShipment>
The <Shipmentdetail> occurs only ones but the <ProductInformation> can occur once or many times and will be dynamic and differs depening on the input file.
My XML file is as follows
<?xml version="1.0" encoding="iso-8859-1" ?>
- <ShipmentHeader>
<AccountID />
- <OrderShipment>
<VendorNumber>1000</VendorNumber>
<OrderNumber>P00009238</OrderNumber>
<OrderType>Stock</OrderType>
<Company />
<Division />
<Department />
<Date>20061120</Date>
<CartonCount>2</CartonCount>
<ShipAllProducts>No</ShipAllProducts>
- <ShipmentDetail>
<TrackingNumber>1ZR3W891PG47477811</TrackingNumber>
<Freight>000000010000</Freight>
<ShipmentDate>20061120</ShipmentDate>
<ShipmentMethod>UPS1PS</ShipmentMethod>
</ShipmentDetail>
- <ProductInformation>
<LineNumber>000000001</LineNumber>
<SKUNumber>110FR</SKUNumber>
<AdvSKUNumber>003 4518</AdvSKUNumber>
<SKUID />
<OrderedQuantity>00000001000000</OrderedQuantity>
<ShippedQuantity>00000001000000</ShippedQuantity>
<UOM>EA</UOM>
<Factor>1</Factor>
</ProductInformation>
- <ProductInformation>
<LineNumber>000000002</LineNumber>
<SKUNumber>938EN</SKUNumber>
<AdvSKUNumber>001 7294</AdvSKUNumber>
<SKUID />
<OrderedQuantity>00000000450000</OrderedQuantity>
<ShippedQuantity>00000000450000</ShippedQuantity>
<UOM>EA</UOM>
<Factor>1</Factor>
</ProductInformation>
- <CaseInformation>
<LineNumber>000000001</LineNumber>
<SKUNumber>110FR</SKUNumber>
<AdvSKUNumber>003 4518</AdvSKUNumber>
<SKUID />
<SSCCNumber>00000001668000002487</SSCCNumber>
<CaseQuantity>00000001000000</CaseQuantity>
<UOM>EA</UOM>
<Factor>1</Factor>
</CaseInformation>
<CaseInformation>
<LineNumber>000000001</LineNumber>
<SKUNumber>110FR</SKUNumber>
<AdvSKUNumber>003 4518</AdvSKUNumber>
<SKUID />
<SSCCNumber>00000001668000002487</SSCCNumber>
<CaseQuantity>00000001000000</CaseQuantity>
<UOM>EA</UOM>
<Factor>1</Factor>
</CaseInformation>
- </OrderShipment>
</ShipmentHeader>
My Program
TYPE-POOLS abap.
CONSTANTS gs_file TYPE string VALUE 'C:\temp\test.xml'.
* This is the structure for the data from the XML file
TYPES: BEGIN OF ts_shipment,
VendorNumber(10) TYPE n,
OrderNumber(20) TYPE n,
OrderType(8) TYPE c,
Date(8) TYPE c,
END OF ts_shipment.
TYPES: BEGIN OF ts_shipmentdetail,
TrackingNumber(30) TYPE n,
Freight(12) TYPE n,
Weight(14) TYPE n,
ShipmentDate(8) TYPE c,
ShipmentMethod(8) TYPE c,
END OF ts_shipmentdetail.
TYPES: BEGIN OF ts_productinformation,
LineNumber(9) TYPE n,
SKUNumber(20) TYPE c,
OrderedQuantity(14) TYPE n,
ShippedQuantity(14) TYPE n,
UOM(4) TYPE c,
END OF ts_productinformation.
* Table for the XML content
DATA: gt_itab TYPE STANDARD TABLE OF char2048.
* Table and work ares for the data from the XML file
DATA: gt_shipment TYPE STANDARD TABLE OF ts_shipment,
gs_shipment TYPE ts_shipment.
DATA: gt_shipmentdetail TYPE STANDARD TABLE OF ts_shipmentdetail,
gs_shipmentdetail TYPE ts_shipmentdetail.
DATA: gt_productinformation TYPE STANDARD TABLE OF ts_productinformation,
gs_productinformation TYPE ts_productinformation.
* Result table that contains references
* of the internal tables to be filled
DATA: gt_result_xml TYPE abap_trans_resbind_tab,
gs_result_xml TYPE abap_trans_resbind.
* For error handling
DATA: gs_rif_ex TYPE REF TO cx_root,
gs_var_text TYPE string.
* Get the XML file from your client
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = gs_file
CHANGING
data_tab = gt_itab
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Fill the result table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "ISHIPMENT".
GET REFERENCE OF gt_shipment INTO gs_result_xml-value.
gs_result_xml-name = 'ISHIPMENT'.
APPEND gs_result_xml TO gt_result_xml.
* Fill the result table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "ISHIPDET".
GET REFERENCE OF gt_shipmentdetail INTO gs_result_xml-value.
gs_result_xml-name = 'ISHIPDET'.
APPEND gs_result_xml TO gt_result_xml.
* Fill the result table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "IPRODDET".
GET REFERENCE OF gt_productinformation INTO gs_result_xml-value.
gs_result_xml-name = 'IPRODDET'.
APPEND gs_result_xml TO gt_result_xml.
* Perform the XSLT stylesheet
TRY.
CALL TRANSFORMATION z_xml_to_abap3
SOURCE XML gt_itab
RESULT (gt_result_xml).
CATCH cx_root INTO gs_rif_ex.
gs_var_text = gs_rif_ex->get_text( ).
MESSAGE gs_var_text TYPE 'E'.
ENDTRY.
* Writing the data from file for gt_shipment
*Collecting the Shipping Data from the XML file to internal table gt_shipment
*and writing the data to the screen
LOOP AT gt_shipment INTO gs_shipment.
WRITE: / 'VendorNumber:', gs_shipment-VendorNumber.
WRITE: / 'OrderNumber :', gs_shipment-OrderNumber.
WRITE: / 'OrderType :', gs_shipment-OrderType.
WRITE: / 'Date :', gs_shipment-Date.
WRITE : /.
ENDLOOP. "gt_shipment.
LOOP AT gt_shipmentdetail INTO gs_shipmentdetail.
WRITE: / 'TrackingNumber:', gs_shipmentdetail-TrackingNumber.
WRITE: / 'Freight :', gs_shipmentdetail-Freight.
WRITE: / 'Weight :', gs_shipmentdetail-Weight.
WRITE: / 'ShipmentDate :', gs_shipmentdetail-ShipmentDate.
* WRITE: / 'ShipmentMethod :' gs_shipmentdetail-ShipmentMethod
WRITE : /.
ENDLOOP. "gt_shipmentdetail.
LOOP AT gt_productinformation INTO gs_productinformation.
WRITE: / 'LineNumber:', gs_productinformation-LineNumber.
WRITE: / 'SKUNumber :', gs_productinformation-SKUNumber.
WRITE: / 'OrderedQuantity :', gs_productinformation-OrderedQuantity.
WRITE: / 'ShippedQuantity :', gs_productinformation-ShippedQuantity.
WRITE: / 'UOM :', gs_productinformation-UOM.
WRITE : /.
ENDLOOP. "gt_productinformation.
XSLT Program
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ISHIPMENT>
<xsl:apply-templates select="//OrderShipment"/>
</ISHIPMENT>
</asx:values>
</asx:abap>
</xsl:template>
<xsl:template match="OrderShipment">
<item>
<VENDORNUMBER>
<xsl:value-of select="VendorNumber"/>
</VENDORNUMBER>
<ORDERNUMBER>
<xsl:value-of select="OrderNumber"/>
</ORDERNUMBER>
<ORDERTYPE>
<xsl:value-of select="OrderType"/>
</ORDERTYPE>
<DATE>
<xsl:value-of select="Date"/>
</DATE>
</item>
</xsl:template>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ISHIPDET>
<xsl:apply-templates select="//OrderShipment/ShipmentDetail"/>
</ISHIPDET>
</asx:values>
</asx:abap>
</xsl:template>
<xsl:template match="ShipmentDetail">
<item>
<TRACKINGNUMBER>
<xsl:value-of select="TrackingNumber"/>
</TRACKINGNUMBER>
<FREIGHT>
<xsl:value-of select="Freight"/>
</FREIGHT>
<SHIPMENTDATE>
<xsl:value-of select="ShipmentDate"/>
</SHIPMENTDATE>
<SHIPMENTMETHOD>
<xsl:value-of select="ShipmentMethod"/>
</SHIPMENTMETHOD>
</item>
</xsl:template>
</xsl:transform> .
Any help is highly appreciated. If anyone encountered this situation before please let me know where i am going wrong in my XSLT transformation.
Any Help will be highly apppreciated. Thanks in advance
Regards,
Jessica Sam
Maybe you are looking for
-
Network confirmation cancell. thru CN29,when past posting period isnot open
Hi Gurus, I have one query regarding netowrk confirmation. In our scnario, we are confirming network activity/element directly through CN27. Now after confirmation, due to some mistake we are trying to cancel that confimration through CN29 but system
-
Error while running import command
Hi all,when i am trying to run import from putty i am getting error import: unable to open X server `'..Can any one suggest me how to overcome this error? import D:/OAF/jdevhome/jdev/myclasses/xxc/oracle/apps/po/student/webui/XXCStudentPG.xml -userna
-
Help on Parameters in RFC Function Module
Hi, I am creating a RFC function module. The requirement is: In a report program, the user enters ABC and XYZ values on the selection screen. These 2 fields are select options so will have From-Value and To-Value. This report program will pass these
-
Can you adjust preset title effects on Final Cut Pro X
Im trying to play with the anchor points on a preset title effect called DRAMATICA. The lettes LEAVE too quickly and don´t allow enough time to be read. Can that be done? Is it possible to adjust the titles setting? Can the anchor point be adjusted
-
Thinking of buying Satellite C855-226 - need more info
Hi all, This is my 1st msg here :) I am thinking of buying C855-226 for 529 and then Saturn offers C855-2EV for 477, which very cheap and ticks most of the boxes for me which are : price, processor, hd capacity, max ram, the thing that I dont liek is