Reading Webservice information from ABAP Program

Hi All,
How to read a webservice information from a ABAP program ?
Are there any webservices available in ABAP which can do this .
Gopal.

Hi,
The following code will call the web service and fill the data into internal table which was received from the Web service. This code will send & Receive the data from ABAP to Webservice.
Change the Header detail as per your Webservice.
REPORT  ZWORKORDER.
TYPES: BEGIN OF OUTTAB1 ,
  JOBCODE(20),
  COMPONENTCODE(20),
  ACCURATEHOURS(20),
  ACCURATECOST(20),
  LENGTH TYPE I,
   END OF OUTTAB1 .
DATA: OUTTAB TYPE  TABLE OF OUTTAB1.
DATA: TAB TYPE OUTTAB1.
DATA: WF_O LIKE LINE OF OUTTAB .
DATA: XSLT_ERR TYPE REF TO CX_XSLT_EXCEPTION .
DATA: RLENGTH TYPE I,
      TXLEN TYPE STRING  .
DATA: HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT .
DATA: WF_STRING TYPE STRING .
DATA: WF_STRING1 TYPE STRING .
DATA: WF_PROXY TYPE STRING ,
      WF_PORT TYPE STRING .
CLEAR WF_STRING .
Form the input string to send the Input Data to Web service.
CONCATENATE
'<?xml version="1.0" encoding="utf-8"?>'
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
'  <soap:Body>'
'    <GetWorkOrder xmlns="http://*******erica.net/webservices/">'
'      <nWorkOrder>2</nWorkOrder>'
'      <nDistributorCode>4871</nDistributorCode>'
'      <model>HM400</model>'
'     <type>1 </type>'
'    </GetWorkOrder>'
'  </soap:Body>'
'</soap:Envelope>'
INTO WF_STRING .
CLEAR :RLENGTH , TXLEN .
RLENGTH = STRLEN( WF_STRING ) .
MOVE: RLENGTH TO TXLEN .
CLEAR: WF_PROXY, WF_PORT .
CALL METHOD CL_HTTP_CLIENT=>CREATE
  EXPORTING
    HOST    = '192.168.1.41' "'http://****merica.net/webservices'
    SERVICE = '8080'
    SCHEME  = '1'
  IMPORTING
    CLIENT  = HTTP_CLIENT.
HTTP_CLIENT->PROPERTYTYPE_LOGON_POPUP = HTTP_CLIENT->CO_DISABLED.
CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
  EXPORTING
    NAME  = '~request_method'
    VALUE = 'POST'.
CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
  EXPORTING
    NAME  = '~server_protocol'
    VALUE = 'HTTP/1.1'.
CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
  EXPORTING
    NAME  = '~request_uri'
    VALUE = '/service/accurate/workorder.asmx?'.
CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
  EXPORTING
    NAME  = 'Content-Type'
    VALUE = 'text/xml; charset=utf-8'.
CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
  EXPORTING
    NAME  = 'Content-Length'
    VALUE = TXLEN.
CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
  EXPORTING
    NAME  = 'SOAPAction'
    VALUE = 'http://********merica.net/webservices/GetWorkOrder'.
CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATA
  EXPORTING
    DATA   = WF_STRING
    OFFSET = 0
    LENGTH = RLENGTH.
Send the Input Data to Web service.
CALL METHOD HTTP_CLIENT->SEND
  EXCEPTIONS
    HTTP_COMMUNICATION_FAILURE = 1
    HTTP_INVALID_STATE         = 2.
Receive the Input from Web Serice.
CALL METHOD HTTP_CLIENT->RECEIVE
  EXCEPTIONS
    HTTP_COMMUNICATION_FAILURE = 1
    HTTP_INVALID_STATE         = 2
    HTTP_PROCESSING_FAILED     = 3.
CLEAR WF_STRING1 .
WF_STRING1 = HTTP_CLIENT->RESPONSE->GET_CDATA( ).
DATA: LENGTH TYPE I.
LENGTH = STRLEN( WF_STRING1 ).
DATA: VALUE_FIELD TYPE NAME_KOMP.
DATA: VALUE TYPE REF TO DATA.
FIELD-SYMBOLS: <FS_CONVERTED_DATA>.
DATA: TAB1 TYPE TABLE OF STRING.
DATA: FROM_LENGTH TYPE I VALUE 1.
DATA: TO_LENGTH TYPE I.
DATA: DIFF TYPE I.
DATA: START TYPE I VALUE 1.
DO.
JOBCODE.
  SEARCH WF_STRING1 FOR 'JobCode=' . "STARTING AT START .
  IF SY-SUBRC <> 0.
    EXIT.
  ENDIF.
  FROM_LENGTH = SY-FDPOS .
  FROM_LENGTH = FROM_LENGTH  + 8.
  SEARCH WF_STRING1 FOR 'JobDescription=' ."STARTING AT START ..
  TO_LENGTH = SY-FDPOS .
  DIFF = TO_LENGTH - FROM_LENGTH .
  MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-JOBCODE.
  TO_LENGTH = DIFF + TO_LENGTH.
  SHIFT WF_STRING1 BY TO_LENGTH PLACES.
COMPONENT CODE
  SEARCH WF_STRING1 FOR 'ComponentCode=' .
  IF SY-SUBRC <> 0.
    EXIT.
  ENDIF.
  FROM_LENGTH = SY-FDPOS .
  FROM_LENGTH = FROM_LENGTH  + 14.
  SEARCH WF_STRING1 FOR 'ComponentDescription=' .
  TO_LENGTH = SY-FDPOS .
  DIFF = TO_LENGTH - FROM_LENGTH .
  MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-COMPONENTCODE.
  TO_LENGTH = DIFF + TO_LENGTH.
  SHIFT WF_STRING1 BY TO_LENGTH PLACES.
AccurateHours
  SEARCH WF_STRING1 FOR 'AccurateHours=' .
  IF SY-SUBRC <> 0.
    EXIT.
  ENDIF.
  FROM_LENGTH = SY-FDPOS .
  FROM_LENGTH = FROM_LENGTH  + 14.
  SEARCH WF_STRING1 FOR 'AccurateCost='.
  TO_LENGTH = SY-FDPOS .
  DIFF = TO_LENGTH - FROM_LENGTH .
  MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-ACCURATEHOURS.
  TO_LENGTH = DIFF + TO_LENGTH.
AccurateCost
  SEARCH WF_STRING1 FOR 'AccurateCost='.
  FROM_LENGTH =  SY-FDPOS.
  FROM_LENGTH =  FROM_LENGTH + 13.
  SEARCH WF_STRING1 FOR '/>'.
  TO_LENGTH = SY-FDPOS.
  DIFF = TO_LENGTH - FROM_LENGTH .
  MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-ACCURATECOST.
  TO_LENGTH = DIFF + TO_LENGTH.
  SHIFT WF_STRING1 BY TO_LENGTH PLACES.
  APPEND TAB TO OUTTAB.
ENDDO.
WRITE: (10) 'JOBCODE'.
WRITE (20) 'COMPONENTCODE'.
WRITE (30) 'ACCURATEHOURS'.
WRITE (40) 'ACCURATECOST'.
LOOP AT OUTTAB INTO TAB.
  WRITE:/ TAB-JOBCODE .
  WRITE (20) TAB-COMPONENTCODE.
  WRITE (30) TAB-ACCURATEHOURS.
  WRITE (40) TAB-ACCURATECOST.
ENDLOOP .
It is better to create a proxy, it then puts a level of abstraction between in that coding. All you need to do is then access the proxy class.
Besides that i think you can do it by configuring the ITS and calling the webservice by means of using BSP applications in ABAP
<b>I believe you need to create a proxy in order to consume your web service.
http://help.sap.com/saphelp_nw2004s/helpdata/en/bf/d005244e9d1d4d92b2fe7935556b4c/frameset.htm
Reward points</b>
Regards

Similar Messages

  • Read DB2 tables from ABAP program

    Hi All,
    I have a requirement to read a DB2 table(in our landscape) from the ABAP program.  I appreciate any pointers.
    Thanks,
    Kiran.

    Connecting to an External database from SAP
    Step 1: Create an entry for the External database in DBCON table using Trxn: DBCA.
    Table: DBCON (Description of Database Connections)
    Field Name Description Value (For: E.g.:)
    CON_NAME Logical name for a database RAJ
    DBMS Database system MSS
    USER_NAME Database user <username>
    PASSWORD Password for setting up the connection to the database <pwd>/<pwd>
    CON_ENV Database-specific information for a database connection MSSQL_SERVER=depotserver MSSQL_DBNAME=HOF_INDORE
    DB_RECO Availability type for an open database connect
    Step 2: Now you can write code to connect to the external database…
    Your Sample code can be something like this……
    FUNCTION-POOL z_houston. "MESSAGE-ID ..
    DATA: BEGIN OF wa,
    c_locid(3),
    c_locname(50),
    c_locstate(5),
    END OF wa.
    FUNCTION z_houston_connect.
    ""Local interface:
    EXEC SQL.
    CONNECT TO 'RAJ' AS 'V'
    ENDEXEC.
    EXEC SQL.
    SET CONNECTION 'V'
    ENDEXEC.
    *- Get the data from MS-SQL Server
    EXEC SQL.
    open C1 for
    select
    loc_id,
    loc_name,
    loc_state
    from ho_loc_mast
    ENDEXEC.
    DO.
    EXEC SQL.
    FETCH NEXT C1 into :wa-c_locid, :wa-c_locname, :wa-c_locstate
    ENDEXEC.
    IF sy-subrc = 0.
    PERFORM loop_output.
    ELSE.
    EXIT.
    ENDIF.
    ENDDO.
    EXEC SQL.
    CLOSE C1
    ENDEXEC.
    ENDFUNCTION.
    *& Form LOOP_OUTPUT
    Output
    FORM loop_output .
    WRITE: /5 wa-c_locid, 10 wa-c_locname, 65 wa-c_locstate.
    CLEAR wa.
    ENDFORM. " LOOP_OUTPUT

  • Reading XML Data from ABAP Program?

    Hi,
    How do I read XML Data from an ABAP Program? For example if I have the below basic XML Code-
    <xml>
    <Name> Thiru </Name>
    <Age> 24 </Age>
    <City> chennai </Chennai>
    </xml>
    How do i read the data within the Name,Age, and City tags into variables in the ABAP Program?
    Regards,
    Thiru

    if you decide to do in XSLT, I have a sample list here:
    XML file like this:
    <?xml version="1.0" encoding="UTF-16"?>
    <F>
    <P1>
    <t_1>value1</t_1>
    <t_2>testvalue</t_2>
    </P1>
    <P2>
    </P2>
    </F>
    XSLT file like this:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sapxsl="http://www.sap.com/sapxsl" version="1.0">
    <xsl:strip-space elements="*"/>
    <xsl:template match="F">
    <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
    <asx:values>
    <<b>DOCUMENT</b>>
    <xsl:apply-templates/>
    </<b>DOCUMENT</b>>
    </asx:values>
    </asx:abap>
    </xsl:template>
    <xsl:template match="P1">
    <ENTRY>
    <<b>T_1</b>><xsl:value-of select="t_1"/></T_1>
    <<b>T_2</b>><xsl:value-of select="t_2"/></T_2>
    </ENTRY>
    </xsl:template>
    </xsl:transform>
    ABAP program like this:
    DATA: BEGIN OF wa_upload,
    text(255) TYPE c,
    END OF wa_upload,
    itab_upload LIKE TABLE OF wa_upload,
    BEGIN OF wa_document,
    t_1 TYPE string,
    t_2 TYPE string,
    END OF wa_document,
    itab_document LIKE TABLE OF wa_document.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = 'XXXXX'
    filetype = 'ASC'
    TABLES
    data_tab = itab_upload.
    CALL TRANSFORMATION zrappel_xml_test
    SOURCE XML itab_upload
    RESULT <b>document</b> = itab_document.
    You should pay attention to the bold words.
    hope it will be helpful
    thanks

  • Is it possible to call website from ABAP Program?

    Hi Experts,
           Is it possible to call website from ABAP Program?
    It is very Urgent Help me.
    Regards,
    Ashok.

    Hi,
    Check the following program:
    REPORT ZURL NO STANDARD PAGE HEADING.
    DATA: BEGIN OF URL_TABLE OCCURS 10,
    L(25),
    END OF URL_TABLE.
    URL_TABLE-L = 'http://www.lycos.com'.APPEND URL_TABLE.
    URL_TABLE-L = 'http://www.hotbot.com'.APPEND URL_TABLE.
    URL_TABLE-L = 'http://www.sap.com'.APPEND URL_TABLE.
    LOOP AT URL_TABLE.
      SKIP. FORMAT INTENSIFIED OFF.
      WRITE: / 'Single click on '.
      FORMAT HOTSPOT ON.FORMAT INTENSIFIED ON.
      WRITE: URL_TABLE. HIDE URL_TABLE.
      FORMAT HOTSPOT OFF.FORMAT INTENSIFIED OFF.
      WRITE: 'to go to', URL_TABLE.
    ENDLOOP.
    CLEAR URL_TABLE.
    AT LINE-SELECTION.
    IF NOT URL_TABLE IS INITIAL.
      CALL FUNCTION 'WS_EXECUTE'
           EXPORTING
                program = 'C:\Program Files\Internet Explorer\IEXPLORE.EXE'
                commandline     = URL_TABLE
                INFORM         = ''
              EXCEPTIONS
                PROG_NOT_FOUND = 1.
      IF SY-SUBRC <> 0.
         WRITE:/ 'Cannot find program to open Internet'.
      ENDIF.
    ENDIF.
    Regards,
    Bhaskar

  • Call SXPG _ CALL _ SYSTEM from ABAP program

    Hi,
    Someone may help me?  I need to call the function module SXPG _ CALL _ SYSTEM from ABAP program for to encrypt a file.
    I created the command by SM49 , but I don't know how I can call it from ABAP program.
    Thanks
    Maria C

    Hi Maria.
    This is a possible code you can use:
    DATA: log LIKE TABLE OF btcxpm WITH HEADER LINE.
    Can contain STDOUT, STDERR
    commandname =
    CALL FUNCTION ‘SXPG_CALL_SYSTEM’
    IMPORTING
      COMMANDNAME = commandname
      PARAMETERS = parameters
    EXPORTING
    STATUS = status
      TABLES
      EXEC_PROTOCOL = log
    EXCEPTIONS
      NO_PERMISSION = 1
      COMMAND_NOT_FOUND = 2
      PARAMETERS_TOO_LONG = 3
      SECURITY_RISK = 4
      WRONG_CHECK_CALL_INTERFACE = 5
      PROGRAM_START_ERROR = 6
      PROGRAM_TERMINATION_ERROR = 7
      X_ERROR = 8
      PARAMETER_EXPECTED = 9
      TOO_MANY_PARAMETERS = 10
      ILLEGAL_COMMAND = 11
      OTHERS = 12.
    The following are the comments of the parameters taken from:
    http://help.sap.com/saphelp_40b/helpdata/en/fa/0971ee543b11d1898e0000e8322d00/content.htm
    Parameters
    IMPORTING Parameters
    Parameter name
    Use
    COMMANDNAME
    The name of the definition of the external command, as specified in the maintenance function (transaction SM69).
    PARAMETERS
    Arguments for the external command as specified by the definition in the R/3 System and by the calling program or user.
    These arguments are checked for impermissible characters, such as the ; under UNIX. Problems are registered with the SECURITY_RISK exception.
    EXPORTING Parameters
    Parameter name
    Use
    STATUS
    Returns the final status of the execution of the external command:
    · Value ‘O’: The external command was started and ran to end successfully.
    · Value ‘E’: An error occurred; the external command was not run successfully.
    Tables Parameters
    Parameter name
    Use
    EXEC_PROTOCOL
    Contains the STDOUT and STDERR output of the external command and any output from the target host system.
    Exceptions
    Exception name
    Meaning
    X_ERROR
    Reserved for future use.
    NO_PERMISSION
    The AUTHORITY-CHECK of the user’s authorization for the authorization object S_LOG_COM failed. The user is not authorized to carry out the command named with the specified arguments on the target system.
    COMMAND_NOT_FOUND
    Command name, as identified by COMMANDNAME and OPERATINGSYSTEM, has not been defined in the maintenance function (transaction SM69).
    PARAMETERS_TOO_LONG
    The combined argument string (ADDITIONAL_PARAMETERS and the DEFINED_PARAMETERS, as returned in ALL_PARAMETERS) exceeds the limit of 128 characters in length.
    SECURITY_RISK
    Either:
    · The command contains impermissible characters. These are characters with potentially dangerous properties, such as ; under UNIX.
    · The command definition specifies that an extra-check function module be run. This function module has rejected execution of the command.
    WRONG_CHECK_CALL_
    INTERFACE
    The command definition specifies that an extra-check function module is to be run. Either this function module is missing, or the interface defined for this function module does not match that of the standard R/3 function module SXPG_DUMMY_COMMAND_CHECK. For more information, please see SXPG_DUMMY_COMMAND_CHECK: Interface for Extra-Check Function Modules.
    TOO_MANY_PARAMETERS
    The command definition specifies that user-specified arguments for the external command are not allowed. However, an additional string of command arguments was specified.
    PARAMETER_EXPECTED
    The command definition includes the placeholder character ?, which signifies that additional user-defined arguments are required. However, no additional arguments string was supplied.
    PROGRAM_START_ERROR
    An error occurred while starting the external command. The R/3 system field SY-MSGV1 contains additional information on the problem.
    PROGRAM_TERMINATION_
    ERROR
    An error occurred while trying to obtain the return code of the external program. The R/3 system field SY-MSGV1 contains additional information on the problem.
    ILLEGAL_COMMAND
    The external command definition was modified "illegally". That is, the command was not modified by means of the maintenance function (transaction SM69).
    The modified command is registered in the system log in its substituted form. The message is registered under the system log ID "LC".
    OTHERS
    Catch any new exceptions added to this function module.
    Hope this will be useful.
    Sandro Lombardo

  • Call to Java web service from abap program

    HI,
    I want to call to Java WS from abap program and i read some post how to do that in release of NW 6.4 but I want to know what is the simplest way to do that in release 7.0 .
    Many Thanks,
    Nina

    Hi Uwe,
    Thank you.
    I have WSDL or URL how i can call to them ,in the example that you send i don't find the place that it called.
    Do i have to create proxy for that ?
    BR
    Nina

  • To post a mail from ABAP program

    dear friends
                  how to post a mail to SAP inbox of a particular user from ABAP program.

    get the spool no of the program
    we have standard program rstxpdf4  through that convert it to pdf
    and through f.m SO_NEW_DOCUMENT_ATT_SEND_API1 u can send mail.
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
       EXPORTING
         DOCUMENT_DATA                    = x_document_data
         PUT_IN_OUTBOX                    = 'X'
         COMMIT_WORK                      = 'X'
       TABLES
         PACKING_LIST                     = it_packing_list
         CONTENTS_BIN                     = it_contents_bin
         CONTENTS_TXT                     = it_contents_txt
         RECEIVERS                        = it_receivers
      EXCEPTIONS
        TOO_MANY_RECEIVERS               = 1
        DOCUMENT_NOT_SENT                = 2
        DOCUMENT_TYPE_NOT_EXIST          = 3
        OPERATION_NO_AUTHORIZATION       = 4
        PARAMETER_ERROR                  = 5
        X_ERROR                          = 6
        ENQUEUE_ERROR                    = 7
        OTHERS                           = 8 .
    IF SY-SUBRC <> 0.
       retcode = sy-subrc.
       perform protocol_update.
    else .

  • Sending an email to users from abap program

    Hi experts ,
    How to send an email to users from abap program ...
    i need full coding please..so that i can copy and paste it in my program.
    Thank you in advance.
    Rajasekhar.P

    Hi Venkat
    check the below simple code to convert spool to HTML and email it
    data: list type table of  abaplist with header line.
    data: htmllines type table of w3html with header line.
    data: maildata   like sodocchgi1.
    data: mailtxt    like solisti1 occurs 10 with header line.
    data: mailrec    like somlrec90 occurs 0  with header line.
    start-of-selection.
    Produce a list
      do 100 times.
        write:/ sy-index, at 30 sy-index, at 50 sy-index.
      enddo.
    Save the list
      call function 'SAVE_LIST'
           tables
                listobject         = list
           exceptions
                list_index_invalid = 1
                others             = 2.
    Convert the list
      call function 'WWW_LIST_TO_HTML'
           tables
                html = htmllines.
    Send mail
      maildata-obj_name = 'TEST'.
      maildata-obj_descr = 'Test Subject'.
      loop at htmllines.
        mailtxt = htmllines.
        append mailtxt.
      endloop.
      mailrec-receiver = '[email protected]'.
      mailrec-rec_type  = 'U'.
      append mailrec.
      call function 'SO_NEW_DOCUMENT_SEND_API1'
           exporting
                document_data              = maildata
                document_type              = 'HTM'
                put_in_outbox              = 'X'
           tables
                object_header              = mailtxt
                object_content             = mailtxt
                receivers                  = mailrec
           exceptions
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                others                     = 8.
      if sy-subrc  0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.

  • SMS from ABAP program to send error message

    Hi,
    I would like to know what are settings to be done in the system to send an SMS from ABAP program using FM 'SO_DOCUMENT_SEND_API1'.I was trying to send SMS using above FM but the error was "Cannot process message, no route from <userid> to <Mobile.no> ".
    Pls let me know the pre requisites to send an SMS using above FM.
    Regards,
    Nivas

    Hi,
    I have gone thru this blog but I want send SMS to US Mobile no.I checked other webservice but it supports only few cellular networks in US.
    any other alternate for this...
    anyway thanks for your reply
    Regards,
    Nivas

  • Calling oracle procedure from ABAP program

    There is a requirement to call the oracle stored procedure with some input parameter from ABAP program.
    Suppose we have order number which is entered by the user in ABAP program.
    This order number needs to be passed to oracle stored procedure as an input parameter in the same ABAP program.
    We can call the oracle stored procedure without parameter using the following syntax
    exec sql
    execute procedure <procedure name>
    end exec.
    But do not know how to execute the oracle stored procedure with some input parameter?

    Apologies , following is the correct code.
    This will definetly solve your problem.
    DATA scarr_carrid TYPE scarr-carrid.
    SELECT-OPTIONS s_carrid FOR scarr_carrid NO INTERVALS.
    DATA s_carrid_wa LIKE LINE OF s_carrid.
    DATA name TYPE c LENGTH 20.
    TRY.
        EXEC SQL.
          CREATE FUNCTION selfunc( input CHAR(3) )
            RETURNING char(20);
            DEFINE output char(20);
            SELECT carrname
                   INTO output
                   FROM scarr
                   WHERE mandt  = '000' AND
                         carrid = input;
            RETURN output;
            END FUNCTION;
        ENDEXEC.
        LOOP AT s_carrid INTO s_carrid_wa
                         WHERE sign = 'I' AND option = 'EQ'.
          TRY.
             EXEC SQL.
                EXECUTE PROCEDURE selfunc( IN  :s_carrid_wa-low,
                                           OUT :name )
              ENDEXEC.
              WRITE: / s_carrid_wa-low, name.
            CATCH cx_sy_native_sql_error.
              MESSAGE `Error in procedure execution` TYPE 'I'.
          ENDTRY.
        ENDLOOP.
        EXEC SQL.
          DROP FUNCTION selfunc;
        ENDEXEC.
      CATCH cx_sy_native_sql_error.
        MESSAGE `Error in procedure handling` TYPE 'I'.
    ENDTRY.
    Reward points if usefull.
    Thanks and regards,
    Veerendranath.

  • Calling external web service from ABAP Program

    Hi All,
    Can somebody point me to the documentation where how to call an external (3rd party) web service from ABAP program is explained?
    Thanks & Regards,
    -Smita

    which version of R/3 you are using. if you are on was 6.40 its very simple, there are delivered tools to generate client proxy for consuming webservice. if you are on wa 6.20 you can use cl_http_client to achieve the same. check out the following weblogs.
    /people/durairaj.athavanraja/blog/2005/07/12/send-sms-to-india-from-abap
    /people/thomas.jung3/blog/2005/05/13/calling-webservices-from-abap-via-https
    /people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
    Regards
    Raja

  • Printing barcode from ABAP program

    Hi,
    Is it possible to print barcode (using zebra barcode printing) from ABAP program directly without using Smart Form, SAP Script or Adobe PDF Form.
    I have the barcode instructions, I just want to output it to the barcode printer directly.
    Sample instructions to be output to barcode printer:
    FT128,288XG005.GRF,1,1^FS
    FT96,128XG000.GRF,1,1^FS
    FT64,192XG001.GRF,1,1^FS
    FT0,288XG002.GRF,1,1^FS
    FT0,224XG003.GRF,1,1^FS
    FT128,256XG004.GRF,1,1^FS
    FO16,180GB496,0,5^FS
    FO52,37GB450,66,4^FS
    BY4,3,40FT86,320^BCN,,Y,N
    FD>;123456>67FS
    PQ1,0,1,YXZ
    XAID000.GRFFSXZ
    Thanks in advance.

    Hello,
    Yes we can do it..
    Go through this link you will some idea
    http://sapprograms.blogspot.com/2008/11/barcode-printing.html
    http://www.sap-img.com/abap/details-information-about-sap-barcodes.htm

  • Sending IDOCS from ABAP Program

    hi friends,
               can we send IDOC ( of type MATMAS) form ABAP Program. if it possible how can we send, are there any function modules to do so....could any one tell me the procedure to accomplish the task...i have finished the configuration sting in both reciver and sender systems....just need to send material in form of IDOC from abap program.
    ( Note: not form BD10).
    Thanks in advance,
    Santosh.

    Hi,
      Follow this code it will help u...
    This is for the user created IDOC but as u are making use of ur own basic type i.e., Idoc type MATMAS05
    and u can write the code.
    *& Report  ZZ_Program_To_Create_Idoc                                        
    report  zz_program_to_create_idoc                     .
    tables: ekko,ekpo.
    selection-screen skip 3.
    selection-screen begin of block b1 with frame title titl.
    selection-screen skip.
    select-options s_ebeln for ekko-ebeln.
    selection-screen skip.
    selection-screen end of block b1.
    data: header_segment_name like edidd-segnam value 'Z1EKKO',
          item_segment_name like edidd-segnam value 'Z1EKPO',
          idoc_name like edidc-idoctp value 'Z19838IDOC1'.
    data: header_segment_data like z1ekko,
          item_segment_data like z1ekpo.
    data: control_record like edidc.
    data: messagetyp like edmsg-msgtyp value 'ZZ9838MESG1'.
    data: i_communication like edidc occurs 0 with header line,
          i_data like edidd occurs 0 with header line.
    data: begin of i_ekko occurs 0,
          ebeln like ekko-ebeln,
          aedat like ekko-aedat,
          bukrs like ekko-bukrs,
          bsart like ekko-bsart,
          lifnr like ekko-lifnr,
          end of i_ekko.
    data: begin of i_ekpo occurs 0,
          ebelp like ekpo-ebelp,
          matnr like ekpo-matnr,
          menge like ekpo-menge,
          meins like ekpo-meins,
          netpr like ekpo-netpr,
          end of i_ekpo.
    start-of-selection.
    select  ebeln aedat bukrs bsart lifnr from ekko
              into table i_ekko where ebeln in s_ebeln.
    select ebelp
           matnr
           menge
           meins
           netpr
           from ekpo
           into table i_ekpo
           where ebeln in s_ebeln.
    control_record-mestyp = messagetyp.
    control_record-rcvprt = 'LS'.
    control_record-idoctp = idoc_name.
    control_record-rcvprn = '0MART800'.
    loop at i_ekko.
    header_segment_data-ebeln = i_ekko-ebeln.
    header_segment_data-aedat = i_ekko-aedat.
    header_segment_data-bukrs = i_ekko-bukrs.
    header_segment_data-bsart = i_ekko-bsart.
    header_segment_data-lifnr = i_ekko-lifnr.
    i_data-segnam = header_segment_name.
    i_data-sdata = header_segment_data.
    append i_data.
    select ebelp
           matnr
           menge
           meins
           netpr
           from ekpo
           into table i_ekpo
           where ebeln = i_ekko-ebeln.
    loop at i_ekpo.
    item_segment_data-ebelp = i_ekpo-ebelp.
    item_segment_data-matnr = i_ekpo-matnr.
    item_segment_data-menge = i_ekpo-menge.
    item_segment_data-meins = i_ekpo-meins.
    item_segment_data-netpr = i_ekpo-netpr.
    i_data-segnam = item_segment_name.
    i_data-sdata = item_segment_data.
    append i_data.
    endloop.
    clear i_ekpo.
    refresh i_ekpo.
    endloop.
    call function 'MASTER_IDOC_DISTRIBUTE'
      exporting
        master_idoc_control                  = control_record
      OBJ_TYPE                             = ''
      CHNUM                                = ''
      tables
        communication_idoc_control           = i_communication
        master_idoc_data                     = i_data
    exceptions
       error_in_idoc_control                = 1
       error_writing_idoc_status            = 2
       error_in_idoc_data                   = 3
       sending_logical_system_unknown       = 4
       others                               = 5
    if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    else.
      loop at i_communication.
        write: 'IDOC GENERATED', i_communication-docnum.
      endloop.
      commit work.
    endif.
    initialization.
    titl = 'ENTER THE PURCHASE ORDER NUMBER'.

  • Sending emails from ABAP program

    Hi,
    I need to send error emails from ABAP program.
    I have to pass error internal table as text (not as attachment) in the email.
    Can anybody supply any sample code?
    Thanks in advance.
    Regards,
    Arun Mohan

    HI,
    See if this code helps:
    ***Sending mail to the receipients
    if not it_final[] is initial.
    Populate table with detaisl to be entered into .xls file
    PERFORM BUILD_XLS_DATA_TABLE.
    PERFORM POPULATE_EMAIL_MESSAGE_BODY.
    Send file by email as .xls speadsheet
    PERFORM SEND_FILE_AS_EMAIL_ATTACHMENT
    TABLES IT_MESSAGE
    IT_ATTACH
    USING P_EMAIL
    'Sales Register Report - Set Top Box / Accessories'
    'XLS'
    'SSTB'
    CHANGING GD_ERROR
    GD_RECIEVER.
    Instructs mail send program for SAPCONNECT to send email(rsconn01)
    PERFORM INITIATE_MAIL_EXECUTE_PROGRAM.
    endif.
    *& Form BUILD_XLS_DATA_TABLE
    text
    --> p1 text
    <-- p2 text
    FORM BUILD_XLS_DATA_TABLE .
    data: wa_itab like it_final.
    CONSTANTS:
    CON_TAB TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB,
    CON_CRET TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>CR_LF.
    CONCATENATE 'Business Place' 'Region Code' 'Region' 'Branch Code'
    'Branch' 'Material Desc' 'Area off Code'
    'Area Name' 'Zone code' 'Zone Name' 'Cust No' 'Cust Name'
    'Bill Doc No' 'Bill Date' 'Base Val' 'Total Val' 'Quantity'
    INTO IT_ATTACH SEPARATED BY CON_TAB.
    CONCATENATE CON_CRET IT_ATTACH INTO IT_ATTACH.
    APPEND IT_ATTACH.
    LOOP AT IT_FINAL INTO WA_ITAB.
    CONCATENATE WA_ITAB-BUSINESS_PLACE
    WA_ITAB-KVGR1
    WA_ITAB-REGION
    WA_ITAB-VKBUR
    WA_ITAB-SALES_OFF
    WA_ITAB-ARKTX
    WA_ITAB-vkgrp
    WA_ITAB-sales_grp
    WA_ITAB-bzirk
    WA_ITAB-zone
    WA_ITAB-kunnr
    WA_ITAB-name
    WA_ITAB-vbeln
    WA_ITAB-fkdat
    WA_ITAB-base_value
    WA_ITAB-total_value
    WA_ITAB-fkimg
    INTO IT_ATTACH SEPARATED BY CON_TAB.
    CONCATENATE CON_CRET IT_ATTACH INTO IT_ATTACH.
    APPEND IT_ATTACH.
    ENDLOOP.
    ENDFORM. " BUILD_XLS_DATA_TABLE
    *& Form POPULATE_EMAIL_MESSAGE_BODY
    text
    --> p1 text
    <-- p2 text
    FORM POPULATE_EMAIL_MESSAGE_BODY .
    REFRESH IT_MESSAGE.
    CONCATENATE SY-DATUM6(2) '/' SY-DATUM4(2) '/' SY-DATUM+0(4) INTO G_DATE.
    IT_MESSAGE = 'Please find attached excel sheet.'.
    APPEND IT_MESSAGE.
    IT_MESSAGE = 'Sales Register Report - Set Top Box / Accessories'.
    APPEND IT_MESSAGE.
    Concatenate 'Report generated date' ':' G_Date '.' into IT_MESSAGE.
    APPEND IT_MESSAGE.
    clear it_message.
    append it_message.
    IT_MESSAGE = 'This is an autogenerated mail, please do not reply'.
    APPEND IT_MESSAGE.
    ENDFORM. " POPULATE_EMAIL_MESSAGE_BODY
    *& Form SEND_FILE_AS_EMAIL_ATTACHMENT
    Send email
    FORM SEND_FILE_AS_EMAIL_ATTACHMENT TABLES PIT_MESSAGE
    PIT_ATTACH
    USING P_EMAIL
    P_MTITLE
    P_FORMAT
    P_FILENAME
    P_ATTDESCRIPTION
    P_SENDER_ADDRESS
    P_SENDER_ADDRES_TYPE
    CHANGING P_ERROR
    P_RECIEVER.
    DATA: LD_ERROR TYPE SY-SUBRC,
    LD_RECIEVER TYPE SY-SUBRC,
    LD_MTITLE LIKE SODOCCHGI1-OBJ_DESCR,
    LD_EMAIL LIKE SOMLRECI1-RECEIVER,
    LD_FORMAT TYPE SO_OBJ_TP ,
    LD_ATTDESCRIPTION TYPE SO_OBJ_NAM ,
    LD_ATTFILENAME TYPE SO_OBJ_DES ,
    LD_SENDER_ADDRESS LIKE SOEXTRECI1-RECEIVER,
    LD_SENDER_ADDRESS_TYPE LIKE SOEXTRECI1-ADR_TYP,
    LD_RECEIVER LIKE SY-SUBRC.
    LD_EMAIL = P_EMAIL.
    LD_MTITLE = P_MTITLE.
    LD_FORMAT = P_FORMAT.
    LD_ATTDESCRIPTION = P_ATTDESCRIPTION.
    LD_ATTFILENAME = P_FILENAME.
    LD_SENDER_ADDRESS = P_SENDER_ADDRESS.
    LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.
    Fill the document data.
    W_DOC_DATA-DOC_SIZE = 1.
    Populate the subject/generic message attributes
    W_DOC_DATA-OBJ_LANGU = SY-LANGU.
    W_DOC_DATA-OBJ_NAME = 'SAPRPT'.
    W_DOC_DATA-OBJ_DESCR = LD_MTITLE .
    W_DOC_DATA-SENSITIVTY = 'F'.
    Fill the document data and get size of attachment
    CLEAR W_DOC_DATA.
    READ TABLE IT_ATTACH INDEX W_CNT.
    W_DOC_DATA-DOC_SIZE =
    ( W_CNT - 1 ) * 255 + STRLEN( IT_ATTACH ).
    W_DOC_DATA-OBJ_LANGU = SY-LANGU.
    W_DOC_DATA-OBJ_NAME = 'SAPRPT'.
    W_DOC_DATA-OBJ_DESCR = LD_MTITLE.
    W_DOC_DATA-SENSITIVTY = 'F'.
    CLEAR T_ATTACHMENT.
    REFRESH T_ATTACHMENT.
    T_ATTACHMENT[] = PIT_ATTACH[].
    Describe the body of the message
    CLEAR T_PACKING_LIST.
    REFRESH T_PACKING_LIST.
    T_PACKING_LIST-TRANSF_BIN = SPACE.
    T_PACKING_LIST-HEAD_START = 1.
    T_PACKING_LIST-HEAD_NUM = 0.
    T_PACKING_LIST-BODY_START = 1.
    T_PACKING_LIST-OBJ_NAME = 'stb'.
    DESCRIBE TABLE IT_MESSAGE LINES T_PACKING_LIST-BODY_NUM.
    T_PACKING_LIST-DOC_TYPE = 'RAW'.
    APPEND T_PACKING_LIST.
    Create attachment notification
    T_PACKING_LIST-TRANSF_BIN = 'X'.
    T_PACKING_LIST-HEAD_START = 1.
    T_PACKING_LIST-HEAD_NUM = 1.
    T_PACKING_LIST-BODY_START = 1.
    DESCRIBE TABLE T_ATTACHMENT LINES T_PACKING_LIST-BODY_NUM.
    T_PACKING_LIST-DOC_TYPE = LD_FORMAT.
    T_PACKING_LIST-DOC_TYPE = 'XLS'.
    T_PACKING_LIST-OBJ_DESCR = LD_ATTDESCRIPTION.
    T_PACKING_LIST-OBJ_DESCR = 'Sales_STB'.
    T_PACKING_LIST-OBJ_NAME = LD_ATTFILENAME.
    T_PACKING_LIST-OBJ_NAME = 'stb'.
    T_PACKING_LIST-DOC_SIZE = T_PACKING_LIST-BODY_NUM * 255.
    APPEND T_PACKING_LIST.
    Add the recipients email address
    CLEAR T_RECEIVERS.
    REFRESH T_RECEIVERS.
    LOOP AT IT_RECV.
    T_RECEIVERS-RECEIVER = IT_RECV-EMAIL.
    T_RECEIVERS-REC_TYPE = 'U'.
    T_RECEIVERS-COM_TYPE = 'INT'.
    T_RECEIVERS-COPY = 'X'.
    T_RECEIVERS-NOTIF_DEL = 'X'.
    T_RECEIVERS-NOTIF_NDEL = 'X'.
    APPEND T_RECEIVERS.
    ENDLOOP.
    CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
    DOCUMENT_DATA = W_DOC_DATA
    PUT_IN_OUTBOX = 'X'
    SENDER_ADDRESS = LD_SENDER_ADDRESS
    SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE
    COMMIT_WORK = 'X'
    IMPORTING
    SENT_TO_ALL = W_SENT_ALL
    TABLES
    PACKING_LIST = T_PACKING_LIST
    CONTENTS_BIN = T_ATTACHMENT
    CONTENTS_TXT = IT_MESSAGE
    RECEIVERS = T_RECEIVERS
    EXCEPTIONS
    TOO_MANY_RECEIVERS = 1
    DOCUMENT_NOT_SENT = 2
    DOCUMENT_TYPE_NOT_EXIST = 3
    OPERATION_NO_AUTHORIZATION = 4
    PARAMETER_ERROR = 5
    X_ERROR = 6
    ENQUEUE_ERROR = 7
    OTHERS = 8.
    Populate zerror return code
    LD_ERROR = SY-SUBRC.
    Populate zreceiver return code
    LOOP AT T_RECEIVERS.
    LD_RECEIVER = T_RECEIVERS-RETRN_CODE.
    ENDLOOP.
    ENDFORM. "SEND_FILE_AS_EMAIL_ATTACHMENT
    *& Form INITIATE_MAIL_EXECUTE_PROGRAM
    text
    --> p1 text
    <-- p2 text
    FORM INITIATE_MAIL_EXECUTE_PROGRAM .
    WAIT UP TO 2 SECONDS.
    SUBMIT RSCONN01 WITH MODE = 'INT'
    WITH OUTPUT = ''
    AND RETURN.
    ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM
    Regards
    Subramanian

  • XML files from ABAP programs

    Hi everyone!
    Is there a way in ABAP to output XML files?  Pls. send code/ function module if any.
    From ABAP programs, we are sure that we can output TEXT files, but how about XML files?
    The significance of this question is related
    Currently we are using XI to interface SAP and AMS, this question for ABAP to produce XML file arose, if for example, the XI server is down and we have to still send data from one system to another. IDocs can also produce XML files, pls confirm.  Earlier however, we have preferred XI rather than IDocs to do this.  Anyway, any idea regarding this scenario will be greatly appreciated. 
    Thanks and God bless!
    Celeste

    Hi,
    Please check this sample codes from other thread.
    1. itab --- > xml
        xml ---> itab.
    2. This program will do both.
    (just copy paste in new program)
    3.
    REPORT abc.
    *-------------- DATA
    DATA : t001 LIKE TABLE OF t001 WITH HEADER LINE.
    DATA : BEGIN OF itab OCCURS 0,
    a(100) TYPE c,
    END OF itab.
    DATA: xml_out TYPE string .
    DATA : BEGIN OF upl OCCURS 0,
    f(255) TYPE c,
    END OF upl.
    DATA: xmlupl TYPE string .
    ******************************* FIRST PHASE
    ******************************* FIRST PHASE
    ******************************* FIRST PHASE
    *------------------ Fetch Data
    SELECT * FROM t001 INTO TABLE t001.
    *------------------- XML
    CALL TRANSFORMATION ('ID')
    SOURCE tab = t001[]
    RESULT XML xml_out.
    CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
    EXPORTING
    TEXT = xml_out
    * IMPORTING
    * LENGTH =
    TABLES
    FTEXT_TAB = itab.
    *-------------- Download
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    filetype = 'BIN'
    filename = 'd:xx.xml'
    TABLES
    data_tab = itab.
    ******************************* SECOND PHASE
    ******************************* SECOND PHASE
    ******************************* SECOND PHASE
    BREAK-POINT.
    REFRESH t001.
    CLEAR t001.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = 'D:XX.XML'
    filetype = 'BIN'
    TABLES
    data_tab = upl.
    LOOP AT upl.
    CONCATENATE xmlupl upl-f INTO xmlupl.
    ENDLOOP.
    *------------------- XML
    CALL TRANSFORMATION ('ID')
    SOURCE XML xmlupl
    RESULT tab = t001[]
    BREAK-POINT.
    Regards,
    Ferry Lianto

Maybe you are looking for

  • Video Multipass Subscribtion Question

    i downloaded a subscribtion for 16 episodes to the Colbert Report, i didn't remember i wasn't going to be at home for 7 weeks and the email said reruns can't be downloaded, does this mean that when i come back all of those episodes won't be available

  • How can I get FF to run install apps?

    When I click on a download link for a upgrade app (.exe file) in IE, I am given the option of running or saving the file. I usually just run it. In FF, I am not given the "Run" option, so I have to save it, then navigate to it, run it, and remember t

  • Where are my podcasts after upgrade?

    Recently upgraded many items on iPad including iOS5.0.1.  I never use iPad for music, but now when download podcast it goes to a playlist that won;t open.  What happened to downloading podcasts?

  • How do I burn video onto disc so it can play on t.v.

    how do I burn video onto disc so it can be viewed on T.V.

  • How can Import Mysql my database and Table into website -

    Hi, friend i am using CS3 ,i made all need tables in database ,I need  to know how can import that database /table into website. I know  in domin there is admin Mysql inside i have found impotr/export/ but when  I click import i do not know where my