When trying to install the APK package on the Android scanner phone you might result with “App not installed
” message:
Let’s explore on how to install the package using the Android studio from
When trying to install the APK package on the Android scanner phone you might result with “App not installed
” message:
Let’s explore on how to install the package using the Android studio from
Why, all of a sudden the need of such a solution? Huge variety of different inventory which is scattered around a warehouse, shelves keep changing, boxes keep moving, items cannot get found. As a result the orders get cancelled. No good.
RFID labels allow for the items to be located without direct line of sight and mostly RFID software has the feature of “Find Item” by the RFID programmed tag.
I chose the path of Zebra hardware to make sure it is mainstream and most popular and supported. Made a research for devices and here’s what you’d need:
RFID compatible scanner
There are scanners that are all-in-one like Zebra MC3330R that, at the time of writing cost $700+ used on eBay or around $3K new online.
https://www.zebra.com/us/en/products/rfid/rfid-handhelds.html
There are also small hand-helds that consist of Mobile computer and a sled/cradle. For example Zebra TC20 or TC25 with a Zebra RFD2000 sled. The mobile computer snaps into the sled and with an application running your can go hunting for the item you need to find. Or you can tag your folders for Document Management or… well the sky is the limit.
Now let’s talk about limitations. These are the underwater rocks which I am in the middle of navigating. Not every computer is made equal and consider TC20 or TC25 to be a family or devices. They have different capabilities.
Initially I have purchased TC200J-10C112US which is running Android 8.1, looks great but… turned out to NOT support RFID scanning in any shape or form. And no amount of knowledge or trying to force it work with RFID software produced any results. It just does not have 8 pin connector in the back and the firmware is not intended to work with RFID sled.
Here’s is a back connector of TC200J-10C213US for comparison:
Now to the points to watch for when acquiring equipment from eBay:
Now let’s get to the software. Zebra thought of low budget solutions and created RFID Manager Application for RFD2000 for Android 7.0.x and later:
In order to set up such an .APK file that you’d get from Zebra web site, you need to allow your TC20 scanner / phone to install unknown apps or apps from unknown sources. Go to Settings and type in word “unknown” in search and mark all of them for the time being.
Now the main part: the app would not install on the scanners that are not intended for RFID use.
If you received App not installed, there are other procedures to find out if your scanner is compatible. But I can tell for sure that ZEBRA TC200J-10C112US is NOT intended for RFID scanning.
.odb
file. This file is required for managing the connection to the database from Calc.Ctrl+Shift+F4
)..odb
file you saved earlier).Now that the data is imported:
This process correctly handles database connections between LibreOffice Calc and SQL Server via ODBC.
Dell Optiplex 9020 that does not boot up properly. When the power button is pressed here’s what happens and keeps going in a loop:
– Keeps doing a single beep
– Power button blinks amber and then blinks white
– Hard Drive symbol blinks white
– PSU LED blinks green
– CPU and Case Fans spin briefly and then stop
The goal is to have it providing weight number on port 2000 on IP (pre-setup)
That means that we need to turn it into a Server, where any client including Aspen or our computer would be able to connect to that IP/port and grab the weight.
For that we need to refer to page 72 of the attached manual
Press SELECT/ to move Down in a menu
Press TARE/ to move up in a menu, except at the
bottom item in a menu, then use ZERO/ or F1
Press PRINT/ to move Left in a menu
Press UNITS/ to move Right in a menu
Press ZERO/ to accept a value or choice and
move up in the menu.
Press F1 to escape and move up in the menu
How to navigate the menu of the scale:
press and hold F1 key for 1 second
Enter 3088
Press ZERO
This gets you to enter Administrative mode
You should end up on SEtuP
menu
go Down, Right, Right, Right
Should see PortS
go Down, Right
Should see E-nEt
go Down, Left
Should see conn.no
go Down Down
Should see tYPE1
go Down
here options are Off, Client, Server (see page 72 of manual)
With Server setting on the screen press ZERO
You should be back on tYPE1
Press Right and there should be Network port: Port1
Press Down and set the number that will be used for producing the data.
Exit all the way UP the menu until you see SAVE on
Now Connect to the scale using Putty or Hercules Tenlet client on port [2000] and have the weight stabilize. Go to Zero, or below and set it again. The weight should appear on telnet client.
Implementing an RFID-based inventory tracking system is an excellent way to streamline the management of your inventory, especially if it’s spread across various locations. Here’s a detailed guide to help you make the best use of this technology:
Implementing an RFID system for inventory management will significantly enhance your efficiency and accuracy in tracking items. By carefully selecting compatible hardware and software, you can create a robust system that aligns with your business needs and technology infrastructure.
Upon applying mundane WordPress update in an eCommerce store based on WooCommerce the store crashed, and the error message said:
There has been a critical error on this website. Please check your site admin email inbox for instructions.
Learn more about troubleshooting WordPress.
“This is awesome” — said I and after logging in recovery mode info WordPress Admin I noticed
One or more plugins failed to load properly.
You can find more details and make changes on the Plugins screen.
At the bottom of the email the Error Details were
Uncaught RuntimeException: Unable to claim actions. Database error: Unknown column 'priority' in 'order clause'. in plugins/woocommerce/packages/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php:942
Turned out that the database user that WordPress is using lacked all the necessary privileges to change the structure of the database and during the upgrade of WooCommerce it was unable to add an additional column named `priority`
In order to solve this, you need to add this column manually. You can log into phpMyAdmin, click on table wp_actionscheduler_actions on the left, then cl;ick “Structure” tab and under the
Now the most important part. Add the field with the following params:
Name: priority | Type:tinyint(3) | UNSIGNED | Null: No | Default: 10 |
---|
Voila, problem solved! The field is added with default number value of 10 and WooCommerce should be working!
In WordPress, Woocommerce you need a mySQL UPDATE statement where you would be able to set weight, height, length, width=12 (for example) to all the instock products that have weight =0 or just blank value. Blank value might also mean that the value record is missing from wp_postmeta table So such a value has to be inserted/created, not only updated.
This is needed when you have many items that have a record of weight omitted when those were originally inserted to database and it is extremely long list to go thru and update manually. This might also need to be done now to enable shipping modules that depend on shipping weight and dimensions.
This first part updates existing weight, height, length, width values to 12 for in-stock products where weight and others are 0 or blank. However the records exist in the tables already. Hint: originally the records with this data do not get inserted when the product created if those are not manually specified. Those can exist only if they were specified and later removed in Product Data => Shipping on a product screen.
-- Update existing weight value to 12 for in-stock products where weight is 0 or blank
UPDATE wp_postmeta AS target
JOIN (
SELECT p.ID
FROM wp_posts AS p
JOIN wp_postmeta AS pm ON p.ID = pm.post_id
WHERE p.post_type = 'product'
AND p.post_status = 'publish'
AND pm.meta_key = '_stock_status'
AND pm.meta_value = 'instock'
) AS source ON target.post_id = source.ID
SET
target.meta_value = '12'
WHERE
target.meta_key IN ('_weight', '_height', '_length', '_width')
AND (target.meta_value = '0' OR target.meta_value = '');
Now we need to add the records if those never existed in the first place. So we check wp_postmeta and if those values “_weight”, etc. are absent, we create them and assign to 12 (or the value of your choice)
-- Insert or update weight, height, length, and width with a value of 12 for missing or blank values
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT p.ID, defaults.meta_key, '12'
FROM wp_posts AS p
CROSS JOIN (
SELECT '_weight' AS meta_key
UNION ALL SELECT '_height'
UNION ALL SELECT '_length'
UNION ALL SELECT '_width'
) AS defaults
LEFT JOIN wp_postmeta AS existing_pm ON p.ID = existing_pm.post_id AND existing_pm.meta_key = defaults.meta_key
WHERE p.post_type = 'product'
AND p.post_status = 'publish'
AND p.ID IN (
SELECT post_id
FROM wp_postmeta
WHERE meta_key = '_stock_status'
AND meta_value = 'instock'
)
AND (
(existing_pm.meta_id IS NULL)
OR (existing_pm.meta_value = '')
);
Odoo is an open-source business management software suite that includes a wide range of applications, from CRM and e-commerce to accounting and inventory management. If you want to start with Odoo development, you’ll need to have a good understanding of Python and web development, as Odoo is built on top of these technologies. Here’s a crash course on how to get started with Odoo development:
odoo/addons
.__manifest__.py
file that defines your module. This file should include information about the module’s name, version, author, and dependencies.Remember, Odoo development can be quite complex, especially for more advanced features and integrations. Start with small, manageable projects and gradually work your way up as you become more comfortable with the Odoo framework and Python development.
DECLARE @SearchValue NVARCHAR(255)
SET @SearchValue = ‘VALUE’— Create a temporary table to store results
CREATE TABLE #Results (
TableName NVARCHAR(128),
ColumnName NVARCHAR(128),
ColumnValue NVARCHAR(4000)
)— Dynamic SQL to search for the pattern in all tables (excluding views)
DECLARE @Sql NVARCHAR(MAX)
SET @Sql = N”SELECT @Sql = @Sql +
‘INSERT INTO #Results (TableName, ColumnName, ColumnValue) ‘ +
‘SELECT ”’ + t.TABLE_NAME + ”’, ”’ + COLUMN_NAME + ”’, ‘ + QUOTENAME(COLUMN_NAME) +
‘ FROM ‘ + QUOTENAME(t.TABLE_SCHEMA) + ‘.’ + QUOTENAME(t.TABLE_NAME) +
‘ WHERE (‘ +
‘ (‘ + QUOTENAME(COLUMN_NAME) + ‘ LIKE @SearchValue COLLATE DATABASE_DEFAULT)’ +
‘ OR (‘ + QUOTENAME(COLUMN_NAME) + ‘ LIKE @SearchValue COLLATE Latin1_General_BIN)’ +
‘);’ + CHAR(13)FROM INFORMATION_SCHEMA.COLUMNS c
JOIN INFORMATION_SCHEMA.TABLES t ON c.TABLE_NAME = t.TABLE_NAME
WHERE t.TABLE_TYPE = ‘BASE TABLE’ — Exclude views
AND c.DATA_TYPE IN (‘NVARCHAR’, ‘NCHAR’, ‘VARCHAR’, ‘CHAR’, ‘TEXT’)— Execute the dynamic SQL
EXEC sp_executesql @Sql, N’@SearchValue NVARCHAR(255)’, @SearchValue— Retrieve the results
SELECT * FROM #Results— Clean up the temporary table
DROP TABLE #Results