Jan 9, 2024

Void a Check in Microsoft Dynamics GP

 

It’s important to know how to void a check in Microsoft Dynamics GP. At times you may want to void some Payables Management transactions. The following transactions can also be voided in the above-mentioned applications: Credit Memos, Payments, and Returns. Also, note that transactions in both the open and the history tables can also be voided.

Documents in the Open Tables

If unapplied, credit memos and invoices can be voided. To void a document in the open tables, use the window “Void Open Payables Transactions.” Simply click on TRANSACTIONS, point the cursor to PURCHASING, and then click on VOID OPEN TRANSACTIONS. Once you void a credit document, even the debit document initially applied to the now void credit document automatically becomes unapplied. You may then apply that debit document to another document. In case the vendor of the transaction you want to void happens to be on hold, then you can go ahead and void the transaction. Remember that the hold limitation will apply to documents on hold.

Documents Fully Applied and in the History Tables

If you want to void a document in the history tables, use the window “Void Historical Payables Transactions.” You can do this by clicking on TRANSACTIONS, pointing to PURCHASING, and then clicking VOID HISTORICAL TRANSACTIONS.

Documents Partially Applied/ On Hold

To void such as transaction, follow the steps outlined if these specified condition holds true.

Condition 1: The transaction document you want to void is a credit document (credit memos or payments) partially applied.

1. Create a new invoice (a dummy one) for the remaining amount of the partially applied document. Please note that the new invoice will be voided once this process ends. This is mandatory because it is not possible for you to void a credit document if it is not in the history status, meaning it is fully applied.

You can do this by following these steps:

        a) While still on the TRANSACTIONS menu, move your cursor to point to PURCHASING and then click TRANSACTION ENTRY.

        b) In the window “Payables Transaction Entry,” enter an invoice for that vendor who has the partially applied document you wish to void. Then, enter an amount – for the invoice – that equals the amount that remains of the document you wish to void.

        c) Then close the window after you click on POST

        d) Once you have specified the report destination, print the posting journals.

2. After you have created a new invoice, apply the newly created invoice to the partially applied document.

        a) Point to PURCHASING on the TRANSACTIONS menu and then click “Apply Payables Documents.”

        b) In the window “Apply Payables Documents,” enter the vendor ID in the relevant box, and the document number of your partially applied document you wish to void in the “Document No” box. 

        c) To apply the amount the remains of the partially applied document, select the new invoice and then click OK.

3. Voiding the partially applied document

        a) Point to PURCHASING on the TRANSACTIONS menu, click VOID HISTORICAL TRANSACTIONS.

        b) In the window “Void Historical Transactions,” choose the partially applied document you wish to void and then check the VOID checkbox.

        c) Close the window after you click Void

        d) Print the posting journals after you have specified the report destination.

 4. Voiding the new invoice created in Step 1

        a) Pointing to PURCHASING on the TRANSACTION menu, click “Void open Transactions.”

        b) Enter the vendor ID in the relevant box labeled “Vendor ID” which you will find in “Void Open Transactions” window.

     c) Select the new invoice and check the VOID checkbox.

     d) Click Void

     e) Print the posting journals after specifying the report destination.

 5. Verify your General Ledger (GL) transactions before posting the adjustments or deleting the GL transactions if in a batch. Posting the GL transactions would mean you won’t lose the drill back option.

Note that the original invoice containing the partially applied document that has been voided is left with the status “Open.” Therefore, you may void the new invoice created in step 1 above.

 

Condition 2: The transaction to void is a partially applied invoice.

1. Void the credit document applied to the invoice.

         a) Pointing to PURCHASING on the TRANSACTIONS menu, click VOID HISTORICAL TRANSACTIONS, and then select the partially applied document applied to the partially applied invoice.     

        b) Click to select the VOID checkbox.

        c) Print the posting journals after specifying the report destination.

Note that if the credit document applied to the invoice also happens to be partially applied, then you should follow the steps outlined for condition 1 so that you can void that partially applied document.

2. Voiding the invoice

        a) Pointing to PURCHASING on the TRANSACTIONS menu, click “Void Open Transactions.”

       b) Enter the vendor ID in the relevant box.

       c) Select the additional invoice and then select the VOID checkbox.

       d) Select Void

       e) Print the posting journals after specifying the report destination.

3. Verify your GL transactions if you must post the adjustment or delete the GL transactions in a batch. 

 

Jan 3, 2024

Create a New Fiscal Period in Dynamics GP

  • Go to: Tools>>Setup>>Company>>Fiscal Periods
  • Where it says Year overwrite the year with the new year.
  • This should set up your first and last day of new year, if not then in the First Day field, type in the first day of the fiscal year and in the Last Day field, type in the last day of the fiscal year.
  • Your Number of Periods should be 12.
  • Hit Calculate and you will get the following screen:


  •  

     

    Dec 11, 2022

    Dynamics GP Visual Studio Tools SDK Templates for Visual Studio 2017

     Visual Studio Templates for Microsoft Dynamics GP Visual Studio Gallery

    Microsoft Dynamics GP End Of Life? Not Anytime Soon

    Microsoft told Community Summit North America 2022 conference-goers that the latest October 2022 release of GP 18.5 will be the last major features update. Despite this news, Microsoft has told the community that GP will continue to receive regulatory, tax and security and functionality updates, and Microsoft is committed to continuing extended support for GP until Jan 2028. Which is good news for many GP users to stay on with the ERP they love. 

    What is GP Modern Lifecycle and the latest info from Microsoft: 

    1. Since the October 2019 release, GP has been on the Modern Lifecycle services which means the version names are no longer being used. Any version released after GP 2018 is simply known as Dynamics GP. This doesn't mean there won't be new versions of Dynamics GP, but they just won't have public facing names or ‘vintages' like “GP 2018 R2” any longer.  
    2. If you are on an older version of Dynamics GP, like GP 2013 R2, support has been extended. See the chart above to  find out how long you can expect support.
    3. There will be three GP updates per year, including tax updates, new features, and a year-end update.  Users only need to update once per year to stay current.
    4. All updates will contain bug fixes. 

    Microsoft Dynamics GP is among Microsoft's most resilient products. Known for its agility and adaptability, it will likely remain a favourite solution for many years to come.

    Most Microsoft Partners who have been delivering Dynamics GP for years believe in the product and they plan to deliver services around GP as long as it is available. If you are a Microsoft Dynamics GP user or would like to be, you can learn more about updates and news concerning Dynamics GP by connecting with the following Microsoft Dynamics Partners who are committed to continued services around GP.

    Microsoft Dynamics GP Release (18.5) Now Available

    Microsoft recently released Dynamics GP 18.5, and we’re excited to introduce you to some of the new features! With this release, you will discover new innovations across the Microsoft Dynamics GP platform.

     Below are couple of quick highlights to get you started: 

    New Features:

    Application:

    • Summary Display in Bank Reconciliation for EFT
    • Account Category & Segment Look up Option
    • Add Batch Number & Source to Navigation List
    • Checkbook Register and Balance Inquiry revitalized
    • Payables 1099-NEC form prints with LINES and BOXES!!
    • Print Cash Receipts and email
    • Credit Card Payment post in Summary to Bank Reconciliation
    • Reprint Bank Reconciliation Posting Journal Options
    • Add Date Range to the Bank Transaction History Report
    • Inactivate Vendor Address Record
    • Auto posting to General Ledger from Payables when you use Transaction Level Posting
    • Print and email Purchase Order Processing Documents at the same time (Just like SOP)

    System:

    • Complete automation of Workflow posting thru email approval (building from 18.4 feature)
    • Workflow Option for No Approval Needed
    • Enable View Workflow History on Reversing Journal Entries
    • Add time option to Scheduled Check Links (building from 18.3 feature)
    • Modern Authentication in Web Client

    Jul 25, 2018

    How Click-to-Dial Helps Microsoft Dynamics CRM Users Achieve Sales and Service Success

    Article courtesy tenfold.

    Millions of users rely on Microsoft Dynamics CRM as the central hub for all their customer data. Client-facing teams use it to aggregate and analyze data on prospects to inform and support the execution of their sales and service strategies.

    Dynamics is one of the leading CRMs in the market—because of this, third-party enhancements and programs are constantly being built in the pursuit of making the most out of the CRM. One of the most sought-out features that add significant value to Dynamics and its users is click-to-call or click-to-dial.

    In this article, we will go over the benefits of having click-to-call for MS Dynamics for sales and service teams.

    You can read the complete article here.

    Jul 23, 2018

    Document Attachment in Microsoft GP


    Document Attachment Feature in Microsoft GP helps to attach documents such as requisitions, credit reports and images to master records, Sales Order Processing transactions and Purchase Order Processing transactions. You can attach documents to individual line items on transactions. But note that this feature is not available for all the windows in GP, availability of this feature is listed below

    Type
    Window
    Cards
    Item Maintenance
    Cards
    Vendor Maintenance
    Cards
    Customer Maintenance
    Transaction
    Sales Transaction Entry (SOP)
    Transaction
    Purchase Order Entry (POP)
    Transaction
    In-Transit Transfer Receipt
    Transaction
    Receiving’s Transaction Entry

    Setting up Document Attachment

    1)      Navigate to
    Microsoft Dynamics GP >> Tools >> Setup >> Company >> Document Attachment Setup

    Working with Document Attachment

     Open the cards/transaction window which are listed above, let say I want to attach a document for Customer
    ·         Open the Customer Maintenance window and select the customer for which you want to attach the document.

    ·         Click on the attachment (Paper Clip) icon on the windows to open Document Attachment Management Windows as shown below

    ·         Click on the Attach button to select a file to attach.

    ·         After selecting the file you can see in the grid as shown below

    ·         Further You can set the attachment property by click on the Expansion button on the attached file line to open Attachment Property windows


    SQL Server Database Coding Standards and Guidelines

    Naming

    Tables:        
    Rules: Pascal notation; end with an ‘s’
     Examples: Products, Customers
    Group related table names1
    Stored Procs:
    Rules: sp<App Name>_[<Group Name >_]<Action><table/logical instance>
    Examples: spOrders_GetNewOrders, spProducts_UpdateProduct
    Triggers:
    Rules: TR_<TableName>_<action>
    Examples: TR_Orders_UpdateProducts
    Notes: The use of triggers is discouraged
    Indexes:
    Rules: IX_<TableName>_<columns separated by _>
    Examples: IX_Products_ProductID
    Primary Keys:
    Rules: PK_<TableName>
    Examples: PK_Products
    Foreign Keys:
    Rules: FK_<TableName1>_<TableName2>
    Example: FK_Products_Orderss
    Defaults:
    Rules: DF_<TableName>_<ColumnName>
    Example: DF_Products_Quantity
    Columns:
    If a column references another table’s column, name it <table name>ID
    Example: The Customers table has an ID column
    The Orders table should have a CustomerID column
    General Rules:
    Do not use spaces in the name of database objects
    Do not use SQL keywords as the name of database objects
    In cases where this is necessary, surround the object name with brackets, such as [Year]
    Do not prefix stored procedures with ‘sp_’2
    Prefix table names with the owner name3

    Structure

    · Each table must have a primary key
    o In most cases it should be an IDENTITY column named ID
    · Normalize data to third normal form
    o Do not compromise on performance to reach third normal form. Sometimes, a little denormalization results in better performance.
    · Do not use TEXT as a data type; use the maximum allowed characters of VARCHAR instead
    · In VARCHAR data columns, do not default to NULL; use an empty string instead
    · Columns with default values should not allow NULLs
    · As much as possible, create stored procedures on the same database as the main tables they
    will be accessing

    Formatting

    · Use upper case for all SQL keywords
    o SELECT, INSERT, UPDATE, WHERE, AND, OR, LIKE, etc.
    · Indent code to improve readability
    · Comment code blocks that are not easily understandable
    o Use single-line comment markers(--)
    o Reserve multi-line comments (/*.. ..*/) for blocking out sections of code
    · Use single quote characters to delimit strings.
    o Nest single quotes to express a single quote or apostrophe within a string
    _ For example, SET @sExample = 'SQL''s Authority'
    · Use parentheses to increase readability
    o WHERE (color=’red’ AND (size = 1 OR size = 2))
    · Use BEGIN..END blocks only when multiple statements are present within a conditional code
    segment.
    · Use one blank line to separate code sections.
    · Use spaces so that expressions read like sentences.
    o fillfactor = 25, not fillfactor=25
    · Format JOIN operations using indents
    o Also, use ANSI Joins instead of old style joins4
    · Place SET statements before any executing code in the procedure.

    Coding

    · Optimize queries using the tools provided by SQL Server5
    · Do not use SELECT *
    · Return multiple result sets from one stored procedure to avoid trips from the application server
    to SQL server
    · Avoid unnecessary use of temporary tables
    o Use 'Derived tables' or CTE (Common Table Expressions) wherever possible, as they
    perform better6
    · Avoid using <> as a comparison operator
    o Use ID IN(1,3,4,5) instead of ID <> 2
    · Use SET NOCOUNT ON at the beginning of stored procedures7
    · Do not use cursors or application loops to do inserts8
    o Instead, use INSERT INTO
    · Fully qualify tables and column names in JOINs
    · Fully qualify all stored procedure and table references in stored procedures.
    · Do not define default values for parameters.
    o If a default is needed, the front end will supply the value.
    · Do not use the RECOMPILE option for stored procedures.
    · Place all DECLARE statements before any other code in the procedure.
    · Do not use column numbers in the ORDER BY clause.
    · Do not use GOTO.
    · Check the global variable @@ERROR immediately after executing a data manipulation statement
    (like INSERT/UPDATE/DELETE), so that you can rollback the transaction if an error occurs
    o Or use TRY/CATCH
    · Do basic validations in the front-end itself during data entry
    · Off-load tasks, like string manipulations, concatenations, row numbering, case conversions, type
    conversions etc., to the front-end applications if these operations are going to consume more
    CPU cycles on the database server
    · Always use a column list in your INSERT statements.
    o This helps avoid problems when the table structure changes (like adding or dropping a
    column).
    · Minimize the use of NULLs, as they often confuse front-end applications, unless the applications
    are coded intelligently to eliminate NULLs or convert the NULLs into some other form.
    o Any expression that deals with NULL results in a NULL output.
    o The ISNULL and COALESCE functions are helpful in dealing with NULL values.
    · Do not use the identitycol or rowguidcol.
    · Avoid the use of cross joins, if possible.
    · When executing an UPDATE or DELETE statement, use the primary key in the WHERE condition,
    if possible. This reduces error possibilities.
    · Avoid using TEXT or NTEXT datatypes for storing large textual data.9
    o Use the maximum allowed characters of VARCHAR instead
    · Avoid dynamic SQL statements as much as possible.10
    · Access tables in the same order in your stored procedures and triggers consistently.11
    · Do not call functions repeatedly within your stored procedures, triggers, functions and batches.12
    · Default constraints must be defined at the column level.
    · Avoid wild-card characters at the beginning of a word while searching using the LIKE keyword,
    as these results in an index scan, which defeats the purpose of an index.
    · Define all constraints, other than defaults, at the table level.
    · When a result set is not needed, use syntax that does not return a result set.13
    · Avoid rules, database level defaults that must be bound or user-defined data types. While these
    are legitimate database constructs, opt for constraints and column defaults to hold the database
    consistent for development and conversion coding.
    · Constraints that apply to more than one column must be defined at the table level.
    · Use the CHAR data type for a column only when the column is non-nullable.14
    · Do not use white space in identifiers.
    · The RETURN statement is meant for returning the execution status only, but not data.

    Reference

    1) Group related table names:
    Products_USA
    Products_India
    Products_Mexico

    2) The prefix sp_ is reserved for system stored procedures that ship with SQL Server. Whenever SQL
    Server encounters a procedure name starting with sp_, it first tries to locate the procedure in the
    master database, then it looks for any qualifiers (database, owner) provided, then it tries dbo as the
    owner. Time spent locating the stored procedure can be saved by avoiding the "sp_" prefix.

    3) This improves readability and avoids unnecessary confusion. Microsoft SQL Server Books Online
    states that qualifying table names with owner names helps in execution plan reuse, further boosting
    performance.

    4)
    False code:
    SELECT *
    FROM Table1, Table2
    WHERE Table1.d = Table2.c
    True code:
    SELECT *
    FROM Table1
    INNER JOIN Table2 ON Table1.d = Table2.c

    5) Use the graphical execution plan in Query Analyzer or SHOWPLAN_TEXT or SHOWPLAN_ALL
    commands to analyze your queries. Make sure your queries do an "Index seek" instead of an "Index
    scan" or a "Table scan." A table scan or an index scan is a highly undesirable and should be avoided
    where possible.

    6) Consider the following query to find the second highest offer price from the Items table:
    SELECT MAX(Price)
    FROM Products
    WHERE ID IN
    (
    SELECT TOP 2 ID
    FROM Products
    ORDER BY Price Desc
    )
    The same query can be re-written using a derived table, as shown below, and it performs generally
    twice as fast as the above query:
    SELECT MAX(Price)
    FROM
    (
    SELECT TOP 2 Price
    FROM Products
    ORDER BY Price DESC
    )

    7) This suppresses messages like '(1 row(s) affected)' after executing INSERT, UPDATE, DELETE and
    SELECT statements. Performance is improved due to the reduction of network traffic.

    8) Try to avoid server side cursors as much as possible. Always stick to a 'set-based approach' instead
    of a 'procedural approach' for accessing and manipulating data. Cursors can often be avoided by using
    SELECT statements instead. If a cursor is unavoidable, use a WHILE loop instead. For a WHILE loop to
    replace a cursor, however, you need a column (primary key or unique key) to identify each row
    uniquely.

    9) You cannot directly write or update text data using the INSERT or UPDATE statements. Instead, you
    have to use special statements like READTEXT, WRITETEXT and UPDATETEXT. So, if you don't have to
    store more than 8KB of text, use the CHAR(8000) or VARCHAR(8000) datatype instead.

    10) Dynamic SQL tends to be slower than static SQL, as SQL Server must generate an execution plan at runtime. IF and CASE statements come in handy to avoid dynamic SQL.

    11) This helps to avoid deadlocks. Other things to keep in mind to avoid deadlocks are:
    · Keep transactions as short as possible.
    · Touch the minimum amount of data possible during a transaction.
    · Never wait for user input in the middle of a transaction.
    · Do not use higher level locking hints or restrictive isolation levels unless they are absolutely
    needed.

    12) You might need the length of a string variable in many places of your procedure, but don't call the
    LEN function whenever it's needed. Instead, call the LEN function once and store the result in a
    variable for later use.

    13)
    IF EXISTS (SELECT 1 FROM Products WHERE ID = 50)
    Instead Of:
    IF EXISTS (SELECT COUNT(ID) FROM Products WHERE ID = 50)

    14) CHAR(100), when NULL, will consume 100 bytes, resulting in space wastage. Preferably, use
    VARCHAR(100) in this situation. Variable-length columns have very little processing overhead
    compared with fixed-length columns.