How to display EURO Currency symbol in Dynamics GP?

 

Looks an easy question right? Go to Microsoft Dynamics GP menu >> Tools >> Setup >> System >> Currency >> Currency expansion button and select the € symbol!

Well not that’s easy, if you had languages other that the English or your collation for SQL is not Latin you will get the below:

image

This symbol actually represents the Euro currency symbol, select this symbol and go try to print a report, you will find the symbol there:

image

Enjoy!


Regards,

Mohammad R. Daoud MVP – MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85
me@mohdaoud.com
www.mohdaoud.com

Field Level Security is not working!?!?

 

Few months back, one of my clients reported an issue with the field level security module in Dynamics GP that it only works for “Sa”, and this morning I noticed a question in the community reminding me to post about this issue! Below are the circumstances:

1. Only the sa user can see the module on GP even by giving the power user to other users.

2. The restrictions made on the field level security module are applied only to sa user.

Solution clearly shows that this is not an issue with the application and it is an issue with database privileges, simply go to “C:\Program Files\Microsoft Dynamics\GP2010\SQL\Util” and locate a script called “Grant.SQL”, the script will grant the DYNGRP role in SQL the access on all objects in the database and will resolve your issue, below the script if needed:

/*Count : 1 */

declare @cStatement varchar(255)

declare G_cursor CURSOR for select 'grant select,update,insert,delete on [' + convert(varchar(64),name) + '] to DYNGRP' from sysobjects
where (type = 'U' or type = 'V') and uid = 1

set nocount on
OPEN
G_cursor
FETCH NEXT FROM G_cursor INTO @cStatement
WHILE (@@FETCH_STATUS <> -1)
begin
EXEC
(@cStatement)
FETCH NEXT FROM G_cursor INTO @cStatement
end
DEALLOCATE
G_cursor

declare G_cursor CURSOR for select 'grant execute on [' + convert(varchar(64),name) + '] to DYNGRP' from sysobjects
where type = 'P'

set nocount on
OPEN
G_cursor
FETCH NEXT FROM G_cursor INTO @cStatement
WHILE (@@FETCH_STATUS <> -1)
begin
EXEC
(@cStatement)
FETCH NEXT FROM G_cursor INTO @cStatement
end
DEALLOCATE
G_cursor

Regards,

Mohammad R. Daoud MVP – MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85
me@mohdaoud.com
www.mohdaoud.com

Before Yearend Closing Check – Retained Earnings Exception Report

 

It has been long time since I been an active online community member as before, as the day has only 24 hours and is really not enough for 45 customers with many GP issues, offline contribution, online community activities, my masters , family, and fun time!!!

However, I am doing my best to recover and follow up with all these! As a start, I wanted to share one thing to be included in your checks before closing your financial year, if you have several currencies linked to your profit and loss accounts, you will need to make sure that all these currencies are linked to the retained earnings account, so the multicurrency management module can work this with no issues.

If you forgot to do so, the system will generate the accounts along with the currencies not linked to the Retained Earnings in a report called “Retained Earnings Exception Report” and the report will be printed automatically.

Nothing to be done from your side at this point as the system will affect the retained earnings with the amounts, but you need to validate your profit/loss balance and make sure that the RE account affected correctly.

Quoting from the multicurrency management printable manual:

If you haven’t assigned all currency IDs to your retained earnings account using the
Select Account Currencies window, the Multicurrency Retained Earnings Exception
Report also will be printed. This report displays all retained earnings accounts for
which multicurrency transactions were closed, even though the currency for the
multicurrency amounts wasn’t assigned to the retained earnings account. If you
didn’t intend to close these accounts to the retained earnings account, you can use
this report to determine the amounts you’ll need for correcting these transactions.

Hope that this helps.


Regards,

Mohammad R. Daoud MVP – MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85
me@mohdaoud.com
www.mohdaoud.com

Dynamics GP Workflow–Task Approval Page redirects to local server URL even if the used URL was published!!

 

Looks like the folk at Microsoft forgot to remove the local URL when redirecting from Task Approval page to the actual document behind “This workflow task applied to:”:

image

So if your workflow was published over the internet and you users tries to open a document, the system will redirect them to the local server and not to the website as shown below:

image

To workaround this, I had to use SharePoint Designer or any available scripting tool to change the redirection of the below hyperlink in (C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\Dynamics.Workflow.TaskApprovalPage.aspx):

<a href=”<%=this.DocumentUrl%>” id=”A1″ target=”_blank”
     title=”<%=this.WindowLinkTitle%>”>
     <%=this.DocumentUrlText%></a>.

Into the below modified one:    

<a href=”Dynamics.Workflow.GP.PurchaseOrderViewer.aspx?org=1&workflow=f01d80eb-d355-460c-8cb6-b2a2162a078b&PoNumber=<%=this.DocumentUrlText%>” id=”A1″ target=”_blank”
     title=”<%=this.WindowLinkTitle%>”>
     <%=this.DocumentUrlText%></a>.

And it worked Smile Hope that this helps.


Regards,

Mohammad R. Daoud MVP – MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85
me@mohdaoud.com
www.mohdaoud.com

Purchase Order Commitments View

I been working on a report where the customer requested to view the payment voucher with its corresponding commitments information and had a need to have Committed Amount, Actual Amount and Budget Amount, view below details all the needed information about this subject:

SELECT     ACTINDX, BUDGETAMT,  
ISNULL((SELECT SUM(DEBITAMT - CRDTAMNT) AS Actual FROM dbo.GL20000
WHERE (OPENYEAR = MAIN.YEAR1) AND (ACTINDX = MAIN.ACTINDX)), 0) AS ACTUAL,

ISNULL((SELECT SUM(DEBITAMT - CRDTAMNT) AS Actual FROM dbo.GL10001
WHERE (YEAR1 = MAIN.YEAR1) AND (ACTINDX = MAIN.ACTINDX)), 0) AS UNPOSTED,

ISNULL((SELECT SUM(Committed_Amount) FROM dbo.CPO10110 WHERE
(YEAR(REQDATE)= MAIN.YEAR1) AND (ACTINDX = MAIN.ACTINDX)), 0) AS Committed_Amount

FROM
(SELECT YEAR1, SUM(BUDGETAMT) AS BUDGETAMT, ACTINDX FROM dbo.GL00201 AS MASTER
WHERE
(BUDGETID = (SELECT TOP (1) BUDGETID FROM dbo.CPO40002
WHERE (YEAR1 = YEAR(GETDATE())))) GROUP BY ACTINDX, YEAR1) AS MAIN


Regards,

Mohammad R. Daoud MVP – MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85
me@mohdaoud.com
www.mohdaoud.com

Dynamics GP Data Level Security

 

I am getting requests about this subject almost from all my customers, therefore we at Dynamics Innovations have decided to develop an add-on for Dynamics GP to fulfill this request a month ago and my development team is currently in the process of developing the final touches on the utility.

The add-on is basically works on creating new Dynamic lookup that replaces traditional Dynamics GP lookups, the same lookup is used for all kind of data inside Dynamics GP and the rows are filter dynamically at runtime based on user privileges which to be setup by creating a specific view for each user/role per each business entity and the system will display only data from the linked view:

image

By achieving this, the system administrator will be able to customize columns names and columns to be displayed by using SQL views or direct SQL queries and rows to be displayed, and the lookup will automatically filter rows using “like/contains” operator based on the user selection and based on the clicked column:

image

The data load were enhanced to load data into .Net data grid that pulls rows from database directly into the user interface, 250,000 records were pulled within less than 7 seconds:

image

In addition to the lookup functionality we have developed a routine that validates user inputs inside GP texts and will make sure that the user selected data is a part of the user query:

image 

The development team is currently working to enhance the navigation buttons as it might violates our security setup.

We been able to automate all the above processes and hanged with a couple of issues, the first is reports and the other is the smart list, and been able to handle smart list security by linking users view with smart list views using smart list builder, so each user will have his smart list configured, not an easy task but doable.

The last part is our challenge for the time being, we cannot figure out a solution for filtering report writer reports using available algorithms, we tried to pass restrictions fields to the reports using VBA but this wasn’t a sustainable solution, we still didn’t give up but we might not be able have this done.


Regards,

Mohammad R. Daoud MVP – MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85
me@mohdaoud.com
www.mohdaoud.com

Dynamics GP Workflow Backup

 

It has been a very tough month, me and all my team which now are 12 consultants in Dynamics Innovations are overloaded with tasks and projects assignments, I am travelling to Jeddah – KSA the upcoming couple of hours and wanted to post some articles before it leave my remaining rooms of my mind!

I been in a situation the last couple of days were one of my customers had a failure in their portals server that holds the Workflow and the Business Portal, after performing the reinstallation and making sure that all systems are up and running, I realized that the workflow I have created for this clients is a tree with 7 levels in depth and 900 lines of conditions that checks the cost center for each purchase order line and redirect the purchase order for the concerned department manager for first line approval! In addition, imagine the documents that will be lost during the maintenance procedure and the documents that will be stuck between the workflow and Dynamics GP!

I been lucky having a planned backup performed on daily basis, where I been able to restore the backup and proceed with the production environment smoothly.

Worth to mention that when I used the backup set I had for the Workflow database it failed to launch the applications! I had to restore the entire web application from the SharePoint Central Administration portal to get this done.

I wanted to share the script I used to schedule the daily backup, it is basically a batch file that will be called by Windows Scheduler daily and will command the STSADM to perform a backup to specific folder, that will be automatically created based on the backup date, replace “<servername>” with your actual server name and “<port>” with your actual port:

@ECHO OFF
@SET STSADM=”c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm.exe”
for /F “tokens=1-4 delims=/- ” %%A in (‘date/T’) do set DATE=%%B%%C%%D
for /F “tokens=1-4 delims=:., ” %%a in (‘time/T’) do set TIME=%%a%%b%%c

echo Workflow Backup Operation Started….

%STSADM% -o backup -url http://<servername>:<port>/sites/DynamicsGPworkflow -filename “C:\WSS Backups\Daily Backups\Workflow\Workflow_%DATE%_%TIME%.dat”

echo Business Portal Backup Operation Started….

%STSADM% -o backup -url http://<servername>:<port> -filename “C:\WSS Backups\Daily Backups\Business Portal\BP_%DATE%_%TIME%.dat”

echo Farm Backup Operation Started….

MD “C:\WSS Backups\Daily Backups\Farm\FARM_%DATE%_%TIME%”
%STSADM% -o backup -directory “C:\WSS Backups\Daily Backups\Farm\FARM_%DATE%_%TIME%” -backupmethod full

:End

Paste this into NOTEPAD and save it with “.CMD” extension to be an executable package and schedule the run periodically.

Enjoy!

Regards,

Mohammad R. Daoud MVP – MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85
me@mohdaoud.com
www.mohdaoud.com