cancel
Showing results for 
Search instead for 
Did you mean: 

How to find out top 10 records from the R/3 using Java code (WD Program)

Former Member
0 Kudos

Hi Experts,

I have used Java Web Dynpro program to fetch records from the backend. Following code helps me and fetches record. As per the customer reqirement, we have to fetch only top 10 records (Actual Cost) from the backend. So I have to modify the Java code. How I can do so? Please help.

		wdContext.nodeGraphData().invalidate();
		IPublicCostcnt.IGraphDataElement categoryElement;
			for (int i = 0; i < wdContext.nodeItab_Final1().size(); i++) {
			categoryElement = wdContext.createGraphDataElement();
			categoryElement.setCostElement(""+ wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getDescription());
			categoryElement.setActualCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getActual_Cost().toString());
			categoryElement.setPlannedCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getPlan_Cost().toString());
			wdContext.nodeGraphData().addElement(categoryElement);
		}

Regards,

Gary

Accepted Solutions (1)

Accepted Solutions (1)

Abhinav_Sharma
Contributor
0 Kudos

Hello,

If you are fetching your records from an RFC then you can write a select query to fetch the top 10 records.

Abhinav

Former Member
0 Kudos

Hi Abhinav,

Thanks. I can not write select statement inside Java WD. I have never done like this. Can you please provide me code / let me know how to do so?

Regards,

Gary

Abhinav_Sharma
Contributor
0 Kudos

Hello Gary,

You can not write Select in your JAVA code. You can write it in your RFC from where you are getting records. I'm assuming you are fetching records from SAP R/3. Your ABAPer can write the code for you.

One way can be like

SELECT * FROM <TABLENAME> INTO ITAB.

where itab is internal table

SORT itab DESCENDING BY <fieldname>. where <fieldname is actual cost>

LOOP AT ITAB.

<GET FIRST 10 RECORDS>

ENDLOOP.

Hope this helps You can browse in ABAP forum for more details

Abhinav

Former Member
0 Kudos

Dear SDN Users,

This is how I resolved the issue.

1) Requested ABAPer to provide me sorted data. The data has been sorted in descending order of actual_cost.

2) After that I used following code. This resolved the issue.

	if (wdContext.nodeItab_Final1().size()>10){
	IPublicCostcnt.IGraphDataElement categoryElement;
		for (int i = 0; i < 10; i++) {
		categoryElement = wdContext.createGraphDataElement();
		categoryElement.setCostElement(""+ wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getDescription());
		categoryElement.setActualCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getActual_Cost().toString());
		categoryElement.setPlannedCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getPlan_Cost().toString());
		wdContext.nodeGraphData().addElement(categoryElement);
	}
	}
    
	if (wdContext.nodeItab_Final1().size()<=10){
	if (wdContext.nodeItab_Final1().size()>0){
	IPublicCostcnt.IGraphDataElement categoryElement;
		for (int i = 0; i < wdContext.nodeItab_Final1().size(); i++) {
		categoryElement = wdContext.createGraphDataElement();
		categoryElement.setCostElement(""+ wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getDescription());
		categoryElement.setActualCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getActual_Cost().toString());
		categoryElement.setPlannedCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getPlan_Cost().toString());
		wdContext.nodeGraphData().addElement(categoryElement);
	}
	}}

Regards,

Gary

Answers (0)