Errors have been found in this check batch. Please correct the errors before printing

Today our AP Department called in and reported they were not able print checks, and when our AP Department calls in, some is wrong, they can handle almost any AP GP functions and issues.  Got the error messages it just reads as follows:

Check batch errors

As routine question asked the AP team, did you print the edit list and were there any errors reported on it ?  As expected got a neatly organized and crisp report – no point reviewing it, sure it would have been already done, but I have asked it have to review it,  completed the formality,  as expected it wasn’t helpful.

Based on experience knew that one of the vendor in the check batch is not active which is causing the error, the problem is how do we identify the vendor for a batch of 60  odd checks ?

Solution:
1) Generated  just in time Dex SQL Log, which did list the last vendor information when error occurred.  We were able to activate the vendor and when reprocessed the batch again the problem re appeared.

2) We realized that the recent vendor reorganization process where multiple vendors were inactivated (Yes – not from GP) is the root cause for the problem, another reason why we should not update GP tables outside GP.  There are other vendors in the check batch who needs to be activated.  Is there a easy way ?  The Dex SQL is ok, but is sequential and stops after every error.

3) Decided to write a SSRS Report quickly to check vendor status of all check batch vendors.  Which table is the payment info stored ?  Identifying the table  was not a problem,  all I had to do was to  connect to   http://www.sanjaykumar.us/index.php/category/dynamics-gp/tables-dynamics-gp/pm/
and search for the word work….
payment work

The table we needed was PM10300.   Writing the query there after was a flash….

DECLARE @batchnumb AS VARCHAR(21) 

SELECT @batchnumb = '?' 

SELECT vendorid, 
       vendname, 
       CASE vendstts 
         WHEN 1 THEN 'Active' 
         WHEN 2 THEN 'In Active' 
         WHEN 3 THEN 'Temp' 
       END AS status 
FROM   pm00200 WITH (nolock) 
WHERE  vendorid IN (SELECT vendorid 
                    FROM   pm10300 WITH (nolock) 
                    WHERE  bachnumb = @Batchnumb) 
       AND vendstts <> 1

This query returns active vendors not active at check batch and is delivered through SSRS report.  Now Our AP Department can manage this the situation themselves!  Turned out to be Happy Halloween after all.

Cheers!
Sanjay

e Connect – SOP invoice – example

Imports System
Imports System.Xml
Imports System.Xml.Serialization
Imports System.IO
Imports System.Text
Imports Microsoft.VisualBasic
Imports Microsoft.Dynamics.GP.eConnect
Imports Microsoft.Dynamics.GP.eConnect.Serialization
Public Class SOPinvoice
    Public Sub eConnectSend()
        'Serialized XML File         
        Dim xmldocument As String
        'Connection String         
        Dim sConnectionString As String
        'Result         
        Dim xmlobject As String
        sConnectionString = "data source=[SQLSERVER];initial catalog=TWO;integrated security=SSPI; persist security info=False;packet size=4096"
        Dim NextNumberObject As New GetNextDocNumbers
        Dim SOPnumber As String = NextNumberObject.GetNextSOPNumber(IncrementDecrement.Increment, "STDINV", SopType.SOPInvoice, sConnectionString)

        Using eConCall As New eConnectMethods
            Try
                SerializeObject("c:\TEST\xmlfile1.xml ", SOPnumber, sConnectionString)
                Dim xmldoc As New Xml.XmlDocument
                xmldoc.Load("c:\TEST\xmlfile1.xml")
                xmldocument = xmldoc.OuterXml
                xmlobject = eConCall.CreateTransactionEntity(sConnectionString, xmldocument)
            Catch exp As eConnectException
                MsgBox(exp.ToString)
            Catch ex As System.Exception
                MsgBox(ex.ToString)
            Finally
                eConCall.Dispose()
                MsgBox("Success," + SOPnumber + " Created")
            End Try
        End Using
    End Sub
    Public Shared Sub SerializeObject(ByVal filename As String, SOPnumber As String, sConnectionString As String)
        Try
            Dim econnect As New eConnectType
            Dim SOPINV As New SOPTransactionType
            'header record
            Dim SOPINVHEAD As New taSopHdrIvcInsert
            With SOPINVHEAD
                .SOPTYPE = 3
                .DOCID = "STDINV"
                .SOPNUMBE = SOPnumber
                .DOCDATE = "04/12/2017"
                .CUSTNMBR = "AARONFIT0001"
                .BACHNUMB = "TEST"

            End With
            SOPINV.taSopHdrIvcInsert = SOPINVHEAD

            'line record
            Dim SOPLINE(0) As taSopLineIvcInsert_ItemsTaSopLineIvcInsert
            Dim SOPLINE1 As New taSopLineIvcInsert_ItemsTaSopLineIvcInsert
            With SOPLINE1
                .SOPTYPE = 3
                .DOCID = "STDINV"
                .SOPNUMBE = SOPnumber
                .CUSTNMBR = "AARONFIT0001"
                .ITEMNMBR = "100XLG"
                .QUANTITY = 1
                .DOCDATE = "04/12/2017"
                '.Print_Phone_NumberGB = 0
                '.PRINT_PHONE_NUMBERGBSPECIFIED = False

            End With
            SOPLINE(0) = SOPLINE1
            SOPINV.taSopLineIvcInsert_Items = SOPLINE

            ReDim Preserve econnect.SOPTransactionType(0)
            econnect.SOPTransactionType(0) = SOPINV

            Dim fs As New FileStream(filename, FileMode.Create)
            Dim writer As New XmlTextWriter(fs, New UTF8Encoding)
            Dim serializer As New XmlSerializer(GetType(eConnectType))
            serializer.Serialize(writer, econnect)
            writer.Close()
        Catch ex As ApplicationException
            MsgBox(ex.ToString)
        End Try
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        eConnectSend()
    End Sub

End Class

Adapted from Microsoft Dynamics GP eConnect Samples installed during eConnect installation.

Line breaks are issued to fit script within screen. Remove line breaks.

THIS CODE AND INFORMATION ARE PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE

Cheers!
Sanjay

Dynamics GP – Company Remit To Address on Sales Invoices

The requirement here is to get the second REMITTO  address defined at company set added to sales invoice report.

Lets start by creating the second address for the company at
Tools >> Setup >> Company >> Company >> Address

Address 2

Set the default address to primary
Company Address 1

Next lets modify the invoice report.  Open any invoice, and click on the printer icon at top right corner of the sales transaction inquiry window.sales invoice

Tick mark invoice and select blank paper and click print
print invoice

At the report destination window, select standard for report type and screen for
destination:

Report Destination

Generate the report by clicking ok and modify the report by clicking on the modify button
modify report

Now we are all set to add the second address to the report.  Select calculated fields at fields drop down and click new.
calcualted fields

Let’s create the first field remit to contact name.  Enter the field definition as follows:
calcualted field defination 1

Click on add
calculated field 2

Click on constants and fill the type as string and constant as REMITTO,  the address ID of the company address whose contact name will be placed on the report.
calculated field 3

Click on add
calculated field 4

Change the type to integer and constant to 1 ( 1=Contact Name)
calculated filed 5 Click on add
calculated filed 7

Complete the process of creating the calculated field by clicking on “OK” .  The filed now  appears at the calculated filed drop down list.
calculated field 8

Follow the same process to create other calculated fields for REMITTO company address. The second parameter value pair is as follows:

2 = Address 1
3 = Address 2
4 = Address 3
5 = City
6 = State
7 = Zip
8 = Country
9 = Phone 1
10 = Phone 2
11 = Phone 3
12 = Fax
13 = Country Code
14 = County
15 = Address Name
16 = Address ID

I am not going create all the fields in this post.  Once created, drag the calculated filed and drop into the invoice layout.
calculated filed 10

Close the layout, save all the changes and return to Dynamics GP.

Provide access to modified report to the user at Tools >> Setup >> System >> Alternate Forms and Modified report.
modifed report access

Save security updates.

Generate the invoice report  to check if the REMITTO contact name appears on the sales invoice report …..  It does!
remit to address on invoice 2

Cheers!
Sanjay

Dynamics GP – Payable Inter company Invoice entry example.

In this example an inter company payable transaction is demonstrated.  For this purpose two test companies are used:

Company Id Description
TWO Fabricam
THREE Tree (copy of TWO)

Inter company setup (created at TWO):
Tools >> Setup >> System >> Inter Company
internet

The inter company transaction:
Company TWO records an invoice related to company THREE in its books of accounts and issues payment to the vendor on behalf of company THREE.  Company TWO will record an inter company invoice as follows:

Transaction >> Purchasing >> Transaction Entry:

intercoinvoice

Create the distribution as follows:

icodist

Note for line one of distribution the account number is picked from company THREE.  For Line two the account number is picked from company TWO.  Click OK.

GP will prompt  an alert

icoalert

Click Yes.  Update the corresponding company ID for the second linecorrespondingico

and post the invoice.  The resulting AP  posting journal is as follows:

icojournal

GP has passed the required inter company entries at AP – Good.

Check the Journal entry at TWO:

TWOJOURNAL

Check the GL journal entry passed by GP at THREE

THREEJOURNAL

Looks good!

Cheers!

Sanjay

 

e Connect example – Create Vendor with multiple addresses,email address and internet info

vendorcard

Imports System
Imports System.Xml
Imports System.Xml.Serialization
Imports System.IO
Imports System.Text
Imports Microsoft.VisualBasic
Imports Microsoft.Dynamics.GP.eConnect
Imports Microsoft.Dynamics.GP.eConnect.Serialization

Public Class vENDORCREATE
    Public Sub eConnectSend()
        'Serialized XML File         
        Dim xmldocument As String
        'Connection String         
        Dim sConnectionString As String
        'Result         
        Dim xmlobject As String
        Using eConCall As New eConnectMethods
            Try
                SerializeObject("c:\test\xmlfile.xml ")
                Dim xmldoc As New Xml.XmlDocument
                xmldoc.Load("c:\test\xmlfile.xml")
                xmldocument = xmldoc.OuterXml
                sConnectionString = "data source=zfc-php;initial catalog=two;integrated security=SSPI; persist security info=False;packet size=4096"
                xmlobject = eConCall.CreateTransactionEntity(sConnectionString, xmldocument)
            Catch exp As eConnectException
                MsgBox(exp.ToString)
            Catch ex As System.Exception
                MsgBox(ex.ToString)
            Finally
                eConCall.Dispose()
                MsgBox("done")
            End Try
        End Using
    End Sub
    Public Shared Sub SerializeObject(ByVal filename As String)
        Try
            Dim econnect As New eConnectType
            Dim vendor As New PMVendorMasterType
            'Vendor record
            Dim vendorrecord As New taUpdateCreateVendorRcd
            With vendorrecord
                .VENDORID = "VENDORID"
                .VENDNAME = "Name"
                .VADDCDPR = "PRIMARY"
                .VADCDSFR = "SHIPFROM"
                .VADCDTRO = "REMITTO"
                .VNDCNTCT = "PRIMARYCONTACT"
                .CreateAddress = 1
                .UpdateIfExists = 1
            End With
            vendor.taUpdateCreateVendorRcd = vendorrecord

            'Address - Primary
            Dim adressarray(2) As taCreateVendorAddress_ItemsTaCreateVendorAddress
            Dim addessobject1 As New taCreateVendorAddress_ItemsTaCreateVendorAddress
            With addessobject1
                .VENDORID = "VENDORID"
                .ADRSCODE = "PRIMARY"
                .ADDRESS1 = "Address 1"
                .ADDRESS2 = "Address 2"
                .ADDRESS3 = "Address 3"
                .VNDCNTCT = "PRIMARYCONTACT"
                .CITY = "City"
                .STATE = "CO"
                .ZIPCODE = "80526"
                .PHNUMBR1 = "2017070162"
                .PHNUMBR2 = "2017070162"
                .PHNUMBR3 = "2017070162"
                .FAXNUMBR = "2017070162"
                .CCode = "US"
                .COUNTRY = "USA"
                .CITY = "Fort Collins"
            End With
            adressarray(0) = addessobject1

            Dim addessobject2 As New taCreateVendorAddress_ItemsTaCreateVendorAddress
            With addessobject2
                .VENDORID = "VENDORID"
                .ADRSCODE = "REMITTO"
                .ADDRESS1 = "Address 1"
                .ADDRESS2 = "Address 2"
                .ADDRESS3 = "Address 3"
                .CITY = "City"
                .STATE = "CO"
                .ZIPCODE = "80526"
                .PHNUMBR1 = "2017070162"
                .PHNUMBR1 = "2017070162"
                .PHNUMBR2 = "2017070162"
                .PHNUMBR3 = "2017070162"
                .FAXNUMBR = "2017070162"
                .CCode = "US"
                .COUNTRY = "USA"
                .CITY = "Fort Collins"
                .VNDCNTCT = "REMITTOCONTACT"
            End With
            adressarray(1) = addessobject2

            Dim addessobject3 As New taCreateVendorAddress_ItemsTaCreateVendorAddress
            With addessobject3
                .VENDORID = "VENDORID"
                .ADRSCODE = "SHIPFROM"
                .ADDRESS1 = "Address 1"
                .ADDRESS2 = "Address 2"
                .ADDRESS3 = "Address 3"
                .CITY = "City"
                .STATE = "CO"
                .ZIPCODE = "80526"
                .PHNUMBR1 = "2017070162"
                .PHNUMBR1 = "2017070162"
                .PHNUMBR2 = "2017070162"
                .PHNUMBR3 = "2017070162"
                .FAXNUMBR = "2017070162"
                .CCode = "US"
                .COUNTRY = "USA"
                .CITY = "Fort Collins"
                .VNDCNTCT = "SHIPFROMCONTACT"
            End With

            adressarray(2) = addessobject3
            vendor.taCreateVendorAddress_Items = adressarray

            'Internet address
            Dim internetaddress(0) As taCreateInternetAddresses_ItemsTaCreateInternetAddresses
            Dim INERNETADDRESS1 As New taCreateInternetAddresses_ItemsTaCreateInternetAddresses
            With INERNETADDRESS1
                .ADRSCODE = "PRIMARY"
                .INET1 = "EMAIL"
                .Master_ID = "VENDOR"
                .Master_Type = "VEN"
            End With
            internetaddress(0) = INERNETADDRESS1
            vendor.taCreateInternetAddresses_Items = internetaddress

            ReDim Preserve econnect.PMVendorMasterType(0)
            econnect.PMVendorMasterType(0) = vendor

            Dim fs As New FileStream(filename, FileMode.Create)
            Dim writer As New XmlTextWriter(fs, New UTF8Encoding)
            Dim serializer As New XmlSerializer(GetType(eConnectType))
            serializer.Serialize(writer, econnect)
            writer.Close()
        Catch ex As ApplicationException
            MsgBox(ex.ToString)
        End Try
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        eConnectSend()
    End Sub
End Class

 

Element name Data type Length Required Description
CUSTNMBR string 15 Y Customer number
HOLD i4 1 N Hold status:
0=Not on hold;
1=On hold
Default is zero on new record
INACTIVE i4 1 N Inactive:
0=Active;
1=Inactive
Default is zero on new record
CUSTNAME string 64 N Customer name
SHRTNAME string 15 N Short name; if not passed in, default is CUSTNAME
STMTNAME string 64 N Statement name; if not passed in, default is CUSTNAME
CUSTCLAS string 15 N Customer class ID
CUSTPRIORITY i4 2 N Customer priority; valid input values 1 (none) to 100
Default is one on new record
ADRSCODE string 15 N Primary address ID
CNTCPRSN string 60 N Contact person
ADDRESS1 string 60 N Customer address one
ADDRESS2 string 60 N Customer address two
ADDRESS3 string 60 N Customer address three
CITY string 35 N City
STATE string 29 N State
ZIPCODE string 10 N Zip code
CCode string 6 N Country code
COUNTRY string 60 N Country
PHNUMBR1 string 21 N Phone one
PHNUMBR2 string 21 N Phone two
PHNUMBR3 string 21 N Phone three
FAX string 21 N Fax
UPSZONE string 3 N UPS zone
SHIPMTHD string 15 N Shipping method
TAXSCHID string 15 N Tax schedule ID
SHIPCOMPLETE i4 1 N Ship complete documents:
0=False;
1=True
Default is zero on new record
PRSTADCD string 15 N Primary ship to address code
PRBTADCD string 15 N Primary bill to address code
STADDRCD string 15 N Statement to address code
SLPRSNID string 15 N Salesperson ID
SALSTERR string 15 N Sales territory
USERDEF1 string 20 N User-defined one
USERDEF2 string 20 N User-defined two
COMMENT1 string 30 N Comment one
COMMENT2 string 30 N Comment two
CUSTDISC number 21 N Trade discount
PYMTRMID string 20 N Payment terms ID
DISGRPER i4 2 N Discount grace period
DUEGRPER i4 2 N Due date grace period
PRCLEVEL string 10 N Price level
NOTETEXT string 8000 N Note text
BALNCTYP i4 1 N Balance type:
0=Open item;
1=Balance forward
Default is zero on new record
FNCHATYP i4 2 N Finance charge type:
0=None;
1=Percent;
2=Amount
Default is zero for new record
FNCHPCNT number 21 N Finance charge percent; used if FNCHATYP=1
FINCHDLR number 21 N Finance charge dollar; used if FNCHATYP=2
MINPYTYP i4 2 N Minimum payment type:
0=No minimum;
1=Percent; 2=Amount
Default is zero for new record
MINPYPCT number 21 N Minimum payment percent; used if MINPYTYP=1
MINPYDLR number 21 N Minimum payment dollar amount; used if MINPYTYP=2
CRLMTTYP i4 2 N Credit limit type:
0=No credit;
1=Unlimited;
2=Amount
Default is zero on new record
CRLMTAMT number 21 N Credit limit amount; used if CRLMTTYP=2
CRLMTPER i4 2 N Credit limit period; used if CRLMTTYP=2 and the credit limit warning is used in Microsoft Dynamics GP application
CRLMTPAM number 21 N Credit limit period amount; used if CRLMTTYP=2 and the credit limit warning is used in Microsoft Dynamics GP application
MXWOFTYP i4 2 N Maximum write-off type: 0=Not allowed;
1=Unlimited;
2=Maximum
Default is zero for new record
MXWROFAM number 21 N Maximum write-off amount; used if MXWOFTYP=2
Revalue_Customer i4 1 N Revalue customer:
0=Do not revalue;
1=Revalue
Default is one for new record
Post_Results_To i4 2 N Post results to:
0=Receivables/Discount Account;
1=Sales offset
Default is zero on new records
ORDERFULFILLDEFAULT i4 1 N Order fulfillment shortage:
1=None;
2=Back order remaining;
3=Cancel remaining
Default is one on new record
INCLUDEINDP i4 1 N Include in demand planning: 0=Do not include;
1=Include
Default is one on new record
CRCARDID string 15 N Credit card ID
CRCRDNUM string 20 N Credit card number
CCRDXPDT datetime 16 N Credit card expiration date
BANKNAME string 30 N Bank name
BNKBRNCH string 20 N Bank branch
USERLANG i4 2 N User language; default is zero on new record
TAXEXMT1 string 25 N Tax exempt one
TAXEXMT2 string 25 N Tax exempt two
TXRGNNUM string 25 N Tax registration number
CURNCYID string 15 N Currency ID
RATETPID string 15 N Rate type ID
STMTCYCL i4 2 N Statement Cycle:
1=No Statement;
2=Weekly;
3=Biweekly;
4=Semimonthly;
5=Monthly;
6=Bimonthly;
7=Quarterly
KPCALHST i4 1 N Maintain history—calendar year:
0=Do not maintain history;
1=Maintain history
Default is 1 on new record
KPERHIST i4 1 N Maintain history—fiscal year:
0=Do not maintain history;
1=Maintain history
Default is 1 on new record
KPTRXHST i4 1 N Maintain history—transaction:
0=Do not maintain history;
1=Maintain history
Default is 1 on new record
KPDSTHST i4 1 N Maintain history—distribution:
0=Do not maintain history;
1=Maintain history
Default is 1 on new record
Send_Email_Statements i4 1 N Send e-mail statements:
0=Do not sent statements;
1=Send statements
Default is zero on new record
ToEmail_Recipient string 80 N To email recipient; separate each recipient with a semicolon
CcEmail_Recipient string 80 N Carbon copy email recipient; separate each recipient with a semicolon
BccEmail_Recipient string 80 N Blind carbon copy email recipient; separate each recipient with a semicolon
CHEKBKID string 15 N Checkbook ID
DEFCACTY i4 2 N Cash account from: 0=Checkbook;
1=Customer
Default is zero on new record
RMCSHACTNUMST string 75 N Cash account; only valid if DEFCACTY=1
RMARACTNUMST string 75 N Accounts receivable account
RMSLSACTNUMST string 75 N Sales account
RMCOSACTNUMST string 75 N Cost of sales account
RMIVACTNUMST string 75 N Inventory account
RMTAKACTNUMST string 75 N Terms discount taken account
RMAVACTNUMST string 75 N Terms discount available account
RMFCGACTNUMST string 75 N Finance charges account
RMWRACTNUMST string 75 N Write-offs account
RMSORACTNUMST string 75 N Sales order returns account
RMOvrpymtWrtoffACTNUMST string 75 N Overpayment write-offs account
GPSFOINTEGRATIONID string 30 N Front office integration ID
INTEGRATIONSOURCE i4 2 N Integration source
INTEGRATIONID string 30 N Integration ID
UseCustomerClass i4 1 N Flag to have class setting roll down to elements not passed in; uses the CUSTCLAS class to roll down
CreateAddress i4 1 N Flag to allow a primary address code to be created on the fly:
0=Do not create address code;
1=Create address code
UpdateIfExists i4 1 N Flag to allow customer data to be updated if it exists:
0=Do not update;
1=Update if record exists;
2=Create if record does not exist and exits without error if record does exist
RequesterTrx i4 2 N Requester transaction:
0=False;
1=True (if True, it populates the requester shadow table)

Cheers!

Sanjay

Which AD Group my user account belongs to ?

This week end the plan was to  dissect Dynamics GP 2013  web client install.   While going through the documentation one of the requirement was the need to have Active Directory user group names for web client administrators and users.  As it was the week end did want to spoil the well earned week end of our IT folks, then the question was can we query the active directory and get couple of group names which I belonged to when you don’t have access to the active directory users and computer MMC.  Figured it out and it can be done, and just to keep a record of my finding I thought would write a blog post

Steps to identify active directory group membership for a given user:

1) Click on windows start button and type command.start button

2) Mouse over to command prompt at search resultscommand

3) Right click command prompt and run as administrator.

4) At the command prompt  type the following command:

net user <domain user name> /domain

and press enter. This should list full details of the user account which includes a complete list of users group membership.

Capture
Cheers!
Sanjay

 

 

 

 

 

 

 

Dynamics GP Report Writer Global Functions Quick Reference – Part 4 – Data retreival

Dynamics GP Report Writer Global Data Retreival Functions

FunctionParam TypeParamReturn TypeReturn
RW_CityStateZipstring
string
string
inCity
inState
inZipCode
stringoutCityStateZip
RW_CoAddrIDInfoAddress Code
integer
IN_Address_Code
IN_Field
stringOUT_String
RW_GetCommentTextstring
integer
integer
IN_CommentID
IN_characters
IN_line
stringOUT_string
RW_GetInternetInfostring
string
string
string
IN_MasterType
IN_MasterID
IN_AddressID
IN_field
stringOUT_string
RW_GetInternetPromptintegerIN_fieldstringOUT_string
RW_GetInternetTextstring
string
string
integer
integer
IN_MasterType
IN_MasterID
IN_AddressID
IN_characters
IN_line
stringOUT_string
RW_GetMsgintegerimsgstringsmsg
RW_GetMsgDisplay
RW_GetNoteTextcurrency
integer
integer
IN_NoteIndexstringOUT_string
RW_GetPOPTypeStringPOP TypenPOPTypestringsPOPType
RW_GetPOTypeStringPO TypenPOTypestringsPOType
RW_GetSOPTypeStringintegernSOPTypestringrw_GetSOPTypeString
RW_GetWFApprovalStatusStrin 'Workflow Approval Status'nWrkflwApprvlStatusstringrw_GetWFApprovalStatusStr
RW_GetWFPriorityStr'Workflow Priority'nWrkflwPrioritystringrw_GetWFPriorityStr
RW_PMAddrIDInfoVendor ID
Address Code
integer
IN_Vendor_ID
IN_Address_Code
IN_Field
stringOUT_String
RW_POPHDRCommentTextstring
integer
integer
IN_Number
IN_characters
IN_line
stringOUT_String
RW_POPLINECommentTextinteger
string
long
integer
integer
IN_Type
IN_Number
IN_Ord
IN_characters
IN_line
stringOUT_String
RW_RMAddrIDInfoCustomer Number
Address Code
integer
IN_Customer_Number
IN_Address_Code
IN_Field
stringOUT_String
RW_SOPHDRCommentTextinteger
string
integer
integer
IN_Type
IN_Number
IN_characters
IN_line
stringOUT_String
RW_SOPLINECommentTextinteger
string
long
long
integer
integer
IN_Type
IN_Number
IN_LineItem
IN_Component
IN_charactes
IN_line
stringOUT_String
Dynamics GP Report Writer Global Data Retreival Functions

Cheers!
Sanjay

Dynamics GP Report Writer Global Functions – Part 3 – Date Time Functions

Dynamics GP Report Writer Date Time Functions

FunctionParam TypeParamReturn TypeReturn
RW_AddMonthdate
integer
IN_date
IN_months
dateOUT_Date
RW_DateToStringdate
string
IN_date
IN_Format
stringOUT_string
RW_DiffDatedate
date
IN_start
IN_end
longOUT_diff
RW_EndOfMonthdateIN_datedateOUT_Date
RW_MakeDateinteger
integer
integer
IN_month
IN_day
IN_year
dateOUT_Date
RW_MakeTimeinteger
integer
integer
IN_hour
IN_minute
IN_second
stringOUT_time
RW_SetDatedate
integer
integer
integer
IN_date
IN_month
IN_day
IN_year
dateOUT_date
RW_SysDateinteger
IN_modedateOUT_date
RW_SysTimeinteger
IN_modestringtime
Dynamics GP Report Writer Date Time Functions

Cheers!
Sanjay

Dynamics GP Report Writer Global Functions Quick Reference – Part 2 – String Manipulation

FunctionParam TypeParamReturn TypeReturn
RW_Leftstring
integer
IN_string
IN_Length
stringOUT_string
RW_LengthstringIN_stringintegerOUT_lenght
RW_LowerstringIN_stringstringOUT_string
RW_Padstring
integer
string
integer
IN_string
IN_Direction
IN_Pad
IN_Lenght
stringOUT_string
RW_ParseStringstring
integer
integer
IN_string
IN_characters
IN_line
stringOUT_string
RW_Posstring
string
integer
IN_target
IN_search
IN_start
integerOUT_pos
RW_ProperstringIN_stringstringOUT_string
RW_Replacestring
string
integer
integer
IN_target
IN_replacement
IN_start
IN_length
stringOUT_string
RW_Rightstring
integer
IN_string
IN_Length
stringOUT_string
RW_Stripstring
string
IN_String
IN_Strip
stringOUT_string
RW_Substitutestring
string
string
string
string
string
IN_String
IN_Sub1
IN_Sub2
IN_Sub3
IN_Sub4
IN_Sub5
stringOUT_string
RW_Substringstring
integer
integer
IN_String
IN_Start
IN_Lenght
stringOUT_string
RW_Tokenstring
string
integer
IN_string
IN_token
IN_postition
stringOUT_string
RW_Trimstring
integer
string
integer
IN_String
IN_Direction
IN_Trim
stringOUT_string
RW_UpperstringIN_stringstringOUT_string

Cheers!
Sanjay

Dynamics GP Report Writer Global Functions Quick Reference – Part 1-Numeric Manipulations

Report writer Numeric Manipulations functions

FunctionParam TypeParamReturn TypeReturn
RW_AbsvcurrencyIN_value.vcurrency.OUT_value
RW_ConvertToWordsAndNumberscurrency
string
integer
IN_Value.
IN_Currency
IN_Mode.
stringOUT_string
RW_Formatvcurrency
integer
integer
integer
integer
IN_currency.
IN_cur_symbol.
IN_thou_sep
IN_dec_places
IN_neg_type
stringOUT_string
RW_MaxCurrvcurrency
vcurrency
IN_Value1
IN_Value2
vcurrencyOUT_Max
RW_MaxIntlong
long
IN_Value1
IN_Value2
longOUT_Max
RW_MinCurrvcurrency
vcurrency
IN_Value1
IN_Value2
vcurrencyOUT_Min
RW_MinIntlong
long
IN_Value1
IN_Value2
longOUT_Min
RW_PadZerocurrency
integer
integer
integer
IN_Amount
IN_Length
IN_Decimal
IN_DecSep
stringOUT_string
RW_Roundvcurrency
integer
integer
integer
IN_value
IN_side
IN_dec_places
IN_mode
vcurrencyOUT_value
RW_Truncatevcurrency


IN_value

vcurrency
integer
integer

IN_value
IN_side
IN_dec_places

RW_ValuestringIN_stringvcurrencyOUT_value
Report writer Numeric Manipulations functions

Cheers!
Sanjay