如何在OData元数据中添加自定义名称空间?

2020-08-16 11:50发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我们有一个必须实现树表数...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们有一个必须实现树表数据绑定的要求。

像这样: TreeTable

但是这里的问题是,由于元数据中没有" edmanno",因此数据以类似列表的方式出现。

xmlns:edmanno =" http://schemas。 microsoft.com/ado/2009/02/edm/annotation "

我们尝试修改MPC_EXT类,但无法实现名称空间" edmanno",并且名称空间应指向自由 http://schemas.microsoft.com/ado/2009/02/edm/annotation

MPC_EXT代码和元数据如下:

方法DEFINE。
     super-> define()。
     数据:

       lo_annotation TYPE REF TO/iwbep/if_mgw_odata_annotation," #EC NEEDED

       lo_entity_type类型参考/iwbep/if_mgw_odata_entity_typ," #EC NEEDED

       lo_complex_type类型参考/iwbep/if_mgw_odata_cmplx_type,"#EC NEEDED

       lo_property类型参考/iwbep/if_mgw_odata_property," #EC NEEDED

       lo_entity_set类型参考/iwbep/if_mgw_odata_entity_set。  " #EC需要

     lo_entity_type =模型-> get_entity_type(iv_entity_name ='ProductTree')。

     lo_property = lo_entity_type-> get_property(iv_property_name ='Node')。

     lo_annotation = lo_property->/iwbep/if_mgw_odata_annotatabl〜create_annotation(

     iv_annotation_namespace =/iwbep/if_mgw_med_odata_types => gc_sap_namespace)。

     lo_annotation-> ADD(
       出口
         IV_KEY =/iwbep/if_ana_odata_types => GCS_ANA_ODATA_ANNOTATION_KEY-HIERARCHY_NODE_FOR IV_VALUE ='节点'

 * IV_REF_ANNO = ABAP_TRUE

     )。
    lo_property = lo_entity_type-> get_property(iv_property_name ='NodeLevel')。



     lo_annotation = lo_property->/iwbep/if_mgw_odata_annotatabl〜create_annotation(iv_annotation_namespace =/iwbep/if_mgw_med_odata_types => gc_sap_namespace)。

     lo_annotation-> add(

        出口

         iv_key =/iwbep/if_ana_odata_types => GCS_ANA_ODATA_ANNOTATION_KEY-HIERARCHY_LEVEL_FOR

         iv_value ='Node')。





     lo_property = lo_entity_type-> get_property(iv_property_name ='Parent')。



     lo_annotation = lo_property->/iwbep/if_mgw_odata_annotatabl〜create_annotation(iv_annotation_namespace =/iwbep/if_mgw_med_odata_types => gc_sap_namespace)。



     lo_annotation-> add(

        出口

         iv_key =/iwbep/if_ana_odata_types => GCS_ANA_ODATA_ANNOTATION_KEY-HIERARCHY_PARENT_NODE_FOR

         iv_value ='Node')。

 *

     lo_property = lo_entity_type-> get_property(iv_property_name ='Drillstate')。



     lo_annotation = lo_property->/iwbep/if_mgw_odata_annotatabl〜create_annotation(iv_annotation_namespace =/iwbep/if_mgw_med_odata_types => gc_sap_namespace)。



     lo_annotation-> add(

        出口

         iv_key =/iwbep/if_ana_odata_types => GCS_ANA_ODATA_ANNOTATION_KEY-HIERARCHY_DRILL_STATE_FOR

         iv_value ='Node')。

   终止方法。
 
 
 
 
 <键>
 

 


 <属性名称=" Mandt"类型=" Edm.String" Nullable =" false" MaxLength =" 3" sap:unicode =" false" sap:label =" Client" sap:creatable =" false" sap:updatable ="  false" sap:sortable =" false" sap:filterable =" false"/>
 
 
 <属性名称=" NodeDescr"类型=" Edm.String" Nullable =" false" MaxLength =" 600" sap:unicode =" false" sap:label ="节点描述" sap:creatable =" false" sap:updatable =  " false" sap:sortable =" false" sap:filterable =" false"/>
 
 <属性名称=" MaterialDesc"类型=" Edm.String" Nullable =" false" MaxLength =" 300" sap:unicode =" false" sap:label ="材料描述" sap:creatable =" false" sap:updatable =  " false" sap:sortable =" false" sap:filterable =" false"/>
 
 
 <属性名称=" Drillstate"类型=" Edm.String" Nullable =" false" MaxLength =" 30" sap:hierarchy-drill-state-for =" Node" sap:unicode =" false" sap:label =" tree  " sap:creatable =" false" sap:updatable =" false" sap:sortable =" false" sap:filterable =" false"/>