Mobile Supply Chain Application Framework -Introduction
Written by Senthilkumar Shanmugam   
Tuesday, 29 January 2008
MSCA/MWA Framework in Oracle Apps EBS
Mobile Web Application development in Oracle eBusiness Suite is very niche skill. You can count the number of consultants with this expertise on your fingertips. One of those experts is a freelance consultant Senthil Shamungham. Senthil has done extensive development on this technology, both on 11i and 12i environments. Currently Senthil is working on a R12 project in Germany.
Please find first article in this series, whereby Senthil explains the basic fundamentals of Mobile Web Applications in Oracle eBusiness Suite.

Oracle Mobile Supply Chain applications(MSCA) enable users to perform many common warehouse and shop floor transactions through hand-held radio frequency devices, personal digital assistants and truck-mounted radio frequency scanners. Oracle Mobile Supply Chain is part of the Oracle E-Business Suite, an integrated set of business applications that delivers complete process automation and complete information.


Mobile Supply Chain Applications (MSCA) enables automated mobile user operations. This is performed using hand held radio frequency (RF) devices, PDA’s, and lift truck mounted RF scanners. Oracle has leveraged standard Internet technologies such as Java, XML, TCP/IP and Telnet to create a device independent technology platform to support these types of applications. In general, these mobile devices will be connected to the network using the radio frequency (RF) standard of 802.11b and will communicate using TCP/IP. The figure below explains the communication flow using Mobile Devices.





Functional Areas Covered by Mobile Applications

  • Manufacturing: Moves, Issues, Returns, Scrap, Completions etc

  • Receiving: Direct, Standard, Inspect, Cross-Dock, Print etc

  • Inventory: Transactions, Transfers, Counts, Labelling etc

  • Shipping: Pick confirm, Ship Confirm etc



Advantages of Using Mobile Devices

  • Improve operational productivity and reduce costs through process automation

  • Ensure accurate, up to date inventory information by using barcode scanning for data entry.

  • Increase customer satisfaction by improving inventory accuracy, shipment confirmation and quality tracking

  • Real Time Validations




 

Technical Overview of MSCA/MWA Framework
Oracle has built MSCA/MWA framework in order to develop Mobile Applications. A mobile application, as defined by MSCA, is built using the following Java Beans:
  1. 1) A MenuItemBean is needed to attach the mobile application to the Oracle Desktop ERP. It contains no page layout information on its own, but is a necessary conduit to connect the Desktop ERP to mobile transactions. At the leaf node of the FND menu structure lays an FND Form Function that points to the MenuItemBean. The MenuItemBean in itself points to the first page in the application, which is represented by a Page Bean.

  2. 2) A PageBean represents the unit of display (i.e. a single screen on a mobile client). To define a new page, the developer must extend the PageBean, and make a new page bean class. Within this new class, the developer must use the new PageBean's constructor to instantiate FieldBeans (graphical components), and add them to the page.

  3. 3) The FieldBean is a super class for all data collection/display graphical components that the developer can use in their pages. When the mobile server loads a new page, it calls the user defined PageBean's constructor, which in turn creates all of the graphical components on that page. Examples of FieldBeans are TextFieldBean, ButtonFieldBean, LOVFieldBean, MultiListFieldBean, ListFieldBean, HeadingFieldBean, SeparatorFieldBean.



MSCA/MWA Framework is based on existing Java Event-Listener Model.
An application's runtime logic is specified through the mobile applications event model, a set of interfaces that provide an infrastructure for handling events in an organized and modularized fashion. A listener can be added to any field, page, or application of your mobile transaction. The following is a list of listeners available:

  1. • FieldEntered – this is called when a particular field is entered. For example, prior to entering a particular field, there may be a need to reinitialize some variables.

  2. • FieldExited – this is called when a particular field is exited. The most common of the listeners, this is used for validation of user input.

  3. • PageEntered – called when the page is entered, this can be used to initialize values on the page.

  4. • PageExited – called when the page is exited, this can perform page level validation logic.

  5. • AppEntered – called when the entire transaction is entered, this can be used to initialize transaction level variables.

  6. • AppExited – called when the entire application is exit, an example use can be to close resources.

  7. • SpecialKeyPressed – this is called when the user presses any special character, such as a Control character. Pressing CTRL-G to generate LPNs or Lots is one example of when this gets called.


Comments (11)add
Excellent Article
written by Vani , January 30, 2008
Dear Mr. Senthil,

It would be gr8 if you could attach a nugget of code for any flow. That will be of gr8 help.
...
written by Anil Passi , January 30, 2008
Hi Vani

Senthil will do that, but he will do it in setp by step approach.
I think he is trying to cover the fundamentals first, before jumping onto the code.

Thanks
Anil
MSCA 12 Customizations
written by Veera , January 30, 2008
Hi senthil,

I was worked on some MSCA customizations in 11i. Now I am working on 12i MSCA extensions.
I succesfully extend the RcptTrxPage. When I select the Item Lov in extended RcptTrxPage It is showing no results is found. I got a problem with extended page only. Vanilla version worked fine. Please share your thoughts on this.

Thanks
Veera

...
written by SenthilKumar , January 30, 2008
Hi veera,

Did u get any meaningful information from the log files?

Can you please check the parameters passed and the output of PL/SQL procedure when the LOV is clicked?

I hope you know that the log files are .INV.log and .system.log

Thanks,
Senthil
...
written by Veera , January 31, 2008
Hi Senthil,

There is no Info in .system.log and INV.log. I verified in both Vanilla and Custom files, Bothe are same. Do you have any Idea, Why Item LOV is working in Vanilla why not in Extended page. I just add two more Texfield Beans in Page. Do I need to Implement any Listener code, to resolve this. If you want look at the Code I will send you my files.

Advance Thanks for your Help.

Thanks
Veera
...
written by SenthilKumar , January 31, 2008
Hi Veera,

I faced a similiar problem in some other page which I have extended and figured out that the '%' substitution for the where clause of the LOV query was missing in the extended page. Can you check whether all the variables of your extended page binds correctly?

Thanks and Regards,
Senthil
...
written by Sreeni , February 01, 2008
Hi Anil,

Senthil's article is very nice.I had worked on MWA customizations for around 2 years at GE C&I.I really thank you for bringing MSCA/MWA consultants together.
...
written by Anil Passi , February 01, 2008
Good to hear from you Sreeni.
Please feel free to email me, it is good to keep in touch in this small world.

Cheers
Anil Passi
...
written by Veera , February 04, 2008
Hi Senthil,

I tried many ways to get resolve the issue. can you give me some direction how do I find all the bind variables are extended correctly.

Thanks
Veera
...
written by SenthilKumar , February 04, 2008
Hi Veera,

All the bind variables will be logged in the port_no.system.log file. Compare the log for the LOV click event for standard page and the extended page. You can easily find the variables bound for each of them.

use the command tail -f port_no.system.log and monitor it when you click the LOV.

Hope this helps.

Thanks,
Senthil
...
written by Veera , February 04, 2008
Hi senthil,

I found that there is one parameter is passing null instead of '%' to Item LOV. That is causing the issue for No results are found. Please find the sutem log for both vanilla and extended class.

I tried to manually passing the parameter like
String as3[] = { " ", "ORGID", "%", " and mtl_transactions_enabled_flag = 'Y' and bom_item_type=4 " };
super.mItemLOV.setInputParameters(as3);
for Item LOV. Still getting the same issue. Can you please share your experince how you over come this issue. I am getting this error in Subinventory Transfers, Mislaneal recept, accout alias receipt page. Right now I am working on SubXferPage and RcvTrxPage, and IssueTrxPage.



Extended Page :
loadPage: done loading 'oracle.apps.mwa.beans.LOVRuntimePageBean' (pageIx = 5, fieldIx = 0)
handleEvent: entering new page (pageIx = 5)
callListeners: executing 1 listeners, action = 0
callListeners: PageBean
Entering pageEntered of LOVRuntimePageHandler
lov stmt :INV_UI_ITEM_LOVS.GET_ITEM_LOV
inputParams[0] :
inputParamsType[0] :C
value of inputParams[0] :null
inputParams[1] :ORGID
inputParamsType[1] :N
value of inputParams[1] :367
inputParams[2] :xx.oracle.apps.inv.invtxn.server.XxSubXferPage.INV.ITEM
inputParamsType[2] :S
value of inputParams[2] :null
inputParams[3] : and mtl_transactions_enabled_flag = 'Y' and bom_item_type=4
inputParamsType[3] :AS
No result is found

Vanilla Page

loadPage: done loading 'oracle.apps.mwa.beans.LOVRuntimePageBean' (pageIx = 5, fieldIx = 0)
(SGARAPATI) handleEvent: entering new page (pageIx = 5)
(SGARAPATI) callListeners: executing 1 listeners, action = 0
(SGARAPATI) callListeners: PageBean
Entering pageEntered of LOVRuntimePageHandler
lov stmt :INV_UI_ITEM_LOVS.GET_ITEM_LOV
inputParams[0] :
inputParamsType[0] :C
value of inputParams[0] :null
inputParams[1] :ORGID
inputParamsType[1] :N
value of inputParams[1] :367
inputParams[2] smilies/shocked.gifracle.apps.inv.invtxn.server.SubXferPage.INV.ITEM
inputParamsType[2] :S
value of inputParams[2] :%
inputParams[3] : and mtl_transactions_enabled_flag = 'Y' and bom_item_type=4
inputParamsType[3] :AS
addFieldBean: type = 13



Thanks & Regards
Veera

You must be logged in to a comment. Please register if you do not have an account yet.

busy