Login
Register

Home

Trainings

Fusion Blog

EBS Blog

Authors

Contact Us

Senthilkumar Shanmugam
  • Register

Oracle Gold Partners, our very popular training packages, training schedule is listed here
Designed by Five Star Rated Oracle Press Authors & Oracle ACE's.

webinar new Click here to raise Support Ticket. Get reply within 48 hours.

Search Courses

×

Warning

JUser: :_load: Unable to load user with ID: 881

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active
 

Handling LOVs in Mobile ApplicationsImage

In this article, we will see how to handle LOV bean in MWA.
In this example, we will create an LOV which displays the list of users from fnd_user ptable starting with ‘S’.
You can use these code snippets and make changes to the Hello world Sample Program which was published earlier and test it out.
The following are the steps to be performed.


Step 1:

In CustomTestPage.java, declare the variable for LOV, set properties like prompt, ID, Listener and add a handler method to the LOV

LOVFieldBean mUserNames;
mUserNames = new LOVFieldBean();
mUserNames.setName("TEST.LOV");
mUserNames.setPrompt("User LOV");

addFieldBean(mUserNames);
mUserNames.addListener(fieldListener);

public LOVFieldBean getUserLOV()
{
return mUserNames;
}


Please note that the handler method will be used in Listener Class to get handle of the bean.


Step 2:

Getting the List of Values for LOV. As we know LOV is nothing but a result set of a query. This result set can be attached to the LOV by 2 ways.

  1. By SQL Query.

  2. By a PLSQL package which executes the query and gives the result set as OUT parameter (via REF CURSOR)


In this example, we are going to use the following PLSQL package. This package basically gets all the users from FND_USER starting with the alphabet provided as a input parameter. The Code is as follows:

create or replace package XXX_MWA_LOV_TEST AS
    TYPE t_ref_csr IS REF CURSOR;
    PROCEDURE XXX_USERS_LOV (x_users OUT NOCOPY t_ref_csr
    ,p_user_name IN VARCHAR2);
end XXX_MWA_LOV_TEST;



create or replace package body XXX_MWA_LOV_TEST AS
PROCEDURE XXX_USERS_LOV (x_users OUT NOCOPY t_ref_csr
,p_user_name IN VARCHAR2
)

IS
BEGIN
OPEN x_users FOR
select user_id,user_name,description
from fnd_user
where user_name like p_user_name;

EXCEPTION
WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('ERROR IN USER LOV '|| SQLERRM);
END XXX_USERS_LOV;

end XXX_MWA_LOV_TEST;



Step 3:

In CustomTestListener.java, as we know there are two methods “fieldEntered” and “fieldExited”.

In FieldEntered, we have to execute PLSQL procedure and get the results and display it to user.

In FieldExited, we have to get the values selected by the user in the LOV.


public void fieldEntered(MWAEvent mwaevent)
        throws AbortHandlerException, InterruptedHandlerException, DefaultOnlyHandlerException {

ses = mwaevent.getSession();

String s = UtilFns.fieldEnterSource(ses);


if (s.equals("TEST.LOV")) {

userLOVEntered(mwaevent);

return;


}

}




public void fieldExited(MWAEvent mwaevent) throws AbortHandlerException,InterruptedHandlerException, DefaultOnlyHandlerException {

ses = mwaevent.getSession();

String s = UtilFns.fieldEnterSource(ses);

if (s.equals("TEST.LOV")) {

userLOVExited(mwaevent);

return;


}

}






In the above code, we call the custom methods userLOVEntered() and userLOVExited() to handle the events.


public void userLOVEntered(MWAEvent mwaevent) throws AbortHandlerException, InterruptedHandlerException, DefaultOnlyHandlerException

{


UtilFns.trace("User LOV Entered");

try{

Session session = mwaevent.getSession();

//set the package and procedure name to be called

pg.getUserLOV().setlovStatement("XXX_MWA_LOV_TEST.XXX_USERS_LOV");


//Parameter Type, parameters and Prompts of the field in LOV

// C – cursor, AS/S – String, N – Numeric, AN - AlphaNumeric


String paramType[] = {"C", "AS" };

String parameters[] = {" ", "S%" };


//Set the prompts and visible fields for LOV result table

//We don’t want user id to be displayed in result table. So we //are setting it to false.

//These fields directly map to the selected columns in SELECT //statement of REF CURSOR

String prompts[] = { "USER_ID", "User Name", "Description" };

boolean flag[] = { false,true,true };


//Associate the properties to the LOV bean

//Properties for SQL Query

pg.getUserLOV().setInputParameterTypes(paramType);

pg.getUserLOV().setInputParameters(parameters);


//Properties for LOV Result Table

pg.getUserLOV().setSubfieldPrompts(prompts);

pg.getUserLOV().setSubfieldDisplays(flag);


}

catch(Exception e){

UtilFns.error("Error in calling LOV");

}

}




In the above code, we have pointed out the PLSQL procedure to be executed for List of Values and also we set the parameters, parameter types. Also, we mentioned the prompts for LOV results table and also what are all the visible fields available to user.


In this example, we have hardcoded the input parameter to “S%” so that the result set will have all users from FND_USER starting with “S”. In real time scenario, we can link this parameter dynamically to any variables.


public void userLOVExited(MWAEvent mwaevent) throws AbortHandlerException, InterruptedHandlerException, DefaultOnlyHandlerException

{

UtilFns.trace("User LOV Exited");

try{


//Get the selected row in a vector and print it


Vector v = pg.getUserLOV().getSelectedValues();

if(v!=null) {

UtilFns.trace("first " + v.elementAt(0).toString());

UtilFns.trace("second " + v.elementAt(1).toString());

UtilFns.trace("third " + v.elementAt(2).toString());

}


}

catch(Exception e){

UtilFns.error("Error in processing LOV");

}

}




In the above method, as soon as the user selects the values, we get the selected values in a Vector.

After that we print the user_id, user name and description of the selected user in the Log.

See the following screen shots for further understanding.


Fig 1: Mobile page with Text Bean and LOV


Image

Fig 2: When the user clicks LOV, result page is displayed in a different window.

Image



Fig 3: After the value is selected, the LOV field is populated with the selected value.

Image







Values printed in Log file:


[Fri Feb 15 14:50:11 CET 2008] (Thread-15) User LOV Entered

[Fri Feb 15 14:51:39 CET 2008] (Thread-15) CustomFListener:fieldExited:fldName = TEST.LOV

[Fri Feb 15 14:51:39 CET 2008] (Thread-15) User LOV Exited

[Fri Feb 15 14:51:39 CET 2008] (Thread-15) first 1589

[Fri Feb 15 14:51:39 CET 2008] (Thread-15) second SENTHILK

[Fri Feb 15 14:51:39 CET 2008] (Thread-15) third Shanmugam, SenthilKumar





The above error log is done by the code written in userLOVExited() method.




In this example, we have just printed the selected value in the Log file. In real time scenario, we can use this selected value to be the criteria for the next field or it will be used to do some validations etc.


For MSCA/OAF consulting kindly contact us at This email address is being protected from spambots. You need JavaScript enabled to view it.



Comments   

0 #1 Ritesh M 2008-02-21 04:35
Hi Senthil,

I'm working on Oracle Apps 11i manf modules along with MSCA. I've created 4 custom MSCA forms. One of the problem that i experienced is the Field width....genera lly if you create a MSCA screen and include two fields 1) TextField 2) LOVBean the width of both of fields varies...you can enter the larger value but lovfield dispalys lesser width than TextField. I raised an TAR too..but couldn't find any solution for this. Is there any way to control the LOV filed Size.

Regards,
Ritesh
Quote
0 #2 Richa 2008-02-21 08:17
We are migrating customized AP Check print report from RDF in 11.5.7 to R12 XML Publisher report. We have 18 reports to convert.
I have followed
http://www.google.com/search?q=site:apps2fusion.com+xml-publisher-concurrent-program-xmlp-2

link to do the same.
I am facing the follwoing issue.
I am getting empty output after did all the changes as per the ablove link
But only modification i did is, as in R12 we ahve separate top for Payments. But we dont have Report folder under IBY_TOP. So I am keeping my RDF report in AP_TOP and I have created executable under ap_top then Program under Payment_top. Remaining are same.
But I am not getting the output.

Pl. let me know, what I did is same or how to proceed
this is very urgent. so expecting the reply at the earliest
Quote
0 #3 Rohini 2008-02-21 08:35
Hi Ritesh,

If you want to restrict the size of input text, you can use oracle.apps.mwa .beans.Inputabl eFieldBean.setL ength(int) method.

However, in Mobile applications, the display unit will be too small and I really dont know how the length of a field would really be a concern.

Can you please brief your exact requirement?

T hanks and Regards,
Senthi l
Quote
0 #4 Ritesh M 2008-02-22 05:57
Hi Senthil,

Actua lly if you will see the LOV display unit on Standard MSCA forms the unit size is same as of text field...but if you create any custom LOV its dispaly unit size is small as compare to TEXTFIELDBEAN. I tried my level best..but couldn't find any property....... if you know pls share ?

Regards,
Rit esh
Quote
0 #5 brad 2008-03-17 02:08
Hi Senthil,

Quick question. If I wanted to populate the LOV based on entering a partial value in the user field, how do I represent that partial value in the user field in the parameter array rather than the hard coded "S%"??

Thanks,
Brad
Quote
0 #6 Rohini 2008-03-17 08:54
Hi Brad,

You can do that very well. You can get the value entered in any field and pass that value as a parameter to the method which is calling the PLSQL procedure. You can substitute that parameter value instead of hardcoded 'S%'.

Thanks,
Senthil
Quote
0 #7 Brad 2008-03-17 14:39
Hi Senthil,

Can you show me some example code? I have been trying to figure out how to pass the partial value and can't seem to figure it out. I am a pl/sql programmer and have just rudimentary java skills. I've been looking at the LOV classes for examples, but I'm still puzzled.

Thanks!
Brad
Quote
0 #8 Rohini 2008-03-23 16:34
Hi Brad,

Here is an example of LOv which is initialized in PageListener Java Class which refers to some variables in Page Java Class (pg.x_prod_sub_ inv,pg.x_item_i d)

Hope this helps.



prote cted void locatorEntered( MWAEvent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{

pg.getLocatorL OV().setlovStat ement("INV_UI_I TEM_SUB_LOC_LOV S.GET_LOC_LOV") ;
String as[] = {
"C", "N", "AS", "N", "AN", "S", "N", "S"
};
boolean aflag[] = {
false, true, true
};

if(mlo catorPrompt.equ als(""))
try
{
mlocatorPrompt = MWALib.getAKPro mpt(mwaevent.ge tSession(), "oracle.apps.in v.utilities.Inv ResourceTable", "INV_LOCATOR_PR OMPT");
mdescPrompt = MWALib.getAKPro mpt(mwaevent.ge tSession(),"oracle.apps.in v.utilities.Inv ResourceTable", "INV_DESCRIPTIO N_PROMPT");
}
catch(SQLExcept ion sqlexception)
{
UtilFns.error(" Error initialising the lov propmts for Locator LOV ", sqlexception);
}
String as1[] = { "a", mlocatorPrompt, mdescPrompt};
pg.getLocatorLO V().setSubfield Prompts(as1);
pg.getLocatorLO V().setSubfield Displays(aflag) ;
pg.getLocatorLO V().setInputPar ameterTypes(as) ;
pg.getLocatorLO V().setInputPar ameters(new String[]
{
" ",
"ORGID",
pg.x_prod_sub_i nv,
"0",
new Long(pg.x_item_ id).toString(),
"xxx.oracle.app s.xxowmm.mobile .rcv.server.Rec eiptLPNPage.RCV .TOLOC",
"TXNTYPEID",
"ISWMSINSTALLED " }
);
pg.getLoca torLOV().setVal idateFromLOV(tr ue);
}



Thank s,
Senthil
Quote
0 #9 Himanshu Joshi 2008-05-06 09:09
Hi

I am very new to MSCA framework.

I am getting an error while populating LOV.On the first hit, I am getting the error below:

(Thread -13) MWA_LOV_ROW_CON S_FAIL: Unsuccessful row construction
ja va.lang.NullPoi nterException
at oracle.apps.mwa .container.LOVR untimePageHandl er.pageEntered( LOVRuntimePageH andler.java:89)
at oracle.apps.mwa .container.Stat eMachine.callLi steners(StateMa chine.java:1666 )
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:1067)
at oracle.apps.mwa .presentation.t elnet.Presentat ionManager.hand le(Presentation Manager.java:70 2)
at oracle.apps.mwa .presentation.t elnet.ProtocolH andler.run(Prot ocolHandler.jav a:820)

But when I go to next LOV and traverse back to first one, It gives me the LOV.

Please help me in resolving the issue.
Quote
0 #10 Rohini 2008-05-06 09:17
Hi Himanshu,

Unsu ccesful row construction occurs when the REF CURSOR in the PLSQL was not able to find any record to return to the LOV in MWA framework ..

What I guess is, when u hit the LOV for the first time, some parameters are passed null but second time when u call the PLSQL API for LOV, the correct values are passed.

Have a look into the log files to see what parameters are passed each time ..... Also cross check for data type mismatch for the parameters.

Th anks and Regards,
Senthi l
Quote
0 #11 Himanshu Joshi 2008-06-22 23:54
Hi
Currently I am working on MSCA Customization.T he requirement is to display on/off a field on custom mobile screen.
But the issue is when this field is displayed conditionally, the curosr/control does not appear with the same field.It gous to next button.
I have Used method : session.setNext FieldName("Fiel dName");

but its not working.

will appreciate your help on this .
Quote
0 #12 nisha 2008-07-03 10:18
Hi Senthil,

In my page I have an Lov, for which I have set true for ValidateFromLOV and required .

First time the LOV is invoked and I'm selecting a value and that is being set to the field. The control comes to the next field. When I traverse back to LOV field which already have a valid value and move to some other field, the LOV is invoked again.

This should not happen as the field already has a valid value.

Followi ng is the code

LOVFieldBean testLOV = new LOVFieldBean();
String subFieldPrompts [] = { "abc", "efg", "hij", "klm" };
boolean subFieldDisplay s[] = { true, false, false, false };
testLOV.setl ovStatement(que ry);
testLOV.se tSubfieldPrompt s(subFieldPromp ts);
testLOV.se tSubfieldDispla ys(subFieldDisp lays);
testLOV. setValidateFrom LOV(true);
test LOV.setRequired (true);
String as[] = {"N", "S", "AN"};
testLOV. setInputParamet erTypes(as);

T he values are being fetched properly.

Plea se help in solving this issue. Am I missing any thing?

Thanks in Advance.

Regar ds,
Nisha
Quote
0 #13 Rohini 2008-07-03 10:36
Hi Nisha,

The API setValidateFrom LOV(true) is to specify if user has to always go through LOV page. You have to make setValidateFrom LOV(false) to fix ur proble.

Thanks and Regards,
Senthi l
Quote
0 #14 nisha 2008-07-04 00:10
Thanks Senthil.

What you say is true. I tried and checked that earlier itself. But that will not validate the value at all.

But if you see the standard LOVs available like the DeliveryLOV or AccountLOV in the standard page, if you type any invalid value, that will not be set and you will not be able to come out of the field.

I checked the DeliveryLOV class, there also they have set true for required and validateFromLOV .

Once the valid value is set, the LOV is not invoked every time to exit out of the field.

I would like to have the similar effect. Kindly help.

Thanks & Regards
Nisha
Quote
0 #15 Ritesh M 2008-07-16 23:38
Nisha,

1) let the validatefromLOV set as FALSE
2) Create a procedure
-- Read the Value/selected to entered by user
-- pass that value to database and verify for its correctness...
-- if valid then use setNextFieldNam e(FN) to set the next field......
-- if invalid then display an error message to the user and place the control back to the current field only..

hope this will help

Regards,
Ritesh
Quote
0 #16 Ritesh M 2008-07-16 23:39
forgot to mention that you need to call this procedure on fieldexit of LOV field....

Than ks,
Ritesh
Quote
0 #17 Pramod 2008-07-17 23:02
Hi Senthil,
I created method relLOVEntered which populates the LOV and I am calling this method in fieldEntered method. LOV works fine and brings all values when I press CTRL L. Now I am trying to bring values based on the value entered in the field. When I try to get user entered value using field.getValue( ), it always returns null as field enreted will not have any value. How can I read this entered value and pass it to LOV query.
Regards,
Pramo d
Quote
0 #18 Pramod 2008-07-20 20:51
Ritesh,
Thanks. I will try your solution.
Quote
0 #19 Srilakshmi B V 2008-08-21 03:28
Hi Senthil,

We have a requirement to hide an LOV field defined in the WIP Issue transaction page. We have created an extension and we are trying the below code - super.projectFi eld.sethidden(t rue) in the page entered event. However we are getting unexpected error and the control goes back to the login page. Can you please advice on this? Are we missing something?
Quote
0 #20 Rohini 2008-08-21 03:36
Hi Srilakshmi,

Ca n you please tell us the error?

You can give a try with the following:

1) Call super()
2) Call projectField.se thidden(true)

in your custom class.

Let me know your findings.

You can also open a new thread in our forum http://apps2fusion.com/forums/viewtopic.php?f=145&t=137

Thanks and Regards,
Senthi l
Quote
0 #21 Srilakshmi B V 2008-08-21 07:32
Hi Senthil,

Thank s for your inputs. Below is the code. It prints the message up to - "Entered into ISSUE_SN1". After this it fails and returns to login page. It doenst log any other details. It is failing at projectField.se tHidden(true) statement. Can you please help?

public class SerialMaterialP age_2 extends oracle.apps.wip .wma.page.Seria lMaterialPage
i mplements MWAPageListener ,MWAFieldListen er
{
public SerialMaterialP age_2(Session session)
{
supe r(session);
Uti lFns.error("ses sion2");
addLis tener(this);
UtilFns.error(" addListener2");
}
public void pageEntered(MWA Event mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
super.pageEnter ed(mwaevent);
UtilFns.error(" test pageEntered2");
String s = getOrgCode(sess ion);
String s1 = (String)mwaeven t.getSession(). getValue("TXN.T XNTYPE");
UtilFns.error(s 1);
if(s1.equal s("ISSUE_SN"))
{
UtilFns.error ("Entered into ISSUE_SN1");
projectField.se tHidden(true);
UtilFns.error(" out");
}
}
public void pageExited(MWAE vent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHandlerException
{
super.pageExited(mwaevent);
UtilFns.error(" test pageExited");
}
public void fieldEntered(MW AEvent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHandlerException
{
//super.fieldEntered(mwaevent);
UtilFns.error(" test fieldEntered");
}
public void fieldExited(MWA Event mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
//super.fieldEx ited(mwaevent);
UtilFns.error(" test fieldExited");
}
}


Thanks,
S ri
Quote
0 #22 Rohini 2008-08-21 07:48
Hi SriLakshmi,

Fe w Questions:

1) Why is the inheritance done in the following manner
"public class SerialMaterialP age_2 extends oracle.apps.wip .wma.page.Seria lMaterialPage"

2) Purpose of methods fieldEntered() and fieldExited() in page java class?

3)If projectField is a variable in super class, you cannot access it directly if it is "protected". You have to use the getter methods to access the same.

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #23 Srilakshmi B V 2008-08-21 10:40
Hi,

My answers to your questions are below -
1) We tried without the package public class SerialMaterialP age_2 extends SerialMaterialP age. However we were not able to navigate to the customized page eventhough we were importing the package.
2) We just wanted to check whether its getting triggered and messages were getting logged. However we were not able to see any of the messages from that method.
3) Can you please give me a sample code for getter methods usage in such a scenario?

Than ks for your help!
Sri
Quote
0 #24 Rohini 2008-08-21 11:16
Hi Sri,

1) Follow the steps in my article to extend a standard page

http://apps2fusion.com/at/ss/43-ss/293-extend-a-standard-oracle-mscamwa-page

2)ok fine ... kindly remove the same ..

3) You can refer to the sample code in the above article which uses getter methods:

eg).. . getDockDoorFld( ),getLpnFld()


Please feel free to post any issues.

Thanks and Regards,
Senthi l
Quote
0 #25 Srilakshmi B V 2008-08-22 02:05
Hi Senthil,

First of all, thanks for the help you are extending to us.

I checked the seeded source of ShipLPNPage and saw that there are getLpnFld and getDockDoorFld public methods defined in the page class which you are using in the extended class to access the fields. However the seeded class we are extending (SerialMaterial Page) doesnt have any such methods defined for accessing the fields. What should be our approach in that case?

Thanks,
Sri
Quote
0 #26 Rohini 2008-08-22 02:48
Hi Sri,

You are provided with following options now:

1) If you are running 11.5.10 / 12.1 you can use wms personalization framework to do the same.(see metalink note 469339.1)
2) Log an SR with Oracle to provide the getter methods to access the protected method in seeded java class. (they have to support it ..but it may take some time ..)
3) Develop a completely new page which is similiar to the std page (this should be the worst case .. if nothing can help you)

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #27 Srilakshmi B V 2008-08-22 08:46
Hi Senthil,

Actua lly further analyzing the seeded sources, we found that there was getProjFld() method in one of the super classes. Hence we used this in the custom code as below-

UtilFns .error("Entered into ISSUE_SN2");
ge tProjFld().setH idden(true);
Ut ilFns.error("ou t");

But the project field is still getting displayed. However when we verify the log, we can see "Entered into ISSUE_SN2" and "out" messages. That means it has successfully parsed getProjFld().se tHidden(true) code as well. Any inputs?

Thanks ,
Sri
Quote
0 #28 Rohini 2008-08-22 09:08
Hi Sri,

where do you call super()? (Before or After this piece of code?)

Also, which version of Oracle Apps are you using (11.5.10 or R12)?

I suggest you to use personalization framework whereever possible.

Than ks and Regards,
Senthi l
Quote
0 #29 Srilakshmi B V 2008-08-22 10:42
Hi Senthil,

We are on 11.5.9 version. Hence personalization is not available for us. And we are calling super() first and then calling the piece of code for hiding.

Thanks ,
Sri
Quote
0 #30 Rohini 2008-08-22 10:48
Hi Sri,

Can you try some other APIs like removeBean() on the LOV? (just for testing) ..

Also you can test perform testing for some other fields in the page? If the piece of code is executed, then it should work for sure!!

Thanks and Regards,
Senthi l
Quote
0 #31 Malar Selvam 2008-10-28 04:21
Hi,

I need to develop some Custom MWA Pages .

I am new to Oracle Mobile Web Applications. I deployed the Helloworld Application successfully and can access the Page. But the problem is the Text Field is coming as READ ONLY (NOT EDITABLE).

Also, I tried to create LOV Page, there also i am facing the following problem:

1) Instead of LOV, i am getting TextBox only.
2) The TextBox also NotEditable.
3) Also the Text Box is coming with the value >[7m[0m

Please help me out.

Regards.

A.Malar Selvam.
Quote
0 #32 PrathapReddy K 2008-10-29 09:05
Hi,

I need to develop some Custom MWA Pages .

I am new to Oracle Mobile Web Applications. I deployed the Helloworld Application successfully and can access the Page. But the problem is the Text Field is coming as READ ONLY (NOT EDITABLE).

Also, I tried to create LOV Page, there also i am facing the following problem:

1) Instead of LOV, i am getting TextBox only.
2) The TextBox also NotEditable.
3) Also the Text Box is coming with the value >[7m[0m

Please help me out.

Regards.
Quote
0 #33 Rohini 2008-10-29 09:12
Hi,

Can you paste your code?

You can also open a new thread in our forum (http://apps2fusion.com/forums/viewforum.php?f=145) where you have options to upload scrrenshots/fil es

Thanks and Regards,
Senthil
Quote
0 #34 PrathapReddy K 2008-10-29 09:23
Appl. Init Class
--------- ------------
pa ckage xxx.custom.serv er;

import oracle.apps.fnd .common.Version Info;
import oracle.apps.mwa .beans.MenuItem Bean;
import oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.MWA AppListener;
im port oracle.apps.mwa .eventmodel.MWA Event;

public class TestAppLpn extends MenuItemBean
implements MWAAppListener
{
public static final String RCS_ID = "$Header: TestAppLpn.java 120.0 2005/05/25 12:36:20 appldev Malar $";
public static final boolean RCS_ID_RECORDED = VersionInfo.rec ordClassVersion ("$Header: TestAppLpn.java 120.0 2005/05/25 12:36:20 appldev Malar $", "xxx.custom.ser ver");

public TestAppLpn()
{
this.m_firstPag eName = "xxx.custom.ser ver.TestFnLpn";
addListener(thi s);
setMenuConfirmM essage("Go to menu");
}

public void appEntered(MWAE vent paramMWAEvent)
{
Session localSession = paramMWAEvent.g etSession();

if (localSession.g etObject("ORGID ") == null)
{
localSession.pu tObject("MWA_FI RSTPAGENAME", this.m_firstPag eName);

this.m_firstPag eName = "oracle.apps.mw a.beans.Organiz ationPageBean";
}
}

public void appExited(MWAEv ent paramMWAEvent)
{
}
}

---------- ---------
Quote
0 #35 PrathapReddy K 2008-10-29 09:24
Page Init Class
--------- -----------

pa ckage xxx.custom.serv er;

import oracle.apps.fnd .common.Version Info;
import oracle.apps.mwa .beans.ButtonFi eldBean;
import oracle.apps.mwa .beans.LOVField Bean;
import oracle.apps.mwa .beans.PageBean ;
import oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.Abo rtHandlerExcept ion;
import oracle.apps.mwa .eventmodel.MWA Event;
import oracle.apps.mwa .eventmodel.MWA PageListener;

public class TestFnLpn extends PageBean
implements MWAPageListener
{
public static final String RCS_ID = "$Header: TestFnLpn.java 120.0 2005/05/25 12:53:41 appldev Malar $";
public static final boolean RCS_ID_RECORDED = VersionInfo.rec ordClassVersion ("$Header: TestFnLpn.java 120.0 2005/05/25 12:53:41 appldev Malar $", "xxx.custom.ser ver");

public TestFnLpn(Sessi on paramSession)
{
//setPrompt("Ce rtification Page 3 (Testing long page title, Testing long page title, Testing long page title)");
addListener(thi s);
this.setPrompt( "Drop Loaded LPN - 29-10-2008");
TestLisLpn localCertificat ionFieldHandler = new TestLisLpn();

LOVFieldBean localLOVFieldBe an = new LOVFieldBean();
localLOVFieldBe an.setName("CurTaskLov");
localLOVFieldBe an.setPrompt("LPN : ");
String[] arrayOfString1 = { "C", "N", "N", "S" };
String[] arrayOfString2 ={" ", "ORGID", "EMPID", "xxx.custom.ser ver.TestLpnFn.C urTaskLov", "TXN.PAGE_TYPE" };
localLOVFieldBe an.setInputParameterTypes(arrayOfString1);
localLOVFieldBe an.setInputParameters(arrayOfString2);
localLOVFieldBe an.setValidateFromLOV(true);
localLOVFieldBe an.setRequired(false);
localLOVFieldBe an.setEditable(true);
localLOVFieldBe an.setlovStatement("WMS_Task_Dispatch_LOV.GET_TASKS_LOV");
localLOVFieldBe an.setSubfieldNames(new String[] { "status", "lpn", "task_type", "task_mo_status ", "to_sub", "to_loc", "item", "qty", "uom_code", "lpn_id", "task_id", "lpn_context", "is_bulk_pick", "content_lpn" });
localLOVFieldBe an.setSubfieldPrompts(new String[] { "S", "LPN", "Task_Type", "Status", "To_Sub", "To_Loc", "Item", "Qty", "UOM", "LPN_ID", "Task_ID", "LPN_Context", "Bulk", "Content_LPN" });
localLOVFieldBe an.setSubfieldDisplays(new boolean[] { true, true, true, true, true, true, true, true, true, false, false, false, false, false });
addFieldBean(localLOVFieldBe an);

ButtonFieldBean localButtonFiel dBean1 = new ButtonFieldBean ();
localButtonFiel dBean1.setName("drop");
localButtonFiel dBean1.setPrompt("Drop");
addFieldBean(localButtonFiel dBean1);

localButtonFiel dBean1.addListener(localCertificat ionFieldHandler);
localLOVFieldBe an.addListener(localCertificat ionFieldHandler);
}

public void pageEntered(MWA Event paramMWAEvent)
{
}

public void pageExited(MWAE vent paramMWAEvent)
throws AbortHandlerExc eption
{
}

public void specialKeyPress ed(MWAEvent paramMWAEvent)
{
}
}
----------- --------
Quote
0 #36 PrathapReddy K 2008-10-29 09:24
Listener Claass
-------- --------------

package xxx.custom.serv er;

import oracle.apps.fnd .common.Version Info;
import oracle.apps.mwa .beans.FieldBea n;
import oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.Abo rtHandlerExcept ion;
import oracle.apps.mwa .eventmodel.MWA Event;
import oracle.apps.mwa .eventmodel.MWA FieldListener;

public class TestLisLpn implements MWAFieldListene r
{
public static final String RCS_ID = "$Header: TestLisLpn.java 120.0 2008/10/28 04:11:19 appldev Malar $";
public static final boolean RCS_ID_RECORDED = VersionInfo.rec ordClassVersion ("$Header: TestLisLpn.java 120.0 2008/10/28 04:11:19 appldev Malar $", "xxx.custom.ser ver");

public void fieldEntered(MW AEvent paramMWAEvent)
{
Session localTelnetSess ion = paramMWAEvent.g etSession();
FieldBean localFieldBean = localTelnetSess ion.getCurrentPage().getCurrentFieldBean();

if (localFieldBean .getName().equa ls("drop"))
localTelnetSess ion.setStatusMessage("Drop is Working");
}

public void fieldExited(MWA Event paramMWAEvent) throws AbortHandlerExc eption
{
}

}

----------- ----------

The above are the classes what i wrote for LOV but it is simply returning read only TextField with the value ">[7m[0m"

Even I tried a sample with Simple TextBox. That also giving the same problem.


Plea se help me out.


Regards.
Prathap Reddy
Quote
0 #37 Malar Selvam 2008-10-29 09:46
Please help us to come out of the above problem.

Regar ds.

Malar.
Quote
0 #38 Rohini 2008-10-29 10:40
Hi,

I will have a look at your code sometime later.

Meawhil e, I have uploaded code for building a custom page in mobile applications in

http://apps2fusion.com/forums/viewtopic.php?f=145&t=489

Can you please download it and give a try?

Thanks and Regards,
Senthi l
Quote
0 #39 Malar Selvam 2008-10-30 03:46
Hi Senthil,

Thank you very much for your support.

We have gone through your sample code and deployed it. But Whenever we access the page, it is simply returning to Change Responsibility & Change Organization Menu Page.

And again we tried to convert the page whatever you have given as per our requirement, this time the page is displaying. But the LOV is not coming, it is raising error - "Unsuccessfull row construction". From the Error, I guess some parameters are going as null. But i don't know how to track the Parameter Values. Also, I don't know where the Error Log is Stored and how to access it.

public void userLOVEntered( MWAEvent mwaevent) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {

UtilFns.trace(" User LOV Entered");

try {

Session session = mwaevent.getSes sion();
//set the package and procedure name to be called
pg.getUserLOV() .setlovStatemen t("WMS_Task_Dis patch_LOV.GET_T ASKS_LOV");

UtilFns.trace(" Value of pg.getUserLOV() " + pg.getUserLOV() );

//Parameter Type, parameters and Prompts of the field in LOV

String paramType[] = { "C", "N", "N", "S" };
String parameters[] = {" ", "ORGID", "EMPID", "xxx.custom.lpn .lovtest.Custom TestPage.TEST.L OV", "TXN.PAGE_TYPE" };
String prompts[] = { "S", "LPN", "Task_Type", "Status", "To_Sub", "To_Loc", "Item", "Qty", "UOM", "LPN_ID", "Task_ID", "LPN_Context", "Bulk", "Content_LPN" };

boolean flag[] = { true, true, true, true, true, true, true, true, true, false, false, false, false, false };

pg.getUserLOV() .setInputParame terTypes(paramT ype);
pg.getUserLOV() .setInputParame ters(parameters );
pg.getUserLOV() .setSubfieldPro mpts(prompts);
pg.getUserLOV() .setSubfieldDis plays(flag);


} catch (Exception e) {
UtilFns.error(" Error in calling LOV");
}
}


The above is the Code, given by you which has been modified as per our requirement.

Please help us to track what may be the cause?

Also, Kindly help us, how to track the parameter values, how to access the Error Log file and where it will be placed.

Regard s.

Malar.
Quote
0 #40 Rohini 2008-10-30 05:16
Hi,

1) Please go through my article http://apps2fusion.com/at/ss/225-mwa-setup-testing-error-logging-and-debugging to get log files.

2) "Unsuccessfull row construction" occurs when there is a problem parameters passed to pl sql.

I had a close look at your code. I can see a mismatch in parameter(5 fields) and parameter type(4 fields):

Strin g paramType[] = { "C", "N", "N", "S" };
String parameters[] = {" ", "ORGID", "EMPID", "xxx.custom.lpn .lovtest.Custom TestPage.TEST.L OV", "TXN.PAGE_TYPE" };

Can you please check?

Thanks and Regards,
Senthi l
Quote
0 #41 Malar Selvam 2008-10-30 08:18
Hi Senthil,

Thank you very much for your valuable comment. What u said is exactly right. The problem is difference in Number of Parameter Type & Number of Parameters only.

Thanks a lot.

REgards.

Malar.
Quote
0 #42 Rohini 2008-10-30 08:20
My Pleasure.

Chee rs,
Senthil
Quote
0 #43 Malar Selvam 2008-11-11 06:41
Hi Senthil,

I am trying to load one lov in my mobile web application custom page. It is raising error - Unsuccessful row construction.

I tracked the problem, whenever we assing the LOV (pg.getUserLOV( ).setlovStateme nt("XXX_MWA_LOV _TEST.XXX_USERS _LOV")) to the LOV Bean it is raising the error.

Please help me out how to assign the Oracle Stored Procedure in LOV.

I paste below the code.
--------- --------------- --------------- --------------- ------------
try {

Session session = mwaevent.getSes sion();
//set the package and procedure name to be called
pg.getUserLOV() .setlovStatemen t("XXX_MWA_LOV_ TEST.XXX_USERS_ LOV");
UtilFns.error(" LOV Assigned");

UtilFns.trace(" Value of pg.getUserLOV() " + pg.getUserLOV() );

//Parameter Type, parameters and Prompts of the field in LOV

String paramType[] = { "C", "AS" };
String parameters[] = { " ", "S%" };
String prompts[] = { "USER_ID", "User Name", "Description" };

boolean flag[] = { false, true, true };
UtilFns.error(" Parameter Types & Parameters Defined");

pg.getUserLOV() .setInputParame terTypes(paramT ype);
pg.getUserLOV() .setInputParame ters(parameters );
pg.getUserLOV() .setSubfieldPro mpts(prompts);
pg.getUserLOV() .setSubfieldDis plays(flag);
UtilFns.error(" Parameters & its types assigned");
} catch (Exception e) {
UtilFns.error(" Error in calling LOV");
}
------------- --------------- --------------- --------------- --------

pg.getUserLOV() .setlovStatemen t("XXX_MWA_LOV_ TEST.XXX_USERS_ LOV"); //Here it is raising the error.

I paste below the Oracle Stored Procedure:

/* Formatted on 2008/11/11 15:22 (Formatter Plus v4.8.8) */
CREATE OR REPLACE PACKAGE APPS.XXX_MWA_LO V_TEST
AS
TYPE T_REF_CSR IS REF CURSOR;

PROCEDURE XXX_USERS_LOV (
X_USERS OUT NOCOPY T_REF_CSR,
P_USER_NAME IN VARCHAR2
);
END XXX_MWA_LOV_TES T;
/

CREATE OR REPLACE PACKAGE BODY APPS.XXX_MWA_LO V_TEST
AS
PROCEDURE XXX_USERS_LOV (
X_USERS OUT NOCOPY T_REF_CSR,
P_USER_NAME IN VARCHAR2
)
IS
BEGIN
OPEN X_USERS FOR
SELECT USER_ID, USER_NAME, DESCRIPTION
FROM FND_USER
WHERE USER_NAME LIKE P_USER_NAME;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT _LINE ('ERROR IN USER LOV ' || SQLERRM);
END XXX_USERS_LOV;
END XXX_MWA_LOV_TES T;
/
---------- --------------- --------------- -----

If, i use direct query, the lov is working fine. But i should use Oracle Stored Procedure, since we are doing process and depending upon the result of process we are running specific query.


Regard s.

Malar.
Quote
0 #44 Rohini 2008-11-11 07:09
Hi Malar,

Can you please
1) Upload the port_no.INV.log , port_no.system. log files
2) Check for the status of PLSQL package (Check if it is invalid)
3) Bounce the MSCA port and give a try.

Unsuccess ful row construction usually occurs when the REF CURSOR is not able to get any rows.

Mean while you can try with the following approach:

Chan ge the parameter and parameter types as

String paramType[] = { "C" };
String parameters[] = { " " };

Make the PLSQL procedure to accept only one parameter as:

CREATE OR REPLACE PACKAGE BODY APPS.XXX_MWA_LO V_TEST
AS
PROCEDURE XXX_USERS_LOV (
X_USERS OUT NOCOPY T_REF_CSR
)

Change the query as:

SELECT USER_ID, USER_NAME, DESCRIPTION
FROM FND_USER
WHERE USER_NAME LIKE 'S%';

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #45 PrathapReddy K 2008-11-13 03:57
Hi Senthil I tried in the above way, still I am getting the same "Unsuccessful row construction" message

Please helpme out.I am placing the source below.

public void userLOVEntered( MWAEvent mwaevent) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {
try {

Session session = mwaevent.getSes sion();
//set the package and procedure name to be called
pg.getUserLOV() .setlovStatemen t("XXX_MWA_LOV_ TEST.XXX_USERS_ LOV");
UtilFns.error(" LOV Assigned");

UtilFns.trace(" Value of pg.getUserLOV() " + pg.getUserLOV() );

//Parameter Type, parameters and Prompts of the field in LOV

String paramType[] = {"C"};
String parameters[] = {" "};
String prompts[] = { "USER_ID", "User Name", "Description" };

boolean flag[] = { false, true, true };
UtilFns.error(" Parameter Types & Parameters Defined");

pg.getUserLOV() .setInputParame terTypes(paramT ype);
pg.getUserLOV() .setInputParame ters(parameters );
pg.getUserLOV() .setSubfieldPro mpts(prompts);
pg.getUserLOV() .setSubfieldDis plays(flag);
UtilFns.error(" Parameters & its types assigned");
} catch (Exception e) {
UtilFns.error(" Error in calling LOV");
}


}

public void userLOVExited(M WAEvent mwaevent) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {
UtilFns.trace(" User LOV Exited");
try {

Vector v = pg.getUserLOV() .getSelectedVal ues();
if (v != null) {
UtilFns.trace(" first " + v.elementAt(0). toString());
UtilFns.trace(" second " + v.elementAt(1). toString());
UtilFns.trace(" third " + v.elementAt(2). toString());
}
pg.getUserLOV().setValue(v.elementAt(1). toString());

} catch (Exception e) {
UtilFns.error(" Error in processing LOV");
}
}


Modified Package
------- --------------- -
/* Formatted on 2008/11/13 11:58 (Formatter Plus v4.8.8) */
CREATE OR REPLACE PACKAGE APPS.XXX_MWA_LO V_TEST
AS
TYPE T_REF_CSR IS REF CURSOR;

PROCEDURE XXX_USERS_LOV (
X_USERS OUT NOCOPY T_REF_CSR,
P_USER_NAME IN VARCHAR2
);
END XXX_MWA_LOV_TES T;
/

CREATE OR REPLACE PACKAGE BODY APPS.XXX_MWA_LO V_TEST
AS
PROCEDURE XXX_USERS_LOV (
X_USERS OUT NOCOPY T_REF_CSR,
P_USER_NAME IN VARCHAR2
)
IS
BEGIN
OPEN X_USERS FOR
SELECT USER_ID, USER_NAME, DESCRIPTION
FROM FND_USER
WHERE USER_NAME LIKE 'S%';
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT _LINE ('ERROR IN USER LOV ' || SQLERRM);
END XXX_USERS_LOV;
END XXX_MWA_LOV_TES T;
/


Thanks--
PrathapReddy
Quote
0 #46 Rohini 2008-11-13 04:22
Hi Pratap,

You PLSQL procedure is expecting 2 parameters and your java code is passing only one parameter. Please correct the same.

Thanks and Regards,
Senthi l
Quote
0 #47 PrathapReddy K 2008-11-13 05:56
Hi Senthil,
Thanks for the quick response.
I have modified the PLSQL procedure so that it has only one parameter that is the OUT parameter.
Even still I am facing the same old "Unsuccessful row construction" Problem.
Please help me out to overcome this issue.
below is the modified PLSQL package.

/* Formatted on 2008/11/13 11:58 (Formatter Plus v4.8.8) */
CREATE OR REPLACE PACKAGE APPS.XXX_MWA_LO V_TEST
AS
TYPE T_REF_CSR IS REF CURSOR;

PROCEDURE XXX_USERS_LOV (
X_USERS OUT NOCOPY T_REF_CSR

);
END XXX_MWA_LOV_TES T;
/

CREATE OR REPLACE PACKAGE BODY APPS.XXX_MWA_LO V_TEST
AS
PROCEDURE XXX_USERS_LOV (
X_USERS OUT NOCOPY T_REF_CSR

)
IS
BEGIN
OPEN X_USERS FOR
SELECT USER_ID, USER_NAME, DESCRIPTION
FROM FND_USER
WHERE USER_NAME LIKE 'S%';
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT _LINE ('ERROR IN USER LOV ' || SQLERRM);
END XXX_USERS_LOV;
END XXX_MWA_LOV_TES T;
/

Thank--
P rathapReddy
Quote
0 #48 Rohini 2008-11-13 05:59
Hi,

Can you upload your log files( port_no.system. log and port_no.inv.log ) and all the source files?

You can also open a new thread in our forum (http://apps2fusion.com/forums/viewforum.php?f=145) where you have options to upload scrrenshots/fil es

Thanks and Regards,
Senthil
Quote
0 #49 PrathapReddy K 2008-11-13 06:20
Hi Senthil,

I posted the source in the fourm, with the subject name "LOV Problem - Unsuccessful row construction".
Plese have a look.

Thanks--
Prathapreddy
Quote
0 #50 Mit 2009-03-03 12:35
Hi Senthil,
I am reating new custom MSCA form and creating LOV as per your method but having chanllange in passing the cusrrent field value to filer the LOV values beofre dispay for example you have use "S%", instead of which I want to pass the value user already entered in the firls but unable to refer the value.

I have tried (string)session .getvalue("") also tried passing "oracle.apps.in v....XxCustomPa ge.XX_FIELDNAME " but all are showing null in the debug/trace.

T he real code looks like

public void cchdrLOVEntered (MWAEvent mwaevent) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {
UtilFns.trace(" CC Header LOV Entered");
try {
ses = mwaevent.getSes sion();
pg = (XxCycleCountPa ge)ses.getCurre ntPage();
pg.getCcHeaderF ld().setName("X XAMW.CYC_CNT_HD R");
ses.setRefreshS creen(true);
pg.getCcHeaderF ld().setValidat eFromLOV(true);
//set the package and procedure name to be called
pg.getCcHeaderF ld().setlovStat ement("xxamw_mw a_cc_lovs_pkg.c c_header_lov");
//Parameter Type, parameters and Prompts of the field in LOV
// C – cursor, AS/S – String, N – Numeric, AN - AlphaNumeric
String paramType[] = { "C", "AS", "AS" };
//System.out.pr intln("pg.getCc HeaderFld().get Value().toStrin g() = " + pg.getCcHeaderF ld().getValue() .toString());
String parameters[] =
{ " ", sorg, (String)pg.getC cHeaderFld().ge tValue() }; // I need help here to pass the value
//Set the prompts and visible fields for LOV result table
//We don’t want user id to be displayed in result table. So we //are setting it to false.
//These fields directly map to the selected columns in SELECT //statement of REF CURSOR
String prompts[] = { "CC Header ID", "CC Hedaer Name" };
boolean flag[] = { false, true };
//Associate the properties to the LOV bean
//Properties for SQL Query
pg.getCcHeaderF ld().setInputPa rameterTypes(pa ramType);
pg.getCcHeaderF ld().setInputPa rameters(parame ters);
//Properties for LOV Result Table
pg.getCcHeaderF ld().setSubfiel dPrompts(prompt s);
pg.getCcHeaderF ld().setSubfiel dDisplays(flag) ;
} catch (Exception e) {
UtilFns.error(" Error in calling LOV");
}
}

Regards
Mith un
Quote
0 #51 Rohini 2009-03-03 12:51
Hi Mithun,

Can you please upload the log files (INV.log and system.log) into our forum?
Link: http://apps2fusion.com/forums/viewforum.php?f=143

Please note that log level is set to "trace".

Thank s and Regards,
Senthi l
Quote
0 #52 Siddhi Dwivedi 2009-07-21 09:24
Hi Senthil,

I am facing one issue related to LOV.
I have created an LOV.In which i am able to get the list of value and I can select any value from the LOV.
But instead of selecting value from LOV if I am entering value from keyboard and click on enter it opens LOV.

Please advise.

Thanks & Regards,
Siddhi
Quote
0 #53 Rohini 2009-07-21 09:31
Hi Siddhi,

You might have coded as

LOV.setVali dateFromLOV(tru e);

This is the intended behaviour of this API

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #54 Siddhi Dwivedi 2009-07-21 10:48
Hi Senthil,

Thank s for the prompt response.
I have used this API in my code.

So I have to set it as LOV.setValidate FromLOV(false);

or I should have to comment this in my code.

Thanks & Regards,
Siddhi
Quote
0 #55 Rohini 2009-07-21 10:51
Hi Siddhi,

If you dont want to validate the values entered by the user, you can just make it false.

Beware that if you turn it off, user can enter any values..... not only values listed in LOV.

Thanks and Regards,
Senthi l
Quote
0 #56 Siddhi Dwivedi 2009-07-21 11:03
Hi Senthil,

My requirement is to validate values from LOV also.

User can either select value from LOV or if user knows the input value can directly enter value and perform next operation.
On entering correct value LOV should not get populated.It should get populate only on cntrl+L like LPN LOV or other standard LOVs used in WMS coding.
In case user enters incorrect value it should not let him perform next operation.

Ple ase advise.

Thanks & regards,
Siddhi
Quote
0 #57 Rohini 2009-07-21 11:15
Hi Siddhi,

If that is the case, you can implement in the same manner as Oracle Standard LOVs like LPN LOV.

This issue is discussed many times in our forum. Have a look at the threads at out forum

http://apps2fusion.com/forums/viewforum.php?f=145

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #58 Anju 2009-07-29 10:29
Hi Senthil,

I have to do a validation on Item field.
So i made "mItemFld.setVa lidateFromLOV(f alse)".
In that case, if I manually type the complete item like 'MPC3500' which is present in the Item LOV, the seeded functionality like displaying description does not work.
If Ii do a CTRL L and then select MPC3500 from the List, the seeded functionality like displaying description works fine.

Could you please advice on this.

Thanks,
Anjan a.
Quote
0 #59 Rohini 2009-07-29 10:39
Hi Anjana,

Where is the functionality "displaying description" occur? Is it in same field or a differnt field?

Kindly clarify.

Pleas e use our forum http://apps2fusion.com/forums/viewforum.php?f=145 if you wish to upload screen shots.

Thanks and Regards,
Senthi l
Quote
0 #60 Anju 2009-07-29 10:51
Hi Senthil,

Item LOV query will return sub fields like description etc.
This is in the Next field.

Thanks,
Anjana.
Quote
0 #61 Rohini 2009-07-29 11:00
Hi Anjana,

If you are developing a custom page, you have to capture the Field exit event of the LOV Field and populate the sub fileds like Description

Yo u can have a look at how it is implemented in the Oracle Standard pages by decompling the class file.

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #62 srini p 2009-09-29 13:25
Hi Senthil,

I am trying to load one lov in my mobile web application custom page. It is raising error - Unsuccessful row

construction. I have called XXX_MWA_LOV_TES T.XXX_USERS_LOV procedure outside and got 7 records.

I tracked the problem, whenever we assigning the LOV (pg.getUserLOV().setlovStatement

("XXX_MWA_LOV_TES T.XXX_USERS_LOV")) to the LOV Bean it is raising the error.

Please help me out.

--------- --------------- --------------- --------------- -----
Here follows Oracle Procedure
----- --------------- --------------- --------------- --------
PROCED URE XXX_USERS_LOV (x_users OUT NOCOPY SYS_RefCursor
)
IS
BEGIN
OPEN x_users FOR
select user_id,user_na me,description
from fnd_user
where user_name like 'SP%';

EXCEPTI ON
WHEN OTHERS THEN
DBMS_OUTPUT.PUT _LINE('ERROR IN USER LOV '|| SQLERRM);
END XXX_USERS_LOV;


END XXX_MWA_LOV_TES T;
------------ --------------- --------------- --------------- --
Here follows Java Code
---------- --------------- --------------- --------------- ----
public void userLOVEntered( MWAEvent mwaevent) throws AbortHandlerExc eption, InterruptedHand lerException,

DefaultOnlyHa ndlerException
{

UtilFns.trace(" User MWA LOV Entered");
try{
Session session = mwaevent.getSes sion();
//set the package and procedure name to be called
pg.getUserLOV().setlovStatement("APPS.XXX_MWA_LOV_TES T.XXX_USERS_LOV");

//Parameter Type, parameters and Prompts of the field in LOV
// C – cursor, AS/S – String, N – Numeric, AN - AlphaNumeric
//int wshOrg = 87;
//String paramType[] = { "AS", "N","C" };
// String parameters[] = {"FED%","87"," " };
//Set the prompts and visible fields for LOV result table
//We don’t want user id to be displayed in result table. So we //are setting it to false.
//These fields directly map to the selected columns in SELECT //statement of REF CURSOR
//CARRIER_NAME, CARRIER_ID,SCAC _CODE
String paramType[] = {"C"};
String parameters[] = {" "};

//Set the prompts and visible fields for LOV result table
//We don’t want user id to be displayed in result table. So we //are setting it to false.
//These fields directly map to the selected columns in SELECT //statement of REF CURSOR
//USER_ID,USER_ NAME,DESCRIPTIO N
String prompts[] = { "USER_ID", "USER_NAME" };
boolean flag[] = { false,true};

// String prompts[] = { "CARRIER_ID", "CARRIER_NAME" };
//boolean flag[] = { false,true};

//Associate the properties to the LOV bean
//Properties for SQL Query
pg.getUserLOV() .setInputParame terTypes(paramT ype);
pg.getUserLOV() .setInputParame ters(parameters );

//Properties for LOV Result Table
pg.getUserLOV() .setSubfieldPro mpts(prompts);
pg.getUserLOV() .setSubfieldDis plays(flag);

}
catch(Exception e){
UtilFns.error(" MWA Error in calling LOV " + e.toString());
}
}
------------- --------------- --------------- ---------------
Here follows INV LOG
----------- --------------- --------------- --------------- ---
[Tue Sep 29 11:21:52 EDT 2009] (Thread-12) MWA Error in calling LOV java.lang.NullP ointerException
[Tue Sep 29 11:22:25 EDT 2009] (Thread-12) Error in processing LOV
[Tue Sep 29 12:05:51 EDT 2009] (Thread-14) MWA Error in calling LOV java.lang.NullP ointerException
-------------- --------------- --------------- --------------- ---------
Quote
0 #63 Rohini 2009-09-30 04:33
Hi Srini,

Everyth ing looks fine for me expect the fact that you have used SYS_RefCursor instead of REF CURSOR in the PLSQL procedure.

Normally this error occurs when the parameters passed is incorrect or PLSQL procedure is unable to return the expected number of records.

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #64 srini p 2009-09-30 09:24
Hey Senthil,

Thank s for your prompt reply. Now I changed procedure to REF CURSOR and has no parameters except
out parameter Cursor. Again I executed procedure outside and got 7 records as expected. Still I am getting "Unsuccessful row construction." error through mobile. I checked at system log and got this information.
-- --------------- --------------- --------------- --------------- --------------- --------------- ----
System Log
----------- --------------- --------------- --------------- --------------- --------------- ----------
[Tue Sep 29 10:18:01 EDT 2009] (Thread-17) MWA_LOV_ROW_CON S_FAIL: Unsuccessful row construction
ja va.lang.NullPoi nterException
a t oracle.apps.mwa .container.LOVR untimePageHandl er.pageEntered( LOVRuntimePageH andler.java:89)
at oracle.apps.mwa .container.Stat eMachine.callLi steners(StateMa chine.java:1666 )
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:1067)
at oracle.apps.mwa .presentation.t elnet.Presentat ionManager.hand le(Presentation Manager.java:12 61)
at oracle.apps.mwa .presentation.t elnet.ProtocolH andler.run(Prot ocolHandler.jav a:820)
-------- --------------- --------------- --------------- --------------- --------------- --------------
But I successfully test your TextFieldBean example.

By any chance. Do you have complete code exampe for CustomLov. I want to try this.

Thanks in Advance.

Srini .
Quote
0 #65 Rohini 2009-09-30 09:34
Hi Srini,

Can you please upload your source file and log files in our fourm

http://apps2fusion.com/forums/viewforum.php?f=145

you can find lot code examples over there. If not I will find one for you.

Cheers,
S enthil
Quote
0 #66 Manohar Baddam 2010-03-10 08:20
Hi Senthil

Is it possible to default the LOV value and skip the navigation of this LOV field.

Thank you
Quote
0 #67 Rohini 2010-03-10 08:30
Hi Manohar,

Yes it is possible to default a value to LOV. Can you please explain what do you mean by skipping the LOV field?

If you turn off LOV validation, you will not be prompted to select the values.

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #68 Manohar Baddam 2010-03-10 08:43
Hi Senthil

Thanks a ton for the quick response...I greatly appreciate your contribution to the Oracle Apps Community.


Sk ipping means I need to default some valid value in the LOV and bring the cursor to next field Instead of going into LOV and hitting ctr+l/tab/enter .


Thanks & Regards
Manohar
Quote
0 #69 Rohini 2010-03-10 08:50
Hi Manohar,

I hope the following code snippet will help you.

mSubInv = new LOVFieldBean();
mSubInv.setName ("RECV.SUB_INV" );
mSubInv.setVali dateFromLOV(fal se);
mSubInv.setValu e("DefValue");

Thanks and Regards,
Senthi l
Quote
0 #70 Manohar Baddam 2010-03-10 09:08
Hi Senthil,

Thank s for the code...it will definitely help me...

Let me be clear with the requirements...

Actually I have a requirement wherein when I enter into the page: Materials & Mfg --> Reciepts --> Deliver --> PO

after entering the PO number, Line number and Item Name when I hit tab the Project and Task LOV fileds should get populated if there is only one value without taking the user input (enter/ctlr+l) and then the cursor should directly jump from Item Name to SubLoc or any other field.

If I have multiple projects and tasks then I need the navigation going through those fields which enables the user to select the value.

I hope I am making sense...Please help me by suggesting the approach..

Wai ting for your valueble reply

Thanks
M anohar Baddam
Quote
0 #71 Rohini 2010-03-10 09:14
Yes .. This very much possible. In the Filed Listener class, catch the event at the exit of the Item Number and check for the single/multiple values for project and task LOV

If there is only one value, default the value otherwise leave it as it is.

I am not sure whether you can jump directly from Item Name to SubLoc .. Need to chk.

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #72 Manohar Baddam 2010-03-11 08:35
Hi Senthil,

Thank s for the update....

I am able to catch in the ItemExit listener and default the Project...after doing that I have setted session.setnext field SunInv, but still the navigation is going into ProjectLOv, tried a lot to achieve this but no success.

One more question do we have any function to count number of values in the LOV, also return the refcursor value in the LOV using just a function call.

Thanks & Regards
Manohar Baddam
Quote
0 #73 Rohini 2010-03-11 08:40
I dont think there is any API available as such to count the no of values in the LOV. you can write a custom PLSQL proc to acheive the same

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #74 Stelios 2010-05-26 07:17
I would like to get the actual value which typed in before calling the LOV statement.
As an example when I am requesting the delivery LOV I would like to know if his has passed a partial value (all the deliveries starting from "406").
public void DEL_LOV_Entered (MWAEvent mwaevent) throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{

UtilFns.trace( "User LOV Entered");
try{
XX_AssigntoTri p.ses = mwaevent.getSes sion();
//set the package and procedure name to be called
pg.getDE L_LOV().setlovS tatement("XXINT ER_MWA.XXINTER_ DEL_LOV");
Stri ng p_org_id = (String) XX_AssigntoTrip .ses.getObject( "ORGID");
UtilF ns.trace("User LOV Entered: Pass org id:" + p_org_id);

// I do not know how to get the partial value entered in delivery
String p_delivery = pg.mDEL_LOV.get Value();

UtilF ns.trace("Value of pg.getDEL_LOV() " + p_delivery);

/ /Parameter Type, parameters and Prompts of the field in LOV
// C cursor, AS/S String, N Numeric, AN - AlphaNumeric
St ring paramType[] = {"C", "AN","AN" };
String parameters[] = {" ",p_org_id ,p_delivery}; //orgid


//The se fields directly map to the selected columns in SELECT //statement of REF CURSOR
String prompts[] = { "Delivery" };
boolean flag[] = { true };

//Associate the properties to the LOV bean
//Properti es for SQL Query
pg.getDEL _LOV().setInput ParameterTypes( paramType);
pg. getDEL_LOV().se tInputParameter s(parameters);

//Properties for LOV Result Table
pg.getDEL _LOV().setSubfi eldPrompts(prom pts);
pg.getDEL _LOV().setSubfi eldDisplays(fla g);
}
catch(Exc eption e){
UtilFns.err or("Error in calling LOV");
}

}
Quote
0 #75 Rohini 2010-05-26 16:43
Hi,

I hope you have the above code snippet in Listener Class.

Few questions:

1) what does the following code print?

// I do not know how to get the partial value entered in delivery
String p_delivery = pg.mDEL_LOV.get Value();

UtilFns.trace ("Value of pg.getDEL_LOV() " + p_delivery);

2) why are you initializing the LOV again in Listener, it should be done in Page Class I suppose.

Kindl y clarify.

Cheer s,
Senthil
Quote
0 #76 Stelios 2010-05-27 01:41
Hi,

The above snippet is in the Listener Class.
Regardin g the first question I was trying to capture the data that has been input by the user before calling the LOV. I am trying to capture the data that the user has input in the LOV before pressing the CNTRL-L to get the list value. Is that possible ?
As regard the second question please let me know where I am re-initialize the LOV again? Which is the statement ?

Regards,
Ste lios
Quote
0 #77 Rohini 2010-05-27 16:40
Hi,

I think that is possible .. can you look at the log file and tell me what value does it print?

Kindly ignore the second q

Thanks and Regards,
Senthi l
Quote
0 #78 Stelios 2010-05-28 01:21
The value of the command printed for the delivery:
===== =============== =============== =============== ========
String p_delivery = pg.mDEL_LOV.get Value();
UtilFns.trace( "Value of pg.getDEL_LOV() " + p_delivery);
============== =============== =============== ==============
is the following:
xxinter.custom. server.XX_Assig ntoTripFListene r.DEL_LOV

Rega rds,
Stelios
Quote
0 #79 Stelios 2010-05-28 03:39
I would like to know if any event is triggered/fired when a user press "Enter" or "Ctrl-F" inside a LOV field?
As an example we know that an event is fired when a user is entered in a field ("fieldEntered" ).
Quote
0 #80 Rohini 2010-05-28 15:34
Hi,

If you look at the above article, there is a method called userLOVExited() where I have get the selected values in a vector.

Will that be of any help tp your requirement?

T hanks and Regards,
Senthi l
Quote
0 #81 Stelios 2010-05-31 05:03
Hi Senthil,

The userLOVExited() could not fulfill my requirement as this method is called when the value selected the value from the LOV. I would like to get the data the user is typed in before calling the LOV.
Let us assume that the user wants to get all the deliveries that start from "416%" and some other time wants all the deliveries that started from "478%". His partially entered the values and he is expecting back in the LOV all the deliveries that started from these numbers.

Regar ds,
Stelios
Quote
0 #82 Stelios 2010-06-01 11:46
Hi Senthil,

I am stacked.

This is the same question which I can see many times in the forum without finding any useful answer (for me).
If I am typing in some data in a "LOVFieldBean" (before calling the LOV procedure), how can I get/capture the data that I have typed in?
Is this possible ?

Regards,
Ste lios
Quote
0 #83 Rohini 2010-06-01 11:56
Hi,

I have to try it out and see ..Meanwhile post your query on
http://apps2fusion.com/forums/viewforum.php?f=145

Thanks and Regards,
Senthi l
Quote
0 #84 GirishNarne 2010-09-20 16:02
Hi Senthil,

I have built a custom wms page with two text fields, a Submit button and a Cancel Button. The two text fields are required fields and when I click on the Cancel button the cursor does not come out of the required field. But all the standard pages exit out of the page when the cancel button is clicked. Could you please let me know how to get the Cancel button functionality.

Thanks,
Girish .
Quote
0 #85 Rohini 2010-09-20 16:05
Hi Girish,

Can you pls chk the fieldexit() and fieldentered method of required filed and cancel button? Can you please put the code snippet and error log?

Thanks and Regards,
Senthi l
Quote
0 #86 shailendra singh 2010-12-01 03:35
hello Senthil,
i am having problem with LOV ,the value i am entering is not able to get ,becouse the proble is i am calling
userLOVEntered function which is called just in pageEnetered event ,and i also need the paramere for calling package in this event ,please tell me how this can be done.

thanks,
shailendra
Quote
0 #87 shailendra singh 2010-12-01 04:02
hello senethil
the problem me and Stelios are getting are same.
Partial entered LOV data (how to get the data enetered before calling the LOV)
hello Stelios if u also solve the problem please answer
Quote
0 #88 shailendrasingh 2010-12-21 03:24
i got query resolved

thank s
shailendra
Quote
0 #89 alobato 2011-01-14 13:49
Hello.

i'm in a wip development and i need to do a wip personalization but is not the same like wms. i can't find the page or form where i do this changes. do you have any idea where can i do this personalization and look it in a telnet terminal?

than ks
Quote
0 #90 Rohini 2011-01-15 14:08
Hi,

You can do personalization only if you are on 11.5.10. Not sure of R12.

Pls refer to metalink note 469339.1 for more details.

Thank s and Regards,
Senthi l
Quote
0 #91 Manjula Rani 2011-03-07 06:37
Hi ,

I have extended MainPickPage and Main PickFListener files.
After extening, UOM Lov field is not working as expected. Can anyone help in resolving this.

xxdbdGSL MainPickPage.ja va
------------ --------------- --------------- -
public class xxdbdGSLMainPic kPage extends MainPickPage//C onfigPage
implements ConfigConstants , DualUOMInterfac e, MWAPageListener
{

public xxdbdGSLMainPic kPage(Session session)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
super(session);
System.out.pri ntln("Inside custom MainPickPage");
}
public void pageEntered(MWA Event mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
System.out.pr intln("inside pageEntered");
super.pageEnter ed(mwaevent);

ButtonFieldBean buttonfieldbean = (ButtonFieldBea n )getField("MAIN .DROP");
xxdbdG SLMainPickFList ener mListener = new xxdbdGSLMainPic kFListener();
b uttonfieldbean. addListener(mLi stener);
}
public void pageExited(MWAE vent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
super.pageExi ted(mwaevent);
}

}

xxdbdGSLM ainPickFListene r.java
-------- --------------- --------------- -----
public class xxdbdGSLMainPic kFListener extends MainPickFListen er//xxdbdGSLTdF Listener//TdFLi stener
{

public xxdbdGSLMainPic kFListener()
{ super();
}
public void fieldEntered(MW AEvent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
System.out.pr intln("inside fieldEntered of Mainpickpage listerenr");

s uper.fieldEnter ed(mwaevent);
}

}

Thanks in advance.
Quote
0 #92 Dhamayanthi 2011-04-12 14:15
This is a customized RCV page where I have LPN lov, PO Number Lov, Supplier name, PO Line Number Lov, LineItem. Im getting PO Number LOV and from that I get Supplier name as part of it and POHeaderId. After that I need to pass POHeaderId to get PO Line Number LOV.

I have created XXP4URetailPOLO V and XXP4URetailPOLi neLOV for this. Below are the code snippets. In POLINENumber field, if I press Ctl+ L it shows me " Unsuccessful row construction " but, If i manually type 1 in that coulmn, It gives me correct item as below.

LPN>2012
PO No>1001
Supplie r: O3 Orange
PO Line No>1
Item:P1034 3223

I set the below prompts and flags to get POLIneNumber LOV

public XXP4URetailPOLi neLOV()
{
if(UtilFns.isTr aceOn)
{
UtilFns.trace("XXP4URetailPOLi neLOV: XXP4URetailPOLO V()");
}

setName("PO_LIN E_NO");
setRequired(tru e);
setValidateFrom LOV(true);
String resultPrompts[] = {"PO_LineNo", "PO_LineItem", "PO_LineId"};
boolean resultFlags[] = {true, true, false};

setSubfieldProm pts(resultPromp ts);
setSubfieldDisp lays(resultFlag s);

addListener(thi s);
}

public XXP4URetailPOLi neLOV(String paramString)
{
this();

if (paramString.eq uals("PO_LINE_P OREV"))
{
setlovStatement ("XXP4U_PO_REVE RSAL_PKG.GET_RE TURN_PO_LINE_LO V");

String inputParams[]={ "C", "AN", "N"};

setInputParamet erTypes(inputPa rams);
}
}


I set inputParameters as below in Listeners :
public void Po_Line_Entered (MWAEvent mwaevent)
{
XXP4URetailPOLO V poLov = pg.getPOFld();

if (UtilFns.isTrac eOn)
{
UtilFns.trace(" XXP4UReturnFLis tener - Inside -> Po_Line_Entered : ");
UtilFns.trace(" XXP4UReturnFLis tener - Inside -> Po_Line_Entered : Header Id: " + poLov.getPOHead erID());
}

pg.getPOLineNoF ld().setInputPa rameters(new String[] {" ", poLov.getPOHead erID(),
"oracle.apps.in v.rcv.server.XX P4UReturnPage.P O_LINE_NO"});
}

The procedure is as below:
PROCEDURE get_return_po_l ine_lov (
x_po_lov OUT NOCOPY t_genref,
p_po_hdr_id IN NUMBER,
p_po_line_num IN NUMBER
)
IS
--
lc_debug NUMBER := NVL (fnd_profile.VA LUE ('INV_DEBUG_TRA CE'), 0);
--
BEGIN
--
OPEN x_po_lov FOR
SELECT DISTINCT
pol.line_num,
msi.segment1,
pol.po_line_id
FROM po_lines_all pol,
mtl_system_item s_b msi
WHERE
pol.po_header_i d = p_po_hdr_id
AND pol.item_id = msi.inventory_i tem_id
ORDER BY pol.line_num;

END get_return_po_l ine_lov;

Appreciate your help on this.
Thanks.
Quote
0 #93 Sergio 2011-06-17 08:28
Hi,

I have a problem when I try to show the textfieldbean on screen.
My code:

TextFieldBean cajaPrueba = new TextFieldBean() ;
cajaPrueba.set Name("prueba");
cajaPrueba.set Prompt("Prueba: ");
cajaPrueba.set Editable(true);
cajaPrueba.add Listener(listen er);
addFieldBean(c ajaPrueba);

The screen show this:

Prueba[:[7m[0 m]

And I can't write in the textfield.

I don't know what could be the problem.

Can you help me?

Thanks and Regards,
Sergio
Quote
0 #94 sahiti 2011-11-02 10:51
Hi Senthil,

I have read all your documentation regarding MSCA/MWA customization. They are all very valuable and thanks a ton for providing the information as Oracle itself doesn’t provide any documentation in the first place. I need a favor from you. I work for a company located in US and our business wants to customize the mobile Wip Material Issue form. I have looked at the structure for these forms (oracle.apps.wi p.mwa.page.Mate rialPage

) and it is not coded the same way as the other MSCA forms like traditionally there will be a Function,Page and Listener classes. For this form that I wanted to customize (oracle.apps.wi p.mwa.page.Mate rialPage

), I don’t see a listener class. I need to customize the item LOV on this page. Could you please provide me some examples for this? This page is also coded differently for ex, it has MaterialPageHan dler, that handles all the LOV functionality. I tried customizing this based on the examples that were provided on your site and it didn’t work. I followed the example for lpn page and it didn’t work the same for me.

Any help would be appreciated. Thanks for your time.

Sahiti
Quote
0 #95 sahiti 2011-11-02 10:58
Hi Senthil,
Please see below the definition of the page that I want to customize. As you can see, it says it implements MWAPageListener . Is this what I need to extend? Please advice!!

publi c class MaterialPage extends WMALotSerialPag e
implements MWAPageListener
{
protected class MaterialPageHan dler extends PageAdapter
{

private void initializeMessa ges(Session session)
{
}
}
}


Thank s!!
Quote
0 #96 sahiti 2011-11-02 11:32
WMALotSerialPag e has the below syntax. So, do I need to extend the PageSetupHandle r?

public WMALotSerialPag e(Session session)
{
addListener(n ew PageSetupHandle r());
}

Also, in the MaterialPage, the fields on the page were added to different listeners. For ex, the first field Job is added to the below listener ‘FieldAdapter’.
lovfieldbean.a ddListener(new FieldAdapter())
Send Field item is added to listener ‘Itemhandler’ as below.
lovfield bean1.addListen er(new ItemHandler());

So, I am confused on which listener to customize.

Thanks!!
Quote
0 #97 Rohini 2011-11-02 11:51
Your MaterialPage.ja va has 4 listeners .. one of them should be catering your needs ...

addListener(new MaterialPageHan dler());
addListener(new QualityHandler. QualityParentPa geHandler());
addListener(new WMALotSerialPag e.GenericCleanu pHandler(this)) ;
addListener(new WMALotSerialPag e.AddCancelHand ler(this));

Th anks and Regards,
Senthi l
Quote
0 #98 sahiti 2011-11-02 11:57
OK, I will try customizing MaterialPageHan dler(). My question here is, MaterialPageHan dler() is defined as protected class in the main MaterialPage itself. So, could you guide me in defining the syntax for this?

Thanks!!
Sahiti
Quote
0 #99 Rohini 2011-11-02 12:02
Hi Sahiti,

I am afraid, we cant extend MaterialPageHan dler() if it is protected.

-Se nthil
Quote
0 #100 sahiti 2011-11-02 12:05
Hi Senthil,

Hmm.. ok. What other options do I have here to customize this form? I can I customize the next listener QualityHandler. QualityParentPa geHandler?

Tha nks,
Sahiti
Quote
0 #101 Rohini 2011-11-02 12:08
Yep ..try the other three listeners ...it should help you ...

as you mentioned ..this pabe seems to be bit trickier ...

at the worst case, it nothing works, u need to customize the page ...
Quote
0 #102 sahiti 2011-11-02 12:18
Hi Senthil,
Qualit yHandler$Qualit yParentPageHand ler is defined as public static class. I think we are ok to customize this, right? So, I need to define a custom listener named QualityHandler$ QualityParentPa geHandler and add the custom LOV query to this listener, right? Does the syntax 'QualityHandler$ QualityParentPa geHandler' sounds alright to you?

Thanks!!
Sahiti
Quote
0 #103 sahiti 2011-11-02 12:22
Hi Senthil,
In my previous post I meant XXQualityHandle r$QualityParent PageHandler.

T hanks!!
Sahiti
Quote
0 #104 Rohini 2011-11-02 12:24
Nope ... doesn't look right to me ...
Quote
0 #105 sahiti 2011-11-02 12:29
Hi Senthil,
Ok, could you help me out with this then?

Thanks!!
Sahi ti
Quote
0 #106 Rohini 2011-11-02 12:31
Hi Sahiti,

I guess it needs more analysis ... If you are sure that you cannot extend the listeners for various technical reasons, you only left with the option of customizing the page.

Hope this helps.

Thanks and Regards,
Senthi l
Quote
0 #107 Rohini 2011-11-02 12:36
Hi,

Did you get any information from the log file on what listener is called?

-Senth il
Quote
0 #108 sahiti 2011-11-02 14:25
Hi Senthil,
Please see below the info from log file.I have defined a custom menu which calls custom page XXSPMaterialPag e.

Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) loadPage: done loading 'xxsp.custom.se rver.XXSPMateri alPage' (pageIx = 5, fieldIx = 0)
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) handleEvent: entering new page (pageIx = 5)
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) callListeners: executing 5 listeners, action = 0
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) callListeners: PageBean
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) Retrieving from AK - controller object type:oracle.app s.wip.wma.util. WMAAKResourceTa ble AttributeCode:J OBPROMPT
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) AK request returning:Job
[ Wed Nov 02 13:20:00 CDT 2011] (Thread-12) Argument passed not of form Controller:Attr ibute
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) Retrieving from AK - controller object type:xxsp.custo m.server.XXSPMa terialPage AttributeCode:J OBPROMPT
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) AK request returning:JOBPR OMPT
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) Argument passed not of form Controller:Attr ibute
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) Retrieving from AK - controller object type:xxsp.custo m.server.XXSPMa terialPage AttributeCode:A SSEMBLYPROMPT
[ Wed Nov 02 13:20:00 CDT 2011] (Thread-12) AK request returning:ASSEM BLYPROMPT
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) Retrieving from AK - controller object type:oracle.app s.wip.wma.util. WMAAKResourceTa ble AttributeCode:I TEMPROMPT
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) AK request returning:Item
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) Argument passed not of form Controller:Attr ibute
......... ............
.. ............... .....
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) setCurrentField Index: i = 0 = job
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) callListeners: executing 1 listeners, action = 0
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) callListeners: FieldBean
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) callListeners: fieldEntered() for job, Listener=oracle .apps.wip.wma.p age.MaterialPag e$1
[Wed Nov 02 13:20:00 CDT 2011] (Thread-12) (SPTMSC) handleEvent: done (pageIx = 5, fieldIx = 0, memory used = 8067136)

As u can see, it says exceuting 5 listeners and PageBean listener.

Than ks,
Sahiti
Quote
0 #109 sahiti 2011-11-02 15:58
Senthil,
Listen er WMALotSerialPag e.GenericCleanu pHandler is defined as public. Do you think we can extend this one?

Thanks,
S ahiti
Quote
0 #110 sahiti 2011-11-03 09:35
Hi Senthil,
Do you want me to send the full log file? Any thoughts on this?

Thanks,
Sahiti
Quote
0 #111 Rohini 2011-11-03 12:04
Are you able to get the handle to the LOV which you are trying to customize in the extended Listener WMALotSerialPag e.GenericCleanu pHandler?

If so, you are nearing your goal.

-Senthil
Quote
0 #112 sahiti 2011-11-03 12:28
Hi Senthil,
I am not sure how to even extend this listener WMALotSerialPag e.GenericCleanu pHandler? Could you guide me in the syntax or at least point to the documentation as this is different. I tried extending the custom listener to 'WMALotSerialPa ge$GenericClean upHandler'. It's giving me syntax errors.

Thanks !!
Sahiti
Quote
0 #113 sahiti 2011-11-08 14:35
Hi Senthil,
Just want to follow-up on extending the listener 'WMALotSerialPa ge$GenericClean upHandler'. Do you have any pointers? I cannot find the syntax anywhere else.

Thanks,
Sahiti
Quote
0 #114 Chandra 2015-02-12 11:55
Hi Senthil,
I created method relLOVEntered which populates the LOV and I am calling this method in fieldEntered method. LOV works fine and brings all values when I press CTRL L. Now I am trying to bring values based on the value entered in the field. When I try to get user entered value using field.getValue( ), it always returns null as field enreted will not have any value. How can I read this entered value and pass it to LOV query.
Regards,
Chandra
Quote
0 #115 Raghuraman 2015-04-10 06:12
Senthil,

How to pass the values from the LOV to the next field?
Im trying with ses.put_Object but in vain.
Kindly advise.

Thanks,
Raghu
Quote
0 #116 akshay 2015-08-07 03:33
Hello Senthil,

We have requirement for extending POLineNumLOV class by passing po_header_id & release_id. I tried by using below changes but it doesnt help, can you please suggest ?

in Page-
this.mPOLineNumFld = new xPOLineNumLOV("ITEM");

in Listner in polinenumentere d -
String as[] = {
" ", "ORGID", doclov.getPOHea derID(), "RECEIPT", "oracle.apps.in v.rcv.server.xx .xRcptGenPage.I NV.PO_LINE_NUMB ER", "14400", s
};
//releasee_id is hardcoded for now

I have modified the DB Pkg. LOV code is -
public xPOLineNumLOV(S tring paramString)
{
super();
if (paramString.eq uals("ITEM"))
{
setlovStatement ("XX_INV_UI_RCV _LOVS.GET_PO_LI NE_ITEM_NUM_LOV ");
String[] arrayOfString = { "C", "N", "AN", "AS", "S", "AS" , "AS" }; setInputParamet erTypes(arrayOf String);
}
}

}
Quote

Add comment


Security code
Refresh

Search Trainings

Fully verifiable testimonials

Apps2Fusion - Event List

<<  Jun 2021  >>
 Mon  Tue  Wed  Thu  Fri  Sat  Sun 
   1  2  3  4  5  6
  7  8  910111213
14151617181920
21222324252627
282930    

Enquire For Training

Fusion Training Packages

Get Email Updates


Powered by Google FeedBurner