72143903 genil class web ui code

Upload: rakindra-nath

Post on 11-Oct-2015

8 views

Category:

Documents


1 download

DESCRIPTION

72143903 Genil Class Web UI Code

TRANSCRIPT

Genil Class:Attributes:

DESIGNTIME_MODEConstant PublicTypeCHAR1Single-Character Indicator'D'

RUNTIME_MODEConstant PublicTypeCHAR1Single-Character Indicator'R'

SHM_MODEL_LOAD_MODEConstant PublicTypeCHAR1Single-Character Indicator'S'

GC_HEADERConstant PublicTypeCRMT_EXT_OBJ_NAMEExternal Name of Object'RAJA_CAT_H'

GC_ITEMConstant PublicTypeCRMT_EXT_OBJ_NAMEExternal Name of Object'RAJA_CAT_ITEM'

GC_SEARCHConstant PublicTypeCRMT_EXT_OBJ_NAMEExternal Name of Object'RAJA_SEARCH'

GC_HEADER_ITEM_RConstant PublicTypeCRMT_RELATION_NAMEExternal Name of Object'RAJA_HEADER_ITEM'

GC_SEARCH_RConstant PublicTypeCRMT_RELATION_NAMEExternal Name of Object'RAJA_SEARCH_H'

GT_HEADERInstance Attribute PublicTypeTT_HEADER

GT_ITEMInstance Attribute PublicTypeTT_ITEM

GC_DELTA_CHANGEDConstant PublicTypeCRMT_DELTADelta Flag'M'

GC_DELTA_CREATEDConstant PublicTypeCRMT_DELTADelta Flag'N'

GC_DELTA_DELETEDConstant PublicTypeCRMT_DELTADelta Flag'D'

Methods:

IF_GENIL_APPL_MODEL~GET_OBJECT_PROPS:-Returning@VALUE( RT_OBJ_PROPS )TYPE CRMT_OBJ_PROPERTIES_TABTable of Business Object Attributes

methodIF_GENIL_APPL_MODEL~GET_OBJECT_PROPS.

select*FROMzraja_objintoCORRESPONDINGFIELDSOFTABLErt_obj_props.

endmethod.

IF_GENIL_APPL_MODEL~GET_MODEL:-VALUE( RT_RELATION_DET )TYPE CRMT_RELATION_DETAIL_TAB

methodIF_GENIL_APPL_MODEL~GET_MODEL.

select*FROMzraja_modelintoCORRESPONDINGFIELDSOFTABLErt_relation_det.

endmethod.

3.IF_GENIL_APPL_INTLAY~GET_DYNAMIC_QUERY_RESULT:-@78\QImporting@IV_QUERY_NAMETYPE CRMT_EXT_OBJ_NAMEExternal Name of Object

IS_QUERY_PARAMETERSTYPE GENILT_QUERY_PARAMETERS

IT_SELECTION_PARAMETERSTYPE GENILT_SELECTION_PARAMETER_TABComplex Search Condition

IV_ROOT_LISTTYPE REF TO IF_GENIL_CONT_ROOT_OBJECTLISTData Container - Root Object List Interface

methodIF_GENIL_APPL_INTLAY~GET_DYNAMIC_QUERY_RESULT.

DATA:lt_request_objTYPEcrmt_request_obj_tab,ls_selection_parametersTYPEcrmt_genil_order_search,lr_selection_parametersTYPEREFTOcrmt_genil_order_search.

DATAlv_strTYPEstring.datalv_andTYPEstringVALUE''.DATAls_paramLIKELINEOFIT_SELECTION_PARAMETERS.DATAlt_headerTYPETABLEOFZST_PC_HEADER.DATAls_headerTYPEZST_PC_HEADER.

DATALT_PRODUCT_CAT_IDTYPERANGEOFZST_PC_HEADER-CATALOGUE_ID.datals_PRODUCT_CAT_IDlikelineofLT_PRODUCT_CAT_ID.

DATALT_PRODUCT_CAT_DESCTYPERANGEOFZST_PC_HEADER-DESCRIPTION.datals_PRODUCT_CAT_DESClikelineofLT_PRODUCT_CAT_DESC.

DATALT_CATEGORYTYPERANGEOFZST_PC_HEADER-category_id.datals_CATEGORYlikelineofLT_CATEGORY.

DATALT_SUB_CATEGORYTYPERANGEOFZST_PC_HEADER-subcategory_id.datals_SUB_CATEGORYlikelineofLT_SUB_CATEGORY.

DATALT_STATUSTYPERANGEOFZST_PC_HEADER-status.datals_STATUSlikelineofLT_STATUS.

DATALT_CREATED_ONTYPERANGEOFZST_PC_HEADER-created_on.datals_CREATED_ONlikelineofLT_CREATED_ON.

DATALT_CREATED_BYTYPERANGEOFZST_PC_HEADER-created_by.datals_CREATED_BYlikelineofLT_CREATED_BY.

DATALR_OBJECTTYPEREFTOIF_GENIL_CONT_ROOT_OBJECT.

CASEiv_query_name.

WHENgc_search.

loopatit_selection_parametersintols_param.

casels_param-ATTR_NAME.when'PRODUCT_CAT_ID'.MOVE-CORRESPONDINGLS_PARAMTOls_PRODUCT_CAT_ID.APPENDls_PRODUCT_CAT_IDTOlt_PRODUCT_CAT_ID.

when'DESCRIPTION'.MOVE-CORRESPONDINGls_paramtoLS_PRODUCT_CAT_DESC.appendLS_PRODUCT_CAT_DESCtoLT_PRODUCT_CAT_DESC.

when'CATEGORY_ID'.MOVE-CORRESPONDINGls_paramtols_CATEGORY.appendls_CATEGORYtolT_CATEGORY.

when'SUBCATEGORY_ID'.MOVE-CORRESPONDINGls_paramtols_SUB_CATEGORY.appendls_SUB_CATEGORYtolt_SUB_CATEGORY.

when'STATUS'.MOVE-CORRESPONDINGls_paramtols_status.appendls_statustolt_status.

when'CREATED_ON'.MOVE-CORRESPONDINGLS_PARAMTOLS_created_on.APPENDLS_created_onTOLT_created_on.

when'CREATED_BY'.MOVE-CORRESPONDINGLS_PARAMTOls_created_by.APPENDls_created_byTOLt_created_by.endcase.

endloop.

IFLT_product_cat_idISNOTINITIAL.CONCATENATELV_STR'ZRAJA_CAT_H~CATALOGUE_IDINLT_PRODUCT_CAT_ID'INTOLV_STRSEPARATEDBYSPACE.lv_and='AND'.ENDIF.

IFLT_PRODUCT_CAT_DESCISNOTINITIAL.CONCATENATELV_STRlv_and'ZRAJA_CAT_H~DESCRIPTIONINLT_PRODUCT_CAT_DESC'INTOLV_STRSEPARATEDBYSPACE.lv_and='AND'.ENDIF.

IFLT_categoryISNOTINITIAL.CONCATENATELV_STRlv_and'ZRAJA_CAT_H~CATEGORY_IDINLT_CATEGORY'INTOLV_STRSEPARATEDBYSPACE.lv_and='AND'.ENDIF.

IFLT_sub_categoryISNOTINITIAL.CONCATENATELV_STRlv_and'ZRAJA_CAT_H~SUB_CATEGORY_IDINLT_SUB_CATEGORY'INTOLV_STRSEPARATEDBYSPACE.lv_and='AND'.ENDIF.

IFLT_statusISNOTINITIAL.CONCATENATELV_STRlv_and'ZRAJA_CAT_H~STATUSINLT_STATUS'INTOLV_STRSEPARATEDBYSPACE.lv_and='AND'.ENDIF.

IFLT_created_onISNOTINITIAL.CONCATENATELV_STRlv_and'ZRAJA_CAT_H~CREATED_ONINLT_CREATED_ON'INTOLV_STRSEPARATEDBYSPACE.lv_and='AND'.ENDIF.

IFLT_created_BYISNOTINITIAL.CONCATENATELV_STRlv_and'ZRAJA_CAT_H~CREATED_BYINLT_CREATED_BY'INTOLV_STRSEPARATEDBYSPACE.lv_and='AND'.ENDIF.

SELECT*fromZRAJA_CAT_HINTOCORRESPONDINGFIELDSOFTABLEgt_headerWHERE(lv_str).

ifgt_headerisnotinitial.

loopatgt_headerintols_header.try.

CALLMETHODIV_ROOT_LIST->ADD_OBJECTEXPORTINGIV_OBJECT_NAME=gc_headerIS_OBJECT_KEY=ls_header-CATALOGUE_IDRECEIVINGRV_RESULT=lr_object.

CALLMETHODme->SET_ATTR_PROPSEXPORTINGIV_ROOT=lr_object*IS_HEADER=ls_header*IS_ITEM=.

lr_object->set_attributes(ls_header).lr_object->set_key(ls_header-CATALOGUE_ID).

catchCX_CRM_GENIL_DUPLICATE_RELCX_CRM_GENIL_MODEL_ERROR.

endtry.endloop.

ENDIF.

WHENOTHERS.RETURN.ENDCASE.

endmethod.4.IF_GENIL_APPL_ALTERNATIVE_DSIL~LOCK_OBJECTS:-@78\QImporting@IV_MSG_SERVICE_ACCESSTYPE REF TO IF_GENIL_MSG_SERVICE_ACCESSInterface for Simple Access to Generic IL Message Service

CT_OBJECT_LISTTYPE CRMT_GENIL_OBJ_INST_LINE_TAB

methodIF_GENIL_APPL_ALTERNATIVE_DSIL~LOCK_OBJECTS.FIELD-SYMBOLSLIKELINEOFct_object_list.

LOOPATct_object_listASSIGNING.-success=abap_true.ENDLOOP.endmethod.

5.

IF_GENIL_APPL_INTLAY~CREATE_OBJECTS:-

@78\QImporting@IV_OBJECT_NAMETYPE CRMT_EXT_OBJ_NAMEType of Object to Be Created

IV_NUMBERTYPE INT4 DEFAULT 1Number of Objects to Be Created

IT_PARAMETERSTYPE CRMT_NAME_VALUE_PAIR_TABParameter Table of Name-Value Pairs

IV_ROOT_LISTTYPE REF TO IF_GENIL_CONT_ROOT_OBJECTLISTData Container - Root Object List Interface

methodIF_GENIL_APPL_INTLAY~CREATE_OBJECTS.

dataLS_PARAMETERSLIKELINEOFgt_header.dataLT_REQUEST_OBJtypeCRMT_REQUEST_OBJ_TAB.datalr_objectTYPEREFTOif_genil_cont_root_object.data:LV_GUIDtypeCRMT_GENIL_OBJECT_GUID.

field-symbolstypeCRMT_NAME_VALUE_PAIR.field-symbolstypeDATA.

caseIV_OBJECT_NAME.whengc_header."#ECNOTEXT*fillparameterstructurefromnamevaluepairtablecallmethodFILL_STRUCT_FROM_NVP_TABEXPORTINGIT_PARAMETERS=IT_PARAMETERSCHANGINGCS_PARAMETER=LS_PARAMETERS.

*createIV_NUMBERordersdoIV_NUMBERtimes.

callfunction'GUID_CREATE'IMPORTINGEV_GUID_16=LV_GUID.

LS_PARAMETERS-CATALOGUE_ID=LV_GUID.LS_PARAMETERS-CREATED_ON=sy-datum.LS_PARAMETERS-CREATED_BY=sy-uname.insertLS_PARAMETERSintotablegt_header.

*addthenewobjecttothecontainertry.lr_object=IV_ROOT_LIST->ADD_OBJECT(IV_OBJECT_NAME=gc_header"#ECNOTEXTIS_OBJECT_KEY=LV_GUID).

lr_object->set_attributes(LS_PARAMETERS).lr_object->set_key(LV_GUID).

catchCX_CRM_GENIL_DUPLICATE_RELCX_CRM_GENIL_MODEL_ERROR.

endtry.enddo.

endcase.endmethod.6.

IF_GENIL_APPL_ALTERNATIVE_DSIL~DELETE_OBJECTS:-@78\QImporting@IV_MSG_SERVICE_ACCESSTYPE REF TO IF_GENIL_MSG_SERVICE_ACCESSInterface for Simple Access to Generic IL Message Service

CT_OBJECT_LISTTYPE CRMT_GENIL_OBJ_INST_LINE_TAB

methodIF_GENIL_APPL_ALTERNATIVE_DSIL~DELETE_OBJECTS.

field-symbols:likeLINEOFCT_OBJECT_LIST.datalv_key_htypeZCATELOUGE_ID.DATAls_headerLIKELINEOFgt_header.*loopatCT_OBJECT_LISTassigning.case-OBJECT_NAME.whengc_header.

CLEARlv_key_h.CALLMETHODcl_crm_genil_container_tools=>get_key_from_object_idEXPORTINGiv_object_name=-object_nameiv_object_id=-object_idIMPORTINGes_key=lv_key_h.

IFlv_key_hISNOTINITIAL.

deletegt_headerWHEREcatalogue_id=lv_key_h.deletegt_itemWHEREcatalogue_id=lv_key_h.

DELETEFROMzraja_cat_hwhereCATALOGUE_ID=lv_key_h.ifsy-subrc=0.DELETEFROMzraja_itemWHERECATALOGUE_ID=lv_key_h.

-success=ABAP_TRUE.ENDIF.endif.

endcase.endloop.endmethod.

7.IF_GENIL_APPL_INTLAY~GET_OBJECTS:-

IT_REQUEST_OBJECTSTYPE CRMT_REQUEST_OBJ_TABTable of Object Request Specifications

IV_ROOT_LISTTYPE REF TO IF_GENIL_CONT_ROOT_OBJECTLISTData Container - Root Object List Interface

methodIF_GENIL_APPL_INTLAY~GET_OBJECTS."RootDeclarations

dataLR_ROOTtypereftoIF_GENIL_CONTAINER_OBJECT.

dataLV_ROOT_NAMEtypeCRMT_EXT_OBJ_NAME.dataLV_cat_idtypeZCATELOUGE_ID.dataLV_ATTRIBUTEStypeZST_PC_HEADER.datals_headerlikeLINEOFgt_header.

field-symbols:typeCRMT_REQUEST_OBJ.

"ChildDeclarations

dataLR_CHILDRENtypereftoIF_GENIL_CONTAINER_OBJECTLIST.dataLR_CHILDtypereftoIF_GENIL_CONTAINER_OBJECT.

dataLV_CHILD_NAMEtypeCRMT_EXT_OBJ_NAME.dataLV_KEY_ITEMtypeZDE_ITEM_GUID.dataLS_REQUEST_OBJECTtypeCRMT_REQUEST_OBJ.datals_itemlikeLINEOFgt_item.

field-symbols:typeCRMT_RELATION_NAME.

LR_ROOT=IV_ROOT_LIST->GET_FIRST().

checkLR_ROOTisbound.

LV_ROOT_NAME=LR_ROOT->GET_NAME().

caseLV_ROOT_NAME.

whenGC_HEADER.

callmethodLR_ROOT->GET_KEYIMPORTINGES_KEY=LV_cat_id.

whileLR_ROOTisbound.

ifLR_ROOT->CHECK_ATTR_REQUESTED()=ABAP_TRUE.

readtableIT_REQUEST_OBJECTSassigningwithkeyOBJECT_NAME=gc_header.

readtablegt_headerwithkeyCATALOGUE_ID=lv_cat_idintols_header.

ifSY-SUBRCne0.SELECT*FROMZRAJA_CAT_HINTOCORRESPONDINGFIELDSOFls_headerWHERECATALOGUE_ID=lv_cat_id.ENDSELECT.ifSY-SUBRC=0.insertls_headerintotablegt_header.endif.endif.

LR_ROOT->SET_ATTRIBUTES(Ls_header).LR_ROOT->SET_KEY(Ls_header-CATALOGUE_ID).SET_ATTR_PROPs(IV_ROOT=LR_ROOT).

endif.

"checkifdependentobjects(items)shouldberead

ifLR_ROOT->CHECK_RELS_REQUESTED()=ABAP_TRUE.

LR_CHILDREN=LR_ROOT->GET_CHILDREN(IV_AS_COPY=ABAP_FALSE).

LR_CHILD=LR_CHILDREN->GET_FIRST().

whileLR_CHILDisbound.

LV_CHILD_NAME=LR_CHILD->GET_NAME().

caseLV_CHILD_NAME.whengc_item.

ifLR_CHILD->CHECK_ATTR_REQUESTED()=ABAP_TRUE.

READTABLEgt_itemWITHkeyCATALOGUE_ID=LV_cat_idINTOls_item.

ifSY-SUBRCne0.SELECT*FROMZRAJA_ITEMINTOCORRESPONDINGFIELDSOFTABLEgt_itemwhereCATALOGUE_ID=LV_cat_id.endif.

LOOPATgt_itemINTOls_itemWHERECATALOGUE_ID=LV_cat_id.TRY.CALLMETHODLR_ROOT->add_childEXPORTINGiv_relation_name=GC_HEADER_ITEM_Ris_child_key=ls_item-ITEM_GUIDRECEIVINGrv_result=lr_child.**SET_ATTR_PROPS(IV_ROOT=lr_child).lr_child->set_attributes(ls_item).lr_child->set_key(ls_item-ITEM_GUID).

CATCHcx_crm_genil_duplicate_rel.CATCHcx_crm_genil_model_error.

ENDTRY.ENDLOOP.endif.endcase.LR_CHILD=LR_CHILDREN->GET_NEXT().endwhile.endif.

LR_ROOT=IV_ROOT_LIST->GET_NEXT().endwhile.endcase.endmethod.

8.

IF_GENIL_APPL_INTLAY~MODIFY_OBJECTS:-

@78\QImporting@IV_ROOT_LISTTYPE REF TO IF_GENIL_CONT_ROOT_OBJECTLISTData Container - Root Object List Interface

IV_RETURN_ROOT_LISTTYPE REF TO IF_GENIL_CONT_ROOT_OBJECTLISTData Container - Root Object List Interface

ET_CHANGED_OBJECTSTYPE CRMT_GENIL_OBJ_INSTANCE_TABObject Table with Object Type and ID

methodIF_GENIL_APPL_INTLAY~MODIFY_OBJECTS.

"Root/HeaderDeclarationsdata:lr_roottypereftoIF_GENIL_CONTAINER_OBJECT,lv_root_nametypeCRMT_EXT_OBJ_NAME.datalv_cat_idTYPEZCATELOUGE_ID.

data:LR_PROPS_OBJtypereftoIF_GENIL_OBJ_ATTR_PROPERTIES,LT_CHANGED_ATTRtypeCRMT_ATTR_NAME_TAB,LS_ATTRIBUTEStypeSTR_HEADER,LV_GUIDtypeCRMT_GENIL_OBJECT_GUID,LV_HEADERtypereftoIF_GENIL_CONT_ROOT_OBJECT,ls_changed_objectLIKELINEOFET_CHANGED_OBJECTS.

field-symbols:likeLINEOFgt_header,typeSIMPLE,typeSIMPLE,typeNAME_KOMP.

clearET_CHANGED_OBJECTS.

lr_header=IV_ROOT_LIST->GET_FIRST().

checklr_headerisbound.

lv_header_name=lr_header->GET_NAME().

caselv_header_name.

whenGC_HEADER.

LV_HEADER=IV_ROOT_LIST->GET_FIRST().

whileLV_HEADERisbound.

ifLV_HEADER->GET_DELTA_FLAG()=GC_DELTA_CHANGED.

LV_PROPS_OBJ=LV_HEADER->GET_ATTR_PROPS_OBJ().

callmethodLV_PROPS_OBJ->GET_NAME_TAB_4_PROPERTYEXPORTINGIV_PROPERTY=IF_GENIL_OBJ_ATTR_PROPERTIES=>MODIFIEDIMPORTINGET_NAMES=LT_CHANGED_ATTR.

callmethodLV_HEADER->GET_KEYIMPORTINGES_KEY=lv_cat_id.

callmethodLV_HEADER->GET_ATTRIBUTESIMPORTINGES_ATTRIBUTES=LS_ATTRIBUTES.

readtablegt_headerassigningwithkeyCATALOGUE_ID=lv_cat_id.ifSY-SUBRC=0.loopatLT_CHANGED_ATTRassigning.assigncomponentofstructureto.checkSY-SUBRC=0.assigncomponentofstructureLS_ATTRIBUTESto.checkSY-SUBRC=0.=.endloop.endif.ls_changed_object-OBJECT_NAME=GC_HEADER.ls_changed_object-OBJECT_ID=CL_CRM_GENIL_CONTAINER_TOOLS=>BUILD_OBJECT_ID(lv_cat_id).

APPENDls_changed_objecttoET_CHANGED_OBJECTS.endif.

"""""""""""""""""""""""""""""""""""""'children""""""""""""""""""""""""""""""""""""""

data:LV_CHILDREN_LISTtypereftoIF_GENIL_CONTAINER_OBJECTLIST,LV_CHILDtypereftoIF_GENIL_CONTAINER_OBJECT,LV_CHILD_NAMEtypeCRMT_EXT_OBJ_NAME.

data:"LV_PROPS_OBJtypereftoIF_GENIL_OBJ_ATTR_PROPERTIES,LT_CHANGED_ATTR_ITEMtypeCRMT_ATTR_NAME_TAB,LS_ATTRIBUTES_ITEMtypeCRMT_GENIL_PARTNER_ATTR,Lv_KEY_CHILDtypeZDE_ITEM_GUID,LT_RETURNtypeBAPIRET2_T,LV_MSG_CONTtypereftoCL_CRM_GENIL_BAPI_MESS_CONT,LS_CHILD_OBJ_INSTtypeCRMT_GENIL_OBJ_INSTANCE,LV_DELTAtypeCRMT_DELTA,"LV_CAT_IDtypeZCATELOUGE_ID,ls_item_attrTYPEstr_item,LV_HEADER1typereftoIF_GENIL_CONTAINER_OBJECT,ls_itemlikeLINEOFgt_item.

field-symbols:likeLINEOFgt_item,typeSIMPLE,typeSIMPLE,typeNAME_KOMP.

LV_CHILDREN_LIST=LV_HEADER->GET_CHILDREN(IV_AS_COPY=ABAP_TRUE).

LV_CHILD=LV_CHILDREN_LIST->GET_FIRST().

whileLV_CHILDisbound.*branchaccordingtheobjectnameLV_CHILD_NAME=LV_CHILD->GET_NAME().caseLV_CHILD_NAME.

whengc_item.

LV_HEADER1=LV_CHILD->GET_PARENT().

callmethodLV_HEADER1->GET_KEYIMPORTINGES_KEY=LV_CAT_ID.

LV_DELTA=LV_CHILD->GET_DELTA_FLAG().

caseLV_DELTA.

whenGC_DELTA_CHANGED.

LV_PROPS_OBJ=LV_CHILD->GET_ATTR_PROPS_OBJ().

callmethodLV_PROPS_OBJ->GET_NAME_TAB_4_PROPERTYEXPORTINGIV_PROPERTY=IF_GENIL_OBJ_ATTR_PROPERTIES=>MODIFIEDIMPORTINGET_NAMES=LT_CHANGED_ATTR_ITEM.

callmethodLV_CHILD->GET_KEYIMPORTINGES_KEY=Lv_KEY_CHILD.

callmethodLV_CHILD->GET_ATTRIBUTESIMPORTINGES_ATTRIBUTES=ls_item_attr.

readtablegt_itemassigningwithkeyCATALOGUE_ID=lv_cat_id.ifSY-SUBRC=0.loopatLT_CHANGED_ATTR_ITEMassigning.assigncomponentofstructureto.checkSY-SUBRC=0.assigncomponentofstructurels_item_attrto.checkSY-SUBRC=0.=.endloop.endif.

LS_CHILD_OBJ_INST-OBJECT_NAME=gc_item.

LS_CHILD_OBJ_INST-OBJECT_ID=CL_CRM_GENIL_CONTAINER_TOOLS=>BUILD_OBJECT_ID(Lv_KEY_CHILD).

appendls_changed_objecttoeT_CHANGED_OBJECTS.

whenGC_DELTA_CREATED.

callmethodlv_child->GET_ATTRIBUTESIMPORTINGES_ATTRIBUTES=ls_item_attr.

callfunction'GUID_CREATE'IMPORTINGEV_GUID_16=ls_item_attr-ITEM_GUID.

ls_item_attr-CATALOGUE_ID=LV_CAT_ID.

ls_item_attr-CREATED_BY=sy-uname.ls_item_attr-CREATED_ON=sy-datum.ls_item_attr-mode='N'.

APPENDls_item_attrtogt_item.

try.LV_CHILD->SET_KEY(Lv_KEY_CHILD).catchCX_CRM_GENIL_DUPLICATE_KEY.

endtry.LS_CHILD_OBJ_INST-OBJECT_NAME=gc_item.ls_changed_object-OBJECT_ID=CL_CRM_GENIL_CONTAINER_TOOLS=>BUILD_OBJECT_ID(ls_item_attr-ITEM_GUID).appendls_changed_objecttoeT_CHANGED_OBJECTS.

whenGC_DELTA_DELETED.*getthepartnerkeycallmethodlv_child->GET_KEYIMPORTINGES_KEY=Lv_KEY_CHILD.

READTABLEgt_itemINTOls_itemWITHKEYITEM_GUID=Lv_KEY_CHILD.

ls_item-mode='D'.MODIFYgt_itemFROMls_item.

endcase.ENDCASE.LV_CHILD=LV_CHILDREN_LIST->GET_NEXT().endwhile.***LV_Header=IV_ROOT_LIST->GET_NEXT().endwhile.endcase.endmethod.

9.IF_GENIL_APPL_ALTERNATIVE_DSIL~SAVE_OBJECTS:-

@7A\QChanging@CT_OBJECT_LISTTYPE CRMT_GENIL_OBJ_INST_LINE_TAB

ET_ID_MAPPINGTYPE CRMT_GENIL_ID_MAPPING_TABTable of ID Mapping Entries in Generic Interaction Layer

IV_MSG_SERVICE_ACCESSTYPE REF TO IF_GENIL_MSG_SERVICE_ACCESSInterface for Simple Access to Generic IL Message Service

methodIF_GENIL_APPL_ALTERNATIVE_DSIL~SAVE_OBJECTS.*CALLMETHODSUPER->IF_GENIL_APPL_ALTERNATIVE_DSIL~SAVE_OBJECTS*EXPORTING*IV_MSG_SERVICE_ACCESS=**IMPORTING**ET_ID_MAPPING=*CHANGING*CT_OBJECT_LIST=*.

FIELD-SYMBOLSlikelineofct_object_list.DATAlv_cat_idTYPEZCATELOUGE_ID.DATAls_headerLIKELINEOFgt_header.DATAls_itemLIKELINEOFgt_item.

loopatct_object_listASSIGNING.

case-OBJECT_NAME.whengc_header.CLEARlv_cat_id.CALLMETHODcl_crm_genil_container_tools=>get_key_from_object_idEXPORTINGiv_object_name=-object_nameiv_object_id=-object_idIMPORTINGes_key=lv_cat_id.

LOOPATgt_headerINTOls_headerWHERECATALOGUE_ID=lv_cat_id.

MODIFYZRAJA_CAT_HFROMls_header.

LOOPATgt_itemINTOls_itemWHERECATALOGUE_ID=lv_cat_id.MODIFYZRAJA_ITEMFROMls_item.

ENDLOOP.-success='X'.ENDLOOP.ENDCASE.ENDLOOP.endmethod.

10.

SET_ATTR_PROPS:-

@78\QImporting@IV_ROOTTYPE REF TO IF_GENIL_CONTAINER_OBJECT OPTIONALData Container - Object Interface

IS_HEADERTYPE STR_HEADER OPTIONAL

IS_ITEMTYPE STR_ITEM OPTIONAL

methodSET_ATTR_PROPS.

DATA:lr_attr_propsTYPEREFTOif_genil_obj_attr_properties.

lr_attr_props=iv_root->get_attr_props_obj().

lr_attr_props->set_all_properties(if_genil_obj_attr_properties=>read_only).

lR_attr_props->set_property_by_name(iv_name='DESCRIPTION'iv_value=if_genil_obj_attr_properties=>changeable).lR_attr_props->set_property_by_name(iv_name='CATEGORY_ID'iv_value=if_genil_obj_attr_properties=>changeable).lR_attr_props->set_property_by_name(iv_name='SUBCATEGORY_ID'iv_value=if_genil_obj_attr_properties=>changeable).lR_attr_props->set_property_by_name(iv_name='STATUS'iv_value=if_genil_obj_attr_properties=>changeable).lR_attr_props->set_property_by_name(iv_name='VALID_FROM'iv_value=if_genil_obj_attr_properties=>changeable).lR_attr_props->set_property_by_name(iv_name='VALID_TO'iv_value=if_genil_obj_attr_properties=>changeable).

endmethod.

11.IF_GENIL_APPL_MODEL~GET_OBJECT_PROPS:-@7B\QReturning@VALUE( RT_OBJ_PROPS )TYPE CRMT_OBJ_PROPERTIES_TABTable of Business Object Attributes

methodIF_GENIL_APPL_MODEL~GET_OBJECT_PROPS.

select*FROMzraja_objintoCORRESPONDINGFIELDSOFTABLErt_obj_props.

endmethod.

Web Ui Part:

1.

For Linking Product Id :

Under Attributes:-

@78\QImporting@IV_PROPERTYTYPE STRINGFeldeigenschaft -> Siehe Interfacekonstanten

IV_INDEXTYPE I OPTIONALZeilenindex bei Tabelle

IV_DISPLAY_MODETYPE ABAP_BOOL DEFAULT ABAP_FALSEDisplay Mode?

VALUE( RV_VALUE )TYPE STRINGWert

methodGET_P_CATLOG_ID.CASEiv_property.WHENif_bsp_wd_model_setter_getter=>fp_fieldtype.rv_value=cl_bsp_dlc_view_descriptor=>field_type_event_link.WHENif_bsp_wd_model_setter_getter=>fp_onclick.rv_value='PROCATINFO'.ENDCASE.endmethod.

Then Under Event Method:

@78\QImporting@HTMLB_EVENTTYPE REF TO CL_HTMLB_EVENT OPTIONAL

HTMLB_EVENT_EXTYPE REF TO IF_HTMLB_DATA OPTIONAL

methodEH_ONPROCATINFO.

DATA:lv_indexTYPEint4.DATA:lr_currentTYPEREFTOif_bol_bo_property_access.DATA:lr_coltypereftocl_crm_bol_entity_col.DATA:lv_guidtypecrmt_object_guid.data:lr_coreTYPEREFTOcl_crm_bol_core.data:lr_enttypereftocl_crm_bol_entity,lr_propertyTYPEREFTOif_bol_bo_property_access.DATA:lr_data_collectionTYPEREFTOif_bol_bo_col.DATA:lr_nav_srvTYPEREFTOif_crm_ui_navigation_service.

cl_thtmlb_util=>get_event_info(exportingiv_event=htmlb_event_eximportingev_index=lv_index).

*getcurrententityandpassittooutboundplug.lr_current=me->typed_context->SEARCHRESULT->collection_wrapper->find(iv_index=lv_index).

CHECKlr_currentisBOUND.

CREATEOBJECTlr_data_collectionTYPEcl_crm_bol_bo_col.

lr_ent?=lr_current.lr_data_collection->add(lr_ent).

OP_TOSEARCHMAINWINDOW(lr_data_collection).endmethod.

2.For Dynamic Drop Down:

IV_PROPERTYTYPE STRINGFeldeigenschaft -> Siehe Interfacekonstanten

IV_INDEXTYPE I OPTIONALZeilenindex bei Tabelle

IV_DISPLAY_MODETYPE ABAP_BOOL DEFAULT ABAP_FALSEDisplay Mode?

VALUE( RV_VALUE )TYPE STRINGWert

methodGET_P_CATEGORY.CASEiv_property.WHENif_bsp_wd_model_setter_getter=>FP_FIELDTYPE.rv_value=if_bsp_dlc_view_descriptor=>FIELD_TYPE_PICKLIST.*WHENif_bsp_wd_model_setter_getter=>FP_SERVER_EVENT.*rv_value='FILL_SUBCATAGORY_DDL'.ENDCASE.endmethod.

Then Under GET_V_CATEGORY:

@78\QImporting@IV_MODETYPE CHAR1 DEFAULT IF_BSP_WD_MODEL_SETTER_GETTER=>RUNTIME_MODEAufrufmodus

IV_INDEXTYPE I OPTIONALZeilenindex bei Tabelle

VALUE( RV_VALUEHELP_DESCRIPTOR )TYPE REF TO IF_BSP_WD_VALUEHELP_DESCRIPTOR

methodGET_V_CATEGORY.datalr_ddlbtypereftocl_crm_uiu_ddlb.datalt_select_tabletypeBSP_WD_DROPDOWN_TABLE.datals_select_tablelikelineoflt_select_table.datalt_categorytypetableofZG1P_CATEGORY.datals_categorylikelineoflt_category.refreshlt_select_table.CREATEOBJECTLR_DDLBEXPORTINGIV_SOURCE_TYPE=iv_mode.selectCATEGORYIDCATEGORYNAMEfromZG1P_CATEGORYintoCORRESPONDINGFIELDSOFTABLElt_category.

iflt_categoryisnotINITIAL.insertINITIALLINEINTOlt_select_tableindex1.loopatlt_categoryintols_category.ls_select_table-key=ls_category-CATEGORYID.ls_select_table-value=ls_category-CATEGORYNAME.appendls_select_tabletolt_select_table.endloop.

CALLMETHODLR_DDLB->SET_SELECTION_TABLEEXPORTINGIT_SELECTION_TABLE=lt_select_table.rv_valuehelp_descriptor=lr_ddlb.endif.endmethod.

Then Under Method

ZL_ZG1_PCAT_SEARCHREQUEST_IMPL -> GET_DQUERY_DEFINITIONS :

@7B\QReturning@VALUE( RT_RESULT )TYPE CRMT_THTMLB_SEARCH_FIELD_INFO

methodGET_DQUERY_DEFINITIONS.*CALLMETHODSUPER->GET_DQUERY_DEFINITIONS*RECEIVING*RT_RESULT=*.

FIELD-SYMBOLS:TYPEcrms_thtmlb_search_field_info.

*data:lt_ddlTYPECRMS_THTMLB_SEARCH_DDLB_NVP.

DATAlr_sqTYPEREFTOcl_crm_bol_dquery_service.DATAlr_selTYPEREFTOif_bol_bo_col.DATAls_selTYPEgenilt_selection_parameter.DATAlr_propTYPEREFTOif_bol_bo_property_access.

data:catagorytypestring.

datalr_ddlbtypereftocl_crm_uiu_ddlb.datalt_select_tabletypeCRMT_THTMLB_SEARCH_DDLB_NVP.datals_select_tablelikelineoflt_select_table.datalt_SUBcategorytypetableofZG1P_SUB_CAT.datals_SUBcategorylikelineoflt_SUBcategory.refreshlt_select_table.

CALLMETHODsuper->get_dquery_definitionsRECEIVINGrt_result=rt_result.

lr_sq?=me->typed_context->SEARCHREQUEST->collection_wrapper->get_current().iflr_sqisbound.CALLMETHODlr_sq->get_selection_paramsRECEIVINGrv_result=lr_sel.

IFlr_selISBOUND.lr_prop=lr_sel->get_first().WHILElr_propISBOUND.CALLMETHODlr_prop->get_propertiesIMPORTINGes_attributes=ls_sel.

CASEls_sel-attr_name.WHEN'CATEGORY'.catagory=ls_sel-low.endcase.lr_prop=lr_sel->get_next().endwhile.endif.endif.

selectSUB_CATIDSUB_DESCfromZG1P_SUB_CATintoCORRESPONDINGFIELDSOFTABLElt_SUBcategorywhereCATEGORYID=catagory.

iflt_subcategoryisnotINITIAL.insertINITIALLINEINTOlt_select_tableindex1.loopatlt_subcategoryintols_subcategory.ls_select_table-key=ls_subcategory-SUB_CATID.ls_select_table-value=ls_subcategory-SUB_DESC.appendls_select_tabletolt_select_table.endloop.elseiflt_subcategoryisINITIALandcatagoryisNOTINITIAL.insertINITIALLINEINTOlt_select_tableindex1.endif.

loopatrt_resultassigning.CASE-FIELD.when'CATEGORY'.-server_event='DUMMY_EVENT'.WHEN'SUBCATEGORY'.iflt_select_tableisnotinitial.REFRESH-ddlb_options.-ddlb_options=lt_select_table.endif.ENDCASE.endloop.endmethod.

Then Under Sub CatIdmethodGET_P_SUBCATEGORY.CASEiv_property.WHENif_bsp_wd_model_setter_getter=>FP_FIELDTYPE.rv_value=if_bsp_dlc_view_descriptor=>FIELD_TYPE_PICKLIST.ENDCASE.endmethod.

And

methodGET_V_SUBCATEGORY.

datalr_ddlbtypereftocl_crm_uiu_ddlb.datalt_select_tabletypeBSP_WD_DROPDOWN_TABLE.datals_select_tablelikelineoflt_select_table.datalt_categorytypetableofZG1P_SUB_CAT.datals_categorylikelineoflt_category.refreshlt_select_table.CREATEOBJECTLR_DDLBEXPORTINGIV_SOURCE_TYPE=iv_mode.selectSUB_CATIDSUB_DESCfromZG1P_SUB_CATintoCORRESPONDINGFIELDSOFTABLElt_category.

iflt_categoryisnotINITIAL.insertINITIALLINEINTOlt_select_tableindex1.loopatlt_categoryintols_category.ls_select_table-key=ls_category-SUB_CATID.ls_select_table-value=ls_category-SUB_DESC.appendls_select_tabletolt_select_table.endloop.

CALLMETHODLR_DDLB->SET_SELECTION_TABLEEXPORTINGIT_SELECTION_TABLE=lt_select_table.rv_valuehelp_descriptor=lr_ddlb.

endif.

endmethod.

In Overview Page:

Event Methods:

1. EH_ONNEW:

@78\QImporting@HTMLB_EVENTTYPE REF TO CL_HTMLB_EVENT OPTIONAL

HTMLB_EVENT_EXTYPE REF TO IF_HTMLB_DATA OPTIONAL

methodEH_ONNEW.

DATALR_CORETYPEREFTOCL_CRM_BOL_CORE.datalt_paramtypeCRMT_NAME_VALUE_PAIR_TAB.DATALR_ENTITY_COLTYPEREFTOIF_BOL_BO_COL.DATALR_CONTROLLERTYPEREFTOZL_ZG1_PCAT_BSPWDCOMPONE0_IMPL.DATALR_ROOTTYPEREFTOCL_CRM_BOL_ENTITY.

LR_CORE=CL_CRM_BOL_CORE=>GET_INSTANCE().

CALLMETHODLR_CORE->ROOT_CREATEEXPORTINGIV_OBJECT_NAME=ZCL_G1SEARCH=>GC_PRODUCT_RESULT_G1IV_CREATE_PARAM=lt_paramIV_NUMBER=1RECEIVINGRV_RESULT=lr_entity_col.

LR_CONTROLLER?=COMP_CONTROLLER.

LR_CONTROLLER->TYPED_CONTEXT->PCATH->COLLECTION_WRAPPER->CLEAR().LR_CONTROLLER->TYPED_CONTEXT->PCATH->COLLECTION_WRAPPER->ADD_COLLECTION(LR_ENTITY_COL).

LR_ROOT?=LR_ENTITY_COL->GET_CURRENT().

IFLR_ROOT->LOCK()EQABAP_TRUE.

VIEW_GROUP_CONTEXT->SET_ALL_EDITABLE().ENDIF.endmethod.

2. EH_ONEDIT:methodEH_ONEDIT.

data:lo_comptypereftoZL_ZG1_PCAT_BSPWDCOMPONE0_IMPL,lr_enttypereftocl_crm_bol_entity,lr_vgctypereftoif_bsp_wd_view_group_context.

DATALR_MSG_CONTTYPEREFTOCL_CRM_GENIL_GLOBAL_MESS_CONT.datalr_coretypereftocl_Crm_bol_core.

gv_button_flag='EDIT'.

lo_comp?=me->comp_controller.checklo_compisbound.lr_ent?=lo_comp->typed_context->PCATH->collection_wrapper->get_current().

CHECKlr_entISBOUND.

iflr_ent->is_locked()=abap_true.else.lr_ent->lock().iflr_ent->is_locked()=abap_true.me->view_group_context->set_all_editable().

else.lr_Core=cl_crm_bol_core=>get_instance().lr_msg_cont=lr_core->get_global_message_cont().

CALLMETHODlr_msg_cont->ADD_MESSAGEEXPORTINGIV_MSG_TYPE='E'IV_MSG_ID='ZMC_G1_PCAT'IV_MSG_NUMBER='000'*IV_MSG_TEXT=IV_MSG_V1=sy-uname*IV_MSG_V2=*IV_MSG_V3=*IV_MSG_V4=IV_SHOW_ONLY_ONCE=abap_true*IV_MSG_LEVEL='1'.

endif.endif.

endmethod.

3. EH_ONDELETE:

methodEH_ONDELETE.DATA:lr_entTYPEREFTOcl_crm_bol_entity,lr_coreTYPEREFTOcl_crm_bol_core,lr_cocoTYPEREFTOZL_ZG1_PCAT_BSPWDCOMPONE0_IMPL.

TRY.

lr_ent?=me->typed_context->PCATH->collection_wrapper->get_current().IFlr_ent->is_locked()=abap_trueORlr_ent->lock()=abap_true.lr_ent->delete().

lr_core=cl_crm_bol_core=>get_instance().IFlr_coreISBOUND.lr_core->modify().ENDIF.

*refreshtheitemlistofthecomponentcontrollerlr_coco?=me->comp_controller.IFlr_cocoISBOUND.lr_coco->typed_context->PCATH->collection_wrapper->publish_current().me->op_default_back().

ENDIF.ENDIF.

CATCHcx_sy_move_cast_errorcx_sy_ref_is_initial.RETURN.ENDTRY.endmethod.

4. EH_ONCANCEL:

methodEH_ONCANCEL.datalr_coretypereftocl_Crm_bol_core.DATALR_TXTYPEREFTOIF_BOl_TRANSACTION_CONTEXT.

lr_Core=cl_crm_bol_core=>get_instance().

lr_tx?=lr_core->get_transaction().

LR_TX->REVERT().***me->op_default_back().

endmethod.

5.

EH_ONSAVE:

Importing@HTMLB_EVENTTYPE REF TO CL_HTMLB_EVENT OPTIONAL

HTMLB_EVENT_EXTYPE REF TO IF_HTMLB_DATA OPTIONAL

methodEH_ONSAVE.

DATALR_ENTITYTYPEREFTOCL_CRM_BOL_ENTITY.DATALR_CONTROLLERTYPEREFTOZL_ZG1_PCAT_BSPWDCOMPONE0_IMPL.DATALR_TXTYPEREFTOIF_BOl_TRANSACTION_CONTEXT.datalr_coretypereftocl_Crm_bol_core.DATALS_ATTRTYPEZST_G1_CATLOG_RESULT.DATALR_MSG_CONTTYPEREFTOCL_CRM_GENIL_GLOBAL_MESS_CONT.*datalr_coretypereftocl_Crm_bol_core.

lr_Core=cl_crm_bol_core=>get_instance().lr_tx?=lr_core->get_transaction().

LR_CONTROLLER?=COMP_CONTROLLER.

"""""""""""""""""""""""""""""""""""""""""""""

IFLR_TX->CHECK_SAVE_NEEDED()EQABAP_TRUE.

iflr_tx->save()eqabap_true.

lr_tx->commit().

lr_Core=cl_crm_bol_core=>get_instance().lr_msg_cont=lr_core->get_global_message_cont().

CALLMETHODlr_msg_cont->ADD_MESSAGEEXPORTINGIV_MSG_TYPE='S'IV_MSG_ID='ZMC_G1_PCAT'IV_MSG_NUMBER='001'*IV_MSG_TEXT=*IV_MSG_V1=sy-uname*IV_MSG_V2=*IV_MSG_V3=*IV_MSG_V4=IV_SHOW_ONLY_ONCE=abap_true*IV_MSG_LEVEL='1'.

cleargv_button_flag.

endif.ENDIF.endmethod.