Skip to Content
0
Former Member
Aug 29, 2008 at 01:28 PM

Select ProductID from PopUp - Fails

89 Views

Hi Support,

I am working on component named "ICCMP_BTSHEAD", I added a field

named 'Product_ID' from context node named 'BTADMINH', and generated GET_V_PRODUCT_ID and fired and an outboound plug using the following code:

CREATE OBJECT RV_VALUEHELP_DESCRIPTOR TYPE CL_BSP_WD_VALUEHELP_NAVDESCR

EXPORTING IV_OUTBOUND_PLUG = 'OP_ToProductSearch'

It is fine in this step. And proceeding further, I shoot out a pop up screen in the outbound plug implementation and the code as follows:

DATA: LV_TITLE TYPE STRING.

LV_TITLE = 'Product Search'.

GR_OBJSEARCHPOPUP = COMP_CONTROLLER->WINDOW_MANAGER->CREATE_POPUP(

IV_INTERFACE_VIEW_NAME = 'SearchHelpWindow' "#EC NOTEXT

IV_USAGE_NAME = 'ProductSearch' "#EC NOTEXT

IV_TITLE = LV_TITLE ).

GR_OBJSEARCHPOPUP->SET_WINDOW_WIDTH( IV_WIDTH = 1024 ).

  • searchpopup->set_window_height( IV_HEIGHT = 480 ).

GR_OBJSEARCHPOPUP->SET_ON_CLOSE_EVENT( IV_VIEW = ME IV_EVENT_NAME = 'SELECT_PRODUCT' )."#EC NOTEXT

GR_OBJSEARCHPOPUP->SET_DISPLAY_MODE( IF_BSP_WD_POPUP=>C_DISPLAY_MODE_SURROUNDED ).

GR_OBJSEARCHPOPUP->OPEN( 'SEARCHPRODANDOBJECTS' ). "#EC NOTEXT

The sbove code is fine, in the Event Handler implementation, I have written the following code:

DATA: LR_CONTEXT_NODE TYPE REF TO CL_BSP_WD_CONTEXT_NODE,

LR_CURRENT TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,

LR_ENTITY TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,

LV_OUTBOUND_PLUG TYPE SEOCMPNAME,

LV_PRODUCT_ID TYPE CRMT_PRODUCT_ID.

FIELD-SYMBOLS: <LV_PROD_VALUE> TYPE ANY.

IF GR_OBJSEARCHPOPUP IS NOT BOUND.

RETURN.

ENDIF.

LR_CONTEXT_NODE = GR_OBJSEARCHPOPUP ->GET_CONTEXT_NODE( IV_CNODE_NAME = 'PRD' ). "#EC NOTEXT

LR_CURRENT ?= LR_CONTEXT_NODE->COLLECTION_WRAPPER->GET_CURRENT( ).

IF LR_CURRENT IS NOT BOUND.

RETURN.

ENDIF.

LV_OUTBOUND_PLUG = GR_OBJSEARCHPOPUP ->GET_FIRED_OUTBOUND_PLUG( ).

IF LV_OUTBOUND_PLUG = 'RETURNRESULT'. "#EC NOTEXT

CALL METHOD LR_CURRENT->GET_PROPERTY_AS_VALUE EXPORTING IV_ATTR_NAME = 'PRODUCT_ID' "#EC NOTEXT

IMPORTING EV_RESULT = LV_PRODUCT_ID.

IF LV_PRODUCT_ID IS INITIAL.

RETURN.

ENDIF.

LR_ENTITY ?= TYPED_CONTEXT->BTADMINH->COLLECTION_WRAPPER->GET_CURRENT( ).

LR_ENTITY->SET_PROPERTY( EXPORTING IV_ATTR_NAME = 'PRODUCT_ID'

IV_VALUE = LV_PRODUCT_ID ) .

ENDIF.

In the above, where I have bolded the test, I am getting the following error in the WebUI screen.

"An error occurred during event processing in view BTSHeader.htm

An exception has occurred Exception Class CX_CRM_CIC_PARAMETER_ERROR -

Entry parameter of method CL_CRM_BOL_ENTITY->SET_PROPERTY contains

value PRODUCT_ID, which is not allowed

Method: CL_CRM_BOL_ENTITY=>IF_BOL_BO_PROPERTY_ACCESS~SET_PROPERTY

Source Text Row: 52 "

Note:

But I am able to store the selected value from the popup in the "lv_product_ID" in the event handler.

Please suggest me the cause of the above error and the solution for the same.

I have referred ICCMP_IBASE componet for reference, which has implemented the similar functionality.

Waiting for your reply....

Regards,

Guru