EXCEL UPLOAD - CALL TRANSFORMATION

Hi,
  I am uploading the data from .xml file using Fileupload UI element into the string sucessfully. But now i need to convert that string data into my internal table using the Call Transformation statement.
  I have the XSLT file for this but i don't know where to place this XSLT file and how to use it inthe Call transformation statement while uploading the data.
  CALL TRANSFORMATION 'XSLT File' SOURCE XML filecontent
                      RESULT itemlist = lt_employees.
the bold XSLT file where we need to place in SAP to retrive the data into internal table.
Please help me, it is urgest issue.
Thanks in Advance
Best Regards,
Vijay

Hello Vijay,
call se80 and choose a package, then right-click on the package name and choose "Create" -> "Other(1)" -> "Transformation".
Choose a name for this transformation (e.g. MY_TRANSF) and enter the code for the transformation in th editor. In your application you can use
CALL TRANSFORMATION MY_TRANSF
   source XML ...
   result ....
Regards,
Rainer

Similar Messages

  • ADFDi Excel upload failed in a new session

    ADFDi Excel upload failed when a change was made in a locally saved ADFDi Excel file.  This should be a very common disconnected scenario.  I must miss something.  Here are high-level steps that I have done.
    1. Open a ADFDi Excel from a ADF page.
    2. Download data to Excel
    3. Modify a row in ADF table component in the Excel, then save the Excel file locally.  (If I clicked the 'Save' button instead of saving the file locally, the change was uploaded to the server correctly).
    4. Open the locally saved Excel, and accept the option to connect to the server and login.  A new session should be created in the ADF web application.
    5. Click 'No' in the popup window of "Do you want to discard the pending change?"
    6. The 'changed' indicator is shown on the changed row in the Excel.  Click 'Save' button, which has two actions - Upsync and ADFTable.upload
    7. On the server, a 'Row not found' exception is thrown from DCJboDataControl.setCurrentRowInRSI().  In this method, it tries to find the row in the ViewObject instance using the uploaded row's key.  The code is rsi.findByKey(key, 1).  I checked the value of key.  It looks correct. But no row is return from findByKey() call.  Then 'No row found' exception is thrown.
    My JDev version 11.1.1.7
    Greatly appreciate any suggestion on what could be wrong?

    HI
    I am facing the same issue. Are you able to resolve this issue or any solution around ?
    Thanks

  • XML to Internal table using XSLT by CALL TRANSFORMATION error

    Dear experts,
    I have to fetch the data from an XML file using XSLT into internal tables. The XML file is very big as following:-
    <?xml version="1.0" standalone="yes" ?>
    - <Shipment>
      <shipmentID>25091203S000778</shipmentID>
      <manifestDateTime>2009-12-03T20:16:52.00</manifestDateTime>
      <shipmentFacilityNumber>025</shipmentFacilityNumber>
      <shipmentFacilityAbbreviation>CHI</shipmentFacilityAbbreviation>
      <shipmentFacilityAddress1>810 KIMBERLY DRIVE</shipmentFacilityAddress1>
      <shipmentFacilityAddress2 />
      <shipmentFacilityCity>CAROL STREAM</shipmentFacilityCity>
      <shipmentFacilityState>IL</shipmentFacilityState>
      <shipmentFacilityPostalCode>601880000</shipmentFacilityPostalCode>
      <shipmentTruckCarrierCode>X150</shipmentTruckCarrierCode>
      <shipmentSourceCode>T</shipmentSourceCode>
      <userID>CAMPOSG</userID>
    - <Delivery>
      <primaryCustomerNumber>954371</primaryCustomerNumber>
      <primaryCustomerName>MIDWEST OFFICE SUPPLY</primaryCustomerName>
      <primaryCustomerAddress1 />
      <primaryCustomerAddress2>4765 INDUSTRIAL DR</primaryCustomerAddress2>
      <primaryCustomerCity>SPRINGFIELD</primaryCustomerCity>
      <primaryCustomerState>IL</primaryCustomerState>
      <primaryCustomerPostalCode>627030000</primaryCustomerPostalCode>
      <primaryCustomerPhoneNumber>2177535555</primaryCustomerPhoneNumber>
      <shuttleStopFacilityNumber />
      <billOfLadingNumber>25HZK99</billOfLadingNumber>
      <carrierProNumber />
      <shipmentTotalCartonCount>6</shipmentTotalCartonCount>
      <shipmentTotalWeight>266</shipmentTotalWeight>
    - <order>
      <orderNumber>25HZK99</orderNumber>
      <subOrderNumber />
      <dateProcessed>2009-12-03</dateProcessed>
      <primaryOrderNumber />
      <shipTruckCode>X150</shipTruckCode>
      <shipTruckDescription>UDS - ADDISON</shipTruckDescription>
      <shipTruckPriorityCode>01</shipTruckPriorityCode>
      <shipTruckGroupCode>01</shipTruckGroupCode>
      <shipTruckDepartureTime>20.00.00</shipTruckDepartureTime>
      <shipTruckDockID>07</shipTruckDockID>
      <ldpFacilityAbbreviation />
      <shuttleAvailableIndicator>N</shuttleAvailableIndicator>
      <shuttleMessageText />
      <crossDockFacilityCode />
      <crossDockTruckCode />
      <crossDockID />
      <subsidizedFreightTruckID />
      <customerPurchaseOrderNumber>623559</customerPurchaseOrderNumber>
      <headerTypeCode>P</headerTypeCode>
      <orderTypeID>RG</orderTypeID>
      <deliveryTypeID>DS</deliveryTypeID>
      <deliveryMethodCode />
      <customerBarCode />
      <customerReferenceData>25HZK99</customerReferenceData>
      <customerReferenceText />
      <customerRouteData>ZNED UNTED</customerRouteData>
      <customerRouteText>ROUTE</customerRouteText>
      <endConsumerPurchaseOrderNumber />
      <endConsumerPurchaseOrderText />
      <endConsumerName>CHARLESTON TRANS. FACILITY</endConsumerName>
      <endConsumerAddress1>HOMEWOOD DT PROGRAM DEPT. 3</endConsumerAddress1>
      <endConsumerAddress2>17341 PALMER BLVD.</endConsumerAddress2>
      <endConsumerAddress3 />
      <endConsumerCity>HOMEWOOD</endConsumerCity>
      <endConsumerState>IL</endConsumerState>
      <endConsumerPostalCode>60430</endConsumerPostalCode>
      <endConsumerCountryCode />
      <fillFacilityNumber>025</fillFacilityNumber>
      <shpFacilityNumber>025</shpFacilityNumber>
      <homeFacilityAbbrCode>STL</homeFacilityAbbrCode>
      <homeFacilityNumber>015</homeFacilityNumber>
      <multiCartonIndicator>Y</multiCartonIndicator>
      <primaryCustomerIndicator>Y</primaryCustomerIndicator>
      <shipToCustomerNumber>954371001</shipToCustomerNumber>
      <customerCompanyID>01</customerCompanyID>
      <customerTruckID>U888</customerTruckID>
      <customerTruckDescription>UDS - ADDISON</customerTruckDescription>
      <customerTruckDockID>13</customerTruckDockID>
      <thirdPartyBillCarrier />
      <thirdPartyBillID />
      <thirdPartyBillType />
      <qualityCheckIndicator>N</qualityCheckIndicator>
      <warehouseLaydownID />
      <packListPosition>I</packListPosition>
      <preferredPackingType>CTN</preferredPackingType>
      <preferredPackingMaterial>PAPER</preferredPackingMaterial>
      <preferedPackingInstructions />
      <totalOrderCartonQty>6</totalOrderCartonQty>
      <convertAddressIndicator>N</convertAddressIndicator>
      <dealerInstructionIndicator>Y</dealerInstructionIndicator>
      <dealerinstructions1>CPO#: 623559</dealerinstructions1>
      <dealerinstructions2>ATTN: DANA GRIFFIN</dealerinstructions2>
      <dealerinstructions3>INFO: 612</dealerinstructions3>
      <dealerinstructions4>ROUTE: ZNED UNTED</dealerinstructions4>
      <dealerinstructions5 />
      <dealerinstructions6 />
      <shippingInstructionsIndicator>N</shippingInstructionsIndicator>
      <shippingInstructions1 />
      <shippingInstructions2 />
      <shippingInstructions3 />
      <shippingInstructions4 />
      <shippingInstructions5 />
      <shippingInstructions6 />
      <specialInstructionsIndicator>N</specialInstructionsIndicator>
      <specialInstructions1 />
      <specialInstructions2 />
      <customeContainerDesc />
    - <carton>
      <deliveryCartonID>253370905995</deliveryCartonID>
      <shipIndicator>Y</shipIndicator>
      <deliveryPalletID>X150</deliveryPalletID>
      <consolidatedDeliveryCartonID />
      <scanDateTime>2009-12-03T19:36:12.00</scanDateTime>
      <cartonWeight>52</cartonWeight>
      <dropShipFlag>1</dropShipFlag>
      <carrierTrackingNumber />
      <carrierZoneID>0</carrierZoneID>
      <codAmount />
      <customerPackageAmount />
      <declaredValue />
      <residentialDeliveryIndicator />
      <serviceTypeCode>00</serviceTypeCode>
      <ssccCode>006860244400829393</ssccCode>
    - <Item>
      <shipPrefix>UNV</shipPrefix>
      <shipStockNumber>21200</shipStockNumber>
      <itemDescription>PAPER XERO/DUP WE LTR 20#</itemDescription>
      <orderQuantity>1</orderQuantity>
      <originalShipQuantity>1</originalShipQuantity>
      <shipQuantity>1</shipQuantity>
      <inventoryUnitCode>CT</inventoryUnitCode>
      <inventoryWeightQuantity>52.000</inventoryWeightQuantity>
      <upcNumber>00000000000000</upcNumber>
      <upcRetailCode>087547212004</upcRetailCode>
      <hazmatIndicator>N</hazmatIndicator>
      <serialRequiredIndicator>N</serialRequiredIndicator>
      <dealerMemoPO>S</dealerMemoPO>
      <cartonLineNumber>1</cartonLineNumber>
      <orderLineNumber>11</orderLineNumber>
      <originalOrderPrefix>UNV</originalOrderPrefix>
      <originalOrderStockNumber>21200</originalOrderStockNumber>
      <reasonCode />
    - <Item_Serial>
      <serialNumber />
      </Item_Serial>
        </Item>
      </carton>
       </order>
      </Delivery>
      </Shipment>
    This is not the complete XML file as it exceeds the 15000 characters and then I cann't post here. So I have deleted much part of it.
    The hierarchy is as following: Shipment->Delivery->Order->Carton->Item.
    I have created a XSLT for it which is working fine.
    But when I execute my report program it gives CX_SY_XSLT_FORMAT_ERROR saying that
    Transformation error:  Non-canonical structure of element name XML_OUTPUT.

    Dear experts,
    My report program is as following:-
    *& Report  Z_ASNTRNS
    REPORT  Z_ASNTRNS.
    *& Report  Z_ASNTRNS
    TYPE-POOLS: abap, ixml.
    TABLES: ZASN_SHIPMENT,ZASN_DELIVERY,ZASN_ORDER,ZASN_CARTON,ZASN_ITEM.
    *CONSTANTS gs_file TYPE string VALUE 'C:Documents and SettingsC5134126DesktopRajesh_kandakatlaSampleASNFile.xml'.
    This is the structure for the data from the XML file
    TYPES: BEGIN OF ts_item,
          ZSHIPMENT LIKE ZASN_ITEM-ZSHIPMENT,
          VBELN LIKE ZASN_ITEM-VBELN,
          ORDER_NUMBER LIKE ZASN_ITEM-ORDER_NUMBER,
          CARTON_ID LIKE ZASN_ITEM-CARTON_ID,
           ITEM LIKE ZASN_ITEM-ITEM,
           CARTON_LINE_NUM LIKE ZASN_ITEM-CARTON_LINE_NUM,
           CARTON_LINE_NUMBER LIKE ZASN_ITEM-CARTON_LINE_NUM,
          AEDAT(8),
          AEZET(6),
           ITEM_DESCRIPTION LIKE ZASN_ITEM-ITEM_DESCRIPTION,
           ORD_QTY(16),
           ORIGINAL_SHIP(16),
           SHIP_QTY(16),
           UPC_NUMBER LIKE ZASN_ITEM-UPC_NUMBER,
           DEALER_MEMO_PO(5),
           ORDER_LINE_NUM LIKE ZASN_ITEM-ORDER_LINE_NUM,
          STATUS LIKE ZASN_ITEM-STATUS,
           END OF ts_item.
    TYPES: BEGIN OF ts_carton,
          ZSHIPMENT LIKE ZASN_CARTON-ZSHIPMENT,
          VBELN LIKE ZASN_CARTON-VBELN,
          ORDER_NUMBER LIKE ZASN_CARTON-ORDER_NUMBER,
           CARTON_ID LIKE ZASN_CARTON-CARTON_ID,
          AEDAT(8),
          AEZET(6),
           SHIP_INDICATOR LIKE ZASN_CARTON-SHIP_INDICATOR,
           TRACKING_NUMBER LIKE ZASN_CARTON-TRACKING_NUMBER,
           ZZCARTON_WGT(18),
           Item type ts_item,
           END OF ts_carton.
    TYPES: BEGIN OF ts_order,
          ZSHIPMENT LIKE ZASN_ORDER-ZSHIPMENT,
          VBELN LIKE ZASN_ORDER-VBELN,
           ORDER_NUMBER LIKE ZASN_ORDER-ORDER_NUMBER,
          AEDAT(8),
          AEZET(6),
           SUB_ORDER LIKE ZASN_ORDER-SUB_ORDER,
           ORDER_DATE(8),
           PRIMARY_ORDER LIKE ZASN_ORDER-PRIMARY_ORDER,
           CUSTOMER_PO LIKE ZASN_ORDER-CUSTOMER_PO,
           PRIMARY_ID LIKE ZASN_ORDER-PRIMARY_ID,
           SHIP_TO LIKE ZASN_ORDER-SHIP_TO,
          ANZPK(5),
           carton type ts_carton,
           END OF ts_order.
    TYPES: BEGIN OF ts_delivery,
          ZSHIPMENT LIKE ZASN_DELIVERY-ZSHIPMENT,
          VBELN LIKE ZASN_DELIVERY-VBELN,
          AEDAT(8) TYPE C,
          AEZET(6) TYPE C,
           PRIMARY_CUSTOMER LIKE ZASN_DELIVERY-PRIMARY_CUSTOMER,
           BILL_OF_LADING LIKE ZASN_DELIVERY-BILL_OF_LADING,
           CARTON_COUNT(5),
           TOTAL_WEIGHT(18),
           order type ts_order,
           END OF ts_delivery.
    TYPES: BEGIN OF ts_shipment,
           ZSHIPMENT LIKE ZASN_SHIPMENT-ZSHIPMENT,
           MANIFEST_DATE_TIME(25),
          AEDAT(8) TYPE C,
          AEZET(6) TYPE C,
          SDATE(8) TYPE C,
          STIME(6) TYPE C,
           SFACILITY_NUMBER LIKE ZASN_SHIPMENT-SFACILITY_NUMBER,
           ZZCARRIERCODE LIKE ZASN_SHIPMENT-ZZCARRIERCODE,
           Delivery type ts_delivery,
           END OF ts_shipment.
    TYPES: BEGIN OF ts_shipment1,
           ZSHIPMENT LIKE ZASN_SHIPMENT-ZSHIPMENT,
           MANIFEST_DATE_TIME(25),
           SFACILITY_NUMBER LIKE ZASN_SHIPMENT-SFACILITY_NUMBER,
           ZZCARRIERCODE LIKE ZASN_SHIPMENT-ZZCARRIERCODE,
           PRIMARY_CUSTOMER LIKE ZASN_DELIVERY-PRIMARY_CUSTOMER,
           BILL_OF_LADING LIKE ZASN_DELIVERY-BILL_OF_LADING,
           CARTON_COUNT(5),
           TOTAL_WEIGHT(18),
           ORDER_NUMBER LIKE ZASN_ORDER-ORDER_NUMBER,
           SUB_ORDER LIKE ZASN_ORDER-SUB_ORDER,
           ORDER_DATE(8),
           PRIMARY_ORDER LIKE ZASN_ORDER-PRIMARY_ORDER,
           CUSTOMER_PO LIKE ZASN_ORDER-CUSTOMER_PO,
           PRIMARY_ID LIKE ZASN_ORDER-PRIMARY_ID,
           SHIP_TO LIKE ZASN_ORDER-SHIP_TO,
           CARTON_ID LIKE ZASN_CARTON-CARTON_ID,
           SHIP_INDICATOR LIKE ZASN_CARTON-SHIP_INDICATOR,
           TRACKING_NUMBER LIKE ZASN_CARTON-TRACKING_NUMBER,
           ZZCARTON_WGT(18),
           ITEM LIKE ZASN_ITEM-ITEM,
           CARTON_LINE_NUM LIKE ZASN_ITEM-CARTON_LINE_NUM,
           CARTON_LINE_NUMBER LIKE ZASN_ITEM-CARTON_LINE_NUM,
           ITEM_DESCRIPTION LIKE ZASN_ITEM-ITEM_DESCRIPTION,
           ORD_QTY(16),
           ORIGINAL_SHIP(16),
           SHIP_QTY(16),
           UPC_NUMBER LIKE ZASN_ITEM-UPC_NUMBER,
           DEALER_MEMO_PO(5),
           ORDER_LINE_NUM LIKE ZASN_ITEM-ORDER_LINE_NUM,
           END OF ts_shipment1.
    TYPES: BEGIN OF t_xml_line,
                 data(256) TYPE x,
               END OF t_xml_line.
    *Typdefinition für Airplus
    *READ THE DOCUMENTATION "LASG_XML_INVOICE_BTM"!!!
    VARs beginning with "a_" are ATTRIBUTES
    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_ostream         TYPE REF TO if_ixml_ostream,
          l_document        TYPE REF TO if_ixml_document,
          l_node            TYPE REF TO if_ixml_node,
          l_xml TYPE REF TO cl_xml_document,
          l_xmldata         TYPE string.
    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.
    DATA: xml_out TYPE string ,
          size type i.
    DATA: l_xml_x1   TYPE xstring.
    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.
    DATA: BEGIN OF l_itab occurs 0,
          data(256) type c,
          end of l_itab.
    TYPES : BEGIN OF TY_TEXT,
              data(255) type C,
            END OF TY_TEXT.
    DATA: F_XML TYPE STRING.
    DATA : LT_TEXT_OUT type table of TY_TEXT with header line.
    tables
    DATA: it_shipment    TYPE STANDARD TABLE OF ts_shipment,
          wa_shipment    TYPE  ts_shipment.
    *Errorvariables
    DATA: xslt_err   TYPE REF TO cx_xslt_exception,
          err_string TYPE string.
    PARAMETERS: pa_file TYPE localfile OBLIGATORY
    DEFAULT 'C:Documents and SettingsC5134126DesktopRajesh_kandakatlaSampleASNFile.xml'.
    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.
    here we use the CALL TRANSFORMATION method which calls
    the XSLT program "z_asnfile"
    TRY.
        CALL TRANSFORMATION ('Z_ASNFILE')
          SOURCE xml LT_TEXT_OUT[]
          RESULT xml_output = it_shipment
    catch any error, very helpful if the XSLT isn't correct
        CATCH cx_xslt_exception INTO xslt_err.
        err_string = xslt_err->get_text( ).
        WRITE: / 'Transformation error: ', err_string.
        EXIT.
      ENDTRY." setting a breakpoint to watch the workarea
    by the internal table "it_airplus"
           break-point.
      LOOP AT it_shipment INTO wa_shipment.
      ENDLOOP.
    *&      Form  get_xml_table
      FORM get_xml_table CHANGING l_xml_table_size TYPE i
                                  l_xml_table      TYPE STANDARD TABLE.
        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.
    Convert binary to text.
    CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
      EXPORTING
        INPUT_LENGTH          = 70000
                FIRST_LINE            = 0
                LAST_LINE             = 0
                APPEND_TO_TABLE       = ' '
                MIMETYPE              = ' '
        WRAP_LINES            = 'X'
              IMPORTING
                OUTPUT_LENGTH         =
      TABLES
        BINARY_TAB            = l_xml_table
        TEXT_TAB              = LT_TEXT_OUT
              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.
    ENDFORM.                    "get_xml_table

  • Problem XML .. Call Transformation

    Hi Guru´s,
    Please, I need a help!!! ...
    I´m creating an XML and my Excel will open it...and I use Call transformation.
    Ok, it´s works perfect.... but I had to include a validating data in particular column(ranges data) and I can´t do it...
    I try  data validation:
    But don´t work fine. I suspect that data validation not working very well in call transformation...
    Somebody Can help me???
    Thanks...
    Alexandre

    hi
    good
    try this code
    Just look at this piece of code, I think it should help you.
      DATA : ITAB   TYPE TABLE OF SPFLI,
             L_XML  TYPE REF TO CL_XML_DOCUMENT.
      SELECT * FROM SPFLI INTO TABLE ITAB.
    CREATE THE XML OBJECT
      CREATE OBJECT L_XML.
    CONVERT THE DATA TO XML
      CALL METHOD L_XML->CREATE_WITH_DATA( DATAOBJECT = ITAB[] ).
    DATA IS CONVERTED TO XML; DISPLAY THE XML-DOCUMENT
      CALL METHOD L_XML->DISPLAY.
    thanks
    mrutyun^

  • CALL TRANSFORMATION - XSLT encoding not settable?

    Hello fellow ABAPer,
    I have a problem creating an XML file from an simple itab, using XSLT transformation (CALL TRANSFORMATION).
    Here's what I'm doing: I have a simple itab it_person type tt_person:
    TYPES: BEGIN OF tt_person,
      id(4) TYPE n,
      firstname(20) TYPE c,
      lastname(20)  TYPE c,
    END OF tt_person.
    I'm filling it_person with test-data:
    gs_person-id   = '1'.
    gs_person-firstname = 'John'.
    gs_person-lastname  = 'Smith'.
    APPEND wa_person TO it_person.
    Now I'm getting the reference of my itab for the CALL TRANSFORMATION command and I'm finally doing the actual transformation like this:
    CALL TRANSFORMATION z_test_transformation
        SOURCE (it_source_tab)
        RESULT XML it_xml.
    The Transformation (XSLT Program) looks like this:
    http://uploading.com/files/775c1d31/trans.txt/
    (sorry, I tried to post the transformation's code here, but that's not working, it screws the whole formating of this posting, that's why I had to upload it)
    When I'm gui_downloading the XML file it looks like this:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <CUSTOMERS>
      <item>
        <id>1</id>
        <first_name>John</first_name>
        <last_name>Smith</last_name>
      </item>
    </CUSTOMERS>
    So everything is fine, until now: I need a different encoding, the other system's parser is not able to read ISO-8859-1 encoded files. So I need the first line of my XML to look like this:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    ... and this is where I'm stuck right now, I can't get that to work.
    I can change the line in my transformation to:
    <xsl:output encoding="uft-8" indent="yes" method="xml" version="1.0" standalone="no"/>
    but the resulting XML file is still ISO-8859-1. The "standalone" tag, that I need as well, doesn't work either.
    So, what am I doing wrong? Is it not possible to create other XMLs than ISO-8859-1 with the XSLT-Transformation?
    Thanks alot, any help would be highly appreciated.
    AJ

    I guess it_xml is an internal table cotaining chars?
    i'm using
    xxml                    TYPE xstring,
    and
    CALL TRANSFORMATION z_abap_to_xml_root
          PARAMETERS mestyp = c_mestyp nsuri = c_namespace
          SOURCE filename = fname table = it_out
          RESULT XML xxml.
    and i'm getting the xml encoding like
    <?xml version="1.0" encoding="utf-8" ?>
    Directly after your transformation insert the following call if your report can run interactively:
    CALL FUNCTION 'DISPLAY_XML_STRING'
          EXPORTING
            xml_string            = xxml
    *         TITLE                 =
    *         STARTING_X            = 5
    *         STARTING_Y            = 5
          EXCEPTIONS
            no_xml_document       = 1
            OTHERS                = 2.
    This displays the XML so you can check the encoding to be sure that the data is not tempered elsewhere.
    Downloading the XML String even if its xstring should be no problem.

  • Call transformation with dynamic table

    hi
    i uploaded the xml file from application server into a internal table
    data : begin of t_x occurs 0,
    d type string,
    end of t_x.
      OPEN DATASET file FOR INPUT IN TEXT MODE ENCODING DEFAULT .
      DO.
        READ DATASET file INTO t_x-d.
        IF sy-subrc <> 0.
          EXIT.
        ELSE.
        append t_x.
        clear t_x.
        ENDIF.
      ENDDO.
      CLOSE DATASET filename.
    and after i want to call call transformation but i can't put a structure ref to a table like this
    CALL TRANSFORMATION ('ID')
    SOURCE XML xmlupl
    RESULT tab = t001[]
    because my file xml are not always the same structure.
    So is it possible to have a call transformation wit dynamic structure
    thanks for your help
    serge

    Hello Serge
    If you know what kind of structure you require for your itab you can dynamically create the appropriate itab:
    DATA:
      gd_struc    TYPE tabname,
      gdo_data    TYPE REF TO DATA.
    FIELD-SYMBOLS:
      <gt_itab>   TYPE TABLE.
    * Somehow find the required structure name
      gd_struc = 'KNA1'.  " for example
    * Create data reference with required type (dynamically)
      CREATE DATA gdo_dref TYPE (gd_struc).
    * Assign the data reference to your field symbol
      ASSIGN gdo_data->* TO <gd_itab>.
    * NOTE: <gd_itab> has the line structure of 'KNA1'.
    Regards
       Uwe

  • Fieldcatalog to Excel using Simple transformation

    Hi guys.
    I have tried to sort out how to write own simple transormations but i've got problems along before i had expected.
    The task is to make an XML file, that can be opened with Excel and it must contain row with column names of some dictionary table. The code is pretty simple:
    REPORT  ZJDTEST33.
    parameters: p_tabnam type tabname matchcode object DD_DBTB,
                p_file   type string default 'C:\data\test.xls'.
    data: gt_fcat type lvc_t_fcat,
          gd_xml  type string,
          gt_xml  type table of string.
    start-of-selection.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
       EXPORTING
         I_STRUCTURE_NAME             = p_tabnam
        CHANGING
          ct_fieldcat                  = gt_fcat.
    end-of-selection.
      call transformation ztest_simple
          SOURCE fieldcat = gt_fcat
          RESULT XML gd_xml.
      refresh gt_xml.
      APPEND gd_xml TO gt_xml.
      CALL METHOD cl_gui_frontend_services=>gui_download
          EXPORTING
             filename                  = p_file
             filetype                  = 'ASC'
          changing
            data_tab                  = gt_xml.
    This is transformation itself:
    <?sap.transform simple?>
    <?mso-application progid="Excel.Sheet"?>
    <tt:transform xmlns:tt="http://www.sap.com/transformation-templates"
                  xmlns:ddic="http://www.sap.com/abapxml/types/dictionary">
      <tt:root name="fieldcat" line-type="ddic:LVC_S_FCAT"/>
      <tt:template>
        <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"
                  xmlns:html="http://www.w3.org/TR/REC-html40">
          <Worksheet ss:Name="Sheet1">
            <Table>
              <Row>
                <tt:loop ref=".fieldcat">
                  <Cell>
                    <Data ss:Type="String">
                      <tt:value ref="SCRTEXT_M"/>
                    </Data>
                  </Cell>
                </tt:loop>
              </Row>
            </Table>
            <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
              <Selected/>
              <ProtectObjects>False</ProtectObjects>
              <ProtectScenarios>False</ProtectScenarios>
            </WorksheetOptions>
          </Worksheet>
        </Workbook>
      </tt:template>
    </tt:transform>
    Edited by: Petr.Plenkov on Nov 3, 2009 9:07 AM

    Finally, i've got the reason. If somebody has the same problem, just change the encoding manually into a string.
    replace first occurrence of 'utf-16' in ld_xmlstr with 'windows-1251'.
    Edited by: Petr.Plenkov on Nov 3, 2009 12:37 PM

  • Help on Call Transformation

    Hi
    i have created a RFC and thru that i am submitting a report and calling that RFC in my EP.
    i make use of the FM "WWW_HTML_TO_LISTOBJECT" so that data mirror image of my report is also displayed in my portal.
    But the problem is i can't control it, For eg: if i click on "download to excel" it isnt working properly.
    how should i overcome this problem.
    Once Mr.Raja (one of the sdn member) suggested to use
    "call transformation" method, can you be specific to that, how should i use that in ALV report. where should i write "call transoformation" method. A sample code would be helpful.
    Thank you

    <b>Call Transformation</b>
    is for transforming XML using XSLT into a xml/html/abap itab, etc formats.
    of transforming abap itab to xml format.
    you cannot convert the html returned by your program into your required format using this mechanism.
    if you want to use this feature , then your report should be returning XML output.
    possible tranformation scenarios
    from XML to XML (only for XSLT),
    from XML to ABAP (for XSLT and simple transformations),
    from ABAP to XML (for XSLT and simple transformations),
    from ABAP to ABAP (only for XSLT),
    Regards
    Raja

  • Preceeding zeroes while excel upload and download

    Hi,
    I am uploading some data from excel into an internal table,processing it and then downloading it again in excel.
    For Excel Upload I am using CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    For Excel Download I am using GUI_DOWNLOAD.
    But the problems is when the data is like 01 it is downloading it as 1 in the excel.The user don't want to do any changes after downloading it to the excel and want the data 01 to be dowloaded as 01 itself and not as 1.
    We can format it in excel but the user is not willing for that.Any possibility that we can handle it in the program.
    Thanks,
    K.Kiran.

    You have to use OLE technique for the same....that will solve your case.
    supposae i want to make the 5th , 6th and 7th coloumn , as character format.
    The below scenario will help.
    collect the contents of the excel in  it[] ,
      DESCRIBE TABLE it[] LINES wf_it_line.
      wf_it_line = wf_it_line + 8.
      CLEAR : wf_cellx, wf_celly, wf_cellr.
      CALL METHOD OF wf_excel 'Cells' = wf_cellx
      EXPORTING
       #1 = 8
       #2 = 5.
      CALL METHOD OF wf_excel 'Cells' = wf_celly
      EXPORTING
       #1 = wf_it_line
       #2 = 7.
      CALL METHOD OF wf_excel 'Range' = wf_cellr
       EXPORTING
    #1 = wf_cellx
    #2 = wf_celly.
      SET PROPERTY OF wf_cellr 'NumberFormat' = '@' .
    this will change the format of the excel.
    then call the below method
      CALL METHOD cl_gui_frontend_services=>clipboard_export
          IMPORTING
            data                 = it[]
          CHANGING
            rc                   = l_rc
          EXCEPTIONS
            cntl_error           = 1
            error_no_gui         = 2
         not_supported_by_gui = 3
            OTHERS               = 4.
      CALL METHOD OF wf_excel 'Cells' = wf_cell1
        EXPORTING
         #1 = 1
         #2 = 1.
      CALL METHOD OF wf_excel 'Cells' = wf_cell2
        EXPORTING
         #1 = 1
         #2 = 1.
      CALL METHOD OF wf_excel 'Range' = wf_range
        EXPORTING
         #1 = wf_cell1
         #2 = wf_cell2.
      CALL METHOD OF wf_range 'Select'.
      CALL METHOD OF wf_worksheet 'Paste'.
    then call the method 'SAVEAS' to save the excel.
    Edited by: Rudra Prasanna Mohapatra on Jan 22, 2009 5:47 AM

  • Como salvar o resultado de um call transformation em um diretorio local?

    Tudo bem pessoal,
    Estou em um desenvolvimento onde tenho que salvar o resultado de um CALL TRANSFORMATION e ter como resultado um XML posteriormente salva-lo em um diretorio local, do SAP para desktop, estou tendo o resultado correto e consigo ver  atraves de uma função chamada 'SWF_XML_DISPLAY' passando o resutlato com a variavel do tipo XSTRING.
    No momento de usar o gui_download recebo uma exceção por objeto não pode ser convertido, já tentei fazer a conversão para binario e neste scenario consigo salvar mas o resultado não segue o padrão xml com as tag definidas e eu gostaria de salvar no padrão do XML.
    Alguém poderia me ajudar nesse problema?
    Desde já agradeço a atenção de todos.
    Grazziani Batista

    Nunca usei CALL TRANSFORMATION, mas dê uma olhada nisso:
    http://sapblog.rmtiwari.com/2009/04/generate-simple-transformation-for-xml.html
    Outra coisa... evite postar em português, geralmente só respondem em inglês.
    Boa sorte

  • Excel upload with listener

    Hi,
    I have enabled excel upload with the listener, and it actually works fine. I get the data into a collection.
    Now what if I want to store the file in the database? It seems that the file is NOT inserted into wwv_flow_files. Also the item that contains the file has no value when the page is submitted with the XLS2COLLECTION button. (If I create another button that also submits the filename is there)..
    So it seems that when this feature is enabled the file is deleted from www_flow_files when page processing starts.

    Hi Martin,
    the feature is undocumented and not officially supported for 1.1, but known to work for Excel files up to the 2003 format. XLSX (2007 onwards) is not implemented.
    Perhaps going through the discussion and examples in {thread:id=2342792} helps you solve your issue.
    -Udo

  • Creating XML file Using Call Transformation

    Hello Friends,
          I have searched before posting thread, couldnt find anything.
          I am creating an XML file using Call Transformation. My internal table has 3 date fields and some other fields.  For some records I dont have values for the date fields. In that case my XML file is giving the date value as 0000-00-00 since I declared it as Date type.  This value 0000-00-00  is not accepted by the middle ware as the valid date.  I can not change it as String type as per the suggestion.
    In that case I am advised to skip printing the date field tag if it doesnt have value.
         Is there any way to skip the date field if it is empty. Any Suggestions please ?.
    Thanks
    Lakshmi.

    Hi,
    I had exactly the same problem before. When you call a transformation there is an option called initial_components. According to SAP if you use initial_components = 'SUPRESS' the empty fields should not being generated on the XML.
    Now, this didn't work for me and I have seen some people with the same problem. Here is how I solved this (maybe not the best way but it worked):
    First: My fields are all CHAR in my table
    Second: In the transformation, you can use conditional transformation to not display a tag if field is empty, here a piece of my transformation (I am using simple transformations):
       <tt:root name="ROOT"/>
         <tt:cond s-check="not-initial(ref('ROOT.L1_NM')) or not-initial(ref('ROOT.L2_NM'))">
              <TRNMTR_NM>
                <tt:cond s-check="not-initial(ref('ROOT.L1_NM'))">
                  <l1_nm>
                    <tt:value ref="ROOT.L1_NM"/>
                  </l1_nm>
                </tt:cond>
                <tt:cond s-check="not-initial(ref('ROOT.L2_NM'))">
                  <l2_nm>
                    <tt:value ref="ROOT.L2_NM"/>
                  </l2_nm>
                </tt:cond>
              </TRNMTR_NM>
            </tt:cond>
    As you can see, I first check if the fields have values.
    Hope it helps
    Edited by: carlosrv on Oct 4, 2011 8:22 PM

  • XML to ABAP internal table with CALL TRANSFORMATION

    I can't create a transformation that allow passing next XML file  to an internal table:
    Please, I need someone could help me, because I don t have XML knowledge
    << Moderator message - Everyone's problem is important. But the answers in the forum are provided by volunteers. Please do not ask for help quickly. >>
    Kind regards,
    Edited by: Rob Burbank on Jul 21, 2011 4:02 PM

    Hi Gastón Juarez,
    sorry, didn't see your post, you should have linked the previous to this one
    If we create a ZZZ transformation of type ST, it would be something like this (I didn't test). Note that I concatenated the date and time, because field operations in ST are not possible (we should use XSLT instead, but it's counter performant): 
    ... (here the usual header)
    <tt:root name="ABAP_X"/>
    <tt:template>
      <corailExport xmlns= " http://www.abc.com/corailExport_Transcou201D
    xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instanceu201D
    xsi: schemaLocation= " http://www.abc.com/corailExport_Transco corailExport_Transco.xsd u201C>
        <exportDate><tt:skip></tt:skip></exportDate>
        <tt:loop ref=".ABAP_X" name="line">
          <transcodification>
                 <tt:attribute name="applyingDate" value-ref="$line.APPLYING_DATE"></tt:attribute>
            <previousCofor><tt:value ref="$line.OLD_COFOR"></tt:value></previousCofor>
            <newCofor><tt:value ref="$line.NEW_COFOR"></tt:value></newCofor>
          </transcodification>
        </tt:loop>
      </corailExport>
    </tt:template>
    The program:
    TYPES : BEGIN OF ty_x,
    applying_date TYPE string,
    old_cofor TYPE lifnr,
    new_cofor TYPE lifnr,
    END OF ty_x.
    DATA l_xml TYPE string.
    DATA lt_x TYPE TABLE OF ty_x.
    l_xml = 'your xml'.
    CALL TRANSFORMATION zzz
       SOURCE XML l_xml
       RESULT abap_x = lt_x.
    BR
    Sandra

  • Create a xml file from an internal table: CALL TRANSFORMATION

    Hello gurus,
    I want to create a xml file using data from scustom table. I will create an internal table and will select some records to it.
    I searched the forum and i discovered the call transformation, but when i execute the example program at the CALL TRANSFORMATION shows a dump screen.
    How we create a xml file from internal table??
    Please help me. I will mark the useful answers.

    I'm using if_ixml class to create xml documents
    TYPES: BEGIN OF xml_line,
             data(256) TYPE x,
           END OF xml_line.
    DATA: o_ixml          TYPE REF TO if_ixml,
          o_document      TYPE REF TO if_ixml_document,
          o_element       TYPE REF TO if_ixml_element,
          o_streamfactory TYPE REF TO if_ixml_stream_factory,
          o_ostream       TYPE REF TO if_ixml_ostream,
          o_renderer      TYPE REF TO if_ixml_renderer.
    DATA: t_xml_table     TYPE TABLE OF xml_line,
          v_xml_size      TYPE i.
    o_ixml = cl_ixml=>create( ).
    o_document = o_ixml->create_document( ).
    * The o_document have a set of methods to add elements, attributes, etc.
    o_element  = o_document->create_simple_element(
                      name = 'RootNode'
                      value = 'some text'
                      parent = o_document ).
    o_streamfactory = o_ixml->create_stream_factory( ).
    o_ostream = o_streamfactory->create_ostream_itable( table = t_xml_table ).
    o_renderer = o_ixml->create_renderer( ostream  = o_ostream document = o_document ).
    o_renderer->render( ).
    v_xml_size = o_ostream->get_num_written_raw( ).
    CALL METHOD cl_gui_frontend_services=>gui_download
      EXPORTING
        bin_filesize = v_xml_size
        filename     = 'C:a.xml'
        filetype     = 'BIN'
      CHANGING
        data_tab     = t_xml_table.

  • XML file to Internal table through XSLT - Call Transformation

    Hi Friends,
    I am trying to work a scenario where i have a simple XML file and i need to convert the data in to an internal table. When i execute the XSLT seperately, it works fine. I get the output, but when it is invoked through a ABAP program, i am getting the error "The called method START_XSLT_DEBUGGER of the calss CL_WB_XSLT_DEBUGGER returned the exception CX_XSLT_FORMAT_ERROR"
    I feel my XSLT program is not correct, but i am unable to find out what the issue is. Any help is really apreciated. I have gone through the SDN forum replies. But could not figure out what is wrong with my program
    Below given are the details.
    My XML File:
    <?xml version="1.0" encoding="utf-8"?>
    <List>
      <ITEM>
        <ITEMQUALF>ITEM1</ITEMQUALF>
        <MATERIAL>MAT1</MATERIAL>
      </ITEM>
      <ITEM>
        <ITEMQUALF>ITEM2</ITEMQUALF>
        <MATERIAL>MAT2</MATERIAL>
      </ITEM>
      <ITEM>
        <ITEMQUALF>ITEM3</ITEMQUALF>
        <MATERIAL>MAT3</MATERIAL>
      </ITEM>
    </List>
    My XSLT program:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" xmlns:asx="http://www.sap.com/abapxml" exclude-result-prefixes="asx" version="1.0">
      <xsl:strip-space elements="*"/>
      <xsl:output encoding="utf-8" indent="yes" omit-xml-declaration="yes"/>
      <!--xsl:template match="/"-->
      <xsl:template match="List">
        <asx:abap version="1.0">
          <asx:values>
            <T_ACTUAL>
              <xsl:for-each select="*">
                <ITEMQUALF>
                  <xsl:value-of select="ITEMQUALF" />
                </ITEMQUALF>
                <MATERIAL>
                  <xsl:value-of select="MATERIAL" />
                </MATERIAL>
              </xsl:for-each>
            </T_ACTUAL>
          </asx:values>
        </asx:abap>
      </xsl:template>
    </xsl:transform>
    In my ABAP program:
    REPORT  z_xslt_abap_2.
    TYPES:
      BEGIN OF ty_actual,
        itemqualf   TYPE char50,
        material    TYPE char50,
      END OF ty_actual,
      line_t(4096)  TYPE x,
      table_t       TYPE STANDARD TABLE OF line_t,
      ty_t_actual   TYPE STANDARD TABLE OF ty_actual.
    DATA:
      t_actual    TYPE ty_t_actual,
      t_srctab    TYPE table_t,
      v_filename  TYPE string.
    DATA: gs_rif_ex     TYPE REF TO cx_root,
          gs_var_text   TYPE string.
    v_filename = 'D:\XML\xslt_test.xml'.
    * Function call
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename = v_filename
        filetype = 'BIN'
      TABLES
        data_tab = t_srctab
      EXCEPTIONS
        OTHERS   = 1.
    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 Transformation
    TRY.
        CALL TRANSFORMATION (`ZXSLT_RAM`)
                SOURCE XML t_srctab
                RESULT     t_actual = t_actual.
      CATCH cx_root INTO gs_rif_ex.
        gs_var_text = gs_rif_ex->get_text( ).
        MESSAGE gs_var_text TYPE 'E'.
    ENDTRY .
    IF t_actual IS NOT INITIAL.
      WRITE: 'Success'.
    ENDIF.
    When i run the XSLT program seperately, this is the output that i get:
    <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
      <asx:values>
        <T_ACTUAL>
          <ITEMQUALF>ITEM1</ITEMQUALF>
          <MATERIAL>MAT1</MATERIAL>
          <ITEMQUALF>ITEM2</ITEMQUALF>
          <MATERIAL>MAT2</MATERIAL>
          <ITEMQUALF>ITEM3</ITEMQUALF>
          <MATERIAL>MAT3</MATERIAL>
        </T_ACTUAL>
      </asx:values>
    </asx:abap>
    I have been stuck with this for more than two days. If anyone can help me out with this, it would be really great. Please let me know, where i am going wrong.
    Thanks in advance.
    Best Regards,
    Ram.

    Hi,
    You can try this sample program, hopefully will help you.
    <a href="https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/readdatafromXMLfileviaXSLT+program&">Read Data From XML</a>.
    Regards,

Maybe you are looking for

  • Opinion on the Right Computer

    Just some opinions needed. I own an older G5 which works wonderfully but as you all know I am unable to load Aperture. Last year I purchased a Macbook. I also purchased Aperture at that time which is such an amazing program. Of course, it was not unt

  • Is there a app that will restrict all accesss to my iphone except for my sons games

    I was curious if there are specific apps out there to limit complete access to my phone except for my sons games, as in if he wants to play a game i click an app witch i can add and remove games to and once he is in that app he cant go to the home sc

  • 590-0790-A adapter for Multiscan 15 "Monitor

    I need some help if you can. I have this monitor cable already, but I need the little adapter that connects to this so I can connect that to my Apple Multiscan 15" display.  I'm guessing that the adapter that connects to this is a 15 pin male (on bot

  • T430s wi-fi connectivity issue

    I got a new T430s but have got issues with its wireless adapter. Initially it seems to work fine, but after a while the wireless connection was dropped. Reboot the machine only solves this problem temporarily, after a while it would come back. I alre

  • How to create and run J2EE application client for Hello World EJB

    Hi I am new to NWDS EJB deployment.I have created a "Hello World" bean. But how to deploy it and run using a J2EE application client step by step. Also please help in the steps of the deploy tool. Thanks in Advance