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

Account Search based on Sales Org .

$
0
0


Hi Experts ,

 

I have a requirement to search accounts based on Sales Org Id.

 

For this I created AET field . Componet : BP_HEAD_SEARCH.

 

please help me to get the logic to get accout results based on Sales Org Id .

 

Thanks & Regards,

Akhilesh Bhagat


Problem in change netvalue and status of order item using Crm_order_maitain

$
0
0

Hi Experts,

 

I have issue in updating net value and status of Order items.

there is a report program for change the status to complete (I1005).

 

I am getting this error at the time of commit work.

 

Capture.PNG

 

IF not gs_upload-net_val is initial.

*            loop at ls_pridoc-pric_cond into ls_pric_cond where stunr = '010'

*              and zaehk ='001' and kposn = gv_item_guid.

             is_pridoc-ref_guid = gv_item_guid.

             is_pridoc-ref_kind = 'B'.

             is_pridoc-pricing_type = 'C'.

 

             ls_pricond_change-stunr = ls_pric_cond-stunr.

             ls_pricond_change-zaehk = ls_pric_cond-zaehk.

             ls_pricond_change-kbetr = gs_upload-net_val.

             ls_pricond_change-waers = 'NZD'.

             ls_pricond_change-kpein = ls_pric_cond-kpein.

             ls_pricond_change-kmein = ls_pric_cond-kmein.

             insert ls_pricond_change into table is_pridoc-cond_change.

 

             ls_input_field-ref_guid = gv_item_guid.

             ls_input_field-ref_kind = 'B'.

*            ENDLOOP.

             INSERT is_pridoc INTO TABLE gt_pridoc.

             gs_alv-NET_VAL = ls_pricond_change-kbetr.

 

             ls_input_field-objectname = 'PRIDOC'.

             ls_input_field_names-fieldname = 'REF_GUID'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

 

             ls_input_field_names-fieldname = 'REF_KIND'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

 

             ls_input_field_names-fieldname = 'PRICING_TYPE'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

 

             ls_input_field_names-fieldname = 'KSCHL'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

 

             ls_input_field_names-fieldname = 'KBETR'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

 

             ls_input_field_names-fieldname = 'WAERS'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

 

             ls_input_field_names-fieldname = 'KPEIN'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

 

             ls_input_field_names-fieldname = 'KMEIN'.

             INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.

             INSERT ls_input_field INTO TABLE lt_input_fields.

           ENDIF.

 

           CALL FUNCTION 'CRM_ORDER_MAINTAIN'

             EXPORTING

               IT_PRIDOC         = gt_pridoc

             CHANGING

               CT_ORDERADM_I     = lt_orderadm_i

               CT_INPUT_FIELDS   = lt_input_fields

             EXCEPTIONS

               ERROR_OCCURRED    = 1

               DOCUMENT_LOCKED   = 2

               NO_CHANGE_ALLOWED = 3

               NO_AUTHORITY      = 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.

 

** Change the status if internal table status is initialised.

           If not gs_upload-status is  initial.

             clear lv_item_guid.

             lv_item_guid = gv_item_guid.

 

             CALL FUNCTION 'CRM_ORDER_CHANGE_STATUS'

               EXPORTING

                 IV_REF_GUID     = lv_item_guid

                 IV_STATUS       = 'I1005'

                 IV_ACTIVATE     = 'X'

                 IV_REF_KIND     = 'B'

                 IV_ALL_ITEMS    = ' '

                 IV_ONLY_ITEMS   = ' '

               EXCEPTIONS

                 PARAMETER_ERROR = 1

                 NOT_ALLOWED     = 2

                 ERROR_OCCURRED  = 3

                 OTHERS          = 4.

             IF SY-SUBRC = 0.

               gs_alv-STATUS = text-002.

             Endif.

           Endif.

 

 

Thanks in advance.

 

Thanks and Regards

Alok

Create Docflow between Items with BOL

$
0
0

Hello everybody,

 

recently I try to create a dowflow relationship between two items (BUS1000130) below opportunities (BUS1000111). As there no BOL method for docflow creation exists below BOL relation BTItemDocFlowSet/BTDocFlowAll, I was wundering if maybe the method createDocFlow of BTOrderHeader can be facilitated in some way also to create docflow between items.

 

I tried this and gut a dump which says, that an item docflow linkage cannot be created without a header docflow linkage. This sounds sensible but actually a doflow relation between the two parent opportunities of the items exists. So I'm not sure if I the parameters which I hand over to the method createDocFlow are correct. I call the method this way:

 

TRY.

       CLEAR lt_params.

       CLEAR ls_params.
       ls_params-name  = 'OBJKEY_A'.
       ls_params-value = ir_main_file->get_property_as_string( 'GUID' ).
       APPEND ls_params TO lt_params.

       CLEAR ls_params.
       ls_params-name  = 'OBJTYPE_A'.
       ls_params-value = 'BUS2000130'.
       APPEND ls_params TO lt_params.

       CLEAR ls_params.
       ls_params-name  = 'OBJKEY_B'.
       ls_params-value = ir_supdlv_file->get_property_as_string( 'GUID' ).
       APPEND ls_params TO lt_params.

       CLEAR ls_params.
       ls_params-name  = 'OBJTYPE_B'.
       ls_params-value = 'BUS2000130'.
       APPEND ls_params TO lt_params.

       CLEAR ls_params.
       ls_params-name  = 'RELTYPE'.
       ls_params-value = iv_rel_type.
       APPEND ls_params TO lt_params.

       CLEAR ls_params.
       ls_params-name  = 'BREL_KIND'.
       ls_params-value = 'B'.
       APPEND ls_params TO lt_params.

       lr_parent_section ?= ir_supdlv_file->get_parent( )->get_parent( ).

       IF lr_parent_section IS BOUND AND lr_parent_section->get_name( ) EQ 'BTAdminH'.

         lr_parent_section->execute(
                     iv_method_name = 'createDocFlow'
                     it_param       = lt_params ).

       ENDIF.

 

I create try to create the docflow underneath the start opportunity named "lr_parent_section". OBJKEY_A is the GUID of the item below lr_parent_section. The OBJKEY_B is the GUID of the item underneath the other opportunity. As I see no possibility to hand over a GUID for the header of this opportunity, I'm not sure how to transport the header linkage of the two opportunities. As this docflow already exists, no check seems to be made between within the docflow creation method.

 

Can anybody give me a hint how to handle this problem? Would be great...

 

Thanks and best regards,

Markus

Uploading a PDF File on a CRM WEB UI screen

$
0
0

Hi All,

 

 

  Please help by providing some documents for Uploading a PDF file in an CRM WEB UI Screen .

 

 

 

Thanks and Regars,


Harikrishna M

BP cannot be changed, how can I do?

$
0
0

Dear all,

 

I have a organization, when I enter BP to change its name, and found the Change Button cannot be used, and there is a icon name 'Changes not permitted' behind BP number.

 

What's wrong? and How can I change ?

Populating Marketing Attributes in BP from custom table

$
0
0

I have added marketing attributes to a business partner using the FM

CRM_MKTBP_CHANGE_BP. I am able to add the marketing attributes to a BP from the custom table. I have written the code in DO_PREPARE_METHOD in component BP_HEAD.

But the issue is that I am not able to see marketing attributes in the assignment block instantly but when i click on Edit List then it gets displayed else if I go back and open that BP again it gets displayed.

What should I do to solve this issue?

 

Do i need to write BOL code for the same. If yes can someone guide me with sample code

Runtime analysis of WebUI navigation

$
0
0

Applies To:

 

Analysis of WebUI Navigation at runtime.

 

 

 

Summary:

 

You want to understand how a particular WebUI navigation is implemented.

 

This document does not intend to provide the concept of navigation in WebUI and how that could be implemented. It is assumed that reader understands navigation.

 

 

 

Prerequisites:

 

View, View Area, View Sets, Navigation

 

 

 

Overview:

 

In WebUI multiple views could be assigned to a view area. This assignment is maintained in repository of a component. At any point during runtime, only one of the assigned views could be displayed. This is referred to as current viewarea content.

figure1.jpg

 

Navigation in WebUI is nothing but a request to change the content of the view area with another view.

This achieved by navigation link which holds the target view. Framework do not need view area information as a view can be present in only one viewarea which can be read from repository.

 

These requests are build up into a queue and processed by view manager. There are two webui methods which are used in this regard.

 

CL_BSP_WD_WINDOW-IF_BSP_WD_NAVIGATION~NAVIGATE and CL_BSP_WD_VIEW_MANAGER- PROCESS_NAV_QUEUE.

 

CL_BSP_WD_WINDOW-IF_BSP_WD_NAVIGATION~NAVIGATE is responsible for posting request to nav queue while CL_BSP_WD_VIEW_MANAGER- PROCESS_NAV_QUEUE is for processing queue elements and trigger navigation.

 

Just before performing the user action which will do navigation, put external break points in these two methods and then take the action like button click etc.

 

You will get hit in CL_BSP_WD_WINDOW- IF_BSP_WD_NAVIGATION~NAVIGATE method one or multiple times as there are number of navigation requests. You would easily understand from call stack which controller is triggering that.

 

figure2.jpg

 

After you come out of all navigate method calls you will reach CL_BSP_WD_VIEW_MANAGER-PROCESS_NAV_QUEUE and can look into queue.
During trigger of individual navigation from queue entries there may be other navigation requests adding up in the queue.

 

figure3.jpg

Navigation is only completed for this http request / response cycle once the control comes out of process_nav_queue.

 

It may be noted here that CL_BSP_WD_WINDOW- IF_BSP_WD_NAVIGATION~NAVIGATE is a public method which could be overridden in a window and you could have skipped a major navigation request. However the chance of happening this is very less, as it is not required to redefine this functionality

Making BDBG Easy (Generate ALE Interface for BAPI)

$
0
0

<b>Making BDBG Easy</b>

 

Transaction BDBG is used to generate an ALE interface for SAP standard or custom developed BAPIs. Once a BAPI is given an ALE interface, it can be used in LSMW for migrating data or just as another IDoc. Quite a few SAP standard BAPIs cannot be used in LSMW as they do not come with an ALE interface. OSS note Documentation on Transaction BDBG (note number 125776) details the necessary steps to use transaction BDBG but it does not comprehensively cover the technical issues that one may encounter in order to create an ALE interface.

 

BAPI_ACTIVITYCRM_CREATEMULTI, which is used to create Activities in CRM, will be used to illustrate a step-by-step approach to using transaction BDBG.

 

Go to Object Navigator (transaction SE80) and create a bespoke function group, we will call ours Z_CRM_ACTIVITY. Activate it.

 

Then go to Function Builder (transaction SE37), and copy the BAPI to a bespoke function module. Thus, BAPI_ACTIVITYCRM_CREATEMULTI is copied to Z_BAPI_ACTIVITYCRM_CREATEMULTI and assigned to the function group that we created in the previous step – Z_CRM_ACTIVITY. Edit the bespoke function module, go to the Attributes tab, and release the function module (<i>Menu Path – Function Module >> Release >> Release</i>). Now activate the function module.

 

IDoc segment types have a maximum length of 27 characters. Each associated type for the Parameters (tabs – Import, Export, Changing, and Tables) in a BAPI becomes a segment in the IDoc. Thus, an associated type in a BAPI cannot exceed 27 characters. During the ALE generation process anything beyond the 27th character gets truncated. This leads to more than 1 segment being called the same, and as a result an error occurs when the ALE interface is generated in the final step as an IDoc cannot have the same segment twice.

 

Eg: Table parameters DATE and DATEX correspond to types BAPIBUS20001_APPOINTMENT_INS (28 characters long) and BAPIBUS20001_APPOINTMENT_INSX (29 characters) respectively.

 

Also, a developer does not have the option to reduce the segment name during the ALE generation process. So in order to have an error free ALE generation happening in the end, bespoke associated types need to be created and assigned to our bespoke BAPI.

 

Go to ABAP Dictionary (transaction SE11), and create ZXXXXXXXXXXXXXXXX data types for the structures in the BAPI that are greater than 27 characters. Activate all these bespoke structures.

 

Bespoke structures – ZBAPIBUS20001_APP_INS and ZBAPIBUS20001_APP_INSX can be used in lieu of the standard SAP ones for parameters DATE and DATEX. The same correction method needs to take place for other excessively long types, like the types being referenced by LOCATION and LOCATIONX.

 

Go to Business Object Builder (transaction SWO1). A search for Activity as the short description produces a few hits. After examining all the objects returned in the hit, we see that BAPI_ACTIVITYCRM_CREATEMULTI belongs to 2 Business Objects - BUS2000110 (CRM Activity) and BUS2000126 (CRM Business Activity).

 

Copy either of these objects to a bespoke object ZXXXXXXXXX, we will copy BUS2000110 and rename it to ZBUS200010, program RBUS2000110 should also be copied to a Z version (ZRBUS2000110), and the object name can be changed to Company Name (eg: XXX) followed by ActivityCRM (XXXActivityCRM).

 

Now we edit our bespoke object, and create a method for it by placing the mouse cursor on methods in the object type tree and clicking the create button on the menu bar.

 

A pop-up appears on the screen with the following text –

 

<i>Create with function module

as template? </i>         

 

After clicking on Yes, another pop-up asks for a function module to be entered, enter the bespoke function module Z_BAPI_ACTIVITYCRM_CREATEMULTI here and click the tick button.

 

Accept all the default values in the next pop-up – Create Method: Method Properties, and do the same for the next pop-up – Create Method: Create Parameters. In the next pop-up click Yes to the question –

 

<i>Method ZBAPIACTIVITYCRMCREATEMULTI not

yet implemented                       

Do you want to generate a template    

automatically for the missing section?</i>

 

Double-click on the newly created method and go to the ABAP tab, the Function Module option will be selected as the default, make the API function as the default and click OK. Generate the business object.

 

Now, click on the method of the object and release the method (<i>Menu Path – Edit >> Change Release Status >> Object Type Component >> To Released</i>). Double-click on the method to confirm that the Status is released.

 

Save all the changes made, and Back out of the Edit mode and go the main Business Object Builder screen. Re-generate the business object. First implement, then release the main object ZBUS200010 (<i>Menu Path – Object Type >> Change Release Status To >> Implemented, then follow the same menu path and click on Released</i>).

 

Go to the BAPI Explorer (transaction BAPI), click on the filter icon on the menu bar, and select radiobutton – All. Click on the alphabetical tab. Look for XXXActivityCRM in the list. Release status should be Released for this object.     

 

Now we should be able to generate the ALE interface for the BAPI. Execute transaction BDBG, enter the bespoke object (ZBUS200010), do a drop down on the method field and select the bespoke method from the list. Click on the create button on the menu bar. In the first pop-up accept Message Type ZBAPIACTIVITYCRM and click OK. In the next pop-up the following values should be there by default –

 

IDoc type – ZBAPIACTIVITYCRM01,

 

ALE Outbound Processing

Function Module – ZZ_ALE_ACTIVITYCRM_CREATEMULTI,

Function Group – Z_CRM_ACTIVITY, and

 

ALE Inbound Processing

Function Module – ZIDOC_INPUT_ZBAPIACTIVITYCRM,

Function Group – Z_CRM_ACTIVITY.

 

The option – Call in update task – should be ticked.

 

Now our BAPI has an ALE Interface to it and can be used in conjunction with either the BAPI or IDoc option in LSMW. The default values for an IDoc Inbound Processing should be maintained in order to use the bespoke BAPI / IDoc.


Exception condition "REFERENCE_IS_INITIAL" raised.

$
0
0

Hello all.

 

If I create any view with a model node, I'm getting this exception while displaying the view.

 

  • The following error text was processed in system CRM : Exception condition "REFERENCE_IS_INITIAL" raised.
  • The error occurred on the application server crm71ehp5_CRM_00 and in the work process 3 .
  • The termination type was: RABAX_STATE
  • The ABAP call stack was:
    Method: DESCRIBE_BY_OBJECT_REF of program CL_ABAP_TYPEDESCR=============CP

 

Can someone please help how to resolve this?!

 

Thanks to all!

Field history not saved in Web UI

$
0
0

Hi,

 

Prior to upgrade, the fields in the Web UI e.g. employee responsible, used to show a list of history data as a drop down. Now after the upgrade, this has stopped and the fields does not save historical data, how do I get back this functionality ?

 

 

Haseeb.

Downloading missing Material data to CRM (Sales Area)

$
0
0

Hi,

 

Material 'X' is already extended to sales area 1000/10/20 in ECC, but it's not extended in CRM.

 

Is it possible to make a request download of this material so it also downloads / synchronizes missing data to CRM ?

 

 

Haseeb.

Source type \CLASS=CL_BSP_WD_VALUE_NODE is not compatible, for the purposes of assignment, with target type \CLASS=CL_CRM_BOL_ENTITY

$
0
0

Hi

 

Source type \CLASS=CL_BSP_WD_VALUE_NODE is not compatible, for the purposes of assignment, with target type \CLASS=CL_CRM_BOL_ENTITY

I am getting above error

 

   data      lr_header      type ref to if_bol_bo_property_access.
  data:lr_entity_col  type ref to cl_crm_bol_entity.

   lr_header = me->typed_context->header->collection_wrapper->get_current( ).
  check lr_header is bound.

    lr_entity_col ?= lr_header.

 

 

 

Thanks

Suresh

How to handle special character in SAP CRM

$
0
0

Hi all,

 

I am facing a problem on SAP CRM Web UI - Contact Creation - When a special character is inserted on address fields of Business

Partner (e.g. ` ~ ^ etc.), the interface does not understand this character and changes it to a TRIANGLE on pressing enter key.

 

Kindly guide as how to handle it or something is missing in terms of (note or patch).

 

I am running on SAP CRM 7.0

 

 

Thanks,

Pradeep Singh Dhadwal

Adding attachmant component (GS_CM) to Z WebUI component

$
0
0

Hello,

i have created my Z genil class, Bol object and Web UI component. However i do not have Z BOR object.

Now i would like to enable the user to add attachments to the Genil Objects.

I have added GS_CM component usage to my Web UI component.

I have created context node CMBO in my view and controller.

The problem is that buttons "New", "Url" and "With template" of the attachment component view are not active.

 

I have performed a test in debug mode: "ON_NEW_FOCUS" of the CMBO context node of type GS_CM.

I have passed values for an existing BOR object in the parameter for the query gc_query_bo_link:

 

sample code for passing data for an existing BOR object (BPartner) to the initialization of CMBO component.

lr_qs = cl_crm_bol_query_service=>get_instance( cl_crm_cm_genil_comp=>gc_query_bo_link ).

" Here i have passed values for an existin BOR object and then attachment component view is working.

" If i pass here GUID of my Z object -> attachment copmponent view is with inactive buttons.

ls_cmbo_prop-instid = '<some_BOR_object_GUID>.
ls_cmbo_prop-typeid = <BOR_OBJ_ID>.
ls_cmbo_prop-catid  = 'BO'.

lr_qs->set_properties( ls_cmbo_prop ).

With this sample test - CMBO component is working -> buttons of the CMBO component are active and i'm able to attach link/file to the CMBO component.

When i later open BOR object(BPartner) i can see the attachment.

 

My question is - is it possible to add attachment component to a Z object witout having a BOR object...


Thanks,

Rosen

Use of 'iv_trigger_submit' ??

$
0
0

I have created value help on a context node by writing the below code. What is the use of iv_trigger_submit?? It s behaving the same for both abap_true and abap_false.


CREATE OBJECT rv_valuehelp_descriptor TYPE cl_bsp_wd_valuehelp_f4descr

     EXPORTING

       iv_help_id        = 'ZSEARCH'

       iv_help_id_kind   = if_bsp_wd_valuehelp_f4descr=>help_id_kind_comp

       iv_input_mapping  = lt_inmap

       iv_output_mapping = lt_outmap

       iv_trigger_submit = abap_true.

 

Thanks,

Ritu


Enhancing Standard javascrpit

$
0
0

Hi Experts,

I'm having a javacrpit in one of the web ui Component(UICMP_LTX -> PAGES WITH FLOWLOGIC -> LaunchTransactionAdmin.Js). I'm able to enhance views, but not able to enhance java scrpit. Could anyone please suggest me on how to enhance the standard javascrpit.

 

Thanks & Regards,

S.Gangireddy

How to create standard SAP toolbar buttons on a BSP page with viewset?

$
0
0

Hi all,

 

I've a requirement to have a questionnaire displayed under a viewset on a BSP page. I wont be able to use an overview page for this task as the views are not supposed to be displayed under assignment blocks. Apart from adding tool bar buttons, I also have a requirement to show standard Print button on the tool bar right hand corner to print off the questionnaire. Any thoughts on how this can be achieved?

What I've tried

 

 

Implemented IF_BSP_WD_TOOLBAR_CALLBACK interface, but struggling with the code that goes under IF_BSP_WD_TOOLBAR_CALLBACK~GET_SYSTEM_BUTTONS. Super class wont have this interface.

How to create a help button beside a field and provide help text.

$
0
0

Hi Guys ,

 

I have a requirement where I need to provide a small help button beside a field on web UI .On pressing this button the users will be provided with the data what to enter in the field.This data must come as a pop up .The user will read the text from pop up and close.Accordingly , he will then fill the field himself.

 

Here the required field is a long textarea field (like the notes field in Account details page).And how to provide the help text in pop up.

 

 

One more question :Is there any other way to help user enter this text field..?The user only wants some help to fill out the fields.He will not select any value.

 

 

Enter questions?

 

 

 

                                                    

 

This is how the field will look.I want to give a help button left side of this field and then the help texts should come on click.

 

 

Awaiting response.

view layout (.htm page) not visible

$
0
0

Hi ,

 

I have created a new BSP component nad created view a new "create Search page".It is created search and result views along with viewset.

 

But I didn;t find .Htm page any of the view .

 

I am using the EHP7.2. Could you please help me to get the .htm page of the view.

 

Regards,

rama

New field in CRM getting refreshed every time

$
0
0

Hi All,

 

I got a requirement to add new field in CRMCMP_CCS_EML component..in view Mailbody...when I looked at the component it does not have any context nodes..all the fields are added using BSP code..So I thought of doing same for my New field&Button ..

 

I have placed below BSP code in MailBody.htm page..Now my new field is coming with F4 help and button is also coming and it's triggering the event when I clicked on the button..every thing works fine..

 

 

I added my new field as shown below..

<thtmlb:inputField id = "UNAME"

                      description = "Forward To  "

                      helpId  = "USER_ADDR"

                      helpOutputFields="UNAME=BNAME;"/>

 

 

 

<thtmlb:button id      = "Go"

                text    = "Go"

                tooltip = "<%= otr(CRM_IC_APPL/check) %>"

                enabled = "X"

                onClick = "ITEMFORWARD" />

 

 

My Issue is it's keep on getting refreshed every time when we enter hit or if you do any thing on the CRM UI screen..Could you please let me know how to resolve this Issue..

 

And How do I read new field value in my class...

 

I appreciate your help on this.

 

 

Thanks,

Sara.

Viewing all 4552 articles
Browse latest View live


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