Archive for February, 2009

Advanced Lot Management Part 2: Setup

Friday, February 27th, 2009

Merit Solutions Advanced Lot Management (ALM) is the application that allows efficient control of lot tracked materials (raw or finished goods) within Microsoft Dynamics GP (versions 9 and 10).

The system requirements correspond to requirements of Microsoft Dynamics GP. ALM version 9 requires GP’s Manufacturing module to run, while ALM version 10 does not require Manufacturing module.

ALM is focused on two pieces of information: Lot Status and Expiration Date. These information affect when and how material can be used.

Setup

Setting up ALM properly will allow easy and full use of all its functionalities. Adding necessary window shortcuts should always be users’ first choice. Just repeat some steps already seen during installation:

1. Login to GP as “sa” user, or corresponding power user.

2. When Microsoft Dynamics GP loads, open Shortcuts menu and select Add > Add Window

 Dynamics GP Add Window

3. On Add Window Shortcut screen, expand Advanced Lot Management item > expand 3rd Party item > select windows that should be added. For starters, I suggest the following:

- Merit Registration
- Advanced Lot Management Configuration
- Lot Category Setup
- QA User Setup

To be able to work properly enter registration keys to Merit Registration window, acquired from Merit Solutions, Inc.

Advanced Lot Management Registration

Enabling the module switches ALM and from that point on all Lot Tracked items will depend on it.

1. Open Advanced Lot Management Configuration window.

2. On Advanced Lot Management Configuration window select Enable Module for <company name>

3. On Advanced Lot Management Configuration window select option to True.

4. On Advanced Lot Management Configuration window > click Save button

Advanced Lot Management Configuration 

ALM will not be working properly if Lot Category Setup is not properly defined. The window is GP native and can be opened from: Microsoft Dynamics GP > Tools > Setup > Inventory > Lot Category. The first attribute should be pre-populated and should contain value Lot Status. The field is not editable.

Dynamics GP Lot Category Setup

As long as ALM is enabled for the company Attribute 1, cant’ be changed. And whatever value is entered to these attributes fields, will appear as labels on Lot Attribute Maintenance window:

Lot Attribute Maintenance

Keep in mind, as soon as ALM is enabled for the company, on Sales Invoicing and Sales Order Processing Options window, option “Auto-Assign Lot Numbers” will be unchecked. The idea is to make user manually select Lot Number in order to fulfill an Invoice or a Sales Order. If user tries to select the option, as long as ALM is enabled, message will appear:

Dynamics GP Lot Controls Enabled

Localization and Globalization in C#: Localization

Wednesday, February 25th, 2009

.NET has an elegant way of localizing your applications. If you want to write your code well, you will store all the messages, titles, captions and other strings in the appropriate resource files (.resx) in your application. Your application has to have a main resource file (or files), for example MeritResources.resx. You can store all the default strings and other resources there. If you want to localize your application to, for example “fr-FR” culture, you can simply create another resource file and name it MeritResources.fr-FR.resx. It is simple as that.

To explain how your application is localized we need to explain how .NET framework decides where to extract the appropriate strings and other resources from. When selecting localization resource, .NET framework is using the CultureInfo.CurrentUICulture property. If your CurrentUICulture is “de-AT” .NET framework will first look for the MeritResources.de-AT.resx resource file. If this file is missing, it will look for the next best thing and it is the MeritResources.de.resx file. If this resource file is also missing, default resource file named MeritResources.resx will be used.

So, if you are using the most common version of Windows (Englis version), you are stuck with the “en-US” culture; hence, your application will always use your English resource. In order to mitigate this, you can perform a little trick at your application startup. You can mislead your application to look in your CurrentCulture property instead of CurrentUICulture property. At the application startup, you can write something like this:

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

This way, your application will use your globalization setting instead of your default windows localization setting. Your application will be localized to your globalization language and culture. If you change the Regional Settings in your Control Panel, your application language and culture will change automatically.

Localization and Globalization in C#: Introduction

Wednesday, February 25th, 2009

.NET is equipped with powerful, yet simple, application localization and globalization mechanisms.

Localization is the process of translating resources to a specific culture. On the other hand, globalization is the process of designing applications that can adapt to different cultures. Basically, when you select the application language, you need to specify the culture the selected language is used in. For example, English language is used in United States, Canada and Great Britain, among other countries. Although, people in these countries are using the same language, their cultures are different (i.e.: date and time format differences, currency is different, etc.). There is a standard for designating the cultures. A list of currently available cultures can be found here.

In the heart of localization and globalization mechanism in the .NET framework is the System.Globalization namespace. In the heart of this namespace is the CultureInfo class with its static properties. Some of those properties are InvariantCulture, CurrentCulture, CurrentUICulture, etc.

CurrentCulture property has a lot to do with the Regional Settings in your Control Panel. Basically, Regional Settings in your Control Panel is the place where can you set how you want your date, time, currency and other stuff to appear in your Windows. CurentCulture static property reflects that setting.

On the other hand, CurrrentUICulture is in connection with the Windows itself. Most of us are using English version of Windows, to be more precise “en-US” version of Windows, but there are other Windows localizations available on the market. CurrentUICulture property reflects the Windows language.

In another words, if your Windows is in English (all messages, titles, captions, etc.), your CutureInfo.CurrentUICulture is “en-US”. This setting has nothing to do with the Regional Settings you have set in your Control Panel. Your CutlureInfo.CurrentCulture can be set to “fr-FR” on the “en-US” Windows. This setting will affect only date, time, currency and other display formats.

Utilizing Outlook 2007 for Schedules and Customizing Views

Wednesday, February 25th, 2009

In order to have a better overview of what the other colleagues are working on, Merit Solutions uses Outlook 2007 All Day Appointment entries to keep track of this. Each colleague enters a project name as an appointment subject, preceded by the priority of that project. For example, “1. Writing blog about Outlook 2007″.

However, I have noticed that occasionally the synchronization of our calendars may take a significant amount of time – which can result with a look at inaccurate information. I found out that keeping the calendars I’m interested in checked for viewing loads them much quicker – probably because it synchronizes with Exchange upon start.

Furthermore, if we customize the view, it seems to be even quicker. Here’s how:

  1. Open Calendar, View > Current View > Define Views
  2. Click New
  3. Name it Schedule, and select Day/Week/Month type and All Calendar folders; click OK
  4. Click Filter button
  5. Click Advanced tab
  6. Click Field button and under All Appointment fields, select All day events, condition equals, Value Yes
  7. Click Add to List and OK
  8. Click OK
  9. Click Apply View
  10. From People’s Calendars, select those you’d like to see
  11. Click on the arrow pointing to left in order to overlap the calendars (this is not necessary, although I use it all the time; you can still view the calendars side by side)

That’s it. It will load and display only all day events.

Setting Up Email Alerts in SQL 2005

Wednesday, February 25th, 2009

A while ago I was assisting a client who ran into a problem with extreme ‘tempdb’ database growth – over 80 Gb. The only remedy for this is to determine what exactly is causing this growth and to deal with the cause. This may sometimes be difficult, but a couple of neat scripts can help this. However, before that, we should capture the moment of database growth, to help us identify the problem.

Email alert functionality is probably one of the most underused functionalities SQL server has. It is easy to use and configure:

1. Make sure that SQL Server Agent is up and running.

2. Under SQL Server Agent, right click on Alerts and select New Alert…

3. In the Name field, type in something like tempdb over 40GB. Make sure that Enable is checked.

4. From Type, select SQL Server performance condition alert.

5. Under Object drop down list, select :D atabases.

6. Under Counter, select Data File(s) Size(s) (KB).

7. Under Instance, select tempdb.

8. Under Alert if counter, select rises above.

9. In Value field, type in 41943040 (this is for 40 GB, change as needed).

New Email Alert SQL 2005

10. Click Response page (upper left).

11. Make sure to have only Notify Operators checked.

12. Click New Operator button.

13. In Name field, type in Send an email.

14. In the Email name field, type in the email address you want to send the email to.

15. Click OK. Window closes.

16. Operator is displayed in the operator list. Select it and check E-mail field.

Email Alert SQL 2005

 

17. Click Options page.

18. Configure Delay between responses.

19. Click OK button.

20. Repeat steps 3-19 to create another alert for Log File(s) Size(s) (KB) – see step 6.

Then, make sure the SQL Agent has its mail profile defined:

1. Right click on SQL Server Agent, select Properties.

2. Select Alert System.

3. Make sure that Enable mail profile is checked and that Mail system is SQLMail and the Mail profile is defined. You can test this by clicking Test button. If there aren’t any profiles defined, you have to configure them.

SQLMail uses one of the existing account profiles. If not already configured, maybe you would like to create a separate account just for this, configure Outlook on that machine and then configure SQL Server Agent. This is the account FROM which alert emails will be sent from.

You can play around with this in order to use different objects and counters, but the principle is the same.

Note: You can configure SQL Server Agent to auto start (it is not auto started by default). This service is required for sending emails.

 

Advanced Lot Management Part 1: Installation

Wednesday, February 25th, 2009

Merit Solutions Advanced Lot Management (ALM) is the application that allows efficient control of lot tracked materials (raw or finished goods) within Microsoft Dynamics GP (versions 9 and 10).

The system requirements correspond to requirements of Microsoft Dynamics GP. ALM version 9 requires GP’s Manufacturing module to run, while ALM version 10 does not require Manufacturing module.

ALM is focused on two pieces of information: Lot Status and Expiration Date. These information affect when and how material can be used.

Installation:

Like the rest of Merit Solutions applications, the installation of Advanced Lot Management (ALM) application is simple and quick:

1. Copy the 3037MS.cnk file into the Microsoft Dynamics GP installation folder.

2. Launch Microsoft Dynamics GP and click “Yes” when prompted to accept new code.

This way, the software component has been installed to Microsoft Dynamics GP, creating corresponding dictionary file

ALM Dynamics GP Dictionary File

as well as entry to Dynamics.set file. 

Dynamics.set File

3. Login to GP as “sa” user, or corresponding power user.

4. When Microsoft Dynamics GP loads, open Shortcuts menu and select Add > Add Window

Microsoft Dynamics GP Add Window

5. On Add Window Shortcut screen, expand Advanced Lot Management item > expand 3rd Party item > select “Install Adv Lot Mgmt”

6. On Add Window Shortcut screen, click Add button > click Done button

7. On Shortcuts bar, click “Install Adv Lot Mgmt”

8. Confirm that you have read the EULA > click “Yes”

Dynamics GP End User License Agreement

9.On the Install Adv Lot Mgmt window > click Install button

 Install Merit Solutions Advanced Lot Management

10. As soon as installation is complete, Status will change to Done > click OK button to close the window.

This way ALM tables MXLC0300, MXCFG700, MXLC1500, MX10021, MX10025, mxItemLo, mxLotM, MX10022, MX10023, MX10024, MX10020, MX10026, mxLots, MX10003, MX10005, MX10002, MX10001, MXLC4000, mxREG002, MXREG001, MXSFG700, MXSYS001, MX10004, MXALMHT, MX60101, MXLC0301 are added to the company database.

Users must be aware that installation steps 1 – 2 should be made for each client Microsoft Dynamics GP installation. Steps 3 – 10 should be made only once per company, regardless of number of clients.

 

Dynamics AX 2009 Vendors Journal Snap In

Tuesday, February 24th, 2009

Merit Solutions is proud to announce the development of the Vendors Journal Snap-In for Microsoft Dynamics AX 2009. A leading Microsoft Gold Certified IT consultancy and software development firm specializing in Microsoft Dynamics, Merit Solutions will launch the Dynamics AX 2009 Vendors Journal at Microsoft Convergence 2009 Booth #840.

Today’s business environment requires more on-site visits and time spent out of the office in meetings, and, therefore, off of the network. To optimize the time spent at these meetings, it is essential for your employees to know as much as possible about the history of the relationship and the status of all on-going transactions. Additionally, any commitments made during the meeting need to be accurately recorded for future reference.

The Vendors Journal Snap-In allows an employee to quickly view and capture a complete view of your organization’s relationship with a vendor from data within the Microsoft Dynamics AX 2009 system. This data is available to be taken to a meeting in order to view, add to or edit that data all while off of the network. Once back on the company network, the employee can easily update the changes into Microsoft Dynamics AX 2009. The ability to work offline provides your employees many benefits:

  • Increase the productivity of meetings, providing access to important information when needed.
  • Increase the accuracy of your records by updating them while offline.
  • Minimize duplication of effort and possible errors in data entry by uploading changes when online.

The Vendors Journal Snap-In functions by capturing the vendor information in a Microsoft Office InfoPath® 2007 form that pulls the data from Microsoft Dynamics AX 2009. This gives you the ability to capture critical data from the Microsoft Dynamics AX 2009 system and then refer to it from within the Office environment whenever offline. Make edits to the profile, and easily update all changes once back in the office.

Stop by Convergence Booth #840 to be one of the first to see the Vendors Journal in action. Be sure to ask our representatives how you can get a copy of the Vendors Journal FREE.

Contact Merit Solutions to request a meeting at Convergence.

About Merit Solutions

Founded in 1999, Merit Solutions, Inc. is a Microsoft Gold Certified Partner and a leading provider of Microsoft Dynamics and custom application solutions. Based in the western Chicago suburb of Wheaton, IL, Merit Solutions is a Certified Microsoft Solution Developer, offering Microsoft Dynamics AX Development services to companies in need of customized software.

http://www.meritsolutions.com/axsnap/

Layers in Dynamics AX 2009

Tuesday, February 24th, 2009

Layers are a hierarchy of levels in the application source code that enable you to make modifications and additions without interfering with the application objects in the next lower level. When you make an object modification on one level, the modification overshadows the object on a lower level. You could, for example, decide to add e-mail information to a standard form. The addition would be saved on your level only. The revised form replaces the standard form. However, you can always return to the original form at the next lower level by removing the new form.

Three customer groups have an interest in adding and modifying application objects:

  • Application developers who create the standard application.
  • Business partners.
  • End users of Microsoft Dynamics AX.

Here are descriptions of the application object layers in Microsoft Dynamics AX:

USR – User – Individual companies or companies within an enterprise can use this layer to make customizations unique to customer installations.

CUS – Customer – Companies and business partners can modify their installations and add the generic company-specific modifications to this layer.

VAR – Value-Added Reseller - Business partners use this layer, which has no business restrictions, to add any development done for their customers.

BUS – Business solution - Business partners develop and distribute vertical and horizontal solutions to other partners and customers.

SL1-SL3 – Certified solutions – Partners certified under the Microsoft Dynamics Industry Solution (MDIS) program distribute their solutions in the SL layers.

HFX – Hotfix – The Dynamics AX team delivers critical hotfixes using the HFX layer.

GLS – Global solution – The Dynamics AX Global Development and Localization team provides a set of GLS layers that contain country-specific functionality for regions in which Dynamics AX is released.

SYS – System – This is the lowest model element layer and the location of the standard Dynamics AX application. Only Microsoft has access to the element definitions at this layer.

Objects defined at higher levels of the stack override objects defined at lower levels of the stack. That means USR Layer Object will cast a shadow on the same object in, for example, the VAR Layer. Objects are stored in a separate file (*.aod) on each layer whenever they are saved from the MorphX development environment client. Element definitions are read from these files and dynamically composed by the Dynamics AX runtime. Object instances are created on either the server or the client based on the model element definition.

Task Recorder in Testing Dynamics AX 2009

Tuesday, February 24th, 2009

Generally speaking, ensuring that an ERP application works after it is deployed at a customer site is a very challenging endeavor. The base application, which is both broad and deep, has a multitude of modules, features and hardware configurations. ISVs extend or modify the base application to provide functionality for specific market needs and verticals. As a final point, implementation partners or customers do point customizations to address specific customer needs. This combination of base application, one to more ISV add-ons and point customizations that operate in a unique hardware and software configuration, is what businesses depend on for mission critical financial data and company operations.

There hasn’t been an easy way to provide QAs with means of testing. A limited amount of guidance or number of tools have been available. Although there are some announcements as this need has been recognized by the Visual Studio Team System group – in particular, that test case management and support for the manual tester will be available in ‘Rosario’ release of the product – right now there is a tool available directly in the product for Microsoft Dynamics AX 2009 – the Task Recorder.

Task Recorder is a tool that can log and create documentation and workflows of user activities in the application. The tool can output this transcript of activity in several Microsoft Office system formats. Task Recorder can be used as a powerful tool to help manual testing. Since it records screenshots and user actions into Word, a QA person that creates a test script could easily enhance the document with expected results and other notes to fully document the script.

Technical Difficulties

Thursday, February 19th, 2009

We apologize for the inconvenience, but we are experiencing technical difficulties on the Development Matters Blog. We are working dilligently to resolve the issues.

We appreciate your patience. Meanwhile, be sure to check out the Merit Matters Blog.