Friday, January 30, 2009
Development - Test Mode Vs Chunk
I was recently approached by one of my team members for an issue which she faced with a customization. The error message was nothing but a famous "Illegal Address field ..." error message for some field.
The code was perfect and everything looked fine from the surface. I asked her about the chunk details and she responded that she was doing the testing by using TEST MODE directly from the development dictionary. A piece of her custom code access a PA Customized Form (PA Vendor Maintenance, if I remember it correctly).
Now, what exactly is the issue? What's wrong with this method? What needs to be done to avoid such issues while testing a customization? Too many questions, but the answers are very simple.
Test Mode: Is typically used only when we develop a customization whose scope is limited to just Dynamics.dic. In other words, if you are developing a customization which is limited to the core Dynamics GP functionality, then Test Mode is the best option to do the testing. The external resources that we access from our customization will be limited to that of Dynamics GP, and hence when we test the customization, the scope of access is limited to only Dynamics GP. For more details on Test Mode, please refer to Microsoft Dexterity Help Manual.
Chunk: A more professional way of testing Customizations. Simply put, this is nothing but simulating a Chunk Installation on a typical GP environment. That means, we are good go with any kind of accessibility, be it Dynamics GP or other 3rd Party Products. It's not just what you have developed that is going to be tested. It's more than that. For instance, if the client has modified any of the Report from your Customization Dictionary, then this would have created the Reports Dictionary for your Custom Product. Whenever we do a feature addition or bug fixing, we need to release a new version. In such cases, we should make sure that the existing Reports Dictionary is also upgraded to the latest dictionary. If we test the customization thru' Test Mode, we may tend to forget that we need to update the Reports Dictionary to complete the product installation.
Well, I can add on to the explanation. I just would like stress on only one point, for all Dex developers. Always try to create a proper chunk and then install that on your test environment, to make sure that you don't miss out anything.
Vaidy
Customizations that we do not need to do - Patrick Roth
This is a must read article from Patrick Roth, Customizations that we do not need to do, for every GP Developer / Consultant. At times and at some Customers' environments, the GP Business Study (some call this as Business Mapping) and Implementation is done without a Trained / Experienced GP Functional/Technical Consultants.
Personally, I have even seen some of the implementations being done without a Complete Master Data Migration (can you imagine a Customer planning the First Payroll in GP after nearly two months of "Go Live" and come to know that his company's Employee Master Data yet to be migrated and the Paycodes / Benefits / Deductions yet to be setup? Well, I have seen that!).
Some Customers don't know about all the features available in GP, how to map their Business Requirements with GP Functionality, how to minimize the Cost involved in covering the Gaps thru' Customizations. Some Customers blindly agree to whatever the VAR says with regards to the Customizations, though the percentage of such Customers is compartively less.
This article is an eye opener of sorts for people from all sides.
Vaidy
Thursday, January 29, 2009
Scrolling Window, VBA & DUOS
I started with DUOS and related concepts in Modifier/VBA. I have been interested in VBA more nowadays, and I am fairly new to DUOS concepts. I wanted to learn more about DUOS and how to use it for realtime requirements.
While all examples I looked into for DUOS concepts were dealing with adding fields to a Header side of GP Forms (Customer Maintenance, for instance), I was curious about knowing how to implement DUOS on a Scrolling window of a GP form. I worked on a very simple yet good sample Modifier/VBA/DUOS Customization which involved GL Transaction Entry form.
I wanted to add one more Description field to the GL Journal Entry Account Lines. So, in addition to Distribution Reference and Account Description, one more Description called Account Line Comments needed to be added.
Below is the complete approach:
1. GL Transaction Entry was modified to add the new field called "Line Comment" and a label "Acct. Line Comment" on the Header part.
2. I decided to use both "Journal Entry" and "Sequence Line" as the combination for the DUOS ObjectID.
3. To add the "Sequence Line" to the VBA Editor, it has to be made available on the UI. Once it is added to VBA editor, it can be pulled out of the UI as it was, originally.
4. Coding was done once the fields "Journal Entry", "Sequence Line" and the newly added "Line Comment" were added to the VBA Editor.
For more detailed explanation on this sample, you can download this Document, Sample Modifier VBA DUOS Customization - GL Trx Entry.pdf.
Any development without small gaps is not quite possible. I did trap certain simple issues in my unit testing.
1. Always, for any scrolling window, there should be a value (such as Sequence Line, Line Sequence Number, etc.) that is setup as the unique value to identify one specific line record. In my sample customization, I had to consider the Journal Entry from Header and Sequence Line from Scrolling Window as a combination to uniquely identify my Line Record.
2. Whenever a user enters a Account Line, a DUOS record will be created on SY90000 with an ObjectID @^ (in my sample). For instance, my first Account Line for a Journal Entry #3255 will be 3255@^100.
3. We have a function in VBA DUOS called DUOSObjects.Remove(), for which the parameter will be the ObejctID. So whenever a User deletes an Account Line, the corresponding DUOS record should be deleted. We do not have any automatic handler which will delete the DUOS record when an Account Line is deleted.
4. There is no event in VBA, something line LineDelete, which will handle a Scrolling Window Line Delete event.
I thought I was in a fix. I then asked this to David (Thanks David, for pointing this out to me). He instructed me to write the code on the Line Delete message "Are you sure you want to delete?". This message is shown whenever we delete any Scrolling Window Line. That's what I did and with some more code additions.
You can get this Sample Customization package from this link: GLJournalDUOSSample.package.
Do go thru' this sample code and send in your feedbacks on any changes / additions / any other methods. I hope sincerely that this helps someone out there, who has started with DUOS, just like me.
Vaidy
While all examples I looked into for DUOS concepts were dealing with adding fields to a Header side of GP Forms (Customer Maintenance, for instance), I was curious about knowing how to implement DUOS on a Scrolling window of a GP form. I worked on a very simple yet good sample Modifier/VBA/DUOS Customization which involved GL Transaction Entry form.
I wanted to add one more Description field to the GL Journal Entry Account Lines. So, in addition to Distribution Reference and Account Description, one more Description called Account Line Comments needed to be added.
Below is the complete approach:
1. GL Transaction Entry was modified to add the new field called "Line Comment" and a label "Acct. Line Comment" on the Header part.
2. I decided to use both "Journal Entry" and "Sequence Line" as the combination for the DUOS ObjectID.
3. To add the "Sequence Line" to the VBA Editor, it has to be made available on the UI. Once it is added to VBA editor, it can be pulled out of the UI as it was, originally.
4. Coding was done once the fields "Journal Entry", "Sequence Line" and the newly added "Line Comment" were added to the VBA Editor.
For more detailed explanation on this sample, you can download this Document, Sample Modifier VBA DUOS Customization - GL Trx Entry.pdf.
Any development without small gaps is not quite possible. I did trap certain simple issues in my unit testing.
1. Always, for any scrolling window, there should be a value (such as Sequence Line, Line Sequence Number, etc.) that is setup as the unique value to identify one specific line record. In my sample customization, I had to consider the Journal Entry from Header and Sequence Line from Scrolling Window as a combination to uniquely identify my Line Record.
2. Whenever a user enters a Account Line, a DUOS record will be created on SY90000 with an ObjectID @^ (in my sample). For instance, my first Account Line for a Journal Entry #3255 will be 3255@^100.
3. We have a function in VBA DUOS called DUOSObjects.Remove(), for which the parameter will be the ObejctID. So whenever a User deletes an Account Line, the corresponding DUOS record should be deleted. We do not have any automatic handler which will delete the DUOS record when an Account Line is deleted.
4. There is no event in VBA, something line LineDelete, which will handle a Scrolling Window Line Delete event.
I thought I was in a fix. I then asked this to David (Thanks David, for pointing this out to me). He instructed me to write the code on the Line Delete message "Are you sure you want to delete?". This message is shown whenever we delete any Scrolling Window Line. That's what I did and with some more code additions.
You can get this Sample Customization package from this link: GLJournalDUOSSample.package.
Do go thru' this sample code and send in your feedbacks on any changes / additions / any other methods. I hope sincerely that this helps someone out there, who has started with DUOS, just like me.
Vaidy
Sunday, January 25, 2009
How to call a Report Writer report in GP - David
Terrific article. Thanks David, in the first place, to lend this information on How to Call a Report Writer report in GP. This is just among the others of what a Developer would have dreamed of knowing.
I used to check it out by starting a Dex Script Log, whenever I run a report. This would have not just the "run report" statement but also the entire script calls. But this piece of precious information from David, would ease our task out.
I am certainly delighted to read this article, and if anyone out there has not yet gone thru' this one, do it without fail.
Vaidy
Article on VSTools Form Behavior - MDaoud
This one is a good article on how to place your VSTools form to the center of the screen, with respect to the Screen Resolution.
Pretty good R&D, I would say. As not many would have this on mind when they develop a Customization till they actually get a feedback from the clients. And as Daoud mentioned on this article, the clients will certainly be so annoyed if they see a GP screen showing up in the Top-Left corner all of a sudden.
A must-to-refer article from Mohammad Daoud.
Vaidy
GP Articles Raining across Blogosphere
I have been out of action for nearly 10 days, due to some very important personal reasons & also some gruelling job commitments. And what I found, after I checked the GP Blogosphere today, is the raining Articles.
It's as much as 50+ articles, 50+ valuable articles for sure. I admit, I should not have left my notebook. :-
Well, I just hope sincerely that I can catch up with what is happening as on today. I also have drafted some really interesting tasks for publishing. Planning to get these things posted in another 2 days.
Until next post...
Vaidy
Friday, January 16, 2009
Leveraging Dynamics GP Expertise - Mark Polino
Mark Polino explains us, why Dynamics GP Expertise is needed and why we should stay focussed when things are not in good shape at this moment. Read this article: Need to Leverage Microsoft Dynamics GP Expertise. To say the least, I gained a bit more confidence once I read this article, as a GP Consultant with 5+ years experience. It's not just that. We get a sense of satisfaction that we are an Expert on a product which has got a good reputation among the Global Users.
I am just a little late in commenting on this article, but always, better late than never.
Vaidy
Thursday, January 15, 2009
eConnect - Configured Identity Incorrect Error
This one is another important eConnect Error message and its details. Thanks to the ZSL GP Team, for providing me the details to publish.
The team developed an Integration Tool for GP using eConnect v10.0. The tool was tested rigorously on a typical local environment and an apparently fresh environment. The tool was then released to the client and the installation did not have any issues.
Finally, the tool was given a test run on Client's environment and the following error message took everyone by surprise:

Cause: The User Account, with which the eConnect was installed on the DB Server, got removed from the Domain, by the time they installed this tool. And apparently, the eConnect COM+ Component Services Identity was configured with the same User Account. Now whenever the Integration Tool interacts with eConnect COM Service, the Deleted User Account would have been referred to and since it does not exist, this error was thrown up.
Solution: The eConnect COM Service Identity was set to the option "System Account". This would instruct the Integration Tool to use the current logged on User Account.
Now, I have some important points to highlight/stress based on this:
1. You can always stress the System Admin of any Client, to create one Domain User Account specifically for eConnect COM Service, with the credentials never expire and does not require any Password Enforcement. This is mandatory, as most of the times, the Integration on a Client's place is going to be scheduled to run when there is no OR less activities on GP, some time in the midnight or some time in the weekend. In such cases, this would become a serious trouble to the clients, when they come back the next working day to find that the transactions had never been integrated for some issue which is irrelevant to them. When I say irrelevant, it is irrelevant to GP data. The System Admin need not reveal this to anyone else in his/her organization or even to you, once this is deployed. If anything to be troubleshot, you can always reconfigure the identity for that moment, and then ask the System Admin to reset it with the previous User Account.
2. If the System Admin does not approve of creating a new and separate User Account, then setup the eConnect COM Service Identity to "System Account".
3. For your sake, please handle all possible Exceptions while developing a tool or a product which uses eConnect. I have seen people handle one common Exception, which is System.Exception. But this does not cover all exceptions. There are more: eConnect Exception, SQL Exception, and much more. Well, I am not a .NET developer by profile, so please do correct me if I have mentioned something wrong. But I do know that there are more specific exceptions (what we call Inner Exceptions) that need to be handled. So be more attentive and handle those exceptions.
4. When you document the Installation & Configuration of your tool, never miss detailing the eConnect Runtime Installation and Configuration, if the client do not have it running already. If the client do have it already, just mention that this needs to be confirmed. This does not take any special effort, but certainly have a clear cut instruction for both you and the client, for reference in future.
Vaidy
Tuesday, January 13, 2009
Altering a Table From Dex
I got an interesting query from a guy on how to alter a table without using any SQL statements from within Dexterity.
As per the Dexterity Guide, a table cannot be altered from within Dexterity, that means only thru' Dex coding. If you’re converting tables stored in a SQL database, you must use pass-through SQL to perform the conversion.
Having said that, we can do it from Dexterity but calling a SQL Stored Procedure which will contain the necessary SQL Statements for that table alteration.
1. Make the necessary table changes on Dex Dictionary.
2. Write a SQL Stored Procedure like below (The SQL SP is written on SQL Server 2005 DB and uses SQL 2005 syntaxes):
/* Drop the SP if it exists */
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Custom_Tables_Alteration]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[Custom_Tables_Alteration]
GO
/* Create the SP */
CREATE PROCEDURE Custom_Tables_Alteration
AS
BEGIN
/* This statement will move the records from the actual table that needs to be altered to a Temp Table */
SELECT * INTO [custom_table_temp] FROM [custom_table]
/* This statement will truncate the table before it is being altered and then alter the table based on the changes that you have done on Dex Dictionary */
TRUNCATE TABLE [custom_table]
ALTER TABLE [custom_table]... ... ...
/* This statement will move back the records from the Temp table to the Altered Table */
INSERT INTO [custom_table]([field1], [field2], ..., [fieldn]) SELECT [field1], [field2], ..., [fieldn] FROM [custom_table_temp]
/* This statement will grant the necessary privileges to the DYNGRP Role */
GRANT SELECT, INSERT, UPDATE, DELETE ON [custom_table] TO DYNGRP
END
GO
3. Write a Dex Trigger on a Successful Company Login, to execute this SQL Stored Procedure, by using call sproc statement. NOTE: This has to be executed only if the user logged on is SA. And we should design this in such a way that it does not alter the table as and when you log on to GP as SA. That's very important. Well, there are so many ways using which we can validate this.
So that's it. We are good to go with the new table definition.
Now the points that we need to understand:
1. We should take care of the relevant Table Alteration on both Dex Dictionary and SQL.
2. We should take care of the removed fields and the data which were stored on that field before this alteration.
3. If a field is added to the table and is defined as NOT NULL, then we should make sure that we include that field on the INSERT INTO ... SELECT ... statement in the above stored procedure and assign a relevant value (either a ZERO or an empty string '', not NULL STRING).
This is just one way of doing the Table Alterations. There can be more. I would update this post as and when I get something better than this.
Vaidy
Thursday, January 8, 2009
Accounting Coach - Place to Learn Accounting
I got to know about a Website which teaches Account Principles, called Accounting Coach, from the Top 50 Accounting Blogs listed in Biz.Edu. Thanks to Bill Kennedy's article on his blog Energized Accounting.
You would be amazed and feel happy that you finally found a better place to kick-start and enhance your Accounting Skills. And the reason I am posting this on GP Blog: You will be a better consultant if and only if you know the functionality of an ERP product along with Accounting Principles.
Take a glance at it. I am sure you will not be left dissatisfied.
Vaidy
You would be amazed and feel happy that you finally found a better place to kick-start and enhance your Accounting Skills. And the reason I am posting this on GP Blog: You will be a better consultant if and only if you know the functionality of an ERP product along with Accounting Principles.
Take a glance at it. I am sure you will not be left dissatisfied.
Vaidy
Wednesday, January 7, 2009
Njevity's Blog
It happened today that I got acquainted to this blog, Njevity's Blog. And I should admit that it has caught my interest to read more from.
Articles are not just about GP or any of the MS Dynamics product, but whatever comes to Njevity's mind, I believe. For instance, I read this article: Sometimes I Get My Best Ideas In The Shower. Hey come on, that's for me as well. I am sure there could be many more out there. Sometimes even blogs can take a break and take us through some fun moments.
There are these MS Dynamics related articles with very important and rare informations on this blog. Do read it. You will agree with my words.
Vaidy
Articles are not just about GP or any of the MS Dynamics product, but whatever comes to Njevity's mind, I believe. For instance, I read this article: Sometimes I Get My Best Ideas In The Shower. Hey come on, that's for me as well. I am sure there could be many more out there. Sometimes even blogs can take a break and take us through some fun moments.
There are these MS Dynamics related articles with very important and rare informations on this blog. Do read it. You will agree with my words.
Vaidy
Next Document Number Retrieval
This has always been a question from many developers. How to retrieve the Next [Document] Number programmatically and how to increment it?
GP does the following whenever a Document Number is retrieved from Next [Document] Number setup and eventually create/leave that document:
1. Retrieve the Next [Document] Number from the respective module setup table.
2. Increment the Next [Document] Number on that table, immediately after it populates the number on the respective form.
3. While saving the document/posting, it does not do anything to the Next [Document] Number on the setup table. It's just a document posting process.
4. While deleting the record, it decrements the Next [Document] Number, if and only if, no other user has created another document using the immediate Next [Document] Number, or even opened the respective Document Entry form to create one. If there is any other User Activity on this, GP does not do any kind of decrement.
Having said that, the consequent queries from all developers/consultants would be:
1. What will happen to the stranded [Document] Numbers?
2. Can we reuse it?
3. Can we instruct GP to reuse it?
To my knowledge, the answers are:
1. Stranded [Document] Numbers are left stranded, as far as GP is concerned.
2. YES, we can reuse it, but the Users should know which number, to their best knowledge, is stranded. The numbers can be reused, once we setup an option, kind of "Override Document Number" or something like that.
3. We currently do not have some kind of setup which will manage the Stranded Numbers and automatically instruct GP to reuse them. It would be great to know any such 3rd party product in the market, but at least, GP does not have it as an in-built functionality.
I believe, I have been correct on the above explanations to the best of my knowledge. In case, there is anything that is not correct, something to add to or something which I am still not aware of, please do update me.
Vaidy
Tuesday, January 6, 2009
Around GP Blogosphere - Till 6th Jan 2009
So here we go. Some of the best articles in the past 4 days have been consolidated. Hope this be a Articles' Map. :-)
Developing For Dynamics GP:
David Musgrave is back. And back with an important information. In the article, Background Process is Running: Exit Aborted Message, he explains why this error is thrown and what's the solution for that. Must read for VSTools Developers.
DynamicsAccounting.net:
Mark has lead us to two very important, on its own scope, articles.
1. Backup, Backup, Backup: This is a very critical thing that we need to cultivate as a Consultant/IT Admin/Technical Guy/Whoever who is suppose to take care of GP data. I had already posted an article on this separately, but I do not mind stressing this again. MUST READ.
2. Lock the Taskbar: It's a very common thing that we would have seen whenever we launch GP. And the explanation that Mark has given, is pretty simple and not-more-than-two-steps solution. I had a kind of doubt and Mariano has clarified that. You can find our discussion as comments on that article. Do have a look at it.
Dynamics Confessor:
After a brief gap, Leslie came back with two articles.
1. Dex.ini Switches - Part II: This is the second and last article in the short series. Sharing her experience, she has given us a comprehensive list of INI switches. I have never seen or heard about most of these switches. I am sure we are going to learn more and more from Leslie.
2. Year End Closing Retained Earnings Validation: Well, I have not even crossed 1/2 the functionality, but striving hard to do so. This article did lend some insight to me, to learn this concept. Read it, you would certainly learn something.
GP2TheMax:
Frank Hamelly had posted this article quite sometime back. But this is surely very informative. Read his article, Copying Reports in Report Writer. Must Read for GP Developers.
MSDynamicsWorld:
Mark has posted this timely article. New Year Resolutions, well GP Resolutions. He's at his best to explain possibly the much needed resolutions for all GP guys out in this world. Check this article, you would agree: Make Life Easier for Yourself with Microsoft Dynamics GP 10: Five Habits to Break in the New Year.
Ross Business Solutions:
Couple of articles on SSRS and Business Portal, comes with simple narrative and necessary information. You can't help than craving for more information.
The Dynamics GP Blogster:
Mariano, as always, shares tremendous amount of knowledge on various topics.
1. Incorrect EIC Value in 2009 US Payroll Tax Update: Very critical information with a fix. I took some days to understand the concept and the impact of the issue. But I finally did. Don't miss this, especially those who are GP Customers/GP Consultants. I would suggest to GP Developers as well, to know about this, so they don't get deviated if faced.
2. SOP Requested Ship Date Roll Down - Part II: Second and last in this series. This article explains you about rolling down the SOP Requested Ship Date to SOP Lines automatically. Uses VBA/SQL Procedure.
3. How to search for a text within a SQL Server trigger, stored procedure, or UDF: A Must Read for Developers.
Victoria Yudin:
I have been learning a lot of GP's functionality with real-time Accounting Knowledge. Thanks to Victoria. She has been amazing when explaining the concepts with such an ease and simplicity. This article, Using Credit Cards to pay Vendors in Dynamics GP, is of tremendous value. MUST READ for those who would seriously like to learn GP & Functionality.
Well, that's all I could consolidate for now and I sincerely hope someone gets benefited from this.
Vaidy
Developing For Dynamics GP:
David Musgrave is back. And back with an important information. In the article, Background Process is Running: Exit Aborted Message, he explains why this error is thrown and what's the solution for that. Must read for VSTools Developers.
DynamicsAccounting.net:
Mark has lead us to two very important, on its own scope, articles.
1. Backup, Backup, Backup: This is a very critical thing that we need to cultivate as a Consultant/IT Admin/Technical Guy/Whoever who is suppose to take care of GP data. I had already posted an article on this separately, but I do not mind stressing this again. MUST READ.
2. Lock the Taskbar: It's a very common thing that we would have seen whenever we launch GP. And the explanation that Mark has given, is pretty simple and not-more-than-two-steps solution. I had a kind of doubt and Mariano has clarified that. You can find our discussion as comments on that article. Do have a look at it.
Dynamics Confessor:
After a brief gap, Leslie came back with two articles.
1. Dex.ini Switches - Part II: This is the second and last article in the short series. Sharing her experience, she has given us a comprehensive list of INI switches. I have never seen or heard about most of these switches. I am sure we are going to learn more and more from Leslie.
2. Year End Closing Retained Earnings Validation: Well, I have not even crossed 1/2 the functionality, but striving hard to do so. This article did lend some insight to me, to learn this concept. Read it, you would certainly learn something.
GP2TheMax:
Frank Hamelly had posted this article quite sometime back. But this is surely very informative. Read his article, Copying Reports in Report Writer. Must Read for GP Developers.
MSDynamicsWorld:
Mark has posted this timely article. New Year Resolutions, well GP Resolutions. He's at his best to explain possibly the much needed resolutions for all GP guys out in this world. Check this article, you would agree: Make Life Easier for Yourself with Microsoft Dynamics GP 10: Five Habits to Break in the New Year.
Ross Business Solutions:
Couple of articles on SSRS and Business Portal, comes with simple narrative and necessary information. You can't help than craving for more information.
The Dynamics GP Blogster:
Mariano, as always, shares tremendous amount of knowledge on various topics.
1. Incorrect EIC Value in 2009 US Payroll Tax Update: Very critical information with a fix. I took some days to understand the concept and the impact of the issue. But I finally did. Don't miss this, especially those who are GP Customers/GP Consultants. I would suggest to GP Developers as well, to know about this, so they don't get deviated if faced.
2. SOP Requested Ship Date Roll Down - Part II: Second and last in this series. This article explains you about rolling down the SOP Requested Ship Date to SOP Lines automatically. Uses VBA/SQL Procedure.
3. How to search for a text within a SQL Server trigger, stored procedure, or UDF: A Must Read for Developers.
Victoria Yudin:
I have been learning a lot of GP's functionality with real-time Accounting Knowledge. Thanks to Victoria. She has been amazing when explaining the concepts with such an ease and simplicity. This article, Using Credit Cards to pay Vendors in Dynamics GP, is of tremendous value. MUST READ for those who would seriously like to learn GP & Functionality.
Well, that's all I could consolidate for now and I sincerely hope someone gets benefited from this.
Vaidy
Monday, January 5, 2009
Articles Consolidation from across GP Blogosphere
I am sure this would be useful to all those who would like to read all important GP articles from our GP Blogosphere.
Do expect effectively two articles in a week on my blog, which will lead you to all the GP articles, briefing on each article and a short explanation on what I perceived from those articles.
Vaidy
Do expect effectively two articles in a week on my blog, which will lead you to all the GP articles, briefing on each article and a short explanation on what I perceived from those articles.
Vaidy
A Harsh Reality - Importance of Backup - Mark
Very hard lesson, indeed. Mark gives us a very harsh reality to know and stresses the importance of taking a working backup of GP Data.
Yeah, it is not just taking a backup. It is also imperative to confirm the backup set, that we have taken, actually works. Read his article: Backup, Backup, Backup.
Please remember: Taking Backup Set of GP Data is very very important. Even more important is to test it whether it is safe and working.
Vaidy
Yeah, it is not just taking a backup. It is also imperative to confirm the backup set, that we have taken, actually works. Read his article: Backup, Backup, Backup.
Please remember: Taking Backup Set of GP Data is very very important. Even more important is to test it whether it is safe and working.
Vaidy
Sunday, January 4, 2009
Rolling Down SOP Requested Ship Date on SOP Lines - Mariano
The short and informative series gets completed with the second article from Mariano.
The approach explained in the first article on this series, How to roll down SOP's Requested Ship Date ... Part I, is a SQL trigger which will do the trick whenever we enter a Requested Ship Date in the SOP Date Expansion Form.
The approach explained in the second article on this series, How to roll down SOP's Requested Ship Date ... Part II, is a combination of VBA and SQL Procedure. It also stresses the advantages in using a VBA based Customization.
This is just another simple and good example of how we can utilize the technical flexibility that GP provides.
Take a look at these articles, sure it will add our skills.
Vaidy
The approach explained in the first article on this series, How to roll down SOP's Requested Ship Date ... Part I, is a SQL trigger which will do the trick whenever we enter a Requested Ship Date in the SOP Date Expansion Form.
The approach explained in the second article on this series, How to roll down SOP's Requested Ship Date ... Part II, is a combination of VBA and SQL Procedure. It also stresses the advantages in using a VBA based Customization.
This is just another simple and good example of how we can utilize the technical flexibility that GP provides.
Take a look at these articles, sure it will add our skills.
Vaidy
Saturday, January 3, 2009
eConnect Admin Error
This eConnect error was a menace couple of weeks back for me and the team. The team had installed eConnect on GP Server and the runtime on one of the client machine. We somehow got convinced that we followed the correct procedures.
When we started using the web application, which calls eConnect API for certain integration, we received this error message:

We tried all possible steps and searched for a solution on the GP forums.
This is what we finally got to know, on our own: This error will be thrown, if we do not have the same version on both GP Server and Workstations/Web Server.
For instance, if the GP server eConnect version is 9.0.4.0, then the same version should be installed on Workstations/Web Server. In our case, it was this mismatch: 9.0.4.0 on GP Server Vs 9.0.2.0 on Web Server. The point I wanted to stress is: It is not just the Major Version Number that is critical. It is very critical to have the same Minor Version Number and also the subsequent numbers.
This is not the only reason for this error. There is one more reason for this error: If there is NO eConnect RUNTIME installed on Workstations/Web Server.
So if anyone face this error message, make sure that:
1. You have installed eConnect Runtime on Workstations/Web Server.
2. You have installed the same version on both ends.
Vaidy
Friday, January 2, 2009
Payables Return Transactions - Victoria
I could read this article only today. This article is of tremendous value for us. We don't get to see such articles always, which explain the concepts with such simplicity and completeness and makes sure that it enhances our knowledge.
I would recommend everyone to read Victoria's article, Payables Return Transactions in Dynamics GP.
Vaidy
Checkboxes & VBA
This one is quite interesting. This could be something very trivial, but I would like to share this information.
I added a Checkbox on a Smartlist lookup using Modifier. Two functionalities with respect to this new checkbox:
1. This option should be selected by Default when we open the lookup.
2. Based on this value (selected/de-selected), the records should be refilled on the scrolling grid.
I was able to achieve the second one, by adding my code inside the validation in VBA:
If <WindowName>.<Checkbox>.Value = True Then
{My Code}
Else
{My Code}
End if
But for the first one, I tried the statement:
<WindowName>.<CheckBox>.Value = True
This never worked. I was quite confused, since the same statement worked on a validation but NOT WORKED on assignment. I checked back the VBA Manual and found that, for checkboxes we need to use either a number 1 (Select) or number 0 (De-select). So ideally, my statement should have been:
<WindowName>.<CheckBox>.Value = 1
Well, that did the trick and below is the conclusion:
To check whether a Checkbox is selected or not, you can write a code to check whether the value of that Checkbox is TRUE or FALSE. But, to select or de-select a Checkbox programmatically, you must assign either a number 1 or a number 0.
Vaidy
I added a Checkbox on a Smartlist lookup using Modifier. Two functionalities with respect to this new checkbox:
1. This option should be selected by Default when we open the lookup.
2. Based on this value (selected/de-selected), the records should be refilled on the scrolling grid.
I was able to achieve the second one, by adding my code inside the validation in VBA:
If <WindowName>.<Checkbox>.Value = True Then
{My Code}
Else
{My Code}
End if
But for the first one, I tried the statement:
<WindowName>.<CheckBox>.Value = True
This never worked. I was quite confused, since the same statement worked on a validation but NOT WORKED on assignment. I checked back the VBA Manual and found that, for checkboxes we need to use either a number 1 (Select) or number 0 (De-select). So ideally, my statement should have been:
<WindowName>.<CheckBox>.Value = 1
Well, that did the trick and below is the conclusion:
To check whether a Checkbox is selected or not, you can write a code to check whether the value of that Checkbox is TRUE or FALSE. But, to select or de-select a Checkbox programmatically, you must assign either a number 1 or a number 0.
Vaidy
Subscribe to:
Posts (Atom)