Page 1 of 18012345678910...2025303540...Last »

Microsoft Dynamics GP 2015 not showing Service Enabled Procedures

David Meego - Click for blog homepageIt has been a while since I last posted on the blog. I have been working flat out to finalize the GP Power Tools code and documentation. All I can say is that the Microsoft Dynamics GP community will be amazed with some of the new features and will love the improvements above and beyond the Support Debugging Tool. I will be starting a “What’s New” in GP Power Tools series of posts soon.

Anyhow, the subject of today’s post is an issue in Microsoft Dynamics GP 2015 that I discovered while testing the GP Power Tools code.

The Security Task Entry window can be used to add access rights for Service Enabled Procedures in any of the product dictionaries.  Just select the Security Task ID and then select the product, Type as Service Enabled Procedures and the series.

SecurityTaskEntry2Security Task Entry working

All seems working as expected…. until you create a modified forms dictionary for that product, by going into the Modifier. You don’t have to make any changes, the existence of the forms dictionary is all that is needed. Now the Service Enabled Procedures for that product no longer show up.

SecurityTaskEntry1
Security Task Entry no longer showing Service Enabled Procedures

As I have very similar code in the new Script Explorer window in GP Power Tools, I was seeing the same behaviour. This is what sparked the investigation into what was happening.

I tested the code that reads the dictionary and it is able to see the list of global procedures in the dictionary fine, but the check to see if the script is Service Enabled with the Script_GetSystemProperty() function fails to return the any data and so no scripts can be identified as Service Enabled.

I have reported this issue to Microsoft.  In the meantime, if you need to set security to Service Enabled Procedures, temporarily rename the custom forms dictionaries and re-launch Microsoft Dynamics GP.

David

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: 2015, Dynamics, GP, Microsoft Tagged: Application, Exception, GP 2015

Read more here:
Microsoft Dynamics GP 2015 not showing Service Enabled Procedures

June 30, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 2

"A SQL Server login already exists for . Delete the user and create a new user" error when switching a user ID from web client only to mixed…

I’m completing the deployment of Microsoft Dynamics GP 2013 R2’s Project Accounting and Time Entry approval workflow for a customer in Alabama who is currently deploying web client for extranet access (and timesheet entry) and desktop client for intranet access.

As a result, since time entry employees are remote, we decided to setup these user accounts as web client only. However, the customer wanted to provide an alternative to the web client in case it became unavailable. This meant that these users would needed the ability to access the Microsoft Dynamics GP desktop client via a Terminal Server provisioned (albeit temporarily) to support this goal.

The Problem

To meet this requirement, we needed to adjust the user accounts in Dynamics GP to also support SQL Server authentication (in addition to web client access), by deselecting the Web Client user only check mark and completing the SQL Login credentials information. Upon attempting to save the changes we received the following error:

A SQL Server login already exists for userID. Delete the user and create a new user.

As it so turns out with most application errors, you cannot just follow the instructions literally to fix the problem. In this case, we had more than 85 web client only user accounts created so “Delete the user and create a new user” wasn’t an option and I don’t know why I had a gut instinct this recommendation would not work anyways.

It also turns out that I tested this in Microsoft Dynamics GP 2015 and had no issues switching a user account from Web Client user only to a mixed mode access user account.

NOTE: “mixed mode access” user is a terminology I came up with to identify a Microsoft Dynamics GP user account with access capabilities from both the web client and desktop client.

The Solution

In troubleshooting this problem, the first thing is to focus on the first part of the error message, “A SQL Server login already exists”. If a login already exists on SQL Server, then it should be visible under Management Studio – bear in mind that each Dynamics GP user account was setup as a web client only account to begin with. In principle, there should be no SQL Server security principal for these type of accounts.

Management Studio did not show any account created for the Dynamics GP under the Security folder. So the next logical thing would be to run a statement to check for a SID for the account in question:

SELECT suser_sid(‘TheUserID’);

This statement returned an actual SID number (a long hexadecimal set of characters), confirming at least there was a corresponding SID for the account, even though we could not see the actual account in Management Studio.

Next was to verify then, what account was assigned to that SID. In order to do this, I ran the following SQL statement:

SELECT name FROM sys.server_principals where sid = (SELECT suser_sid(‘TheUserID’));

As it turned out, this statement returned no results. So here’s the conundrum… GP thinks there’s a SQL login for a user account that doesn’t really exists on SQL, but has a SID.

Now, because there wasn’t an actual SQL login for the user ID in question, I went ahead and setup a new SQL login with the user account by running the following statement:

sp_addlogin(‘TheUserID’, ‘somePassword’);

The statement was successful and I could now see the SQL login under the security folder.

The next thing was to then reset the Dynamics GP web client user flag and assign the SQL login to the user account:

UPDATE SY01400 SET WCUser = 0,  SQLLoginID = ‘TheUserID’ WHERE USERID = ‘TheUserID';

Since Microsoft Dynamics GP passwords are encrypted on SQL Server, you will now need to log into Dynamics GP, pull up the user account under the User Maintenance window, and change the password in the SQL login credentials section.


I cannot assess whether this is a bug or not, but suffice to say the same behavior is not present in GP 2015, so I must lean towards it being a bug.

I hope you find these troubleshooting steps useful.

Until next post!

MG.-
Mariano Gomez, MVP
Intelligent Partnerships, LLC
http://www.intelligentpartnerships.com/

Continued here:
"A SQL Server login already exists for . Delete the user and create a new user" error when switching a user ID from web client only to mixed…

May 29, 2015 · Mariano Gomez · No Comments
Tags: , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 246

Microsoft Convergence Atlanta 2015 (#CONV15) – Wrap Up

Hey, not that this concerns anyone, but finally here is the wrap up post for the Convergence 2015 event. It’s really been a busy couple of seasons for this writer (not that I’m complaining!), so I have had to opt for work instead of blogging which I’m sure you will understand as a reader.

Microsoft Convergence Atlanta 2015: GPPC PreGame

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 1

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 1 Continued

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 2

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 3

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 4

Other entries on the event, from my good friend David Musgrave:

#CONV15 – Convergence 2015 Atlanta – Day 0 – PreGame

#CONV15 – Convergence 2015 Atlanta – Day 1 – Opening Keynote

#CONV15 – Convergence 2015 Atlanta – Day 1 – Dynamics GP Session

#CONV15 – Convergence 2015 Atlanta – Day 1 – Continued

#CONV15 – Convergence 2015 Atlanta – Day 2

#CONV15 – Convergence 2015 Atlanta – Day 3

#CONV15 – Convergence 2015 Atlanta – Day 4

#CONV15 – Convergence 2015 Atlanta – Post Conference and Getting Home

At the time of this writing, I’m preparing myself for the GPUG Summit conference in Reno, Nevada. Things are continuing to be hectic

Until next post!

MG.-
Mariano Gomez, MVP
Intelligent Partnerships, LLC
http://www.intelligentpartnerships.com/

Read More:
Microsoft Convergence Atlanta 2015 (#CONV15) – Wrap Up

May 24, 2015 · Mariano Gomez · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 56

Security Views For Use In SmartList Designer: Security … – azurecurve

Security Views For Use In SmartList Designer: Series Index · Security Views For Use In SmartList Designer: User Access · SQL View To Select User, Company and Security Role Assignment · Using SmartList Designer To …

See the original article here:
Security Views For Use In SmartList Designer: Security … – azurecurve

May 22, 2015 · Ian Grieve · No Comments
Tags:  · Posted in: Blogs I Follow Total Views: 23

Using the Support Debugging Tool to create user accessible SQL Scripts – Part 3

David Meego - Click for blog homepageThis is the third and final article in the series, make sure you look at the previous articles before this one.

The previous articles can be found at:

Today’s article adds the final step by adding a method for a user to execute the code we have written so far without requiring access to any Support Debugging Tool windows.

The Runtime Execute window and SQL Execute windows are Advanced Mode features which makes them only available to users with access to the Administrator features via the security roles AND the system password (if used) AND SQL dbo or SysAdmin privileges. You would not want this sort of access to be given to the average user, so you can use the method in this article to provide access to the scripts we have written from an existing window.

Using the Automatic Debugger Mode we can create a non-logging trigger to call our scripts when an event occurs in the system. The event used can be any of the system events supported by Dexterity, such as opening or closing a window, moving focus in to or out of a field (with or without changing to the field), or clicking on a button. You can also create your own items on the Additional menu to trigger off.

For our example, we are going to use two methods; an additional menu and re-purposing the window print button on the Customer Maintenance window.

Part 3: Exposing the script to any user

The final step is to use Automatic Debugger Mode Setup to call our previously created Runtime Execute script.

  1. Open the Support Debugging Tool main window (Microsoft Dynamics GP >> Tools >> Support Debugging Tool or Ctrl-D).
  2. Open the Support Debugging Tool Setup window (Options >> Setup Automatic Debugger Mode).
  3. Enter the Trigger ID, Trigger Description as desired for menu based trigger.
  4. Check the Start Trigger Automatically on Login, Do not activate Logging Mode and Minimize Debugger Log Entries checkboxes.
  5. Select the Trigger Type: Add Form Menu, Trigger Event: Form Level, and Trigger Attach: After Menu Selected.
  6. On the Resource tab, select Product Name: Microsoft Dynamics GP, Form Name: RM_Customer_Maintenance, Menu Entry: Check and Update Hold, Accelerator Key: U.
    Trigger1
  7. On the Script tab, set Context: Microsoft Dynamics GP and the script to:
    out boolean OUT_Condition;
    local text MBS_Text_Field;
    local integer MBS_Dictionary;
    local integer MBS_Status;
    
    OUT_Condition = false;
    
    if isopen(form RM_Customer_Maintenance) then
    	OUT_Condition = true;
    
    	call with name "MBS_Script_Load_Dex" in dictionary 5261,
    		"DEMO1", MBS_Text_Field, MBS_Dictionary;
    
    	call with name "MBS_Runtime_Execute" in dictionary 5261,
    		MBS_Text_Field, MBS_Dictionary, MBS_Status;
    	if MBS_Status <> OKAY then
    		warning MBS_Text_Field;
    	end if;
    
    end if;
    

    Trigger2

  8. You can use the Helper Button at the bottom of the window to insert Helper Functions at the current cursor location for loading and executing the Dexterity Runtime Execute script. Variables needed will be automatically added to the top of the script.
  9. No changes needed on the Actions and Options tabs
  10. Click Save.
  11. Enter the Trigger ID, Trigger Description as desired for button based trigger.
  12. Check the Start Trigger Automatically on Login, Do not activate Logging Mode and Minimize Debugger Log Entries checkboxes.
  13. Select the Trigger Type: Focus Event, Trigger Event: Field Change, and Trigger Attach: Before Original.
  14. On the Resource tab, select Product Name: Microsoft Dynamics GP, Form Name: RM_Customer_Maintenance, Window: RM_Customer_Maintenance, Field Name: WindowPrint.
    Trigger3
  15. On the Script tab, set Context: Microsoft Dynamics GP and the script to:
    in string IN_OldValue;
    in string IN_NewValue;
    out boolean OUT_Condition;
    
    local text MBS_Text_Field;
    local integer MBS_Dictionary;
    local integer MBS_Status;
    
    OUT_Condition = false;
    
    if isopen(form RM_Customer_Maintenance) then
    	OUT_Condition = true;
    
    	call with name "MBS_Script_Load_Dex" in dictionary 5261,
    		"DEMO1", MBS_Text_Field, MBS_Dictionary;
    
    	call with name "MBS_Runtime_Execute" in dictionary 5261,
    		MBS_Text_Field, MBS_Dictionary, MBS_Status;
    	if MBS_Status <> OKAY then
    		warning MBS_Text_Field;
    	end if;
    
    end if;
    

    Trigger4

  16. You can use the Helper Button at the bottom of the window to insert Helper Functions at the current cursor location for loading and executing the Dexterity Runtime Execute script. Variables needed will be automatically added to the top of the script.
  17. On the Actions tab, check the Issue Reject Script checkbox to prevent the original button script from running after our trigger code finishes.
  18. No changes needed on Options tab.
  19. Click Save.

To automatically enable the triggers, just log in again to the company. To manually enable the triggers, from the Support Debugging Tool main window, select Turn On Automatic Debugger Mode >> Non Logging Automatic Start Only. To disable the triggers, from the Support Debugging Too main window, select Options >> Automatic Debugger Mode Status and then click Unregister >> Non Logging Triggers Only. To disable all triggers, use Unregister >> All Triggers, this is required if you want to open the Setup Automatic Debugger Mode window again.

Notes

  • Use the Automatic Debugger Mode Status window (Options >> Automatic Debugger Mode Status) to confirm that the triggers are registered and active.
  • Note that the target window must be closed and re-opened after the triggers are enabled before they will be active.
  • If re-purposing an existing button, you can use an ask() dialog to ask if you want the original purpose or the new purpose to execute. For the original purpose, exit the script with the variable OUT_Condition equal to false. For the new purpose, perform the desired actions and exit the script with the variable OUT_Condition equal to true and the action Issue Reject Script ticked.
  • If you are having problems getting the code to work, uncheck the Minimize Debugger Log Entries checkbox to get more information recorded in the Debugger__.log file.
  • It is possible to load and execute the SQL Execute scripts directly using the Dexterity trigger code and bypass Step 2 of this series using Runtime Execute, however this makes it harder to test the code as you will need to keep registering and unregistering the trigger.

Below is the Debugger Settings files with all the code for the examples in this series.

Please write feedback and comments below to let me know how you think you could use these methods in your systems.

Hope you found this series useful.

David

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: Development, Dexterity, Dynamics, GP, Microsoft, Products, SQL Server, Support Debugging Tool Tagged: Application, Dexterity, SDT, SQL, Support Debugging Tool

Originally posted here:
Using the Support Debugging Tool to create user accessible SQL Scripts – Part 3

May 18, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 58

Security Views For Use In SmartList Designer: User … – azurecurve

USRCLASS LEFT JOIN SY60100 AS [‘User-Company Access’] ON [‘User-Company Access’].USERID = [‘User Master’]. … SQL View To Select User, Company and Security Role Assignment · Security Views For Use In …

Excerpt from:
Security Views For Use In SmartList Designer: User … – azurecurve

May 15, 2015 · Ian Grieve · No Comments
Tags:  · Posted in: Blogs I Follow Total Views: 37

BlackBox – The First Dexterity Game

David Meego - Click for blog homepageIt has been many years since my BlackBox game got a mention and so I thought it was time to bring it up again.

I first wrote the game BlackBox for Dexterity in 1999 while I operated as Winthrop Dexterity Consultants. The game is based the original board game by Eric Solomon and was created with his kind permission.

The concept of the game is to find the location of a number of atoms hidden in a 8 by 8 grid.  Your only method of looking for the atoms is to “fire” beams into the grid from the edges of the grid and see if the beams are absorbed, reflected or deflected.

During my childhood, this was one of my favourite games and I had already written versions for the Apple //e, the Commodore Amiga, and the Sharp PC-E500 pocket computer. So, I thought why not create one using Dexterity.

Here is a screenshot of the game:

BlackBox1Screenshot of the BlackBox main game screen

When I first created the code it was hidden as an “Easter Egg” in products I was selling at the time. When I sold Omni Security and Omni Field Security to Great Plains (Microsoft) as Advanced Security and Field Level Security, I had to remove the BlackBox game from the code.

Later when I first developed the MBS Support Debugging Tool, it contained the BlackBox game. But it had to be removed when I finally got permission to release build 9 publically as the Support Debugging Tool.

While I was at Microsoft, I was not allowed to add the game to anything I developed, so it was released as a separate BlackBox product and for the last many years it has been available as a free download on the Winthrop Dexterity Consultants Downloads Page and Products Page.

So, if you want to try the game out, head over to the Winthrop Dexterity Consultants Products Page and download the BlackBox.zip file. It works with all versions of Microsoft Dynamics GP.

Once the chunk is installed, you will find the BlackBox menu option on the Tools >> Customize menu. If you add it to Shortcuts or Quick Links, it can be played on the Web Client as well.

For more information, here are some related links:

Please add your comments to say what you think of the game.

Enjoy

David

PS: Its Dexterity Product ID is 900, so that should give you an idea or how old it is. New Product IDs are in the high 7000’s.

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: Dexterity, Dynamics, Fun, GP, Microsoft Tagged: BlackBox, Dexterity, Fun, Game

See the article here:
BlackBox – The First Dexterity Game

April 13, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 57