Microsoft Product Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg
Showing posts with label SmartList and SmartList Builder. Show all posts
Showing posts with label SmartList and SmartList Builder. Show all posts

Thursday, 31 October 2013

SmartList Builder: Displaying Negative Amounts based on Document Type

Posted on 02:00 by Unknown
Here's a nugget I picked up at GPUG Summit 2013 Tampa by attending the BDA06 Going Deep with SmartList Builder (Complete survey) session hosted by Nicole Albertson from eOne Business Solutions.

Traditionally, whenever I needed to get, say, return document amounts or credit document amounts in general to show as negative in a SmartList, I would recur to the outdated method of setting up a calculated field based on a T-SQL CASE statement to take the document amount and multiply it by negative 1 (-1). The calculation looked something like this, in the case of a Return document in a Sales Transactions smart list:

Calculated Field for a Negative Value based on Document Type

This method has been used for several years now, but not without its flaws:

1. If you have a large data set, performance can be negatively impacted. Remember, the more calculations, the more pass through SQL that needs to be executed by SmartList Builder. This method in particular, seems fairly complex for a simple arithmetic operation.

2. In retrospect, this method is good if you have a fairly decent understanding of T-SQL, which puts you in the category of a power user or at least an entry level T-SQL developer. But what if you are just the average end-user? - no pun intended.

Simply put, there's got to be a better way, right?

As it turns out I can simply click on the Document Amount field, then click on the Field Options expansion button to open the Set Field Options window.

Set Field Options window

Once in the Set Field Options window, you just need to click on the Negative Values tab. You will then mark the Display as Negative Value based on Field check mark and choose the table and field that you will use as basis to flip the sign - in the case of a Sales Transaction, that would be the SOP Type field.

Negative Values tab on Set Field Options window

SmartList Builder is "smart" enough to determine the possible values for the field in question - in fact, Yes/No and List Valued fields are usually supported.

Once again, in the case of the SOP Type list valued field, you would select the Return document type as the option to display the document amount as negative.

How handy is this? And the best of all, it required zero code.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2010 R2, Dynamics GP 2013, Functionality, SmartList and SmartList Builder | No comments

Thursday, 5 September 2013

SmartList Designer: a nice addition to Microsoft Dynamics GP 2013 SP2

Posted on 12:12 by Unknown
12.00.1482 - the build number for Microsoft Dynamics GP SP2 - brought with it a new list of awesome enhancements. The SmartList reporting tool saw some big improvements with the addition the collapse/expand of the left navigation pane, and a splitter between the tree view and the list box control that displays the actual results. 

*Soapbox*
I have to say, I like the concept, but not the implementation as I believe Microsoft could have used the splitter code written with the Support Debugging Tool as a more elegant solution.
*End Soapbox*

However, the biggest improvement/addition to SmartList is the new SmarList Designer.

SmartList Designer

SmartList Designer allows you to create queries based on table definitions found in Microsoft Dynamics GP and any third party application. You can create a new SmartList or to create a new SmartList based on an existing SmartList. You also can modify the SmartList that you created using SmartList Designer.

I have to say, if you have had a number of SmartLists built with SmartList Builder, then using the SmartList Designer should be a piece of cake. I've found the user interface to be extremely intuitive and all the controls and navigation just seem to be in the right place.

Now, the one-million-and-one-dollar question...

How is this tool different or similar to SmartList Builder?

The similarities are obvious: they both allow you to create SmartLists from scratch based on any Dexterity dictionary table definition using a very intuitive UI. SmartList Designer however, goes a bit further and allows you to preview the data without even releasing the new list into production. If nothing else was provided, this would be the one feature to cherish. SmartList Designer also allows you to build SmartLists based on other SmartLists, a feature currently not available in SmartList Builder.

SmartList Builder allows you to access tables and views that aren't a part of a Dexterity dictionary, this is, tables and views created directly in the SQL Server company database. Of course, on of the advantages of this approach is being able to access data from other non-Microsoft Dynamics GP databases on your server. I also believe calculated fields in SmartList Builder are more powerful as you can access the wide array of functions provided by the version of Microsoft SQL Server you are running on. SmartList Designer, in turn, provides a preset number of commonly used (as in limited) functions catalogued as Arithmetic, Text, Date & Time, Math, and Aggregate.

I also like the slick the deployment method of SmartList Designer Smartlists: "OK and done!". SmartList Builder, in turn, has to push these to SmartList, which in turn reads the elements and convert them to an actual SmartList - a pseudo compilation, if you will.

To access SmartList Designer, click on the New button on SmartList's toolbar.

SmartList Builder

I invite you to weigh in on the new SmartList Designer. Tell me what you like or don't like and let me know if you consider it alternative to SmartList Builder.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, SmartList and SmartList Builder | No comments

Wednesday, 19 June 2013

How to do a "Save As" in SmartList Builder

Posted on 18:09 by Unknown
Ever wish you could do a "Save As" in SmartList Builder? Have you been working on a very complex SmartList and got to a point where things are working and now you need to make additional changes and you don't want to mess up the work you have done so far?

Just recently, I came across a request for being able to save a SmartList Builder smartlist under a different name - hence the "Save As" title. However, as you know SmartList Builder does not offer the ability to perform such operation out of the box. So here are some steps for you to do a "Save As" with Smartlist Builder:

1. Open SLB's Export Lists window and click on the list you would like to duplicate.
MSDGP | Tools | SmartList Builder | Export

Export Lists window
Enter or identify a path and file name for the list to be exported. Click the Export button when finished.

2. Edit the exported XML file with a text editor, for example Notepad. Search and replace all occurrences of the list ID in your file with the new name.

XML file edited in Notepad
Save the file when finished and exit the editor.

3. Open the SLB's Import Lists window and choose the file you previously exported, now containing the changes you made in step 2.

Import Lists window

Click the Import button to perform the actual import.

4. Return to SmartList Builder to verify the imported record.

Duplicated List

It would be nice sometimes if some of these features were provided straight out of the box, but with some understanding of the functionality and little creativity almost anything can be accomplished.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in SmartList and SmartList Builder | No comments

Thursday, 23 May 2013

GP 2013: Why are my SmartLists not formatted when exported to Excel?

Posted on 06:43 by Unknown
Just recently I have been seeing a number of questions around Microsoft Dynamics GP 2013 Smartlist exports to Microsoft Office Excel not being formatted correctly - let's rephrase, the correct word to use here is "nicely". The issues usually involve leading zeroes being dropped (in some cases) and currency amounts being exported with 5 decimals and no currency symbol.

Exported Payables Transactions smart list


To make a one swipe statement here, this behavior IS NOT a product bug - despite the inconvenience.

With the introduction of the Web Client in Microsoft Dynamics GP 2013, the development team needed the ability improve the performance of Smartlist exports over the browser. To gain this dramatic improvement in performance (which is also experienced when using the rich client), exported Excel smart lists were voided of formatting.

There's an undocumented Dex.ini switch that provides limited formatting to Smartlists, thus maintaining export performance:

SmartlistEnhancedExcelExport=TRUE

You can find more information on this Dex.ini switch here:

Undocumented DEX.INI switch cuts down SmartList export times to Microsoft Office Excel

If you are not going to deploy Web Client, then this should be fine as a workaround. However, this switch causes the Web Client to error out with the following message when attempting to export to Excel:

Web Client error exporting smart list to Excel with SmartlistEnhancedExcelExport=TRUE 

So there you have it!

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in DEX.INI, Dynamics GP 2013, SmartList and SmartList Builder, Troubleshooting, Web Client | No comments

Tuesday, 7 May 2013

SmartList Builder: Sales Summary By Quarter

Posted on 07:24 by Unknown
Just recently I was approached by a partner wanting to leverage the info in the Receivables Summary table (RM00104) to build a smart list showing sales summary by quarter. The smart list needed to display the following information:

Customer Number    Year             Q1             Q2            Q3               Q4
AARONFIT0001       2013           0.00     4224.67          0.00     10277.37
AARONFIT0001       2014    21468.68           0.00          0.00               0.00
AARONFIT0001       2016    12164.15           0.00          0.00             0.00
AARONFIT0001       2017      4945.70     5809.40          0.00             0.00
AARONFIT0001       2018            0.00           0.00       877.50             0.00

As is customary with these types of request, the best bet is to create a SQL Server view that can then be leveraged from Smartlist Builder. By using a SQL Server view, we can leverage some cool T-SQL set-based data manipulation capabilities.

-- Created by Mariano Gomez, MVP
-- This code is licensed under the Creative Commons
-- Attribution-NonCommercial-ShareAlike 3.0 Unported License.
-- http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
--
SELECT custnmbr as [Customer Number], year1 as [Year], isnull([1], 0.00) as Q1, isnull([2], 0.00) as Q2, isnull([3], 0.00) as Q3, isnull([4], 0.00) as Q4
FROM (
SELECT custnmbr, year1, datepart(qq, datefromparts(year1, periodid, 1)) as qtr, smrysals
FROM RM00104
WHERE histtype = 1
) p
PIVOT
( SUM (smrysals) FOR qtr IN ([1], [2], [3], [4])
) AS pvt
GO

The above query, produces the results required, but what makes it happen is the beauty of the PIVOT operator. In addition, if you are using SQL Server 2012, you can take advantage of the DATEFROMPARTS function to simplify the conversion of the date parts (year1 and periodid) to a full date to then calculate the quarter with the DATEPART function.

If you are using SQL Server 2008 or earlier, the following query should do:

-- Created by Mariano Gomez, MVP
-- This code is licensed under the Creative Commons
-- Attribution-NonCommercial-ShareAlike 3.0 Unported License.
-- http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
--
SELECT custnmbr as [Customer Number], year1 as [Year], isnull([1], 0.00) as Q1, isnull([2], 0.00) as Q2, isnull([3], 0.00) as Q3, isnull([4], 0.00) as Q4
FROM (
SELECT custnmbr, year1, datepart(qq, CAST(CAST(year1 AS varchar) + '-' + CAST(periodid AS varchar) + '-' + CAST(1 AS varchar) AS DATETIME)) as qtr, smrysals
FROM RM00104
WHERE histtype = 1
) p
PIVOT
( SUM (smrysals)
FOR qtr IN ([1], [2], [3], [4])
) as pvt
GO

Note that the above version of the query uses the CAST function to determine the date.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in SmartList and SmartList Builder, SQL Scripting | No comments

Thursday, 6 December 2012

Resizing SmartList panes with the Support Debugging Tool

Posted on 07:14 by Unknown
I have a secret to tell...

At the past GPUG Summit in Seattle, I presented a session,  ITP16 Advanced Microsoft Dynamics GP Administration with the Support Debugging Tool. The session concluded with a demo of the Splitter Control feature implemented with the all too popular Support Debugging Tool. The few individuals in attendance were very impressed, since SmartList resizing had always been a royal pain in the rear for them.

If you have been following the Developing for Dynamics GP blog lately, my dear friend and partner of many presentation battles, David Musgrave has now detailed the secrets of the Splitter Control and provides the code to implement it using the Support Debugging Tool.

SmartList with the Splitter Control (shown inside the red circle)

The Splitter Control uses some cool unsupported Dexterity features so please play with this stuff in a test environment. IF you find anything cool or uncool about it, and you would like to express your feelings, please add your comment to David's article:

Update: Resizing SmartList TreeView and ListView panes using the Support Debugging Tool

Finally, there's no similar control in Silverlight for this Dexterity feature so this will not work with the Microsoft Dynamics GP 2013 Web Client.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dexterity, SmartList and SmartList Builder, Support Debugging Tool | No comments

Monday, 24 October 2011

Copying Smartlists favorites from one user to another

Posted on 08:56 by Unknown
I get this question asked very often and sometimes have to dig up my notes on the subject, so I figured I would just post the SQL script that I use for this.

Smartlist favorites are traditionally stored in the ASIEXP81 table on a user-company basis. It's important to keep this in mind, as you can tailor this script to copy favorites from one user to another in the same company or the same user across various companies. However, this script replicates all favorites, across all companies for one user to another user.

USE DYNAMICS;
GO
-- remove any records for the destination user prior to synchronizing
DELETE FROM ASIEXP81 WHERE USERID = '<DestinationUserID>';

-- execute synchronization
INSERT INTO ASIEXP81
(ASI_Favorite_Dict_ID
,ASI_Favorite_Type
,ASI_Favorite_Save_Level
,CMPANYID
,USRCLASS
,USERID
,ASI_Favorite_Name
,ASI_Field_Dict_ID_1
,ASI_Field_Dict_ID_2
,ASI_Field_Dict_ID_3
,ASI_Field_Dict_ID_4
,ASI_Field_List_1
,ASI_Field_List_2
,ASI_Field_List_3
,ASI_Field_List_4
,ASI_Search_Type_1
,ASI_Search_Type_2
,ASI_Search_Type_3
,ASI_Search_Type_4
,ASI_Match_Case_1
,ASI_Match_Case_2
,ASI_Match_Case_3
,ASI_Match_Case_4
,ASI_Start_Account_Number_1_1
,ASI_Start_Account_Number_1_2
,ASI_Start_Account_Number_1_3
,ASI_Start_Account_Number_1_4
,ASI_Start_Account_Number_1_5
,ASI_Start_Account_Number_1_6
,ASI_Start_Account_Number_1_7
,ASI_Start_Account_Number_1_8
,ASI_Start_Account_Number_1_9
,ASI_Start_Account_Number_1_10
,ASI_Start_Account_Number_2_1
,ASI_Start_Account_Number_2_2
,ASI_Start_Account_Number_2_3
,ASI_Start_Account_Number_2_4
,ASI_Start_Account_Number_2_5
,ASI_Start_Account_Number_2_6
,ASI_Start_Account_Number_2_7
,ASI_Start_Account_Number_2_8
,ASI_Start_Account_Number_2_9
,ASI_Start_Account_Number_2_10
,ASI_Start_Account_Number_3_1
,ASI_Start_Account_Number_3_2
,ASI_Start_Account_Number_3_3
,ASI_Start_Account_Number_3_4
,ASI_Start_Account_Number_3_5
,ASI_Start_Account_Number_3_6
,ASI_Start_Account_Number_3_7
,ASI_Start_Account_Number_3_8
,ASI_Start_Account_Number_3_9
,ASI_Start_Account_Number_3_10
,ASI_Start_Account_Number_4_1
,ASI_Start_Account_Number_4_2
,ASI_Start_Account_Number_4_3
,ASI_Start_Account_Number_4_4
,ASI_Start_Account_Number_4_5
,ASI_Start_Account_Number_4_6
,ASI_Start_Account_Number_4_7
,ASI_Start_Account_Number_4_8
,ASI_Start_Account_Number_4_9
,ASI_Start_Account_Number_4_10
,ASI_Start_Date_Token_DDL_1
,ASI_Start_Date_Token_DDL_2
,ASI_Start_Date_Token_DDL_3
,ASI_Start_Date_Token_DDL_4
,ASI_Start_Date_1
,ASI_Start_Date_2
,ASI_Start_Date_3
,ASI_Start_Date_4
,ASI_Start_DDL_1
,ASI_Start_DDL_2
,ASI_Start_DDL_3
,ASI_Start_DDL_4
,ASI_String_Start_1
,ASI_String_Start_2
,ASI_String_Start_3
,ASI_String_Start_4
,ASI_End_Account_Number_1_1
,ASI_End_Account_Number_1_2
,ASI_End_Account_Number_1_3
,ASI_End_Account_Number_1_4
,ASI_End_Account_Number_1_5
,ASI_End_Account_Number_1_6
,ASI_End_Account_Number_1_7
,ASI_End_Account_Number_1_8
,ASI_End_Account_Number_1_9
,ASI_End_Account_Number_1_10
,ASI_End_Account_Number_2_1
,ASI_End_Account_Number_2_2
,ASI_End_Account_Number_2_3
,ASI_End_Account_Number_2_4
,ASI_End_Account_Number_2_5
,ASI_End_Account_Number_2_6
,ASI_End_Account_Number_2_7
,ASI_End_Account_Number_2_8
,ASI_End_Account_Number_2_9
,ASI_End_Account_Number_2_10
,ASI_End_Account_Number_3_1
,ASI_End_Account_Number_3_2
,ASI_End_Account_Number_3_3
,ASI_End_Account_Number_3_4
,ASI_End_Account_Number_3_5
,ASI_End_Account_Number_3_6
,ASI_End_Account_Number_3_7
,ASI_End_Account_Number_3_8
,ASI_End_Account_Number_3_9
,ASI_End_Account_Number_3_10
,ASI_End_Account_Number_4_1
,ASI_End_Account_Number_4_2
,ASI_End_Account_Number_4_3
,ASI_End_Account_Number_4_4
,ASI_End_Account_Number_4_5
,ASI_End_Account_Number_4_6
,ASI_End_Account_Number_4_7
,ASI_End_Account_Number_4_8
,ASI_End_Account_Number_4_9
,ASI_End_Account_Number_4_10
,ASI_End_Date_Token_DDL_1
,ASI_End_Date_Token_DDL_2
,ASI_End_Date_Token_DDL_3
,ASI_End_Date_Token_DDL_4
,ASI_End_Date_1
,ASI_End_Date_2
,ASI_End_Date_3
,ASI_End_Date_4
,ASI_End_DDL_1
,ASI_End_DDL_2
,ASI_End_DDL_3
,ASI_End_DDL_4
,ASI_String_End_1
,ASI_String_End_2
,ASI_String_End_3
,ASI_String_End_4
,ASI_Search_From_Str_1
,ASI_Search_From_Str_2
,ASI_Search_From_Str_3
,ASI_Search_From_Str_4
,ASI_Search_To_Str_1
,ASI_Search_To_Str_2
,ASI_Search_To_Str_3
,ASI_Search_To_Str_4
,ASI_Search_Logic_Type
,ASI_Max_Records
,ASI_Sort_Dict_ID
,ASI_Sort_Field
,ASI_Sort_Type
,ASI_Field_Comparison_1
,ASI_Field_Comparison_2
,ASI_Field_Comparison_3
,ASI_Field_Comparison_4
,ASI_Start_Comp_Field_ID_1
,ASI_Start_Comp_Field_ID_2
,ASI_Start_Comp_Field_ID_3
,ASI_Start_Comp_Field_ID_4
,ASI_Start_Comp_Field_Dic_1
,ASI_Start_Comp_Field_Dic_2
,ASI_Start_Comp_Field_Dic_3
,ASI_Start_Comp_Field_Dic_4
,ASI_End_Comp_Field_ID_1
,ASI_End_Comp_Field_ID_2
,ASI_End_Comp_Field_ID_3
,ASI_End_Comp_Field_ID_4
,ASI_End_Comp_Field_Dict_1
,ASI_End_Comp_Field_Dict_2
,ASI_End_Comp_Field_Dict_3
,ASI_End_Comp_Field_Dict_4)
SELECT ASI_Favorite_Dict_ID
,ASI_Favorite_Type
,ASI_Favorite_Save_Level
,CMPANYID
,USRCLASS
,'<DestinationUserID>'
,ASI_Favorite_Name
,ASI_Field_Dict_ID_1
,ASI_Field_Dict_ID_2
,ASI_Field_Dict_ID_3
,ASI_Field_Dict_ID_4
,ASI_Field_List_1
,ASI_Field_List_2
,ASI_Field_List_3
,ASI_Field_List_4
,ASI_Search_Type_1
,ASI_Search_Type_2
,ASI_Search_Type_3
,ASI_Search_Type_4
,ASI_Match_Case_1
,ASI_Match_Case_2
,ASI_Match_Case_3
,ASI_Match_Case_4
,ASI_Start_Account_Number_1_1
,ASI_Start_Account_Number_1_2
,ASI_Start_Account_Number_1_3
,ASI_Start_Account_Number_1_4
,ASI_Start_Account_Number_1_5
,ASI_Start_Account_Number_1_6
,ASI_Start_Account_Number_1_7
,ASI_Start_Account_Number_1_8
,ASI_Start_Account_Number_1_9
,ASI_Start_Account_Number_1_10
,ASI_Start_Account_Number_2_1
,ASI_Start_Account_Number_2_2
,ASI_Start_Account_Number_2_3
,ASI_Start_Account_Number_2_4
,ASI_Start_Account_Number_2_5
,ASI_Start_Account_Number_2_6
,ASI_Start_Account_Number_2_7
,ASI_Start_Account_Number_2_8
,ASI_Start_Account_Number_2_9
,ASI_Start_Account_Number_2_10
,ASI_Start_Account_Number_3_1
,ASI_Start_Account_Number_3_2
,ASI_Start_Account_Number_3_3
,ASI_Start_Account_Number_3_4
,ASI_Start_Account_Number_3_5
,ASI_Start_Account_Number_3_6
,ASI_Start_Account_Number_3_7
,ASI_Start_Account_Number_3_8
,ASI_Start_Account_Number_3_9
,ASI_Start_Account_Number_3_10
,ASI_Start_Account_Number_4_1
,ASI_Start_Account_Number_4_2
,ASI_Start_Account_Number_4_3
,ASI_Start_Account_Number_4_4
,ASI_Start_Account_Number_4_5
,ASI_Start_Account_Number_4_6
,ASI_Start_Account_Number_4_7
,ASI_Start_Account_Number_4_8
,ASI_Start_Account_Number_4_9
,ASI_Start_Account_Number_4_10
,ASI_Start_Date_Token_DDL_1
,ASI_Start_Date_Token_DDL_2
,ASI_Start_Date_Token_DDL_3
,ASI_Start_Date_Token_DDL_4
,ASI_Start_Date_1
,ASI_Start_Date_2
,ASI_Start_Date_3
,ASI_Start_Date_4
,ASI_Start_DDL_1
,ASI_Start_DDL_2
,ASI_Start_DDL_3
,ASI_Start_DDL_4
,ASI_String_Start_1
,ASI_String_Start_2
,ASI_String_Start_3
,ASI_String_Start_4
,ASI_End_Account_Number_1_1
,ASI_End_Account_Number_1_2
,ASI_End_Account_Number_1_3
,ASI_End_Account_Number_1_4
,ASI_End_Account_Number_1_5
,ASI_End_Account_Number_1_6
,ASI_End_Account_Number_1_7
,ASI_End_Account_Number_1_8
,ASI_End_Account_Number_1_9
,ASI_End_Account_Number_1_10
,ASI_End_Account_Number_2_1
,ASI_End_Account_Number_2_2
,ASI_End_Account_Number_2_3
,ASI_End_Account_Number_2_4
,ASI_End_Account_Number_2_5
,ASI_End_Account_Number_2_6
,ASI_End_Account_Number_2_7
,ASI_End_Account_Number_2_8
,ASI_End_Account_Number_2_9
,ASI_End_Account_Number_2_10
,ASI_End_Account_Number_3_1
,ASI_End_Account_Number_3_2
,ASI_End_Account_Number_3_3
,ASI_End_Account_Number_3_4
,ASI_End_Account_Number_3_5
,ASI_End_Account_Number_3_6
,ASI_End_Account_Number_3_7
,ASI_End_Account_Number_3_8
,ASI_End_Account_Number_3_9
,ASI_End_Account_Number_3_10
,ASI_End_Account_Number_4_1
,ASI_End_Account_Number_4_2
,ASI_End_Account_Number_4_3
,ASI_End_Account_Number_4_4
,ASI_End_Account_Number_4_5
,ASI_End_Account_Number_4_6
,ASI_End_Account_Number_4_7
,ASI_End_Account_Number_4_8
,ASI_End_Account_Number_4_9
,ASI_End_Account_Number_4_10
,ASI_End_Date_Token_DDL_1
,ASI_End_Date_Token_DDL_2
,ASI_End_Date_Token_DDL_3
,ASI_End_Date_Token_DDL_4
,ASI_End_Date_1
,ASI_End_Date_2
,ASI_End_Date_3
,ASI_End_Date_4
,ASI_End_DDL_1
,ASI_End_DDL_2
,ASI_End_DDL_3
,ASI_End_DDL_4
,ASI_String_End_1
,ASI_String_End_2
,ASI_String_End_3
,ASI_String_End_4
,ASI_Search_From_Str_1
,ASI_Search_From_Str_2
,ASI_Search_From_Str_3
,ASI_Search_From_Str_4
,ASI_Search_To_Str_1
,ASI_Search_To_Str_2
,ASI_Search_To_Str_3
,ASI_Search_To_Str_4
,ASI_Search_Logic_Type
,ASI_Max_Records
,ASI_Sort_Dict_ID
,ASI_Sort_Field
,ASI_Sort_Type
,ASI_Field_Comparison_1
,ASI_Field_Comparison_2
,ASI_Field_Comparison_3
,ASI_Field_Comparison_4
,ASI_Start_Comp_Field_ID_1
,ASI_Start_Comp_Field_ID_2
,ASI_Start_Comp_Field_ID_3
,ASI_Start_Comp_Field_ID_4
,ASI_Start_Comp_Field_Dic_1
,ASI_Start_Comp_Field_Dic_2
,ASI_Start_Comp_Field_Dic_3
,ASI_Start_Comp_Field_Dic_4
,ASI_End_Comp_Field_ID_1
,ASI_End_Comp_Field_ID_2
,ASI_End_Comp_Field_ID_3
,ASI_End_Comp_Field_ID_4
,ASI_End_Comp_Field_Dict_1
,ASI_End_Comp_Field_Dict_2
,ASI_End_Comp_Field_Dict_3
,ASI_End_Comp_Field_Dict_4
FROM ASIEXP81 WHERE USERID = '<SourceUserID>';

GO

In the above script <SourceUserID> and <DestinationUserID> are placeholders for the actual user IDs.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in SmartList and SmartList Builder, SQL Scripting | No comments

Thursday, 14 July 2011

SmartList Builder and creating Calculated Fields with Extender data

Posted on 12:44 by Unknown
Just recently, I ran into a case where the partner was creating a SmartList Builder calculated field using data from the RM Open table (RM20101) via an Left Join table operation with the Extender Window Field Numbers. In fact, this is a very typical scenario for a lot of deployments where Extender is used, especially when you cannot use the standard Extender functionality to integrate with out-of-the-box smartlists.

The original SLB calculated field look something like this:

Extender Calculated Field

When the SLB smartlist was deployed, a number of results came back as zero for the records where there was no entry in the Extender Window Field Numbers table, even when the Sales Amount and Current Trx Amount fields had a value in the RM Open File table.

Paying a bit more attention to the issue made me think of how LEFT OUTER JOINs are processed by the Microsoft SQL Server query engine. This is best illustrated with the following example:

RM Open Extender
Customer Number Document Number Sales Amount Current Transaction Amount PT UD Key PT UD Number Total
AARONFIT001 INV3223 200.00 40.00 INV3223 5.00 5.00
ADAMPARK001 INV1020 100.00 20.00 NULL NULL NULL

Note that if Extender data was not entered for INV1020, a left outer join query would produce a NULL value as a result of the join operation. To overcome this situation, we applied the T-SQL ISNULL() function to the Extender field in SmartList Builder. Since SmartList Builder uses pass-through SQL to build each portion of the SELECT statement used to retrieve the records, then this should work just fine. The final calculated field is as follows:


Remember, Extender is a valuable tool to capture additional data and enhances the value of SmartList Builder when combined together to deliver reports. Pay special attention when creating calculated fields that rely on information from Extender tables in left join scenarios.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Code, Extender, SmartList and SmartList Builder, SQL Scripting | No comments

Tuesday, 14 December 2010

SmartList Builder "Display as a negative value based on field" option not working as expected

Posted on 15:41 by Unknown
Just recently on a newsgroup forum, a partner brought up an issue affecting SmartList Builder. The partner had just recently upgraded the client from version 9 and was testing the Smartlists the customer had built prior to the upgrade to ensure they were still working as expected. In the partner's own words:

"It was working when we were on GP9, but now we're on GP2010 SP1 none of my fields set up with Negative Values are showing up with Negative Values. When I run the smartlist from the old GP9 server, amounts are showing negative amounts for Return documents. But when we run the smartlist on GP2010, the amounts are now positive amounts, and when I check the Set Field Options window, they are still set up to "Display as negative based on field" when SOP Type = Return."
In order to verify this I launched GP 2010 and recreated the SmartList mentioned above by the partner, setting the field option for the Document Amount to display a negative value based on a SOP Type of Return:

Set Field Options window
After saving the SmartList Builder option, I launched SmartList and had it build the newly created option. Once I checked the entry I had just created, effectively Returns were no displaying as negative.


BUG: Returns document amounts not displayed as negative
This bug seems to be confined to Microsoft Dynamics GP 2010 RTM (Build 11.00.1247) and Microsoft Dynamics GP 2010 SP1 (Build 11.00.1524). I could not replicate this issue for version 10.0 SP5 (10.00.1579) or earlier.

As a workaround, you can create a SmartList Builder calculated field to change the sign of the amount being displayed based on the SOP Type, as follows:

Add Calculated Field
NOTE: You can perform a similar CASE statement for any other SmartList you have created based on the field(s) criteria you are using to render the value a negative value.

This problem has been reported to Microsoft and a bug report is being written up to address the issue as of the publishing date of this article. For more information, contact Microsoft Dynamics GP Support.

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/
Read More
Posted in Dynamics GP 2010, From the Newsgroups, SmartList and SmartList Builder, Troubleshooting | No comments

Friday, 14 May 2010

Undocumented DEX.INI switch cuts down SmartList export times to Microsoft Office Excel

Posted on 09:21 by Unknown
Ok, so why the journalistic type nature of this article? Well, if like many users out there you tend to export tens of thousands of records out of Microsoft Dynamics GP using SmartList and you complain about the export's performance, then I guarantee you will want to read Patrick Roth's new article Smartlist: Exports slowly to Excel - Part 1.

In his article, Patrick details an undocumented DEX.INI setting that changes the way records are exported from SmartList into Microsoft Office Excel. The feature was added since release 10 and remains active in release 2010.

SmartlistEnhancedExcelExport=TRUE

Patrick further explains the feature trades formatting for performance, so if you are an Excel wizz just looking to get data out so you can do the rest on your own, then this switch is for you.

The DEX.INI is the Microsoft Dynamics GP defaults file containing setup and operating information about Microsoft Dynamics GP. Each line of information, or setting, in the file contains information such as where your files are located, and whether certain functions, such as displaying print dialog boxes, should be performed.

Additional Resources

DEX.INI on this blog - click here
DEX.INI at Dynamics Confessor blog - click here
DEX.INI at Developing for Dynamics GP blog - click here

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/
Read More
Posted in Around the Blogosphere, DEX.INI, Microsoft Office, SmartList and SmartList Builder | No comments
Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • Vote for your 2012 GPUG All Star
    The time has come again to vote for the next year's GPUG All Star awards. Surprisingly, I have been nominated to this award along with f...
  • The Dynamics GP Blogster's best articles of 2012
    It's that time of the year again! Time to say goodbye to the outgoing year, 2012, and receive the new one, 2013, making all sort of reso...
  • Year-to-year Inventory Margin Report using the PIVOT operator in T-SQL
    As of late I have been camping out at the SQL Developer Center's   Transact-SQL Forum  and I have to say, I have learned a great deal fr...
  • Extender Auto Open and Auto Close options not working in GP 2010
    Just recently, I came across an issue reported by a partner on Extender Auto Open and Auto Close options not working. Extender Auto Open a...
  • Adding Customer Item User Defined fields to SOP Invoice
    Just recently I ran across a request to add the Customer Item user defined fields to the Sales Blank Invoice Form report in Report Writer. A...
  • How to add a "Cover Letter" page to a Microsoft Dynamics GP Word Template document
    I wrote an article almost a year ago showing a simple technique to add a  Terms and Conditions page to a Microsoft Dynamics GP Word Templat...
  • What's new in Microsoft Dexterity 11.0
    The excitement around Microsoft Dynamics GP 2010 could not be any higher. Traffic on my site has doubled since I began releasing informatio...
  • New Article on MSDynamicsWorld: Do's and Don'ts of Microsoft Dynamics GP Forums
    Many of you know me as an avid forum contributor - I can usually be found on the Microsoft Dynamics GP Partner Online Technical Community ...
  • Management Reporter: Server Error in Application "MANAGEMENT REPORTER"
    Just recently, I fielded a question on an issue that was happening with a Management Reporter installation. The partner reported getting the...
  • Post through from Microsoft Dynamics GP Manufacturing
    As if Post Through wasn't hard enough to understand for the core financial and distribution modules (take a look at my previous article ...

Categories

  • Ad Campaigns
  • ADO
  • Adobe Acrobat
  • Analytical Accounting
  • Architecture
  • Around the Blogosphere
  • Article
  • Azure
  • Bank Reconciliation
  • Best of 2009
  • Best of Series
  • Best Practices
  • Bing Maps Enterprise
  • Books
  • Business Alerts
  • Business Analyzer
  • C#
  • Code
  • COM
  • Community
  • Compliance
  • Connect
  • Continuum
  • Convergence
  • Corporate Performance Management
  • CRM
  • Database Maintenance Utility
  • Decisions Conference
  • DEX.INI
  • DEXSQL
  • Dexterity
  • Discussions
  • Drill-Down Builder
  • Dynamics GP 10
  • Dynamics GP 11
  • Dynamics GP 12
  • Dynamics GP 2010
  • Dynamics GP 2010 R2
  • Dynamics GP 2013
  • eConnect
  • EFT
  • Electronic Banking
  • Encumbrance
  • Events
  • Extender
  • Field Services
  • Fixed Assets
  • Forecaster
  • From the Newsgroups
  • FRx
  • Functionality
  • General Ledger
  • GPUG
  • Home Page
  • Human Resources
  • Humor
  • IMHO
  • Installation
  • Integration
  • Integration Manager
  • Internet Explorer
  • Inventory
  • Kinnect
  • Maintenance
  • Management Reporter
  • Manufacturing
  • Menus for Visual Studio Tools
  • Microsoft Office
  • Modifier
  • Multicurrency Management
  • Multitenancy
  • MVP Summit
  • MVPs
  • Named Printers
  • Navigation Pane
  • Notes
  • ODBC
  • Office Web Components
  • OLE Container
  • Online Services
  • OpenXML
  • Partner Connections
  • Payables Management
  • Payroll
  • Performance
  • PO Commitments
  • Printer Compatibility
  • Product Feedback
  • Project Accounting
  • Purchasing
  • Receivables Management
  • RemoteApp
  • Report Writer
  • Reporting
  • Roadmap
  • SafePay
  • Sales Order Processing
  • Season Greetings
  • Security
  • Service Call Management
  • SharePoint
  • SmartList and SmartList Builder
  • SQL Reporting Services
  • SQL Scripting
  • SQL Server
  • Support Debugging Tool
  • Tax Updates
  • Technical Conference
  • The Partner Event
  • The Technology Corner
  • Training
  • Translation
  • Troubleshooting
  • Upgrades
  • VAT
  • VB.NET
  • VBA
  • VBScript
  • Visual Studio 2008
  • Visual Studio Tools
  • Web Client
  • Web Services
  • Windows 7
  • Windows 8
  • Word Templates
  • XBox
  • XBRL

Blog Archive

  • ▼  2013 (68)
    • ▼  December (2)
      • Visual Studio Tools for Microsoft Dynamics GP 2013...
      • Web Client Wednesday: Microsoft Dynamics GP on Azure
    • ►  November (8)
    • ►  October (5)
    • ►  September (5)
    • ►  August (3)
    • ►  July (8)
    • ►  June (5)
    • ►  May (5)
    • ►  April (2)
    • ►  March (11)
    • ►  February (6)
    • ►  January (8)
  • ►  2012 (101)
    • ►  December (8)
    • ►  November (6)
    • ►  October (15)
    • ►  September (16)
    • ►  August (9)
    • ►  July (4)
    • ►  June (4)
    • ►  May (6)
    • ►  April (4)
    • ►  March (11)
    • ►  February (4)
    • ►  January (14)
  • ►  2011 (158)
    • ►  December (7)
    • ►  November (17)
    • ►  October (7)
    • ►  September (8)
    • ►  August (8)
    • ►  July (12)
    • ►  June (12)
    • ►  May (13)
    • ►  April (23)
    • ►  March (21)
    • ►  February (10)
    • ►  January (20)
  • ►  2010 (168)
    • ►  December (15)
    • ►  November (11)
    • ►  October (12)
    • ►  September (24)
    • ►  August (13)
    • ►  July (12)
    • ►  June (8)
    • ►  May (17)
    • ►  April (14)
    • ►  March (9)
    • ►  February (16)
    • ►  January (17)
  • ►  2009 (5)
    • ►  December (5)
Powered by Blogger.

About Me

Unknown
View my complete profile