URL FUNCTION MODULES

Hi All,
Any function modules, when we give inputs as
IP address for example 10.25.4.22 , 
"urlwgate"
"services"
As inputs and getting output as url like
G:\usr\sap\DKP\DVMSDGS47\work, on njsapr47_DKP_47 and IP 11.258.8.81
Rewarded Points

All three are available in my ERP6 system & the Obsolete field is blank in the attributes ..where did you read that these are obsolete ?
Arya

Similar Messages

  • Generate a url from a report or function module

    Hi,
    I'm trying to generate a url from a report and tried using the function module WWW_ITAB_TO_HTML in the report program, as , but i'm not able to get the expected results. The code is given below. Could someone please try and help me resolve this issue. Thanks in advance.
    DATA: emp_name TYPE char80.
    DATA: it_itabex TYPE zdb_ex_tty,
    it_emp TYPE TABLE OF zis_emp,
    it_org TYPE TABLE OF zis_org,
    it_pos TYPE TABLE OF zis_pos,
    it_pos_alloc TYPE TABLE OF zis_pos_alloc,
    it_res TYPE TABLE OF zis_res,
    it_res_alloc TYPE TABLE OF zis_res_alloc,
    ls_itabex TYPE zdb_ex_s.
    DATA: lv_filename TYPE string,
    lv_path TYPE string,
    lv_fullpath TYPE string,
    lv_replace TYPE i.
    DATA qstring LIKE it_itabex OCCURS 10.
    DATA: url(200), url2(200), url3(200), fullurl(200).
    FIELD-SYMBOLS: <fs_emp> LIKE LINE OF it_emp,
    <fs_org> LIKE LINE OF it_org,
    <fs_pos> LIKE LINE OF it_pos,
    <fs_pos_alloc> LIKE LINE OF it_pos_alloc,
    <fs_res> LIKE LINE OF it_res,
    <fs_res_alloc> LIKE LINE OF it_res_alloc.
    ** Report Program to export data from database to Excel.
    ** Populate all the tables that have to be exported.
    SELECT * FROM zis_org INTO TABLE it_org.
    SELECT * FROM zis_pos INTO TABLE it_pos.
    SELECT * FROM zis_pos_alloc INTO TABLE it_pos_alloc.
    SELECT * FROM zis_emp INTO TABLE it_emp.
    SELECT * FROM zis_res_alloc INTO TABLE it_res_alloc.
    SELECT * FROM zis_res INTO TABLE it_res.
    ** Append the Column Header
    CLEAR ls_itabex.
    ls_itabex-ipp_pos_id = 'IPP Pos ID'.
    ls_itabex-emp_name = 'Name'.
    ls_itabex-dt_of_join = 'JoinedOn'.
    ls_itabex-emp_status = 'Status'.
    ls_itabex-org_name = 'Org'.
    ls_itabex-prj_name = 'Project'.
    ls_itabex-mgr_name = 'Line'.
    ls_itabex-designation = 'Designation'.
    ls_itabex-specialization = 'Specialization'.
    APPEND ls_itabex TO it_itabex.
    ** Append all the tables into one internal table
    LOOP AT it_pos_alloc ASSIGNING <fs_pos_alloc>.
    CLEAR ls_itabex.
    ls_itabex-ipp_pos_id = <fs_pos_alloc>-ipp_pos_id.
    READ TABLE it_emp ASSIGNING <fs_emp> WITH KEY emp_guid = <fs_pos_alloc>-emp_guid.
    IF sy-subrc = 0.
    CONCATENATE <fs_emp>-emp_fname <fs_emp>-emp_lname INTO ls_itabex-emp_name SEPARATED BY space.
    ls_itabex-dt_of_join = <fs_emp>-dt_of_join.
    ls_itabex-emp_status = <fs_emp>-emp_status.
    ls_itabex-specialization = <fs_emp>-specialization.
    ENDIF.
    READ TABLE it_pos ASSIGNING <fs_pos> WITH KEY ipp_pos_id = <fs_pos_alloc>-ipp_pos_id.
    IF sy-subrc = 0.
    ls_itabex-designation = <fs_pos>-designation.
    READ TABLE it_org ASSIGNING <fs_org> WITH KEY org_id = <fs_pos>-org_id.
    IF sy-subrc = 0.
    ls_itabex-org_name = <fs_org>-org_name.
    ls_itabex-mgr_name = <fs_org>-mgr_name.
    ENDIF.
    ENDIF.
    READ TABLE it_res ASSIGNING <fs_res> WITH KEY org_id = <fs_org>-org_id.
    ls_itabex-org_name = <fs_org>-org_name.
    APPEND ls_itabex TO it_itabex.
    ENDLOOP.
    url = 'http://testweb/scripts/wgate/zvw10a/!?~language=en'.
    url2 = '&~OkCode(LGON)=LGON&login-login_user='.
    url3 = '&vbcom-vbeln='.
    CONCATENATE url url2 url3 INTO fullurl.
    WRITE: /'Staffing Excel'.
    CALL FUNCTION 'WWW_SET_URL'
    EXPORTING
    offset = 12
    length = 10
    func = fullurl
    TABLES
    query_string = qstring
    EXCEPTIONS
    invalid_table = 1
    OTHERS = 2.
    Thanks & Regards,
    Preethi.

    Check the below example program :
    data: begin of itab occurs 0,
          matnr type mara-matnr,
          mtart type mara-mtart,
          matkl type mara-matkl,
          groes type mara-groes,
          end of itab.
    data: ifields type table of w3fields with header line.
    data: ihtml   type table of w3html   with header line.
    select * into corresponding fields of table itab
              from mara up to 100 rows.
    call function 'WWW_ITAB_TO_HTML'
    EXPORTING
      TABLE_ATTRIBUTES       = 'BORDER=1'
      TABLE_HEADER           =
        ALL_FIELDS             = 'X'
      tables
        html                   = ihtml
        fields                 = ifields
      ROW_HEADER             =
        itable                 = itab
    check sy-subrc = 0.
    call function 'GUI_DOWNLOAD'
         exporting
              filename = 'c:\test.html'
         tables
              data_tab = ihtml.
    Reward points if it is helpful
    Thanks
    Seshu

  • Function module to call an url from an ABAP program

    Hello
    I'm looking for the ABAP function module to open an internet explorer with an url as parameter. Could somebody help me ?
    Many thanks
    Jerome

    Hi,
    You can use 'CALL_BROWSER'.
    Refer this code:
    call function 'CALL_BROWSER'
    exporting
    url = 'C:Documents and SettingshemantgDesktopnew.html'
    exceptions
    frontend_not_supported = 1
    frontend_error = 2
    prog_not_found = 3
    no_batch = 4
    unspecified_error = 5
    others = 6.
    if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    Regards,
    Gayathri

  • Function Module to return WSDL URL

    Hi,
    Is there an ABAP Function Module that returns the URL of the WSDL when passed the name of a BAPI/ RFC?
    Thanks,
    Tristan

    hi there,
    unfortunately, as far as I know, there is no official API for the functionality you are talking of.
    Inofficially you might want to have a look at cl_srt_*, especially cl_srt_registry or cl_srt_tools. those classes supply the required functionality.
    be warned though that things are changing with the latest servicepacks and the new transaction SOAMANAGER and it's underlying data model. the new functionality does again not supply an official API to query the information you (and I) would like to get from the system.
    hope it helps, anton

  • Function Module used to updating URL attachment in RE80

    Hi there !
    I'm currently developing a program in RE module . I'm finding off ways on how to auto update my URL attachment in RE80 , someone told me to use the function module SO_OBJECT_UPDATE to do it , but then I don't know how it works ? Can someone teach me on how to use this ? or is there any other function module that I can use for this kind of scenario ?
    Your help will be much appreciated.
    Thank You !

    We didn't pushed through with such revision in our program , though your comments helped us alot , the program still can't manage it's import and export mechanism .
    Thanks for your help !

  • Function Module to delete URL attachment programatically in re80

    Hi there !
    We are currently developing a DHL project and part of our requirements is to auto delete URL attachments  programatically in re80. I tried to look for possible function modules to use like SO_OBJECT_UPDATE  for this but base on our observation it is not suitable for this . Can  someone suggest a suitable function module to use for this ?
    Your help will be much appreciated .
    Thank You !

    Hi,
    Try this F/M:
    URL_TEMPLATE_DELETE
    URL_ESCAPE_DELIM_CHARS
    SO_OBJECT_DELETE
    SO_OBJECT_ARRAY_DELETE
    SO_OBJECT_SET_ACTION_DELETE
    Make sure the entities excatly that matches your requirement..
    ihope this may helpful.
    Thank you.
    Thanks,
    AMS

  • Function module to develop URL

    Hi,
          Can anybody tell a  function module that would export the parameters in an URL format?

    Hi kunaal,
    Please refer the thread in the below link:
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/74164792-0601-0010-1ca2-c61d078d7383.
    Hope it helps.
    Rahul

  • Function module CVAPI_DOC_VIEW for opening document by webdynpro applicatio

    Hello all,
    i have a requierement to open the document when user click in filename i am using this function module but it is giving me error
    'Screen output without connection to user.'
    CALL FUNCTION 'CVAPI_DOC_VIEW'
          EXPORTING
            pf_dokar               = ls_final-dokar
            pf_doknr               = ls_final-doknr
            pf_dokvr               = ls_final-dokvr
            pf_doktl               = ls_final-doktl
         PF_HOSTNAME            = '10.141.104.40'
         pf_appl_start          = 'X'
         PF_GET_URL             = 'X'
         pf_apptp               = '1'
        PF_ASK_FILENAME        = ' '
         pf_filename            = lv_filep
        PS_FILE                =
        PF_PARENT              =
         PF_USE_DYNP            = 'X'
        PS_DRAP_AUDIT          =
      IMPORTING
        PFX_FILE               =
        PFX_URL                =
        PFX_VIEW_INPLACE       =
       EXCEPTIONS
         error                  = 1
         not_found              = 2
         no_auth                = 3
         no_original            = 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.
        ENDIF.

    Hi Shilpi,
    I had the same error.  I got round them by pulling parts of the FM out as below
        call function 'CV120_DOC_GET_APPLICATION'
          exporting
            pf_dokar  = ls_drad-dokar
            pf_doknr  = ls_drad-doknr
            pf_dokvr  = ls_drad-dokvr
            pf_doktl  = ls_drad-doktl
          importing
            psx_file  = lv_file
          exceptions
            not_found = 1
            no_auth   = 2
            error     = 3
            others    = 4.
        concatenate 'file://' lv_file-filename into lv_url.
        lv_url2 = lv_url.
        call method lo_window_manager->create_external_window
          exporting
            url            = lv_url2
            modal          = abap_false
            has_menubar    = abap_true
            is_resizable   = abap_true
            has_scrollbars = abap_true
            has_statusbar  = abap_true
            has_toolbar    = abap_true
            has_location   = abap_true
          receiving
            window         = lo_window.
        lo_window->open( ).
    Regards
    Bruce

  • RFC enabled function module using call transaction

    Hi,
    We have a scenario wherein we have a RFC enabled function module which inturn uses a call transaction to create a PM order & attaches the PM notification against it. Sometimes it so happens that the order does not get created for some reason or the other and there are no logs generated on the system to investigate. However we are capturing the messages produced via the BDCMSGCOLL. At present we are using the update parameter as 'L'.
    In some scenarios it states that the notification is locked by the same notification and comes out without creating the order, in this process we are losing out on the order & the notification number which if successful would have got updated in the database.
    I know this could be done via the BAPI, but there are innumerable steps within the BDC which can't be actually done using the BAPI and hence we could not use this procedure.
    Is there any other way by which we can ensure that there's always a successful order creation, I mean without losing out on the order/notification number?. Would changing the update mode to 'S' help?. Since this process is time bound, it can't actually take more time then what its taking with the current logic.
    Please let me know if you require further details on the same. Any help in this regard would be highly appreciated.
    Regards,
    Vidya

    Sorry for an unclear replay.
    In Simple terms; I have 2 scenarios;
    Launch a new tab (IW38 tcode), on click of a button in SAP screen of custom transaction in NWBC.
    Launch a new tab (IW38 tcode), on click of a button in a Non - SAP App opened (using URL) in NWBC.
    For 1st case, i have used
    CL_NWBC=>URL_CONSTRUCT
      EXPORTING
         CANVAS_WDA__CLIENT_TYPE       = 'nwbc'
         CANVAS_TRANSACTION            = 'IW38'
      RECEIVING
         URL                           = lv_URL.
    CALL METHOD CL_NWBC=>URL_LAUNCH
       EXPORTING
         URL    = lv_url
    But it gets open in NWBC HTML not in NWBC Desktop client.
    I tried all the Parameters you have mentioned in your response to this post earlier, but nothing worked. the last one is CANVAS__WINDOW which actually hides the top area and few buttons but still it is a HTML version.
    If i set the HTML_CLIENT = ABAP_FALSE, it launches a new window instead of the tab and asks for Login. If i login in can see the IW38 in NWBC desktop client. But the only problem is we have the restriction of single window/single login for users.
    I am on NWBC PL12 and also updated the GUI 7.3 to PL8.
    Simply the problem is URL_CONSTRUCT for any transaction is launching it in a new tab but in HTML Version.
    For 2nd case,
    It asks for the login details on click of a button on the 3rd party URL opened in NWBC. which means i am launching SAP from a 3rd party.
    Is there any way to achieve the launch of new tab in this case instead of the new window ?
    I hope its more clear now.
    Regards,
    Nik.

  • Call Function Module in UDF and return Value

    Hi All,
    Does anyone have Michal's PDF located at the following url:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/xi%20mapping%20lookups%20rfc%20api.pdf
    Everyone references this for Mapping Lookups but the link has been broken for some time.
    I am looking at calling a function module in my SAP system during mapping to check some values. I have SP14 and wanted to use the LookupApi.
    Cheers,
    Joe

    Hi Joe,
    Please go through the following Blogs which also includes the Blog you were searching for... They all talk about mapping lookups...
    /people/michal.krawczyk2/blog/2005/09/15/xi-rfc-mapping-lookups-from-bc-to-xi
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/francesco.bersani/blog/2007/03/05/data-lookup-optimized
    Regards,
    Abhy Thomas

  • Calling Web Service from Function Module

    dear all
    i am new to SAP.
    i have a web Service developed with .net and C#.
    i want to call this web Service from inside a function module.
    how can i do this ?
    thanks,

    Hi Ramzy,
    Please browse through chrome or sdn , there is a lot of documents and discussions, any how find the below URL, which might be helpful.
    Create an SAP Web Service Consumer (calling External Web Service from ABAP)
    Create a Function Module and full the below Code :
    Sample code :
    DATA: http_client TYPE REF TO if_http_client,
          host_str TYPE string VALUE 'www.myservice.in',
          service_str TYPE string,
          path TYPE string VALUE  'my path',
          errortext TYPE string. "used for error handling
    DATA  : wf_string1 TYPE string,
             lw_inputs TYPE string,
             error_text type string,
             subrc TYPE SY-SUBRC,
             lw_outputs TYPE  string.
    CALL METHOD cl_http_client=>create_by_url
      EXPORTING
        url                = 'myurl'
      IMPORTING
        client             = http_client
      EXCEPTIONS
        argument_not_found = 1
        plugin_not_active  = 2
        internal_error     = 3
        OTHERS             = 4.
      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 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 = 'mypath'.
    CALL METHOD http_client->request->set_header_field
      EXPORTING
        name  = 'Content-Type'
        value = 'application/soap+xml; charset=utf-8'."'text/xml; charset=utf-8'.
    CALL METHOD http_client->request->set_header_field
      EXPORTING
        name  = 'Content-Length'
        value = '19000'."txlen.
    CALL METHOD http_client->request->set_header_field
      EXPORTING
        name  = 'SOAPAction'
        value = 'myURL'.
    concatenate 'data u need sned' into wf_string
    CALL METHOD http_client->request->set_cdata
      EXPORTING
        data   = wf_string1
        offset = 0
        length = '19000'.
    Regards,
    Lokeswar.

  • Test web service for a function module

    Hello,
    I have created web service for a functiona module. I can see the same service in SE80 in Enterprise Services.
    How do I test this service?
    I can see the URL in WSDL tab but when I try to execute it give me following error,
    What has happened?
    URL http://emhbssap15.domain.local:8027/sap/bc/srt/wsdl/sdef_service_name/wsdl11/ws_policy/document call was terminated because the corresponding service is not available.
    Note
    The termination occurred in system BDV with error code 403 and for the reason Forbidden.
    The selected virtual host was 0 .
    What can I do?
    Please select a valid URL.
    If you do not yet have a user ID, contact your system administrator.
    ErrorCode:ICF-NF-http-c:000-u:SAPSYS-l:E-i:EMHBSSAP15_BDV_27-v:0-s:403-r:Forbidden
    HTTP 403 - Forbidden
    Your SAP Internet Communication Framework Team
    The URL I am trying is
    http://emhbssap15.domainname:8027/sap/bc/srt/wsdl/sdef_servicename/wsdl11/ws_policy/document?sap-client=400
    Can anyone help me?
    Regards,,,
    Sunil Joyous
    Edited by: Sunil Joyous on Dec 2, 2009 1:52 PM

    Thanks Venu for your input.
    Unfortunetly we do not have Java stack on our development system. You said we can test it by SOAP UI tool. Where do I see the WSDL file for the service?
    I used WSDL from SE80 --> Service --> WSDL tab, but SOAP UI does not accept this format ?
    What are the other ways I can test this web service? I think about SAP PI, importing RFC & creating web service or creating ABAP proxies... Which is the best way to go forward in case you do not have Java stck.
    Regards,,,
    Sunil Joyous

  • Calling New Function Module from JAVA ISA b2b

    I need to call a new function module which accepts some parameters as input and
    returns some result parameters back as output.
    These returned value needs to be displayed on the JSP pages of ISA B2B applications.
    Can someone please guide me and provide code snippet on how to do this?
    Thanks in advance.
    Points will be awarded for all relevant and helpful answers.

    Stride,
    I did this on CRM ISA 4.0...  I used the dev and extension guide as a basis - I think the ISA 5.0 guide has the examples and tutorials in a separate document that can also be downloaded from service.sap.com.
    Here’s some info on how to do it although I can't guarantee this is the full solution or that it will work the same for ISA 5.0, and I will probably forget a lot of stuff as its been a few years since I did it!  I also can’t guarantee it is the correct way to do it – but it worked!  Basically, we built a link into the order overview page to display url’s to order tracking websites using an RFC on the backend CRM system.  Hope it helps anyway.
    1. Create RFC enabled function module in backend.
    2. Edit file backendobject-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification:-
    [code] <backendobject
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <configs>
              <!-- customer changes in backendobject-config should be done here by extending/overwriting the base configuration-->
              <xi:include
                   href="$
    Template for backend object in customer projects
    Concrete implementation of a backend object
    This implemenation demonstrates how a backend object
    is used to communicate with the CRM system
    @see com.ao.isa.backend.boi.Z_AOFuncBackend#getOrderDeliveryTrackingData(java.lang.String)
    Interface used to communicate with a backend object
    The purpose of this interface is to hide backend implementation details
    from the business objects
    Returns a vector of Z_OrderDeliverTracking objects containing data to link
    to external delivery tracking websites
    @param orderNo The sales order document number
    @return A vector of order tracking objects
    @return
    @return
    @return
    @return
    @return
    @param string
    @param string
    @param string
    @param string
    @param string
    /modification/backendobject-config.xml#xpointer(backendobject/configs/*)"/>
              <!-- This is an example customer extension. A new Backend Object is registered in the framework using XCM extension mechanism. -->
              <!-- If you write customer extensions you should register your backend objects in the same way. -->
              <!-- Please make sure that you use the correct base configuration (e.g. crmdefault for CRM or r3default, r3pidefault for R/3) -->
              <config
                   isa:extends="../config[@id='crmdefault']">
                   <businessObject
                        type="Z_AO_Custom"
                        name="Z_AO_Custom"
                        className="com.ao.isa.backend.crm.Z_AOFuncCRM"
                        connectionFactoryName="JCO"
                        defaultConnectionName="ISAStateless"/>
              </config>
         </configs>
    </backendobject>
    [/code]
    File com.ao.isa.backend.crm.Z_AOFuncCRM.java looks like this :-
    [code] package com.ao.isa.backend.crm;
    //jco imports
    import java.util.Vector;
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem;
    import com.sap.mw.jco.JCO;
    import com.sap.mw.jco.JCO.ParameterList;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.eai.sp.jco.BackendBusinessObjectBaseSAP;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    public class Z_AOFuncCRM
         extends BackendBusinessObjectBaseSAP
         implements Z_AOFuncBackend
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFuncCRM.class.getName());
         /* (non-Javadoc)
         public Vector getOrderDeliveryTrackingData(String orderNo)
              Vector urlData = new Vector();
              try
                   // get Java representation of function module
                   JCO.Function func =
                        getDefaultJCoConnection().getJCoFunction(
                             "Z_BAPI_CRM_ORDER_TRACKING_URLS");
                   // provide export parameters
                   ParameterList params = func.getImportParameterList();
                   params.setValue(orderNo, "ORDER_NO");
                   func.setExportParameterList(params);
                   // execute function
                   getDefaultJCoConnection().execute(func);
                   // get result table
                   JCO.Table table =
                        func.getTableParameterList().getTable("TRACKING_DATA");
                   int numRows = table.getNumRows();
                   for (int i = 0; i < numRows; i++)
                        // get row
                        table.setRow(i);
                        // create a new Z_orderdeliverytracking object
                        Z_OrderDeliveryTrackingItem trackItem =
                             new Z_OrderDeliveryTrackingItem(
                                  table.getString(0),
                                  table.getString(1),
                                  table.getString(2),
                                  table.getString(3),
                                  table.getString(4));
                        urlData.addElement(trackItem);
                        trackItem = new Z_OrderDeliveryTrackingItem();
                   return urlData;
              catch (BackendException bex)
                   // The following key has to be added to WEB-INF/classes/ISAResources.properties
                   // in order to see the exception correctly
                   log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return null;
    [/code]
    And file com.ao.isa.backend.boi.Z_AOFuncBackend.java looks like this:-
    [code] package com.ao.isa.backend.boi;
    //package java.ao.com.ao.isa.backend.boi;
    import java.util.Vector;
    import com.sapmarkets.isa.core.eai.sp.jco.JCoConnectionEventListener;
    public interface Z_AOFuncBackend
         public Vector getOrderDeliveryTrackingData(String orderNo);
    [/code]
    Whilst file com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem.java looks like this:-
    [code]
    package com.ao.isa.businessobject.order;
    // Referenced classes of package com.sapmarkets.isa.businessobject.order:
    //            PaymentType
    public class Z_OrderDeliveryTrackingItem // extends SalesDocument implements OrderData
         private String deliveryDocNo;
         private String goodsIssuedDate;
         private String consignmentNo;
         private String status;
         private String url;
         public Z_OrderDeliveryTrackingItem()
         public Z_OrderDeliveryTrackingItem(
              String delDocNo,
              String GIDate,
              String consNo,
              String status,
              String url)
              this.setDeliveryDocNo(delDocNo);
              this.setGoodsIssuedDate(GIDate);
              this.setConsignmentNo(consNo);
              this.setStatus(status);
              this.setUrl(url);
         public String getConsignmentNo()
              return consignmentNo;
         public String getDeliveryDocNo()
              return deliveryDocNo;
         public String getGoodsIssuedDate()
              return goodsIssuedDate;
         public String getStatus()
              return status;
         public String getUrl()
              return url;
         public void setConsignmentNo(String string)
              consignmentNo = string;
         public void setDeliveryDocNo(String string)
              deliveryDocNo = string;
         public void setGoodsIssuedDate(String string)
              goodsIssuedDate = string;
         public void setStatus(String string)
              status = string;
         public void setUrl(String string)
              url = string;
    [/code]
    3. Edit file bom-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification :-
    [code] <BusinessObjectManagers
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <!-- customer changes in bom-config should be done here by extending/overwriting the base configuration-->
         <xi:include
              href="$/modification/bom-config.xml#xpointer(BusinessObjectManagers/*)"/>
         <!-- This is an example Business Object Manager. It can act as template for customer written Business Object Managers -->
         <BusinessObjectManager
              name="Z_AO-BOM"
              className="com.ao.isa.businessobject.Z_AOBusinessObjectManager"
              />
    </BusinessObjectManagers>
    [/code]
    File com.ao.isa.businessobject.Z_AOBusinessObjectManager.java looks like this:-
    [code] package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.management.BOManager;
    import com.sapmarkets.isa.core.businessobject.management.DefaultBusinessObjectManager;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    Template for a custom BusinessObjectManager in customer projects
    public class Z_AOBusinessObjectManager
         extends DefaultBusinessObjectManager
         implements BOManager, BackendAware {
         // key used for the backend object in customer version of backendobject-config.xml
         public static final String CUSTOM_BOM = "Z_AO-BOM";
         // reference to backend object
         private Z_AOFunc mCustomBasket;
    constructor
         public Z_AOBusinessObjectManager() {
    Method is called by the framework before the session is invalidated.
    The implemenation of this method should free any allocated resources
         public void release() {
    Returns custom business object
         public Z_AOFunc getCustomBasket() {
              if (mCustomBasket == null) {
                   mCustomBasket = new Z_AOFunc();
                   assignBackendObjectManager(mCustomBasket);
              return mCustomBasket;
    [/code]
    And uses file com.ao.isa.businessobject.Z_AOFunc.java which looks like this:-
    [code]
    package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.BOBase;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    import com.sapmarkets.isa.core.eai.BackendObjectManager;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    // custom imports
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import java.util.Vector;
    Template for business object in customer projects
    public class Z_AOFunc extends BOBase implements BackendAware
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFunc.class.getName());
         private BackendObjectManager bem;
         private Z_AOFuncBackend backendAOBasket;
    Returns a reference to the backend object. The backend object
    is instantiated by the framework.
    @return a reference to the backend object
         private Z_AOFuncBackend getCustomBasketBackend()
              if (backendAOBasket == null)
                   //create new backend object
                   try
                        backendAOBasket =
                             (Z_AOFuncBackend) bem.createBackendBusinessObject(
                                  "Z_AO_Custom");
                        // the backend object is registered in customer version
                        // of backendobject-config.xml using the 'Z_AO_Custom' type
                   catch (BackendException bex)
                        // The following key has to be added to WEB-INF/classes/ISAResources.properties
                        // in order to see the exception correctly
                        log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return backendAOBasket;
    This method is needed when a business object has a corresponding
    backend object.
         public void setBackendObjectManager(BackendObjectManager bem)
              this.bem = bem;
    Returns a vector of url links for tracking
    @return vector of urls
         public Vector getOrderDeliveryTrackingData(String orderNo)
              // the call is delegated to the CRM aware backend object
              return getCustomBasketBackend().getOrderDeliveryTrackingData(orderNo);
    [/code]
    4. Edit file config.xml in folder project_root\b2b_z\WEB-INF to add custom actions (the section below is just the custom stuff added at the end of the file – the Z_orderTracking is the relevant one) :-
    [code] <!-- Begin of custom AO action definitions -->
         <action path="/b2b/Z_orderTracking" type="com.ao.isa.order.actions.Z_OrderTrackingAction">
              <forward name="success" path="/b2b/order/Z_orderTracking.jsp"/>
         </action>
         <action path="/catalog/Z_displaySVGPage" type="com.ao.isa.catalog.actions.Z_SVGPageAction">
              <forward name="success" path="/catalog/Z_SVG_fs.jsp"/>
         </action> [/code]
    Which points at Java file com.ao.isa.order.actions.Z_OrderTrackingAction.java which looks like this :-
    [code] package com.ao.isa.order.actions;
    // internet sales imports
    import com.sapmarkets.isa.core.BaseAction;
    import com.sapmarkets.isa.core.UserSessionData;
    // struts imports
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    // servlet imports
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    // Internet Sales imports
    import com.ao.isa.businessobject.Z_AOBusinessObjectManager;
    import java.util.Vector;
    This action acts as a template for customer extensions
    public class Z_OrderTrackingAction extends BaseAction
    This method is called by the ISA Framework when the
    action is executed
         public ActionForward doPerform(
              ActionMapping mapping,
              ActionForm form,
              HttpServletRequest request,
              HttpServletResponse response)
              throws ServletException
              // get user session data object
              UserSessionData userSessionData =
                   UserSessionData.getUserSessionData(request.getSession());
              // gettting custom BOM
              Z_AOBusinessObjectManager myBOM =
                   (Z_AOBusinessObjectManager) userSessionData.getBOM(
                        Z_AOBusinessObjectManager.CUSTOM_BOM);
              // get the order number being processed
              String orderDocNumber = request.getParameter("orderNo");
              // pass the order number back to the page
              request.setAttribute("orderNo", orderDocNumber);
              if (orderDocNumber != null)
                   // Get a vector of delivery tracking objects from lower layers (Business Object layer =>
                   // Business Logic Service Layer)
                   Vector trackingTable =
                        myBOM.getCustomBasket().getOrderDeliveryTrackingData(
                             orderDocNumber);
                   String error = "";
                   if (trackingTable != null)
                        if (trackingTable.size() == 0)
                             error = "true";
                        else
                             error = "false";
                   else
                        error = "true";
                   request.setAttribute("errorMessage", error);
                   request.setAttribute("trackingTable", trackingTable);
              return mapping.findForward("success");
    [/code]
    5. I added the call to the function module for page orderstatusdetail.jsp in folder project_root\b2b_z\b2b\order to display a custom page Z_orderTracking.jsp in the same folder.  To do this I added a link into the HTML to call a JavaScript function that passed the current order number to the /b2b/Z_orderTracking.do actionhandler mapped in the config.xml file.
    So, in summary!  Create an RFC; define business managers for it in the XML files; create a new Strut action and supporting Java class; create all the Java class’ for the managers.
    I hope this makes some sense!
    Gareth.

  • Issue with Delta in Function Module

    Hi Team,
    I have an issue with delta in Genric extraction using function module.Full load is working fine and i have taken post_date as delta field.plz chk the code if any delta related statements are missing.
    FUNCTION ZRSAX_BIW_MANGEMENT_RAT .
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL
    *"  TABLES
    *"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZQMBW_FUJ_MANAGEMENT OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Example: DataSource for table MANAGEMENT RATING
      TABLES: ZQMBW_MANAGEMENT.
    Auxiliary Selection criteria structure
      DATA: L_S_SELECT TYPE SRSC_S_SELECT.
    Maximum number of lines for DB table
      STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
    counter
              S_COUNTER_DATAPAKID LIKE SY-TABIX,
    cursor
              S_CURSOR TYPE CURSOR.
      RANGES: POST_DATE FOR ZMMTVEND_RATING-POST_DATE,
              VENDOR FOR ZMMTVEND_RATING-VENDOR.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF I_INITFLAG = SBIWA_C_FLAG_ON.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Check DataSource validity
        CASE I_DSOURCE.
          WHEN 'ZQMMANAGEMENT_DS'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
    this is a typical log call. Please write every error message like this
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      I_DSOURCE   "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.
        APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
    Fill parameter buffer for data extraction calls
        S_S_IF-REQUNR    = I_REQUNR.
        S_S_IF-DSOURCE = I_DSOURCE.
        S_S_IF-MAXSIZE   = I_MAXSIZE.
    Fill field list table for an optimized select statement
    (in case that there is no 1:1 relation between InfoSource fields
    and database table fields this may be far from beeing trivial)
        APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
      ELSE.                 "Initialization mode or data extraction ?
        IF S_COUNTER_DATAPAKID = 0.
    Fill range tables BW will only pass down simple selection criteria
    of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'VENDOR'.
            MOVE-CORRESPONDING L_S_SELECT TO VENDOR.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                INPUT  = VENDOR-LOW
              IMPORTING
                OUTPUT = VENDOR-LOW.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                INPUT  = VENDOR-HIGH
              IMPORTING
                OUTPUT = VENDOR-HIGH.
            APPEND VENDOR.
          ENDLOOP.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'POST_DATE'.
            MOVE-CORRESPONDING L_S_SELECT TO POST_DATE.
            CONCATENATE L_S_SELECT-LOW6(4)  L_S_SELECT-LOW3(2) L_S_SELECT-LOW+0(2) INTO POST_DATE-LOW.
            CONCATENATE L_S_SELECT-HIGH6(4)  L_S_SELECT-HIGH3(2) L_S_SELECT-HIGH+0(2) INTO POST_DATE-HIGH.
            APPEND POST_DATE.
          ENDLOOP.
    **Get Management rating details
          OPEN CURSOR WITH HOLD S_CURSOR FOR
          SELECT VENDOR POST_DATE OVERALL_MNGT_RAT OVERALL_DEV_RAT FROM ZMMTVEND_RATING WHERE VENDOR IN VENDOR AND POST_DATE IN POST_DATE .
        ENDIF.
    Fetch records into interface table.
        FETCH NEXT CURSOR S_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.

    Hi
    Check URLs:
    How to populate the ranges using FM for the SELECTs
    Re: Generic Delta Function Module

  • Issue in creating web service for a ABAP Function Module

    Hi,
    now i'm learning how to create web service for a ABAP Function Module. I used the following steps.
    1. select the Function Module, named "zws_test".
    2. in the context menu, select "create->proxy object". so we enter into wizard.
    3. in the wizard, press the radio button "Service Provider".
    4. in the next page, press the radio button "Existing ABAP Objects(Inside Out)".
    5. In the next page, Enter the "zws_test_prvider" as Service Definition and select "Function Module" as Endpoint Type.
    6. in the next page, enter "zws_test" as Function Module and mark the "Mapping der Namen" button
    7. in the next page,select "PRF_DT_IF_SEC_LOW" as Profile and mark "Deploy Service".
    8. Save in the local package.
    9. then it will pop up a window with title "WSDL Source". i selected "URL/HTTP Destination" and press "OK".
    10.in the next page, i enter the URL as "http://hostname:portnumber/", and press "OK".
    11. then it will pop up a window with title "Display logs". A record with error message "HTTP error(return code 404, message "Not found")" appears.
    12. i press "ok" and a service provider with name "zws_test_prvider" appears in my local package.
    13. i use "zws_test_prvider"'s URL to create a service consumer "ZCO_WS_TEST_CONSUMER" and logic portal "LP1".
    14. But when i test my service consumer "ZCO_WS_TEST_CONSUMER", it will throw an exception "cx_ai_system_fault" with errortext "SOAP:14 Unexpected element -el=definitions ns=http://schemas.xmlsoap.org/wsdl/".
    15. I use t-code SM59 to test connection  and get the following info.
          Status HTTP Response     200
          Status Text                      OK
          Duration Test Call             328 ms.
    who can give me the reasons about item 11 and 14, and explain me how to create service provider and service consumer for a Function Module.
    Thanks in advance
    Johnney

    have you seen this weblog
    /people/thomas.jung3/blog/2004/11/15/bsp-150-a-developer146s-journal-part-xiii-developing-abap-webservices

Maybe you are looking for