Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Sending XML data to Application server

Former Member
0 Likes
2,105

Hi,

I have some HR data to be send in XML format to the application server.

Please find below part the code:

The final DATA retrieved from HR tables is in lt_alvoutfile.

END-OF-SELECTION.

DATA:

gd_dsn TYPE string,

gd_xml TYPE string,

gdo_data TYPE REF TO data,

gd_rc TYPE sysubrc,

go_doc TYPE REF TO cl_xml_document.

gd_dsn = 'output.xml'.

CALL TRANSFORMATION id

SOURCE itab = lt_alvoutfile

RESULT XML gd_xml.

CREATE OBJECT go_doc.

gd_rc = go_doc->parse_string( gd_xml ).

go_doc->display( ).

OPEN DATASET gd_dsn FOR OUTPUT IN BINARY MODE.

TRANSFER gd_xml TO gd_dsn.

CLOSE DATASET gd_dsn.

END-OF-SELECTION.

When I do this and check the application server through AL11 I see as Error log

Directory: ./

Name: X:\usr\sap\trans\temp\output.xml

###<#?#x#m#l# #v#e#r#s#i#o#n#=#"#1#.#0#"# #e#n#c#o#d#i#n#g#=#"#u#t#f#-#1#6#"#?#>#

#<#a#s#x#:#a#b#a#p# #x#m#l#n#s#:#a#s#x#=#"#h#t#t#p#:#/#/#w#w#w#.#s#a#p#.#c#o#m#/#a#b#a#p#x#m#l#"# #v#e#r#s#i#o#n#=#"#1#.#0#"#>#<#a#s#x#:#v#a#l#u#e#s#>#<#I#T#A#B#/#>#<#/#a#s#x#:#v

Please suggest how we can rectify this and make it display as an normal XML file with tags.

6 REPLIES 6
Read only

Former Member
0 Likes
828

instead of OPEN DATASET gd_dsn FOR OUTPUT IN BINARY MODE.

use OPEN DATASET gd_dsn FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

problem is with the mode of data transfer.

use text mode .

Read only

0 Likes
828

Hi,

it gives dump if i use text mode.

Read only

0 Likes
828

same thing i ahve imp. in my system. its giving correct xml file wiht tags in the appl. server.

REPORT yxml.

TYPES: BEGIN OF ty_temp,

text(100) TYPE c,

END OF ty_temp.

DATA: lt_alvoutfile TYPE TABLE OF ty_temp.

DATA:

gd_dsn TYPE string VALUE '/datafiles/text.xml',

gd_xml TYPE string,

gdo_data TYPE REF TO data,

gd_rc TYPE sysubrc,

go_doc TYPE REF TO cl_xml_document,

wa_temp TYPE ty_temp.

wa_temp-text = 'dkjdsfjgkjfdgfd'.

APPEND wa_temp TO lt_alvoutfile.

CLEAR wa_temp.

wa_temp-text = '111111111111'.

APPEND wa_temp TO lt_alvoutfile.

CLEAR wa_temp.

wa_temp-text = 'd435ytry56gfhgd'.

APPEND wa_temp TO lt_alvoutfile.

CLEAR wa_temp.

*gd_dsn = 'output.xml'.

CALL TRANSFORMATION id

SOURCE itab = lt_alvoutfile

RESULT XML gd_xml.

CREATE OBJECT go_doc.

gd_rc = go_doc->parse_string( gd_xml ).

go_doc->display( ).

OPEN DATASET gd_dsn FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

TRANSFER gd_xml TO gd_dsn.

CLOSE DATASET gd_dsn.

execute the same in in ur system and let me know the status

Read only

0 Likes
828

I was able to get rid of cryptic characters but the whole xml file appears as a single line like

?xml version="1.0" encoding="utf-16"?>

sx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"><asx:values><ITAB><item><PERNR>00005987</PERNR><NACHN>Diersing</NACHN><VORNA>Christina</VORNA><MIDNM>M</MIDNM></GESCH><GBDAT>1955-08-GBDAT><STRAS>2068 Faycrest Drive</STRAS><LOCAT/><ORT01>Cincinnati</ORT01><PSTLZ>45238</PSTLZ><TELNR>5134514054</TELNR></item></ITAB></asx:values></a

does an xml file appear as single line or as a typical xml file in different lines.

i am not sure how the XML file in single line is right.

Read only

Former Member
0 Likes
828

please find attached the entire code.

&----


*& Report ZPA_IOFFICE_INTERFACE *

*& *

&----


*& *

*& *

&----


REPORT zhpa_ioffice_interface .

INFOTYPES: 0001, "HR Master Record: Infotype 0001 (Org. Assignment)

0000, "HR Master Record: Infotype 0000 (Actions)

0002, "HR Master REcord(Personal data)

0006.

NODES: person,peras.

TABLES: pernr ,tbdls.

----


  • DATA DECLARATIONS *

----


DATA:lt_0001 TYPE STANDARD TABLE OF p0001,

lt_0002 TYPE STANDARD TABLE OF p0002.

DATA: BEGIN OF lt_outfile,

pernr TYPE p0000-pernr,

nachn TYPE p0002-nachn,

vorna TYPE p0002-vorna,

midnm TYPE p0002-midnm,

gesch TYPE p0002-gesch,

gbdat TYPE p0002-gbdat,

stras TYPE p0006-stras,

locat TYPE p0006-locat,

ort01 TYPE p0006-ort01,

pstlz TYPE p0006-pstlz,

telnr TYPE p0006-telnr.

DATA: END OF lt_outfile.

DATA: w_count TYPE i.

FIELD-SYMBOLS: <fldvalue> TYPE ANY,

<infty_ln> TYPE ANY.

*Final Output list Internal table----


DATA: lt_alvoutfile LIKE STANDARD TABLE OF lt_outfile.

DATA: wa_return TYPE bapireturn1.

DATA: g_return TYPE bapireturn1.

DATA: stru_disvar TYPE disvariant.

DATA: waconst TYPE zbc_const.

DATA:rec_cnt TYPE i.

DATA:v_p_abap_flg,

v_s_dataset_flg.

DATA: alpha LIKE sy-datum VALUE '18000101'."begin date to be used for data retreival

DATA: v_identifier TYPE logsys,

v_directory TYPE dir_name,

v_file TYPE fileextern,

v_physical_file LIKE rlgrap-filename,

wa_rep_date(10) TYPE c,

wa_rep_time(15) TYPE c.

DATA:l_filename TYPE rlgrap-filename.

TYPES: truxs.

DATA: l_dom TYPE REF TO if_ixml_element,

m_document TYPE REF TO if_ixml_document,

g_ixml TYPE REF TO if_ixml,

w_string TYPE xstring,

w_size TYPE i,

w_result TYPE i,

w_line TYPE string,

it_xml TYPE dcxmllines,

s_xml LIKE LINE OF it_xml,

w_rc LIKE sy-subrc.

DATA: xml TYPE dcxmllines.

DATA: rc TYPE sy-subrc,

BEGIN OF xml_tab OCCURS 0,

d LIKE LINE OF xml,

END OF xml_tab.

*data:filename TYPE RLGRAP-FILENAME.

*DATA: XMLTAB TYPE TYPE_XMLTAB, BIN_SIZE TYPE I.

CONSTANTS: c_i(1) TYPE c VALUE '1' ,

c_eq(2) TYPE c VALUE 'EQ' ,

c_3(1) TYPE c VALUE '3' .

----


*Selection-Screen

SELECTION-SCREEN BEGIN OF BLOCK block_one WITH FRAME TITLE text-001.

PARAMETERS: filenam1 TYPE rlgrap-filename,

filenam2 TYPE rlgrap-filename,

filenam3 TYPE rlgrap-filename.

SELECT-OPTIONS: s_logsys FOR tbdls-logsys NO INTERVALS NO-EXTENSION.

  • OBLIGATORY.

SELECTION-SCREEN END OF BLOCK block_one.

----


*Select-options:

----


*parameter:p_date type sy-datum.

----


INITIALIZATION.

  • perform init_selction_screen.

pnptimed = 'D'. "Today

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenam1.

SET EXTENDED CHECK OFF.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

static = 'X'

CHANGING

file_name = filenam1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenam2.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

static = 'X'

CHANGING

file_name = filenam2.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenam3.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

static = 'X'

CHANGING

file_name = filenam3.

----


*SELECTION-SCREEN.

----


----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

  • perform authoritychk.

GET peras.

rp_provide_from_last p0000 space alpha pn-begda.

CHECK pnp-sw-found EQ c_i.

  • Check if employee is active

IF p0000-stat2 = '3'.

*

    • *Infotype 0001

rp_provide_from_last p0001 space alpha pn-begda.

CHECK p0001-pernr IN pnppernr.

  • *** Che k Personnel area ***

CHECK p0001-werks IN pnpwerks.

      • Check Personnel subarea ***

CHECK p0001-btrtl IN pnpbtrtl.

      • Check Organisational unit ***

CHECK p0001-orgeh IN pnporgeh.

      • heck Employee group ****

CHECK p0001-persg IN pnppersg.

      • Check Employee Number ****

CHECK p0001-gsber IN pnpgsber.

CHECK p0001-persk IN pnppersk.

CHECK p0001-orgeh IN pnporgeh.

CHECK p0001-plans IN pnpplans.

rp_provide_from_last p0002 space alpha pn-begda.

rp_provide_from_last p0006 space alpha pn-begda.

lt_outfile-pernr = p0000-pernr.

lt_outfile-nachn = p0002-nachn.

lt_outfile-vorna = p0002-vorna.

lt_outfile-midnm = p0002-midnm.

lt_outfile-gesch = p0002-gesch.

lt_outfile-gbdat = p0002-gbdat.

lt_outfile-stras = p0006-stras.

lt_outfile-locat = p0006-locat.

lt_outfile-ort01 = p0006-ort01.

lt_outfile-pstlz = p0006-pstlz.

lt_outfile-telnr = p0006-telnr.

APPEND lt_outfile TO lt_alvoutfile.

ENDIF.

END-OF-SELECTION.

DATA:

gd_dsn TYPE string,

gd_xml TYPE string,

gdo_data TYPE REF TO data,

*gt_knb1 TYPE STANDARD TABLE OF knb1,

gd_rc TYPE sysubrc,

go_doc TYPE REF TO cl_xml_document.

gd_dsn = 'output.xml'.

CALL TRANSFORMATION id

SOURCE itab = lt_alvoutfile

RESULT XML gd_xml.

CREATE OBJECT go_doc.

gd_rc = go_doc->parse_string( gd_xml ).

go_doc->display( ).

OPEN DATASET gd_dsn FOR OUTPUT IN BINARY MODE.

TRANSFER gd_xml TO gd_dsn.

CLOSE DATASET gd_dsn.

END-OF-SELECTION.

*data:xml_line(255) TYPE x,

  • hhh like line of it_xml.

*

  • CLASS cl_ixml DEFINITION LOAD.

  • g_ixml = cl_ixml=>create( ).

  • CHECK NOT g_ixml IS INITIAL.

  • m_document = g_ixml->create_document( ).

  • CHECK NOT m_document IS INITIAL.

  • WRITE: / 'Converting DATA TO DOM 1:'.

  • CALL FUNCTION 'SDIXML_DATA_TO_DOM'

  • EXPORTING

  • name = 'BIOGRAPHICALDATA'

  • dataobject = lt_alvoutfile

  • IMPORTING

  • data_as_dom = l_dom

  • CHANGING

  • document = m_document

  • EXCEPTIONS

  • illegal_name = 1

  • OTHERS = 2.

  • IF sy-subrc = 0.

  • WRITE 'Ok'.

  • ELSE.

  • WRITE: 'Err =',

  • sy-subrc.

  • ENDIF.

  • CHECK NOT l_dom IS INITIAL.

  • w_rc = m_document->append_child( new_child = l_dom ).

  • IF w_rc IS INITIAL.

  • WRITE 'Ok'.

  • ELSE.

  • WRITE: 'Err =',

  • w_rc.

  • ENDIF.

  • CALL FUNCTION 'SDIXML_DOM_TO_XML'

  • EXPORTING

  • document = m_document

  • IMPORTING

  • xml_as_string = w_string

  • size = w_size

  • TABLES

  • xml_as_table = it_xml

  • EXCEPTIONS

  • no_document = 1

  • OTHERS = 2.

  • IF sy-subrc = 0.

  • WRITE 'Ok'.

  • ELSE.

  • WRITE: 'Err =',

  • sy-subrc.

  • ENDIF.

    • LOOP AT it_xml INTO xml_tab-d.

    • APPEND xml_tab.

    • ENDLOOP.

  • SELECT low

  • INTO v_identifier

  • FROM zbc_const

  • WHERE pname = sy-cprog AND name = 'C_IDENTIFIER'.

  • ENDSELECT.

  • IF sy-subrc <> 0.

  • waconst-pname = sy-cprog.

  • waconst-name = 'C_IDENTIFIER'.

  • waconst-type = 'V'.

  • waconst-numb = 1.

  • waconst-sign = 'I'.

  • waconst-opti = 'EQ'.

  • waconst-low = 'UCHIOFFICE'.

  • MODIFY zbc_const FROM waconst.

  • COMMIT WORK.

  • v_identifier = waconst-low.

  • ENDIF.

*

      • get file name from ZTFI_IDC

  • SELECT SINGLE dir_name fileextern

  • INTO (v_directory, v_file)

  • FROM ztfi_idc

  • WHERE logsys = v_identifier.

  • CONCATENATE: v_file '.TXT' INTO v_file,

  • v_directory '/' v_file

  • INTO v_physical_file.

*v_physical_file = 'test11.XML'.

    • l_filename = '/xml//test1.xml'.

  • OPEN DATASET v_physical_file FOR OUTPUT IN BINARY MODE.

    • ENCODING DEFAULT.

    • ENCODING DEFAULT.

  • IF SY-SUBRC <> 0.

  • WRITE: 'SY-SUBRC:', SY-SUBRC,

  • / 'System Message:'.

*ENDIF.

*

  • Loop at it_xml into hhh.

    • into xml_tab-d.

  • TRANSFER hhh TO v_physical_file .

  • endloop.

  • CLOSE DATASET v_physical_file .

*

**CALL FUNCTION 'WS_DOWNLOAD'

**EXPORTING

**BIN_FILESIZE = W_SIZE

**FILENAME = filenam1

**FILETYPE = 'BIN'

**TABLES

**DATA_TAB = XML_TAB

**EXCEPTIONS

**OTHERS = 10.

**IF SY-SUBRC <> 0.

**MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

**WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.

Read only

0 Likes
828

in the beginning of the file we see &#65279;some garbage characte like small box which we usually see when we upload from text file into our program editor.

can you suggest why do we see that.