Friday, December 30, 2016

How to remove audio tracks from avi files

Use avidemux

https://sourceforge.net/projects/avidemux/?source=typ_redirect


  • Make a copy of all files to keep originals just in case
  • Open file in avidemux
  • Go to Audio>Select Track
  • Untick the track you don't want
  • Save File

How to track if an application has been launched multiple times


Thursday, December 29, 2016

Dynamics NAV - LS Retail - Calculate Statement does not detect any lines

There is a previous statement already calculated for those transactions

OR

Run the Z-Report at least once

OR

Tick Functionality Profile>General>Z.Rep Autopr. After T.Dec EOD
To autoprint a Z-Report whenever an EOD is done, which allows the statement to calculate correctly.

Wednesday, December 28, 2016

Dynamics NAV - LS Retail - Wrong Login on POS causes transactions to overwrite at head office due to re-used transaction number

To resolve this

  • Identify all transactions on terminal that are not in head office
    • SELECT * FROM [CRONUS$Transaction Header] where [POS Terminal No_] in ('REG01','REG02')
  • Identify all transactions on Terminal
    • SELECT * FROM [CRONUS$Transaction Header] 
  • Compare the Transaction No_ and Receipt no_ fields to confirm which transactions were overwritten
  • Renumber the Transaction No_ fields on the POS for all the missing transactions using new transaction numbers
  • Set the next transaction number on the POS to the new last number
  • Delete all of the old incorrect transactions
    • delete FROM [CRONUS$Transaction Header] where [POS Terminal No_] = 'S001' and [Transaction No_] <= 170
    • delete FROM [CRONUS$Trans_ Discount Entry] where [POS Terminal No_] = 'S001' and [Transaction No_] <= 170
    • delete FROM [CRONUS$Trans_ Infocode Entry] where [POS Terminal No_] = 'S001' and [Transaction No_] <= 170
    • delete FROM [CRONUS$Trans_ Payment Entry] where [POS Terminal No_] = 'S001' and [Transaction No_] <= 170
    • delete FROM [CRONUS$Trans_ Sales Entry] where [POS Terminal No_] = 'S001' and [Transaction No_] <= 170
    • delete FROM [CRONUS$Trans_ Tender Declar_ Entry] where [POS Terminal No_] = 'S001' and [Transaction No_] <= 170
  • Run the replication to pull the transactions

This codeunit has been written to perform the changes.
This should only be used on the POS having the issue
Before you to run this codeunit, you must change the values for the following fields:

      OldStoreNo
      OldPOSTerminal
      NewStoreNo
      NewPOSTerminal
      NewTransNo
      OldTransNo
-------------------------------------------------------------------------------------------------------------
OBJECT Codeunit 50080 Fix Transaction
{
  OBJECT-PROPERTIES
  {
    Date=06/01/16;
    Time=12:04:53 PM;
    Modified=Yes;
    Version List=DAV;
  }
  PROPERTIES
  {
    OnRun=BEGIN
            OldStoreNo := 'S0002';
            OldPOSTerminal := 'P0003';

            NewStoreNo := 'S0012';
            NewPOSTerminal := 'P0028';

            NewTransNo := 1755;  //First New Transaction No.

            FOR OldTransNo := 20000161 TO 20000162 DO BEGIN
              TransactionHeader.GET(OldStoreNo,OldPOSTerminal,OldTransNo);
              TransactionHeaderNew := TransactionHeader;
              TransactionHeaderNew."Store No." := NewStoreNo;
              TransactionHeaderNew."POS Terminal No." := NewPOSTerminal;
              TransactionHeaderNew."Transaction No." := NewTransNo;
              TransactionHeaderNew.INSERT(TRUE);  //This updates the Replication Counter field

              TransSalesEntry.RESET;
              TransSalesEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransSalesEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransSalesEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransSalesEntry.FINDSET THEN REPEAT
                TransSalesEntryNew := TransSalesEntry;
                TransSalesEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransSalesEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransSalesEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransSalesEntryNew.VALIDATE("Replication Counter");
                TransSalesEntryNew.INSERT(FALSE);
                TransSalesEntry.DELETE;
              UNTIL TransSalesEntry.NEXT = 0;

              TransPaymentEntry.RESET;
              TransPaymentEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransPaymentEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransPaymentEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransPaymentEntry.FINDSET THEN REPEAT
                TransPaymentEntryNew := TransPaymentEntry;
                TransPaymentEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransPaymentEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransPaymentEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransPaymentEntryNew.VALIDATE("Replication Counter");
                TransPaymentEntryNew.INSERT(FALSE);
                TransPaymentEntry.DELETE;
              UNTIL TransPaymentEntry.NEXT = 0;

              TransIncomeExpenseEntry.RESET;
              TransIncomeExpenseEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransIncomeExpenseEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransIncomeExpenseEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransIncomeExpenseEntry.FINDSET THEN REPEAT
                TransIncomeExpenseEntryNew := TransIncomeExpenseEntry;
                TransIncomeExpenseEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransIncomeExpenseEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransIncomeExpenseEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransIncomeExpenseEntryNew.VALIDATE("Replication Counter");
                TransIncomeExpenseEntryNew.INSERT(FALSE);
                TransIncomeExpenseEntry.DELETE;
              UNTIL TransIncomeExpenseEntry.NEXT = 0;

              TransCouponEntry.RESET;
              TransCouponEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransCouponEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransCouponEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransCouponEntry.FINDSET THEN REPEAT
                TransCouponEntryNew := TransCouponEntry;
                TransCouponEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransCouponEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransCouponEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransCouponEntryNew.VALIDATE("Replication Counter");
                TransCouponEntryNew.INSERT(FALSE);
                TransCouponEntry.DELETE;
              UNTIL TransCouponEntry.NEXT = 0;

              TransInfocodeEntry.RESET;
              TransInfocodeEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransInfocodeEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransInfocodeEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransInfocodeEntry.FINDSET THEN REPEAT
                TransInfocodeEntryNew := TransInfocodeEntry;
                TransInfocodeEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransInfocodeEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransInfocodeEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransInfocodeEntryNew.VALIDATE("Replication Counter");
                TransInfocodeEntryNew.INSERT(FALSE);
                TransInfocodeEntry.DELETE;
              UNTIL TransInfocodeEntry.NEXT = 0;

              TransInventoryEntry.RESET;
              TransInventoryEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransInventoryEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransInventoryEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransInventoryEntry.FINDSET THEN REPEAT
                TransInventoryEntryNew := TransInventoryEntry;
                TransInventoryEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransInventoryEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransInventoryEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransInventoryEntryNew.VALIDATE("Replication Counter");
                TransInventoryEntryNew.INSERT(FALSE);
                TransInventoryEntry.DELETE;
              UNTIL TransInventoryEntry.NEXT = 0;

              TransMixMatchEntry.RESET;
              TransMixMatchEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransMixMatchEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransMixMatchEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransMixMatchEntry.FINDSET THEN REPEAT
                TransMixMatchEntryNew := TransMixMatchEntry;
                TransMixMatchEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransMixMatchEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransMixMatchEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransMixMatchEntryNew.VALIDATE("Replication Counter");
                TransMixMatchEntryNew.INSERT(FALSE);
                TransMixMatchEntry.DELETE;
              UNTIL TransMixMatchEntry.NEXT = 0;

              TransDiscountEntry.RESET;
              TransDiscountEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransDiscountEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransDiscountEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransDiscountEntry.FINDSET THEN REPEAT
                TransDiscountEntryNew := TransDiscountEntry;
                TransDiscountEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransDiscountEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransDiscountEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransDiscountEntryNew.VALIDATE("Replication Counter");
                TransDiscountEntryNew.INSERT(FALSE);
                TransDiscountEntry.DELETE;
              UNTIL TransDiscountEntry.NEXT = 0;

              TransDiscBenefitEntry.RESET;
              TransDiscBenefitEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransDiscBenefitEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransDiscBenefitEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransDiscBenefitEntry.FINDSET THEN REPEAT
                TransDiscBenefitEntryNew := TransDiscBenefitEntry;
                TransDiscBenefitEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransDiscBenefitEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransDiscBenefitEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransDiscBenefitEntryNew.VALIDATE("Replication Counter");
                TransDiscBenefitEntryNew.INSERT(FALSE);
                TransDiscBenefitEntry.DELETE;
              UNTIL TransDiscBenefitEntry.NEXT = 0;

              MemberProcessOrderEntry.RESET;
              MemberProcessOrderEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              MemberProcessOrderEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              MemberProcessOrderEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF MemberProcessOrderEntry.FINDSET THEN REPEAT
                MemberProcessOrderEntryNew := MemberProcessOrderEntry;
                MemberProcessOrderEntryNew."Store No." := TransactionHeaderNew."Store No.";
                MemberProcessOrderEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                MemberProcessOrderEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                MemberProcessOrderEntryNew.VALIDATE("Replication Counter");
                MemberProcessOrderEntryNew.INSERT(FALSE);
                MemberProcessOrderEntry.DELETE;
              UNTIL MemberProcessOrderEntry.NEXT = 0;

              TransTenderDeclarEntry.RESET;
              TransTenderDeclarEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransTenderDeclarEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransTenderDeclarEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransTenderDeclarEntry.FINDSET THEN REPEAT
                TransTenderDeclarEntryNew := TransTenderDeclarEntry;
                TransTenderDeclarEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransTenderDeclarEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransTenderDeclarEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransTenderDeclarEntryNew.VALIDATE("Replication Counter");
                TransTenderDeclarEntryNew.INSERT(FALSE);
                TransTenderDeclarEntry.DELETE;
              UNTIL TransTenderDeclarEntry.NEXT = 0;

              TransSafeEntry.RESET;
              TransSafeEntry.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransSafeEntry.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransSafeEntry.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransSafeEntry.FINDSET THEN REPEAT
                TransSafeEntryNew := TransSafeEntry;
                TransSafeEntryNew."Store No." := TransactionHeaderNew."Store No.";
                TransSafeEntryNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransSafeEntryNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransSafeEntryNew.VALIDATE("Replication Counter");
                TransSafeEntryNew.INSERT(FALSE);
                TransSafeEntry.DELETE;
              UNTIL TransSafeEntry.NEXT = 0;

              TransCashDeclaration.RESET;
              TransCashDeclaration.SETRANGE("Store No.",TransactionHeader."Store No.");
              TransCashDeclaration.SETRANGE("POS Terminal No.",TransactionHeader."POS Terminal No.");
              TransCashDeclaration.SETRANGE("Transaction No.",TransactionHeader."Transaction No.");
              IF TransCashDeclaration.FINDSET THEN REPEAT
                TransCashDeclarationNew := TransCashDeclaration;
                TransCashDeclarationNew."Store No." := TransactionHeaderNew."Store No.";
                TransCashDeclarationNew."POS Terminal No." := TransactionHeaderNew."POS Terminal No.";
                TransCashDeclarationNew."Transaction No." := TransactionHeaderNew."Transaction No.";
                TransCashDeclarationNew.VALIDATE("Replication Counter");
                TransCashDeclarationNew.INSERT(FALSE);
                TransCashDeclaration.DELETE;
              UNTIL TransCashDeclaration.NEXT = 0;

              TransactionHeader.DELETE;
              NewTransNo := NewTransNo + 1;
            END;
          END;

  }
  CODE
  {
    VAR
      OldStoreNo@1200070011 : Code[10];
      NewStoreNo@1200070012 : Code[10];
      OldPOSTerminal@1200070013 : Code[10];
      NewPOSTerminal@1200070014 : Code[10];
      OldTransNo@1200070015 : Integer;
      NewTransNo@1200070016 : Integer;
      TransactionHeader@1200070000 : Record 99001472;
      TransactionHeaderNew@1200070017 : Record 99001472;
      TransSalesEntry@1200070001 : Record 99001473;
      TransSalesEntryNew@1200070018 : Record 99001473;
      TransPaymentEntry@1200070002 : Record 99001474;
      TransPaymentEntryNew@1200070019 : Record 99001474;
      TransIncomeExpenseEntry@1200070003 : Record 99001475;
      TransIncomeExpenseEntryNew@1200070020 : Record 99001475;
      TransCouponEntry@1200070004 : Record 99001477;
      TransCouponEntryNew@1200070021 : Record 99001477;
      TransInfocodeEntry@1200070005 : Record 99001478;
      TransInfocodeEntryNew@1200070022 : Record 99001478;
      TransInventoryEntry@1200070006 : Record 99001490;
      TransInventoryEntryNew@1200070023 : Record 99001490;
      TransMixMatchEntry@1200070007 : Record 99001496;
      TransMixMatchEntryNew@1200070024 : Record 99001496;
      TransDiscountEntry@1200070008 : Record 99001642;
      TransDiscountEntryNew@1200070025 : Record 99001642;
      TransDiscBenefitEntry@1200070009 : Record 99001674;
      TransDiscBenefitEntryNew@1200070026 : Record 99001674;
      MemberProcessOrderEntry@1200070010 : Record 99009038;
      MemberProcessOrderEntryNew@1200070027 : Record 99009038;
      TransTenderDeclarEntry@1200070028 : Record 99001465;
      TransTenderDeclarEntryNew@1200070029 : Record 99001465;
      TransSafeEntry@1200070030 : Record 99001630;
      TransSafeEntryNew@1200070032 : Record 99001630;
      TransCashDeclaration@1200070031 : Record 99001626;
      TransCashDeclarationNew@1200070033 : Record 99001626;

    BEGIN
    {
      This codeunit is used to renumber POS transactions.
      This should only be used on POS machines to create new transactions with the correct store and terminal to be re-sent to HO.
      Before you to run this codeunit, you must change the values for the following fields:

      OldStoreNo
      OldPOSTerminal
      NewStoreNo
      NewPOSTerminal
      NewTransNo
      OldTransNo
    }
    END.
  }
}
-----------------------------------------------------------------------------------------------------------

Dynamics GP - SQL Views - All AR Distribution Accounts that have been hit by AR transactions

SELECT     YEAR(AllRM.POSTEDDT) AS PostYr, MONTH(AllRM.POSTEDDT) AS PostMth, GL00105.ACTNUMST, GL00100.ACTDESCR, SUM(AllRM.DEBITAMT) AS Deb,
                      SUM(AllRM.CRDTAMNT) AS Cred, AllRM.DISTTYPE
FROM         GL00105 INNER JOIN
                      GL00100 ON GL00105.ACTINDX = GL00100.ACTINDX INNER JOIN
                          (SELECT     POSTEDDT, DSTINDX, DEBITAMT, CRDTAMNT, DISTTYPE
                            FROM          (SELECT     POSTEDDT, DSTINDX, DEBITAMT, CRDTAMNT, DISTTYPE
                                                    FROM          RM10101
                                                    UNION
                                                    SELECT     POSTEDDT, DSTINDX, DEBITAMT, CRDTAMNT, DISTTYPE
                                                    FROM         RM30301) AS derivedtbl_1) AS AllRM ON GL00105.ACTINDX = AllRM.DSTINDX
GROUP BY YEAR(AllRM.POSTEDDT), GL00105.ACTNUMST, GL00100.ACTDESCR, MONTH(AllRM.POSTEDDT), AllRM.DISTTYPE
ORDER BY YEAR(AllRM.POSTEDDT), MONTH(AllRM.POSTEDDT), GL00105.ACTNUMST

Monday, December 19, 2016

Wednesday, December 14, 2016

Dynamics GP - SOP Dummy Report Form - Cannot print any SOP documents

Add security access to Product - Manufacturing, Type Windows, Series 3rd Party, Operations - SOP Dummy Report Form

Tuesday, December 13, 2016

Dynamics NAV - Year End Closing Process and Checklist

http://www.archerpoint.com/blog/Posts/microsoft-dynamics-nav-2015-how-run-close-year-end-process

https://www.scribd.com/document/111003831/Year-End-Checklist-for-Microsoft-Dynamics-NAV-Navision

https://www.youtube.com/watch?v=LXFhq2jb-5o

  • 4hr review session, activities may take some time if reconciliation issues exist.
  • Year End Close Overview
    • Create Next New Year
    • Post all transactions for the year to be closed
    • Reconcile all subledgers for the year to be closed
    • Set Final Exchange Rate, Run Gain/Loss Routines
    • Lock out posting to closed period
    • Close Year
    • Close income statement
    • Post closing Journal
    • Run Financial Reports
    • Setup Budget for next year
  • Post All Open Journals
  • Payments, Deposits, Cash Receipts, Payroll.
  • Post Recurring Entries for the year to be closed
  • INVENTORY RECONCILIATION
    • As at End of Fiscal Year Date 
    • Run the /Departments/Financial Management/Inventory/Costing/Adjust Cost Routine
    • If Automatic Cost Posting is not enabled, Run the Post Cost to G/L Routine
    • Run the /Departments/Financial Management/Inventory/Inventory – G/L Reconciliation By Inventory Posting Group
      • Inventory Valuation>Include Expected Costs Ticked = Inventory including Received not Invoiced
      • Inventory Valuation>Include Expected Costs UnTicked = Only Invoiced Inventory
      • Reconcile the Received Not Invoiced Posted to G/L to your Inventory Account (Interim)
      • Reconcile the Shipped Not Invoiced Posted to G/L to your Accrued COGS Account
      • Reconcile the Net Inventory Interim Posted to G/L to your Inventory Account (Interim)
    •  Reconcile the Inventory Posted to G/L to the Inventory Asset Account
  • INVENTORY REVALUATION
    • Depending on your Industry or to correct errors, you may be able to re-value inventory as part of the year end process. Now is the time.
    • Departments/Warehouse/Inventory/Revaluation Journals
  • ACCOUNTS RECEIVABLE RECONCILIATION
    • Reconcile the Customer Trial Balance Report to the A/R Account By Customer Posting Group (This report Reconciles to the G/L Aged A/R may not Reconcile if you use Foreign Currency) 
  • ACCOUNTS PAYABLE RECONCILIATION
    • Reconcile the Vendor Trial Balance Report to the A/P Account
    • By Vendor Posting Group (This report Reconciles to the G/L
    • Aged A/P may not Reconcile of you use Foreign Currency)
  •  FIXED ASSETS 
    • Calculate Depreciation and Post Depreciation to the G/L
  •  MANUFACTURING
    • Complete all “Finished” Production Orders and reconcile WIP values
  • BANK ACCOUNTS 
    • Reconcile each Bank Account using the Bank Reconciliation Module. Compare the Book Values to the Chart of Accounts for each Bank Account Posting Groups G/L Account
  • MULTI-CURRENCY
    •  Enter the Currency Conversion Rates that will be used for gain/loss valuation at the end of the fiscal year
      • Currencies>Exch. Rates
      • Enter rate for last day of fiscal year if required
  • LOCK OUT POSTING TO YEAR THAT WILL BE CLOSED
    • Change the Posting Dates in General Ledger Setup
    • Change User Setup>Set Allow Posting From and Allow Posting To
    • Only Set Values for users that are Exceptions
  •  YEAR END CLOSE
    • Verify that the upcoming Fiscal Year calendar exists in the Accounting Periods setups, and that it is correct. If it is not there, or not correct- create the periods for the next year or two
      • Departments/Financial Management/Periodic Activities/Fiscal Year/Accounting Periods
      • Create Year
    •  Close the Accounting Periods for the Year to be closed
      • Departments > Financial Management > Periodic Activities > Fiscal Year>Accounting Periods>Close Year
    •  Close the Income Statement By Dimension
      • Departments > Financial Management > Periodic Activities > Fiscal Year>Accounting Periods>Close Income Statement
      • Enter all fields
      • Mark all dimensions
      • Open the General Journal and Enter the Retained Earnings Account(s) if necessary, Post the Closing Entry using a Closing Date
    • Verify the P&L Accounts have zero balance for new Fiscal period
  •  FINANCIAL STATEMENTS
    • Account Schedules
      • Run the Year End Balance Sheet
      • Run the Year End Income Statement
      • Run any Statements of Operations
      • Run Statement of Cash Flows
    • Run the Trial Balance Report and verify balances
      • Departments/Financial Management/General Ledger/Reports/Financial Statement
  •  BUDGETS
    • Create the Budget for the upcoming Fiscal Year 

Monday, December 12, 2016

Dynamics GP 2013R2 - Scheduling a macro that prints to screen does not print anything


  • A Macro has been created to autologin and run check links using a macro, batch file and windows task scheduler.
  • The check links report is expected to display on the screen when completed, however, this does not happen. No report comes up, but check links is completed.
  • When the job is run manually, everything works fine
  • When it runs on the schedule, no report comes up
ISSUE
  • This issue occurs when the user session is inactive, and the user is not actively logged in.

RESOLUTION
  • Update the macro to send the print to a file instead of screen

Friday, December 9, 2016

Dynamics GP - Create Return Window - Create RMA checkbox default

https://community.dynamics.com/gp/f/32/t/29127

To uncheck it by default you must disable the Field Service Returns Management


  • Go to the Registration window from Tools >> Setup >> System >> Registration
  • Uncheck the Returns Management module
  • Click OK