10/6/08

How To Get Rich

Thats what so many want. Right ? I’m certainly not going to lie and say it is not a whole lot better having lots of money. I had a whole lot of fun and loved my life when I was eating mustard and ketchup sandwiches and sleeping on the floor of a 3 bedroom apartment that housed me and 5 buddies.

I have a whole lot more fun now. It doesn’t suck to be rich.

The question everyone wants answered, is how to get there. There are ways to get there. But there is not a template that works every time for everyone. It works sometimes. Getting there requires being ready when opportunity presents itself.

IMHO, change and uncertainty create opportunity. Times like we are facing now, with complete financial uncertainty are perfect times to start on the road to getting ahead financially.

First, here is WHAT NOT TO DO:

There are no shortcuts. NONE. With all of this craziness in the stock and financial markets, there will be scams popping up left and right. The less money you have, the more likely someone will come at you with some scheme . The schemes will guarantee returns, use multi level marketing, or be something crazy that is now “backed by the US Government”. Please ignore them. Always remember this. If a deal is a great deal, they aren’t going to share it with you.

I dont broadcast my great deals. I keep them all to myself. The 2nd thing to remember is that if the person selling the deal was so smart, they would be rich beyond rich rather than trolling the streets looking to turn you into a sucker. There are no shortcuts.

So what should you do to get rich ?

Save your money. Save as much money as you possibly can. Every penny you can. Instead of coffee, drink water. Instead of going to McDonalds, eat Mac and Cheese. Cut up your credit cards. If you use a credit card, you dont want to be rich. The first step to getting rich, requires discipline. If you really want to be rich, you need to find the discipline, can you ?

If you can, you will quickly find that the greatest rate of return you will earn is on your own personal spending. Being a smart shopper is the first step to getting rich. Yeah you have to give things up and that doesn’t work for everyone, particularly if you have a family. That is reality. But whatever you can save, save it. As much as you possibly can. Then put it in 6 month CDs in the bank.

The first step to getting rich is having cash available. You arent saving for retirement. You are saving for the moment you need cash. Buy and hold is a suckers game for you. This market is a perfect example. Right at the very moment when cash creates unbelievable opportunity, those who followed the buy and hold strategy have no cash. they cant or wont sell into markets this low, that kills the entire point of buy and hold. Those who have put their money in CDs sleep well at night and definitely have more money today than they did yesterday. And because they are smart, disciplined shoppers, their personal rate of inflation is within their means. Cash is king for those wanting to get rich.

The 2nd rule for getting rich is getting smart. Investing your time in yourself and becoming knowledgeable about the business of something you really love to do.

It doesn’t matter what it is. Whatever your hobbies, interests, passions are. Find the one you love the best and GET A JOB in the business that supports it.

It could be as a clerk, a salesperson, whatever you can find. You have to start learning the business somewhere. Instead of paying to go to school somewhere, you are getting paid to learn. It may not be the perfect job, but there is no perfect path to getting rich.

Before or after work and on weekends, every single day, read everything there is to read about the business. Go to trade shows, read the trade magazines, spend a lot of time talking to the people you do business with about their business and the people they buy from.

This is not a short term project. We aren’t talking days. We aren’t talking months. We are talking years. Lots of years and maybe decades. I didn’t say this was a get rich quick scheme. This is a get rich path.

Now you wait for times of uncertainty and change in your business. The time will come. It may come quickly, it may take years and years. But it will come. The nature of our country’s business infrastructure is that it is destined to be boom and bust. Booms are when the smart people sell. Busts are when rich people started on their path to wealth.

You will know when that time is here for you because you will know your business inside and out. You will be ready because you will have been saving up for this moment in time.

With all the change and uncertainty in the financial markets, there are people right now making more money than they ever dreamed of. They are the ones who have been living the real estate market and the financing behind it and understanding what actually what was going on. They re the one who understood the complexities of the credit markets. When everyone was following the crowd, they kept on saving their money and avoiding the temptation of groupthink.

Boom and busts happen to every industry. The question is whether you have the discipline to be ready when it happens for you ?

If you do, you will find out what it feels like to get lucky.

For more on how to get lucky, here is some additional reading for you

6/11/08

Reseting Inventory Quantity On hand and Quantity Available in Inventory

During a normal implementation, customers using the Inventory module are faced with testing numerous transaction scenarious prior to going live with their Dynamics GP system. However, the conversion to the live company requires transfering the Inventory Master tables, including the Item Quantity Master (IV00102) table. This table hosts the Quantity On Hand and Quantity Available fields per site which can already be affected by the transactions previously tested.

In order to reset the values in these fields without any SQL query involved (ok, not completely), you can try this simple solution: create a physical count for all items!

1) Create a stock count schedule for all items. Go to Transactions > Inventory > Stock Count Schedule. Enter a Stock Count ID, i.e., CLRQTYS.
2) Mass Add all items in your inventory by any criteria
3) Start the count by clicking on the Start button. Close the Stock Count Schedule window.
NOTE: you can choose to uncheck the Reuse Stock Count checkmark.
4) Open the Stock Count Entry window. Go to Transactions > Inventory > Stock Count Entry. Mark all items as counted without entering any values (they are automatically defaulted to zero).

NOTE: If the company has a great number of products, the items can be marked as counted with the following SQL script

declare @stockcountID char(20)
set @stockcountID = 'CLRQTYS' -- replace for the actual stock count you createdupdate IV10300
set ATPSTVRNC = 1 where stckcntid = @stockcountID
update IV10301 set VERIFIED = 1 where stckcntid = @stockcountID5)

Post the count.
Click on the Process button to process and post the count.Now you are good to transfer your Inventory Master tables!

6/4/08

Wipe Blackberry using OS command

Wipe using OS command

You can do a limited wipe (of data only–not applications or the OS) by doing Options > Security Options > General Settings > (press Menu key) > Wipe Handheld.

You are warned before proceeding that you will lose all your application data, and that message services will be turned off. You have a choice of not wiping data for your custom (3rd party) applications by clicking a checkbox. Click the Continue button to proceed or Escape to cancel.

To make sure you really want to do this, you are forced to type the word blackberry and press Enter to proceed. Then you will see a progress bar showing how complete the wipe process is.

The phone will reboot (reset) itself. Before you can make a phone call or send/receive messages, you will active to restore your connections. The simplest way is to attempt to dial a number and you will be guided to do that.
Enter wrong password 10 times

I don’t really recommend this because it’s just silly, but you might want to know what this is about. If you set a password on your BlackBerry (Options > Security Options > General Settings > Password: Enabled), and if you enter the wrong password 10 times in a row, your BlackBerry will wipe its data. Why? If someone finds/steals your phone and attempts to crack the password, then your Address Book, messages, etc. cannot be read. This is a built-in security measure, especially for corporate or government users.

5/30/08

Removing Sample Company Date Message in Microsoft Dynamics GP v10


This one comes courtesy of Leslie Vail, directly from the Microsoft Dynamics GP Technical Airlift, held in Fargo, North Dakota from May 28 - May 29.
How many times you wish you could vanish that annoying sample companany date message box? How many times you could set the user date to something else when login in? The answers are all here now! You are looking at a few new Dex.ini settings that allow you to do just that!


Edit the dex.ini file and include one of the following:


SampleDateMsg=FALSE, will prevent the dialog box from being displayed while leaving the date as April 12, 2017


SampleDateMMDDYYYY=00000000, will prevent the dialog box from being displayed and to use the current system date.


SampleDateMMDDYYYY=MMDDYYYY, will prevent the dialog box from being displayed and to use a user-specified date (replace the placeholder MMDDYYYY with the month, day, and year. For example, May 15, 2015 would be: SAMPLEDATEMMDDYYYY=05152015)

5/26/08

Deleting Unit of Measure items and Pricing

I had a situation today where we have items that have inaccurate unit conversions (ie. we need to modify some as well as delete some). To complicate matter more, we have some open orders as well as invoices from orders that used the old UofM for pricing.
Well much to my surprise i found out a few things while testing in an test company.

Deleting a UoM Line or Conversion
  • Go to Cards > Inventory > Items.
  • Click on the U of M Schedule ID
  • Click on a line you want to delete
  • Go to Edit > Delete Row (Alt,E,D)
If you have orders that are open or invoices that have not been posted, they will be fine. It appears that the order contains the converstion and is not dependent on the schedule after creation. However, the line you deleted will not be available any longer.

To change/modify a UoM take the same approach ans just change the ration to Base UoM. this will not alter any existing open orders or previouosly invoiced items.

5/7/08

Suppressing Voided Documents from Customer Statements

Suppressing Voided Documents from Customer Statements
Microsoft Dynamics GP is a feature-rich product with the ability to include and exclude a good amount of information via the user interface, but when it comes to simple practical aspects such as suppressing voided documents from a customer statement, well it kind of falls short. No worries though! This article presents detail steps on how to suppress voided documents on customer statements without involving any programming.

For this example, I will be using the RM Statement Long Form (any statement will do) and will devide the process into 2 phases. So, lets get started.

Phase I - Setup the new relationships to expose the Void Status field

Since the document void status cannot be obtained from the current tables in the relationship, it will be necessary to create a relationship to the RM Open table.

1) Print the statement you would like to modify to screen and hit CTRL + F9 on your keyboard. Close ALL opened windows once in Report Writer.

2) Click the Tables button on the toolbar and select Tables from the drop-down button menu. This will open the Tables window.

3) Locate the RM_Statements_TRX_TEMP table, click Open to open the Table Definition window.

4) Click on the Relationships button to open the Table Relationships window. Click on the New button to open the Table Relationships Definition window.

5) Click the ellipses button, next to the Secondary Table field to open the Relationships Lookup window. Locate the RM Open table, highlight and click Ok.

6) Back to the Table Relationships Definition window, click on the Secondary Table Key drop-down and select RM_OPEN_Key1

7) Match each drop-down key segment on the left with the grayed out key segment on the right. You should find and EXACT MATCH for each field (this should create a One-to-One relationship between the tables) as shown below. When finished, click Ok to close the Table Relationships Definition window.




8) Close the Table Relationships window

9) Click Ok to close and save the Table Definitions window.

10) Close the Tables window


Phase II - Suppress the field on the report

Now that we have created the table relationships, we will setup a calculated field to check on the Void Status field of the RM Open table to decide whether the record will be included in the body of the statement report. For this, we will use the "Suppress When Field is Empty" feature in the Report Section option, in tandem with the calculated field.

1) Click on the Reports button on the toolbar. This will open the Report Writer window.

2) Select the statement report from the Modified Reports column on the right and click the Open button to open the Report Definition window.

3) Click the Layout button to open the Report Layout window.

4) Select calculated fields from the drop-down in the Toolbar window (usually at the left of the screen)

5) Setup a Conditional calculated field called (C) Suppress Voids that returns an Integer value.

6) Setup the following 3 expressions, as shown below for the calculated field.





7) Hit Ok to save

8) Click on the Layout window again and this time select Tools from the menu. Click on Section Options

9) Click on "Suppress When Field Is Empty" checkbox beneath the Body checkbox and select the calculated field created in steps 5 and 6.

10) Close the Layout Window and click Save when prompted to. Click Ok in the Report Definition window.

Return to GP and grant security to the modified report accordingly with the release of GP you are using. This should take care of everything.

NOTE: THIS WILL ONLY WORK FOR TRANSACTIONS THAT HAVE NOT BEEN MOVED TO HISTORY WITH THE PAID TRANSACTION REMOVAL PROCESS.

5/6/08

Dex.ini Settings

Some of the deep technical stuff seems to have struck a chord so we'll do a little more. This week we're looking at some of the settings in the Dex.ini file. This file holds a number of key GP settings. Many of them are available via the program interface but some are not. This is NOT intended to be a comprehensive list of every possible Dex.ini line. But if you think I missed something, add it to the comments and we'll build a full list together.
SuppressChangeDateDialog=TRUE - Turns off the Date Change dialogue that opens at midnight
Synchronize = TRUE - Forces a synchronization of the chart of accounts format
OLEPath=\\server\folder\ole - Sets the path for linked and embedded files. This is often set up inconsistently in the initial setup. You'll need to include your path in place of \\server\folder\ole
NoPrintDialogs=TRUE - Suppress the print dialogue box
ShowResids=TRUE - Make resource ID's visible in Dexterity
SQLLogSQLStmt=TRUE SQLLogODBCMessages=TRUE SQLLogAllODBCMessages=TRUE - Turn on Dex SQL Logging (all 3 lines)
ShowAdvancedMacroMenu=TRUE - Turn on the Advanced Macro Menu
C:\DPS1\DEX.INI DPSInstance=1 C:\DPS2\DEX.INI DPSInstance=2 C:\DPS3\DEX.INI DPSInstance=3 - Run multiple process servers on a single machine. Specifics on CustomerSource here. (One line for each process server)
AutoInstallChunks=TRUE - Add CNK files without the "Add New Code?" dialogue
ExportOneLineBody=TRUE - eliminate line wrapping when exporting reports to comma or tab delimited files.
IMPath=C:\Program Files\Microsoft\Great Plains\Integration Manager\IM.EXE IMExecPath=C:\Program Files\Microsoft\Great Plains\Integration Manager\IMRun.EXE - Set the path to Integration Manager so it will launch properly from the menu. (2 lines)
WindowMax=TRUE - Open the GP main window full screen

5/1/08

Customers who have not bought a particular item

SELECT CUSTNMBR
FROM dbo.RM00101 r
WHERE (CUSTNMBR NOT IN (SELECT DISTINCT custnmbr
FROM sop30200 h JOIN
sop30300 l ON l.sopnumbe = h.sopnumbe AND h.soptype = l.soptype
WHERE itemnmbr LIKE 'DGHB'))

3/30/08

Inventory Levels

SELECT TOP 100 PERCENT dbo.IV00101.ITMCLSCD, dbo.IV00101.ITEMDESC, dbo.IV00101.ITEMNMBR, dbo.IV40201.BASEUOFM, dbo.IV00101.ITMGEDSC, dbo.IV00102.LOCNCODE, dbo.IV00102.QTYONHND, dbo.IV00102.ATYALLOC, dbo.IV00102.QTYCOMTD, ISNULL(dbo.IV00102.QTYONHND, 0.00000) - ISNULL(dbo.IV00102.ATYALLOC, 0.00000) - ISNULL(dbo.IV00102.QTYCOMTD, 0.00000) AS QTYAVAIL, dbo.IV00101.STNDCOST * dbo.IV00102.QTYONHND AS VALUEQTYONHND, dbo.IV00101.STNDCOST * dbo.IV00102.ATYALLOC AS VALUEATYALLOC, dbo.IV00101.STNDCOST * dbo.IV00102.QTYCOMTD AS VALUEQTYCOMTD, dbo.IV00101.STNDCOST * (ISNULL(dbo.IV00102.QTYONHND, 0.00000) - ISNULL(dbo.IV00102.ATYALLOC, 0.00000) - ISNULL(dbo.IV00102.QTYCOMTD, 0.00000)) AS VALUEQTYAVAILFROM dbo.IV00101 LEFT OUTER JOIN dbo.IV00102 ON dbo.IV00101.ITEMNMBR = dbo.IV00102.ITEMNMBR LEFT OUTER JOIN dbo.IV40201 ON dbo.IV00101.UOMSCHDL = dbo.IV40201.UOMSCHDLWHERE (dbo.IV00102.RCRDTYPE = 2) AND (dbo.IV00102.QTYONHND + dbo.IV00102.ATYALLOC + dbo.IV00102.QTYCOMTD <> 0)ORDER BY dbo.IV00101.STNDCOST * (ISNULL(dbo.IV00102.QTYONHND, 0.00000) - ISNULL(dbo.IV00102.ATYALLOC, 0.00000) - ISNULL(dbo.IV00102.QTYCOMTD, 0.00000)) DESC

Payables Transactions not in GL

Picture this: the auditors are in, they asking for myriads of reports, and precisely one of the things they ask is something you cannot easily achieved from the slur of reports and SmartLists available from within Microsoft Dynamics GP. To make matters worst, the "go to" guy for queries and special requests is out of the office sick with the flu. Well worry no more! If you are asked to show all the payables transactions that were never recorded or posted to GL you can run the following query from SQL Server Management Studio (or Query Analyzer if you still happen to be on SQL Server 2000):

SELECT
   a.vendorid,
   a.docnumbr,
   a.docdate,
   a.cntrlnum,
   gl.jrnentry,
   gl.trxdate,
   gl.actindx,
   c.actnumst,
   d.actdescr,
   gl.refrence,
   gl.ortrxtyp,
   gl.orctrnum,
   gl.ormstrid,
   gl.ormstrnm,
   gl.ordocnum
FROM pm00400 a left outer join
  ( SELECT jrnentry, trxdate, refrence, ortrxtyp, actindx, orctrnum, ormstrid,
      ormstrnm, ordocnum
    FROM dbo.GL20000
    WHERE series = 4

    UNION ALL

    SELECT jrnentry, trxdate, refrence, ortrxtyp, actindx, orctrnum, ormstrid,
      ormstrnm, ordocnum
    FROM GL30000
    WHERE series = 4
  ) gl ON(a.vendorid = gl.ormstrid) and (a.cntrlnum = gl.orctrnum) and (a.docnumbr = gl.ordocnum)
LEFT OUTER JOIN GL00105 c ON (gl.actindx = c.actindx)
LEFT OUTER JOIN GL00100 d ON (gl.actindx = d.actindx)

Knowing what transactions have not been posted or recorded in GL is particularly useful when attempting to balance GL and AP. It will also allow you to identify those records loaded as begining balances from within AP.

With little or no effort, this query can be added to SmartList Builder (SLB), by creating a SQL Server view with the inner query, and exposing the view to SLB. Don't forget to run the Grant.sql query to assign permissions to the DYNGRP.

3/3/08

Where is my company ID?

SELECT * FROM DYNAMICS.dbo.SY01500