Quantcast
Channel: SCN : All Content - SAP CRM: Webclient UI - Framework
Viewing all 4552 articles
Browse latest View live

Code page is 0000 in webui

$
0
0

Hello guys,

 

 

We have one report which is using in transaction launcher as well.

We are facing some issues with the German Umlauts in Web UI alone.


Same report is having no issues in GUI.

We have observed that code page is 0000 in webui but in GUI it is 1160.


Whether it is a browser issue?? Transaction launcher issue??


Any thoughts?


Thanks,

Ravi Teja


Making Drop down values from Ztable

$
0
0

Hi Folks,

 

I created one Zfield using AET and want to use the Check table option available.

For this I created a Ztable(in GUI) using table maintenance generator.If values are maintained in Ztable will these values be shown as drop down values in the zfield.

Is there any other setting that needs to be done?

Should my zfield be maintained anywhere in Ztable.

If so Should field in the table be maintained with the same length as zfield(created via aet)

Since I am getting an error "Data type of Ztable is x char" which is less than length of my Zfield(40 char)

 

Regards

Jaya.

Disable EDIT button in all assigment blocks on OVP

$
0
0

Hi, Experts!

I need disable all edit buttons on all asssigment block of Change Request in CHARM.

How to disable EDIT button on toolbar of OVP I know, but I do not know how to disable edin buttons on assigment blocks.

I redefined methods GET_BUTTONS and DO_PREPARE_OUTPUT of  views on OVP, but this do not work.

Component AIC_CMCR_H.

Thank's for ANY help.

 

P.S. Sorry for my english

Issue on providing F4 help value is not determined?

$
0
0

Hi Team,

 

I have created F4 help to standard productid field on Complaint item screen product field.based on index i have provided f4 help to that field.first line item user press f4 that time standard pop up will be opened, 3rd line item user selects zpop up will be opened.that is the requirement.

 

See  now problem is user press f4 pop will be opened but if we select any value on result the value is not determined on product id field.. i have created search help and addded logic on product standrd get_v method .please find the below screen shot.

Get_v method

 

IF IV_INDEX = '3'.

    DATA:

      ls_map TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping,

      lt_inmap TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab,

      lt_outmap TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab.

 

 

    ls_map-context_attr = 'STRUCT.ORDERED_PROD'.

    ls_map-f4_attr = 'PRODUCT'.

 

 

  append ls_map to: lt_inmap, lt_outmap.

 

 

    CREATE OBJECT rv_valuehelp_descriptor

      TYPE

      cl_bsp_wd_valuehelp_f4descr

      EXPORTING

        iv_help_id        = '/RCRM/ITEM'   

        iv_help_id_kind   = if_bsp_wd_valuehelp_f4descr=>help_id_kind_name

        iv_input_mapping  = lt_inmap

        iv_output_mapping = lt_outmap.

 

 

 

 

  ENDIF.

 

prod.png

 

prod2.png

 

 

 

prod3.png

 

Thanks

Kalpana

Craetion of Billing Requst Doc Directly

$
0
0

Dear Champs / Gurus ,

 

My scenario is comprises of Creation of Sales Order directly on SAP CRM and then Billing Request Document as follow up document  of Sales Order. Billing request Doc will be taken as Billing Document and Accounting Entries will be created directly on ECC through PI Server. In all over scenario there is no integration with SD Module.

 

Now my client is compelling me to create these billing documents in background or through any schedule run. I tried many time to configure Billing Documents with this scenario but each time I could not get it created successfully. Therefore, after that I decided for Billing Request Creation although lot of testing had been done for that as well. Now, how I can create multiple Billing Request Document at once from Sales Order . Is there any possibility ?

 

Please Guide

 

 

Thanks

How to filter transaction types on Request for Change pop-up

$
0
0

Hello All,

 

I have a requirement which I need to filter the transaction types on request for change create pop-up. I already looked into the below link and found CL_CRM_BT_WORKAREA_MAINWINDOW / IP_CREATE method which is using during creation of the request for change create pop-up. I figured it out that I can filter the transaction list from that method. But, even, I debuged the method I couldn't find the transaction type list to delete the transaction types for filtering the list.

 

Does anybody know any other solution to filter the transaction types list? or Can someone help me the way that I found? 

 

 

Component: CRMCMP_GS_WC / How to find method of pop-up in Work-Center-Page

 

 

Any help would be appreciated.

 

Regards,

 

Merve

Custom fields in Contract item - values disappear

$
0
0

Hello,

 

I've added some custom fields to Contract Item using AET (object ORDERADM_I). I've inserted them to a configuration of the view Details in component IUCONI (from context node ISUORDERITEM).

They are working fine except that when I'm filling the custom fields and, after that, I'm filling a Product code and press Enter the values in the custom fields are disappearing.

 

Could you help me, please?

 

Thank you.

timeout after opening change history assignment block in account overview

$
0
0

Hi experts,


we have Problem that our Change history is not viewable in same cases (timeout occures only with "big" customers. this account has thousands of relationsships). After ten minutes we get timeout. What are the possibilities to avoid this issue, WITHOUT increasing timeout Settings?


Here is error message:

  • The following error occurred in system CRP : No more storage space
    available for extending an internal table.
  • The termination type was: RABAX_STATE
  • The ABAP call stack was:
    Form: SELECT_CDPOS of program SAPLSCD1
    Form:
    READ_CDPOS_FROM_DB_NO_TABKEY of program SAPLSCD1
    Form: READ_CDPOS_FROM_DB of
    program SAPLSCD1
    Function: CHANGEDOCUMENT_READ_HEADERS of program
    SAPLSCD1
    Form: AENDERUNGSBELEGE_LESEN of program SAPLBUSA
    Function:
    BUS_CHANGE_DOCUMENT of program SAPLBUSA
    Function: CRM_BUPA_IL_READ_CHANGEDOCS
    of program SAPLCRM_BUPA_BOL
    Method: READ of program
    CL_BUPA_IL_CHANGE_HISTORY=====CP
    Method: PROCESS_CHILDREN of program
    CL_BUIL_ABSTR=================CP
    Method: PROCESS_CHILDREN of program
    CL_BUPA_IL_HEADER=============CP


Thanks in advance.

Anna


How do I set up a password reset functionality in the Web UI Client

$
0
0

Hi, I would like to give our managers/team leads access to be able to change/reset passwords as we do on SU01 on the Web Client UI, how do I go about doing this?

Value Attribute add toBP_HEAD_SEARCH/MainSearchResult of RESULT context node

$
0
0

Hi Team

 

I had added ZPAYMENT_TERMS( Value attribute ) to BP_HEAD_SEARCH/MainSearchResult of RESULT context node. Break point is not triggering for the field when we search with account number. Please do needfull

 

 

Regards

Surendra

Web Services in mobile CRM

$
0
0

Hello Experts,

 

we want to use a third Party mobile Client in CRM. The Information from CRM System has to be shown in this app. What is the best way to

implement the interfaces between sap crm and third party app? should we use remote capable funcion modules and publish them as web services? or should we use a "newer technology" as generate BOL objects as web service? (this is my important question: generate and publish BOL in webservice??)

 

What is the best case for BOL objects to publish them as webservice?

how is the performance when using BOL in interfaces between SAP CRM and third party tool?

Or should we use "old shool" and implement function modules and publish them as webservice?

 

Thanks in advance!!!

 

Best Regards,

Anna

Unrequested text defaulting

$
0
0

Hello *, we have pointed out an unrequested behaviour within transaction processing after upgrade CRM. 1. Maintenance of an activity containing a text (note) 2. Save activity 3. Create single opportunity --> The text (note) of the activity is transferred automatically (no such customizing performed!) to the opportunity. It seams like a buffer Topic or something like this. We cleared browser Cache and invalidated Server Cache in tx SMICM. Any ideas? Kind regards Thomas

Getting Excel data in single row,when downloaded from web ui

$
0
0

Hi Folks,

 

I have created an SICF for excel download. I am converting an internal table to EXCEL and downloading the same on the desktop. It is working fine the only issue is that I am getting all excel data in one row.Below is my code for handler class method handle request and screenshot of excel downloaded.

 

METHOD if_http_extension~handle_request.

 

     TYPESBEGIN OF ty_data,

               equipment     TYPE zserial_no1,         "Unit Number

               unit_type     TYPE zunit_type1,         "Unit type

               lease_no      TYPE  zlease_no,          "Lease

               city          TYPE zloc_offhire,        "Offhire Loc

               depot         TYPE char40,              "Depot name

               in_date(10)   TYPE c,                  "Offhire date

               dn_number     TYPE crmt_object_id_db,   "Dn Ref

               ra_number     TYPE char35,              "Auth'n No

               currency      TYPE bea_doc_currency,    "Currency

               amt_char      TYPE  string,             "Curr. Value

               exe_rate      TYPE  char15,             "Exchange rate

               usdvalue      TYPE  string,             "Amount (USD)

               headno_ext    TYPE  bea_headno_ext,     "Invoice#

               bill_date(10) TYPE c,                   "Invoice Date

               customer      TYPE zcust_no,            "Account #

               net_value     TYPE bea_net_value,

               tax_value     TYPE bea_net_value,

               exchange_rate TYPE zbea_exchange_rate,

             END OF ty_data.

     CONSTANTSlc_encode        TYPE abap_encod VALUE 'UTF-8'.

     DATA : lv_count        TYPE i,

            ls_data         TYPE ty_data,

            it_data         TYPE STANDARD TABLE OF ty_data,

            t_xl_data       TYPE STANDARD TABLE OF soli_tab,

            tab_xl_data     TYPE soli_tab,

            lty_xl_data     TYPE soli,

            t_pdfdata       TYPE TABLE OF tline,

            lty_pdfdata     TYPE tline,

            xlinedata       TYPE xstring,

            xdata           TYPE  xstring,

            size            TYPE i,

            lt_params       TYPE tihttpnvp,

            lv_content_type TYPE string,

            line_data       TYPE string,

            l_convout       TYPE REF TO cl_abap_conv_out_ce.

 

     t_pdfdata   = zl_zrepair__repairoutputs_impl=>gt_pdf.

     tab_xl_data = zl_zrepair__repairoutputs_impl=>gt_xcel.

     LOOP AT tab_xl_data INTO lty_xl_data .

 

       line_data = lty_xl_data-line.

       CALL METHOD convert_string_to_xstring

         EXPORTING

           s = line_data

         IMPORTING

           x = xlinedata.

 

       CONCATENATE xdata xlinedata INTO xdata IN BYTE MODE.

 

   ENDLOOP.

 

*        Export response data

     lv_content_type = 'text/csv; charset=UTF-16'.

 

 

 

 

     IF xdata IS NOT INITIAL.

       server->response->set_header_field( name  = 'Content-Type' "#EC NOTEXT

                                           value lv_content_type ).

 

       server->response->set_header_field( name  = 'Content-Disposition' "#EC NOTEXT

                                                     value = 'attachment; filename = export.csv').

       server->response->set_header_field( name  = 'expires' "#EC NOTEXT

                                           value = '0' ).

*      size = xstrlen( xdata ).

       server->response->set_data( data = xdata ).

 

*

 

     ENDIF.

   ENDMETHOD.

2015-09-03 12_07_08-Microsoft Excel - export.png


Asynchronous Rendering of Table Views

$
0
0

1 Requirement

In WebUI scenarios specific requests and queries often take a long time until the data is available. In particular, RFC calls to external systems like the ERP can slow down performance. Due to the WebUI framework where visualization and rendering is done after server side processes are finished the user requires dedicated parallel processing. Table Views in WebUI include usually a large amount of different data and therefore different request origins. The ambition is to separate slow requests from the other request in order to fasten the entire visualization.


1.1 Preview



2 Proposal

Using a combination of server implementation and client side scripting Table Views can be rendered asynchronously where required. At first rendering the data is not received but a loading information is displayed instead.1.png

After an AJAX-Callback is started, the data is received and the response is sent back to the client in order to display the Table View entries at the moment they’re getting available.

2.png

3 Implementation Steps

Both server side and client side implementation needs to be done in order to achieve this functionality.

 

3.1 Server Side

The implementation class that handles the callback needs to be the same instance as the one the table view is rendered. Therefore, a modification in the method IF_HTTP_EXTENSION~HANDLE_REQUEST of class CL_CRM_WEB_UTILITY needs to be done. Similar to SAP Note 1968050 where the instance is not created again.

 

3.1.1 Modification in Web Utility Class

The modification is not critical from my perspective. It might be usefull to integrate a customizing there if more than one class needs to be included for different Table Views.

 

* -> create handler class
 TRY.
 IF LV_HANDLER_CLASS_NAME = 'CL_CRM_BSP__RECENTOBJECT0_IMPL'
 OR LV_HANDLER_CLASS_NAME = 'ZL_ZWEBUI_B_ZACCOUNTOPPOR_IMPL'.
 lv_handler_class ?= lv_target_controller.
 ELSE.
 CREATE OBJECT lv_handler_class
 TYPE
 (LV_HANDLER_CLASS_NAME).
 ENDIF.
 * -> call back application handler
 lv_handler_class->handle_request(
 ir_server     = server
 ir_controller = lv_target_controller ).
 CATCH cx_root.
 ENDTRY.

 

3.1.2 HTML

The rendering of the Table View itself must be done manually without using BSP tags to save the created BEE in the respective implementation class. Otherwise, the logic would be called after every roundtrip.

 

<%
 DATA: lr_config_table TYPE REF TO cl_chtmlb_config_cellerator.
 IF controller->gr_config_table IS INITIAL.
 CALL METHOD cl_chtmlb_config_cellerator=>factory
 EXPORTING
 id             = 'Table'
 table          = controller->typed_context->btqropp->table
 _table         = '//BTQROPP/Table'
 xml            = controller->configuration_descr->get_config_data( )
 width          = '100%'
 selectionmode  = cl_thtmlb_cellerator=>gc_selection_mode_none
 personalizable = 'FALSE'
 RECEIVING
 element        = lr_config_table.
 controller->gr_config_table ?= lr_config_table.
 %><script>
 thtmlbAJAXCall.callBackend("<%= controller->create_ajax_url( ) %>",thtmlbCCelleratorManager.asynchronousRenderingCallback);</script><%
 lr_config_table->emptytabletext = cl_wd_utilities=>get_otr_text_by_alias( 'CRM_BSP_UI_FRAME_RECOBJ/LOADING' ).
 ENDIF.
 lr_config_table ?= controller->gr_config_table.
 lr_config_table->if_bsp_bee~render( _m_page_context ).
 %>

3.1.3 Clear on new focus

Depending on the usage it may be required to handle the logic whenever the focus is changed. For instance, in an assignment block that is included in the BP_HEAD. If the business partner is changed the search must be done again. I guess, there can be done some additional investigation to handle the partner change itself and in those cases just take the data out of the BOL. So the performance can be improved even more.

 

3.1.3.1 Method: IF_BSP_MODEL~INIT

Get the instance of the controller implementation class.

 

CALL METHOD super->if_bsp_model~init
 EXPORTING
 id    = id
 owner = owner.
 gv_owner ?= owner.

 

3.1.3.2 Method: ON_NEW_FOCUS

Clear the BSP bee.

 

CLEAR gv_owner->gr_config_table.

3.1.4 AJAX-URL

The URL which calls the backend via JavaScript can be created in the implementation class directly.

 

CALL METHOD cl_crm_web_utility=>create_service_url
 EXPORTING
 iv_handler_class_name = 'ZL_ZWEBUI_B_ZACCOUNTOPPOR_IMPL'
 iv_controller_id      = me->component_id
 RECEIVING
 ev_url                = ev_url.

3.1.5 Callback

The implementation class needs the Interface IF_CRM_WEB_CALLBACK in order to receive the previously callback.

 

3.1.5.1 Method: IF_CRM_WEB_CALLBACK~HANDLE_REQUEST

The method handles the callback, retrieves the data and creates the HTML code for the response.


*|-- References  DATA: lr_result          TYPE REF TO if_bol_bo_col,
 lr_query_service   TYPE REF TO cl_crm_bol_dquery_service.
*|-- Variables
 DATA: lv_partner         TYPE string,
 lv_html            TYPE string.
 *|-- BP number
 lv_partner = me->typed_context->builheader->collection_wrapper->get_current( )->get_property_as_string( iv_attr_name = 'BP_NUMBER' ).
 CHECK lv_partner IS NOT INITIAL.
 TRY.
 *|-- Query Service for Opportunities
 lr_query_service = cl_crm_bol_dquery_service=>get_instance( 'BTQOpp' ).
 *|-- Query-Parameter
 CALL METHOD lr_query_service->add_selection_param
 EXPORTING
 iv_attr_name = 'PROSPECT'
 iv_sign      = 'I'
 iv_option    = 'EQ'
 iv_low       = lv_partner.
 *|-- Result
 lr_result = lr_query_service->get_query_result( ).
 CATCH cx_crm_genil_general_error.
 RETURN.
 ENDTRY.
 *|-- Sorting
 IF lr_result IS BOUND.
 lr_result->sort(
 EXPORTING
 iv_attr_name  = 'EXP_REVENUE'
 iv_sort_order = if_bol_bo_col=>sort_descending ).
 ENDIF.
 *|-- Set Result to Context & build table
 me->typed_context->btqropp->collection_wrapper->set_collection( lr_result ).
 me->typed_context->btqropp->build_table( ).
 *|-- Clear text
 CLEAR me->gr_config_table->emptytabletext.
 *|-- Create HTML
 CALL METHOD create_table_view_html
 EXPORTING
 ir_server         = ir_server
 ir_controller     = ir_controller
 iv_binding_string = '//BTQROPP/TABLE'
 iv_table_id       = me->get_id( 'Table' )
 IMPORTING
 ev_html           = lv_html.
 *|-- Set Response
 ir_server->response->set_cdata( lv_html ).
 ir_server->response->set_header_field( name  = 'content-type'
 value = 'text/xml' ).
 *|-- Invalidate ´content
 CALL METHOD cl_ajax_utility=>invalidate_area_content
 EXPORTING
 ir_controller = ir_controller.

3.1.5.2 Method: CREATE_TABLE_VIEW_HTML

 

*|-- Constants
 DATA: lc_separator TYPE string VALUE '__'.
 *|-- Variables
 DATA: lv_attribute_path     TYPE string,
 lv_model_name         TYPE string,
 lv_lines              TYPE i,
 lv_string_lines       TYPE string,
 lv_count              TYPE i VALUE 0,
 lv_row_id             TYPE string,
 lv_html               TYPE string,
 lv_template_row_tr_id TYPE string,
 lv_new_row_tr_id      TYPE string,
 lv_rows               TYPE string,
 lv_row_ids            TYPE string,
 lv_fixed_left_rows    TYPE string,
 lv_fixed_right_rows   TYPE string,
 lv_marked_rows        TYPE string.
 *|-- Strucures
 DATA: ls_area_content TYPE crms_tajax_area_content.
 *|-- References
 DATA: lo_page             TYPE REF TO cl_bsp_ctrl_adapter,
 lo_view_manager     TYPE REF TO cl_bsp_wd_view_manager,
 lo_view_controller  TYPE REF TO cl_bsp_wd_view_controller,
 lo_model            TYPE REF TO if_bsp_model_binding,
 lo_context_node     TYPE REF TO cl_bsp_wd_context_node,
 lo_context_node_tv  TYPE REF TO cl_bsp_wd_context_node_tv.
 *|-- Field Symbols
 FIELD-SYMBOLS: <fs_page>  TYPE bsprtip.
 *|-- Create page instance
 READ TABLE cl_bsp_context=>c_page_instances
 WITH KEY page_name = cl_bsp_wd_appl_controller=>appl_controller_name
 ASSIGNING <fs_page>.
 *|-- Rendering
 IF sy-subrc IS INITIAL AND <fs_page>-instance IS BOUND.
 lo_page            ?= <fs_page>-instance.
 lo_view_manager    ?= lo_page->m_adaptee.
 lo_view_controller ?= ir_controller.
 lo_view_manager->render( iv_root_view = lo_view_controller ).
 ENDIF.
 *|-- Get model
 CALL METHOD cl_bsp_model=>if_bsp_model_util~split_binding_expression
 EXPORTING
 binding_expression = iv_binding_string
 IMPORTING
 attribute_path     = lv_attribute_path
 model_name         = lv_model_name.
 TRY.
 lo_model ?= ir_controller->get_model( lv_model_name ).
 lo_context_node ?= lo_model.
 lo_context_node_tv ?= lo_model.
 lv_lines = lo_context_node->collection_wrapper->size( ).
 CATCH: cx_root.
 EXIT.
 ENDTRY.
 WHILE lv_count < lv_lines.
 "Create AJAX content
 lv_count = lv_count + 1.
 lv_string_lines = lv_count.
 CONDENSE lv_string_lines NO-GAPS.
 CONCATENATE iv_table_id '__' lv_string_lines '__1' INTO lv_row_id.
 CALL METHOD lo_view_controller->retrieve_ajax_area_content
 EXPORTING
 iv_area_id         = lv_row_id
 iv_page_id         = ir_controller->component_id
 IMPORTING
 es_content_info    = ls_area_content
 er_used_controller = lo_view_controller.
 "Covert HTML
 IF ls_area_content-area_content IS NOT INITIAL.
 lv_html = cl_thtmlb_util=>escape_xss_javascript( ls_area_content-area_content ).
 ENDIF.
 CLEAR ls_area_content.
 "Build table
 lo_context_node_tv->build_table( ).
 "Create Response
 IF lv_rows IS INITIAL.
 CONCATENATE `'` lv_html `'` INTO lv_rows.
 CONCATENATE `'` '' `'` INTO lv_fixed_left_rows.
 CONCATENATE `'` '' `'` INTO lv_fixed_right_rows.
 CONCATENATE `'` lv_row_id `'` INTO lv_row_ids.
 CONCATENATE `'` '' `'` INTO lv_marked_rows.
 ELSE.
 CONCATENATE lv_rows `,'` lv_html `'` INTO lv_rows.
 CONCATENATE lv_fixed_left_rows `,'` '' `'` INTO lv_fixed_left_rows.
 CONCATENATE lv_fixed_right_rows `,'` '' `'` INTO lv_fixed_right_rows.
 CONCATENATE lv_row_ids `,'` lv_row_id `'` INTO lv_row_ids.
 CONCATENATE lv_marked_rows `,'` '' `'` INTO lv_marked_rows.
 ENDIF.
 ENDWHILE.
 CONCATENATE `{ "rows": [ ` lv_rows ` ],  "fixedLeftRows": [ ` lv_fixed_left_rows ` ], "fixedRightRows": [ ` lv_fixed_right_rows
 ` ], "markedRows": [ ` lv_marked_rows ` ],  "tableId": [ '` iv_table_id `' ], "rowIds": [ ` lv_row_ids ` ]}` INTO ev_html.

3.2 Client Side

The response that is created on the server side now must be handled on the client side for direct rendering without the need of a round trip.

Therefore the JavaScript scripts_.oo_tableview.js of BSP application THTMLB_SCRIPTS must be modified.

 

3.2.1 Modification in JavaScript

Basically the logic of the new Javascript function is the same as the function createFastRowsCallback where the system creates new empty rows in a Table View.

 

3.2.2 Function: asynchronousRenderingCallback

This function has following changes compared to the fast row creation logic:

 

  • Change the loading text of the no result line to take cases without any results into consideration
  • Hide the no result line in cases where we get at least one result

 

3.2.2.1 Change text

 

var noResultRow = document.getElementById(values.tableId[0]+"_noresult");
 var regexExp = new RegExp ("<%= cl_wd_utilities=>get_otr_text_by_alias( 'CRM_BSP_UI_FRAME_RECOBJ/LOADING' ) %>","g");
 var noResultText = "<%= cl_wd_utilities=>get_otr_text_by_alias( 'BSP_DYN_CONFIG_TAG_LIB/NO_RESULT_FOUND' ) %>";
 noResultRow.firstChild.innerHTML = noResultRow.firstChild.innerHTML.replace(regexExp,noResultText);

 

3.2.2.2 Hide line

 

for (var i = 0, length = values.rows.length; i < length; i++) {<%-- Hide no result line --%>
 noResultRow.className += ' th-displayNone' ;<%-- check if the row already exists in the case where the table has inserted empty rows --%>
 rowFound = true;
 row = document.getElementById(values.rowIds[i]);
 if (values.fixedLeftRows[i] != "")
 rowFixedLeft = document.getElementById(values.rowIds[i]+"_left");
 if (values.fixedRightRows[i] != "")
 rowFixedRight = document.getElementById(values.rowIds[i]+"_right");

 

4 Summary

This logic provides a good opportunity in scenarios where dedicated requests take a long time and therefore the entire visualization seems to be slow. However, the modification JavaScript is highly critical. One mistake leads to heavy errors in the WebUI as this file is used in almost every view. As a result, I can't recommend this for productive systems. I hope, that this can help the SAP to create an improment note to support this functionality.

 

Cheers,

Sebastian

Asynchronous rendering of table views

$
0
0

Hi folks,

 

I hope that somebody already had a similar requirement and can provide some valuable hints in order to achieve an asynchronous rendering of table views like it is done with shortcuts in SAP-Note 1968050.

 

Requirement:

I want to render the data for a table view by using an AJAX callback (in order to decrease performance lacks).

 

Steps:

  • Creating the BSP element (CL_CHTMLB_CONFIG_CELLERATOR) with the factory method in the HTML
  • Saving the element in the controller class of the view as global attribute
  • Render the element (No data was retrieved yet)
  • Creating an AJAX callback to call the view's controller class
  • Fetch the request with interface IF_CRM_WEB_CALLBACK~HANDLE_REQUEST

 

Now I have access to the BSP element I've saved in the controller class. In order to get the correct instance of the controller class, a modification in method IF_HTTP_EXTENSION~HANDLE_REQUEST of class CL_CRM_WEB_UTILITY was required. In method HANDLE_REQUEST I retrieve the data. Now I want to get the HTML code by using the method IF_BSP_BEE~RENDER_TO_STRING of the BSP element and send it back with a server response. Unfortunately, this method throws an exception because there's no request instance.

 

Further approach:

In order to retrieve the HTML code I've implemented a method that is similar to the method GET_ROW_HTML_FROM_AJAX_AREA from class CL_THTMLB_CELLERATOR that is used for additional rendering during scrolling events. Now, I was able to get the HTML code. But the response with the code has still no effect on client side.

 

Do you have any suggestions to achieve this requirement?

Thanks a lot in advance for your feedback.

 

 

Cheers,

Sebastian


Middleware issue

$
0
0

Hi all,

 

Pls guide me on below mention issue..............

 

Issue Details

 

In our scenario we have SAP CRM 5.0 and ECC 6.0 (IS-U), basically it is an utliity implementation project. Where there is SAP CRM front end and ISU backend. We have done all the necessary setting related to middleware like sites creation, object download, etc.

 

We are able to replicated Business Partner from ISU to CRM successfully, but in case of CRM to ISU it is not happening. when we check in smw01, the description of the Bdocs error is

 

Could not determine module name: BUPA_MAIN GENKEY: REP_GET_RECIPIENT

 

Service that caused the error: SMOH_REPLICATION_WRAPPER_MSG

 

and Bdoc State Description is 'Technical error (incomplete)'

 

Can you pls give your inputs to resolve the same or particular step from  where actually we can start diagnosis of this issue. It will be great if you provide any documents on the same.

 

Regards

gmd

CRM ICAGENT: Data cannot be maintained for set type COM_COMMERCIAL?

$
0
0

Hi Team,

 

I am getting issue in ICAGENT role.problem is icagent ,i base objects screen user enters serial number then automatically remaining fields are get filled and if we open any partner details on result list its get opened ,all fields are filled ,but only one field purchase price is not get filled .

 

For this i have edited on the screen if i select manually purchase date after enter i am getting error Data cannot be maintained for set type COM_COMMERCIAL.

 

mifi device.png

So how to resolve this issue ..could you please provide my solutions for this.

 

Thanks

Kalpana

Popups sometimes go to background on EhP3

$
0
0

We are in the middle of a CRM 7 EhP1 to EhP3 upgrade.  One issue we have discovered is that sometimes popups lose focus and go to the background.  For example when you click Create Opportunity and the system issues a popup for you to select the Opportunity Type you wish to create.  It does not happen all the time of course making it hard to troubleshoot.  We have a message in the works with SAP, but I thought I would throw it out here and see if anyone has any insight.  It seems to always happen when opening the Web UI via a link (in an email for example) or the WUI transaction in SAP GUI.  But it does not happen if you have opened IE first through it's Windows icon.

 

I found a similar post about transaction launcher, but this isn't transaction launcher.  It seems to always work OK in Chrome and on EhP1. 

 

Has anyone else seen this? Any ideas?

 

Thanks,

Clint

CRMCMP_IC_FRAME & EH_ONFORWARD Call don't want to save all the transaction

$
0
0

Hi All,

 

I am trying below thing in IC agent role when user presses save and end interaction button it will save all the transactions associated with the IC agent interaction.

 

In my case i am doing some validation on complaint when user presses end interaction button. in this case if validation fails I am reverting the data without saving it.

 

This can be achieved using below code.

 

  lr_bol_core ?= cl_crm_bol_core=>get_instance( ).

  lr_transaction ?= lr_bol_core->get_transaction( ).

 

  IF lr_transaction->check_save_needed( ) = abap_true. "Check if any unsaved object

        lr_transaction->revert( ).  "Revert all if not saved

  ENDIF.

 

but my concern is it will save all the transactions associated with that interaction. But I would like revert only complaint transaction.

But I am not sure how to achieve this.

 

Could anybody help me how we can revert back only one transaction that we require in this case.

Component:CRMCMP_IC_FRAME and View:Hidden view and event: EH_ONFORWARDCALL.

 

I have found below link but couldn't have any solution in that thread.

 

Don't save all transaction in EH_ONFORWARDCALL

 

 

I really appreciate your help on this.

 

 

Thanks,

Sanjana.

Copy enhancements from one enhancement set to another

$
0
0

Hi all,

 

Just had one unexpected issue.

 

We have one enhancement set in Quality. While doing the development in DEV client, the developer used a different enhancement set by mistake.

 

Is there any way to copy all those changes from that enhancement set to the correct one?

 

Thank you.

Viewing all 4552 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>