AK Dictionary is an active data dictionary that enables you to define inquiry applications for the web, and generate 

many of the application's characteristics at runtime. The data dictionary stores key information
about your application, including appearance, language, security requirements, navigation, and data.
MSCA/MWA Framework uses AK Repository mainly for two purpose:
1) Defining Labels
2) Defining DFIs
1) Defining Labels:
When we create a new custom page using MSCA/MWA Framework, we use setPrompt() set the labels to the fields.
In order to support MLS(Multi Language Support), we need to define these
labels as Items in AK Repository and link into custom page.
2)DFI(Data Field Identifier):
DFI functionality in Oracle Mobile Applications (MSCA and WMS) allows identification of the type of data that is embedded within
a barcode when it is scanned by the mobile device. DFI usually consists of one to three characters that precede the
value of the data that is encoded in the barcode.
We will see each of them in detail now.
Steps to Create Labels in AK Repository:
Step 1: Define Attribute
Navigation: AK Developer ->Define Attributes
Create a record necessary information like Attribute ID,Attribute Name,Label etc
Step 2: Define a Controller
Before creating a region in AK Repository, we need to have a controller to associate to the AK Region.
Following is a sample controller class for an AK Region
package xxx.oracle.apps.inv.utilities;import oracle.apps.fnd.common.VersionInfo;public class CustomInvResourceTable{public CustomInvResourceTable(){}public static final String RCS_ID = "$PkgHeader:$";public static final boolean RCS_ID_RECORDED =VersionInfo.recordClassVersion("$PkgHeader:$", "xxx.oracle.apps.inv.utilities");public static final String AK_CAR_SIGN = "XXWMS_CAR_SIGN";..............}
Step 3: Define a AK Region:
Navigation: AK Developer ->Define Regions
Create a record with Region Id, Region Name etc and associate the controller class which we created in the previous step.
Step 4: Link AK Regions and AK Attributes
Navigation: AK Developer ->Define Regions
Click on Region Items Button
Create new record and link the attribute(s) which we created previously. If you plan to use the field as DFI,
you have to define the DFI attributes in "Default Varchar2 Value" Column. For example, a value like
"DFI=Q REQ=N" means that when a barcode is scanned on that field using the hand held mobile device,
Q will be stripped from the barcode and the remaining value will be stored in the field.
In this case, The Barcode should have the value like "Q123456".
How do I retrieve the label in the Custom page?
You can set the label to the field by using APIs to retrieve from AK Repository. See Below for a sample Code
mPONum.setPrompt(MWALib.getAKPrompt(ses, "xxx.oracle.apps.inv.utilities.CustomInvResourceTable", "XXWMS_PO_NUM"));mPONum.retrieveAttributes("XXWMS_PO_NUM");
Where,
XXWMS_PO_NUM is an attribute defined in AK repository.
mPONum is field bean in Custom Mobile Page.
How do I move the AK repository contents from one instance to another?
The AKLOAD program is used for uploading and downloading the contents.
Detailed syntax can be found in the following http://download-uk.oracle.com/docs/cd/A60725_05/html/comnls/us/ak/akload.htm
Example:
Download:
Region:
java oracle.apps.ak.akload apps apps THIN "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.1)(PORT=1527))(CONNECT_DATA=(SID=DEV)))"
DOWNLOAD XXWMS_MOBILE_RN.jlt GET REGION INV XXINVRESOURCETABLE
Attribute:
java oracle.apps.ak.akload apps apps THIN "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.1)(PORT=1527))(CONNECT_DATA=(SID=DEV)))"
DOWNLOAD XXWMS_MOBILE_ATTR.jlt GET ATTRIBUTE INV XXWMS%
Upload:
java oracle.apps.ak.akload apps apps THIN "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.1)(PORT=1527))(CONNECT_DATA=(SID=DEV)))"
UPLOAD XXWMS_MOBILE_RN.jlt UPDATE American_America.AL32UTF8
My customer asks me to change the prompt on Std Mobile Screens. How Can I do it?
Case 1: Say suppose, the Customer wants to change prompt "Lot Qty" to "Qty" in all the mobile pages:
To change the prompts follow the steps below:
Goto the AK Developer Responsibility
Goto Define region.
Region ID = INVRESOURCETABLE.
Click on Region items.
Search for your prompt.
In this case it is INV_LOT_QUANTITY_PROMPT.
Modify the Long description.
Save.
Restart the listener.
Case 2: Say suppose, the Customer wants to change prompt "Lot Qty" to "Qty" only in a specific page.
Option 1: WMS Personalization
If your client is on release 11.5.10 or R12.1, you can use Oracle WMS Personalization Framework. See metalink note 469339.1 for more details
Option 2: MWA Extension
You can extend the standard Page and change the prompt. Sample code is as below:
public class XXItemOnhandQueryPage extends ItemOnhandQueryPage {public XXItemOnhandQueryPage(Session s) {super(s);}public void pageEntered(MWAEvent e) throws AbortHandlerException,InterruptedHandlerException,DefaultOnlyHandlerException{super.pageEntered(e);getItemDescrField.setPrompt("Senthil Desc");//this has to be defined in AK repository if you need MLS}}
Further References:
More about AK Repository : http://download-uk.oracle.com/docs/cd/A60725_05/html/comnls/us/ak/aktop.htm
More about DFIs and Barcode Scanning : Metalink note 297992.1
Please note that this is purely based on my experience. Feel free to comment any suggestions on this article.
For MSCA/OAF consulting kindly contact us at This e-mail address is being protected from spambots. You need JavaScript enabled to view it
Comments
(19)
Need an Info abt MSCA
written by Kaushik , May 12, 2009
written by Kaushik , May 12, 2009
Hi,
I am calling quality plan in MSCA.In there i have a sql code to auto populate an element which is using FND_PROFILE pkg(to be exact FND_PROFILE.value('ORG_ID')).But it is not working.Can you give me any idea how to get profile values in sql code running in MSCA?
Thnx in advance.
Votes: +0
I am calling quality plan in MSCA.In there i have a sql code to auto populate an element which is using FND_PROFILE pkg(to be exact FND_PROFILE.value('ORG_ID')).But it is not working.Can you give me any idea how to get profile values in sql code running in MSCA?
Thnx in advance.
report abuse
vote down
vote up
...
written by Kaushik , May 12, 2009
written by Kaushik , May 12, 2009
Thanks Senthil for your prompt reply.
I am calling a quality inspection plan in MSCA for PO receipts.In the plan elements i have actions which populates other elements through sql code which uses FND_PROFILE.value('ORG_ID').The code runs from apps but it fails to work from MSCA.Removing the FND_PROFILE the value gets populated in the element. So i was thinking whether there is any alternative to FND_PROFILE to get the profile values.
Thanks,
Kaushik
Votes: +0
I am calling a quality inspection plan in MSCA for PO receipts.In the plan elements i have actions which populates other elements through sql code which uses FND_PROFILE.value('ORG_ID').The code runs from apps but it fails to work from MSCA.Removing the FND_PROFILE the value gets populated in the element. So i was thinking whether there is any alternative to FND_PROFILE to get the profile values.
Thanks,
Kaushik
report abuse
vote down
vote up
...
written by Kaushik , May 13, 2009
written by Kaushik , May 13, 2009
Hi,
For receiving inspection we are using quality instead of Purchasing.This is done by setting
QA: PO Inspection to Quality which by default is set to Oracle Purchasing.In the quality receiving plan
we have written code in the quality plan element action to assign a value to another collection element.
The sql code written is a simple select statement which goes something like this:
select ...
from oe_order_headers_all,
...
where ..
and org_id= fnd_profile.value('ORG_ID').
The element(a reference information element type) in the plan gets populated from context and the code in its action
fires to populate the value from sql code inot the other element.
Now when i'm using fnd_profile.value('ORG_ID') in the query the code is not working.
Removing it i am able to get the value.
I want to know if apps is initialized from MSCA.If so then how and why fnd_profile.value is not working.
Thanks,
Kaushik
Votes: +0
For receiving inspection we are using quality instead of Purchasing.This is done by setting
QA: PO Inspection to Quality which by default is set to Oracle Purchasing.In the quality receiving plan
we have written code in the quality plan element action to assign a value to another collection element.
The sql code written is a simple select statement which goes something like this:
select ...
from oe_order_headers_all,
...
where ..
and org_id= fnd_profile.value('ORG_ID').
The element(a reference information element type) in the plan gets populated from context and the code in its action
fires to populate the value from sql code inot the other element.
Now when i'm using fnd_profile.value('ORG_ID') in the query the code is not working.
Removing it i am able to get the value.
I want to know if apps is initialized from MSCA.If so then how and why fnd_profile.value is not working.
Thanks,
Kaushik
report abuse
vote down
vote up
...
written by Kaushik , May 13, 2009
written by Kaushik , May 13, 2009
Hi Senthil,
Sorry for not being able to clarify the things to you.
The sql codes are written in Oracle Quality Collection Plans.I am not writing any code in MSCA.
I have created a new receiving inspection plan in Oracle Quality module.Added elements to it.Now for an element i added an action. Here when value is entered for the element the "Assign a value to a Collection element" action is triggered which executes a sql code and assigns the value returned by the sql to another element.
Now when the inspection plan is called up while doing PO Inspect the element where the action is defined gets populated with a value from context and the action gets triggered. The sql code gets fired and value returned by the code is assigned to the other element.Now this code is having problem when fnd_profile.value is used.
Hope this makes things clear to you now.
Thanks for your time
Kaushik
Votes: +0
Sorry for not being able to clarify the things to you.
The sql codes are written in Oracle Quality Collection Plans.I am not writing any code in MSCA.
I have created a new receiving inspection plan in Oracle Quality module.Added elements to it.Now for an element i added an action. Here when value is entered for the element the "Assign a value to a Collection element" action is triggered which executes a sql code and assigns the value returned by the sql to another element.
Now when the inspection plan is called up while doing PO Inspect the element where the action is defined gets populated with a value from context and the action gets triggered. The sql code gets fired and value returned by the code is assigned to the other element.Now this code is having problem when fnd_profile.value is used.
Hope this makes things clear to you now.
Thanks for your time
Kaushik
report abuse
vote down
vote up
...
written by Kaushik , May 14, 2009
written by Kaushik , May 14, 2009
hi ,
I found the problem.it was failing sql validation for the element.Sorry for wasting your time..
report abuse
vote down
vote up
...
written by Siddhi Dwivedi , August 27, 2009
written by Siddhi Dwivedi , August 27, 2009
Hi Senthil,
We are getting WMS messages sometimes in english or sometimes in different language.
Could you please let me know how to handle multilingual set up in WMS.
Can it be handled at some profile level or in code?
Please advise.
Thanks & Regards,
Siddhi
Votes: +0
We are getting WMS messages sometimes in english or sometimes in different language.
Could you please let me know how to handle multilingual set up in WMS.
Can it be handled at some profile level or in code?
Please advise.
Thanks & Regards,
Siddhi
report abuse
vote down
vote up
...
written by rmk , October 08, 2009
written by rmk , October 08, 2009
Is it possible to remove the Org Code requirement which comes the first time of logging in? For some of the users who only use it at a particular site is it possible to standardize it from a profile option ?
Not quite sure how to set it up with mobile apps.
Thanks for the help.
Votes: +0
Not quite sure how to set it up with mobile apps.
Thanks for the help.
report abuse
vote down
vote up
Just wanted to say hi
written by James Kim , December 14, 2009
written by James Kim , December 14, 2009
I was browsing apps2fusion website and came across your picture in the posting which I thought I recognized.
Hey didn't you work in Perth Australia one time on MacMahon project with Vipin?
Are you in UK now?
Not sure if you remember me, but this is James from Korea. I'm now working in Canada.. I thought I'd drop you a line and say hello
Votes: +0
Hey didn't you work in Perth Australia one time on MacMahon project with Vipin?
Are you in UK now?
Not sure if you remember me, but this is James from Korea. I'm now working in Canada.. I thought I'd drop you a line and say hello
report abuse
vote down
vote up
New DFI
written by Rupa , March 23, 2010
written by Rupa , March 23, 2010
Hi Senthil,
I want to scan the field Shipment Number. There is no DFI attribute defined for this. How can I go for defining a new DFI's?
Can you please guide me?
Thanks,
Rupa
Votes: +0
I want to scan the field Shipment Number. There is no DFI attribute defined for this. How can I go for defining a new DFI's?
Can you please guide me?
Thanks,
Rupa
report abuse
vote down
vote up






There are very few developers in MWA/MSCA and the architecture is not even documented. Thanks for providing such a valuable information and helping us out on issues.
You Rock !!
Thanks,
Husain