In this Article, we will see how to extend a standard Oracle MSCA/MWA pages.
It is a common requirement by most of the customers to do some modifications to standard Mobile forms to suit their requirements better. Most common requirements include:
-
Add a field to a page
-
Hide a field
-
Make a field Read only.
-
Change a LOV to Text and Vice versa.
-
Change the Labels
-
Default some values to a field. etc
I assume that the readers of this article have already gone through my previous articles as they need basic understanding of the MSCA/MWA Architecture.
As MSCA/MWA is based on Java, we can easily achieve this by the OOPS Concept "Inheritance". We create a new Java Class which inherits the Standard Oracle Java Class. In the new extended Java class, we have freedom to change the standard page behaviour without touching the Oracle Standard Java Source Code.
The Normal flow in MSCA Applications is described in the following diagram:
After we do the extension, the flow in the application will be like
Hence we need to perform the following steps in order to do a extension in MSCA.
-
Extend the MWA Function Class and make it point to the Extended page.
-
Extend the MWA Page Class.
-
Extend the MWA Listener Class.
-
Modify the Function Name in AOL to point to the New extended Function Class name.
We will now look each step in detail by taking an example. Lets assume that the customer want to add a new Text Field in standard Ship LPN page.
Navigation to the ShipLPN page in Mobile Applications:
Warehouse Management -> Outbound -> Shipping -> LPN Ship
Oracle Standard page before extension:
Step 1: Extend the Function Class:
package xxx.oracle.apps.inv.wshtxn.server;
import oracle.apps.inv.wshtxn.server.ShipLPNFunction;
public class XXShipLPNFunction extends ShipLPNFunction {
public XXShipLPNFunction() {
super();
//Setting the page name to new custom page
setFirstPageName("xxx.oracle.apps.inv.wshtxn.server.XXShipLPNPage");
}
}
Step 2: Extend the Page Class:
package xxx.oracle.apps.inv.wshtxn.server;
import oracle.apps.inv.wshtxn.server.ShipLPNPage;
import oracle.apps.mwa.beans.ButtonFieldBean;
import oracle.apps.mwa.beans.TextFieldBean;
import oracle.apps.mwa.container.Session;
import oracle.apps.mwa.eventmodel.AbortHandlerException;
import oracle.apps.mwa.eventmodel.DefaultOnlyHandlerException;
import oracle.apps.mwa.eventmodel.InterruptedHandlerException;
import oracle.apps.mwa.eventmodel.MWAEvent;
import oracle.apps.mwa.eventmodel.MWAListener;
public class XXShipLPNPage extends ShipLPNPage {
public XXShipLPNPage(Session s) {
super(s);
//Add a new button and set the properties.
mTxtField = new TextFieldBean();
mTxtField.setName("XX_TEXT");
mTxtField.setPrompt("New Text");
mTxtField.addListener(xxListener);
mTxtField.setValue("Initial Text");
this.addFieldBean(3, mTxtField);
}
public void pageEntered(MWAEvent e) throws AbortHandlerException,
InterruptedHandlerException,
DefaultOnlyHandlerException {
super.pageEntered(e);
//Initialize Extended page.
initCustomPage(e);
}
//This method is needed to make LOVs and some Submit buttons to work properly after extension
//The purpose of this method will be explained in later articles.
public void initCustomPage(MWAEvent e) {
//Doc Door LOV initialization
String[] inputs =
{ " ", "TXN.DOCK", "ORGID", "xxx.oracle.apps.inv.wshtxn.server.XXShipLPNPage.ShipLPN.DockDoor" };
getDockDoorFld().setInputParameters(inputs);
//LPN Lov initialization
String[] lpnInputs =
{ " ", "ORGID", "LOCATORID", "TRIPID", "TRIPSTOPID",
"xxx.oracle.apps.inv.wshtxn.server.XXShipLPNPage.ShipLPN.LPN" };
getLpnFld().setInputParameters(lpnInputs);
Session session = e.getSession();
//Continue button initialization
ButtonFieldBean continueButton =
(ButtonFieldBean)session.getFieldFromCurrentPage("ShipLPN.Ship");
continueButton.removeListener((MWAListener)continueButton.getListeners().firstElement());
continueButton.addListener(xxListener);
}
TextFieldBean mTxtField;
//set new Listener to the page
XXShipLPNFListener xxListener = new XXShipLPNFListener(new Session());
}
Step 3: Extending the Listener Class:
package xxx.oracle.apps.inv.wshtxn.server;
import oracle.apps.inv.wshtxn.server.ShipLPNFListener;
import oracle.apps.mwa.container.Session;
public class XXShipLPNFListener extends ShipLPNFListener {
public XXShipLPNFListener(Session s) {
super(s);
}
}
*****After extending all three Java files deploy the class files into the Apps Instance
Step 4: Modify the Function Name in AOL to point to the New extended Function Class name.
And here we go the new look of the extended page.
There is a little bit tweaking needed to make LOVs and some other submit button to work properly after extension.You can see this piece of code in our Extended Page Class. This is actually a flaw in MSCA/MWA . We will discuss more about this in next articles.
Comments
dbms_sq l.define_column (v_cursor2,2,v_ addr,4);
in above two cond's I am declare one variable in raw(4);,but how to
give the that size.
Actual reqirement is iam passing the parameter in from class.
select stmt is
SELECT a.name,b.addr, a.latch#, b.gets, b.misses, b.sleeps
FROM v$latch a, v$latch_childre n b
WHERE b.sleeps>0 AND
b.latch# = a.latch#
ORDER BY 1 ASC ,5 DESC
this select stme is convert into procedure.
plz could u send me code.
Thanks,
Damodar Reddy.S
I need to customize existing, seeded MWA forms, eg oracle.apps.wms .pup.server.Pac kUnpackSplitPag e.
How does one go about doing this?
First of all there are only class files and Oracle takes forever to supply me with the .java files.
When using a decompiler I cannot get it to compile properly again.
How can I accomplish this?
Regards
D
As explained in this article, we can do it by extending the standard Java Classes. In your case, you have to create a new java class like xxx.oracle.apps .wms.pup.server .XXPackUnpackSp litPage which extends oracle.apps.wms .pup.server.Pac kUnpackSplitPag e and perform the necessary modifications.
You have to do the same for Function class and Listenser class. You should not work on the decomplied java files. Decompliation of Class files are done to understand the program logic better and not modify the code.
Hope this helps. Please feel free to post your issues.
Thanks and Regards,
Senthi l
Currently I am working on MSCA Customization.T he requirement is to display on/off(Hiding initially and later displaying conditionally) 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 goes to next button.
I have Used method : session.setNext FieldName("Fiel dName");
but its not working.
will appreciate your help on this .
Kind ly check the order in which the beans are added to the page. If the conditional field is added before the next button, the focus will be on the conditional field.
Thanks and Regards,
Senthi l
Thanks for the quick responce.
I have added the beans as follows :
addFieldBean (super.mMONumLO V);
addFieldBea n(warning);
add FieldBean(conta inerLov);
addFi eldBean(autoPic kLov);
addField Bean(super.mQue ryBtn);
addFiel dBean(super.mCa ncelBtn);
cont ainerLOV and autoPickLov are displayed conditionally.W hen I put the value for MoNumLov, the cursor skips the condionally appeared fields and goes direct to mQueryBtn.
Quic k Question .... Are you developing a new custom mobile screen or doing modification to a existing std oracle apps screen?
I am bit confused because, you are calling "super.mMONumLO V" in the addFieldBean() method.
Thanks and Regards,
Senthi l
I am doing modification to a existing apps screen, but am getting some fields from super class.There I have used "super.mMONumLo v".And added new fields to child class.
Are the fields mMONumLov are already a part of std oracle apps page? If that is the case, you should not add it again .. instead, you have to use the API public void addFieldBean(in t index,FieldBean FB) to place your new beans at correct position.
Than ks and Regards,
Senthi l
Kindly use Jdev 9i for Oracle 11i and Jdev 10g for Oracle R12 release. You can use other Java IDEs like Eclipse as well ...
Please feel free to post your issues.
Thanks and Regards,
Senthi l
oracle.app s.mwa*
where would I get these libraries from?
MWA/MSC A framework is independant of OA Framework .... So dont worry about that ...
You can downlaod the libraries from the apps instance and add it to your project settings.
You can find them in $JAVA_TOP/oracl e/apps/mwa ....
Thanks and Regards,
Senthi l
Please tell me what does this method(setEnabl eAcceleratorKey ) do ?
I have found, this method generally used with buttons.like
mCancel.setEn ableAccelerator Key(true);
We can have hot keys for buttons ... for example, D&one ... in which "o" can be used as hot key ....
In order to enable this feature, we have to use setEnableAccele ratorKey(true) for the Buttonbean.
Ho pe this helps..
Thanks and Regards,
Senthi l
Definately it helped me.
I need to make certain fileds like 'Airway bill number' and 'carrier' mandatory in receipt screen on WMS mobile application. I know
the java file that is used for this. But where can i get some documentation on java file so that I can extend it and make
these fields mandatory. I searched enough on metalink etc but no luck.
Also can you please give some idea how can i achieve this customization. What properties etc i should set for
making field mandatory.
Thanks and regards,
Amit
If you are on 11.5.10 there is an easy way of doing it through WMS Personalization Framework. Otherwise, you can read the article "Extend a standard Oracle MSCA/MWA page" and use it as an example to meet your requirements.
Feel free to post your issues ...
Thanks and Regards,
Senthi l
Also I got an idea how I could achieve this using extenstion. My problem is how will i know details of java. What are the field
names etc? How and where can i get some Java doc for the same.
Thanks,
Amit
Yep .. Personalization fwk is available only with 11.5.10 and expected in 12.1 ...
You can do a Ctrl-X on the page and find the Page Class Information ... and then u can decompile the Java Classes using any Java Decomplier.
Th ere is no Java documentation available as such .. You can have a look at my article apps2fusion.com/at/ss/43-ss/269-mscamwa-java-api-documentation--part2-fieldbeans to know the basic APIS used in Filed Beans.
Hope this helps.
Thanks and Regards,
Senthi l
not get an applet on my machine, rather it is all text UI something like below. is there any way, I get some applet based UI.
1
2
3
4
5
6
7
8
9
Regard s,
Amit
Do you have a problem with Mobile Device or setting up Telnet/GUI client for testing MWA.
If it is Mobile Device, please go through the user manual of the device ...
If it is Client setup, refer to my article MWA Setup, Testing, Error Logging and Debugging.
Tha nks and Regards,
Senthi l
From your comment I understand that you are trying to populate a custom table. In this case, I dont see any advantage in extending a Std Page. In any case, Extension of Std Page should be kept as a last option. I feel that creating a new custom mobile form suits more to your requirement. This is simple solution and easy for maintenance as well. How ever you can call the Std Oracle PLSQL APIs / Java utilities available in MWA.
Please feel free to post your issues.
Thanks and Regards,
Senthi l
We have one requirement to diaplay LOV on a button click.
Can you please share your thoughts?
Waiti ng for your reply eagerly.
Thank s,
Himanshu
Can you describe a bit more about your requirement? what values should be displayed on clicking a button and where do u intend to store the values after selecting a value from LOV?
Thanks and Regards,
Senthi l
The requirement is like we need to display a LOV format screen in which we need to display
un-allocated/u n-Picked(i.e. Short) on the WIP job component.There are 4 columns
It will be only read only screen, no need to store anything.
But it should be invoked on CLOSE button exit event.
So the challenge here is to invoke LOV from button instesd of LovFieldBean.
Please Advice.
I understand that you are trying to display some data in a tabular format. MWA Framework doesnt have a inbuilt bean to support tabular display and you cannot invoke LOV popup screen with out using LOVFieldBean.
However, there is a workaround for this:
1)Create a new page with one heading bean and 4-5 textfield beans and make them read only.
2)Cconcat enate all the four column values in the SQL Query and put that value into Text field beans.
3)On clicking the Close button, redirect to this new page.
the disadvantage of this method is, the number of rows displayed will be constant ..and also you will have some problem with alignments and labels.
Hope this helps.
Thanks and Regards,
Senthi l
I was able to successfully follow this tutorial and I was able to add the textfield to the ShipLPNPage.
M y question for you is, have you had any success extending a wip\wma\page like CMPMENUITEM
I found the two files I believe I need under:
- MENU
- CMPMENUITEM
- page
- CompletionPage
so I extended these like this
- MENU
- xxCMPMENUITEM extends CMPMENUITEM
Quote:
- page
- xxCompletionPag e extends CompletionPage
.. but it doesn't display any of the changes I extend in xxCompletionPag e even after I associate it within the FORM functions.
Any suggestions
Have you bounced the Telnet port after deploying the new class files? Also, you can check in the log file whether the page oracle.apps.wip .wma.page.xxCom pletionPage is called when you do the navigation.
Ho pe this helps.
Thanks and Regards,
Senthi l
Thanks a lot for the workaround for tabular format screen display.
It worked out for us.
Thanks again !
We have a requirement to add a new text field in a specific position in mobile screen. We are extending the seeded java class and creating a custom class. In the extended page we are using the following command for achieving this addFieldBean(St atusField); where StatusField is a new TextFieldBean defined in the extended class. By default the field is coming at the first postion on the page. We try to move it to correct postion by using the command addFieldBean(2, StatusField); But this is giving unexpected error in the screen at the point where this command is executed. Any pointers in resolving this to postion the newly added field will be helpful
Thanks ,
Amitha
I understand that you are calling "Super" class after adding the new field in your custom class ... so only it is appearing in the first position.
The following APIS will definitely help to solve this issue:
public void addFieldBean(in t index,FieldBean ) and public void removeFieldBean (FieldBean)
Gi ve a try with the following:
In your custom class,
1) Call Super()
2) remove all beans using removeFieldBean ()
3) add all the beans in the specific order you want ... using addFieldBean().
But you need to do proper impact analysis before doing so ... as some fields in the std page may be enabled and disabled based on some conditions.
Ho pe this helps.
You can also open a new thread in our forum http://apps2fusion.com/forums/viewforum.php?f=145 if you need some help.
Thanks and Regards,
Senthi l
Excell ent idea. Thanks for the same.
You can open a new thread in our forum for MSCA and post your code.
Link: http://apps2fusion.com/forums/viewforum.php?f=145
It will be great if you share your experiances in the forum.
Thanks and Regards,
Senthi l
That would be great. Thanks again.
Cheers,
Senthil
Link: http://apps2fusion.com/forums/viewforum.php?f=145
Regards,
Pram od
I need to restrict LOV of Lots in MSCA Subinventory Xfer form based on some DFF values on Locator and some Lookups.
How can i do that ? Can you help me in this ?
If I understood your requirement correctly, my solution would be to hide the existing LOv in the stdard page and extend the page to add new LOV to fit in your needs.
Hope this helps.
Thanks and Regards,
Senthi l
Thank s for the prompt reply. I am very new to this . Can you put some more light for the solution of this ?
May be the detailed approach which should be taken in this !!
In the above article, I have explained about adding a new text bean and defaulting value to a existing bean in a std page.
Similarl y, for your requirement, you can
1)hide the existing LOV
2)add an new LOV whichs gives values as per your new req.
Hope this helps.
Thanks and Reagrds,
Senthi l
I have a requirement to customize Int Req Deliver Page. RcvTxnPage.java . requirement is, for lot controlled items, we do not want user to enter lots and corresponding quantity. It will be calculated by custom logic after user enters the quantity (QtyExited).
I am going ahead with following approach :
I am extending RcvTxnPage for custom page class and RcvTxnFListener for custom listener.
In customInitLayou t method I am resetting LOV input parameters of all Lovfieldbeans to new page fields.
and adding custom listener to all the fields (currentPage.ge tFieldBeanList and iterating thru fieldbeans).
In ItemExited of custom Listener class I am hiding Lot and Lot Quantity fields.
in QtyExited of custom Listener class I am calculating lots and populating lot field and lot quantity field.
Standrad Oracle wise, in Lot quantity exited method of RcvTxnPage, it inserts lot record in mtl_transaction _lots_interface table.
I want to acheive same thing and don't want to rewrite code for it. Want to use standard Oracle logic to achieve the same.
I am facing following problem :
I can not call super.lotQtyExi ted() in my code because it is private in base class.
If somehow I can raise fieldExited event on lot quantity , base class listener will be called , and problem will be solved.
but as Lot Qty field is hidden, I don't know how to raise fieldExited event on it.
Please help if you can think of some workaround for the same.
Thanks
R avi
I may not have understood your requirement fully. But the following approach strikes to my mind.
Can you override the lotQtyExited() in your custom listener class and call it from the fieldexit() of whatever bean you want?
By doing so, you can avoid calling a private method in the base class.
Will it help?
Please feel free to post your issues.
Thanks and Regards,
Senthi l
Thank you very much for prompt response.
here my requirement is to call base class lotQtyExited() method to perform the procesing which creates MTLI records.
I can not call this method from my custom listener class using super.lotQtyExi ted() ( which is a child class) because it is defined as
private in base class.
If I plan to override it in my custom class, I will have to rewrite whole logic which is already there in base class QtyExited method.
So I thought of raising fieldExited event on lot quantity field.In this case framework will find out all listeners and call field exited of
those listeners which includes base listener class as well.
Event has to be raised explicitly because lot quantity field is hidden in my case.
I just tried following code :
Index = rcvtxnpage.getF ieldIndex("INV. LOT_QTY");
mWAEvent.getSes sion().getCurre ntPage().setCur rentFieldIndex( Index);
super.fieldExit ed(mWAEvent);
still facing few issues.
Please let me know if this approach is recommended or not?
or please suggest any other approach to achieve this.
Thanks.
Ravi
Can you brief about the issue you are facing?
You can upload the screenshots / code by opening a new thread in our forum.
http://apps2fusion.com/forums/viewforum.php?f=145
Thanks and Regards,
Senthi l
Can you please upload the log files in the forum?
Thanks and Regards,
Senthi l
I have a Inventory Customization using MWA, Intermec devices on Applications 11.5.10.2 and we currently are getting some erros from AOL/J Connection POOL such as,
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) DBSESSIONID for user:LHLORENZO failed
java.lan g.NullPointerEx ception
at oracle.apps.mwa .container.Appl icationsObjectL ibrary.getDBSes sionID(Applicat ionsObjectLibra ry.java:1549)
at oracle.apps.mwa .container.Appl icationsObjectL ibrary.getConne ction(Applicati onsObjectLibrar y.java:996)
at oracle.apps.mwa .container.Base Session.getConn ection(BaseSess ion.java:185)
at oracle.apps.inv .count.server.D BHandler.setRef reshConn(DBHand ler.java:42)
at oracle.apps.inv .count.server.P ageTarimaComp.s etFieldNoTarima (PageTarimaComp .java:151)
at oracle.apps.inv .count.server.P ageListener.fie ldProdTarima(Pa geListener.java :107)
at oracle.apps.inv .count.server.P ageListener.fie ldExited(PageLi stener.java:32)
at oracle.apps.mwa .container.Stat eMachine.callLi steners(StateMa chine.java:1661 )
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:535)
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:842)
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:1129)
at oracle.apps.mwa .presentation.t elnet.Presentat ionManager.hand le(Presentation Manager.java:39 2)
at oracle.apps.mwa .presentation.t elnet.ProtocolH andler.run(Prot ocolHandler.jav a:820)
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) POOL-NO AVAILABLE OBJECTS (POOLDATA=[orac le.apps.fnd.sec urity.DBConnObj Pool@8046d2
0 extends [oracle.apps.fn d.security.DBCo nnObjPool@8046d 20 $Revision: 115.28 $ {false,true,122 8997403081,0,12 28997403081,0,f al
se,300,5,7,5 00,500,0,1,5,10 000,3,0,500,2,o racle.apps.fnd. common.Statisti cs@8007962}] $Revision: 115.26 $ {false,true,fal se,-1
,-1,561}] )
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) POOL-NO AVAILABLE OBJECTS (POOLDATA=[orac le.apps.fnd.sec urity.DBConnObj Pool@8046d2
0 extends [oracle.apps.fn d.security.DBCo nnObjPool@8046d 20 $Revision: 115.28 $ {false,true,122 8997403081,0,12 28997403081,0,f al
se,300,5,6,5 00,500,0,1,5,10 000,3,0,500,2,o racle.apps.fnd. common.Statisti cs@8007962}] $Revision: 115.26 $ {false,true,fal se,-1
,-1,561}] )
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) POOL-NO AVAILABLE OBJECTS (POOLDATA=[orac le.apps.fnd.sec urity.DBConnObj Pool@8046d2
0 extends [oracle.apps.fn d.security.DBCo nnObjPool@8046d 20 $Revision: 115.28 $ {false,true,122 8997403081,0,12 28997403081,0,f al
se,300,5,5,5 00,500,0,1,5,10 000,3,0,500,2,o racle.apps.fnd. common.Statisti cs@8007962}] $Revision: 115.26 $ {false,true,fal se,-1
,-1,561}] )
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) POOL-NO AVAILABLE OBJECTS (POOLDATA=[orac le.apps.fnd.sec urity.DBConnObj Pool@8046d2
0 extends [oracle.apps.fn d.security.DBCo nnObjPool@8046d 20 $Revision: 115.28 $ {false,true,122 8997403081,0,12 28997403081,0,f al
se,300,5,4,5 00,500,0,1,5,10 000,3,0,500,1,o racle.apps.fnd. common.Statisti cs@8007962}] $Revision: 115.26 $ {false,true,fal se,-1
,-1,561}] )
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) No se pudo recuperar conexión DB desde AOL/J
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) Couldn't retrieve connection, giving up!
java.sql.SQ LException: No se pudo recuperar conexión DB desde AOL/J
at oracle.apps.mwa .container.Appl icationsObjectL ibrary.getConne ction(Applicati onsObjectLibrar y.java:1022)
at oracle.apps.mwa .container.Base Session.getConn ection(BaseSess ion.java:185)
at oracle.apps.inv .count.server.D BHandler.setRef reshConn(DBHand ler.java:42)
at oracle.apps.inv .count.server.P ageTarimaComp.s etFieldNoTarima (PageTarimaComp .java:151)
at oracle.apps.inv .count.server.P ageListener.fie ldProdTarima(Pa geListener.java :107)
at oracle.apps.inv .count.server.P ageListener.fie ldExited(PageLi stener.java:32)
at oracle.apps.mwa .container.Stat eMachine.callLi steners(StateMa chine.java:1661 )
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:535)
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:842)
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:1129)
at oracle.apps.mwa .presentation.t elnet.Presentat ionManager.hand le(Presentation Manager.java:39 2)
at oracle.apps.mwa .presentation.t elnet.ProtocolH andler.run(Prot ocolHandler.jav a:820)
[Thu Dec 11 14:24:08 CST 2008] (Thread-17) return Connection is called with userName:LHLORE NZO
I will appreciate your help,
Thank you in advance...
Looks like the user LHLORENZO was not able to login into the Apps? Do you have the same problem with other users as well?
Thanks and Regards,
Senthi l
When we get this errors all sessions show "Please wait" to the users and then we need to restart MWA Server to reestablish the service,
Thanks for your reply
I could not get a clear picture of your problem. Can you explain me whether the problem is with only " LHLORENZO " or with all users?
Thanks and Regards,
Senthi l
We use a module custimization from MWA Framework in this case...
At the beginnig of our daily operations we start without problems,
but some hours later (avg 6 hours), we get some errors (Logged in previous post) on 10202.system.lo g with all users currently connected
and so we have service interruption...
then we need to restart de MWA Server to reestablih the service
What I am not able to understand is how the custom page code is called. We replace the the Custom Function java file thats fine but how does the customized page gets invoked because we are no where mentioning which java file to invoke. May be I am missing something. Please help.
Also if u can help in letting us know how to setup JDev for such customization.
setFirstPageNa me("xxx.oracle. apps.inv.wshtxn .server.XXShipL PNPage"); part in the code. This article is superb.
How to set up the Jdev or any other IDE plz help me on that as i am new to java frameworks.
Nice to hear ...
As far as setup is concerned, you can use JDev or any other IDE for java appln development. As long as you have all the library files you should not have any issue. You can dload the necessary class files from $JAVA_TOP of Oracle Apps Instance and add it to you library of IDE.
For debugging, you can refer my article http://apps2fusion.com/at/ss/225-mwa-setup-testing-error-logging-and-debugging
In case if you face some plm during development you can use our forum http://apps2fusion.com/forums/viewforum.php?f=145
Hope this helps.
Thanks and Regards,
Senthi l
I want to ask a question about barcode scanning. Our customer transfers its products with EAN13 code from one organization to another. However, their item code is different than this code. EAN code information will be kept in item cross references. How can we bring item code after EAN code is scanned?
Thanks,
Best regards,
Filiz
Quick question ... do you any custom plsql or java call which helps you in decoding the EAN13 barcode?
Thank s and Regards,
Senthi l
We have custom PL/SQL format but we don't know how to call it on MSCA screens. First, barcode will be scanned. How can we convert EAN code to item code on screen or on another place?
Thanks,
BR,
Filiz
There is a special setup required to do the same. Kindly post your detailed requirements.
Thanks and Regards,
Senthi l
say i have my custom class file in $INV_TOP/java.
then what should I write in WEB HTML call in fnd function.
What are all the things reqd to be setup.
Will the import "import oracle.apps.fnd .common.Version Info;" work fine in this case.
what should be my package name in the custom code.
>:( :(
Thanks
Kaukab
Can you please explain more about your requirement.
I f it is a new custom module, it should be xxx.oracle.apps .xxwms.......
If it is extended page then it should be xxx.oracle.apps .inv ....
And you can give the same class path in web html. Please let me know where are you struck.
Thanks and Regards,
Senthi l
I am exteanding a rcving transaction page.
Write now I have written a custom Function Bean whixh is calling the custom page bean which is simply extending a std Page. BUt it is giving error after going to Organization page.
It is giving somewaht following errmsg
[Wed Feb 11 14:59:07 EST 2009] (Thread-15) Employee ID :null
[Wed Feb 11 14:59:07 EST 2009] (Thread-15) Organization ID :89
[Wed Feb 11 14:59:07 EST 2009] (Thread-15) Executing the J Patch Set Code
[Wed Feb 11 14:59:07 EST 2009] (Thread-15) Error java.lang.Numbe rFormatExceptio n: null
Please help. What can be reason
Can you please upload the code and log files (INV.log and system.log) into our forum
http://apps2fusion.com/forums/viewforum.php?f=145
Thanks and Regards,
Senthi l
thanks for all the post. But after going deep it seems there is no standards oracle ha followed it has used all sords of hardcoding and etc.
Also lot of things dont work.
I was trying to remove the listener using removeListener( (MWAListener)co ntinueButton.ge tListeners().fi rstElement());
it didnot removed i checked it by geting hte listenes name after executing the remove sttm.
So now it seems i m now in a deep trouble cant go back and cant go ahead.
if i create object by defining it ruins other thing.
Is there anyother way of stopping a listener attached to a object from getting executed.
Can you please brief about your problem?
Thank s and Regards,
Senthi l
I was trying to modify a Listener and was not able to remove the previous attached listener. I tried number of options. So just wrote the above query. Later after further trying I found the soln. I will update you soon on that how, once i am finalized with everything is working fine.
Thankyou For ur reply
Kaukab :)
Nice to hear the news.
Kindly share in your experiences so that it will be useful for lot of people who is trying to do extension on MSCA.
Good Luck!!
Cheers,
Senthil
I have got one new 11i instance. In that when i am trying to open any of the rcving screen on mbile screen then it is giving the error
"Internal error in creating flexfield".
If someone knows how to remove this error plz help.
Thanks
Kaukab
Kindly check whether the item KFF is set up in the new instance. Also check the log files.
Hope this helps.
Thanks and Regards,
Senthi l
In WIP Completion Screen (SerialMovePage ) , we had a requirement to display EID field and the counters based on item.
We were able to achieve that.
The Issue is that if we try to do wip completion consequently for 2 or more times, EID field is not being displayed on the screen.
Please help us in solving this issue.
Thanks,
Anjana.
Can you describe you problem in a detailed manner with your Extended code and log files on the 3rd attempt?
Thank s and Regards,
Senthi l
In SerialMove Page we have something like getNextNavigati onField("serial ");
Please let us know about this field if anyone is aware of the above method
Thanks
Anju.
I am not able to visualize your problem. Can you provide more details?
Thank s and Regards,
senthi l
Among the Customization Methodologies, we are using Copy method which is just taking the original java file from oracle and then remaning it and then working on it.
So our code has all the seeded functionalities along with that we have added 4 additional Fields.
Among them one field is EID.
In that field we have done some validations as well.
Now the isssue is when we try to do a transaction (WIP Completion) consequently for 2 or more times, First 2 times EID field will be visible on the screen and all the validations will happen perfectly and then 3rd time the EID field will not be visible on the screen.
We are not able to figure out why it is so.
As of now we don't have the log messages.
Our New code has "4 additional fields and their corresponding validations" apart from seeded one.
Thanks,
A njana.
Thanks for the description. Can I ask you why you dont have log files?
Regards ,
Senthil
Curre ntly we have some problem with our instances.
That's y we could not get the Log details.
Once the instance is up we will get the log details.
Thank s,
Anjana.
I am afraid I could not help you without log files as this issue occurs only on 3rd attempt. We need to compare the log entries for the txn which went well and the txn which failed. Kindly let me know once you have log files.
Alterna tively, you can think of testing it on other instances where you can get log files or Set up your Jdeveloper to run it locally (Sorry I havent tried this approcah and could not help you much!!)
Thanks and Regards,
Senthi l
I asked few questions in past but could not work on that yet. I followed your instructions to set up MWA GUI on client machine and successfully able to run the hello world program. Now I would like to do the extention to the standard page RcptGenPage. Can you please answer my questions ?
1) As I am extending only the FieldExit class on Item, do I need to extend the function, page also or is it sufficient if I just create a class that extends the field listner class?
2) Once I create the class file(s) where should I put it on my client machine, I would like to test the change locally and then move it to server.
3) Currently my classpath variable is showing the path as : .;C:\Program Files\Java\jre1 .6.0\lib\ext\QT Java.zip this is the path of JDeveloper ver 10.1.3 etc...but I
downloaded the JDK1.8 as per your setup notes into a different directory called C:\OA_Patch. So do I need to change my CLASSPATH?
I know I am asking too many question but I could not find answers to these questions. Please help me.
Regards,
y ogasri
Your answers below:
1) Yes you need to extend the function as you need to point the new function in AOL which inturn points to your new extended page.
2)Deploy ing in the DEV server and bouncing the MWA server with your own port is the easiest way of testing MSCA customization.
3)Yes you need to change the Java path if the MWA GUI cilent is not able to pick up the Java lib files.
Hope this helps.
Thanks and Regards,
Senthi l
Is there is a way to keep them on my client machine (instead of deploying them to the server). Because I dont have access to the server's $CUSTOM_TOP/jav a
direcory....
I appreciate your response.
Rega rds,
yogi
I am afraid there is no easy way of testing other than this.
Thanks and Regards,
Senthi l
If so, please tell me the files or directories I need to get from server and their locations.
Senthil, please excuse me for asing so many questions.
Reg ards,
yogasri
We have used setEnableAccele ratorKey for buttons and in button prompts we have used & symbol.
In the form, the corresponding part of the button name gets highlighted.
B ut there is a problem with this. We are not able to perform the button functionality from the telnet session when we press
the highlighted letter on the key pad.
e.g. For button defined as prompt 'D&one', when we press key 'o' the done button funcionality is not excecuted.
We have done following steps to make 'o' highlighted in form.
mDoneButton.setEnableAccele ratorKey(true);
addFieldBean(mDoneButton);
mDoneButton.addListener(/*Class name correspondin to the listener class*/);
mDone Button.setPromp t("D&one");
Pl ease suggest what additional code is need so that when i press 'o' or any combination of keys
like ctl + o, the done button functionality gets executed.
Omka r Lathakar
Have you tried with Alt+0 ?
Thanks and Regards,
Senthi l
I tried Alt+o. It does not work.
I have seen the hot keys working in telnetSession1. showPromptPage.
In other MWA standard pages also the hot keys dont work as Alt+charactor combination.
P lease help..
Omkar
Do you face the same problem in Oracle stad pages as well?
Have u tried it with mobile device or the Mobile GUI client?
Thanks and Regards,
Senthi l
I have extented the Standard Lot Serial Page. In that there is field Case_qty. This quantity is TextFieldBean. Problem is when i enter 999 in this field the counter goes to other field. But when i enter quantity greater then 999 i.e. 1000 or more,The RF device automatically takes it to 999 only.When i checked it in the MSCA screen, i found if i enter any 4 digit value,and tab out from that field, the counter doesn't goes to next field.It doesn't dispaly any exception or message. It is actually not taking any value of 4 or more digits value. I checked out the CaseqtyExited method in the standard listner, but couldnt find and validation related to it. Can you please guide me as to which might be the case, that this behaviour is occuring. Is any change needed in the property setup or any other thing?
Thanks in advance.
Abhish ek
Few Questions:
1) Have you added a new filed called case_qty in the ORacle Std page using extn?
2) If Case_qty is not added by you, what is the behaviour when you try to use the std oracle page without any extension?
Tha nks and Regards,
Senthi l
1) Have you added a new filed called case_qty in the ORacle Std page using extn?
----- NO. Its not the Non standard customisation. I have created a seperate custom page. This custom page contains the case_qty feild
This field is also present in the Standard page.
2) If Case_qty is not added by you, what is the behaviour when you try to use the std oracle page without any extension?
----In standard page the behaviour is perfect. It is taking the value more then 999.
Can you please upload the source files for both std page and the custom page? I would like to have a look. you can use our forums to upload the same.
http://apps2fusion.com/forums/viewforum.php?f=1&start=0
Thanks and Regards,
Senthi l
Initi ally i was using QtyBean.getValu e. as the qty bean was TextfieldBean
Now when i used QtyBean.getNumb erValue by making QtyBean as NumberFieldBean , I noticed that the Case_qty field has started taking 4 digit value and able to exit from that field
I think when i give 1000 as the value, MSCA architecture automatically takes it as 1,000. So this comma(,), i think was creating the problem.
getNu mberValue method, removes the comma from the value and takes it as complete number value.
Please correct me if i am interprating the things wrongly.
Moreo ver, Can you please explain me the scope for TextFieldBean and NumberFieldBean .
Thanks and Regards,
Abhish ek.
I am new to the World of Oracle MSCA Applications and presently on a demo work with the client for showing the capabilities of MSCA via telnet screen as we are not having any Handhelds.
Requ irement as follows
I Have enabled a DFF in WIP issue Transaction Screen which is poping up when i am using the base Oracle Form for making the transaction,How ever i am trying to do the same in the telnet session,E'thing else comming up but the DFF which i have enabled is not showing.How i can achieve the DFF to be visible on the telnet applciation.
R egards,
Raju BVSN
If you are on 11.5.10, you can use MWA personalization . It is expected to be available on 12.1 as well. See metalink notes : 469339.1 for more details.
I am not aware of any other ways of enabling DFF with MSCA.
Thanks and Regards,
Senthi l
I have developed an application in MSCA. It is working fine on Development server. But after migration on test/Stage server, when I am accessing the page through the menu on stage server, It is showing only.
I have tried to find issue through INV and system logs, but nothing is coming in logs.
Menu ,function and java classes are already migrated to test server.
MWA_SER VER is also bounced.
Pleas e suggest some way to find solution.
Than ks & Regards
Himansh u Joshi
Kind ly make sure that you have the appropriate log level set before you look for log files.
Thanks and Regards,
Senthi l
My custom java page is not showing up. There is no error as such but in the system log i could check see that first its adding all field beans and then removes them one by one. There is no removeFieldBean method used anyewhere in the page. Please suggest.
Thanks
Sandeep N
Do you see this problem in all the enviroments?
Thanks and Regards,
Senthi l
I read your article on the Customization using extending and did the same for adding a new field to the PackUnpackSplit Page page. I created the Page, Function and theL Listener for it and deployed into it.
After changing the AOL function (also tried restarting the server). When I execute the Page, it gives me the old page without the new field and when given Ctrl+X and checked it shows the original class instead of the newly customized class.
How to go about verifying that my customized class is fetched or not and can you give me some options where i could have gone wrong?
Thanks & Regards,
Padma
If you have done all the steps correctly, it should pick up the correct file or it will fail to load the page.
however for quick testing you may create a new function in AOL and link that to your new extended java class and see if that works.
Make sure you link the new function to some std mobile page menus.
Hope this helps.
Thanks and Regards,
Senthi l
Than k you for this tutorial!!!
I have some problem... I need to put custom logic in oracle.apps.wms .ts.server.Main PickFListener class. When i try to make XXMainPickFList ener i found that call statement to MainPickPage found in other class TdPage ... when found all calling path i there is 4 clases(i need to XX all of them???), and worst that the void which contain call statement have private method calling, so i can overwrite it...
Please, help me to find the way to do this customization!!
ps sorry for my bad English
You need to extend only the page where you are planning to do the extension.
If there are any private methods, you can overwrite it.
Please use our forum http://apps2fusion.com/forums/viewforum.php?f=145 .. incase if you need to uplaod your log files or screen shots for better understanding.
Thanks and Regards,
Senthi l
Did we need to change the owner of the modified files as well?
Thanks and Regards
uma
Can you please explain me what do you mean 'owner' of the file?
Thanks,
Senthil
When i executed the page, it gives me the old page without the new field and when i given Ctrl+X and checked it shows the original class instead of the newly customized class
I doubted that my newly customized files and original files are having different owners.
Here my question is do we need to change the owner of the file as well? or not.
If that is the case, I suspect that you new customized files are not picked up for some reasons.
Have you done the proper set up in AOL to point the new customized/exte nded files under Functions?
Tha nks and Regards,
Senthi l
I am trying to add New filed to PackUnPackSplit Page, while extending this class i am getting this compilation error.
javac MOTPackUnpackSp litPage.java
/h ome/applsb2/pro duct/EMOASB02/c ommon/java/orac le/apps/wms/pup /server/PackUnp ackSplitPage.ja va:55: error while writing oracle.apps
.wm s.pup.server.Pa ckUnpackSplitPa ge.SerialClass: /home/applsb2/p roduct/EMOASB02 /common/java/or acle/apps/wms/p up/server/PackU npackS
plitPage $SerialClass.cl ass (Permission denied (errno:13))
protected class SerialClass
^
First i Modified the PUPFunction to invoke my MOTPackUnpackSp litPage
Here is the MOTPackUnpackSp litPage java file
public class MOTPackUnpackSp litPage extends PackUnpackSplit Page
implements MWAPageListener
{
MOTPackFListene r mPUSFListener;
NumberFieldBean mReceiptNum;
NumberFieldBean mReceiptNum1;
private boolean mInitPromptSucc ess;
public MOTPackUnpackSp litPage(Session session)
{
super(session);
//TCS
mReceiptNum = new NumberFieldBean (ses);
mReceiptNum.set Name("REFER");
mReceiptNum.set Prompt("REFER") ;
mReceiptNum.add Listener(this);
mReceiptNum1 = new NumberFieldBean (ses);
mReceiptNum1.se tName("REFER1") ;
mReceiptNum1.se tPrompt("REFER1 ");
mReceiptNum1.ad dListener(this) ;
//TCS
addFieldBean(mR eceiptNum);
addFieldBean(mR eceiptNum);
Vector vector = getFieldBeanLis t();
/* FieldBean receiptNo = (FieldBean)vect or.elementAt(0) ;
FieldBean receiptNo1 = (FieldBean)vect or.elementAt(1) ;
MOTPackFListene r mList = new MOTPackFListene r(this);
receiptNo.addLi stener(mList);
receiptNo1.addL istener(mList); */
}
protected void initPackDisplay ()
{
mReceiptNum.set Hidden(false);
mReceiptNum1.se tHidden(false);
super.mMoreBtn. setHidden(true) ;
}
public void pageEntered(MWA Event mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
super.pageEnter ed(mwaevent);
}
public NumberFieldBean getMReceiptNum( ) {
return mReceiptNum;
}
public void setMReceiptNum( NumberFieldBean receiptNum) {
mReceiptNum = receiptNum;
}
public NumberFieldBean getMReceiptNum1 () {
return mReceiptNum1;
}
public void setMReceiptNum1 (NumberFieldBea n receiptNum) {
mReceiptNum1 = receiptNum;
}
protected void initPrompts(Ses sion session)
throws SQLException
{
super.initPromp ts(session);
String s = (String)session .getObject("ORG CODE");
if(m_txntype == 1)
{
mReceiptNum.set Prompt("REFER") ;
mReceiptNum1.se tPrompt("REFER1 ");
}
}
}
Here i need to modify the modifier for the Seriel Class?
How can proceed pls suggest?
Thanks and Regard
Uma
Looks like when you compile the Java file it is trying to create a '*.class' file but as you dont have the permission to create a file. It is saying 'permission denied'. Please contact DBA to give appropriate permissions to create a file in the directory you are compiling.
Hop e this helps.
Thanks and Regards,
Senthi l
I am able to compile the file by just renameing exiting file(PackUn PackSplitPage 41; to XXXPackUnpackSp litPage. But
When i extending the PackUnpackSplit Page in XXXPackUnpackSplit Page only i am getting this compilation problem.
Here my requirement needs to add two extra fields and with some validation. I structed here. suggest me any other approch?
thank s and Regards
uma
Can you please post this query in our forum so thatit gets wider audience?
http://apps2fusion.com/forums/viewforum.php?f=145
Thanks and Regards,
Senthi l
This is Kiran, I am wokring on cycle count java changes
issue i am facing is the changes are not getting reflected at all even after mobile bounce
we moved files to the xxxwms_top/jar/ oracle/apps/inv /count/server
from the log I can see that it is still old class file getting executed.(class file which need to get refreshed is not happening)
Thi s means bounce is not happening properly ? or is this a path issue . Please suggest
Thanks ,
Kiran
Is your customiazation pointing to the new class files? If that is the case, it should error out saying 'Class file not found'. It might be an bouncing issue as well. But if you have bounced it, it should pick the latest files.
Hope this helps.
Thanks and Regards,
Senthi l
public class XXXCycleCountPa ge extends CycleCountPage
{
The custom class file , i have placed it in WMS custom top
This is already existing file -> I have made changes to this file they are not getting reflected
As explained in the step 4 of the above article is your AOL function pointing the custom class? Kindly verify.
Thanks and Regards,
Senthi l
the class file is compiled without errors, only issue we can see is bounce is not happening for this custom top
and also i have checked this path is included in $AF_CLASSPATH as well
please suggest
I reckon you are using the scripts mentioned in the article http://apps2fusion.com/at/ss/225-mwa-setup-testing-error-logging-and-debugging for bouncing the MSCA server.
Also, I suggest you to bounce all the ports if you are not sure of which port is used by your telnet application.
A lso, You can use our forum to upload the log files to investigate further.
http://apps2fusion.com/forums/viewforum.php?f=145
Thanks and Regards,
Senthi l
simple doubt that with out extending the database, can i extend the user interface?
I am trying to extend PackUnpackSplit Page, after updated file i placed at server, connection getting lost.
I just added on
/* UtilFns.log("Re cipt Initialized");
mReceiptFld = new NumberFieldBean (ses);
mReceiptFld.set Name("RECEIPT") ;
mReceiptFld.set Editable(true);
mReceiptFld.set Value("RECEIPT" )
UtilFns.log("Re cipt Initialized");* /
addFieldBean(2 ,mReceiptFld);
mReceiptFld.set Hidden(false);
mReceiptFld.set Prompt("RECEIPT ")
Thanks and Regards
I could not get a clear picture of your problem. What do you mean by saying extending the database?
Kind ly clarify.
Thank s and Regards,
Senthi l
How should i proceed, If any one extended the pack screen please let me know
Thanks and Regards
uma
Can you please have a look at our forum
http://apps2fusion.com/forums/viewforum.php?f=145
there are few source code examples available for MSCA extensions.
ho pe this helps
Thanks and Regards,
Senthi l
Ref-- >Extend a standard Oracle MSCA/MWA page.
It was a nice article. *****After extending all three Java files deploy the class files into the Apps Instance. Could you please elaborate this step.
Thanks,
Srini
I meant of transfer of files (Java Class files) from local PC to Apps Server into appropriate directories
ho pe this helps.
Thanks and Regards,
Senthi l
need your help, how to set transfer LPN in field pick load page not mandatory, i try use mwa personalization framework, but it did not work, because default value for that field is mandatory, is it possible to change it ?
Thanks
If you extend the std page and mark the required property as false usinf setRequired(fal se); , it should work.
Hope this helps.
Thanks and Regards,
Senthi l
Thank s for responded, how to customize pick load and pick drop page, i cannot find function class for both page ?, do have step by step example for customize that page, for example add new field in that page ? i'm very glad if there is some document step by step to customize that page. can you email me the document if you have ? please send to whankeyahoo.com
i'm waiting your update ... thank you senthil
Can you please post your query on the forum http://apps2fusion.com/forums/viewforum.php?f=145 so that you may get wider audience.
Hope this helps.
Thanks and Regards,
Senthi l
I am extending a class Like : oracle.apps.wms .td.server.Task SignonPage.clas s.
In This class Submit button action i want to add my custom code to call my customization page(New Page)
But Button variablle declared as Private Like : private TdButton mSubmitBtn;
I can i call the Private Submit button into the extended or Customized class.
In this Submit Button i want to call the the customization page Like :oracle.apps.wm s.td.server.XXM ainPickPage
In this page i have added a one filed name like "Pick" Code is like : xx_MasterCasesF ld = new TextFieldBean() ;
xx_MasterCasesF ld.setName("XX_MASTER_CASES");
xx_MasterCasesF ld.setEditable(false);
xx_MasterCasesF ld.setHidden(false);
xxinitLayout();
addListener(thi s);
This is only display filed,but when i am try to navigate to this page filed is always displayed on top of the page
I need the like last of below the QTY filed.
3. When the page loads i want to get the Required Fileds value to set the calculated value in the customized field.
Colud you please suggust me how to get that value Oracle Base page is like : MainPickPage.cl ass.
4. Do i need to create a new Listener for display feild values
Give a reply ASAP please
Thanks & Regards
Sreeram
My answers:
1) If the button is declared as a private variable, there must be a getter method to get the handle of it. please use the same.
2)Please use the method addFieldBean .. For ex, this.addFieldBe an(3, mTxtField); places the filed bean in 3rd position.
3) I am not clear about your requirement. If you extend a base class, you should be able to get the handle of all the beans.
4) You can extend the listner class if you want to handle the events of the new fields.
Hope this helps.
Thanks and Regards,
Senthi l
I have created a new custom file XXXMOVEMENUITEM and placed at the custom application top location i.e
XXXWMS_TOP/jav a/jar/oracle/ap ps/wip/wma/MENU /ZBRMOVEMENUITE M
Also new function created in AOL is pointing to oracle.apps.wip .wma.MENU.ZBRMO VEMENUITEM
Whe n compiled i did not see any issues, class file generated succesfully.
A fter mobile bounce, when I tried to navigate I am getting below message in system.log
[Tu e Mar 09 00:13:00 CST 2010] (Thread-16) Couldn't load given class: oracle.apps.wip .wma.MENU.ZBRMO VEMENUITEM
jav a.lang.ClassNot FoundException: oracle.apps.wip .wma.MENU.ZBRMO VEMENUITEM
at java.net.URLCla ssLoader$1.run( URLClassLoader. java:200)
at java.security.A ccessController .doPrivileged(N ative Method)
at java.net.URLCla ssLoader.findCl ass(URLClassLoa der.java:188)
at java.lang.Class Loader.loadClas s(ClassLoader.j ava:307)
at sun.misc.Launch er$AppClassLoad er.loadClass(La uncher.java:301 )
at java.lang.Class Loader.loadClas s(ClassLoader.j ava:252)
at java.lang.Class Loader.loadClas sInternal(Class Loader.java:320 )
at java.lang.Class .forName0(Nativ e Method)
at java.lang.Class .forName(Class. java:169)
at oracle.apps.mwa .container.Appl icationsObjectL ibrary.loadClas s(ApplicationsO bjectLibrary.ja va:1479)
at oracle.apps.mwa .container.Appl icationsObjectL ibrary.getFirst ApplicationName (ApplicationsOb jectLibrary.jav a:846)
at oracle.apps.mwa .container.Menu PageBeanHandler .pageExited(Men uPageBeanHandle r.java:218)
at oracle.apps.mwa .container.Stat eMachine.callLi steners(StateMa chine.java:1668 )
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:868)
at oracle.apps.mwa .presentation.t elnet.Presentat ionManager.hand le(Presentation Manager.java:74 3)
at oracle.apps.mwa .presentation.t elnet.ProtocolH andler.run(Prot ocolHandler.jav a:849)
Please suggest.
Thank s,
Kiran Gujjari
The normal practice is to build pages in packages like xxx.oracle.apps .wip.wma.MENU.Z BRMOVEMENUITEM.
Also make sure that you have added the path "XXXWMS_TOP/jav a/jar/oracle/ap ps/wip/wma/MENU /ZBRMOVEMENUITE M " to your Java Class path.
Hope this helps.
Thanks and Regards,
Senthi l
echo $CLASSPATH doesnt contain $ZBRWMS_TOP/jav a/jar.
So this could be the reason ?
But I am able to compile the files, issue is coming only at the time of run time.
Thanks,
Kiran
Thanks and Regards,
Senthi l
i have one more issue
i am working on R12 instance, when trying to decompile the class file of MSCA below is the message
D:\... .>jad -sjava MovePage.class
Parsing MovePage.class. ..The class file version is 49.0 (only 45.3, 46.0 and 47.
0 are supported)
49. 0 which means it is of 1.5 version in R12 instance, but same class file from 11i instance is getting compiled without any issues.
From the analysis I understood that JAD is supporting only till major.minor version 46.0 and 45.0
It would be really helpful for me if u can suggest me how I can decompile the R12 classfiles with JAD, is there any other utility for this.
this is stopping my development activity ;-(
Thanks,
Ki ran
I am not very much familiar with OAF, MWA technologies. I am given a requirement as detailed below. Please help me with the solution.
In the page "Mobile WMS Pick Load" , there are some fields like Sub Inventory, Item, Req_Qty etc fields and all of them have a "Confirm" field for each of them.
But there is a field called "Xfer LPN" but there is no "Confirm" field for that. My customer wants to have "Confirm" field for "Xfer LPN".
So I tried to look at the field definitions and noticed that there is a field "MAIN.XFER_LPN_ CONFIRM" field. So I checked the properties for this filed. Especially, the "Rendered" is set to True. But this fioeld is not seen on screen.
So My question to you is :
1) Is that teh correct fieeld that captures the "Confirmation" for the Xfer_LPN"? If so, why is it not displayed on the screen inspite of the "endered " is set to True?
2) How can we meet this requirements?
Please help me with this issue. Thanks
Regard s,
Sri
I guess there might be some logic involved in hiding the bean .. You may need to analyse the source code and make necessary extensions.
Ho pe this helps.
Thanks and Regards,
Senthi l
Can u please tell me where / how I can look for the code please. Thanks
Sri
Download the page class and Listener class from and decompile it using any java decompiler.
Th anks and Regards,
Senthi l
So based on what you siad, can I say that it is not something that can be done with personalization but should be considered as an extension?
Thanks and Regards,
Senthi l
I have extended one seeded page for customization. But the Locator field is not working. I am getting the error as Could not create Locator.
I am able to see the LOV. But once I select some value and enter then I am getting above error. After this the cursor is not moving further. Please can you guide me on this? This is bit urgent.
Thanks ,
Rupa
Can you please see the exact error from the error log and tell us what happens when you click the LOV?
Thanks and Regards,
Senthi l
Thank s for the quick reply.
Actuall y in the log I can't see any error.
This is also not a error but the status message displayed at the bottom of the screen when I choose any value from Locator LOV.
Thanks,
R upa
Enable the logging level to "trace" and restart the MSCA server port and chk for logs
Refer my article to set up log level :http://www.app s2fusion.com/at /ss/225-mwa-set up-testing-erro r-logging-and-d ebugging
Thank s and Regards,
Senthi l
I have extended a page and placed it under custop application path $ZBRWMS_TOP/jav a/jar/oracle/ap ps/wip/wma/MENU
But I am getting ClassNotFoundEx ception
We have added the custom java path to CLASSPATH as well
echo $CLASSPATH shows above entry.
environm ent file is also having entry for ZBRWMS_TOP
and mobile services also bounced.
Pleas e can you suggest if we need to make entry of this path at some other place as well .
Thanks,
Kira n
Is your AOL function pointing to right class?
Can you please check that out?
Thanks and Regards,
Senthi l
Yes it is pointing to correct class file same.
Thanks,
Kiran
What is the package structure for your new extended java class and the std java class. Also it would be great if you can give me the class path of the AOL function.
Than ks and Regards,
Senthi l
I have extended MOVEMENUITEM class file and in new AOL Function I am calling extended file as below
From function = oracle.apps.wip .wma.MENU.ZBRMO VEMENUITEM
ZBR MOVEMENUITEM is moved and compiled under $ZBRWMS_TOP/jav a/jar/oracle/ap ps/wip/wma/MENU
standard java top = $JAVA_TOP
custo m application java top = $ZBRWMS_TOP/jav a/jar
custom application java top has been added to CLASSPATH as below and set in env file as well
CLASSPATH = $ZBRWMS_TOP/jav a/jar:$CLASSPAT H
Thanks,
Kira n
I am afraid that you are not following the correct approach. If you look at my article above, I have created the extended Java file under a new dir called "XXX" .. In your case both the std and extended java file have the same package str? Am i right?
Kindly clarify.
Thank s and Regards,
Senthi l
Yes you are right.
But I don't think it will make any difference, because I have same issue with my CustomScanManag er class.
I have created a new class CustomScanManag er for scan logic on picking page and placed under $ZBRWMS_TOP/jav a/jar/xxx/custo m
But the same is working fine if this class is placed under $JAVA_TOP/xxx/c ustom
As mentioned above $ZBRWMS_TOP/jav a/jar entry is made in CLASSPATH. As long as we have this entry in CLASSPATH they should get picked up, which is not happening.
Please suggest.
Thank s,
Kiran
As you told in your article. I had extended this page and got intended results. But I have few doubts. This page got Load/Exit, Continue/Ship (S), Missing Items (M), Missing LPN (L) buttons. But why do you need only write code for Continue button. In yout article you mentioned that
//This method is needed to make LOVs and some Submit buttons to work properly after extension
//The purpose of this method will be explained in later articles.
Did you explain this in later articles? If so could you point those articles to me. I am greatly appreciated for this. Any how thanks for maintaing such a wonderful site.
Regards .
Srini.
I am new to MSCA and I have to customize the MainPickPage. I have read your comments in above posts "problem with MainPickFListen er" , But the problem is that, the page has been called after 2-3 layers of pages and dynamically driven based on some logic at pervious page (Next available Tasks). My Question is If we customize only this page . How I will make sure that our custom page will be called through the same process(through 2-3 pages). Also the design of this page does not allow a direct call from form function.
Also please advice the best way to customize the MainPickPage(th roughout layers).The customization we are doing is , when user will click the Load and Drop button , a new custom page should open.
Please find below the navigation in R12
5. Tasks -- 1 directed Tasks -- 1. Interleaved tasks -- 1 Pick any Task
Thanks in advance
I could not understand your problem fully and I would suggest you to post your query with exact error stack / attachments in our forum for wider audience
http://apps2fusion.com/forums/viewforum.php?f=145
Thanks and Regards,
Senthi l
I am very new to MSCA . This site is very useful for beginners and helped me a lot. Thank you very much Senthil for starting this forum.
I am facing an issue that the standard Procedures pageEntered and pageExited is not getting fired.
public void pageEntered(MWA Event mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
UtilFns.log("Pa ge - Page Entered");
FileLogger.getS ystemLogger().t race("SMART Country Of Origin Page - Page Entered");
super.pageEnter ed(mwaevent);
}
public void pageExited(MWAE vent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
UtilFns.log("Pa ge- Page Exited");
FileLogger.getS ystemLogger().t race(" Page - Page Exited");
}
Ant pointers why these procedures are not triggering?
Th anks in advance!!
Rega rds,
S Kumar
I found the root cause. I have not attached the listener to page.
Regards,
S Kumar
Another is , i have two screens after completion of entries in first screen then we have to move to second screen and complete transaction in second screen.
But the requirement is to complete the transaction in first screen itself before that we have to get a value from second screen field and complete the process in first screen itself(we should not go to second screen at all).
Can i get the approach and required things to do for achieving this
Reg Q 1: Where are struck up?
Q 2: why cant you build a custom form and replace the standard form?
Kindly provide more details.
Thank s and Regards,
Senthi l
1 .Actually i am new to MSCA module. I want to know how to do validations(sho uld we write procedures and call) like if we enter po num and the corresponding supplier,notes, release,item,de scription,quant ity,uom should be displayed.
2.how can we get values into field from database.
can u just breif about this things. and if required i will mail to you my requirement.
- ---They dont want to build custom page.
Regards
Murali
1) Yes .. you are right .. call a PLSQL procedure with PO Num as input and get all the other values as OUT parameter and set the same in the mobile page.
2) There are APIs provided by MSCA Framework to default the values. Kindly refer to the code snippets in my previous articles.
Get familiar with the MSCA Architecture and APIs before you actually start coding.
Hope this helps.
Thanks and Regards,
Senthi l
How to enable the DFF at WIP job move transactions page on MSCA screen? I have enable dthat DFF on Apps forms, I want to scan some value and put it in that DFF. How to do this ? Could you please help?
Regards
Ravindra
If you are on 11.5.10 or 12.1 you can use MWA personalization framework to enable DFF. Else you have to go for extension or customization. For the use of scanning, you may have to use CustomScanManag er.java
Hope this helps.
Thanks and Regards,
Senthi l
I have new requirement like I need to activate the LPN load menu on certain responsbility. Currently this load menu is visble under wms mobile super user responsbility.. What are steps invloved to activate the Load menu under new responsbility.
function: 'WMS_MANUAL_PIC KING_MOB'
Webhtml : oracle.apps.wms .td.server.Task SignonFunction
Thanks
ak
I have new requirement like I need to activate the LPN load menu on certain responsibility. Currently this load menu is visble under wms mobile super user responsbility.. What are steps invloved to activate the Load menu under new mobile responsbility.
function: 'WMS_MANUAL_PIC KING_MOB'
Webhtml : oracle.apps.wms .td.server.Task SignonFunction
my oracle version 11.5.10.1
Thanks
ak
It is almost same process
Create a new menu and attach the function WMS_MANUAL_PICK ING_MOB to it.
Create a new responsibility and attach the menu which you created above.
Only difference in the step 2 is you have to choose the option 'Oracle Mobile Applications' under 'Available Form'
Check the responsibility 'Materials Mgmt' for an example.
Hope this helps.
Thanks and Regards,
Senthi l
Thank s for the update. Both Responsibilitie s are using same menu & function, only difference is while perorm LPN loading the load button is not avaliable one responsbility but other responbility have...how we can do this setup /restrication.. .I tried MWA personalization ...but even thats not also working...
Plz advise,
Thanks
ak
I am very new MWA application. I just installed netbeans IDE 6.91. but i am not able view jar file //help here please ...how can view the jar file & clsaases
If that is the case, you have to check what is the logic used to hide/load the button in the source code.
Alexpete r -
Unzip/ expand the jar files and extract the java files. For class files you can use any decompiler to view the source.
Hope this helps.
Thanks and Regards,
Senthi l
I am extending a standard wms page to default a value in the LOT field. The page is the Subinventory Transfer page. I have extended the function and the page classes and pointed the custom function to the custom page. The issue is that the ItemLOV in the custom page shows results whereas the standard page works fine. Below is my code. Could you please let me know if I am missing any step. I dont get any error message in the trace file.
Function class
--------- ---------
impo rt oracle.apps.inv .invtxn.server. SubXferFunction ;
import oracle.apps.inv .utilities.serv er.UtilFns;
pu blic class xxSubXferFuncti on extends SubXferFunction {
public xxSubXferFuncti on() {
super();
UtilFns.trace(" Inside Function ");
setFirstPageNam e("xx.oracle.ap ps.inv.invtxn.s erver.xxSubXfer Page");
}
}
Page Class
--------- ----
public class xxSubXferPage extends SubXferPage {
public xxSubXferPage(S ession paramSession) {
super(paramSess ion);
UtilFns.trace(" xxSubXferPage Constructor");
}
public void pageEntered(MWA Event e) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {
ses = e.getSession();
super.pageEnter ed(e);
UtilFns.trace(" xxSubXferPage - pageEntered ");
}
public void pageExited(MWAE vent e) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {
ses = e.getSession();
super.pageExite d(e);
UtilFns.trace(" xxSubXferPage - pageExited ");
}
public void specialKeyPress ed(MWAEvent e) throws
AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException
{
ses = e.getSession();
super.pageExite d(e);
UtilFns.trace(" xxSubXferPage - specialKeyPress ed ");
}
Session ses;
protected xxSubXferFListe ner localSubXferFLi stener;
}
Rega rds,
Girish.
If you look at my above article, you can see the code snippet
//LPN Lov initialization
String[] lpnInputs =
{ " ", "ORGID", "LOCATORID", "TRIPID", "TRIPSTOPID",
"xxx.oracle.apps.inv.wshtxn.server.XXShipLPNPage.ShipLPN.LPN" };
getLpnFld().set InputParameters (lpnInputs);
Y ou have to do the same for your Item LOV and all LOVs in std Page.
If you have a deep look at the log, one of the parameter will be passed as null to the LOV API.
Hope this helps.
Thanks and Regards,
Senthi l
Thanks for the information.
R egards,
Girish.
I created the custom java class extends from RcptGenFunction ,i attached the java class into function.
When i try to open the fnction, the screen automatically logged out and came to login screen with below error
" Unexpected error occurred, Please chec > '
can you please suggest on this.
Thanks
S uresh
Can you be more clear on your query. Please put some useful log information so that we can take a deep look.
Thanks and Regards,
Senthi l
I have installed oracle 11.5.10.2 using XP professional enviroment.i am able to start MWA server.But when i am trying to connect to MSCA application using telnet ,it dropping connection immediatly.
can you please help.
Thanks and regards
vipul
Can you please look at the log files and provide some meningful information so that I can have a look?
Thanks and Regards,
Senthi l
is there any mehod for setting focus forfield on msca new screen.
thanks
shailendra
i am extending a page ,and now i want to remove listner of that page of a Button and want to add new listner
can u please tell me how to do it.
thanks
sha ilendra
Yo u should actually be looking at the following code to set the listener.
//se t new Listener to the page
XXShipLPNFListe ner xxListener = new XXShipLPNFListe ner(new Session());
Ho pe this helps.
Thanks and Regards,
Senthi l
what is your suggestion?
thanks for help
Can you please paste the code of your custom java class? Also, can you let me lnow what error you are getting when you try to open the page?
Kindly Clarify.
Thank s and Regards,
Senthi l
we are sendig custom code...
also we have a question, if we want to set length of item field, is it possible?
Our customer have a special barcode(datamat rix) which created by its vendors and barcode length is bigger then items field length (40 characters).
For these barcodes, we customized inv_scan manager, we will pars the barcode, but when we scan barcode on item field, some characters are missing (after 40th).
what is your suggestion?
tha nks for help
package xxmp.oracle.app s.inv.invtxn.se rver;
import oracle.apps.inv .invtxn.server. RcptTrxFunction ;
import oracle.apps.mwa .container.File Logger;
publi c class xxmpRcptTrxFunc tion extends RcptTrxFunction
{
public xxmpRcptTrxFunc tion()
{
super();
setFirstPageNam e("xxmp.oracle. apps.inv.invtxn .server.xxmpRcp tTrxPage");
FileLogger.getS ystemLogger().t race("----SAYFA : xxmp.oracle.app s.inv.invtxn.se rver.xxmpRcptTr xPage");
}
}
package xxmp.oracle.app s.inv.invtxn.se rver;
import oracle.apps.inv .invtxn.server. RcptTrxPage;
im port oracle.apps.mwa .beans.TextFiel dBean;
import oracle.apps.mwa .container.File Logger;
import oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.Abo rtHandlerExcept ion;
import oracle.apps.mwa .eventmodel.Def aultOnlyHandler Exception;
impo rt oracle.apps.mwa .eventmodel.Int erruptedHandler Exception;
impo rt oracle.apps.mwa .eventmodel.MWA Event;
import oracle.apps.mwa .beans.ButtonFi eldBean;
import oracle.apps.mwa .beans.TextFiel dBean;
public class xxmpRcptTrxPage extends RcptTrxPage
{
TextFieldBean mTxtField;
public xxmpRcptTrxPage (Session s)
{
super(s);
//this.addListe ner(this);
//Add a new button and set the properties.
mTxtField = new TextFieldBean() ;
mTxtField.setNa me("XXMPBARCODE ");
mTxtField.setPr ompt("Barcode") ;
mTxtField.addLi stener(xxListen er);
mTxtField.setVa lue("");
this.addFieldBe an(3, mTxtField);
}
public void pageEntered(MWA Event e) throws AbortHandlerExc eption
{
super.pageEnter ed(e);
initCustomPage( e);
}
public void initCustomPage( MWAEvent e) {
/* AccountLOV Transaction_Acc ount;
Transaction_Acc ount = new AccountLOV();
Transaction_Acc ount.setInputParameters(new String[] {
"", "ORGID", "oracle.apps.inv.invtxn.server.RcptTrxPage.Transaction_Acc ount"
});*/
getAccountLOV() .setInputParame ters(new String[] {
"", "ORGID", "oracle.apps.inv.invtxn.server.RcptTrxPage.Transaction_Acc ount"
});
}
xxmpRcptTrxFLis tener xxListener = new xxmpRcptTrxFLis tener(new Session());
}
package xxmp.oracle.app s.inv.invtxn.se rver;
import oracle.apps.inv .invtxn.server. RcptTrxFListene r;
import oracle.apps.mwa .container.Sess ion;
public class xxmpRcptTrxFLis tener extends RcptTrxFListene r
{
public xxmpRcptTrxFLis tener(Session s)
{
super(s);
}
}
In the following piece of code,
getAcco untLOV().setInp utParameters(ne w String[] { "", "ORGID", "oracle.apps.in v.invtxn.server .RcptTrxPage.Tr ansaction_Accou nt" });
oracle.apps.i nv.invtxn.serve r.RcptTrxPage.T ransaction_Acco unt should be replaced with your custom page name xxmp.oracle.app s.inv.invtxn.se rver.xxmpRcptTr xPage
As far as the length issue is concerned, am not sure of any working API to set the length. But I am sure that even if the length exceeds 40 characters, it might not get displayed on the screen but it will be stored in the field. I havent heard of any cases where oit is not accepting more than 40 characters.
Tr y to get the scanned value in a variable and print it in the log file and see the real value.
Hope this helps.
Thanks and Regards,
Senthi l
we can set length of item field(80). but after this customization, we have to set lov's for all fields. is it normal?
thanks
Thanks,
Senthil
if we change item field length, we have to set item lov, subinventory lov, account lov, locator lov ...
is it true?
My current page is XXXXMainPickPag e4.java and from this page i am trying to call XXXXPickDropFLi stener4.java class as mentioned below.
But i am getting the ClassCastExcept ion.
XXXXPickD ropFListener4 pdPage;
pdPage = (XXXXPickDropPa ge4)session.get CurrentPage(); // where the Current Page is XXXXMainPickPag e4.java.
Compiling is fine but when i am trying to run the Mobile application, i am getting the following error.
[Fri Dec 24 11:47:51 GMT 2010] (Thread-14) MWA_PM_UNEXPECT ED_ERROR_MESG: Unexpected error occurred, Please check the log.
java.lang. ClassCastExcept ion: xxx.oracle.apps .wms.td.server. XXXXMainPickPag e cannot be cast to xxx.oracle.apps .wms.td.server. XXXXPickDropPag e4.
Can you please help to resolve the issue?
Thanks in advance.
Ramesh .
XXXXP ickDropPage4 pdPage;
XXXXPickDropPa ge4 pdPage=(XXXXPic kDropPage4)sess ion.getCurrentP age(); // where the Current Page is XXXXMainPickPag e4.java
Apolog ies for inconvenience.
Regards,
Rames h.
What is the base class for XXXXPickDropPag e4 and XXXMainPickPage 4?
Why are you tupe casting XXXXPickDropPag e4 for getCurrentPage( )?
How do you invoke call to the next page?
Kindly Clarify
Thanks and Regards,
Senthi l
The base class for XXXXPickDropPag e4 extends XXTdPage and XXXXMainPickPag e extends XXConfigPage.
T he reason for type casting is , i have a oracle function under Submit method in XXXXPickDropPag e4 which needs to be called in XXXXMainPickPag e4.
public class XXXXMainPickPag e extends XXConfigPage implements ConfigConstants
{
public static boolean fetchNextTask(M WAEvent mwaevent)
throws AbortHandlerExc eption
{
I have a function under this method which results in yes or No.
If Yes
{
buttonfieldbean.setNextPageName("xxx.oracle.apps.wms.td.server.XXXXPickDropPag e4"); // This is working fine.
}
else
{
if No
Then without going into XXXXPickDropPag e4 page , i want to call Submit method which is under XXXXPickDropPag e4 from XXXMainPickPage 4 only.
For this functionality, what i have done is , i tried to create and object of XXXXPickDropPag e4 in XXXMainPickPage 4 and then with that object i tried to call the Submit method.
So the session belongs to XXXMainPickPage 4 but action belongs to XXXXPickDropPag e4.
For this only its throwing me error.
}
}
Please correct me if my understanding or my approach is wrong and let me know if further details are required.
Rega rds,
Ramesh.
I am not sure whether your logic will work. Never tried something like this.
If your intention is to call directly the action of anther page's submit button, why cant u call the API of the submit page of the target page in your current listener?
Not sure if it is a good idea ..but just a thought
Thanks and Regards,
Senthi l
Actuall y one of my client dont want to Navigate all the Pages in some Particular condition. This is to save the time of operation.
So want to add the actions that were belonged to other pages with in the same/ Current page itself.
Regard s,
Ramesh.
i want to extend PO reciept for specifcally PO prompt,
for that i am creating three classes
1GSIEx tRcptGenFun extends RcptGenFunction
2.GSIExtRcptGe nPage extends RcptGenPage
3.G SIExtRcptGenFLi stener extends RcptGenFListene r
i have did all the steps you have given above ,
but the problem is after accepting Org code the contol is returning to inbound menu.
the actual page is not getting display.
follow ing are the debug file contains
java. lang.reflect.In vocationTargetE xception
at sun.reflect.Nat iveConstructorA ccessorImpl.new Instance0(Nativ e Method)
at sun.reflect.Nat iveConstructorA ccessorImpl.new Instance(Native ConstructorAcce ssorImpl.java:3 9)
at sun.reflect.Del egatingConstruc torAccessorImpl .newInstance(De legatingConstru ctorAccessorImp l.java:27)
at java.lang.refle ct.Constructor. newInstance(Con structor.java:5 13)
at oracle.apps.mwa .container.Stat eMachine.loadPa ge(StateMachine .java:1405)
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:1056)
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:898)
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:1185)
at oracle.apps.mwa .presentation.t elnet.Presentat ionManager.hand le(Presentation Manager.java:74 3)
at oracle.apps.mwa .presentation.t elnet.ProtocolH andler.run(Prot ocolHandler.jav a:850)
Caused by: java.lang.NullP ointerException
at oracle.apps.inv .rcv.server.Rcp tGenPage.initLa yout(RcptGenPag e.java:340)
at oracle.apps.inv .rcv.server.Rcp tGenPage.(RcptG enPage.java:285 )
at xxx.custom.serv er.GSIExtRcptGe nPage.(GSIExtRc ptGenPage.java: 20)
... 10 more
[Wed Jan 05 02:05:02 CST 2011] (Thread-18) SM_EXCEPTION: Exception occurred with user DHARNE_K
java.lang.NullP ointerException
at oracle.apps.inv .rcv.server.Rcp tGenPage.initLa yout(RcptGenPag e.java:340)
at oracle.apps.inv .rcv.server.Rcp tGenPage.(RcptG enPage.java:285 )
at xxx.custom.serv er.GSIExtRcptGe nPage.(GSIExtRc ptGenPage.java: 20)
at sun.reflect.Nat iveConstructorA ccessorImpl.new Instance0(Nativ e Method)
at sun.reflect.Nat iveConstructorA ccessorImpl.new Instance(Native ConstructorAcce ssorImpl.java:3 9)
at
please look in this issue .
thanks
sha ilendra
Looks like the issue has originated from Line no 20 of the file xxx.custom.serv er.GSIExtPcptGe nPage.java?
Ca n you please cut-paste the code snippet over here?
Thanks and Regards,
Senthi l
very thanks for quick reply
the problem was in menu i solved it
thanks
shailendra
In one of the pages of MSCA, there are 6 text boxes and 2 buttons. Out of which 1,2,4 text fields are non editable and other 3 text fields are editable. When i open this page the cursor will directly go to field number 5 which is editable and user will enter the data and other fields are pre populated from an oracle proc.
Now the problem is when i am trying to load this page , the first field (Text Field number 1)is getting scrolled up making it not visible in Mobile.
But when i move the cursor upwards then the first field is comming down and getting visible.
I have not writted any code to hide the field but even then this problem occurs.
Is it a problem with layout of the page or some problem in my code?
Please advice.
Regard s,
Ramesh.
my problem is when i scan same serial number twice it give my error " Serial Number already being used" , and keep the scanned serial in the text field .
what i want is to clear the text field when this error appears , how can i do it ?
thanks
Mohammed
I could not see any images in your Blog. I am not sure if you are aware of this issue. Anyway I am not able to follow your blog completely to the necessary settings!!
Reg ards,
prabhakar
I can see images without any problem. Pls try and check with other browsers or any other high speed internet connection.
Th anks and Regards,
Senthi l
I am currently working from my office and it has excellent internet speed.. Still I am not getting any images. Anyway I am good in Java and learnt a great bit in last couple of days using your blog. Currently I have customized the PickDrop page. but I am not sure how to call this custom page from menu.
oracle.ap ps.wms.td.serve r.TaskSignonFun ction
This is what I see in the HTML menu, but not sure how it would end up calling my page. Without the images I am kind of stuck!!
Also on the side note, i am kinda inspiired looking at your blog and your dedication on replying patiently and clearly for various questions (same repeating to say the least). I am planning to write my own blog on techologies which I am good at like SOA (BPEL) , ADF, Java.
Keep up the good work and keep inspiring many!!
in your office might be some setting or privacy thats why you are not able to see images,
any way you can register your function class in function ,set your java function class in html class,and register menu in menu...
this is very simple.
thanks
shailendra
Thanks for clarifications. Still i did not get the clarifications on customization of PickDrop page and its standard one. It is registered to oracle.apps.wms .td.server.Task SignonFunction. I am not sure how to tell the system that instead of invoking PickDrop at nth level, call mine which is XXPickDrop page.
Regards,
Prab hakar
replace the html call you want to customize with your new XXPickDrop page
but you have to replace only function class .
so extend TaskSignonFunct ion class and make your own function class.
i have extended PO reciept form,
but after hitting Done button trsanction is getting suceess but instead of one line two line is getting inserted as recieving,pleas e tell me what will be the reason.
thanks
shailendra.
Ki ndly check in your code whether the API for insertion is called twice. Print some log messages and figure out what is going on.
Hope this helps.
Thanks and Regards,
Senthi l
i am the api is standard,
on donebutton exit event i am only generating some xml,
but suppose i am removing listner on Done button then its working fine,
but requirement is i have to generate xml after done button is getting hitted.
please reply
thanks shailendra
It would be great if you can share the code and log files.
Please use our forums to upload the files.
http://apps2fusion.com/forums/viewforum.php?f=145
Thanks and Regards,
Senthi l
as an extra filter to filte load page.i am able to extend but unable to filter load page.
please give me some suggestion to how to do it
thanks
shai lendra
Ca n you explain what do you mean by "i am able to extend but unable to filter load page?"
Thanks and Regards,
Senthi l
in this the startup page is TaskSignonPage ,on this page i am adding one extra field.this page is used as a filter
after hitting done button new page "Load aus " page is displayed .the data on this page is result of some filtereation on TaskSignonPage .now i have added one more field "store Num" so now i want one more filteration criteria.
i have extended TaskSignonPage ,and added one field "store Num" and after hitting done button "load aus" page is coming but data on the page is not filter on extra field "
so how to filter data on "load aus" page.
thanks
s hailendra
I need to customize the Order Picking form. The requirement is, once the order is picked and droped successfully, i need to call an API.
For this customization i need add my code in PickDropFListen er.pickDrop() method. How can i acheive this by extending the seeded Listener. please guide me. Its urgent.
Manjul a
@Manjula, Did you follow the steps mentioed in the above article? Where are you struck? Are you getting any error msg?
Kindly Clarify.
Thank s and Regards,
Senthi l
extended TaskSignonFList ener to xxGSLTaskSignonFList ener
extended TaskSignonPage to xxTaskSignonPag e
in xxTaskSignonFunct ion, inside appEntered(), wrote setFirstPageNam e("oracle.apps. wms.td.server.x xdbdGSLTaskSign onPage");
in xxGSLTaskSignonFList ener, inside fieldExited(), wrote super.fieldExit ed(); String s = ((FieldBean)mwa event.getSource ()).getName(); if(s.equals("EZ P.TASKSIGNON_SU BMIT"))
submitted(mwaev ent);
i have written a method submitted() which sets buttonfieldbean .setNextPageNam e("oracle.apps. wms.td.server.x xGSLCurrentTask sPage");
Now, my doubt is, in superclass TaskSignonFList ener, inside fieldExited(), there is already one condition i.e. if s="EZP.TASKSIGN ON_SUBMIT", then it sets buttonfieldbean .setNextPageNam e("oracle.apps. wms.td.server.x xGSLCurrentTask sPage");
Let me know whether my code takes to the custom page (xxGSLCurrentTa sksPage) or not.
If you override a base class method in an Inherited Class that should get executed. This is a OOPS concept for 'Inheritance'.
Do you find any change in behaviour here?
Kindly Clarify.
Thank s and Regards,
Senthi l
on "load "page whatever the data is coming i want it to filter based on "store num"
thanks
sh ailendra
Di d you check out the filtering logic in Oracle Standard code? Do you need to tweak that logic?
If can make you requirements and problems very clear, it would be easier for me to think and provide a solution.
Than ks and Regards,
Senthi l
i need to tweek the logic and flow of msca part.
This has reference to the Picking Tasks generated after Pick Release (Internal Sales Order).
On a standard Task Sign on Page, user is prompted to choose Equipment, Sub-inventory & Device. Based on these parameters the Picking tasks are filtered & dispatched to the eligible resources (employee).
Apart from the above parameters, I have to add a field "Store Number" (Store Number is a Non WMS inventory Organization and we are doing Inter Org transfer based on ISO).
The requirement is such that the tasks that are dispatched to the Picker are filtered on the basis of the below parameters that are entered on the Task sign on page by the user:
•Equipme nt
•Sub-Invento ry
•Store Number : (This is a custom field on the Task Sign on page)
•Devices
Please let me know if you need any more information.
thanks
shailen dra
Th e requirement is very clear.
The logic to filter the tasks to the Picker may be done on Java or PLSQL
If it is done in Java, override the method in the inherited class. If written in PLSQL, modify the PLSQL code.
Hope this helps.
Thanks and Regards,
Senthi l
if you have time can tell me how to change the logic.
in standrad TdPage they have written a static method:public static boolean fetchNextTask(M WAEvent mwaevent)
the java logic and they have called a package WMS_PICKING_PKG .NEXT_TASK.
ple ase tell me how to overwrite this method.
thanks
shailendra
Di d you try writing a method fetchNextTask() with your new logic in the inherited Java class?
What was the result?
Kindly Clarify.
Thank s and Regards,
Senthi l
in fetchNextTask() method i am not getting where the control is going on ,and also how the MainPickPage
is getting display,without knowing that how can i write filtration logic.how in seeded code the control is going on from "Discrete Picking" menu to MainPickPage.i didnt get this flow yet.
thnaks
sh ailendra
yo u need to de-compile the Oracle Std Java code and understand the flow before even you try to code your logic in your inherited class.
Thanks and Regards,
Senthi l
i have decompile the std. class files,
try to understand but in TdPage fetchNextTask() ,i am not getting where the control is getting transfre for
"discrete picking" menu.
thanks
s hailendra
Ca n you please upload the decompiled file in our forum http://apps2fusion.com/forums/viewforum.php?f=145
Also explain me the page flow in the Oracle Std Page.
Thanks and Regards,
Senthi l
We are not able to trace the flow for Discrete Picking in outbond. Go throw TaskSignonPage. java , TaskSignonFList ener.java , TdPage.java , MainPickPage.ja va all these files. Last file is TdPage.java in which fetchNextTask() function is there. And I was not able to trace how flow going on from these page to MainPickPage.
A lso attached the decompile file. Please hv a look and help us.
I could not see any attachment. Can you pls give the link?
Thanks and Regards,
Senthi l
please find the path
http://apps2fusion.com/forums/viewtopic.php?f=145&t=5520
thanks
shailendra
i have created thre files like below:
xxdbdTa skSignonFunctio n.java
package oracle.apps.wms .td.server;
im port java.sql.SQLExc eption;
import oracle.apps.fnd .common.Version Info;
import oracle.apps.inv .utilities.serv er.UtilFns;
imp ort oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.*;
import oracle.apps.wms .td.server.*;
public class xxdbdTaskSignon Function extends TaskSignonFunct ion {
public xxdbdTaskSignon Function() {
super();
if(Uti lFns.isTraceOn)
UtilFns.trace(" After Super()");
setF irstPageName("d bdcustom.oracle .apps.wms.td.se rver.xxdbdTaskS ignonPage");
}
}
xxdbdTaskS ignonPage.java
package oracle.apps.wms .td.server;
im port oracle.apps.wms .td.server.*;
public class xxdbdTaskSignon Page extends TaskSignonPage
{
public xxdbdTaskSignon Page()
{
super();
}
}
TaskSigno nFListener.java
package oracle.apps.wms .td.server;
im port oracle.apps.wms .td.server.*;
public class xxdbdTaskSignon FListener extends TaskSignonFList ener
{
public xxdbdTaskSignon FListener() {
super();
}
}
And i have creted a function, with HTML Call as oracle.apps.wms.td.server.xxdbdTaskSignon Function.
When I login to mobile forms, and try to access the custom function, it is supposed to take me to xxdbdTaskSignon Page. But it is not happening.
Can you please correct me if I did wrong.
Thanks in advance
I assume that you have all the extended java files under the following package:
dbdcu stom.oracle.app s.wms.td.server
If that is the case, why is your HTML call pointing to
oracle.apps .wms.td.server ?
Kindly Clarify.
Thank s and Regards,
Senthi l
Sorry for the confusion, HTML call is also pointing to dbdcustom.oracl e.apps.wms.td.s erver
when we click on the function, OrganizationId LOv is popping up, once i select orgid and enter, its going to seeded page.
I have seen the log file, after selecting the orgid, setFirstPageNam e("oracle.apps. wms.td.server.T askSignonPage") ;
LOG FILE:
(XXX) handleEvent: submit (2), nextPageName = 'oracle.apps.wm s.td.server.xxd bdTaskSignonFun ction'
[Mon Feb 28 04:49:06 EST 2011] (Thread-15) (XXX) handleEvent: entering app (MenuPageBean)
[Mon Feb 28 04:49:06 EST 2011] (Thread-15) (XXX) loadMenuItem: trying to load 'dbdcustom.oracl e.apps.wms.td.s erver.xxdbdTaskSignonFunction'
[Mon Feb 28 04:49:06 EST 2011] (Thread-15) (XXX) callListeners: executing 1 listeners, action = 0
[Mon Feb 28 04:49:06 EST 2011] (Thread-15) (XXX) callListeners: MenuItemBean
[M on Feb 28 04:49:06 EST 2011] (Thread-15) AOL.Connection - getConnection is called with userName:GADAMS V
. . . .
.......
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) (GADAMSV) handleEvent: submit (1), nextPage = 'oracle.apps.wm s.td.server.Tas kSignonPage'
[M on Feb 28 04:49:10 EST 2011] (Thread-15) (GADAMSV) callListeners: executing 3 listeners, action = 1
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) (GADAMSV) callListeners: PageBean
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) (GADAMSV) handleEvent: submit (2), nextPageName = 'oracle.apps.wm s.td.server.Tas kSignonPage'
[M on Feb 28 04:49:10 EST 2011] (Thread-15) (GADAMSV) handleEvent: common submit handling
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) (GADAMSV) handleEvent: purging OrganizationBea n
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) setCurrentPageP tr: ptr = 4
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) (XXX) purgePageStack: purging at pageIx = 4
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) removeFieldBean : fieldName = oracle.apps.inv .utilities.serv er.ValidateOrgP age.OrgField
[M on Feb 28 04:49:10 EST 2011] (Thread-15) removeFieldBean : removing instance from HToracle.apps.inv .utilities.serv er.ValidateOrgP age.OrgField
[M on Feb 28 04:49:10 EST 2011] (Thread-15) (XXX) loadPage: trying to load 'oracle.apps.wm s.td.server.Tas kSignonPage'; customization :null
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) (XXX) loadPage: trying to load 'oracle.apps.wm s.td.server.Tas kSignonPage'
[M on Feb 28 04:49:10 EST 2011] (Thread-15) (XXX) purgePageStack: purging at pageIx = 4
[Mon Feb 28 04:49:10 EST 2011] (Thread-15) addFieldBean: type = 1
From your code snippet above, I understand that xxdbdTaskSignon Function should print a log message "After Super()" in the log file. Can you see that in the log file?
Also, Can you put some log message before and after SetFirstPageNam e() so that we can make sure that this function is being called at runtime?
Give it a try and let me know the results.
Thank s and Regards,
Senthi l
Can you find out what is the root cause for that?
Is the file not called or logging is not enabled?
-Sent hil
In the Tdpage.java,
I see the following code
if(buttonfieldb ean != null)
{
buttonfieldbean .setNextPageNam e("oracle.apps. wms.td.server.M ainPickPage");
} else
if(textfieldbea n != null)
{
textfieldbean.s etNextPageName( "oracle.apps.wm s.td.server.Mai nPickPage");
} else
if(lovfieldbean != null)
{
lovfieldbean.se tNextPageName(" oracle.apps.wms .td.server.Main PickPage");
} else
if(menuitembean != null)
{
menuitembean.se tFirstPageName( "oracle.apps.wm s.td.server.Mai nPickPage");
}
So it means that, MainPickPage is called from Tdpage.
Can you please investigate further?
Thank s and Regards,
Senthi l
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) Create savepoint TDEZP_SP complete.
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) setOrgParameter s: Org id = 103
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) query to get org parameters: oracle.jdbc.dri ver.OraclePrepa redStatementWra pper@106daba
[M on Feb 28 04:58:50 EST 2011] (Thread-15) setOrgContext: Org id = 103
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) i=3 paramsName[3] P_ORGANIZATION_ ID paramType= I paramValueType= N value 103
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) UtilFns:process :{call INV_PROJECT.SET _SESSION_PARAME TERS(:1,:2,:3,: 4)}
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) UtilFns:process :execution complete
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) UtilFns:process :value pair retrieval complete
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) Closing Statement
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) after closing
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) OrgFunction: AppEntered - MFG_ORGANIZATIO N_ID's value set ? true
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) OrgFunction Date12988871300 00
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) OrgFunction Orgid103
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) i=0 paramsName[0] p_org_id paramType= I paramValueType= N value 103
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) i=1 paramsName[1] p_transaction_d ate paramType= I paramValueType= T value 1298887130000
[ Mon Feb 28 04:58:50 EST 2011] (Thread-15) long tempDate12988871300 00
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) Timestamp tm2011-02-28 04:58:50.0
[Mon Feb 28 04:58:50 EST 2011] (Thread-15) UtilFns:process :{call INV_INV_LOVS.td atechk(:1,:2,:3 )}
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) UtilFns:process :execution complete
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) UtilFns:process :value pair retrieval complete
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Closing Statement
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) after closing
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) VALID PERIOD CHECK SUCCESS
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) TD: App Enter TdFunction
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Userid: 1377
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Userid: 1377
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Resp: 22479
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) App: 385
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) TD: Before Initialization! !
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) After apps_initialize
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Creating Savepoints.....
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Create savepoint TDPT_SP complete.
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Create savepoint RCV_SP complete.
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) TD: Td Function - Session Org ID : 103
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) setOrgParameter s: Org id = 103
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) query to get org parameters: oracle.jdbc.dri ver.OraclePrepa redStatementWra pper@106daba
[M on Feb 28 04:58:51 EST 2011] (Thread-15) setOrgContext: Org id = 103
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) i=3 paramsName[3] P_ORGANIZATION_ ID paramType= I paramValueType= N value 103
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) UtilFns:process :{call INV_PROJECT.SET _SESSION_PARAME TERS(:1,:2,:3,: 4)}
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) UtilFns:process :execution complete
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) UtilFns:process :value pair retrieval complete
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Closing Statement
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) after closing
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) TD: TaskSignonPage initLayout
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) TD: TdPage - Page Entered
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) Jack TD: TdPage - Page Entered
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) TdPage - Startupvalues existed: {x_po_patch_lev el=120001, x_msg_data=, x_wms_patch_lev el=120001, x_inv_patch_lev el=120001, x_return_status =S}
[Mon Feb 28 04:58:51 EST 2011] (Thread-15) EqpLOV: fieldEntered
[M on Feb 28 04:58:51 EST 2011] (Thread-15) TD: TdFListener - fieldEntered
[M on Feb 28 04:58:58 EST 2011] (Thread-15) TD: TdPage - specialKeyPress ed
[Mon Feb 28 04:58:58 EST 2011] (Thread-15) Rollback to TDPT_SP complete.
[Mon Feb 28 04:59:00 EST 2011] (Thread-15) In UserLogin.java: notifySessionEv ent method, before calling LMS code
[Mon Feb 28 04:59:00 EST 2011] (Thread-15) In UserLogin.java: notifySessionEv ent method, after calling LMS code: TXN_TIME_END:12 98887140499
[Mo n Feb 28 04:59:00 EST 2011] (Thread-15) Employee ID :7520
[Mon Feb 28 04:59:00 EST 2011] (Thread-15) Organization ID :103
[Mon Feb 28 04:59:00 EST 2011] (Thread-15) Executing the J Patch Set Code
[Mon Feb 28 04:59:00 EST 2011] (Thread-15) Inside cleanupDevicesA ndTasks
[Mon Feb 28 04:59:00 EST 2011] (Thread-15) clean up successfully
[
Can you put some meaningful log messages in xxdbdTaskSignon Function.java and check whether it is being called at runtime?
Also, Can you print the calue for the HTML call for xxdbdTaskSignOn Function.java?
Thanks and Regards,
Senthi l
the floe is in TdPage.java,
bu t suppose if we are selecting "discrete Picking",
then how control is going on MainPickPage .
this i want to understand.
If you look at TaskSignonFunct ion.java, Not all the cases call TaskSignonPage. java.
if(s.equalsIgno reCase("DIRECTE D_TASK"))
{
if(s1 != null && s1.equalsIgnore Case("CLUSTER") )
{
setFirstPageNam e("oracle.apps. wms.td.server.C lusterPickPage" );
if(UtilFns.isTr aceOn)
{
UtilFns.trace(" TaskSignonFunct ion.appEntered: Set next page name to Cluster Pick Page");
}
} else
if(s1 != null && s1.equalsIgnore Case("MANUAL"))
{
setFirstPageNam e("oracle.apps. wms.td.server.M anualPickPage") ;
if(UtilFns.isTr aceOn)
{
UtilFns.trace(" TaskSignonFunct ion.appEntered: Set next page name to Manual Pick Page");
}
} else
if(s1 != null && s1.equalsIgnore Case("PICKBYLAB EL"))
{
setFirstPageNam e("oracle.apps. wms.td.server.P ickByLabelPage" );
if(UtilFns.isTr aceOn)
{
UtilFns.trace(" TaskSignonFunct ion.appEntered: Set next page name to Pick By Label Page");
}
} else
if(s1 != null && s1.equalsIgnore Case("CLUSTERPI CKBYLABEL"))
{
setFirstPageNam e("oracle.apps. wms.td.server.C lusterPickByLab elPage");
Can you investigate the log file and find out which file is actually being called?
Thanks and Regards,
Senthi l
See the below code: I have added SOPs, SOPs in Function Page are coming on console but custom page SOPs are not coming. Please help in solving the issue.
xxdbdTa skSignonFunctio n.java
-------- --------------- --------
packa ge oracle.apps.wms .td.server;
im port java.sql.SQLExc eption;
import oracle.apps.fnd .common.Version Info;
import oracle.apps.inv .utilities.serv er.UtilFns;
imp ort oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.*;
import oracle.apps.wms .td.server.*;
i mport oracle.apps.inv .lov.server.Sub inventoryLOV;
public class xxdbdTaskSignon Function extends TaskSignonFunct ion {
public xxdbdTaskSignon Function() {
super();
System .out.println("A fter calling Super");
if(Uti lFns.isTraceOn)
UtilFns.trace(" After Super()");
set FirstPageName(" oracle.apps.wms .td.server.xxdb dTaskSignonPage ");
System.out. println("After setting the new page");
}
public void appEntered(MWAE vent mwaevent) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {
System.out.pr intln("After entering appEntered");
i f(UtilFns.isTra ceOn)
UtilFns.trace(" xxdbdTaskSignon Page");
Session session = mwaevent.getSes sion();
if(Util Fns.isTraceOn)
UtilFns.trace(" xxdbdTaskSignon Page");
System. out.println("Af ter entering appEntered1");
setFirstPageNa me("oracle.apps .wms.td.server. xxdbdTaskSignon Page");
System. out.println(ses sion.getCurrent Page().toString ());
session.setRefr eshScreen(true) ;
super.appEntere d(mwaevent);
}
}
xxdbdTaskS ignonPage.java
--------------- --------------- -
package oracle.apps.wms .td.server;
im port oracle.apps.wms .td.server.*;
i mport java.sql.SQLExc eption;
import oracle.apps.fnd .common.Version Info;
import oracle.apps.inv .lov.server.Sub inventoryLOV;
i mport oracle.apps.inv .utilities.serv er.UtilFns;
imp ort oracle.apps.mwa .beans.TextFiel dBean;
import oracle.apps.mwa .container.MWAL ib;
import oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.*;
public class xxdbdTaskSignon Page extends TaskSignonPage
{
public xxdbdTaskSignon Page()
{
super();
System .out.println("a fter super in xxdbdTaskSignon Page");
addListener(this);
}
public void pageExited(MWAE vent e) throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
System.out.pr intln("inside pageExited in xxdbdTaskSignon Page");
Session localSession = e.getSession();
UtilFns.trace(" ZBRWIPMovePage: pageExited:"+e. getAction());
e.getSession(). setStatusMessag e("ZBRWIPMovePa ge: pageExited ...");
}
public void pageEntered(MWA Event mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
System.out.prin tln("inside pageEntered in xxdbdTaskSignon Page");
super.pageEnter ed(mwaevent);
U tilFns.trace("T EST PAGE: pageExited:"+mw aevent.getActio n());
Session localSession = mwaevent.getSes sion();
mwaeven t.getSession(). setStatusMessag e("TEST PAGE: pageExited ...");
}
}
N avigation Steps:
-------- --------------- --------
Once u give 103 and enter, the below page is opening
The SOPs in the console are :
After calling Super
After setting the new page
After entering appEntered
Afte r entering appEntered1
ora cle.apps.mwa.be ans.MenuPageBea n@b6ef8
After this, SOPs in xxdbdSignonTask Page are not getting on the console.
Few Questions:
1) why is SetFirstPageNam e() called twice in Function class?
2) All the extension classes should be kept in a separate directory for ex, dbdcustom.oracl e.apps .....
Am not sure why u have kept under oracle.apps ...
however, it is a wierd behaviour if it is calling the Function class and not the page class.
Can you investigate further?
Are you able to navigate to the screens or getting any errors?
Have a deep look into the log files.
Thanks and Regards,
Senthi l
Just to give a trail atleast one place it will work.
2) All the extension classes should be kept in a separate directory for ex, dbdcustom.oracl e.apps .....
Am not sure why u have kept under oracle.apps ...
Initially i have put all the custom files in dbdcustom.oracl e... but since it was not workin thpught of classpath problem..so tried keeping in the same folder.
If it works fine, i wll move the files in to custom path. First i want to solve this problem.
Lo oks like you are also entending tasksignonfucnt ion. If you dont mind, can u please send me the extended classes on tasksignonfunct ion and tasksignonpage.
Thanks in advance.
I want to create new function. When you click on menu function, user need to select Org id before going to the page linked to the function. Please let me know how to acheive this. For example, when we click on Order Pick form, first user has to select Org id.
Thanks in advance.
Manjula Rani
you have to extend OrgFunction class to your function class. and in pageEntered method
you have to put pagename in session variable
session.putObje ct("RCV_FIRSTPA GENAME", "page class");
RCV_FI RSTPAGENAME is session variable.
also you can see any standard function class.
thanks
I have to extend taskSignonFunct ion. so i have created xxTaskSignonFun ction which extends TaskSignOnFunct ion. Since TaskSignOnFunct ion this extends TDFunction which extends OrgFunction, do i still need to extend OrgFunction in my custom function??
pub lic class xxdbdTaskSignon Function extends TaskSignonFunct ion {
public xxdbdTaskSignon Function() {
super();
System .out.println("A fter calling Super");
addListener(thi s);
}
public void appEntered(MWAE vent mwaevent) throws AbortHandlerExc eption,
InterruptedHand lerException,
DefaultOnlyHand lerException {
Session session = mwaevent.getSes sion();
setFirs tPageName("orac le.apps.wms.td. server.xxdbdTas kSignonPage");
super.appEntere d(mwaevent);
session.setRefr eshScreen(true) ;
}
}
in this scenario it will be good to copy TaskSignonFunct ion code to ur xxdbdTaskSignonFunct ion
class and change as per your cutomization.
b ut remember only copy in this class only.
I have done as per ur suggestion, copied all teh code but changed the setFirstPageNam e("oracle.apps. wms.td.server.T askSignonPage") ; to setFirstPageNam e("oracle.apps. wms.td.server.x xdbdTaskSignonP age"); before this statement, i have SOP, which is getting executed. but the page is going to seeded page.
let me know what could be the problem.
analyze the whole code it will work fine.
thanks
shailendra
in TdPage there is public static boolean fetchNextTask(M WAEvent mwaevent)
in this method there is standard logic for filteration of task.
but now i have to change it can you tell me how to change.
thanks
shailendra
Hav e you tried to extend the TdPage and override the logic in extended Java Class?
What was the outcome?
Kindl y let me know.
Thanks and Regards,
Senthi l
i have done all the customization it is last customization i am getting stuck on MSCA framework please help me.
yes i have extended TdPage
but in fetchNextTask(M WAEvent mwaevent) method the logic is very complex,
and also i have overide fetchNextTask(M WAEvent mwaevent) and have copied its code ,
but the code i have got after decompilation is not working fine(means it is not compiling)
beco use there are some break statement and sql statement that are giving error.
but still i tried to remove error.
i have removed every error and deployed.but when i am using after extending and overiding the taskSign -ON Page is working fine but the Load Page is not comming.
in TdPage seeded package are called for filtering"WMS_P ICKING_PKG.NEXT _TASK"
that we have renamed and calling in our custom classes,
what should be the cause.
thanks
shailendra
If your extended Class is not at all called then it is problem with your procedure with which you have done the extension.
But from your update, I understand that you custom logic is called in one case and not in other ... In that case, I suggest you to check the logic in the code.
Put some meaningful log messages in the code and try to understand what is flow in the code.
Hope this helps.
Thanks and Regards,
Senthi l
the extended class is getting called but i have commeneted some break statement and sql statement.
beco use of that only the load page(MainPickPa ge) is not getting displayed.
can you provide me the code for how to overide fetchNextTask(M WAEvent mwaevent) method of TdPage.
same logic as standard.
than ks
shailendra
So rry I havent worked on any extension relating to Tdpage and hence I dont have the code.
Thanks and Regards,
Senthi l
ok,
ho w can we get TdPage.java source code.
actually after decompiling TdPage.class i am not getting exact java source code,
i am decompiling with cavaj decompiler.
th anks
shailendra
Thanks and Regards,
Senthi l
regar ds
shailendra
I have extended MainPickPage and Main PickFListener files.
After extening, UOM Lov field is not working as expected. Can anyone help in resolving this.
xxdbdGSLMainP ickPage.java
-------------- --------------- --------------
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.pri ntln("inside pageEntered");
super.pageEnte red(mwaevent);
ButtonFieldBe an buttonfieldbean = (ButtonFieldBea n )getField("MAIN .DROP");
xxdbdGSLMainPi ckFListener mListener = new xxdbdGSLMainPic kFListener();
buttonfieldbea n.addListener(m Listener);
}
public void pageExited(MWAE vent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
super.pageExit ed(mwaevent);
}
}
xxdbdGSLMainPi ckFListener.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.pri ntln("inside fieldEntered of Mainpickpage listerenr");
super.fieldEn tered(mwaevent) ;
}
}
Thanks in advance.
This is acommon problem with extension. Standard LOVs wont work after extension. It is discussed lot of times in this forum. If you closely look at the log file one of the parameters passed to PLSQL API will be null. Please go through the previous comments in this article. you will get a solution.
Hope this helps.
Thanks and Regards,
Senthi l
I have solved the LOV issue which i reported earlier.
Now i am facing another issue.
I have extended PickDropPage. It has two LOVs, one is subinventoryLOV and other is LocatorKFF. First LOV is working fine, but the secodn LOV is not working as expected, whatever value i will give, its saying No result is found. I know that LOV values are not assigned to this LOV bean. But i am not able to find out the solution. Please help me in this.
In the pageentered, i have coded like this :
super.pageEn tered(mwaevent) ;
Session session = mwaevent.getSes sion();
mConfi rmZoneFld = super.getZone() ;// new SubinventoryLOV ("INVINQ");
mConfirmZoneFld .setName("PKD.C ONFIRM_ZONE");
mConfirmZoneFld .setRequired(tr ue);
String as[] = {
" ", "ORGID", "oracle.apps.wm s.td.server.xxd bdPickDropPage. PKD.CONFIRM_ZON E"
};
mConfirmZoneFld .setInputParame ters(as);
mConfirmZoneFld .setValidateFro mLOV(true);
mC onfirmLocFld = super.getLoc(); //new LocatorKFF("INQ LOC", session);
mConfirmLocFld. setName("PKD.CO NFIRM_LOC");
S tring as1[] = {
" ", "ORGID", "oracle.apps.wm s.td.server.xxd bdPickDropPage. PKD.CONFIRM_ZON E", "", "", "oracle.apps.wm s.td.server.xxd bdPickDropPage. PKD.CONFIRM_LOC ", "PROJECT", "TASK"
};
mConfirmLocFld. setInputParamet ers(as1);
mConfirmLocFld. setRequired(tru e);
mConfirmLocFld. setValidateFrom LOV(true);
TdB utton buttonfieldbean = super.getSubmit Btn();
xxdbdPic kDropFListener mListener = new xxdbdPickDropFL istener();
butt onfieldbean.add Listener(mListe ner);
Can you please explain why it is done in following manner
String as[] = {
" ", "ORGID", "oracle.apps.wm s.td.server.xxd bdPickDropPage. PKD.CONFIRM_ZON E"
};
String as1[] = {
" ", "ORGID", "oracle.apps.wm s.td.server.xxd bdPickDropPage. PKD.CONFIRM_ZON E", "", "", "oracle.apps.wm s.td.server.xxd bdPickDropPage. PKD.CONFIRM_LOC ", "PROJECT", "TASK"
}
I mean, what is the code on the Oracle Std Class, and what did you modify?
Also, Can you please check in the log file whether all parameters are passed correctly?
Tha nks and Regards,
Senthi l
mConfirmZoneFld = new SubinventoryLOV ("INVINQ");
mConfirmZoneFld .setName("PKD.C ONFIRM_ZONE");
mConfirmZoneFld .setRequired(tr ue);
String as[] = {
" ", "ORGID", "oracle.apps.wm s.td.server.Pic kDropPage.PKD.C ONFIRM_ZONE"
};
mConfirmZoneFld .setInputParame ters(as);
mConfirmZoneFld .setValidateFro mLOV(true);
mLocFld = new TextFieldBean() ;
mLocFld.setName ("PKD.LOC");
mLocFld.setEdit able(false);
mConfirmLocFld = new LocatorKFF("INQ LOC", session);
mConfirmLocFld. setName("PKD.CO NFIRM_LOC");
String as1[] = {
" ", "ORGID", "oracle.apps.wm s.td.server.Pic kDropPage.PKD.C ONFIRM_ZONE", "", "", "oracle.apps.wm s.td.server.Pic kDropPage.PKD.C ONFIRM_LOC", "PROJECT", "TASK"
};
mConfirmLocFld. setInputParamet ers(as1);
mConfirmLocFld. setRequired(tru e);
mConfirmLocFld. setValidateFrom LOV(true);
For the mConfirmLocFld, the parameters are as mentioned in the existing code but not as mentioned in the changed code.
Log file:
Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[0] :
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [0] :C
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[0] :null
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[1] :ORGID
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [1] :N
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[1] :103
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[2] :oracle.apps.wm s.td.server.Pic kDropPage.PKD.C ONFIRM_ZONE
[We d Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [2] :S
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[2] :null
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[3] :
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [3] :N
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[3] :null
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[4] :
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [4] :N
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[4] :null
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[5] :oracle.apps.wm s.td.server.Pic kDropPage.PKD.C ONFIRM_LOC
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [5] :S
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[5] :null
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[6] :PROJECT
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [6] :S
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[6] :null
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[7] :TASK
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [7] :S
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[7] :null
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParams[8] :LocatorKFF.ALI AS
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) inputParamsType [8] :S
[Wed Mar 09 07:03:28 EST 2011] (Thread-15) value of inputParams[8] :null
[Wed Mar 09 07:03:29 EST 2011] (Thread-15) No result is found
[Wed Mar 09 07:03:29 EST 2011] (Thread-15) Exiting pageEntered of LOVRuntimePageH andler
If it works for one LOV, it should work for other onw as well, as long as you have not made any coding error.
Can you please double check the code, and also it will be good to analyse and compare the log files generated with Std code and custom code.
Hope this helps.
Thanks and Regards,
Senthi l
I have extended the Mobile Pick Drop LPN form. For this, i have extended PickDropPage. Everything is working fine. But there are few personalization s done on this page at function level. These personalization s are not working on the custom pages though i have extended the seeded pages. Please let me know if I miss something.
I dont think personalization s will be working in Extended pages. I am not sure though.
Also, If your personalization s are not working, you can achieve the same using extensions.
Ho pe this helps.
Thanks and Regards,
Senthi l
Perso nalizations means, MWA Personalization .
The personalization is: field B will be defaulted from field A value and field D will be defaulted with field C value when the page gets open.
How can we acheive the same using extension ??
Also, where the MWA personalization s will store??
Hope this helps.
Thanks and Regards,
Senthi l
I'm testing if I can add a comment.
Ta, ;D
I need to add new event handling on the DateFieldBean mExpDateFld found further up the inheritance hierarchy (LotSerialPage) .
I have decided (having followed the examples I found on this forum) to extend the RcvFunction to create my CustomFunction and also I extended the standard RcptGenPage to create my CustomPage (which should add myCustomListene r to the date field mentioned above) - when I run the process up to the point where it should display a list of all availlable PO's it returns "NO result found"....
But when I tell my CustomFunction to point to the original RcpGenPage the screen values are loaded succesffully - and I can continue with my receiving process.
Here' s my CustomPage:
/* *
*
* @author Vincent Maseko
*
*/
public class CustomRcpGenPag e extends RcptGenPage{
p ublic static final String RCS_ID = "$Header: CustomRcpGenPag e.java 120.3.12000000. 10 2008/05/19 11:01:37 lseetamr ship $";
public static final boolean RCS_ID_RECORDED = VersionInfo.rec ordClassVersion ("$Header: CustomRcpGenPag e.java 120.3.12000000. 10 2008/05/19 11:01:37 lseetamr ship $", "oracle.apps.in v.rcv.server");
public CustomRcpGenPag e(Session session) {
super(session);
new RcptGenPage(ses sion);
}
public void pageEntered(MWA Event mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcpGenPag e.pageEntered");
super.pageEnter ed(mwaevent);
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcpGenPag e.pageEntered - complete");
}
public void pageExited(MWAE vent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcpGenPag e.pageExited");
super.pageExite d(mwaevent);
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcptGenPa ge.pageExited - complete");
}
public void specialKeyPress ed(MWAEvent mwaevent)
throws AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
if(UtilFns.isTr aceOn){
UtilFns.trace(" RCV: CustomRcptGenPa ge.specialKeyPr essed");
UtilFns.trace(" RCV: CustomRcptGenPa ge.specialKeyPr essed - #### ACTION = " + mwaevent.getAct ion());
}
super.specialKe yPressed(mwaeve nt);
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcptGenPa ge.specialKeyPr essed - complete");
}
protected void addFields(MWAEv ent mwaevent)
{
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcptGenPa ge.addFields");
super.addFields (mwaevent);
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcptGenPa ge.addFields - complete");
}
protected void initPrompts(Ses sion ses)
{
super.initPromp ts(ses);
}
}
Looking at this I have satisfied myself that I didnt do anything special except to extend the original Page and pull dow a few of the methods that are found on Base class - something I must admit I don't understand why I need to do it because inheritance tells me I should have this methods already ... unless I wanna override them.
Your assistance will be highly appreciated.
T hanks.
Vincent Maseko (South Africa)
I guess you are hitting the same problem with LOVs when extension is done on MWA. If you look at the log files one of the parameters would be passed as null and that is the reason for fetching no data. If you go through the above article and the various posts on this article you should be able to easily overcome this situation.
Hop e this helps.
Thanks and Regards,
Senthi l
Thank s for the prompt reply. I have extensively went through the above article and learned a lot. Further I have made changes to my custom page as recommended but I still get this dreadfull "no results found" message. I’m not sure if there’s something else that I’m missing. Please help
below is my latest custom page:
public class CustomRcpGenPag e extends RcptGenPage
{
private CustomRcpGenFLi stener customFieldList ener = new CustomRcpGenFLi stener();
public CustomRcpGenPag e(Session session)
{
super(session);
}
public void pageEntered(MWA Event mwaevent)
throw s AbortHandlerExc eption, InterruptedHand lerException, DefaultOnlyHand lerException
{
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcpGenPag e.pageEntered");
super.pageEnter ed(mwaevent);
//Now Initialize the extended page
initCustomPage( );
if(UtilFns.isTr aceOn)
UtilFns.trace(" RCV: CustomRcpGenPag e.pageEntered - complete");
}
public void initCustomPage( ){
// Add Custom listener to the expiry date field
getExpDateFld().addListener(customFieldList ener);
// Inputs
String as[] = {
" ", "ORGID", "oracle.apps.inv.rcv.server.CustomRcpGenPag e.RCV.SHIPMENT_NUM", "RECEIPT", ""
};
getShipmentN umFld().setInpu tParameters(as) ;
/*String[] inputs = {
" ","ORGID", "oracle.apps.inv.rcv.server.CustomRcpGenPag e.INV.DOC_NUMBER", "RECEIPT","","" ,"PO",""
};
ge tDocFld().setIn putParameters(i nputs);
mDocFld = new DOCLOV();
*/
String as1[] = {
" ", "ORGID", "oracle.apps.inv.rcv.server.CustomRcpGenPag e.RCV.REQUISITION_NUM", "RECEIPT"
};
getReqNumFld ().setInputPara meters(as1);
S tring as2[] = {
" ", "ORGID", "oracle.apps.inv.rcv.server.CustomRcpGenPag e.INV.RMA", "RECEIPT"
};
getRMAFld(). setInputParamet ers(as2);
Stri ng as5[] = {
" ", "ORGID", "oracle.apps.inv.rcv.server.CustomRcpGenPag e.INV.LOCATION"
};
getLocationF ld().setInputPa rameters(as5);
String as6[] = {
" ", "oracle.apps.inv.rcv.server.CustomRcpGenPag e.INV.LOT_STATUS"
};
getLotStatusFld ().setInputPara meters(as6);
String as7[] = {
" ", "oracle.apps.inv.rcv.server.CustomRcpGenPag e.INV.SERIAL_STATUS"
};
getSerialStatus Fld().setInputP arameters(as7);
// Input Types
/* String as3[] = {
"C", "N", "AN", "S"
};
getRevFld().set InputParameterT ypes(as3);
String as4[] = {
"C"
};
getCountryFld() .setInputParame terTypes(as4);* /
}
}
Can you please look into the log files and identify what are the parameters passed into LOV and how it is different from the Std Page LOV?
Thanks and Regards,
Senthi l
I had a look at the logs they look exactly the same except on the 'DOCLOV' as follows:
STAND ARD
(Thread-15 ) RCV: RcptGenPage.add Fields - complete
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenPage.pag eEntered - complete
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) DOCLOV: fieldEntered
[T hu Mar 17 09:35:07 SAST 2011] (Thread-15) Profile value for delimiter is: null
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenFListene r.fieldEntered
[T hu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcvFListener.fi eldEntered - fldName = INV.DOC_NUMBER
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenFListene r.fieldEntered - fldName = INV.DOC_NUMBER
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered 10
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered =
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered 40 itemId = ItemDesc =
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered - complete
[Thu Mar 17 09:35:07 SAST 2011] (Thread-15) RCV: RcptGenFListene r.fieldEntered - complete
[Thu Mar 17 09:35:22 SAST 2011] (Thread-15) DOCLOV: fieldExited: PO
[Thu Mar 17 09:35:22 SAST 2011] (Thread-15) DOCLOV: fieldExited before setting return values
CUSTOM
(Thread-15) RCV: RcptGenPage.add Fields - complete
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: CustomRcpGenPag e.addFields - complete
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenPage.pag eEntered - complete
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: CustomRcpGenPag e.pageEntered - complete
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) DOCLOV: fieldEntered
[T hu Mar 17 10:19:09 SAST 2011] (Thread-15) Profile value for delimiter is: null
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenFListene r.fieldEntered
[T hu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcvFListener.fi eldEntered - fldName = INV.DOC_NUMBER
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenFListene r.fieldEntered - fldName = INV.DOC_NUMBER
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered 10
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered =
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered 40 itemId = ItemDesc =
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenFListene r.docEntered - complete
[Thu Mar 17 10:19:09 SAST 2011] (Thread-15) RCV: RcptGenFListene r.fieldEntered - complete
....th is the end of the file
Now I'm hecticly confused - not sure how to make this work please assist.
Thanks and Kind regards,
Vince nt Maseko (South Africa)
I am not sure whether you have turned on full logging. Can you please check what level of logging is ON? Also, I am sure there will lot of parameters passed to the PLSQL API for the LOV and I dont see any such information in the post above.
Can you please double check the logging level and enble full trace and analyse further?
Thank s and Regards,
Senthi l
I have enabled full logging and looked at the result for both custom (when it fails) and standard (when it returns lov). Below it does show indeed that for custom results one of the parameters is null while on the other side its a '%' - how do I overcome this on my custom page?
I'm excited that you've been proven right.
I will be busy trying to figure it out while I await a response - thanks you in advance.
CUSTO M RESULTSSTANDARD RESULTS
lov stmt :INV_UI_RCV_LOV S.GET_DOC_LOVov stmt :INV_UI_RCV_LOV S.GET_DOC_LOV
i nputParams[0] : inputParams[0] :
inputParamsTyp e[0] :CinputParamsTy pe[0] :C
inputParams[ 0] :nullinputParam s[0] :null
inputPara ms[1] :ORGIDinputPara ms[1] :ORGID
inputPar amsType[1] :NinputParamsTy pe[1] :N
inputParams[ 1] :83inputParams[ 1] :83
inputParams [2] :oracle.apps.in v.rcv.server.Rc ptGenPage.INV.D OC_NUMBERinputP arams[2] :oracle.apps.in v.rcv.server.Rc ptGenPage.INV.D OC_NUMBER
input ParamsType[2] :SinputParamsTy pe[2] :S
inputParams[ 2] :nullinputParam s[2] :%
inputParams[ 3] :RECEIPTinputPa rams[3] :RECEIPT
inputP aramsType[3] :ASinputParamsT ype[3] :AS
inputParams [4] :inputParams[4] :
inputParamsTy pe[4] :ASinputParamsT ype[4] :AS
inputParams [5] :inputParams[5] :
inputParamsTy pe[5] :ASinputParamsT ype[5] :AS
inputParams [6] :inputParams[6] :
inputParamsTy pe[6] :ASinputParamsT ype[6] :AS
inputParams [7] :POinputParams[ 7] :PO
inputParams Type[7] :ASinputParamsT ype[7] :AS
inputParams [8] :inputParams[8] :
inputParamsTy pe[8] :ASinputParamsT ype[8] :AS
No result is found[Thu Mar 17 14:07:41 SAST 2011] (Thread-15) addFieldBean: type = 13
Exiting pageEntered of LOVRuntimePageH andler[Thu Mar 17 14:07:41 SAST 2011] (Thread-15) addFieldBean: type = 13
[Thu Mar 17 14:07:41 SAST 2011] (Thread-15) addFieldBean: type = 13
;D ;D
Kind Regards
Vincent Maseko (South Africa)
I believe following is the initialization you have done ... please double check it ... it needs some correction
Str ing[] inputs = {
" ","ORGID", "oracle.apps.in v.rcv.server.Cu stomRcpGenPage. INV.DOC_NUMBER" , "RECEIPT","","" ,"PO",""
};
Thanks and Regards,
Senthi l
Even using WCB manage option i have assigned task manually to one user and checked the tasks in that user but no luck.
Similarl y i have performed for Manufacturing wip component pick release also, in mobile it's showing no tasks available...... .
Even with paper based pick tasks also i tried by giving the transaction number but it's giving no message........ .
I have gone through the implementation & user guides in that he linked with projects and my org is not enabled with projects....... what could be the reason......... From two days onwards i am struggling with this a lot......
Kind ly suggest me.,.
It appears you were correct, I had a look at it closely in realised that I was missing one entry on that array of inputs. I am now able to see the LOV after the system executes INV_UI_RCV_LOVS .GET_DOC_LOV and able to move forward with my customization.
The storm is not over yet ;D
I appreciate your assistance up to this point.
Regards ,
Vincent Maseko (South Africa)
I'm working on these MSCA Customisation and as you said, we will extends from the existing page and we do our customisation or somtimes we duplicate the file and we do our own customization.
Now I'm in need of a page, where all the serial no. will be processed for an inventory and success of this will lead to a next serial no. and it goes on. Here i need to add count field for counting the success serials. I'm done with adding an aditional field. But if any failure comes, I need to show detailed error messaage with serial no , item in another page and should present a OK button where pressing on this button should take to the previous page where next serial no. can be processed.
I'm confused on getting the data from page to page, ie passing serial no. item and error msgs. Please share your ideas.
Thanks.
i have extended PO reciept (RcptGenFunctio n,RcptGenPage,R cptGenFListener ) .every thing is working fine.
but if suppose user entered Qty more than Qty to be recieved its showing standard error Page |Create PO interface record failed.
|Quanti ty tolerance exceeded.its a standrd error page.on this page there is Back and Cancel button.
when i am hitting "Back" button the session is getting closed and giving unexpected error.
please help in this issue.
thanks
shailendra
@Sha liendra ... Can you please look into the log files and see if you can figure out something?
Hop e this helps.
Thanks and Regards,
Senthi l
Well as Im new to MSCA customization, Kindly let me know how to overcome this error.
Issue Details :- MSCA >> Outbound >> Direct Ship >> Load to Truck
Error :- Direct Ship not enables for Organization.
Early help will be appreciated.
T hanks
Ashish
Thanks a lot for your prompt reply and help
I have this problem,
I try to Extend the subinventory transfer " SubXferPage"
bu t I get this errors when I replace the listener of the button "INV.SAVENEXT":
[Mon Apr 18 12:43:33 CDT 2011] (Thread-16) MWA_PM_UNEXPECT ED_ERROR_MESG: Unexpected error occurred, Please check the log.
java.lang. NullPointerExce ption
at oracle.apps.inv .invtxn.server. SubXferFListene r.doneExited(Su bXferFListener. java:2139)
at oracle.apps.inv .invtxn.server. SubXferFListene r.saveNextExite d(SubXferFListe ner.java:2117)
at oracle.apps.inv .invtxn.server. SubXferFListene r.fieldExited(S ubXferFListener .java:212)
at oracle.apps.mwa .container.Stat eMachine.callLi steners(StateMa chine.java:1720 )
at oracle.apps.mwa .container.Stat eMachine.handle Event(StateMach ine.java:543)
a t oracle.apps.mwa .presentation.t elnet.Presentat ionManager.hand le(Presentation Manager.java:74 3)
at oracle.apps.mwa .presentation.t elnet.ProtocolH andler.run(Prot ocolHandler.jav a:849)
My code is:
//Page:
pa ckage xxskr.oracle.ap ps.inv.invtxn.s erver;
import oracle.apps.inv .invtxn.server. SubXferPage;
im port oracle.apps.inv .utilities.serv er.UtilFns;
imp ort oracle.apps.mwa .beans.ButtonFi eldBean;
import oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.Abo rtHandlerExcept ion;
import oracle.apps.mwa .eventmodel.Def aultOnlyHandler Exception;
impo rt oracle.apps.mwa .eventmodel.Int erruptedHandler Exception;
impo rt oracle.apps.mwa .eventmodel.MWA Event;
import oracle.apps.mwa .eventmodel.MWA Listener;
pub lic class XXSubXferPage extends SubXferPage {
public XXSubXferPage(S ession paramSession) {
super(para mSession);
Util Fns.trace("xxSu bXferPage Constructor");
}
public void pageEntered(MWA Event e) throws AbortHandlerExc eption,
Interru ptedHandlerExce ption,
DefaultO nlyHandlerExcep tion {
UtilFns.trace (" xxSubXferPage - pageEntered ");
ses = e.getSession();
super.pageEnte red(e);
initCus tomPage(e);
}
public void pageExited(MWAE vent e) throws AbortHandlerExc eption,
Interru ptedHandlerExce ption,
DefaultO nlyHandlerExcep tion {
ses = e.getSession();
super.pageExit ed(e);
UtilFns. trace(" xxSubXferPage - pageExited ");
}
public void initCustomPage( MWAEvent e) {
UtilFns.trac e(" Se inicializa Lista de Valores ");
String[] lpninput1 = { " ", "ORGID", "xxskr.oracle.a pps.inv.invtxn. server.XXSubXfe rPage.INV.LPN", "PLANNING_ORG_I D", "PLANNING_TP_TY PE", "OWNING_ORG_ID" , "OWNING_TP_TYPE ", "TOORGID", "TXN.TXN_TYPE_I D", "wmsPurchased" };
String[] lpninput2 = { "C", "N", "S", "N", "N", "N", "N", "N", "N", "S" };
getLPNLOV() .setInputParame terTypes(lpninp ut2);
getLPNLOV ().setInputPara meters(lpninput 1);
getLPNLOV() .setValidateFro mLOV(true);
S tring[] toLPNSubinventa rio = { " ", "ORGID", "LPNID", "LPNFROMSUB", "LPNSUBASSETINV ", "TransactionAct ionId", " ", "TransactionTyp eId", "wmsPurchased", "xxskr.oracle.a pps.inv.invtxn. server.XXSubXfe rPage.INV.LPNTO SUB" };
getLPNToSubinventory().setInputParameters(toLPNSubinventa rio);
getLPNToSubinventory().setValidateFromLOV(true);
getLPNToSubinventory().setName("INV.LPNTOSUB");
getLPNToLocatorLOV().setName("INV.LPNTOLOC");
String[] toLPNLocator = { " ", "ORGID", "LPNID", "xxskr.oracle.a pps.inv.invtxn. server.XXSubXfe rPage.INV.LPNTO SUB", "xxskr.oracle.a pps.inv.invtxn. server.XXSubXfe rPage.INV.LPNTO LOC", "TransactionTyp eId", "wmsPurchased", "PROJECTID", "TASKID" };
if (UtilFns.isTrac eOn) UtilFns.trace(" About to set the input parameters");
g etLPNToLocatorL OV().setInputPa rameters(toLPNL ocator);
if (UtilFns.isTrac eOn) UtilFns.trace(" About to set the LOV as not required");
get LPNToLocatorLOV ().setRequired( false);
if (UtilFns.isTrac eOn) UtilFns.trace(" About to set true to validate from LOV");
getLPNTo LocatorLOV().se tValidateFromLO V(true);
if (UtilFns.isTrac eOn) UtilFns.trace(" About to set the sub mapper");
getLP NToLocatorLOV() .setSubMapper(t his.mLPNToSubLO V);
UtilFns.t race(" Se oculta campo de Articulo ");
getItem().s etHidden(true);
Session session = e.getSession();
//Continue button initialization
ButtonFieldBean nextLpn =
(ButtonFieldB ean)session.get FieldFromCurren tPage("INV.SAVE NEXT");
nextLpn .removeListener ((MWAListener)n extLpn.getListe ners().firstEle ment());
nextLp n.addListener(x xListener);
}
Session ses;
XXSubXferF Listener xxListener = new XXSubXferFListe ner(new Session());
}
//Listener
package xxskr.oracle.ap ps.inv.invtxn.s erver;
import oracle.apps.inv .invtxn.server. SubXferFListene r;
import oracle.apps.mwa .container.Sess ion;
public class XXSubXferFListe ner extends SubXferFListene r {
public XXSubXferFListe ner(Session s) {
super(s);
}
}
Can you Help me please,
Thank s and regards,
Lione l
Looks like
doneExited(Su bXferFListener. java:2139) /saveNextExited (SubXferFListen er.java:2117)
has some references which does not exist.
Can you look into Std Oracle Code and see what is happening there?
Cheers,
Senthil
I wanted to add a new field in PO receipt mobile form. Please guide me on this.
Regards,
Amit
this post is allready posted.please go through that.
also u can extend all page related to PO reciept and add a new field on extended RcptGenPage ...
thanks
sha ilendra
i tried some of options but it is not working. Appreciate if u can provide step by step
regards,
Ami t
extend all the class
1 function class
2 page class
3 listner class
set parameteres for all LOV to ur custom extended page.
get indeex of the field after which u want to add new field.
add new field on desired position.
if u got any issue send ur error and log file.
thanks
sh ailendra,
pl ease let me know the syntax for getting the index.
regards,
Ami t
int fieldIndex=getF ieldIndex("name offield");
you will get the index.
thanks
shailendra
i tried the same.but it is not working. i saw your post where you mentioned that you added two new fields in po receipt form. appreciate if you can give me your extended page code. It will hlep me to find what i am doing wrong.
or let me know any suitable time so that we can talk on this
regards,
Ami t
can you tell me what the error you are getting .tell me each step you have done starting from the menu and function.sure i will help you here but state all the steps error and error logs.
thanks
shailendra
I need to customize the MSCA Unpack screen in such a way that the existing Item,UOM and Qty fields are hidden.They are visible at present.Should I got for extending the page.The page makes use of the PackUnpackSplit Page class file now.
Would it suffice to just save the existing file as a different name and declare the class as extending PackUnpackSplit Page and make the following changes in the existing code?
protected void initUnpackDispl ay()
{
mFromLPNFld.set Hidden(false);
mChildLPNFld.se tHidden(false); //change boolean value from false to true to render LPN field on Unpack screen as hidden//
mActionBtn.setH idden(false);
mCancelBtn.setH idden(false);
mMoreBtn.setHid den(true);
if(mTrxSubType == 2)
{
makeItemPropsUn editable();
mChildLPNFld.se tRequired(true) ;
} else
{
mSubFld.setHidd en(false);
mSubFld.setEdit able(false);
mLocFld.setHidd en(false);
mLocFld.setEdit able(false);
mItemFld.setHid den(false); //change boolean value from false to true to render Item field on Unpack screen as hidden//
mUOMFld.setHidd en(false); //change boolean value from false to true to render UOM field on Unpack screen as hidden//
mQtyAvailFld.se tHidden(true);
mQtyFld.setHidd en(false); //change boolean value from false to true to render Qty field on Unpack screen as hidden//
mToLPNFld.setHi dden(true);
hideItemProps() ;
if(isPJMOrg())
I have never worked on MSCA or Java before and the current page PackUnpackSplit Page has the code for all Pack,Unpack,Spl it operations.
Best thing would be to give a try and see what happens.
we are here to help you anyways.
Regar ds,
Senthil
On the Mobile Unpack screen, I am unable to find the code to the "Unpack" button. This is the page where we have the From LPN, Sub,Loc,Item,UO M,Qty,AvailQty, fields and the Unpack and Cancel button. I went through the PackUnpackSplit Page.class file, UnpackFListener .class file and PackUnpackSplit BaseFListener.c lass file but am unable to find the code to the "UNPACK" button. Can anyone please help?
on Page you can find every field by prssing ctrl+x buuton.on that page you will get info about every field .so there
the name of "unpack "button is INV.ACTION .so now you can search in page class the refrence of this button .
on page i am pasting one line of code mActionBtn.setN ame("INV.ACTION ");
so i think now you will be comfortable.
T hanks and regards,
Shaile ndra Kumar Singh
How I can do.. If you can help me in this regard.. i will be greatful thanks.
Are you looking for any technical help. For me it looks more of a Functional question.
Kind ly Clarify.
Thank s and Regards,
Senthi l
I read your articles in Apps2fusion and once again thanks for sharing it with rest of the world.
I have a question regarding Mobile PO Receipts: Our client wants to see both RcptGenPage and RcptInfoPage UI into one page.
We are trying to merge 2 pages and make it as one page for Mobile Receipts.
After investigating RcptGenPage and RcptInfoPage has to be merged into one, the issue is:
RcptGenPage is Extending RcvPage and RcptInfoPage extending PageBean and both have duplicated methods, variables.
We have copied all the code from RcptInfoPage,Rc ptGenpage and made new Class file.
We complied and deployed it( we have followed all setup for registering and deploying new page),We are able to see our new Menu, Function and able to see our new page(Ctrl X gives our new class name in class file) but after entering ORG ID it is not going anywhere, so here my questions are:
We have gone through your articles and few people blogs but couldn't get right answers, I am hoping will get it from you.
Adding new single field is done by simply extending the standard class but here, ct wants club 2 pages UI and functionality into one page. So we copied both code into a single file(we removed duplicates methods, variables,....& #41; and compiled and deployed it, but we are not bale to see it.
So if you can help in this matter I will really appreciate it.
1)Is it possible to merge functionality and UI of RcptGenPage and RcptInfoPAge into one page.If yes, how?
2)We didn't change anything in the code, we just copied initLayout() code from RcptinfoPage into RcptGenPage initLayout() method like wise for all methods, is it ok to do it like that?
3) RcptGenPage extends RcvPage and RcptInfoPage extends Pagebean, so we just extended RcvPage, is this causing the issue?
If you would like to see code I can fwd the code.
Please give your insight thought about this issue.
Thanks,
your requirement is liitle bit critical,this costomization dont look feasible..
i cant answer properly but i suugest you dont divert oracle standard functionality.,
if you want to disp-lay any thing on PO reciept page its ok but if you want to cut any steps from standard steps
its a very critical transaction also devloping this kind of application required lot of resource and effort.
also exact functionality you need to know if you are changing any standard functionality.
thanks
shailend ra
Any pointers in this issue?
public class RcptExtGenFunct ion extends RcptGenFunction {
public static final String RCS_ID =
"$Header: RcptExtGenFunct ion.java 115.1 2002/04/17 00:09:11 mankuma ship $";
public static final boolean RCS_ID_RECORDED
= VersionInfo.rec ordClassVersion (RCS_ID, "oracle.apps.in v.rcv.server");
/**
* Default Constructor which is responsible to set the first page as
* the enter receipts page.
*/
public RcptExtGenFunct ion(){
super();
UtilFn s.trace("After Super RCV: RcptExtGenFunct ion.RcptExtGenFunct ion");
if (UtilFns.isTrac eOn) UtilFns.trace(" RCV: RcptExtGenFunct ion.RcptExtGenFunct ion");
setFirstPageNam e("oracle.apps. inv.rcv.server. RcptGenPage");
addListener(thi s);
}
/**
* App Entered event which stores the first page that was entered in the
* current navigation into the session variable RCV_FIRSTPAGENA ME as
* oracle.apps.inv .rcv.server.Rcp tGenPage
*/
public void appEntered(MWAE vent e) throws AbortHandlerExc eption,
InterruptedHand lerException, DefaultOnlyHand lerException{
Session ses = e.getSession();
if (UtilFns.isTrac eOn) UtilFns.trace(" RCV: RcptExtGenFunct ion.appEntered");
ses.putObject("RCV_FIRSTPAGENA ME", "oracle.apps.in v.rcv.server.Rc ptGenPage");
super.appEntere d(e);
}
}
Can you look at the error log and put some meaningful log message and see where it fails?
Enable trace level logging before you do so.
Thanks and Regards,
Senthi l
If no value is found in Lov field, "No result is found" message is shown in the last row of the telnet screen. I tried to capture this message and show it in a dialog box. But I don't know from where this message is coming. most probably from lov class. If try to manually check if empty of that exit field, and show dialog box. but it shows me as expected, but still the original error message also appears. Please help me to solve this issue. I want to show "no result is found" in a dialog box. Not at the last line.
Appreciate your help.
Regards,
Dhamayanthi K
The current Unpack Page requires Item to be selected for an LPN in order to be unpacked. My requirement is that I need to ensure that all Items are selected when I unpack the LPN and avoid having to select one Item at a time from the LOV on the page. The Itemfld,Qtyfld, AvailQty fld and UOM fld are to be hidden on the screen. Is there any way to accomplish this.
I saw in the code of the page and listeners that that there are many places such as this.pg.getItem Fld().getPrimar yUOM() etc. that use the item selected one at a time. I want to select all items in the background. What should I do?
Can you please explain your requirement in a more detailed manner?
Thanks and Regards,
Senthi l
Currently, the Unpack page requires each Item, Serial number to be selected for Unpack. I want to hide the Item,UOM,SN,Qty ,QtyAvail,Remai ning fields and Unpack all items and their serial numbers when i press the Unpack button just once. The only fields visible on screen would be From LPN, Sub and Loc. All other existing fields on the page should be invisible.This is my requirement.
T hanks,
Nitin.
I would like to know what @@@@ means in UtilFns.log("@@ @@:"
Thanks,
Nitin.
Are you able to achieve your requirement?
In UtilFns.log("@@ @@:" ) @@@@ .. means some useful log message.
Thank s and Regards,
Senthi l
I am working in an upgrade project from 11i to R12. there is one MSCA function .
I am unable to open it in R12 .In 11i its working fine.
Plz help me ..........
We need to avoid scanning the LPN again, ie display a message as Duplicate LPN if that LPN is already scanned.
For this as per your blog, I have extended the ShipLPNFunction , ShipLPNPage and the ShipLPNFListene r.
Inside the extended ShipLPNPage, I have added the following:
//LPN Lov initialization
Session session = e.getSession();
ShippingLPNLOV LPNfld =
(ShippingLPNLOV )session.getFie ldFromCurrentPa ge("ShipLPN.LPN "); //getLpnFld();
String curLPN = LPNfld.getLPN() ;
Connection con = session.getConn ection();
PreparedStateme nt pStmt = null;
ResultSet rs = null;
int count = 0;
try {
String sql =
"SELECT COUNT(1) FROM WMS_LICENSE_PLA TE_NUMBER WHERE LICENSE_PLATE_N UMBER = :1";
if (UtilFns.isTrac eOn) {
UtilFns.trace(" custom sql: " + sql);
}
pStmt = con.prepareStat ement(sql);
pStmt.setString (1, curLPN);
rs = pStmt.executeQu ery();
rs.next();
count = rs.getInt(1);
if (count > 0) {
setPrompt("Dupl icate LPN");
} else {
String[] lpnInputs =
{ " ", "ORGID", "LOCATORID", "TRIPID", "TRIPSTOPID",
"oracle.apps.xx edp.IRShipLPNPa ge.ShipLPN.LPN" };
getLpnFld().set InputParameters (lpnInputs);
}
} catch (SQLException sqlexception) {
if (UtilFns.isTrac eOn) {
UtilFns.trace(" Exception in custom query: " + sqlexception);
}
} finally {
try {
if (rs != null) {
rs.close();
}
if (pStmt != null) {
pStmt.close();
}
} catch (SQLException se) {
if (UtilFns.isTrac eOn) {
UtilFns.trace(" Exception while closing resultset/ statement: " +
se);
}
}
}
Will doing setPrompt give me a prompt on the screen ?
Also, how do I enable that trace ?
Thanks,
PH.
you can display message by session.setStat usMessage("mess age to display");
and point the cursor to the same field again.
Regards
Shailendra
Thanks Shailendra.
I figured out that for the requirement we have, we need to add a validation before the LPN ID gets generated for an LPN being scanned.
From the menu defined, I found oracle.apps.wip .wma.MENU.LPNFL OWMENUITEM is the page which gets called for flow completion.
Thi s in turn calls the LpnFlowPage.cla ss
Now the LpnHandler.clas s defined in this is private.
How to then go about adding the validation query?
Regards ,
PH.
We have a client requirement to add a custom field on a seeded from 'Mobile Pick Load - Mobile WMS Manual Picking'. (Used to Load an LPN based on the warehouse Tasks)
From the seeded java code I learned that this form gets rendered dynamically using class 'UIGenerator' (in oracle.apps.wms .config.server) .
I was trying to follow the approach of customization given in this blog. I am finding it difficult because of following reasons:
1.The form to be customized opens from another form when user clicks on 'Done' button.
2.I need to copy the entire java code of first from to direct the flow to the form to be customized.
3.A lot of session variables in the form to be customized are not getting setup properly.
Do you think this seeded page can be customized as per the method recommended in this blog?
Thanks and regards.
Omkar.
This article speaks about extending a standard Oracle Page. Customization is a term which commonly means building your own piece. If you can't extend a standard page for some reasons, you can customize a page and it will not be supported by Oracle.
Hope this is clear. Feel free to post your queries.
Thank s and Regards,
Senthi l
similar kind of customization i have recently done in my project.
the customization you are talking is not so easy .for this you have to be understand all the java cl;asses related to this module after that only you can add some extra field logic. please send clear requirement so that we can help you.
thankx to Senthil for creating this blog Regards ,
Shailendra Singh
By mistake i used work Customization. We need to add a custom field on a seeded MSCA from using extension.
Hi Shailendra,
I read your posts related to this requirement, but was not sure whether you had achieved this.
Here is our requirement in detail:
We need to add a custom read only field on MSCA form 'Mobile Pick Load - Mobile WMS Manual Picking'.
This field will have a pre populated value which needs to be derived using a custom logic.
So, when user logs in in this page, he/she will see this custom value along with the other details like sub inventory,locat ion, item and so on..
I have identified following flow:
AOL Oracle form function calls page TaskSignonFunct ion.class. TaskSignonFunct ion.class calls page TaskSignonPage. class. TaskSignonPage. class calls TdFunction.clas s. Tdfunction class calls TdPage.class. Now the at TdPage, method FetchNextTask finds the next available task and MainPickPage.cl ass is called. This MainPickPage.cl ass in turn calls UIGenerator.cla ss to render the required page.
My specific problem right now is, Throu the extended classes how to set below mentioned session variables.
TXN .PAGE_TYPE
TXN. TASK_METHOD
TXN .ALLOW_UNRELEAS ED_TASK
TXN.PRI ORITIZE_DISPATC HED_TASKS
and so on..
These variable values are crucial to render the right page..
Please let me know if you have any idea about which class sets these variables.
Tha nks.
Omkar
whatever you want add on the respective page ....
see the satandard java code to set session variable its very easy...see in previous blog to add field on page...
Regard s,
Shailendra
To add a custom field on 'MainPickPage' form and add corresponding custom logic, I have decompiled the seeded java classes and going to copy paste the java logic in custom java file.
Do you think this is the only feasible option?
Omkar.
becop use java only allow you to extend first level of functionality .what you are doing is the second level.
Regards
Shailendra
This is the requirement
We are new to MSCA (WMS is not used by us). We use the pick confirm (Pick wave/move order) functionality.
The problem is currently standard functionality allows any lot number to be picked as long as inventory is available.
Our business requirement is to pick only the allocated lot number. (In otherwords only to allow the lot number reserved/ the lot number displayed in the prevoius filed). Therefore we have to modify the coding to validate the lot number that is entered against the previous field (system displayed lot number).
We dont know which which function, Listener, page class to modify and what the field name.
on Any MSCA Page just click the Ctrl+x to see the page information you will get to know the field name as well as tha java page just look into java code u will know the listner class of the page.
Regards,
Shailendra.
that was quick and easy,
the page name is 'DetailPage' and the field name is 'Lot'
Next step would be to write a code following the published example, changing only what is required in my case.
In order to correctly follow the function-page-l istener class schema i should create my own function-page-l istener extensions.
Now i know the page name (thank you) and would guess the listener class would be 'DetailFlistene r' -
i can see it in my . . . /apps/inv/invin q/server folder/director y.
How should i find the function class?
I don't know it yet but it might be possible i may not need to extend all three classes,
but in all cases it would be good to know how things work and how to find the connections between them.
thank you in advance for your time
James
The function class name should be attached to the menu definitions.
If you go to Application Developer -> Applications -> Functions, every page in mobile application will be registered here. You can find the full name of the function here.
Hope this helps.
Thanks and Regards,
Senthi l
well,
thank even more because
that was a question i shouldn't have asked (i should have known where to look)
the function name is 'PickWaveFuncti on'
i will try to do some testing now
thank you very much
James
Senthil how do you are planing to explore more knowledge on MSCA topic...
it will be good if devloper can share details like email id and phone number so that if any doubt any devloper should reach to other.this site its better to say its a knowledge centre should be more available to any body.
Regards ,
Shailendra
In my opinion it is not good idea to share emails or phone numbers on public forums. It can be misused.
What do you think?
Thanks and Regards,
Senthi l
you are perfectly right.but suppose if we are login into this site with the proper email id and varifiaction is done through admin then it will be great.but i also dont know term and contidion whether its allow or not.
generally its a portal for devloper so i dont think any body will missuse it.what happen generally some time there is no reply or whoever is new want some more claririty for understanding at time time its great if we can give help or take help telephony..
Reg ards,
Shailendr a
Thanks and Regards,
Senthi l
I am working on a requirement to add a custom field on the MainPickPage.
I have used the approach mentioned in this blog and created xxMainPickPage and xxMainPickListe ner.
I am able to add a the field. But when I proceed on the fom, the seeded logic in the MainPickListene r failes while executing logic in fieldExited method for field 'Sub Confirm'.
form the log i identified that in following code value of s is being derived as blank.
InputableFieldB ean inputablefieldb ean = (InputableFieldB ean)mPage.getConfirmField("MAIN.FROM_SUB");
s = inputablefieldb ean.getValue().trim();
But, on the form, I can see the first filed 'SUB' being populated with value 'BIN'. so in above code inputablefieldb ean.getValue().trim() should have returned 'BIN'. But it does not return any value. This is causing the form to fail with message 'Invalid Subinventory'.
Shailendra, did you get similar problems ? please let me know if i should provide more information for the problem.
Shaile ndra please help me, as I think you have successfully extended these classes in your project.
Omkar .
This is the piece of my code where I am adding Field Beans:
// Sub-inventory Field
mSubInvFld = new LOVFieldBean();
mSubInvFld.setN ame("SubInv");
mSubInvFld.setl ovStatement("SE LECT DISTINCT SECONDARY_INVEN TORY_NAME FROM MTL_SECONDARY_I NVENTORIES WHERE SUBINVENTORY_TY PE=1 AND RESERVABLE_TYPE =1");
mSubInvFld.setV alidateFromLOV( true);
mSubInvFld.addL istener(fieldLi stener);
// Locator Field
mLocatorFld = new LOVFieldBean();
mLocatorFld.set Name("Locator") ;
mLocatorFld.set lovStatement("S ELECT DISTINCT DESCRIPTION FROM MTL_ITEM_LOCATI ONS WHERE DESCRIPTION IS NOT NULL");
mLocatorFld.set ValidateFromLOV (true);
mLocatorFld.add Listener(fieldL istener);
It does not even show up the LOV. Also when I enter a value manually it gives me unsuccessful row construction.
Kindly let me know where I am going wrong.
Regards ,
PH.
I cannot compile properly above given Examples class files, please let me know which tool shall i used to compile the class files.
Regards ,
Syed
We currently have several MSCA/MWA pages which rather than bein extensions of existing Oracle pages are completely written from scratch. We are upgrading from 11.5.10 to R12 soon and would like to know whether there has been any methods removed, changed etc, ie anything which may prevent code designed to run under 11.5.10 from running in an R12 instances.
All updates are done through package calls so the code is stored in the database rather than being executed from within the class file.
Any pointers or help would be appreciated.
Thanks,
John
When we using the mobile device to open any of the MSCA page, and navigate to any button. The button is not circled by a dot-line to indicate that the button gets the focus. It work ok when we use the simulator for the same page, same button. Do you have any idea? Thanks
Regards
Lawrence
My requirement is to add new field in PO form in MSCA.
Can you help me in extending the classes.
in Listerner class,i am facing some problems like
In child class i am not able to access the private methods of the parent .how can I call them?
I decompiled the parent class"RcptGenFL istener.java" and copied to the xxxRcptGenFList ener.java and then i removed some of the methods content and called super.method(). it worked fine for some methods.
Can you help in calling other private methods of a parent class.
And pls tell me whether I am doing in a right way or not.
Thanks,
Sw apna
After extending the page,in the new page i am not getting the values for the old lov fields.(for example for existing field like Dock door,field are getting displayed but LOV is not getting displayed)
Can you please help on this.
Thanks,
Swapna.
I apologize for the fact that my query is not about MSCA customization. I am trying tro find out the screen from which I pick serial numbers for an order on MSCA and generate pick slip.I did a direct ship process and generated packing slip but I am not aware of the process to generate a pick slip for an order from MSCA screen. Can you provide me with the navigation for the same?
Thanks,
Nitin
Thank s for the crisp steps and lucid explanation.
B est Regards,
Chaita nya
I have extended many MWA pages by reading you blog. [ thanks ? ]
But I am stuck while extending one of the oracle's MWA page [ oracle.apps.inv .invtxn.server. SerialSubXfrPag e ], and need your help
I have created custom Function, Page and Listener classes [same way that I have other extensions working fine]
Standard
======
Page : oracle.apps.inv .invtxn.server. SerialSubXfrPag e
Function : oracle.apps.inv .invtxn.server. SerialSubXfrFun ction
Listener : oracle.apps.inv .invtxn.server. SerialSubXfrFLi stener
Functio n Name : Mobile Serial Sub Transfer
FND Function : INV_MOB_SER_SUB _XFR
HTML CALL : oracle.apps.inv .invtxn.server. SerialSubXfrFun ction
Custom
= =====
Page : xxx.oracle.apps .ims.mwa.inv.in vtxn.server.Xxy hSerialSubXfrPa ge
Function : xxx.oracle.apps .ims.mwa.inv.in vtxn.server.Xxy hSerialSubXfrFu nction
Listener : xxx.oracle.apps .ims.mwa.inv.in vtxn.server.Xxy hSerialSubXfrFL istener
When I update the FND_FUNCTION to point to my custom function class [FND Function is INV_MOB_SER_SUB _XFR ] , framework calls my function, it then properly directs control to my Page, in the page my pageEntered() is called and completes without any error. [I have remove all custom code, just log comments]
Afte r pageEntered() , the UI crashes with message in the status bar as "Unexpected error occured, please check the log."
The message in log file is . (I have seen that two more guys have posted the same error on this forum]
-------- --------------- ---------------
(Thread-14) *************** *************** *************** ****
(Thread-14 ) SerialLOV: fieldEntered
(T hread-14) isPopulated()== =========false
(Thread-14) Employee ID :null
(Thread-1 4) Organization ID :7292
(Thread-1 4) Executing the J Patch Set Code
(Thread-14 ) Error java.lang.Numbe rFormatExceptio n: null
The reason I have posted only these last lines of the log is because this is the only difference in log when executing the standard page Vs Custom page.
Note : I saw that Employee ID :null , might be the error , so I had tried to set it
mwaevent.getSe ssion().putObje ct("EMPID","183 357");
The same error still existed, only diffenence is it showed the value of the employee ID instead of null
So I don’t think that is the root cause.
Can you please help me to identify the root case of this issue.
Thanks a ton,
Chaitanya
We have a requirement to complete WIP Job from MSCA.
Can you please help us ,how to import WIP Job compeltion data from MSCA to Oracle.
Thanks
Murthy
very nice to see your blog and nice help you are extending on this. We are using customscanmanag er.class to invoke preprocessed scanning logic. we are very much successful to check the current page and the fields. example code is specifically written to check if the page is 'Mo Allocation' and the field is 'Confirm Item'. and all the page names we are using in order Management quick codes.
Now we want to have this restricted to specific responsibilitie s like maintaining lookup of responsibilitie s. but we are unable to find what is the Current Responsibility, which jave method can be used to find this?
Thanks - Mothi
I am trying to extend the bullkpack page ,but i am unable to intialize it.Kindly request you to advise me on this.Please find the code below.
package oracle.apps.wms .bp.server;
im port oracle.apps.wms .bp.server.BPPa ge;
import java.sql.Connec tion;
import java.sql.Date;
import java.util.Hasht able;
import java.util.Vecto r;
import oracle.apps.fnd .common.Version Info;
import oracle.apps.inv .lov.server.Ite mLOV;
import oracle.apps.inv .lov.server.LPN LOV;
import oracle.apps.inv .lov.server.Loc atorKFF;
import oracle.apps.inv .lov.server.Lot LOV;
import oracle.apps.inv .lov.server.Pro jectLOV;
import oracle.apps.inv .lov.server.Rea sonLOV;
import oracle.apps.inv .lov.server.Rev isionLOV;
impor t oracle.apps.inv .lov.server.Ser ialNumberLOV;
i mport oracle.apps.inv .lov.server.Sou rceTypeLOV;
imp ort oracle.apps.inv .lov.server.Sub inventoryLOV;
i mport oracle.apps.inv .lov.server.Tas kLOV;
import oracle.apps.inv .lov.server.Uom LOV;
import oracle.apps.inv .utilities.serv er.DualUOMField s;
import oracle.apps.inv .utilities.serv er.DualUOMInter face;
import oracle.apps.inv .utilities.serv er.NumberFieldB ean;
import oracle.apps.inv .utilities.serv er.ReleaseLevel ;
import oracle.apps.inv .utilities.serv er.SerialLotTrx Page;
import oracle.apps.inv .utilities.serv er.UtilFns;
imp ort oracle.apps.mwa .beans.ButtonFi eldBean;
import oracle.apps.mwa .beans.FieldBea n;
import oracle.apps.mwa .beans.PageBean ;
import oracle.apps.mwa .beans.TextFiel dBean;
import oracle.apps.mwa .container.MWAL ib;
import oracle.apps.mwa .container.Sess ion;
import oracle.apps.mwa .eventmodel.Abo rtHandlerExcept ion;
import oracle.apps.mwa .eventmodel.Def aultOnlyHandler Exception;
impo rt oracle.apps.mwa .eventmodel.Int erruptedHandler Exception;
impo rt oracle.apps.mwa .eventmodel.MWA Event;
public class XXINDBPPage extends BPPage {
public XXINDBPPage(Ses sion paramSession) {
super(paramSess ion);
UtilFns.log("In side XXINDBPPage Step 1");
//Add a new button and set the properties.
mTxtField = new TextFieldBean() ;
mTxtField.setNa me("XX_TEXT");
mTxtField.setPr ompt("New Text");
mTxtField.addLi stener(xxListen er);
mTxtField.setVa lue("Initial Text");
this.addFieldBe an(3, mTxtField);
th is.mLPNFld = new LPNLOV("BULK_LP N");
String[] lpnInputs =
{ " ", "ORGID", "oracle.apps.wm s.bp.server.XXI NDBPPage.LPN", "" + getLPNFld().get SubinventoryCod e(), "" + getLPNFld().get LocatorId() };
this.mLPNFld.se tInputParameter s(lpnInputs);
}
public void pageEntered(MWA Event e) {
UtilFns.log("In side XXINDBPPage Step 1");
super.pageEnter ed(e);
UtilFns.log("In side XXINDBPPage Step 2");
}
TextFieldBean mTxtField;
XXINDBPPageFLis tener xxListener = new XXINDBPPageFLis tener();
}
String[] lpnInputs =
{ " ", "ORGID", "oracle.apps.wm s.bp.server.XXI NDBPPage.LPN", "" + getLPNFld().get SubinventoryCod e(), "" + getLPNFld().get LocatorId() };
this.mLPNFld .setInputParame ters(lpnInputs) ;
I am using the above code to initialize the lov's which is not working
Thanks ,
Punith.B
i am new to MSCA. Recently i got one requirement related to "MSCA/MWA Customizations & Extensions". Requirement is
In PO recpt page i need to add one more field called "Ordered Quantity" which will pick the value from db and displayed in PO recpt, which customer actually ordered. There is already a field called Qty(Quqntity) in which user enters the value manually as per available quantity in store and this quantity will be shipped to customer
Kindl y give some example and valuable suggestion on how to achieve this requirement.
Kind Regards
Rajeev Ranjan
[Thu Dec 27 02:57:41 EST 2012] (Thread-14) Employee ID :null
[Thu Dec 27 02:57:41 EST 2012] (Thread-14) Organization ID :148
[Thu Dec 27 02:57:41 EST 2012] (Thread-14) Executing the J Patch Set Code
[Thu Dec 27 02:57:41 EST 2012] (Thread-14) Error java.lang.Numbe rFormatExceptio n: null
Thanks,
V inod
I am working on one assignment where I need to add one field on oracle.apps.wip .wma.page.MoveP age at end and need to save details entered in reference field when Move Assy has been performed on job.
I am not able to see logs generated for this seeded page as it is using WMAUtil.log method which in turns uses appslog.write. Could you please let me know where to see log messges for this class. As its not avaialble in standard MSCA log files.
Appreci ate your help on this !
thanks,
Keta ki.
I have a quit button in my custom form.
I want to use 'Q' as the Hot key for quick navigation.
Bel ow is my code :
mQuitButton = new ButtonFieldBean ();
mQuitButton.set Name("XXINV.QUI TBUTTON");
mQuitButton.set NextPageName("| END_OF_TRANSACT ION|");
mQuitButton.set EnableAccelerat orKey(true);
mQuitButton.add Listener(fieldL istener);
Plea se help on this.
If anyone wants to Learn Oracle in Chennai go to the Besant Technologies which is No.1 Training Institute in Chennai.
http://www.oracletraininginchennai.in
I am unable to get it to display inline, how can I achieve this?
this.mDffBean = new DescriptiveFlex FieldBean("WMS", "WMS_LICENSE_PL ATE_NUMBERS", null, "DEFAULT", paramSession);
this.mDffBean.s etDisplayInline (true);
ArrayList localArrayList1 = new ArrayList();
localArrayList1 .add(mDffBean);
this.setInlineD ffBeans(localAr rayList1);
this.mDffBean.s etName("LPNDFF" );
this.mDffBean.s etDisplayInline (true);
this.mDffBean.s etHidden(false) ;
this.mDffBean.s etDisplayInline (true);
UtilFns.trace(" this.mDffBean.i sDisplayInline( ): " + this.mDffBean.i sDisplayInline( ));
FileLogger.getS ystemLogger().t race("this.mDff Bean.isDisplayI nline(): " + this.mDffBean.i sDisplayInline( ));
addFieldBean(th is.mDffBean);
I need your inputs on above issue
I need your inputs on above issue
I am trying to add changes but the changes do not REFLECT immediately after the bounce. they reflect like 24 hours or so . Don't know why?
I have a requirement in which I have to customize the Material Isse transaction page. I have done it as suggested be your article. Created a package xxwip.oracle.apps.wip.wma.page.xxMateriaPage.java.
All the other classes are placed in the similar manner as suggested by you.
Now when I run my application from front end I get the exception Cannot load the class: xxwip.oracle.apps.wip.wma.menu.xxMaterialMenuItem.java.
I have set the classpath as '$JAVA_TOP/classes/xxwip.
Can you please help me on this.
This is really urgent for my project.
I have requirement where I need to add a new field in Pick Load Page set up named "Customer Part number " below the Item filed. Can this be done using form personalization or I need to extend the the Mobile Page. Just to give you idea about the requirement: Customer wants facility to scan either Oracle Item Number or Customer Part number when Picking the Items during mobile task picking.
was extremely long) so I guess I'll just sum it up what I had
written and say, I'm thoroughly enjoying your blog. I too
am an aspiring blog blogger but I'm still new to the whole thing.
Do you have any tips for first-time blog writers? I'd certainly appreciate it.
I appreciate you taking the time and effort to put this short article together.
I once again find myself spending way too much time both reading and commenting.
But so what, it was still worthwhile!
Codice Promozionale 93 Street
Starbet24 Net
si gioca su un un tavolo Verde
ridimensionare un poker
Giochi gratis di vittorioso
slot a dispersione
Vieni a VEDERE LE Offertte Utive Sul Cellulare
GIOCO Crazy Crash
Spin gemello slot
Royal Bet Scommesse
pollo gioca oro per pc
Giochi Gratis Casino Las Vegas
Sisal Roulette Live
Gonzo gratis
roulette di casino
gioco della roulette gratis
GBC Net
Bonus online
slot a dispersione
snaislot
Big Casino Login
Millionaire Gioco
casino.com
spin dayli
app gratta e vinci sfida al casino
Modifica Numero Cellulare Pospay
Snai Telefono
roulette
slot con sold Veri
Vmsi Ltd
roulette gratis
Password Restrizioni iPhone Dimticata
Orari Casino Venezia
Sisal Casino dal vivo
montepremi.esso
Casino online Soldi Veri
Amazon Prime Giochi Gratis
slot machine da bar
Baccarat Live Online
slot vlt online
Aprire Sala Slot Convienene
Macchina da poker gratis
Ricarica Satispay Tabaccaio
Starcasino Scommesse
Statistiche dal vivo Time pazzo
Quello Giusto on line
Codice bonus Starcasino
vivo online
Lottomatico Accesso Conto Gioco
Gioco SCOPA GRATIS DA DARICARE PER PC
slot machine delfini gratis
IPRITURE IPRITIFICO IDITY SERVER IPhone
bonus slot online benvenuto
Apple PAY POSTPAY
Sistemi vietati alla roulette
Slot machine Maccinette
Giochi.It Solitario
slot reactoonz
Casino online Italia
Jachpot
Cambiare Numero Telefonica pospay
Apple Cash Italia
Slot Jack Hammer
Migliori Casino Italiani
Disattivare Localizzazione iPhone
Black Jack Casino
Stullo da poker
London Store e affidabile
bonus casino immediato
Blackjack Side Bet
Roulette di chat dal vivo
Casino com Italia
Login Lottomatico
pazzo tempo tempo reagente
Gioco Dei Polli Casino
Sistema Roulette Matematicame Infallible
negozio di tigre promoziale di Codice
Book Fra
Giochi in Edicola Queto Mese
Casino Senza Registrazione
rose rose
Tornei Poker Malta
cerco giochi gratis da cicalare
GIOCHI BLACKJACK
Siti SCOMMESSE SENZA DOCUMENTO
Codice Promozione Lottomatico gratis
Licenza Windows 10 a 10 euro
ETA HOMYATOL
Solitario FreeOnline
Casino in diretta online
Giochi di Carte Briscola Gratis in italiano
Accesso al tombola
bonus immediato Senza document
Trakcasino
Scommesse Gratis Senza Deposito
Jackpot Casino online
Regalo Asino
tavolo da roulette
Gonzo italiano
Planetslot
RSS feed for comments to this post