2007 Dec 06 8:56 AM
Hi all,
How we can process xml files in abap?
We get orders as xml files from our customers and want to read or do something else.. However I do not know exact way to do what I need..
Thanks.
Hi all,
How we can process xml files in abap?
We get orders as xml files from our customers and want to read or do something else.. However I do not know exact way to do what I need..
Thanks.
2007 Dec 06 9:01 AM
2007 Dec 06 9:37 AM
Thank you Pandurangan,
Is not there anyone who wants rewards for his/her helpful replies?
I would like to reward almost all answers on this topic.
Thanks.
2007 Dec 06 9:47 AM
hi,
this is the program to create sales orders from an XML file, kindly take care about validations
report yxml_crea_sales_upd no standard page heading.
data : order_header_in like bapisdhd1 occurs 0 with header line,
order_header_ix like bapisdhd1x occurs 0 with header line.
data : order_items_in like bapisditm occurs 0 with header line,
order_items_ix like bapisditmx occurs 0 with header line.
data : order_partners like bapiparnr occurs 0 with header line.
data : return1 like bapiret2 occurs 0 with header line.
data : w_vbeln like bapivbeln-vbeln.
data:
order_schedules_in like bapischdl occurs 0 with header line,
order_schedules_ix like bapischdlx occurs 0 with header line.
data: filename type string,
xmldata type xstring .
data: result_xml type standard table of smum_xmltb.
data: return type standard table of bapiret2 .
constants: line_size type i value 255.
data: begin of xml_tab occurs 0,
raw(line_size) type x,
end of xml_tab,
file type string,
size type i.
upload the xml file
filename = 'C:\so_new.xml' .
call function 'GUI_UPLOAD'
exporting
filename = filename
filetype = 'BIN'
has_field_separator = ' '
header_length = 0
importing
filelength = size
tables
data_tab = xml_tab
exceptions
others = 1.
call function 'SCMS_BINARY_TO_XSTRING'
exporting
input_length = size
FIRST_LINE = 0
LAST_LINE = 0
importing
buffer = xmldata
tables
binary_tab = xml_tab
exceptions
failed = 1
others = 2
.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function 'SMUM_XML_PARSE'
exporting
xml_input = xmldata
tables
xml_table = result_xml
return = return.
data: result_xml1 like smum_xmltb.
*data: begin of salesorder occurs 0,
doctype like bapisdhd1-doc_type,
salesorg like bapisdhd1-sales_org,
distrchan like bapisdhd1-distr_chan,
division like bapisdhd1-division,
salesoff like bapisdhd1-sales_off,
purchnoc like bapisdhd1-purch_no_c,
purchdate like bapisdhd1-purch_date,
reqdateh like bapisdhd1-req_date_h,
material like bapisditm-material,
plant like bapisditm-plant,
division1 like bapisditm-division,
targetqu like bapisditm-target_qu,
partnrole like bapiparnr-partn_role,
partnnumb like bapiparnr-partn_numb,
itmnumber like bapischdl-itm_number,
reqquantity like bapischdl-req_qty,
end of salesorder.
*
data: item_cnt type i value 0,sch_cnt type i value 0,
patnr_flag type i value 0.
loop at result_xml into result_xml1.
*Using case and end case
case result_xml1-cname.
when 'doc_type'.
order_header_in-doc_type = result_xml1-cvalue.
when 'sales_org'.
order_header_in-sales_org = result_xml1-cvalue.
when 'distr_chan'.
order_header_in-distr_chan = result_xml1-cvalue.
when 'division'.
order_header_in-division = result_xml1-cvalue.
when 'sales_off'.
order_header_in-sales_off = result_xml1-cvalue.
when 'purch_no_c'.
order_header_in-purch_no_c = result_xml1-cvalue.
when 'purch_date'.
order_header_in-purch_date = result_xml1-cvalue.
when 'req_date_h'.
order_header_in-req_date_h = result_xml1-cvalue.
Appending the Order_Header_in table
append order_header_in.
when 'material'.
order_items_in-material = result_xml1-cvalue.
when 'plant'.
order_items_in-plant = result_xml1-cvalue.
Appending the Order_Items_In table.
append order_items_in.
item_cnt = item_cnt + 1.
when 'partn_role'.
order_partners-partn_role = result_xml1-cvalue.
when 'partn_numb'.
order_partners-partn_numb = result_xml1-cvalue.
append order_partners.
patnr_flag = 1.
when 'req_qty'.
order_schedules_in-req_qty = result_xml1-cvalue.
Appending the Order_Schedules_in table.
append order_schedules_in.
sch_cnt = sch_cnt + 1.
endcase.
*********************************************
*Updating the indices
order_header_ix-updateflag = 'I'.
order_header_ix-doc_type = 'X'.
order_header_ix-sales_org = 'X'.
order_header_ix-distr_chan = 'X'.
order_header_ix-division = 'X'.
order_header_ix-sales_off = 'X'.
order_header_ix-purch_no_c = 'X'.
order_header_ix-purch_date = 'X'.
order_header_ix-req_date_h = 'X'.
append order_header_ix.
order_items_ix-updateflag = 'I'.
order_items_ix-material = 'X'.
order_items_ix-plant = 'X'.
append order_items_ix.
order_schedules_ix-updateflag = 'I'.
order_schedules_inx-itm_number = 'X'.
order_schedules_ix-req_qty = 'X'.
append order_schedules_ix.
**************************************************
if item_cnt = sch_cnt and patnr_flag = 1.
Calling the function module for creating the sales order
call function 'BAPI_SALESORDER_CREATEFROMDAT2'
exporting
SALESDOCUMENTIN =
order_header_in = order_header_in
order_header_inx = order_header_ix
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN =
CONVERT = ' '
importing
salesdocument = w_vbeln
tables
return = return1
order_items_in = order_items_in
order_items_inx = order_items_ix
order_partners = order_partners
order_schedules_in = order_schedules_in
order_schedules_inx = order_schedules_ix
ORDER_CONDITIONS_IN =
ORDER_CONDITIONS_INX =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
ORDER_CCARD =
ORDER_TEXT =
ORDER_KEYS =
EXTENSIONIN =
PARTNERADDRESSES =
.
if sy-subrc ne 0.
write: return1-message,return1-number,return1-type.
else.
write: return1-message,return1-number,return1-type.
call function 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
.
endif.
item_cnt = 0.
sch_cnt = 0.
patnr_flag = 0.
endif.
endloop.
regards,
pavan
2007 Dec 06 10:01 AM
Use the FM TEXT_CONVERT_XML_TO_SAP to read a XML file.
The below link has good source code on how to read or access xml files in ABAP & SAP:
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/xml-file-creation-from-abap-828310#
Please award points if found usefull.
Cheers,
Chaitanya.