MWA Advanced Barcode Scanning for Mobile Supply Chain Management
By Kyle Thomas, Senior Consultant at Lucidity CG
I was recently involved in a few projects that had similar objectives using the pre-processing barcode scanning functionality Oracle MSCA/MWA provides. Both projects wanted to manipulate a barcode scan and have it interact properly regardless of the Oracle MWA form the user was on. This required a “pre-processing” of the barcode scan. One of the projects required doing a lookup on the client’s legacy table and then returns either the new Oracle unique id or what was scanned from the barcode. The other project required the use of out-of-order scanning since the barcode used DFIs to determine various field types like quantity, item number, and lot number and parsed out the barcode. I found some documentation to do this but it seemed like it was in different Oracle supplied documents. So it felt like in order for me to grasp what I really needed to do I had to take all the documents, dissect them, and did a lot of trial and tribulations to get everything to work. So I felt the need to document my findings to help others who may come across something similar projects.
Debugging barcode scanning & Profile setup
-
I highly recommend you read and setup debugging before you dive into developing your custom barcode scanning code. This is really a must when you are trying to debug what your code is doing. I would check out Senthil Shanmugam‘s article “MWA Setup, Testing, Error Logging and Debugging”. Senthil also provides some other great articles on MWA here you can read as well.
-
Log into your Apps and go to the Profile → System → Find System Profile Values: MWA% and modify the two attributes below.
-
MWA: Debug Trace = Yes
-
MWA: Pre-process scanned input = Yes
-
The above values need to be altered regardless of you using PL/SQL or JAVA.
PL/SQL Pre-Processing Scan
You need to decide if you’re going to use PL/SQL or JAVA. The pre-processing scan will try to call your JAVA class first. If it finds it then it will use that one and ignore your PL/SQL package.
-
In order to do any type of pre-process scanning you must have the above Pre-process scanned input set to Yes as above.
-
APPS.INV_PREPROCESS_SCAN.process_scan is the Oracle supplied package/procedure that is called before anything is done on the form. I will dissect my code later on in this article.
-
The only drawback to using the PL/SQL callout is that it does not support “out of order” scanning. This will be accomplished with the Java based custom scan manager.
-
NOTE – Your barcode gun must be setup to prefix the code that matches what is in your mfg.cfg. The default is CTRL+\ so you’ll need to check with your barcode gun manufacturer to add this. Your debug code will show you the below line if your code is being called:
-
[Tue Sep 02 15:52:10 CDT 2008] (Thread-28) Calling ScanManager.processScan
INV_PREPROCESS_SCAN
This PL/SQL procedure just basically does a legacy barcode cross-reference scan. It’s pretty straight forward.
CREATEORREPLACEPACKAGEBODY APPS.INV_PREPROCESS_SCANAS
PROCEDURE process_scan(x_return_status OUTnocopyVARCHAR2,
x_processed_value OUTnocopyVARCHAR2,
p_current_page_name INVARCHAR2,
p_scanned_value INVARCHAR2)IS
c_master_org number:=84;-- 84 is the master org
BEGIN
x_return_status :='S';
BEGIN
-- Check for the new scanned barcode first
SELECT SEGMENT1||'.'||SEGMENT2 into x_processed_value
FROM
MTL_SYSTEM_ITEMS_B
WHERE SEGMENT1||'.'||SEGMENT2 = p_scanned_value
AND ORGANIZATION_ID = c_master_org;
EXCEPTION
WHENNO_DATA_FOUNDTHEN
-- Check the cross reference table
SELECT SEGMENT1||'.'||SEGMENT2 into x_processed_value
FROM
MTL_CROSS_REFERENCES_B a, MTL_SYSTEM_ITEMS_B b
WHEREa.INVENTORY_ITEM_ID = b.INVENTORY_ITEM_ID
ANDa.cross_reference_type ='Legacy Number'
ANDa.CROSS_REFERENCE = p_scanned_value
AND b.ORGANIZATION_ID = c_master_org;
END;
EXCEPTION
WHENNO_DATA_FOUNDTHEN
-- Return what was scanned
x_processed_value := p_scanned_value;
WHENOTHERSTHEN
-- Error that is returned to the text field to let the user\ -- know that there was a lookup error.
x_processed_value :='ERR: CHK X-REF TBL!';
END process_scan;
ENDINV_PREPROCESS_SCAN;
/
Java Based Custom Scan Manager
-
You can use any IDE to create your CustomScanManager.class, but I used JDeveloper. In order for it to be called the pre-processing scanned input profile must be set to “Yes”. The .class file also needs to be placed in the $CUSTOM_DIRECTORY as specified by your DBA. Most people create a directory in the root of $JAVA_TOP (ex: $JAVA_TOP/xxx/custom). You must have a $CUSTOM_DIRECTORY set up in order for oracle to know where to look for your .class file.
-
NOTE – Your barcode gun must be setup to prefix the code that matches what is in your mfg.cfg. The default is CTRL+\ so you’ll need to check with your barcode gun manufacturer to add this. Your debug code will show you the below line if your code is being called:
-
[Tue Sep 02 15:52:10 CDT 2008] (Thread-28) Calling ScanManager.processScan
CustomScanManager
Business case overview: Our client needed the ability to scan an EAN-128 standard barcode (ie. (30)12 (91)XXX1601). (30) is set up as a DFI (Data Field Indicator) for all QTY type text fields and (91) is set up as the ITEM type text field. When the barcode is scanned regardless of what page the end-user is on it will populate either the QTY or the ITEM value. Please note that on most pages you will have to scan the same barcode multiple times depending on how the item & the quantity fields are populated. It doesn’t matter though which one appears first because it’s going to determine what fields are displayed initially when the scan occurs.
package xxx.custom;
import java.util.Vector;
import oracle.apps.mwa.beans.*;
import oracle.apps.mwa.container.FileLogger;
import oracle.apps.mwa.container.Session;
public class CustomScanManager
{
public static boolean isInputableField(FieldBean f)
{
return (f instanceof InputableFieldBean) && ((InputableFieldBean)f).isEditable();
}
public static String processScan(Session curtSession, PageBean curtPage, String val)
{
FileLogger.getSystemLogger().trace("CTM: Preprocessing the scan");
FieldBean curtBean = curtPage.getCurrentFieldBean();
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: curtBean: ").append(curtBean.toString()).toString());
FileLogger.getSystemLogger().trace("xxx: if (isInputableField(curtBean)) {");
if(isInputableField(curtBean))
{
int itemFieldIndex = curtPage.getCurrentFieldIndex();
String scanValue = val;
String itemValue = val;
String vQtyValue = "";
String qtyValue = "";
String curtFieldDFIs[] = null;
String vMyDFI = null;
int intemDFILength = 0;
String curtBeanName = curtBean.getName();
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: Current Field is field: ").append(curtBeanName).toString());
curtFieldDFIs = ((InputableFieldBean)curtBean).getDFIs();
int itemDFILength = 0;
FileLogger.getSystemLogger().trace("xxx: if (curtFieldDFIs != null) {");
FileLogger.getSystemLogger().trace((new StringBuilder()).append("* itemValue: ").append(itemValue).toString());
FileLogger.getSystemLogger().trace("// After stripping the DFI only the first 14 characters");
FileLogger.getSystemLogger().trace("// are for item Process the remaining characters for the");
FileLogger.getSystemLogger().trace("// remaining fields");
FileLogger.getSystemLogger().trace((new StringBuilder()).append("* itemValue.length(): ").append(itemValue.length()).toString());
FileLogger.getSystemLogger().trace((new StringBuilder()).append("* 14 + itemDFILength): ").append(14).append(itemDFILength).toString());
if(itemValue.length() > 7 + itemDFILength)
{
Vector fieldBeanList = curtPage.getFieldBeanList();
int qtyFieldIndex = 0;
int lotNumFieldIndex = 0;
int lotQtyFieldIndex = 0;
FileLogger.getSystemLogger().trace("// Get the index for the other three fields from the");
FileLogger.getSystemLogger().trace("// list of fields");
for(int i = itemFieldIndex; i < fieldBeanList.size(); i++)
{
String name = ((FieldBean)fieldBeanList.elementAt(i)).getName();
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: FieldBean Name: ").append(name).toString());
if(name != null && name.equals("INV.QTY"))
qtyFieldIndex = i;
}
FileLogger.getSystemLogger().trace((new StringBuilder()).append("* qtyFieldIndex: ").append(qtyFieldIndex).toString());
FileLogger.getSystemLogger().trace((new StringBuilder()).append("* lotNumFieldIndex: ").append(lotNumFieldIndex).toString());
FileLogger.getSystemLogger().trace((new StringBuilder()).append("* lotQtyFieldIndex: ").append(lotQtyFieldIndex).toString());
FileLogger.getSystemLogger().trace("// Get the value for the item field");
String remainingValue = itemValue.substring(14 + itemDFILength);
itemValue = itemValue.substring(7, itemValue.length());
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: Item value: ").append(itemValue).toString());
vQtyValue = scanValue.substring(0, 7);
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: vQtyValue: ").append(vQtyValue).toString());
FileLogger.getSystemLogger().trace("// searching qty field so set the value for the quantity");
if(qtyFieldIndex > 0)
{
FileLogger.getSystemLogger().trace("CTM: Found the qty field");
boolean doneQty = false;
String qtyFieldDFIs[] = null;
FieldBean qtyField = (FieldBean)fieldBeanList.elementAt(qtyFieldIndex);
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: qtyField ").append(qtyField).toString());
if(isInputableField(qtyField))
{
qtyFieldDFIs = ((InputableFieldBean)qtyField).getDFIs();
if(qtyFieldDFIs != null)
{
FileLogger.getSystemLogger().trace("CTM: Got the dfi for qty fld");
for(int j = 0; j < qtyFieldDFIs.length; j++)
{
int x = remainingValue.indexOf(qtyFieldDFIs[j]);
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: Item DFI Length: ").append(itemDFILength).toString());
if(x != 0)
continue;
qtyValue = remainingValue.substring(x + qtyFieldDFIs[j].length(), x + qtyFieldDFIs[j].length() + 6);
((InputableFieldBean)qtyField).setValue(qtyValue);
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: Qty value:").append(qtyValue).toString());
if(remainingValue.length() > qtyFieldDFIs[j].length() + 6)
{
doneQty = true;
remainingValue = remainingValue.substring(x + qtyFieldDFIs[j].length() + 6);
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: Remaining value:").append(remainingValue).toString());
} else
{
remainingValue = "";
}
break;
}
}
}
if(doneQty && lotNumFieldIndex > 0)
FileLogger.getSystemLogger().trace("CTM: Found the lot Num field");
}
FieldBean lotNumField = (FieldBean)fieldBeanList.elementAt(lotNumFieldIndex);
((InputableFieldBean)lotNumField).setValue(qtyValue);
String lotNumFieldDFIs[] = null;
if(isInputableField(lotNumField))
{
lotNumFieldDFIs = ((InputableFieldBean)lotNumField).getDFIs();
if(lotNumFieldDFIs != null)
{
for(int j = 0; j < lotNumFieldDFIs.length; j++)
{
int x = remainingValue.indexOf(lotNumFieldDFIs[j]);
if(x == 0)
{
String lotNumValue = remainingValue.substring(x + lotNumFieldDFIs[j].length());
((InputableFieldBean)lotNumField).setValue(lotNumValue);
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: Lot value:").append(lotNumValue).toString());
}
}
}
}
}
if(curtBeanName == "INV.ITEM")
{
itemValue = itemValue;
} else
{
itemValue = vQtyValue;
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: return vQtyValue: ").append(vQtyValue).toString());
itemValue = itemValue.trim();
}
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: return itemValue: ").append(itemValue).toString());
return itemValue;
} else
{
FileLogger.getSystemLogger().trace((new StringBuilder()).append("CTM: return val: ").append(val).toString());
return val;
}
}
public CustomScanManager()
{
}
}
The above is a generic custom Java class that I created based off of Oracles supplied CustomScanManager. I never got it working the way they intended so I modified the code into what I came up with above. The custom scan manager is triggered regardless of what form the scan is initiated on. My Java class will only take into account the QTY, and the iTEM # fields and will need to be modified in order to use other DFIs, but should this should be a fairly simple change.
The DFIs are set up in the AK Developer responsibility within ORACLE. These are the DFIs I set up based on Region ID = INVRESOURCETABLE. You can drill down into the Region Items and you can see that these are set up:
I have already defined the QTY fields that Oracle recommends and set them to DFI=(30) REQ=N and the Item to DFI=(91) REQ=N based off of their barcode they use in EAN-128 format.
-
Alloc Qty
-
Deliv Qty
-
Insp Qty
-
Avail Qty
-
…
-
Split Qty
-
Ret Qty
Any forms that are not putting QTY or ITEM # in the right place will have to be set up in the INVRESOURCETABLE with the appropriate DFI.
Here is an example that shows the CustomScanManager actually processing a page.
This also shows how you can use the MWA GUI emulator to mimic a barcode scan from the barcode gun.
Pick Confirm example
I hope this document helps you and please note that I may have left out some stuff. I’m just developing this document from memory. The java code could be cleaned up and probably done a lot of different ways as well. Sorry this is so long; I wanted to be as thorough as possible.
If you need consulting help in MSCA/MWA extensions/OAF customizations or any other consulting needs please contact us at This email address is being protected from spambots. You need JavaScript enabled to view it.. You can also visit us at www.luciditycg.com
Comments
Thanks for such a nice article. I worked in a WMS implementation but partially in setting up rules, barcode label printing. I would like to know about the task management and its setup. Could you help me in a document related to tasks.
Regards m
Sravan.
Thank s for the compliments. I honestly don't know much about the setup or functional side of MSCA and implementing WMS. I'm a developer who's learning the functional part as I go along. Maybe if you can explain to me a little more about what you're interested in learning more I can do some research. Or, you can post on the forums here and maybe someone can help you:
apps2fusion.com/forums/
Regards,
Kyle
Thanks for your post on this. It has been very helpful to one has little/no knowledge of mobile scanning etc. I posted a message in the forum re customizing the scan of a locator bar code. The bar code has no DFI/AI from what I can tell. Is it possible to reference
the telnet form/locator field in PL/SQL preprocessing scan? If not, do you know of any simple examples of java code that might accomplish this? thanks!!!
Can somebody give me some help on how to use Loftware with Oracle Apps for barcode printing. Any documentation availaible or userguide will be very helpfull.
Than ks
Kaukab
>
> Recently for one of our esteemed customers we have moved the Oracle
> Applications 11.5.10 from Old Hardware to a New Hardware a month
> back.The old Hardware was running on RHEL AS3 OS and the new hardware
> is running in RHEL AS4 OS.Post move all the modules seems to be
> working without any issue.Now in the new hardware the MSCA is not
> working as expected there was a customization which we have
> implemented in the CustomScanManag er
> .Java.The customization doesnt seem to be working eventhough the path
> where the customScanManag er.Class file is present is available in both
> CLASS_PATH as well as the AF_CLASSPATH.Th e trace file shows as
> xxx.custom.Cust omScanManager class not found, but
> OK.java.lang.Cl assNotFoundExce ption:
> xxx.custom.Cust omScanManager.Kindly let me know how to solve this
> issue as the customer are not able to perform the transact move order
> and the stock taking is planned in couple of days.
>
> Your inputs are highly appreciated.
>
> Thanks in advance.
>
> Regards,
> Arun.
Have you turned on logging in the MWA.cfg file? Does it even call the "preprocessing scan" line when you scan your barcode?
Also, you check your $CLASSPATH by doing echo $CLASSPATH. Make sure this is set at the apps tier level and not the database tier.
I did notice one thing. It doesn't matter about the $CLASSPATH. It's the $CUSTOM_DIRECTO RY that needs to be set in the .env file.
I bet what happened was AUTOCONFIG was ran and never applied the $CUSTOM_DIRECTO RY variable.
I have mine set to: $CUSTOM_DIRECTO RY/xxx/custom
So the $CUSTOM_DIRECTO RY is basically the $JAVA_TOP as well.
Please let me know if this resolves your issue.
Where Can I locate oracle provided customScanManag er class under $JAVA_TOP?
Tha nks,
Kiran
You will have to "create" the customScanManag er class. You'll notice in the "log" file if it locates it when you're processing on the form.
Thanks for ur response,..
How does customscanmanag er class will be picked up when we do a scan ? we need to make an entry of this class location somewhere?
I need to add some logic to this class(for ex when page is picking page and field is UOM field).
Thanks ,
Kiran
Please refer to metalink doc: Advanced Barcode Strategies [ID 297992.1]
USIN G CUSTOMIZED BAR CODE SCANNING
The customized bar code scanning functionality available in 11.5.9 allows customization of logic to handle scanned data. In order to use customized scan, profile option “MWA: Pre-process scanned input” must be enabled. Oracle provides two ways of implementing a user-defined logic to handle concatenated bar code symbol. Customized bar code scanning functionality enables a scanned input to make either a PL/SQL or a java custom class callout. The java custom class is more scalable and will perform better.
Java Call Out
This option involves creation of a java class with embedded user defined logic. Make sure that this class is compiled with Oracle apps.zip in the classpath. After compilation make sure that a file CustomScanManag er.class is created. Move this file to $CUSTOM_DIRECTO RY/xxx/custom and add $CUSTOM_DIRECTO RY to the classpath of your mobile server. $CUSTOM_DIRECTO RY, can be any directory on the file system. Please see the white paper on EAN/UCC-128 for a sample java code that implements customized bar code scanning. In appendix A there is another example that explains how this feature was used to increase the scanning efficiency on one of the transactions.
Thanks for sharing this infomration with me, it helped me a lot.
Regards,
Kiran
I have developed CustomScanManag er.class and placed it under standard java top $JAVA_TOP/xxx/c ustom
Mobile server bounced and able to see the changes with out any issue
Now I have moved the file to custom application top $ZBRWMS_TOP/jav a/jar/xxx/custo m
Also we have added the custom path to the $CLASSPATH
CLA SSPATH=$ZBRWMS_ TOP/java/jar:$C LASSPATH
Mobile services bounced, but from system log file I can see below message
[Wed Apr 07 02:19:48 CDT 2010] (Thread-15) Trying to load custom class xxx.custom.Cust omScanManager
[ Wed Apr 07 02:19:48 CDT 2010] (Thread-15) xxx.custom.Cust omScanManager class not found, but OK.java.lang.Cl assNotFoundExce ption: xxx.custom.Cust omScanManager
Please suggest what changes to be done for path here.
Thanks,
Kiran
It appears that your pre-process scanning cannot locate the CustomScanManag er.class file. Are you sure that your file is in $JAVA_TOP/xxx/custom/CustomScanManag er.class?
Initiall y I have tested this under $JAVA_TOP/xxx/c ustom , it worked fine.
I have moved same file to $ZBRWMS_TOP/jav a/jar/xxx/custo m which is custom application top, I am getting ClassNotFoundEx ception error.
DBA has added $ZBRWMS_TOP/jav a/jar to CLASSPATH, do we need to do any adittional tasks apart from adding path to CLASSPATH?
Tha nks,
Kiran
The only other thing you would need in your $JAVA_TOP/lib directory or in your $CLASSPATH would be those classes/jars that are not already included in the $CLASSPATH that you are using. Any custom jar files will need to be added. You'll find out real quick though. I did not need any additional files in my CustomScanManag er.class file.
Good Luck!
How are u ? $CLASSPATH issue has been resolved now.
Please can you clarify on enabling the profile option "MWA: Pre-process scanned input".
Do we need this option to be enabled even on production instance after moving our changes?
In real time users will be doing transactions on hand held devices, so do we need to make the profile value to yes?
Thanks,
K iran Gujjari
1. A PL/SQL pre-processing procedure.
2. A Java class called CustomScanManag er
So if you set this profile option to YES then it means you have either of those and it will use it to manipulate the barcode scan.
1)Pr int a Specific extra checkdigit at the endof locator value on locator barcode lable
2) Paste these locator barcodes on bins
3) When the users scan the barcode the custom java class should check the check digt at the end of the barcode
4) The check digit should be compared with value of the check digit stored in locator flexfiled or any other custom table we can maintain
5) if this match the scan should be allowed to be displayed on handheld terminal otherwise an error should be shown.
I know R12 has some capability on check digit but we are on 11.5.10.2 and would like to know if MSCA customization like above can meet the requirement , if in principal this is possible we can then try in detail.
Thanks in advance.
I have done the following steps:
- Setup profile “MWA: Pre-process scanned input” = Yes
- Compile and put CustomScanManag er.class to $CUSTOM_DIRECTO RY/xxx/custom
- Add $CUSTOM_DIRECTO RY to the classpath of the mobile server
After these work done, there is still no log from the CustomScanManag er found in port.system.log .
Then I decompile ScanManager.cla ss and add log message in both processScan() and invProcessScan( ) methods. And then I compile the class and then copy and replace the old one.
When I scan a barcode into the MSCA client on my barcode scanner, only ScanManager.invProcessScan( ) is called every time but not CustomScanManag er.processScan().
Million thanks!
I am currently working on Oracle WMS and MSCA implementation project. One requirement from client is
Single barcode ( 2-d barcode) is having following information in it,
1. Item Code
2 Lot Number
3 UOI (unit of issue)
4 Manufacture Name.
Now, Requirement is, In one barcode scan all above information should be populated onto respective field ( if present ) on current page.
Client does not want to scan four times barcode to populate above information into four different field.
Kindly let me know, how i can achieve this through CustomScanManag er preprocessing functionality? Whether it can be achievable or not?
You should be able to accomplish all of those items using the CustomScanManag er. It'll take some work, but you should be able to accomplish it. Sorry for the long delay I have been on a project.
Someth ing is still not set up correctly in your $AF_CLASSPATH and $CLASSPATH. Please make sure your entire $CUSTOM_DIRECTO RY/xxx/custom is added to both classpaths. Also if autoconfig was run it may have wiped these out.
The CustomScanManag er allows you to do out-of-order scanning on a form "IF" all the fields are displayed. You will need to set up all your DFIs. Meaning that for each:
1 Item Code
2 Lot Number
3 UOI (unit of issue)
4 Manufacture Name
These need to match the DFI you set up. In my example above I had put DFI=(91) in the ITEM field and DFI=(30) in the QTY. Now you cannot accomplish this by ONE scan of the barcode. It won't work like this on SEEDED oracle mobile forms. If you wanted that you would have to write your own custom form.
Example:
Your barcode - (1)ABCD(2)1(3)X (4)SONY
When you are currently on the form the first field may be Item Code. So when you scan the barcode it will take that DFI, find that it sassociated to ABCD and put ABCD into the Item Code field. You then scan the barcode again and the next field may be UOI, so it finds (3) and puts X in that field. Notice that it may have skipped Lot Number because that field wasn't visible at the time. Now that it is, it will scan in that value and so forth.
This is out-of-order-sc anning and is what I had to accomplish on my forms as well with EAN-128 barcodes.
I hope this makes sense.
For your response. Let me check and i will get back to you soon.
I am very new to this, i just want to insert one record in database table as soon as scaning completes.
Plea se help to code this.
Regards,
Sarah
You would want to use the: PPS.INV_PREPROC ESS_SCAN.proces s_scan
to insert your record into the database table. You will however have to implement your logic within this procedure to make sure it only does this on the pages you want. If not it will do it on every mobile form that is scanned.
If you want more control over which page its excuted on after the scan you'll need to use the CustomScanManag er class.
Good Luck!
i want it to be done in WMS page, so how to know the object name and field name to trigger my logic.
Regards ,
Sarah
If you just need the page name and the value you can use the: p_current_page_ name and _scanned_value then you can use the PL/SQL procedure.
The java class allows you more flexibility in your MWA forms, but requires knowledge of JAVA.
When i ran the java file it ened up with errors saying that oracle.apps.mwa .beans doesnot exist.
i set the CLASSPATH to MWA_TOP/java/ja r.
Can any body help me on this.
Regards,
Sarah
We have written java code for out of order scanning requirements.
Out of order scanning is working fine on Telnet ( on dektop as well as mobile device). But same is not working on Oracle GUI ( on Desktop and Mobile Device ).
Anybody has any clue? please help me out as it is major requirement for project and very limited time left for deadline.
Please post the link to the forum post here so I know when you've done so.
if you dont want to share your email id in public then just put a test mail to me i will send you lo files.
my email id is :- moizactivegmail.com
Regards,
Moiz
Sent.
Regards,
Moiz
I have done create a xxx.custom.Cust omScanManager.c lass. However, while scanning from GUI client application is executing the InvScanManager. class instead of CustomScanManag er.class.
If any body has clue. Thanks in advance
Regard s,
Paras
I am new to MSCA, my client requires to scan & segregate the data for any format of Barcode, as it will facilitate them in case if their suppliers change their barcode format or if get new suppliers with new format of barcode.
Is this possible using custom bar code scan?
If not, any workarounds suggested?
Any body's help is highly appreciated.
Th anks
Sivenkat
Currently i am wokring on WMS implementation project.We have requirement to scan 18 or 19 char barcode to recognize the Oracle internal item during picking process.
We explored the GTIN functionality, but it seems at allows only 14 char. Is is possible to scan a barcode of more than 14 char and then recognize the Oracle internal item.Would appreciate the quick response.
Than ks,
Can anyone please help me.
I am getting a strange issue. I am calling custom scan using a java callout. Everythin is in place. The issue is If i process a picking task using Telnet session on my desktop the Custom scan manager is call and i am getting the currect value But if i do the same process using my Handheld device it gives error as unable to load class
"> xxx.custom.Cust omScanManager class not found, but
> OK.java.lang.Cl assNotFoundExce ption: £
But the problem is in the telnet session using CTRL + \ and then value is working fine.
Please help...: >:(
The issue is with your barcode gun. Its not appending the preamble to fire off the CTRL + \ that your telnet session or your GUI interface does.
Please check the documentation or the manufacturer for your gun.
I had a talk with Vendor who has supplied the Gun. they say that there is no setup to be done for scanning.
I am in two phase right now Oracle tells me that CTRL + \ simulated the scanning and the GUN vendor says the device just scans and puts the data back from WMS. Telnet session form desktop working fine with simulation so don't think Oracle will support on this point.
Do you have any idea what particular settting has to be done for Barcode Gun.
I know that on the Intermac guns back in the day we had to configure an ASCII preamble that basically mimiced the CTRL + \ on the telnet / gui screen.
is there a way to print bigger messages on screen? We need that when some message appears on screen, the size of this message is big enough to be seen on screen of the barcode scanner. I was wondering if it is also posible just hide all the components and let the message be the only element visible.
I hope you can help me, thanks in advance.
I have seen that you was able to successfully comple the "Out Of Order Scanning is working on Telnet but not working on Oracle GUI on desktop as well as mobile device" .I have smiliar requirement ,could you please help me in acheiving the same by providing the steps which you followed .
Regards,MKG
Thanks for your post on this,It has been very helpful to one has little/no knowledge of mobile scanning etc.
I am currently working on Oracle WMS and MSCA implementation Project.One requirement from client is
Single barcode is having the following information in it,
1.Item Num,
2.Lot Number
3.UOM
4. Lot Expiry Date
Now, requirement is, in one barcode scan the Item Number (on Pick Load Main Page) and Lot Number(on Pick Detail Page)
informati on should be populated onto respective fields,client does not want to scan two times barcode to populate above information
into two different fields on different pages.
kindly let me know,how i can achieve this thorugh CustomScanManag er preprocessing functionality?w hether it can be achievable or not?
Thanks
Exampl e barcode text: |ITM199503|LOT7 777|EXP02022011
Translation needed:
Item Number = 199503
Lot Number = 7777
Expiration Date = 02/02/2011
1) Can this be done?
2) Any additional guidance?
3) Other options to consider?
Than ks in advance for your assistance,
Dav e Lesan
Thi s has been mentioned on another blogpost and it works:
http://applikast.blogspot.com/2011/08/oracle-msca-bar-code-preprocessing.html
This artical is very useful for us. Currently, our some of our barcodes contain three information: Serial No, then space, then lotcode, then space, then quantity. The delimitter is a space. I've struggle to find a solution to decode the string and this method seems very promising for us. However, I ran into some problems:
1) I set MWA: Pre-process scanned input profile to Yes. Then modified the PL*SQL package just to test the functionality and set x_processed_val ue variable in the package to some random values. But nothing seems to work. Do I have to restrt the server?
2) Where is mfg.cfg? I can only find mwa.cfg in the $INST_TOP/admin /install directory.
3) You also mentioned that the we must prefix the string with "CTRL+\". Does that mean that we have to prefix all the barcodes that we want the system to perform preprocessing? I'm using Motorola MC9090 and cannot find "\" character anywhere.
4) We don't want to change our existing barcode to have the prefix, is there any other options?
Thank you for your help.
PhuTri
I also modified APPS.INV_PREPRO CESS_SCAN procedures and still it did not get call at all.
Of course, I set the "MWA: Pre-process scanned input" profile to yes. Bounce the server. What do I do wrong? Please help.
Thank you.
I am on a client site implementing MSCA without WMS.
Please answer some basic queries :-
a) The customer wants the Barcodes to be generated at the time when Item/Lot/PO is created.
What tool can we use to generate the Barcodes? Is there any internal Barcode Generation tool by
Oracle. Please let me know any details and documents u have other UG and IG's
b) How does Oracle recognise a particlaur info in the Barcode for MSCA?
Regards,
Nikhil
were you able to figure out what is the ctrl + \ for motorola symbol 9090?
please reply
thanks,
Mothi
Could you update what are all the basic functional setup required for MSCA? Do all the items should be loaded in AK repository with DFI code? what are the check list from the functional and technical setup perpective of MSCA?
thanks in advance
i am currently facing an issue with PL/SQL Pre-Processing Scan after scanning the Field in Scanning mode on which we are executing the the SQL code ,after that scanner is not able to scan the next field.
If any body have any idea on this Request you to please share with me .
Regards,
Sha ilendra
to us, keep it up.
website: https://www.veganostomy.ca/community/?wpfs=&member%5Bsite%5D=https%3A%2F%2Fscandipop.co.uk%2Flook-choosing-operator-line-sports-betting%2F&member%5Bsignature%5D=This+sport+is+so+standard+because+it+is+vitally+accessible%2C++%3Ca+href%3D%22https://www.archyde.com/what-is-sports-betting-online/%22+rel%3D%22dofollow%22%3Ehttps://www.archyde.com/what-is-sports-betting-online/%3C/a%3E+the+equipment+is+low+cost+and+yow+will+discover+an+excellent+pair+of+rollerblades+almost+in+any+massive+store.+Driving+is+nor+necessarily+a+sport+but+a+passion.+Lansdowne%2C+which+has+a+bet+of+2.8%25+in+opposition+to+Piraeus+Bank%2C+final+month+took+out+bets+of+0.9%25+in+opposition+to+Greece%27s+Eurobank+Ergasias%2C+1%25+of+Alpha+Bank+and+1.7%25+of+Public+Power+Corporation.+The+put+is+usually+unsafe+for+many+individuals+along+with+home+animals%2C+each+time+they+took+it+as+that+seed+contains+poison+mother+nature+herself.+You+aren%27t+asked+to+put+all+of+your+financial+savings+on+bet+as+you%27ll+be+able+to+put+the+lowest+quantity+just+for+enjoyable.+For+example%2C+syncing+Harmony+with+the+web+automation+service+IFTTT+and+with+the+Amazon+Echo+good+speaker+would+let+you+set+every+little+thing+that+Harmony+controls+below+the+command+of+%22Alexa%2C%22+Amazon%27s+increasingly+common+digital+assistant.+It+does+not+matter+if+you+are+searching+for+stuff+will+not+be+exactly+mainstream+like+skateboarding%2C+automobile+racing%2C+pool%2C+baseball%2C+hockey%2C+swimming+or+BMX+riding%2C+you+will+discover+it+on+any+good+gaming+web+site.+You+possibly+can+change+the+wheel+of+your+dream+car+with+the+mouse+and+keyboard+and+you+will+notice+that+there+is+no+big+distinction%3Cp%3E%26nbsp;%3C/p%3E%3Cp%3E%26nbsp;%3C/p%3E+%3Cp%3E%26nbsp;%3C/p%3E%3Cp%3E%26nbsp;%3C/p%3E+Here%2C+a+person+can+involve+in+to+various+buying+and+selling+transaction+with+out+spending+additional+cash+as+broker+price+for+doing+so.+The+varsity+is+operating+at+a+few+quarter+of+its+1%2C000-pupil+capability+and+the+complex+is+dropping+money+across+its+facilities.+Again%2C+this+may+be+checked+on+the+web+(forums%2C+and+so+forth.)+for+basic+con sensus+but+a+mi nimum+of+as+soo n+as+a+quarter+ I+put+it+to+the +take+a+look+at .+50.000+wherea s+the+minimum+t ransfer+quantit y+is+100%2C000. +Deposits+and+w ithdrawals+will +be+made+by+way +of+Mandiri%2C+ BRI%2C+BNI+and+ Bank+BCA.+The+a mount+of+the+gu ess+may+range+f rom+each+other% 2C+but+irrespec tive+of+the+dim ensions+of+the+ prize%2C+it%27s +best+to+have+a +betting+system +that%27s+in+a+ position+to+hel p+you+win+your+ wagers.+Stock+o ption+trading%2 C+with+no+inten t+to+ever+train +the+choice%2C+ may+be+thought+ of+as+a+type+of +leverage.+The+ internet+primar ily+based+wager ing+sports+ente rtainment+may+b e+takes+place+o n+1996+and+as+w ell+as+the+situ s+judi+online+p urchasing+a+lot +most+popular+s oon%3Cp%3E%26nb sp;%3C/p%3E%3Cp %3E%26nbsp;%3C/ p%3E+%3Cp%3E%26 nbsp;%3C/p%3E%3 Cp%3E%26nbsp;%3 C/p%3E+That+you +must+read+this .+With+on-line+ gaming%2C+at+th e+worst+you+wil l+have+to+get+a +mouse+to+accom odate+if+you%27 re+left-handed% 2C+but+then+aga in+you+most+lik ely+already+had +one+-+so+that% 27s+it.+Tennis+ is+definitely+t hrilling+sort+s ince+there+is+a +lot+of+web+ten nis+games+of+wh ich+permit+for+ multiple+gamers +to+play+upon+o ne+keyboard+uti lizing+separate +keys.+Pong%2C+ comparable+to+t ennis+additiona lly+presents+th e+particular+th rilling+option+ intended+for+mu ltiple+gamers+t o+play+the+spor t.+Did+multiple +senators+engag e+in+insider+bu ying+and+sellin g+once+they+off ered+stocks+aft er+being+briefe d+on+the+threat +of+the+coronav irus%2C+however +before+the+com plete+extent+of +the+threat+was +publicly+recog nized%3F+It+isn %27t+out+of+pla ce+to+run+into+ sport+video+gam es+that+functio n+golf%2C+socce r%2C+basketball %2C+hockey%2C+N FL+soccer%2C+ba seball%2C+tenni s%2C+cycling%2C +wrestling+and+ even+archery.+Y ou+too+can+plac e+barricades+to +control+the+zo mbies%27+path.+ This+signifies+ you+can+simply+ remove+a+Devil+ by+capturing+hi m+repeatedly%2C +or+you%27ll+un doubtedly+die+w hen+you+is+like ly+to+be+attack ed+by+two+zombi es+at+the+an+id entical+time%3C p%3E%26nbsp;%3C /p%3E%3Cp%3E%26 nbsp;%3C/p%3E+% 3Cp%3E%26nbsp;% 3C/p%3E%3Cp%3E% 26nbsp;%3C/p%3E +Visit+at+Sopor tsTrader+for+on -line+wager+spo rts.+It%E2%80%9 9s+a+technique+ to+make+predict ions+over+the+e ntire+sports+ac tivities+event. +We+offer+socce r+predictions+f or+over+30+well -liked+leagues+ in+the+world%2C +including+the+ English+Premier +League%2C+Germ an+Bundesliga%2 C++%3Ca+href%3D %22https://scan dipop.co.uk/loo k-choosing-oper ator-line-sport s-betting/%22+r el%3D%22dofollo w%22%3Ehttps:// scandipop.co.uk /look-choosing- operator-line-s ports-betting/% 3C/a%3E+Spanish +La+liga%2C+Ita lian+Serie+A%2C +and+French+Lig ue+1.+Our+exper ts+make+forecas ts+for+right+th is+moment%27s+m atches+and+make +sure+that+no+m atches+in+decre ase+leagues+are +neglected.+Thi s+is+essential% 2C+as%2C+so+as+ to+really+win+s ome+money+out+o f+this+interest %2C+you+want+to +know+all+of+th ese+features+an d+options+that+ influence+the+b etting+course+o f+and+that+also +needs+to+influ ence+your+guess .+It+is+a+unden iable+fact+that +a+bookmaker+as sessment+is+a+c omplete+and+inf ormative+resour ce+that+feature s+crucial+bookm akers+accessibl e+in+the+web+se tting.+Typicall y%2C+betting+br okers+are+paid+ by+the+bookmake rs+from+a+%25+o f+their+clients +turnover.+Most +full-service+i nventory+broker s+give+clients+ entry+to+analys is+assets%2C+wh ich+they+compen sate+for+by+cha rging+larger+co mmissions+and+f ees%3Cp%3E%26nb sp;%3C/p%3E%3Cp %3E%26nbsp;%3C/ p%3E+%3Cp%3E%26 nbsp;%3C/p%3E%3 Cp%3E%26nbsp;%3 C/p%3E+To+amuse +children+of+ev ery+age+group%2 C+these+method+ on-line+video+g ames+for+girls+ might+be+took+h alf+in+varied+s tage+of+points. +Even+when+you+ aren%27t+drivin g+fans+you%27ll +be+able+to+sim ply+begin+to+li ke+these+video+ games+because+r ight+here+you%2 7ll+be+able+to+ discover+a+game +for+everybody% 2C+for+kids+and +adults%2C+for+ boys+and+women. +Here+you%27ll+ find+driving+vi deo+games+where +you+may+improv e+your+expertis e+or+games+whic h+will+put+toge ther+you+on+you r+future+drivin g+test.+Online+ horse+games+her e+belong+to+5+f undamental+cate gories%2C+every +one+in+every+o f+which+caters+ to+a+unique+mod e+of+gaming+and +a+unique+age+b racket.+Today+v ideo+games+are+ so+uncontrollab le+that+they+ar e+bound+to+make +somebody+takin g+part+in+the+c rooks+to+go+sim ply+crazy.+You+ need+to+even+be +cautious+when+ betting+on+game s+that+your+fav orite+staff+is+ playing+in.+The +web+golf+video +games+that+you +can+use+in+you r+gaming+middle +may+either+be+ downloaded+by+b uying+them+from +their+respecti ve+house+owners +or+when+you+ha ve+the+time+and +the+inclinatio n+might+be+deve loped+by+your+w orkforce+of+on- line+gaming+spe cialists
long run and it is time to be happy. I have reead this put
up and if I could I want to recommend you some fascinating issues or suggestions.
Maybe you could write next articles regarding this article.
I wish too learn even more things about it!
homepage: http://www.atlasroleplay.com/forum/discussion/631179/article-id87-office-bets/p1?new=1
It's a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Didd you hire
out a developer to create your theme? Outstanding work!
website: https://wrycon.ca/Forum/profile/ineso9342475167/
tthe future and it is tjme to bbe happy. I've read this post and if Icould I wish to
suggest you some interesting things or suggestions.
Perhaps yyou could write next articles referring to thjis article.
I want to read even more things about it!
web page: https://www.lowcodeplaza.com/community/profile/lidadesrochers3/
My last blog (wordpress) was hacked and I ended up losing many months of
hard work due to no backup. Do you have any
methods to protect against hackers?
to to thank you for ones time just for this fantastic read!!
I definitely enjoyed every bit of it and I have you book marked to check out new stuff
in your website.
I will bookmark your blog and check again here regularly.
I am quite sure I will learn a lot of new stuff right here!
Good luck for the next!
a taboo matter but generally people do not talk about such topics.
To the next! Kind regards!!
could add to my blog that automatically tweet my newest twitter updates.
I've been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something
like this. Please let me know if you run into anything.
I truly enjoy reading your blog and I look forward to your new
updates.
Keep up the great works guys I've included you guys to my blogroll.
understand. It sort of feels too complicated and very extensive for me.
I am taking a look ahead to your subsequent publish, I will
try to get the hang of it!
stuff, is there any other site which offers such information in quality?
while I was browsing on Digg for something else, Regardless I am here now
and would just like to say many thanks for a marvelous post and a all
round entertaining blog (I also love the theme/design),
I don't have time to go through it all at the moment but I have bookmarked it
and also added in your RSS feeds, so when I have time I will be back to read a lot more,
Please do keep up the fantastic job.
fast! What host are you the usage of? Can I get your associate hyperlink on your host?
I wish my website loaded up as quickly as yours lol
the internet. Shame on the seek engines for now not positioning this put up upper!
Come on over and talk over with my site . Thank you =)
lot of work? I've absolutely no expertise in computer programming however I was hoping to start
my own blog soon. Anyway, should you have any suggestions
or tips for new blog owners please share. I understand this is off
topic nevertheless I just needed to ask. Kudos!
to to thank you for your time for this particularly fantastic read!!
I definitely enjoyed every little bit of it and I have you saved to fav to check out new stuff on your website.
your post. They are very convincing and will certainly work.
Still, the posts are too brief for starters. May you please lengthen them a bit from next time?
Thanks for the post.
I will make sure to bookmark it and return to read extra of your useful information. Thank you for
the post. I'll certainly comeback.
its really really pleasant piece of writing on building up new website.
What would you suggest about your publish that you just made a few
days in the past? Any sure?
It will always be interesting to read through articles from other writers and practice
something from other web sites.
to my 4 year old daughter and said "You can hear the ocean if you put this to your ear."
She placed the shell to her ear and screamed. There was
a hermit crab inside and it pinched her ear. She never wants
to go back! LoL I know this is completely off topic but I had to tell someone!
pay a visit this blog, Keep up the nice job.
So wonderful to find another person with some original thoughts
on this subject matter. Seriously.. many thanks for starting this up.
This site is something that is needed on the web, someone with a little originality!
She put the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear.
She never wants to go back! LoL I know this is entirely off topic but I had to
tell someone!
up for the great info you've got right here on this post.
I will be coming back to your blog for more soon.
Keep up the superb works guys I've included you guys to blogroll.
Brief but very accurate information… Thanks for sharing this one.
A must read article!
much more attention. I'll probably be back again to see more, thanks for the info!
host are you using? Can I get your affiliate link to your
host? I wish my site loaded up as quickly as yours lol
Is this a paid theme or did you modify it yourself?
Either way keep up the excellent quality writing, it's rare to see a
nice blog like this one nowadays.
My web-site ... 안전놀이터: https://damien08c7t.blogofoto.com/41083511/sports-news-opinion-scores-schedules
I've been looking for a plug-in like this for quite some time and was hoping maybe you would
have some experience with something like this.
Please let me know if you run into anything. I truly enjoy reading your blog
and I look forward to your new updates.
youtube sensation. My apple ipad is now
broken and she has 83 views. I know this is entirely off topic but I had to share it with someone!
I'm kinda paranoid about losing everything I've worked hard
on. Any recommendations ?
thanks admin
I needs to spend some time learning much more or figuring out more.
Thanks for magnificent info I was in search of this info for
my mission.
that you need to write more about this issue, it may not be a taboo matter but typically people don't speak about such issues.
To the next! Best wishes!!
you're just too fantastic. I really like what you've received right here, really like what you are stating and the best way during which you assert it.
You are making it enjoyable and you still take care of to keep it smart.
I can't wait to read far more from you. This is really a wonderful site.
RSS feed for comments to this post