|
|
Twitter improves my writing because it forces brevity and promotes vocabulary with only 140 chars, Inspires creativity for re-tweets
(Actual Tweet)
Previously, I mentioned that I had joined Twitter reluctantly. I thought of Twitter as merely a recreational outlet, but it has increased my productivity and learning. In my relatively short time with it, I’ve learned about free SQL related resources as well as soft skills such as time management and giving better presentations.
To my surprise, Twitter has made me a better writer for the reasons in the above tweet. I have always been a decent writer, but Twitter has shown me that I’m excessively wordy. Often I begin a tweet and then spend a minute condensing my thoughts and words to fit into the 140-character (or less if you want to be re-tweeted) limit. This exercise has actually changed my mindset and I find that I’m not only writing that way in other outlets such as this blog, but even thinking that way in general.
Twitter encourages the user to increase their vocabulary to substitute expressive words that convey deeper meaning while decreasing character count. Previously, I was verbose, diffuse, and loquacious without adding actual content.
Tweeting also encourages creativity and humor. If others find what your tweets interesting or funny they will rebroadcast them and this can result in more followers. Like nearly everyone, I want to be heard and therefore I write better.
I encourage everyone to give Twitter a try; you may realize similar benefits. I am Made2Mentor on Twitter if you’d like to follow me.
I’ve been in the process of auditing my user permissions, which is a daunting task when you administer a larger user base. I’ll elaborate on the entire project later.
One glaring omission I’d like to mention is the inability to customize the User Management (USER) screen. FastForms excludes it, and Form Customizer throws a red box error when trying to extend it. The USER screen doesn’t contain any User Defined fields.
The reason I mention this is the USER screen needs a control to save the user’s department such as sales, production, etc. I want to evaluate user’s permissions per department so I can verify that my salespeople cannot edit shippers and vice versa.
I could do this manually with Visual FoxPro and VBA, but I think it’s too much trouble.
 Never underestimate your opponent. Expect the unexpected.
Earlier this week, I was reminded of this post from some time ago. Yes I know I’ve already used that picture, but you can ever have enough Swayze. The company in question uses a 4-4-5 Calendar for accounting and this makes reporting more difficult. For example the month of March started February 28th and ended April 3rd. Something like the following will not work:
SUM(CASE MONTH (SOM.forderdate)
WHEN 1 THEN (sor.forderqty * SOR.funetprice)
ELSE 0
END)
AS [Jan],
The code is more cumbersome for a 4-4-5 system, but I welcome the challenge and it makes me a better writer of T-SQL. I’ll post the code for how I do this using an external calendar table in a future article. Anyway, I was asked to create an automatic sales report with the following criteria:
- Sales orders received during the current month (4-4-5). This is of course month to date (MTD), but cannot be calculated using established formulas because the first day of the month is always different.
- Sales order line items which are due before the end of the year. The end of the year is always 12/31.
- Include customer number, name, and a grid that looks like the following:
Cust Jan Feb March April May June July Aug Sept Oct Nov Dec Total
Ordered Acme Rockets 0 0 0 0 0 0 0 165636 0 0 0 0 165636
Shipping Acme Rockets 0 0 0 0 0 0 0 100000 1250 9999 54387 0 165636
For simplicity’s sake, I’ve only shown one customer order. The report typically has several hundred records. Anyway, I wrote the code and tested it thoroughly. It was set to run as a scheduled job in Crystal two minutes after the end of the business day every Friday.
Everything ran fine for quite awhile until the CFO brought one of the reports back to me which showed an amount shipping in July (the previous month).
Since the code was fairly complex and difficult to write, I kept looking for mistakes. After looking for close to an hour, I decided to change the query to return every sales order represented rather than the aggregates (sums) per order.

When I isolated the sales order and line item, I found that while the order date for the sales order was in August, the due date was a month prior. Armed with this knowledge, I took the issue to the sales manager, and he told me that the information was correct. Company policy is to use whatever date the customer lists on their purchase order, no matter if it’s realistic or even possible.
What did I do? Well, I asked the CFO for a clarification and with his permission changed the code to include any line items with a date prior to the current MTD to reflect the current month in the report.
I guess my point is that you always have to expect that your users are going to do strange things. Expect it, plan for it, or get called on the carpet when your code is “wrong.”
Have any of you folks run into similar situations when reporting from M2M?
As I pointed out in a previous article , various areas of M2M function differently. When you spend enough time administering a M2M database you realize that at one time there were several different individuals or teams working on various modules (sales, invoices, purchasing, production, etc) and they did not communicate enough.
For example, M2M does not allow you to put Vendors on hold. There is no way to prevent a purchasing agent from purchasing from a specific Vendor. This is inconsistent with the customer screen (CUST) which allows you to prevent users from selling to certain customers. M2M’s workaround is to change the vendor name to “DO NOT USE” but that is not a very elegant solution.
Similarly, M2M handles releases differently in the Sales and Purchasing modules. The Sales module has a dedicated table for releases while Purchasing integrates them into the items table. For beginners, it can be confusing to report against.
What other inconsistencies have you noticed?
I haven’t really ever asked my readership (all 3 of you) to do anything, but I’d like to do so now. Buy SQL Server MVP Deep Dives, a book about most aspects of SQL Server written entirely by Microsoft MVPs. From their site:
QL Server MVP Deep Dives brings together the world’s most highly-regarded SQL Server experts to create a masterful collection of tips, techniques, and experience-driven best practices for SQL Server development and administration. These SQL Server MVPs—53 in all—each selected a topic of great interest to them, and in this unique book, they share their knowledge and passion with you.
SQL Server MVP Deep Dives is organized into five parts: Design and Architecture, Development, Administration, Performance Tuning and Optimization, and Business Intelligence. Within each part, you’ll find a collection of brilliantly concise and focused chapters that take on key topics like mobile data strategies, Dynamic Management Views, or query performance. The range of subjects covered is comprehensive, from database design tips to data profiling strategies for BI.
Sounds great, huh? Wait, there’s more. All of the authors have signed over their royalty rights to War Child International, an organization that helps children affected by war.
How can you beat that? You learn a ton about SQL Server, and donate to make the world a better place at the same time. I bought my copy yesterday.
I had a pleasant surprise today. I called M2M Support to request another change request to allow multiple bill to addresses for customers. Currently, as of Version 5.6, each customer could only have one bill to address. However, this creates problems when selling to very large companies. Typically, you end up with 10 different customer numbers for Acme Rockets and it makes it difficult to find sales orders, invoices, and such.
Anyway, as with the last article that functionality has been added to Version 6.0.

For those that don’t know, the Favorites Bar is a M2M toolbar, which can be placed anywhere on the screen or docked in various places. It is a convenient way to bring up screens that you use often, and there is a real need for it. There is just one little problem.
It doesn’t work. Well, it does work, but it screws up a multitude of other M2M screens and processes.
To be honest, I don’t know how the Favorites Bar still exists. For awhile, it has been more or less a running joke in support that if a problem is not easily explainable, have the user disable the Favorites Bar and there’s a fair chance the problem will be solved. The screens on the favorites bar are pre-loaded and I believe this is what causes the problems. Since the screens do not initialize the next time they are selected, weird behavior results.
However, because it is so handy, users are going to use it whether you want them to or not. M2M has not provided a way for administrators to disable it, nor seen fit to fix the stupid thing.
Anyway, this particular post is about a FastForms issue I noticed when I customized a screen with a companion form. A companion form loads next to a standard M2M screen to allow the user to enter corresponding information. Some of my users complained that their companion form kept disappearing. I realized through testing that this would happen the second time they loaded the screen. When I disabled the Favorites Bar, everything would work as normal.
According to CR 117770 there is a fix for this particular behavior in version 6.0, but I have yet to test it.

I received a question from a reader recently saying that his accounting person could not post transactions in M2M. They received the error message shown on the left.
Since he is no longer on M2M support, he could not close his current month and did not have a lot of time to try to figure it out.
Anyway, the answer is simple and if you are on support, you can read this article in the knowledge base. When the transaction posting process starts, it creates a file in your M2MDataXX directory called TRTR.LOG. It does so to keep multiple users from attempting to use the screen at the same time.
When the Post Transactions to GL screen is closed, M2M automatically deletes the file. However, if your user does not have deletion rights to the M2MDataXX directory or they force M2M to close by pressing CTRL-ALT-DELETE the file remains. The next time the screen attempts to open, you receive this error.
Incidentally, the fact that users must have all rights to the M2MDataXX directory is a bad breach of security anyway. Your users can delete anything they wish in that folder. I wish M2M would address that. Also, it would be nice if that M2M error window would give you the ability to fix the issue from directly within M2M.
Anyway, if you are sure that nobody is in that screen, then you can safely delete the TRTR.LOG file to clear the error and post transactions normally.
I thought I would share this just because it’s interesting. M2M zip code fields do not search consistently because the textbox will not allow an asterix. For example, if you want to search for the following companies on the Customer screen (CUST):
Cust No Company Zip
111111 Acme Inc 90210
222222 Acme Rockets 90210-5678
333333 Acme 90217
If you enter “Acme” into the company name field and hit search, the screen will skip the search grid and display record 333333 because you have an exact match. However, if you search for “Acm” or “Acme*”, the search grid will show all four of these companies because none of these match exactly. If you search for zip “90210” only record 111111 will show up. Since you cannot enter an asterisk, the only way to search for zip variations is to leave the zip unfinished and ignore the extra records. It’s not earth shattering, but I entered a change request regardless.
Have any of you found other situations like this?
As Garfield used to say, “I hate mondays.” This is what came up for me first thing Monday morning.
 Yeah, that's helpful
|
|
Popular Articles