Download - 72143903 Genil Class Web UI Code
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.