This is the seventh edition of my SHIMS blog. If you would like to look at previous editions, you can find them at: Ed’s SHIMS Blog.
In this edition we have Top Mods, Really New Stuff, and Tech Corner sections.
There are a lot of changes happening in the SHIMS world these days and I thought you might find some of them interesting.
So here goes.
Top Mods
All Branch Inventory History Ledger Inquiry
This mod allows you to enter ALL at the branch prompt in the Inventory History Ledger Card, and then see the history of the product across all branches.

This is one of my favorite mods. When you are researching a problem or a question about a product, nothing beats being able to see all the activity on this product in one place. More than a time saver, this gives you the big picture in one simple screen. A ‘must’ for any company with multiple branches.
Really New Stuff
Corken Steel Products has an on-line storefront that is fully integrated with SHIMS.
That integration sets up the storefront to display current product availability and pricing, and allows customers to create SHIMS sales orders directly from the online catalog.
Here are three screens that show the storefront and the drill-down to select a product.



Note that on this screen you see the actual price the customer would pay, as well as the availability of this product in the customer’s assigned branch and the total available across all of Corken’s branches.
I asked Jason Schmidt at Corken about what the process was for building and maintaining this on-line catalog.
Jason put me in touch with Randy Englert who told me this:
“I began working on the updated version of our webstore last spring on the test site. I was delighted to find the site easy to categorize and arrange products, update keywords, images and other product information. Our previous webstore required a lot of build time when creating new products and updating existing products, whereas the new Channel Software webstore provided instantaneous updates. New customers and products can now be set up in under a minute. The Excel-based bulk loading of products immediately synchronizes our system product information with SHIMS.
After a couple of weeks testing the site we went live with the new webstore, which for the most part was a flawless conversion. Some of the sites new features include login history of users, successful and failed product searches, and Excel download of price files for our customers. This download feature has been very helpful to our customers, allowing them to retrieve pricing for the extraordinary amount of price increases our industry is facing this year.
Overall, the new webstore is easier to use, works well with SHIMS, sales are up nearly double YTD and Channel Software is very responsive and good at finding solutions that support our IT infrastructure.”
As you can see, Corken is very pleased with what they have.
I created the software on the SHIMS side to support all of this.
Channel Software (channelsoftware.com), a b2b and b2c ecommerce software developer, worked with Corken and me to implement the SHIMS integration. Through this integration the ecommerce site reflects real-time SHIMS data. Using Channel Software’s site administration console, Corken is able to maintain and update the site’s products and details as needed. Feel free to contact Zumasys at [email protected] if you are interested in learning more about ecommerce options.
Tech Corner
The next few Tech Corner blog posts will cover SHIMS dictionaries, moving from the simplest dictionaries to some complex subjects.
In this post I want to cover the basics. In doing that, I will cover one subject that even some experienced users misunderstand, so even if you have used and written dictionaries many times, you might want to skim this.
Here is a simple dictionary for the CUSTOMER file: START.DATE

This dictionary is used to display the date the customer was added to the CUSTOMER file. For example, you could enter:

To get this:

Let’s go through each of the fields in the dictionary:
On line 1, there is an A. This says that you are looking at a dictionary. You might also have seen an S on that line, which also says that what follows is a dictionary. (If there had been a PQ on the first line, that would have said that you are looking at a PROK.)
What is the difference between A and S? By convention A is used for the simplest dictionaries – ones that are used to display a single field. S is used for dictionaries that do some kind of calculation.
The START.DATE dictionary just displays attribute 66 from the CUSTOMER, so A is what is used. S would work too, but it is a little confusing since it suggests that a value is being computed.
I will discuss S dictionaries in the next post.
On line 2, we have 66. That just says that the data to be displayed is stored in attribute 66 of the CUSTOMER.
On line 3 you see CREATED. This is what prints in the column heading when START.DATE is used in a Recall statement like LIST CUSTOMER NAME START.DATE, as you see above.
If line 3 were left blank, the name of the dictionary – START.DATE – would be used as the column heading.
One thing about this: the width of the column heading puts a lower limit on how many columns are used to display the data. For example, if START.DATE is the column heading, then at least 10 columns will be used to display the data. If you are tight on space, you can shorten the display of the START.DATE dictionary by using a shorter column heading.
Lines 4, 5 and 6 can be ignored.
In order to understand lines 7 and 8 it is important to distinguish the ‘internal’ value from the ‘external’ value. Internally a date is stored as number. For example, if you looked at attribute 66 of a customer whose START.DATE is 06/01/20, you would see 19146.
19146 is the internal value. 06/01/20 is the external value.
Line 7 is known as the ‘conversion’. You see D2/ in our example. That means ‘display the data in date format’.
What that D2/ conversion on line 7 does is convert the internal value 19146 into the external date 06/01/20. The internal value remains 19146.
Line 8 is known as the ‘correlative’. In our example, this is blank, but you could use D2/ on line 8 and leave 7 blank.
The difference is that the correlative changes the internal value. With the D2/ conversion on line 8, the internal value of 19146 is changed to 06/01/20, as well as the external value.
The reason this is important is that SORT (and other parts of Recall like WITH) use the internal value.
For example, maybe you want to compare 18993 (12/31/19) to 19146 (06/01/20) to decide which date comes first.
With D2/ on line 8, if you sorted dates by comparing 12/31/19 to 06/01/20, then 06/01/20 would be first. That is probably not the order you want. That is why you want to put D2/ in line 7.
Whew.
The rest is easier.
Line 9 controls whether the data is left or right justified. Normally numeric data is right-justified and alphabetic date is left-justified.
Line 10 says how many columns to use in displaying the data. (Note however that the column heading length can increase that, as discussed above.)
Line 11 can be ignored.
Line 12 is used to explain what the dictionary does. You can leave it blank, but a little explanation is frequently helpful.
If you have some tech questions you would like answered, please let me know and I will discuss your question.
Thanks,
Ed
Zumasys Disclaimer:
This blog is for educational purposes only. Zumasys makes no representation, express or implied warranty, or guarantee about completeness, accuracy, or usefulness. By using the information, you agree it is your sole responsibility to independently determine the suitability of the information for your particular situation and you agree that neither Zumasys nor its agents will be liable for any damages arising from or related in any way to the information.
The content in this blog is the intellectual property of Zumasys and you may not reuse, republish, or reprint the content without the prior written consent of Zumasys. All third party trademarks remain the property of their respective owners. Unless specifically stated, the use of such trademarks does not indicate any relationship, sponsorship, or endorsement.