cancel
Showing results for 
Search instead for 
Did you mean: 

Adding new fields to ListDef.xml ( backend enhancement fields )

Former Member
0 Kudos

Hello,

We are working on MAM 3.0 ( Patch level 2 ) .We have made some backend enhancements using BADI's . We also added the new fields in ZListDef.xml.

After synchronisation,our Backend Enhancements are getting displayed on the MI Client , however they get displayed only on the <b> DETAILS</b> page, where as, we want our changes to be displayed on the<b> LIST</b> Page.

Could you give us any inputs as to how we could achieve this ?

<b>Problem details :</b>

We need a new field called PRIORITY in the notification history list screen ( Menu - Technical Object Management - Functional location - History - Notification History List ) .

These are the steps we followed :

1. In our backend, we implemented the BADI ALM_ME_030_FUNCLOC in the backend where in we enhanced the functional location notification history to have an additional field called ZPRIORITY .

( We wrote code in MAM30_GETDETAIL method.We also wrote code in the method MAM30_GETLIST to fill the ENHANCEMENT_FLAG)

2.Then in our MI Client Source code , we have added the Field ZPRIORITY in the ZListDef.xml ( List : FunclocOrderHistList ).

This additional Priority field gets displayed in the Notification History <b>DETAILS</b> page but not in the Notification History <b>LIST</b>page.

Any help would be appreciated . Thanks in advance.

Regards,

Aravind Nair.

Accepted Solutions (1)

Accepted Solutions (1)

former_member304703
Contributor
0 Kudos

Hi Aravind,

try deleting all *.obj files in C:\Program Files\SAP Mobile Infrastructure\data\USERNAME directory.

ListDef.xml after frist rendering get serialized. Deleting those files will force rendering it again with your new enhancements in place (and restart MI).

For your information ENHANCEMENT_FLAG field is only used on details page.

Cheers,

Larissa Limarova

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello Larissa,

Thanks a lot for the solution. I shall try this out. I have two more queries:

1. How did you get to know that the enhancement fields is in Mam030Item040Impl ?

2. How will the Mam030Item040Impl enhanced fields data be visible in Mam030Item100Impl ?

former_member304703
Contributor
0 Kudos

Hi Aravind,

If you do development I highly recommend you to download from service marketplace and read documents that start with "xMAM Enhancement Guide...".

There are I believe 5 of them. You can find them under "release and Upgrade Info" -> "Installation and upgrade guides". I am pretty sure that your particular enhancement was described step by step in one of those docs.

Answering your questions:

1. How do I know... I have been MAM developer since January 2000. So I guess by now I know lots of things about this application. For yo to find this info: go to merep_sbuilder and double-clisk on the table -> you will see the number of the mapped table.

2. They will be visible becasue that is how it is designed. To display extar fields on datails page you only need to implement BADI and put those fields in appropriate CE table and "X" in header enhacement table, so only some development on the backend is required. It works differently for lists, though. It is described in one of the enh. docs as well.

Hope your problem is solved.

Cheers,

Larissa

Former Member
0 Kudos

Hello Larissa,

I had already tried doing this. I still cannot see the fields in the LIST page.

I have recieved inputs that in need to re-generate meRepMeta.xml in the middleware system through transaction MEREP_SBUILDER.

However, when i tried doing so , i get an empty list and i am not able to dowload/re-generate meRepMeta.xml.

Could you give me any kind of inputs on this ?

Thanks in advance.

Regards,

Aravind Nair.

former_member304703
Contributor
0 Kudos

Hi Aravind,

If you used BADI I suppose you put your new field in table CE_FUNLOC_ORDER_HISTORY. In this case no need to regenerate.

Please check that on MAM client you coded something like:

1. In ZListDef.xml

<column sortable="true" default="true">

<title>TECHOBJ_ORDERS_PRIORITY</title>

<data type="text">order_priority</data>

</column>

2. Class Mam030Item110Impl got extended and contains something like

public Object getField(String key) {

if (key.equalsIgnoreCase("order_priority")) {

//read table Mam030Item040 to get a value from enhacements table!

}

return super.getField(key);

}

You list gets data from table 110 but enhanced value is in the other table.

Cheers,

Larissa