Sunday, July 31, 2011

"Illegal Address Field" Error while accessing a Global

0 Comments
This one's interesting and quite straightforward too.

I had to create a new Global field in my customization. Instead of creating a new field, I added an existing GP field ('Customer Number') and wrote my code to assign value and retrieve value as required.

I created the chunk and when my code was executed at run-time, I received the following error message:











At the first look, it's all correct. I have referred to a Global field which exists pretty much in my dictionary, otherwise it would not have even got compiled in first place.

So what else would be the reason? It's plain and simple. I created a "new Global field from an existing GP field". Which means, when I created my chunk, I should have added this resource explicitly to my dictionary, using Transfer Resources Dex Utility option. OR I should have first created a new field itself and then add that to Globals.

Since I didn't do above, compiler did not find that resource at all in my dictionary or GP's dictionary (Dynamics.dic) and then threw this error message.

I created a new field itself in my custom dictionary and added that to Globals. Things were perfectly alright.

Sometimes, focusing more on brain draining issues may actually drain your brain. Well, I am serious. Otherwise, how in your opinion I missed this above simple concept?

Update: David has posted a quick tip on why this issue occurs and what is the best possible solution to this.

VAIDY

Monday, July 11, 2011

Fixed Assets Suffix

0 Comments
Fixed Assets Suffix is quite confusing, at least that's what I was thinking about.

According to GP:

When you enter an asset ID, you also must enter a suffix for it. The asset ID is used throughout Fixed Asset Management to identify assets; the suffix is used to identify components of assets. The default suffix is 1. You can accept the default suffix or enter or select a different one.

For someone who do not understand what exactly it is, I would like to simplify.

Consider the following scenario:

I am purchasing 10 laptops of identical configuration for my staff. Following will be my asset record:

Asset ID: LAPTOPS
Suffix: 1
Acquisition Cost: $3000 ($300 per laptop)
Quantity: 10
Location: My Office
Physical Location: IT Stores
Custodian: IT Manager or IT Department (whichever way you would like to perceive)

Now, my IT department allocates one laptop to an employee belonging to Finance department. I must now pass an Asset Transfer for one laptop from this asset ID. Once I transfer one laptop, following will be my new & updated asset records:

-- For all other 9 laptops that are not allocated yet
Asset ID: LAPTOPS
Suffix: 1

Acquisition Cost: $2700 ($300 per laptop)
Quantity: 9
Location: My Office
Physical Location: IT Stores
Custodian: IT Manager or IT Department

-- For 1 laptop that got allocated to an finance employee
Asset ID: LAPTOPS
Suffix: 2
Acquisition Cost: $300
Quantity: 1
Location: My Office
Physical Location: Finance Department
Custodian: Employee to whom this laptop is allocated to

Asset Suffix will be incremented as and when you do a partial transfer. It is not advisable to use Asset Suffix for non-identical assets. For instance, if you purchase 10 laptops but non-identical configurations, it's not standard practice to create one asset ID with quantity 10.

Hope this helps.


VAIDY

Wednesday, July 6, 2011

Smartlist Favorite Visibility

0 Comments
Most of the queries that I am receiving from my users regarding Smartlist is like below:

1. Why my Smartlist Favorite is being shown to all?
2. I created a Smartlist Favorite in one company. It is not showing up in other company. Why?

Answer is quite simple and straightforward. They had not selected an appropriate *Visible To* option.

Smartlist favorites can be created with either one of available four different visibility options.

1. System
2. Company
3. User Class
4. User ID

Shown below is how it looks like:











1. System: Visible to all users across all companies.
2. Company: Visible to all users, but visible only on that particular company.
3. User Class: Visible to all users under the user class in which the user who creates this favorite is, but visible across all companies.
4. User ID: Visible only to this user, but across all companies.

Related PostChanging a smartlist favorite's visibility thru' SQL

VAIDY

Sunday, July 3, 2011

Congratulating MVPs

0 Comments
I would like to take this opportunity to congratulate MVPs from our community:

1. Mariano Gomez (GP) - 4th consecutive year
2. Jivtesh Singh (GP) - Debut MVP
3. Dave Berry (CRM) - 2nd consecutive year

And all those who got awarded this time for their tremendous achievements and contributions.

I wish all many more success and accolades to come thru'.

VAIDY

Saturday, July 2, 2011

"Unknown error 0 - 800AC351 occurred saving the project file" - Error & Solution

0 Comments
My last post discussed about an error message faced by users once GP2010 R2 upgrade was over. This post gives you a solution for that.

The following error message was faced by users when they log off from GP:










Initially I thought it was occurring only on "sa" login. But couple of users today reported the same error when they logged off from GP.

When I analyzed this further, I realized that users who have access to Field Service processes in GP alone were getting this error message. Those who do not have access never reported this issue at all.

That made me to think about next step in solving this. No one has reported this issue yet, thus leaving me in the lurch.

I finally found a solution for this menace.

SOLUTION:

1. I logged off all users from GP environment, as it is Terminal Server environment for us.
2. Launched GP and opened Visual Basic editor.
3. Opened Field Service VBA project.
4. Did some harmless edits (like adding some comments, etc.).
5. Opened the "References" wizard.
6. Unselected all references and selected it back.
7. Compiled the entire project to check whether I am getting any error message.
8. Saved VBA project.
9. Logged off from GP.

Surprisingly (but expectedly) the error message never appeared again.

Those who are looking for some solution for this menace, here it is for you.

VAIDY

Unknown error 0 - 800AC351 occurred saving the project file - Error Message

0 Comments
Has anyone faced this error message?










I recently found this error message after upgrading to GP2010 R2, though it doesn't have any impact towards other users' sessions and even the customizations.

This happens only for an "sa" login. Very strange error message.

UPDATE 1: This is happening for all users who have access to Field Service module. If you see the above message, the error is thrown by Field Service VBA project.


UPDATE 2: Issue is resolved. Please read my next post to know better about this message.

VAIDY

Friday, July 1, 2011

Don't update "Batch Status" thru' SQL when users are logged on

0 Comments
A user complained about a batch not being able to be posted. The error message is something like this: This batch is currently receiving transactions.

Normally when a user complains about something like this, a GP Administrator or Consultant's immediate step is to check what the *Batch Status* field holds in SY00500 (Batch Header) table. The legend for this field says:

0 – Available - BATCH_AVAILABLE
1 - Marked to Post - BATCH_POSTING
2 - Marked to Delete - BATCH_DELETING
3 - Marked to Receive - BATCH_RECEIVING
4 - BATCH_DONE_POSTING
5 - BATCH_PRINTING
6 - BATCH_UPDATING
7 - BATCH_POSTING_INCOMPLETE
8 - BATCH_PRINTING_INCOMPLETE
9 - BATCH_UPDATING_INCOMPLETE
10- BATCH_RECURRING_INCOMPLETE
11 - BATCH_POSTED_WITH_ERROR

And quite apparently, in my case, it was 3. i.e. BATCH_RECEIVING. It's very easy to update this field back to ZERO that denotes BATCH_AVAILABLE, so user can post it.

I could have also done the same thing. But I did not. I just wanted to make sure that this batch indeed did not receive any transactions. How do we identify whether a batch is receiving transactions or not? That I will address in another post.

This one is intended to caution a Consultant or Administrator NOT to update *Batch Status* thru' SQL for any batch which is marked as BATCH_RECEIVING when users are logged on.

It would break a valid transaction being saved in this particular batch. When a batch receive transactions, GP locks this batch from getting posted only by updating the *Batch Status* field with BATCH_RECEIVING. By changing that from back end, we are risking batch getting corrupted.

Tell the user that he/she has to wait. And wait till users log off from GP. And then check whether the *Batch Status* becomes BATCH_AVAILABLE. In case it is not, then you update it thru' SQL.

It is worth waiting for sometime than trying to clear a mess. I take this opportunity to insist again: SQL is not ALWAYS an appropriate approach for issues that we face in GP.

UPDATE: David has sent me a link, which quite obviously I missed mentioning here. How did I miss this? We do have a way to release stuck batches without logging off users.

VAIDY

Resizing left pane in Smartlist - Frank Hamelly

0 Comments
Frank, thank you very much for getting this from Microsoft Team. We all are grateful, as I know the pain in scrolling horizontally for each Smartlist item.

Alright, for all GP users and consultants out there. You all better download this from Frank's site. This is going to be most likable thing.

Here it is: Resize the left pane in Smartlist.

VAIDY