Condividi tramite


Dynamics GP Developer Insights: Web Client Window Ribbon - Part 1

Rushi Patel - Click for blog homepageHey, I am Rushi Patel. I am a software developer working on the Microsoft Dynamics GP team in Fargo the last 3 years. I like to spend my time with my family, watching movies and cricket.

At Microsoft, I have worked on Office Accounting and Dynamics GP Workflow prior to my current project – the GP web client. I mostly worked on the UI features of web client before I started working on the Window Ribbon feature. Window Ribbons, as the name implies, appears to be a purely UI concept. That’s true, however there are many dependencies to make Window Ribbons render on web client such as sanScript code and Dexterity support/enhancements that will be explained in depth in this series of articles. 

Note: Click on the images for larger versions.


Introduction

Are most of you aware that the Dynamics GP desktop client already has a Ribbon rendered on its list pages?

The web client will have a similar Ribbon with the same features rendered on its window. All non-modal windows by default will have a Window Ribbon displayed when they are rendered in Dynamics GP web client.

Default Ribbon Rule

There are hundreds of windows that require a Window Ribbon on the Dynamics GP web client. Instead of creating a Window Ribbon definition for each of those windows separately (which is not only time consuming but also a maintenance challenge), we designed a set of  default Window Ribbon rules that will be applied to each window that requires a Window Ribbon on the Dynamics GP web client. Here are some of those rules:

Rule 1: Ribbon Groups

A Window Ribbon must have predefined groups in the following order and Window Ribbon groups will be displayed only if items exist for that group.

  • Actions
  • Form level menus
  • Additional
  • GoTo
  • File
  • Help

Rule 2: Action Group

All Push Buttons and Button Drop Lists (BDL) in control area (except for a few that belong to an exception list) must be part of Actions Window Ribbon Group.

Some Push Buttons (e.g. field “Ok Button”) if exist in footer of the window should go in to Actions Window Ribbon Group.

Rule 3: Form level menus

Form-level menus are used to add menu items that are specific to a single form. They are created using the form definition window.

Each form level menu will have respective Window Ribbon group when rendered on web client window.

Rule 4: Additional menu

There is a built-in command list (cmdListFormTriggers) that gets rendered as a “Additional” menu on Dexterity window when a form is registered with a trigger (e.g. Trigger_RegisterForm()).

The Additional menu, if it exists on a Dexterity window, must be displayed as the Additional Window Ribbon group on web client window.

Rule 5: GoTo Group

If a “GoTo” button drop list exists in the control area, make it a GoTo Window Ribbon group on the web client window.

Rule 6: Built-in Commands

Several built-in commands are already defined in Dexterity, and can be used in your application. These commands provide access to system-level features, such as the print, print setup, help, copy/paste etc.

The Print (cmdPrint) and Print Setup (cmdPrintSetup) commands from File built-in command will be part of File Window Ribbon group on web client window.

The Help Window Ribbon group on web client window will display the Help menu commands (cmdHelpContents, cmdHelpOnHelp etc).

Additionally, the Window Note will be part of the Help Ribbon group if that button exists in the footer of the window.

To be continued next week.... in this post.

Rushi Patel

For other posts in this series go to: https://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/developer+insights/

Comments

  • Anonymous
    May 14, 2012
    Posting by Mark Polino at DynamicAccounting.net msdynamicsgp.blogspot.com.au/.../dynamics-gp-developer-insights-web.html

  • Anonymous
    May 14, 2012
    Posting by Janakiram at Dynamics Blogger dynamicsblogger.com/dynamics-gp-developer-insights-web-client-window-ribbon-part-1

  • Anonymous
    May 14, 2012
    Posting from Vaidy Mohan at Dynamics GP - Learn & Discuss vaidymohan.com/.../dynamics-gp-developer-insight-web-client-window-ribbon

  • Anonymous
    May 29, 2012
    Posting from Errol Schoenfish at Inside Dynamics GP blogs.msdn.com/.../dynamics-gp-2013-developer-insights-web-client-ribbon-part-1-and-2.aspx

  • Anonymous
    October 07, 2012
    How to give the path to appear in web client for a specific form of 3rd party dictionary.

  • Anonymous
    October 07, 2012
    Hi Gururaj.K Just add your 3rd pary window to the menu navigation exactly like you do for the normal Dexterity client. The steps to add commands onto the menu are in the Integration Guide manual and the sample applications. David

  • Anonymous
    November 23, 2012
    There are some issues if I have alternate window and I am using our own field and data type for the button. For example I have "Unmark Selected" button and it is my own field and data type but on web client it's not showing up in the ribbon. If I change the data type for this field to existing GP global data type it does show up. What do I need to do fix this?

  • Anonymous
    November 25, 2012
    Hi Jasbir Do you have a custom form procedure InitializeWindowRibbon? This is discussed in the second post: blogs.msdn.com/.../dynamics-gp-developer-insights-web-client-window-ribbon-part-2.aspx David

  • Anonymous
    November 26, 2012
    Hi David, I created the custom procedure and i am able to add my button to the ribbon in web client. Thanks for pointing me to the right direction. I was thinking that any button on the control area will automatically move to ribbon in webclient. Is this not correct? Do we need to write code for each form where we have our own buttons (Alternate windows)? Also is there any way to do this one global procedure rather writing InitializeWindowRibbon on each wndow? Thanks

  • Anonymous
    November 26, 2012
    Jasbir, in the Integration Guide - Web Client section, it talks about the process of adding your buttons to the ribbon.  If you have multiple forms created the way you describe, then you should create a global procedure that you can call to add those items for all of your forms. That way, you won't have to make those code changes on each form. Again...load the latest GP 12 Dexterity release and take a look at the integration guide. Thanks! Aaron