Showing posts with label Reporting Series. Show all posts
Showing posts with label Reporting Series. Show all posts

Thursday, August 24, 2017

Payment Document Management Link to General Ledger

For customers who are using Payment Document Management module, they will be in a big need to reconcile their post dated checks against general ledger, and this is almost requested by all our customers.

The below view works to get this resolved! It brings the journal entry number and GL details for each Post Date Document and for both Receivables and Payables checks.

 

/****** Object:  View [dbo].[DI_PDC_GL_Link]    Script Date: 8/24/2017 10:13:57 AM ******/
CREATE VIEW [dbo].[DI_PDC_GL_Link] AS -- Sales Checks (Checks Under Collections)

SELECT GL20000.JRNENTRY AS [Journal Number],
       GL20000.SEQNUMBR AS [GL Line Sequence Number],
       dbo.CM20600.CMXFRNUM AS [Transfer Number],
       dbo.RVLPD011.CMRecordNumber AS [Transfer Record Number],
       dbo.RVLPD011.REMITID AS [Remitance ID],
       dbo.RVLPD011.PMTDOCID AS [Payment Document],
       dbo.RVLPD011.ORICBOOK AS [From Checkbook],
       dbo.RVLPD011.DESCBOOK AS [To Checkbook],
       dbo.RVLPD011.CURNCYID AS Currency,
       dbo.RVLPD011.TRXDATE AS [Transaction Date],
       dbo.RVLPD011.NUMOFTRX AS [Number of Checks],
       dbo.RVLPD011.FUNCTAMT AS [Functional Total Amount],
       dbo.RVLPD011.ORIGAMT AS [Originating Total Amount],
       RVLPD013Sorted.RMDTYPAL AS [Document Type],
       RVLPD013Sorted.DOCNUMBR AS [Document Number],
       dbo.RVLPD009.CUSTNMBR AS [Customer Number],
       dbo.RVLPD009.CUSTNAME AS [Customer Name],
       dbo.RVLPD009.STMTNAME AS [Statement Name],
       dbo.RVLPD009.CHEKNMBR AS [Check Number],
       dbo.RVLPD009.CHEKBKID AS [Checkbook ID],
       dbo.RVLPD009.DOCDATE AS [Check Date],
       dbo.RVLPD009.DUEDATE AS [Due Date],
       RVLPD009.DOCAMNT AS [Check Amount],
       RVLPD013Sorted.Sequence
FROM dbo.CM20600
LEFT OUTER JOIN dbo.RVLPD011 ON dbo.CM20600.Xfr_Record_Number = dbo.RVLPD011.CMRecordNumber
LEFT OUTER JOIN
  (SELECT *,
          CASE
              WHEN ROW_NUMBER() OVER (Partition BY REMITID
                                      ORDER BY Dex_Row_ID) = 1 THEN 1
              ELSE (ROW_NUMBER() OVER (Partition BY REMITID
                                       ORDER BY Dex_Row_ID)*2+1)-2
          END * 16384 AS SEQUENCE
   FROM RVLPD013) RVLPD013Sorted ON dbo.RVLPD011.REMITID = RVLPD013Sorted.REMITID
LEFT OUTER JOIN dbo.RVLPD009 ON RVLPD013Sorted.DOCNUMBR = dbo.RVLPD009.DOCNUMBR
LEFT OUTER JOIN GL20000 ON ORCTRNUM = dbo.RVLPD011.REMITID
AND SOURCDOC = 'RMPDC'
AND RVLPD013Sorted.Sequence = SEQNUMBR
WHERE GL20000.JRNENTRY IS NOT NULL
UNION ALL --Purchasing Checks (Deferred Checks)

SELECT GL20000.JRNENTRY AS [Journal Number],
       GL20000.SEQNUMBR AS [GL Line Sequence Number],
       dbo.CM20600.CMXFRNUM AS [Transfer Number],
       dbo.RVLPD027.CMRecordNumber AS [Transfer Record Number],
       dbo.RVLPD027.REMITID AS [Remitance ID],
       dbo.RVLPD027.PMTDOCID AS [Payment Document],
       dbo.RVLPD027.ORICBOOK AS [From Checkbook],
       dbo.RVLPD027.DESCBOOK AS [To Checkbook],
       dbo.RVLPD027.CURNCYID AS Currency,
       dbo.RVLPD027.TRXDATE AS [Transaction Date],
       dbo.RVLPD027.NUMOFTRX AS [Number of Checks],
       dbo.RVLPD027.FUNCTAMT AS [Functional Total Amount],
       dbo.RVLPD027.ORIGAMT AS [Originating Total Amount],
       RVLPD029Sorted.DOCTYPE AS [Document Type],
       RVLPD029Sorted.DOCNUMBR AS [Document Number],
       RVLPD025.VENDORID AS [Vendor Number],
       RVLPD025.VENDNAME AS [Vendor Name],
       RVLPD025.VNDCHKNM AS [Statement Name],
       RVLPD025.CHEKNMBR AS [Check Number],
       RVLPD025.CHEKBKID AS [Checkbook ID],
       RVLPD025.DOCDATE AS [Check Date],
       RVLPD025.DUEDATE AS [Due Date],
       RVLPD025.DOCAMNT AS [Check Amount],
       RVLPD029Sorted.Sequence
FROM dbo.CM20600
LEFT OUTER JOIN dbo.RVLPD027 ON dbo.CM20600.Xfr_Record_Number = dbo.RVLPD027.CMRecordNumber
LEFT OUTER JOIN
  (SELECT *,
          CASE
              WHEN ROW_NUMBER() OVER (Partition BY REMITID
                                      ORDER BY Dex_Row_ID) = 1 THEN 1
              ELSE (ROW_NUMBER() OVER (Partition BY REMITID
                                       ORDER BY Dex_Row_ID)*2+1)-2
          END * 16384 AS SEQUENCE
   FROM RVLPD029) RVLPD029Sorted ON dbo.RVLPD027.REMITID = RVLPD029Sorted.REMITID
LEFT OUTER JOIN
  (SELECT *
   FROM RVLPD025
   UNION ALL SELECT *
   FROM RVLPD026) RVLPD025 ON RVLPD029Sorted.DOCNUMBR = RVLPD025.DOCNUMBR
LEFT OUTER JOIN GL20000 ON ORCTRNUM = dbo.RVLPD027.REMITID
AND SOURCDOC = 'PMPDC'
AND RVLPD029Sorted.Sequence = SEQNUMBR
WHERE GL20000.JRNENTRY IS NOT NULL

Hope that this helps.

Regards,

--
Mohammad R. Daoud MVP - MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85
me@mohdaoud.com
http://www.di.jo

Monday, November 25, 2013

Maps Reporting using SSRS

One of the challenges that I been trying to achieve is having my reports graphically designed to show data on “Maps” and that always been the toughest part customers might request.

Few days back I been researching with my colleagues on how the “Sales By States” KPI works in Dynamics GP that dynamically pulls the sales of each state on the US map and discovered the “Map” feature in SSRS!

We have been able to download the “.shp” file for Jordan map from one of the online free GIS providers and integrated this will SSRS, and then created the following report in SSRS in few minutes, saved this report in SSRS and been able to print this report from GP business analyzer:

image

This article is just to show that this is doable for users to give it a try.

Happy reporting!


Regards,

--
Mohammad R. Daoud MVP - MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85
me@mohdaoud.com
http://www.di.jo

Thursday, July 5, 2012

COPY Advanced Financials Reports Across Companies

 
Normally you will need to create your balance sheet and paste it over all your companies, script below will do the task for you:
 
Download Link:
 
Script:
--REPLACE Source with your source Company ID
--REPLACE Destination with your destination Company ID
INSERT INTO [Destination].DBO.AF40100 ([RPRTNAME],[REPORTID],[RPRTTYPE],[CLCFRPRT],[LSTMODIF],[NOTEINDX])  SELECT [RPRTNAME],[REPORTID],[RPRTTYPE],[CLCFRPRT],[LSTMODIF],[NOTEINDX] FROM [Source].DBO.AF40100
INSERT INTO [Destination].DBO.AF40101 ([REPORTID],[MNHDRCNT],[MNFTRCNT],[SHDRCNT],[SFTRCNT],[ROWCNT1],[COLCNT],[SHDRPCNT],[SFTRPCNT],[MNHDRFLG],[MNFTRFLG],[SHDRFLAG],[SFTRFLAG],[MNHDRSIZ],[MNFTRSIZ],[SHDRSIZE_1],[SHDRSIZE_2],[SHDRSIZE_3],[SHDRSIZE_4],[SHDRSIZE_5],[SFTRSIZE_1],[SFTRSIZE_2],[SFTRSIZE_3],[SFTRSIZE_4],[SFTRSIZE_5],[SHDROPT_1],[SHDROPT_2],[SHDROPT_3],[SHDROPT_4],[SHDROPT_5],[SHDRPRT_1],[SHDRPRT_2],[SHDRPRT_3],[SHDRPRT_4],[SHDRPRT_5],[SFTROPT_1],[SFTROPT_2],[SFTROPT_3],[SFTROPT_4],[SFTROPT_5],[SFTRPRT_1],[SFTRPRT_2],[SFTRPRT_3],[SFTRPRT_4],[SFTRPRT_5],[COLHDCNT],[COLDHSIZ_1],[COLDHSIZ_2],[COLDHSIZ_3],[COLDHSIZ_4],[COLDHSIZ_5],[COLDHSIZ_6],[RTOTLSIZ],[COLTOSIZ],[COLOFSIZ],[LFTMARGN],[RTMARGIN],[TOPMARGN],[BOTMARGN]) SELECT [REPORTID],[MNHDRCNT],[MNFTRCNT],[SHDRCNT],[SFTRCNT],[ROWCNT1],[COLCNT],[SHDRPCNT],[SFTRPCNT],[MNHDRFLG],[MNFTRFLG],[SHDRFLAG],[SFTRFLAG],[MNHDRSIZ],[MNFTRSIZ],[SHDRSIZE_1],[SHDRSIZE_2],[SHDRSIZE_3],[SHDRSIZE_4],[SHDRSIZE_5],[SFTRSIZE_1],[SFTRSIZE_2],[SFTRSIZE_3],[SFTRSIZE_4],[SFTRSIZE_5],[SHDROPT_1],[SHDROPT_2],[SHDROPT_3],[SHDROPT_4],[SHDROPT_5],[SHDRPRT_1],[SHDRPRT_2],[SHDRPRT_3],[SHDRPRT_4],[SHDRPRT_5],[SFTROPT_1],[SFTROPT_2],[SFTROPT_3],[SFTROPT_4],[SFTROPT_5],[SFTRPRT_1],[SFTRPRT_2],[SFTRPRT_3],[SFTRPRT_4],[SFTRPRT_5],[COLHDCNT],[COLDHSIZ_1],[COLDHSIZ_2],[COLDHSIZ_3],[COLDHSIZ_4],[COLDHSIZ_5],[COLDHSIZ_6],[RTOTLSIZ],[COLTOSIZ],[COLOFSIZ],[LFTMARGN],[RTMARGIN],[TOPMARGN],[BOTMARGN] FROM [Source].DBO.AF40101
INSERT INTO [Destination].DBO.AF40102 ([REPORTID],[HDRFTRTY],[FLDNUM],[FLDPOSX1],[FLDPOSY1],[FLDPOSX2],[FLDPOSY2],[FLDTYPE],[FLDFRMAT],[SBHSBFIN],[FLDOPT],[FLDOPT2],[FLDALIGN],[FLDFTFML],[FLDFTSIZ],[FLDSTYLE_1],[FLDSTYLE_2],[FLDSTYLE_3],[FLDSTYLE_4],[FLDSTYLE_5],[FLDSTYLE_6],[FLDVALUE],[FLDVALU2],[FLDPRNAM]  ) SELECT [REPORTID],[HDRFTRTY],[FLDNUM],[FLDPOSX1],[FLDPOSY1],[FLDPOSX2],[FLDPOSY2],[FLDTYPE],[FLDFRMAT],[SBHSBFIN],[FLDOPT],[FLDOPT2],[FLDALIGN],[FLDFTFML],[FLDFTSIZ],[FLDSTYLE_1],[FLDSTYLE_2],[FLDSTYLE_3],[FLDSTYLE_4],[FLDSTYLE_5],[FLDSTYLE_6],[FLDVALUE],[FLDVALU2],[FLDPRNAM]   FROM [Source].DBO.AF40102
INSERT INTO [Destination].DBO.AF40103 ([REPORTID],[COLNUM],[CLTKNCNT],[COLTYPE],[COLSIZE],[COLOMCNT],[COLOFMRK_1],[COLOFMRK_2],[COLOFMRK_3],[COLOFMRK_4],[HIDEFLAG],[TEXTVALU],[STPERIOD],[ENDPEROD],[AMNTFROM],[HISTYEAR],[BUDID],[PRTSIGN],[PRTCOMMA],[PRTPCENT],[PRTTEXT],[ROUNDOPT],[HEADALIN],[HDFTFMLY],[HDFTSIZE],[HEDSTYLE_1],[HEDSTYLE_2],[HEDSTYLE_3],[HEDSTYLE_4],[HEDSTYLE_5],[HEDSTYLE_6],[HEADTYPE_1],[HEADTYPE_2],[HEADTYPE_3],[HEADTYPE_4],[HEADTYPE_5],[HEADTYPE_6],[HEDFRMAT_1],[HEDFRMAT_2],[HEDFRMAT_3],[HEDFRMAT_4],[HEDFRMAT_5],[HEDFRMAT_6],[HEADOPT_1],[HEADOPT_2],[HEADOPT_3],[HEADOPT_4],[HEADOPT_5],[HEADOPT_6],[HEADOPT2_1],[HEADOPT2_2],[HEADOPT2_3],[HEADOPT2_4],[HEADOPT2_5],[HEADOPT2_6],[COLHDNG_1],[COLHDNG_2],[COLHDNG_3],[COLHDNG_4],[COLHDNG_5],[COLHDNG_6],[COLHDNG2_1],[COLHDNG2_2],[COLHDNG2_3],[COLHDNG2_4],[COLHDNG2_5],[COLHDNG2_6],[ALGNOFST],[COLEXPER],[NOTEINDX],[SEGFROM_1],[SEGFROM_2],[SEGFROM_3],[SEGFROM_4],[SEGFROM_5],[SEGFROM_6],[SEGFROM_7],[SEGFROM_8],[SEGFROM_9],[SEGFROM_10],[SEGTO_1],[SEGTO_2],[SEGTO_3],[SEGTO_4],[SEGTO_5],[SEGTO_6],[SEGTO_7],[SEGTO_8],[SEGTO_9],[SEGTO_10]) SELECT [REPORTID],[COLNUM],[CLTKNCNT],[COLTYPE],[COLSIZE],[COLOMCNT],[COLOFMRK_1],[COLOFMRK_2],[COLOFMRK_3],[COLOFMRK_4],[HIDEFLAG],[TEXTVALU],[STPERIOD],[ENDPEROD],[AMNTFROM],[HISTYEAR],[BUDID],[PRTSIGN],[PRTCOMMA],[PRTPCENT],[PRTTEXT],[ROUNDOPT],[HEADALIN],[HDFTFMLY],[HDFTSIZE],[HEDSTYLE_1],[HEDSTYLE_2],[HEDSTYLE_3],[HEDSTYLE_4],[HEDSTYLE_5],[HEDSTYLE_6],[HEADTYPE_1],[HEADTYPE_2],[HEADTYPE_3],[HEADTYPE_4],[HEADTYPE_5],[HEADTYPE_6],[HEDFRMAT_1],[HEDFRMAT_2],[HEDFRMAT_3],[HEDFRMAT_4],[HEDFRMAT_5],[HEDFRMAT_6],[HEADOPT_1],[HEADOPT_2],[HEADOPT_3],[HEADOPT_4],[HEADOPT_5],[HEADOPT_6],[HEADOPT2_1],[HEADOPT2_2],[HEADOPT2_3],[HEADOPT2_4],[HEADOPT2_5],[HEADOPT2_6],[COLHDNG_1],[COLHDNG_2],[COLHDNG_3],[COLHDNG_4],[COLHDNG_5],[COLHDNG_6],[COLHDNG2_1],[COLHDNG2_2],[COLHDNG2_3],[COLHDNG2_4],[COLHDNG2_5],[COLHDNG2_6],[ALGNOFST],[COLEXPER],[NOTEINDX],[SEGFROM_1],[SEGFROM_2],[SEGFROM_3],[SEGFROM_4],[SEGFROM_5],[SEGFROM_6],[SEGFROM_7],[SEGFROM_8],[SEGFROM_9],[SEGFROM_10],[SEGTO_1],[SEGTO_2],[SEGTO_3],[SEGTO_4],[SEGTO_5],[SEGTO_6],[SEGTO_7],[SEGTO_8],[SEGTO_9],[SEGTO_10] FROM [Source].DBO.AF40103
INSERT INTO [Destination].DBO.AF40104 ([REPORTID],[CLCOLNUM],[TKNODNUM],[TKNTYPE],[TKNVALUE],[TKNDLVAL],[TKNUNACT_1],[TKNUNACT_2],[TKNUNACT_3],[TKNUNACT_4],[TKNUNACT_5],[TKNUNACT_6],[TKNUNACT_7],[TKNUNACT_8],[TKNUNACT_9],[TKNUNACT_10]) SELECT [REPORTID],[CLCOLNUM],[TKNODNUM],[TKNTYPE],[TKNVALUE],[TKNDLVAL],[TKNUNACT_1],[TKNUNACT_2],[TKNUNACT_3],[TKNUNACT_4],[TKNUNACT_5],[TKNUNACT_6],[TKNUNACT_7],[TKNUNACT_8],[TKNUNACT_9],[TKNUNACT_10] FROM [Source].DBO.AF40104
INSERT INTO [Destination].DBO.AF40105 ([REPORTID],[CLCOLNUM],[TKNODNUM],[TKNTYPE],[TKNVALUE],[TKNDLVAL],[TKNUNACT_1],[TKNUNACT_2],[TKNUNACT_3],[TKNUNACT_4],[TKNUNACT_5],[TKNUNACT_6],[TKNUNACT_7],[TKNUNACT_8],[TKNUNACT_9],[TKNUNACT_10]     ) SELECT [REPORTID],[CLCOLNUM],[TKNODNUM],[TKNTYPE],[TKNVALUE],[TKNDLVAL],[TKNUNACT_1],[TKNUNACT_2],[TKNUNACT_3],[TKNUNACT_4],[TKNUNACT_5],[TKNUNACT_6],[TKNUNACT_7],[TKNUNACT_8],[TKNUNACT_9],[TKNUNACT_10]FROM [Source].DBO.AF40105
INSERT INTO [Destination].DBO.AF40106 ([REPORTID],[ROWNUMBR],[TOTKNCNT],[ROWTYPE],[ROWSIZE],[ROLUPFLG],[ROWDESC],[SUBSUDID],[TYPCLBAL],[CATNUMBR],[PRTSIGN],[PRTHEDER],[CENTHEDR],[ROWFTFAM],[ROWFTSIZ],[ROWSTYLE_1],[ROWSTYLE_2],[ROWSTYLE_3],[ROWSTYLE_4],[ROWSTYLE_5],[ROWSTYLE_6],[ROFMRKIN_1],[ROFMRKIN_2],[ROFMRKIN_3],[ROFMRKIN_4],[ROFMRKIN_5],[ROFMRKIN_6],[ROFMRKIN_7],[ROFMRKIN_8],[ROFMRKIN_9],[ROFMRKIN_10],[ROFMRKIN_11],[ROFMRKIN_12],[ROFMRKIN_13],[ROFMRKIN_14],[ROFMRKIN_15],[ROFMRKIN_16],[ROFMRKIN_17],[ROFMRKIN_18],[ROFMRKIN_19],[ROFMRKIN_20],[ROFMRKIN_21],[ROFMRKIN_22],[ROFMRKIN_23],[ROFMRKIN_24],[ROFMRKIN_25],[ROFMRKIN_26],[ROFMRKIN_27],[ROFMRKIN_28],[ROFMRKIN_29],[ROFMRKIN_30],[ROFMRKIN_31],[ROFMRKIN_32],[ROFMRKIN_33],[ROFMRKIN_34],[ROFMRKIN_35],[ROFMRKIN_36],[ROFMRKIN_37],[ROFMRKIN_38],[ROFMRKIN_39],[ROFMRKIN_40],[CFLOSCTN],[RWEXPERR],[NOTEINDX],[STTACCT_1],[STTACCT_2],[STTACCT_3],[STTACCT_4],[STTACCT_5],[STTACCT_6],[STTACCT_7],[STTACCT_8],[STTACCT_9],[STTACCT_10],[ENDACCT_1],[ENDACCT_2],[ENDACCT_3],[ENDACCT_4],[ENDACCT_5],[ENDACCT_6],[ENDACCT_7],[ENDACCT_8],[ENDACCT_9],[ENDACCT_10]) SELECT [REPORTID],[ROWNUMBR],[TOTKNCNT],[ROWTYPE],[ROWSIZE],[ROLUPFLG],[ROWDESC],[SUBSUDID],[TYPCLBAL],[CATNUMBR],[PRTSIGN],[PRTHEDER],[CENTHEDR],[ROWFTFAM],[ROWFTSIZ],[ROWSTYLE_1],[ROWSTYLE_2],[ROWSTYLE_3],[ROWSTYLE_4],[ROWSTYLE_5],[ROWSTYLE_6],[ROFMRKIN_1],[ROFMRKIN_2],[ROFMRKIN_3],[ROFMRKIN_4],[ROFMRKIN_5],[ROFMRKIN_6],[ROFMRKIN_7],[ROFMRKIN_8],[ROFMRKIN_9],[ROFMRKIN_10],[ROFMRKIN_11],[ROFMRKIN_12],[ROFMRKIN_13],[ROFMRKIN_14],[ROFMRKIN_15],[ROFMRKIN_16],[ROFMRKIN_17],[ROFMRKIN_18],[ROFMRKIN_19],[ROFMRKIN_20],[ROFMRKIN_21],[ROFMRKIN_22],[ROFMRKIN_23],[ROFMRKIN_24],[ROFMRKIN_25],[ROFMRKIN_26],[ROFMRKIN_27],[ROFMRKIN_28],[ROFMRKIN_29],[ROFMRKIN_30],[ROFMRKIN_31],[ROFMRKIN_32],[ROFMRKIN_33],[ROFMRKIN_34],[ROFMRKIN_35],[ROFMRKIN_36],[ROFMRKIN_37],[ROFMRKIN_38],[ROFMRKIN_39],[ROFMRKIN_40],[CFLOSCTN],[RWEXPERR],[NOTEINDX],[STTACCT_1],[STTACCT_2],[STTACCT_3],[STTACCT_4],[STTACCT_5],[STTACCT_6],[STTACCT_7],[STTACCT_8],[STTACCT_9],[STTACCT_10],[ENDACCT_1],[ENDACCT_2],[ENDACCT_3],[ENDACCT_4],[ENDACCT_5],[ENDACCT_6],[ENDACCT_7],[ENDACCT_8],[ENDACCT_9],[ENDACCT_10] FROM [Source].DBO.AF40106
INSERT INTO [Destination].DBO.AF40107 ([REPORTID] ,[TOTRWNUM],[TKNODNUM],[STROWNUM],[ENDRWNUM]) SELECT [REPORTID] ,[TOTRWNUM],[TKNODNUM],[STROWNUM],[ENDRWNUM] FROM [Source].DBO.AF40107
INSERT INTO [Destination].DBO.AF40108 ([REPORTID],[TOTRWNUM],[MBRWNUM]) SELECT [REPORTID],[TOTRWNUM],[MBRWNUM] FROM [Source].DBO.AF40108
INSERT INTO [Destination].DBO.AF40109 ([FLDPRNAM],[FLDPCTUR]) SELECT [FLDPRNAM],[FLDPCTUR] FROM [Source].DBO.AF40109
--INSERT INTO [Destination].DBO.AF40110 ([USERNAME],[SHGRDFLG],[SHCGRFLG],[SHTBARFL],[SCDEFAFL],[SHRWARFL],[SHOFMKFL],[SNPTGRFL],[SHMARFLG],[SHPGBDFL],[SHRLRSFL] ) SELECT [USERNAME],[SHGRDFLG],[SHCGRFLG],[SHTBARFL],[SCDEFAFL],[SHRWARFL],[SHOFMKFL],[SNPTGRFL],[SHMARFLG],[SHPGBDFL],[SHRLRSFL]  FROM [Source].DBO.AF40110




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

Sunday, March 11, 2012

Error Converting Request to Purchase Order–Business Portal 5.1

 

I have installed Business Portal 5.1 for one of my customers and been through the below error in converting Purchase Request into Purchase Order

The specified Protocol is invalid

Doing researches about this subject returned that the web.config of the business portal might be missing from this path “C:\Program Files\Microsoft Dynamics\Business Portal” and it was!

To resolve this I have connected to another client whose running the business portal with no issues and copied the web.config! It worked perfectly, below is the web.config content:

<?xml version="1.0" encoding="utf-8" ?>
<
configuration>

<
system.web>

<
xhtmlConformance mode="Legacy" />

</
system.web>


<
appSettings>

<
add key="Protocol" value="1"/>
<
add key="TaxEngineServiceAssembly0" value="Microsoft.Business.Taxes.Services"/>
<
add key="TaxEngineServiceClass0" value="Microsoft.Business.Taxes.TaxEngine"/>

<
add key="TaxEngineDataServiceAssembly0" value="Microsoft.Dynamics"/>
<
add key="TaxEngineDataServiceClass0" value="Microsoft.Dynamics.Common.TaxEngineData"/>

<
add key="TaxEnginePreCalculateDocumentEventAssembly0" value="Microsoft.Dynamics"/>
<
add key="TaxEnginePreCalculateDocumentEventClass0" value="Microsoft.Dynamics.Common.TaxEngineISV"/>
<
add key="TaxEnginePreCalculateDocumentEventMethod0" value="DocumentPre"/>

<
add key="TaxEnginePreGetTaxGroupIDsEventAssembly0" value="Microsoft.Dynamics"/>
<
add key="TaxEnginePreGetTaxGroupIDsEventClass0" value="Microsoft.Dynamics.Common.TaxEngineISV"/>
<
add key="TaxEnginePreGetTaxGroupIDsEventMethod0" value="PreGetTaxGroupIDs"/>

<
add key="TaxEnginePreCalculateCodeEventAssembly0" value="Microsoft.Dynamics"/>
<
add key="TaxEnginePreCalculateCodeEventClass0" value="Microsoft.Dynamics.Common.TaxEngineISV"/>
<
add key="TaxEnginePreCalculateCodeEventMethod0" value="PreCalculateCode"/>

</
appSettings>

</
configuration>




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

Sunday, November 13, 2011

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

Monday, April 25, 2011

Why do I see empty charts in Fabrikam?

 

I have installed Dynamics GP 2010 R2 and really enjoyed walking through dashboards and KPIs added to the application, but most of the KPI’s does not show the actual company data, instead it is showing zeros as below:

image

This is actually not related to an installation issue, it is due to the fact that the report is using the current date while Fabrikam uses 2017 as the default year, to view the report with data, just click on the “View” icon and select the report:

image

Change the date:

image

And enjoy!

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

Dynamics GP 2010 R2 Business Intelligence Installation Error maxRequestLength

 

During Dynamics GP 2010 R2, I have selected to deploy Dynamics GP Business Intelligence Reports over SQL Server Reporting Services, but before starting the installation, the system generated an error that maximum number of retries has been exceeded and was requested to set a maxRequestLength flag in the web.config.

Web.config could be located under the installation path of SQL Server Reporting Services, in my case it was under the following path:

C:\Program Files\Microsoft SQL Server\MSRS10.SQL2008\Reporting Services\ReportServer

in the web.config, search for <httpRuntime executionTimeout="9000" /> and include the variable there to make it looks like the below:

<httpRuntime executionTimeout="9000" maxRequestLength="20690"/>

Somehow, 20690 in specific is required, it will not accept number higher!

Update: Below is the exact error message:

The deployment has exceeded the maximum request length allowed by the target server. Set maxRequestLength = "20690" in the web.config file and try deploying again.

Enjoy!

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

Friday, July 30, 2010

Dynamics GP Reporting Series: Customer Statement

It seems I totally forgot to publish this article and thought that I finalized the series!

Customer statements are normally dependant on the each client process, end user will normally request the customer statement to be in the way that fulfills their needs, some users will require the statement to integrate the payment document management module and some requires the aging.

However, normally the customer statement option in the utilities covers almost all needed statements, below statement is a standard statement could generate the customer statement in “Payment – Invoice” columns which make easier to the accountant the understanding of customer transactions.

SQL Command:

SELECT      CUSTNMBR,    
DOCNUMBR AS DOCNUM,     DOCDATE,    
CASE RMDTYPAL    
WHEN 1 THEN 'SLS'       WHEN 2 THEN 'SCP'     
WHEN 3 THEN 'DR'       WHEN 4 THEN 'FIN'     
WHEN 5 THEN 'SVC'       WHEN 6 THEN 'WRN'     
WHEN 7 THEN 'CR'       WHEN 8 THEN 'RTN'     
WHEN 9 THEN 'PMT'      END AS CODE,    
ISNULL(CASE RMDTYPAL    
WHEN 1 THEN ORTRXAMT WHEN 3 THEN ORTRXAMT    
WHEN 4 THEN ORTRXAMT WHEN 5 THEN ORTRXAMT    
WHEN 6 THEN ORTRXAMT ELSE 0    
END,0) AS INVOICE,    

ISNULL(CASE RMDTYPAL    
WHEN 7 THEN -(CURTRXAM)     WHEN 8 THEN -(CURTRXAM)    
WHEN 9 THEN -(CURTRXAM)     ELSE 0    
END,0) AS PAYMENT,    DOCNUMBR AS APPLIEDTO    
FROM RM20101
WHERE  (
(RMDTYPAL = 7 AND CURTRXAM <> 0)
OR (RMDTYPAL = 8 AND CURTRXAM <> 0) OR (RMDTYPAL = 9 AND CURTRXAM <> 0)
OR RMDTYPAL = 1     OR RMDTYPAL = 2 OR RMDTYPAL = 3
OR RMDTYPAL = 4 OR RMDTYPAL = 5 OR RMDTYPAL = 6) 
AND VOIDSTTS <> 1     
UNION     
SELECT      CUSTNMBR,    
APFRDCNM AS DOCNUM,     DATE1 AS DOCDATE ,    
CASE APFRDCTY
WHEN 7 THEN 'CR' WHEN 8 THEN 'RTN'       
WHEN 9 THEN 'PMT' END AS CODE,         
0 AS INVOICE,    
ISNULL(CASE APFRDCTY     WHEN 7 THEN APPTOAMT    
WHEN 8 THEN APPTOAMT     WHEN 9 THEN APPTOAMT    
ELSE 0     END,0) AS PAYMENT     ,    
APTODCNM AS APPLIEDTO    
FROM RM20201
WHERE POSTED <> 0     
ORDER BY DOCDATE    

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the below:

Crystal Report Design:

 image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Monday, May 24, 2010

Dynamics GP Reporting Series: PM Manual Payment

Finally we’ll need to print the vendor payment, we’ll use the Manual Payment form to enter the transaction and print out the payment using the report, below is the needed command:

SQL Command:

SELECT    
dbo.PM10400.PMNTNMBR, dbo.PM10400.DOCNUMBR,
dbo.PM10400.DOCDATE, dbo.PM10400.VENDORID,
dbo.PM00200.VENDNAME, dbo.PM10400.PYENTTYP,
dbo.PM10400.CARDNAME, dbo.PM10400.CHEKBKID,
dbo.PM10100.CRDTAMNT, dbo.PM10100.DEBITAMT,
dbo.PM10100.DSTINDX, dbo.PM10100.ORCRDAMT,
dbo.PM10100.ORDBTAMT, dbo.PM10400.DOCAMNT,
dbo.CM00100.DSCRIPTN, dbo.PM10400.CURNCYID,
dbo.PM10100.DISTTYPE, dbo.GL00100.ACTDESCR,
dbo.GL00105.ACTNUMST, dbo.PM00200.VNDCHKNM,
dbo.PM10400.TRXDSCRN
FROM         dbo.PM10400
INNER JOIN dbo.PM10100 ON dbo.PM10400.VCHRNMBR = dbo.PM10100.VCHRNMBR
INNER JOIN dbo.PM00200 ON dbo.PM10400.VENDORID = dbo.PM00200.VENDORID
INNER JOIN dbo.GL00100
INNER JOIN dbo.GL00105 ON dbo.GL00100.ACTINDX = dbo.GL00105.ACTINDX
ON dbo.PM10100.DSTINDX = dbo.GL00100.ACTINDX
LEFT OUTER JOIN dbo.CM00100 ON dbo.PM10400.CHEKBKID = dbo.CM00100.CHEKBKID
WHERE     (dbo.PM10400.CNTRLTYP = 1) and  (dbo.PM10100.CNTRLTYP = 1)

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the below:

Crystal Report Design:

 image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Dynamics GP Reporting Series: PM Transaction Entry

When we need to perform any adjustment transactions on our vendors, we’ll need to print a document to be attached to the original document sent by the vendor, below is the needed command:

SQL Command:

SELECT    
dbo.PM10000.DOCNUMBR, dbo.PM10000.DOCTYPE,
dbo.PM10000.DOCAMNT, dbo.PM10000.DOCDATE,
dbo.PM10000.PYMTRMID, dbo.PM10000.SHIPMTHD,
dbo.PM00300.ADDRESS1, dbo.PM00300.ADDRESS2,
dbo.PM00300.ADDRESS3, dbo.PM00300.CITY,
dbo.PM10000.PORDNMBR, dbo.PM10000.VCHRNMBR,
dbo.PM10000.TRXDSCRN, dbo.PM10000.PRCHAMNT,
dbo.PM10000.TRDISAMT, dbo.PM10000.TAXAMNT,
dbo.PM10000.FRTAMNT, dbo.PM10000.MSCCHAMT,
dbo.PM10000.CASHAMNT, dbo.PM10000.CHEKAMNT,
dbo.PM10000.CRCRDAMT, dbo.PM00200.VENDNAME,
dbo.PM10000.DISTKNAM, dbo.PM10000.CURTRXAM,
dbo.PM10000.CURNCYID, dbo.PM10000.VCHNUMWK,
dbo.PM10000.VENDORID, dbo.MC020103.ORCTRXAM,
dbo.MC020103.ORFRTAMT, dbo.MC020103.ORTAXAMT,
dbo.MC020103.ORCASAMT, dbo.MC020103.ORCHKAMT,
dbo.MC020103.ORCCDAMT, dbo.MC020103.ORDISTKN,
dbo.MC020103.ORWROFAM, dbo.MC020103.OMISCAMT,
dbo.MC020103.OPURAMT, dbo.MC020103.ORTDISAM
FROM         dbo.PM00200
INNER JOIN dbo.PM10000 ON dbo.PM00200.VENDORID = dbo.PM10000.VENDORID
LEFT OUTER JOIN dbo.MC020103 ON dbo.PM10000.DOCTYPE = dbo.MC020103.DOCTYPE
AND dbo.PM10000.VCHNUMWK = dbo.MC020103.VCHRNMBR
LEFT OUTER JOIN dbo.PM00300 ON dbo.PM10000.VENDORID = dbo.PM00300.VENDORID
AND dbo.PM10000.VADDCDPR = dbo.PM00300.ADRSCODE
WHERE dbo.PM10000.VCHNUMWK = {?VCHNUMWK}

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the below:

Crystal Report Design:

 image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Dynamics GP Reporting Series: POP Receiving Transaction Entry

After creating the purchase order, we’ll need to receive the goods to the inventory, we’ll generate the receiving document along with its journal, the receiving view below displays only the posted receiving transactions, below is the needed command:

SQL Command:

SELECT   
dbo.POP30300.POPRCTNM, dbo.POP30300.POPTYPE,
dbo.POP30300.VNDDOCNM, dbo.POP30300.receiptdate,
dbo.POP30300.VENDNAME, dbo.POP30300.VENDORID,
dbo.POP30300.VOIDSTTS, dbo.POP30300.CURNCYID,
dbo.POP30300.ORSUBTOT, dbo.POP30300.ORTDISAM,
dbo.POP30300.ORFRTAMT, dbo.POP30300.ORMISCAMT,
dbo.POP30300.ORTAXAMT, dbo.POP30310.ITEMNMBR,
dbo.POP30310.ITEMDESC, dbo.POP30310.UOFM,
dbo.POP30310.ORUNTCST, dbo.POP30310.OREXTCST,
dbo.POP30310.CURRNIDX, dbo.PM00200.ADDRESS1,
dbo.PM00200.CITY, dbo.PM00200.STATE,
dbo.PM00200.COUNTRY, dbo.PM00200.ZIPCODE,
dbo.PM00200.ADDRESS2, dbo.POP30310.PONUMBER,
dbo.POP10500.QTYINVCD, dbo.POP30300.VCHRNMBR,
(SELECT     Top 1 reqdate
FROM         POP10110
WHERE     ponumber = dbo.POP30310.ponumber) AS ReqDate
FROM         dbo.POP30300
INNER JOIN dbo.POP30310 ON dbo.POP30300.POPRCTNM = dbo.POP30310.POPRCTNM
INNER JOIN dbo.PM00200 ON dbo.POP30300.VENDORID = dbo.PM00200.VENDORID
INNER JOIN dbo.POP10500 ON dbo.POP30310.PONUMBER = dbo.POP10500.PONUMBER
AND dbo.POP30310.RCPTLNNM = dbo.POP10500.RCPTLNNM
AND dbo.POP30310.POPRCTNM = dbo.POP10500.POPRCTNM
AND dbo.POP30310.ITEMNMBR = dbo.POP10500.ITEMNMBR
WHERE     dbo.POP30300.POPRCTNM ={?POPRCTNM}

Command for the Receiving Journal:

SELECT    
dbo.POP30390.POPRCTNM, dbo.GL00105.ACTNUMST,
dbo.POP30390.CRDTAMNT, dbo.POP30390.ORCRDAMT,
dbo.POP30390.DEBITAMT, dbo.POP30390.ORDBTAMT,
dbo.POP30390.CURNCYID, dbo.GL00100.ACTDESCR
FROM         dbo.POP30390
INNER JOIN dbo.GL00105 ON dbo.POP30390.ACTINDX = dbo.GL00105.ACTINDX
INNER JOIN dbo.GL00100 ON dbo.POP30390.ACTINDX = dbo.GL00100.ACTINDX

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the below:

Crystal Report Design:

 image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Dynamics GP Reporting Series: POP Purchase Order

Moving to the Purchasing module, our first start will be by printing the Purchase Order and sending it to the vendors, below is the command needed:

SQL Command:

SELECT    
dbo.POP10100.PONUMBER, dbo.POP10100.VENDNAME,
dbo.POP10100.PYMTRMID, dbo.POP10100.DOCDATE,
dbo.POP10100.BUYERID, dbo.POP00101.DSCRIPTN,
dbo.POP10100.SHIPMTHD, dbo.POP10100.STATGRP,
dbo.POP10100.PURCHADDRESS1, dbo.POP10100.PURCHCITY,
dbo.POP10110.ITEMNMBR, dbo.POP10110.ITEMDESC,
dbo.POP10110.REQDATE, dbo.POP10110.UOFM,
dbo.POP10110.QTYORDER, dbo.POP10110.LineNumber,
dbo.POP10100.PRSTADCD, dbo.POP10100.PRMSHPDTE,
dbo.POP10110.CMPNYNAM, dbo.POP10110.ADDRESS1,
dbo.POP10110.CITY, dbo.POP10110.STATE,
dbo.POP10110.ZIPCODE, dbo.POP10100.PURCHSTATE,
dbo.POP10100.PURCHZIPCODE, dbo.POP10100.CURNCYID,
dbo.POP10100.CURRNIDX, dbo.POP10110.ORUNTCST,
dbo.POP10110.OREXTCST, dbo.POP10100.ORSUBTOT,
dbo.POP10100.ORTDISAM, dbo.POP10100.ORFRTAMT,
dbo.POP10100.OMISCAMT, dbo.POP10100.ORTAXAMT
FROM         dbo.POP10100
LEFT OUTER JOIN dbo.POP10110 ON dbo.POP10100.PONUMBER = dbo.POP10110.PONUMBER
LEFT OUTER JOIN dbo.POP00101 ON dbo.POP10100.BUYERID = dbo.POP00101.BUYERID
WHERE dbo.POP10110.PONUMBER = {?PONumber}
ORDER BY dbo.POP10110.LineNumber

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the below:

Crystal Report Design:

 image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Dynamics GP Reporting Series: Sales Cash Receipt

As a part of the Receivables Management Module, we’ll need to print a cash receipt for the payments we receive from our customers, and due to many requests from the clients, I have included the distribution journal for the transaction, below the SQL command needed:

SQL Command:

SELECT    
dbo.SY00500.NUMOFTRX, dbo.SY00500.BCHCOMNT,
dbo.SY00500.BCHTOTAL, dbo.SY00500.CNTRLTOT,
dbo.SY00500.CNTRLTRX, dbo.SY00500.BACHFREQ,
dbo.SY00500.BACHDATE, dbo.SY00500.APRVLUSERID,
dbo.SY00500.APPRVLDT, dbo.SY00500.APPROVL,
dbo.SY00500.SERIES, dbo.RM10201.CUSTNMBR,
dbo.RM00101.CUSTNAME, dbo.RM10201.DOCNUMBR,
dbo.RM10201.DOCDATE, dbo.RM10201.TRXDSCRN,
dbo.RM10201.GLPOSTDT, dbo.RM10201.ORTRXAMT,
dbo.RM10201.WROFAMNT, dbo.RM10201.DISTKNAM,
dbo.RM10201.CURTRXAM, dbo.RM10201.CHEKNMBR,
dbo.GL00105.ACTNUMST, dbo.GL00100.ACTDESCR,
dbo.GL00100.ACTINDX, dbo.RM10101.CRDTAMNT,
dbo.RM10101.DEBITAMT, dbo.RM10101.ORDBTAMT,
dbo.RM10101.ORCRDAMT, dbo.RM10201.BACHNUMB,
dbo.RM10101.DISTTYPE, dbo.RM10201.CURNCYID
FROM        
dbo.GL00100
INNER JOIN dbo.RM10101 ON dbo.GL00100.ACTINDX = dbo.RM10101.DSTINDX
INNER JOIN dbo.GL00105 ON dbo.GL00100.ACTINDX = dbo.GL00105.ACTINDX
RIGHT OUTER JOIN dbo.RM10201
INNER JOIN dbo.SY00500 ON dbo.RM10201.BCHSOURC = dbo.SY00500.BCHSOURC
AND dbo.RM10201.BACHNUMB = dbo.SY00500.BACHNUMB
INNER JOIN dbo.RM00101 ON dbo.RM10201.CUSTNMBR = dbo.RM00101.CUSTNMBR
ON dbo.RM10101.DOCNUMBR = dbo.RM10201.DOCNUMBR

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the below:

Crystal Report Design:

 image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Monday, May 10, 2010

Dynamics GP Reporting Series: Sales Credit Memo

As a part of the Receivables Management Module, we still have the Customer Credit Memo’s, the good thing is, MS guys already created view for the Receivables Transactions, below the SQL command needed:

SQL Command:

SELECT    
dbo.RM10301.DOCTYPE, dbo.RM10301.DOCDATE,
dbo.RM00102.ADDRESS1, dbo.RM00102.ADDRESS2,
dbo.RM00102.ADDRESS3, dbo.RM00102.CITY,
dbo.RM10301.DOCDESCR, dbo.RM10301.CUSTNMBR,
dbo.RM10301.CUSTNAME, dbo.RM10301.SLPRSNID,
dbo.RM10301.SHIPMTHD, dbo.RM10301.PYMTRMID,
dbo.RM10301.DOCAMNT, dbo.RM10301.SLSAMNT,
dbo.RM10301.MISCAMNT, dbo.RM10301.TAXAMNT,
dbo.RM10301.FRTAMNT, dbo.RM10301.TRDISAMT,
dbo.RM10301.CASHAMNT, dbo.RM10301.CHEKAMNT,
dbo.RM10301.CRCRDAMT, dbo.RM10301.CURNCYID,
dbo.RM10301.DOCNUMBR, dbo.ReceivablesTransactions.[Originating Cash Amount],
dbo.ReceivablesTransactions.[Originating Check Amount],
dbo.ReceivablesTransactions.[Originating Credit Card Amount],
dbo.ReceivablesTransactions.[Originating Current Trx Amount],
dbo.ReceivablesTransactions.[Originating Discount Taken Amount],
dbo.ReceivablesTransactions.[Originating Freight Amount],
dbo.ReceivablesTransactions.[Originating Misc Amount],
dbo.ReceivablesTransactions.[Originating Sales Amount],
dbo.ReceivablesTransactions.[Originating Tax Amount],
dbo.ReceivablesTransactions.[Originating Trade Discount Amount],
dbo.ReceivablesTransactions.[Originating Write Off Amount],
dbo.ReceivablesTransactions.[Currency ID]
FROM         dbo.RM10301
LEFT OUTER JOIN dbo.ReceivablesTransactions
ON dbo.RM10301.DOCNUMBR = dbo.ReceivablesTransactions.[Document Number]
LEFT OUTER JOIN dbo.RM00102 ON dbo.RM10301.CUSTNMBR = dbo.RM00102.CUSTNMBR
AND dbo.RM10301.ADRSCODE = dbo.RM00102.ADRSCODE
WHERE    
(dbo.RM10301.DOCTYPE = 6)
AND (dbo.ReceivablesTransactions.[Document Type] = 'Credit Memos ')
AND dbo.RM10301.DOCNUMBR = {?DOCNUMBER}

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the original Sales Credit Memo:

Crystal Report Design:

image 

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Saturday, May 8, 2010

Dynamics GP Reporting Series: Sales Credit Memo

As a part of the Receivables Management Module, we still have the Customer Credit Memo’s, the good thing is, MS guys already created view for the Receivables Transactions, below the SQL command needed:

SQL Command:

SELECT    
dbo.RM10301.DOCTYPE, dbo.RM10301.DOCDATE,
dbo.RM00102.ADDRESS1, dbo.RM00102.ADDRESS2,
dbo.RM00102.ADDRESS3, dbo.RM00102.CITY,
dbo.RM10301.DOCDESCR, dbo.RM10301.CUSTNMBR,
dbo.RM10301.CUSTNAME, dbo.RM10301.SLPRSNID,
dbo.RM10301.SHIPMTHD, dbo.RM10301.PYMTRMID,
dbo.RM10301.DOCAMNT, dbo.RM10301.SLSAMNT,
dbo.RM10301.MISCAMNT, dbo.RM10301.TAXAMNT,
dbo.RM10301.FRTAMNT, dbo.RM10301.TRDISAMT,
dbo.RM10301.CASHAMNT, dbo.RM10301.CHEKAMNT,
dbo.RM10301.CRCRDAMT, dbo.RM10301.CURNCYID,
dbo.RM10301.DOCNUMBR, dbo.ReceivablesTransactions.[Originating Cash Amount],
dbo.ReceivablesTransactions.[Originating Check Amount],
dbo.ReceivablesTransactions.[Originating Credit Card Amount],
dbo.ReceivablesTransactions.[Originating Current Trx Amount],
dbo.ReceivablesTransactions.[Originating Discount Taken Amount],
dbo.ReceivablesTransactions.[Originating Freight Amount],
dbo.ReceivablesTransactions.[Originating Misc Amount],
dbo.ReceivablesTransactions.[Originating Sales Amount],
dbo.ReceivablesTransactions.[Originating Tax Amount],
dbo.ReceivablesTransactions.[Originating Trade Discount Amount],
dbo.ReceivablesTransactions.[Originating Write Off Amount],
dbo.ReceivablesTransactions.[Currency ID]
FROM         dbo.RM10301
LEFT OUTER JOIN dbo.ReceivablesTransactions
ON dbo.RM10301.DOCNUMBR = dbo.ReceivablesTransactions.[Document Number]
LEFT OUTER JOIN dbo.RM00102 ON dbo.RM10301.CUSTNMBR = dbo.RM00102.CUSTNMBR
AND dbo.RM10301.ADRSCODE = dbo.RM00102.ADRSCODE
WHERE    
(dbo.RM10301.DOCTYPE = 6)
AND (dbo.ReceivablesTransactions.[Document Type] = 'Credit Memos ')
AND dbo.RM10301.DOCNUMBR = {?DOCNUMBER}

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the original Sales Credit Memo:

Crystal Report Design:

 image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Dynamics GP Reporting Series: Sales Debit Memo

As a part of the Receivables Management Module, we still have the Customer Debit Memo’s, the good thing is, MS guys already created view for the Receivables Transactions, below the SQL command needed:

SQL Command:

SELECT    
dbo.RM10301.DOCTYPE, dbo.RM10301.DOCDATE,
dbo.RM00102.ADDRESS1, dbo.RM00102.ADDRESS2,
dbo.RM00102.ADDRESS3, dbo.RM00102.CITY,
dbo.RM10301.DOCDESCR, dbo.RM10301.CUSTNMBR,
dbo.RM10301.CUSTNAME, dbo.RM10301.SLPRSNID,
dbo.RM10301.SHIPMTHD, dbo.RM10301.PYMTRMID,
dbo.RM10301.DOCAMNT, dbo.RM10301.SLSAMNT,
dbo.RM10301.MISCAMNT, dbo.RM10301.TAXAMNT,
dbo.RM10301.FRTAMNT, dbo.RM10301.TRDISAMT,
dbo.RM10301.CASHAMNT, dbo.RM10301.CHEKAMNT,
dbo.RM10301.CRCRDAMT, dbo.RM10301.CURNCYID,
dbo.RM10301.DOCNUMBR,
dbo.ReceivablesTransactions.[Originating Cash Amount],
dbo.ReceivablesTransactions.[Originating Check Amount],
dbo.ReceivablesTransactions.[Originating Credit Card Amount],
dbo.ReceivablesTransactions.[Originating Current Trx Amount],
dbo.ReceivablesTransactions.[Originating Discount Taken Amount],
dbo.ReceivablesTransactions.[Originating Freight Amount],
dbo.ReceivablesTransactions.[Originating Misc Amount],
dbo.ReceivablesTransactions.[Originating Sales Amount],
dbo.ReceivablesTransactions.[Originating Tax Amount],
dbo.ReceivablesTransactions.[Originating Trade Discount Amount],
dbo.ReceivablesTransactions.[Originating Write Off Amount],
dbo.ReceivablesTransactions.[Currency ID]
FROM         dbo.RM10301
LEFT OUTER JOIN
dbo.ReceivablesTransactions
ON dbo.RM10301.DOCNUMBR = dbo.ReceivablesTransactions.[Document Number]
LEFT OUTER JOIN
dbo.RM00102 ON dbo.RM10301.CUSTNMBR = dbo.RM00102.CUSTNMBR
AND dbo.RM10301.ADRSCODE = dbo.RM00102.ADRSCODE
WHERE     (dbo.RM10301.DOCTYPE = 2)
AND (dbo.ReceivablesTransactions.[Document Type] = 'Debit Memos ')
AND dbo.RM10301.DOCNUMBR = {?DOCNUMBER}

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the original Sales Credit Memo:

Crystal Report Design:

image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Friday, April 30, 2010

Dynamics GP Reporting Series: Sales Invoice (Receivables Management)

For Sales invoices that does not contains items, you might need to print invoice using Transactions>> Sales>> Transaction Entry, the good thing is, MS guys already created view for the Receivables Transactions, below the SQL command needed:

SQL Command:

SELECT    
dbo.RM10301.DOCTYPE, dbo.RM10301.DOCDATE,
dbo.RM00102.ADDRESS1, dbo.RM00102.ADDRESS2,
dbo.RM00102.ADDRESS3, dbo.RM00102.CITY,
dbo.RM10301.DOCDESCR, dbo.RM10301.CUSTNMBR,
dbo.RM10301.CUSTNAME, dbo.RM10301.SLPRSNID,
dbo.RM10301.SHIPMTHD, dbo.RM10301.PYMTRMID,
dbo.RM10301.DOCAMNT, dbo.RM10301.SLSAMNT,
dbo.RM10301.MISCAMNT, dbo.RM10301.TAXAMNT,
dbo.RM10301.FRTAMNT, dbo.RM10301.TRDISAMT,
dbo.RM10301.CASHAMNT, dbo.RM10301.CHEKAMNT,
dbo.RM10301.CRCRDAMT, dbo.RM10301.CURNCYID,
dbo.RM10301.DOCNUMBR, dbo.ReceivablesTransactions.[Originating Cash Amount],
dbo.ReceivablesTransactions.[Originating Check Amount],
dbo.ReceivablesTransactions.[Originating Credit Card Amount],
dbo.ReceivablesTransactions.[Originating Current Trx Amount],
dbo.ReceivablesTransactions.[Originating Discount Taken Amount],
dbo.ReceivablesTransactions.[Originating Freight Amount],
dbo.ReceivablesTransactions.[Originating Misc Amount],
dbo.ReceivablesTransactions.[Originating Sales Amount],
dbo.ReceivablesTransactions.[Originating Tax Amount],
dbo.ReceivablesTransactions.[Originating Trade Discount Amount],
dbo.ReceivablesTransactions.[Originating Write Off Amount],
dbo.ReceivablesTransactions.[Currency ID]
FROM         dbo.RM10301
LEFT OUTER JOIN dbo.ReceivablesTransactions
ON dbo.RM10301.DOCNUMBR = dbo.ReceivablesTransactions.[Document Number]
LEFT OUTER JOIN dbo.RM00102 ON dbo.RM10301.CUSTNMBR = dbo.RM00102.CUSTNMBR
AND dbo.RM10301.ADRSCODE = dbo.RM00102.ADRSCODE
WHERE dbo.RM10301.DOCNUMBR = {?DOCNUMBER}

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the original Sales Invoice:

Crystal Report Design:

image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Sunday, April 25, 2010

Dynamics GP Reporting Series: SOP Sales Invoice

Moving from the financial series into the Sales, sales invoice will need to be sent to the customer, where it has to be designed to represent company image, I have used design similar to the one come with GP, below the SQL command needed:

SQL Command:

SELECT    
dbo.SOP10100.SOPNUMBE, dbo.SOP10100.DOCDATE,
dbo.SOP10100.PYMTRMID, dbo.SOP10100.CUSTNMBR,
dbo.SOP10100.CUSTNAME, dbo.SOP10100.CSTPONBR,
dbo.SOP10100.SHIPMTHD, dbo.SOP10100.SLPRSNID,
dbo.SOP10200.ITEMNMBR, dbo.SOP10200.ITEMDESC,
dbo.SOP10200.QTYORDER, dbo.SOP10200.QTYTBAOR,
dbo.SOP10200.QTYTOINV, dbo.SOP10100.CURNCYID,
dbo.SOP10100.CURRNIDX, dbo.SOP10200.UOFM,
dbo.SOP10100.MSTRNUMB, dbo.SOP10106.USRTAB01,
dbo.SOP10106.USERDEF2, dbo.SOP10106.USRDEF03,
RM00102_1.ADDRESS1, RM00102_1.ADDRESS2,
RM00102_1.ADDRESS3, dbo.SOP10100.ORTDISAM,
dbo.SOP10100.ORSUBTOT, dbo.SOP10100.ORFRTAMT,
dbo.SOP10100.ORMISCAMT, dbo.SOP10100.ORTAXAMT,
dbo.SOP10100.ORDOCAMT, dbo.SOP10200.ORUNTPRC,
dbo.SOP10200.OXTNDPRC, dbo.SOP10200.ORMRKDAM,
dbo.SOP10200.CMPNTSEQ
FROM         dbo.SOP10100
INNER JOIN dbo.SOP10200 ON dbo.SOP10100.SOPTYPE = dbo.SOP10200.SOPTYPE
AND dbo.SOP10100.SOPNUMBE = dbo.SOP10200.SOPNUMBE
AND dbo.SOP10100.TRXSORCE = dbo.SOP10200.TRXSORCE
LEFT OUTER JOIN dbo.SOP10106 ON dbo.SOP10100.SOPTYPE = dbo.SOP10106.SOPTYPE
AND dbo.SOP10100.SOPNUMBE = dbo.SOP10106.SOPNUMBE
LEFT OUTER JOIN dbo.RM00102 RM00102_1 ON dbo.SOP10100.PRSTADCD = RM00102_1.ADRSCODE
AND dbo.SOP10100.CUSTNMBR = RM00102_1.CUSTNMBR
WHERE dbo.SOP10100.SOPNUMBE = {?SOPNumber}

As all other reports, to avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the original SOP Sales Invoice:

Crystal Report Design:

image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Dynamics GP Reporting Series: Bank Transfers

As well as the bank transactions, bank transfers does not have “Save” operation as well, it directly posts the transaction to your checkbook, where we’ll need to get our report printed after the post operation, below the SQL command needed:

SQL Command:

SELECT    
dbo.CM20600.CMXFRNUM AS CMTrxNum, dbo.CM20600.CMCHKBKID,
dbo.CM20600.CMFRMCHKBKID, dbo.CM20600.CMXFTDATE,
dbo.CM20100.AUDITTRAIL, dbo.CM20200.DSCRIPTN,
dbo.CM20200.POSTEDDT, dbo.CM20200.Xfr_Record_Number,
dbo.CM20400.DistRef, dbo.GL00105.ACTNUMST,
dbo.GL00100.ACTDESCR, dbo.CM20200.ORIGAMT,
dbo.CM20400.ORCRDAMT, dbo.CM20400.ORDBTAMT,
dbo.CM20200.CURNCYID
FROM         dbo.CM20400
INNER JOIN dbo.CM20200 ON dbo.CM20400.CMDNUMWK = dbo.CM20200.CMRECNUM
INNER JOIN dbo.GL00100 ON dbo.CM20400.ACTINDX = dbo.GL00100.ACTINDX
INNER JOIN dbo.GL00105 ON dbo.GL00100.ACTINDX = dbo.GL00105.ACTINDX
INNER JOIN dbo.CM20600
INNER JOIN dbo.CM20100 ON dbo.CM20600.CMXFRNUM = dbo.CM20100.CMTrxNum
ON dbo.CM20200.CMRECNUM = dbo.CM20100.CMDNUMWK
WHERE     (dbo.CM20200.CMTrxType = 7)
AND dbo.CM20100.CMTrxNum = {?CMTRXNUM}

To avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the original Bank Transfer Posting Journal:

Crystal Report Design:

image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Thursday, April 15, 2010

Dynamics GP Reporting Series: GL Edit List

As we will need to print a report that displays all open GL Transactions and filter the result on a specific batch, we’ll need to start be getting the needed tables and create our view:

SQL Command:

SELECT     DISTINCT
dbo.GL10000.BACHNUMB,    dbo.SY00500.BCHTOTAL,
dbo.SY00500.SERIES,        dbo.SY00500.BCHCOMNT,
dbo.SY00500.NUMOFTRX,    dbo.SY00500.BACHDATE,
dbo.SY00500.CNTRLTRX,    dbo.SY00500.CNTRLTOT,
dbo.SY00500.APPROVL,    dbo.SY00500.APPRVLDT,
dbo.SY00500.APRVLUSERID, dbo.SY00500.BACHFREQ,
dbo.GL10000.JRNENTRY,    dbo.GL10000.TRXDATE,
dbo.GL10000.RVRSNGDT,    dbo.GL10000.SOURCDOC,
dbo.GL10000.TRXTYPE,    dbo.GL10000.REFRENCE,
dbo.GL00100.ACTDESCR,    dbo.GL10001.DSCRIPTN,
dbo.GL10001.DEBITAMT,    dbo.GL10001.CRDTAMNT,
dbo.GL00105.ACTNUMST,    dbo.GL10001.SQNCLINE
FROM        
dbo.SY00500 INNER JOIN
dbo.GL10000 ON dbo.SY00500.BACHNUMB = dbo.GL10000.BACHNUMB
LEFT OUTER JOIN    dbo.GL00100
INNER JOIN dbo.GL10001 ON dbo.GL00100.ACTINDX = dbo.GL10001.ACTINDX
INNER JOIN dbo.GL00105 ON dbo.GL10001.ACTINDX = dbo.GL00105.ACTINDX
ON dbo.GL10000.DTAControlNum = dbo.GL10001.ORCTRNUM
AND dbo.GL10000.BACHNUMB = dbo.GL10001.BACHNUMB
AND dbo.GL10000.JRNENTRY = dbo.GL10001.JRNENTRY

To avoid any issues when creating our crystal report, we’ll need to add the above statement as a “Command” instead of direct tables as the command does not store the database name along with the statement, the report will need to be designed to look like the original GL edit list:

Crystal Report Design:

image

Few optimizations are still required to include calculations and formulas to get the report in the needed format.

Regards,
--
Mohammad R. Daoud - CTO
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Related Posts:

Related Posts with Thumbnails