Showing posts with label Installation. Show all posts
Showing posts with label Installation. Show all posts

Sunday, August 12, 2012

Selecting a New Microsoft Dynamics GP Partner

I got an interesting questions from one of the Dynamics GP users out of my region, on how to select the best partner to deliver my demands, for sure my immediate reply was “Select me!”

However, not all customers will select me! And this user been looking for local partner in their area, therefore I felt that this is the best time to publish how do I select a new partner if I been a customer and how not to be blamed if the partner been not as expected.

I been through this before, where I been selected to evaluate tendering process for selecting a partner for a customer out of my region who runs GP for a while and looking to re-implement the product to follow the standards and work on the product correctly.

For partner selection, I normally analyze all the aspects carefully before recommending any partners even if I worked with them closely, just to make sure that customers fully comfortable with the recommended partner before doing the selection, normally I recommend people I know abroad and looking for local partners to follow steps below before signing the agreement with the new partner:

Major Selection Criteria:

1.      Ask for the complete list of customers, make sure to visit 3 as per your selection not the partner and randomly talk to at least 10 on phone, select users from the accounting department who works on the product and have no interest in recommending the partner, ask for partner performance in delivering support, knowledge in business and knowledge in Dynamics GP modules, plus what modules do they really implements for customers? Do they deliver the core application modules to close the project or they really providing their customers with the max of Dynamics GP features.

2.      Ask the partner to deliver a presentation on Microsoft Dynamics GP features for you, and make sure to ignore normal product modules and focus your questions on the modules that requires a real experts in the product like (Payment Document Management, Cashbook Management, Electronic Funds Transfer, Electronic Bank Reconciliation, KPIs Management, Requisitions Management, and Workflow) which will enhance the product usability in the future and will benefit your organization.

3.      Ask to meet the resource who will be handling your support and make sure to include his name in the contract if you liked his experience.

4.      Make sure that the partner you selects runs a helpdesk system with monitored response time KPI to make sure that any delays in your call be monitored and accountable.

5.     Grant added value for partner who worked on a business near to yours with other customers, this is really make a big difference.

With the above points, all your partners will get low scores, but at least you will know who gets the highest!

Other Points to Consider from the blogsphere:

  1. The partner you choose should be a "Managed Partner" for Dynamics GP by Microsoft. This assures access to local Microsoft resources and response to your needs by a team that is incented to work with you.
  2. Years in business and years of Microsoft Dynamics Experience - more is better. The average life of a Microsoft Dynamics GP partner is less than 4 years. Many partners have come and gone over the years. Many have closed their doors, sold, merged or have been acquired. Many of these players have resurfaced with new company names and new faces, leaving clients with broken partnerships and promises.
  3. Breadth of experience. Make sure partner has specialist and certified professionals for core competencies (Financial, Distribution/Manufacturing, Supply Chain, Payroll/Human Resources, CRM, etc.) around Dynamics.
  4. Partner Advantage Support. This is the highest level of support a partner can get from Microsoft for Dynamics. Your partner should have a contract with Microsoft for this level of Dynamics GP support. This provides the partner 24×7, level II one hour response times. Otherwise, 3 hour estimated response times is the norm, 8-5, level one support (less than the level of support a client can contract for).
  5. Microsoft Certified Sales Professionals. Partners with this position are allowed to provide clients with special offers on licenses and Microsoft services.
  6. Dedicated Client Account Manger (often referred to as a Customer Sales Manager, CSM, within the Microsoft Dynamics community). Partners that have CSMs value long-term relationships with customers and hold events to ensure your organization stays on top of the latest features and functionality long after go-live.
  7. Microsoft Sure Step Methodology for implementations. This methodology ensures confidence that implementations will go smoothly, be consistently replicated, and have predictable outcomes.
  8. Reasonable travel time and travel expense charges. These charges can add as much as a 50% to 100% surcharge to the effective hourly rate.
  9. Relationships with all of the Dynamics GP Independent Software Vendors (ISV) related to your implementation. Make sure your new partner has a positive previous working relationship with these vendors.

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

Sunday, June 24, 2012

Microsoft Dynamics GP Excel Paste is now Online

 

Production version of Microsoft Dynamics GP Excel Paste is now released and the development team has updated the website to integrate PayPal!

Download Fabrikam copy now or purchase your company version now from the below link:

http://www.dynamicsinnovations.com/GPExcelPaste.aspx

Below is the pricing table for the tool:

Core Financial Modules (GL, CM, DTA) 350$
Accounts Payables and Receivables (AR, AP) 300$
Sales Order Processing (SOP) 400$
Purchase Order Processing (POP, POR, POE) 400$
Inventory Control (IV, IVC) 300$
Payroll (UPR) 300$
Full Package – All Modules 1,300 $

Enjoy!

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

Wednesday, June 20, 2012

Excel Paste for “Any Screen” in Microsoft Dynamics GP

 

Last few days, we have released a tool to paste data from Excel into Dynamics GP GL Transaction Entry form and published the tool for all users with no charge.

From that day, the development team in DI has decided to go further with this and tried to enhance the dynamicity of the tool to go beyond what we have developed and develop a tool for sale but worth payment, so end users can define the paste path and how to paste columns in Dynamics GP.

In addition they wanted to make this for all GP forms not only GL Transaction Entry, and going from there below what we have developed.

If you would like to watch this live on what we have done using excel paste for forms with scrolling windows, please take a look into the following video:

Purchase Order Excel Paste

So what if you do not have scrolling window and you want to paste from excel into “Cards”? We have included this we well! Check below video on how to paste customers:

Customer Card Excel Paste

Initially, users will need to analyze what fields need to be included in the paste operation, for example let us take the purchase order screen as an example:

image

I have picked the integration path that I need on the screen and been ready to setup my Excel Paste using the following setup screen:

image

End user will be able to define what they just analyzed using the above screen, they just select Form Name, Window Name and start selecting fields one by one.

Once finalizing the setup, copy data from an excel like the below:

image

And just paste on the purchase order screen:

image

Enjoy!!!

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

Wednesday, March 2, 2011

Who’s editing this transaction?

 

Dynamics GP manages transactions locking by saving the “ID” of the transaction’s being edited in the SQL (SY00800, SQL00801 and DEX_LOCK in tempdb) to avoid any deadlocks in the database.

However, when a user tries to open one of the locked transactions, it will be notified that the transaction is currently locked by another user:

Michael D Johnson posted a solution for this. Now, you can download the free Record Lock Tracing add-on for Dynamics GP (Tested on v10 and GP2010) that will replace this generic message with a message that includes the specific user that has the record locked:

Well done Michael!

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

Wednesday, July 28, 2010

Creating Dynamics GP Installation Package

Andy Nifong posted an article on how to create Dynamics GP installation package with screenshots per steps, checkout his post here.

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

Currency Exchange Rates Feed (Importer) for Microsoft Dynamics GP 10.0

Long time ago, I have developed a service that loads currency exchange rates from the internet directly into Dynamics GP, I am willing to share the tool for free if you are interested to send me your information and willing to be on my company reference list!

Worth mentioning that the current source of the rates is this free online web service that provide currency rates on daily bases, if you wish to change the source of rates, feel free to change the configuration.

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

Wednesday, March 31, 2010

Playing Sound when starting Dynamics GP!!!

Interesting article by David, just add a wave file and rename it to “GPSSystemStart.wav” in your windows folder to get it played upon starting GP! Checkout his post here.

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

Wednesday, February 3, 2010

Filter Lookups By Predefined Smart-list Favorite “Simple data level security method”

Sometimes you might need to restrict access to some items in your store for certain machines, which is currently not possible out of the box, this method is not totally restriction but it could help, I am using the smart list favorites to filter lookups, follow steps below to implement:

1. Go to smart list and add some filters on the inventory items smart list then save it as a favorite smart list.

2. Go to Items lookup and add the form to VBA, then add “ViewAll” button to the VBA.

3. Write the following code segments in VBA to disable the “ViewAll” and “Advanced Search” buttons after selecting the needed favorite:

Private Sub ViewAllItemNumbersbyItemNumber_AfterUserChanged()
ViewAllItemNumbersbyItemNumber.Enabled = False
PBAdvancedSearch.Enabled = False
End Sub

5. After loading the window we’ll need to register a macro that selects the needed favorite, the code will look like the following:

Private Sub Window_AfterOpen()
    'Dim CompilerApp As New Dynamics.Application
    Dim CompilerApp As Object
    Dim CompilerMessage As String
    Dim CompilerError As Integer
    Dim Commands As String
    ' Create link without having reference marked
    Set CompilerApp = CreateObject("Dynamics.Application")
    Commands = ""
    Commands = Commands & "local integer l_file_id; " & vbCrLf
    Commands = Commands & "local string pathname; " & vbCrLf
    Commands = Commands & "pathname = Path_GetForApp(1) + ""TEMP.MAC""; " & vbCrLf
    Commands = Commands & "l_file_id = TextFile_Open(pathname, 0, 0); " & vbCrLf
    Commands = Commands & "TextFile_WriteLine(l_file_id, ""  ActivateWindow dictionary 'SmartList'  form 'IV_Item_Number_Lookup' window 'IV_Item_Number_Lookup' ""); " & vbCrLf
    Commands = Commands & "TextFile_WriteLine(l_file_id, ""  MoveTo field 'ASI_LU_View_Button' item 5  # 'Restricted List...' ""); " & vbCrLf
    Commands = Commands & "TextFile_WriteLine(l_file_id, ""    ClickHit field 'ASI_LU_View_Button' item 8  # 'Rams' ""); " & vbCrLf
    Commands = Commands & "TextFile_Close(l_file_id); " & vbCrLf
    Commands = Commands & "if File_Probe(pathname) then " & vbCrLf
    Commands = Commands & "  run macro pathname; " & vbCrLf
    Commands = Commands & "end if; " & vbCrLf
    ' Execute SanScript
    CompilerError = CompilerApp.ExecuteSanscript(Commands, CompilerMessage)
    If CompilerError <> 0 Then
        MsgBox CompilerMessage
    End If
End Sub

6. Give your use the access to the modified form instead of the original and enjoy having your form looks like the below:

image 

Hope that this helps.

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

Saturday, December 26, 2009

Business Portal Terminal Services Error: null-CWTSSession.openCannes:'oWTS' is null or not an object

After installing the business portal and configuring the terminal services for Dynamics GP, you might get the following error upon trying to open GP form:

"Null-CWTSSession.openCannes: 'oWTS' is null or not an object"

Through the business portal installation steps, you will need to adjust some settings on the internet explorer options as mentioned in the installation guide, below are the required steps, complete the steps and the error will no longer exist:

1. Start Internet Explorer and open the Internet Options window.
Tools > Internet Options

2. Click the General tab. Under browsing history, click Settings.

3. The Temporary Internet Files and History Settings window is displayed. Be
sure the Check for newer versions of stored pages option is not set to Never.

4. Click OK to close the settings window.

5. Click the Security tab, highlight Trusted Sites, and click Sites to open
the Trusted Sites window.
If Business Portal doesn’t use Secure Sockets Layer, you must clear the Require Server verification (https) for all sites in this zone check box. If you can’t clear the check box, you must change the security settings for the Local Intranet zone instead of adding Business Portal to your Trusted Sites list.

6. In Add this Web site to the zone, enter the Business Portal URL and click Add.

7. Click OK to close the Trusted Sites window.

8. In the Internet Options window, be sure Trusted Sites is still selected and click Custom Level to open the Security Settings window.

9. In the ActiveX controls and plug-ins section, select Enable for the following
settings:
• Download signed ActiveX controls
• Initialize and script ActiveX controls not marked as safe for scripting
• Run ActiveX controls and plug-ins

Changing these options will allow ActiveX controls to run automatically on all
web sites in your Trusted Sites zone. This zone contains sites that you
believe you can download or run files from without worrying about damage to your
computer or data. The security level for trusted sites is typically lower than the
general Internet or Intranet security level.

10. Click OK. An alert message will be displayed, asking if you’re sure that you want to change the security settings for the zone. Click Yes.

11. Click OK to close the Internet Options window.

Finally if you followed the above steps and still getting the problem, change the compatibility level in the internet explorer and it should no longer exist.

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Monday, November 23, 2009

Integrating Microsoft Dynamics GP With SQL Reporting Services

Interesting method in GP 10.0 to have customized reports developed on SQL Reporting Services launched from GP, follow steps below to complete the installation:

1. First you need to run the Reporting Services setup wizard from GP CD2:

image

2. After having the wizard installed, we need to define the reports and web services path in “Microsoft Dynamics GP menu >> Tools >> Setup >> System >> Reporting Tools Setup”:

Fields need to be set as documented in Help:

Report manager URL

Enter the Report Manager URL for SQL Server Reporting Services. Report Manager is a report server administrative web page that enables you to manage (create, edit, delete) data sources.

The URL should follow this general syntax:

http://<<server>>/<<ReportsFolder>>/Pages/Folder.aspx

If you do not know this information, contact your system administrator.

Report Server URL

Enter the Report Server URL for SQL Server Reporting Services. This is the location of the reporting server site that hosts the Web Service. You specified this location when you installed SQL Server Reporting Services.

The URL should follow this general syntax:

http://<<server>>/ReportServer/reportservice.asmx

image

3. Go to Administration tab and find “Custom Report List”:

image

4. Enjoy having your reports in the list:

image

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Saturday, November 21, 2009

Tuesday, October 27, 2009

Analysis Cubes for Dynamics GP Configuration Wizard

Error:

Dynamics GP Professional is required to proceed.

Strange error upon trying to configure Analysis Cubes using wizard.

Cause:

SQL Server doesn't have Analysis Services Installed.

Resolution:

Install SQL Server Analysis Services and the wizard will proceed.

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Thursday, October 15, 2009

Practical Example on Dynamics Continuum Integration Library: GL Transaction Entry Integration

I got allot of questions on how to use Dynamics Continuum API for Microsoft Dynamics GP, so I decided to post this practical lesson on how to perform forms level integration between any application or data source and GL Transaction Entry form:

References:

In order to start working on the API, we need first to add Reference to Dynamics Continuum Integration Library to our application:

image

Now we have three main functions/methods that we need to use:

 

Functions/Methods:

1. ExecuteSanscript: Function executes Dexterity code and return the result, expects two parameters and returns integer that the status was successfully completed or not:

ExecuteSanscript("Script" as String, ByRef "ErrorMessage" As String)

2. SetDataValue: Function sets value in any "fully qualified" field name, expects two parameters and returns integer that the status was successfully completed or not:

SetDataValue("Field Name" as String, Value as String)

3. MoveToField: Moves the cursor to the field, expects only the field name as the parameter, almost equivalent to "focus field" command in Dexterity:

MoveToField("Field Name" as String)

 

Concept:

To proceed with our task, we'll need first to understand how it works, we'll need to imagine that a user is working on the form and follow all the steps need to be done, for example, the user will go to date field, fill the date and leave the field so the system run all validations on date field leave, technically speaking "MoveToField" will need to be called first, then "SetDataValue" and finally "ExecuteSanScript" to run the required scripts on leaving the field.

 

Code Snippets:





 




'Define the main object


Dim objGPApp As New Dynamics.Application


 


'Variable to Handle Returned Errors Flag


Dim intErrorValue As Integer


'Variable to Handle Returned Errors Messages


Dim strErrorMessage As String


 


'Other Needed Variables


Dim strBatchID As String = "Dataset Name"


Dim SourceDocument As String = "Source Document"


Dim TrxDate As String = "01012009"


Dim ReferenceID As String = "Sample"


Dim dsDetails As DataSet


'------------------------------------------------------------------------------


'Open the GL Transaction Entry Form


intErrorValue = objGPApp.ExecuteSanscript("open form 'GL_Transaction_Entry';", strErrorMessage)


 


'------------------------------------------------------------------------------'


'Add/Update Batch to make sure its exist


'Open Batch Entry Form


intErrorValue = objGPApp.ExecuteSanscript("run script  'Expansion Button 1' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry';", strErrorMessage)


 


'Fill Batch Number


intErrorValue = objGPApp.SetDataValue("'Batch Number' of window 'GL_Batch_Entry' of form 'GL_Batch_Entry'", strBatchID)


 


'Run Batch Number Script


intErrorValue = objGPApp.ExecuteSanscript("run script 'Batch Number' of window 'GL_Batch_Entry' of form 'GL_Batch_Entry';", strErrorMessage)


 


'Fill Origin


intErrorValue = objGPApp.SetDataValue("'Origin' of window 'GL_Batch_Entry' of form 'GL_Batch_Entry'", 1)


 


'Go To Batch Comment Field


intErrorValue = objGPApp.MoveToField("'Batch Comment' of window 'GL_Batch_Entry' of form 'GL_Batch_Entry'")


intErrorValue = objGPApp.ExecuteSanscript("run script 'Batch Comment' of window 'GL_Batch_Entry' of form 'GL_Batch_Entry';", strErrorMessage)


 


'Save Batch


intErrorValue = objGPApp.ExecuteSanscript("run script 'Save Button' of window 'GL_Batch_Entry' of form 'GL_Batch_Entry';", strErrorMessage)


 


'Close form


intErrorValue = objGPApp.ExecuteSanscript("close form 'GL_Batch_Entry';", strErrorMessage)


' End Batch


'------------------------------------------------------------------------------'


 


'Add/Update Source Document  to make sure its exist


'Open Source Document Form


intErrorValue = objGPApp.ExecuteSanscript("open form 'SY_Source_Document_Setup';", strErrorMessage)


 


'Move to Source Document Field


intErrorValue = objGPApp.MoveToField("'Source Document' of window 'Source_Document_Setup' of form 'SY_Source_Document_Setup'")


 


'Set Field Value


intErrorValue = objGPApp.SetDataValue("'Source Document' of window 'Source_Document_Setup' of form 'SY_Source_Document_Setup'", SourceDocument)


 


'Run Field Script 


intErrorValue = objGPApp.ExecuteSanscript("run script 'Source Document' of window 'Source_Document_Setup' of form 'SY_Source_Document_Setup';", strErrorMessage)


 


'Go To Description Field


intErrorValue = objGPApp.MoveToField("'Source Document Description' of window 'Source_Document_Setup' of form 'SY_Source_Document_Setup'")


'Set Data Value in Description Field


intErrorValue = objGPApp.SetDataValue("'Source Document Description' of window 'Source_Document_Setup' of form 'SY_Source_Document_Setup'", SourceDocument)


 


'Run Field Script 


intErrorValue = objGPApp.ExecuteSanscript("run script 'Source Document Description' of window 'Source_Document_Setup' of form 'SY_Source_Document_Setup';", strErrorMessage)


'Save 


intErrorValue = objGPApp.SetDataValue("'Save Button' of window 'Source_Document_Setup' of form 'SY_Source_Document_Setup'", 1)


'Close Form


intErrorValue = objGPApp.ExecuteSanscript("close form 'SY_Source_Document_Setup';", strErrorMessage)


'End Source Document Adding


'------------------------------------------------------------------------------'


 


'Now we are sure that the batch number and source document are both exist, 


'so we can use both of them in our form 


intErrorValue = objGPApp.MoveToField("'Batch Number' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'Batch Number' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'", strBatchID)


intErrorValue = objGPApp.ExecuteSanscript("run script 'Batch Number' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry';", strErrorMessage)


 


intErrorValue = objGPApp.MoveToField("'Source Document' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'Source Document' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'", SourceDocument)


intErrorValue = objGPApp.ExecuteSanscript("run script 'Source Document' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry';", strErrorMessage)


'------------------------------------------------------------------------------'


'Proceed with Journal Header Fill


'Reference


intErrorValue = objGPApp.MoveToField("'Reference' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'Reference' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'", ReferenceID)


intErrorValue = objGPApp.ExecuteSanscript("run script 'Reference' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry';", strErrorMessage)


 


'Transaction Date -You need to make sure that you passed the date 


'in the correct format-


intErrorValue = objGPApp.MoveToField("'TRX Date' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'TRX Date' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry'", TrxDate)


intErrorValue = objGPApp.ExecuteSanscript("run script 'TRX Date' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry';", strErrorMessage)


'End of Journal Header


'------------------------------------------------------------------------------'


'Journal Details: in this example, I considered the data is already filled in 


'a dataset called dsDetails with the following columns:


'(AccountNumber, AccountType ('Credit', 'Debit'), AccountAmount, LineDescription)


'------------------------------------------------------------------------------'


'Loop through all details


For Counter As Integer = 0 To dsDetails.Tables(0).Rows.Count - 1


    With dsDetails.Tables(0).Rows(Counter)


'Start with Account Number


intErrorValue = objGPApp.ExecuteSanscript("focus field 'Account Number' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


intErrorValue = objGPApp.MoveToField("'Account Number' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'Account Number' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'", .Item("AccountNumber"))


intErrorValue = objGPApp.ExecuteSanscript("run script 'Account Number' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


 


'Check the account type, credit or debit


If Trim(.Item("AccountType")).ToLower = "Debit".ToLower Then


'Incase of Debit, fill debit with the amount 


intErrorValue = objGPApp.ExecuteSanscript("focus field 'Debit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


intErrorValue = objGPApp.MoveToField("'Debit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'Debit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'", .Item("AccountAmount"))


intErrorValue = objGPApp.ExecuteSanscript("run script 'Debit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


intErrorValue = objGPApp.ExecuteSanscript("focus field 'Credit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


intErrorValue = objGPApp.MoveToField("'Credit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'")


 


Else


'Incase of credit, fill credit field with the amount 


intErrorValue = objGPApp.ExecuteSanscript("focus field 'Credit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


intErrorValue = objGPApp.MoveToField("'Credit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'Credit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'", .Item("AccountAmount"))


intErrorValue = objGPApp.ExecuteSanscript("run script 'Credit Amount' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


End If


 


'Fill the distribution reference field 


intErrorValue = objGPApp.ExecuteSanscript("focus field 'Description' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


intErrorValue = objGPApp.MoveToField("'Description' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'")


intErrorValue = objGPApp.SetDataValue("'Description' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry'", .Item("LineDescription"))


intErrorValue = objGPApp.ExecuteSanscript("run script 'Description' of window 'Transaction_Scroll' of form 'GL_Transaction_Entry';", strErrorMessage)


 


'Move the scrolling window to the next line


intErrorValue = objGPApp.ExecuteSanscript("Window_ScrollScrollingWindow(window 'Transaction_Scroll' of form 'GL_Transaction_Entry', SCROLLTYPE_NEXT);", strErrorMessage)


 


End With


Next


 


'Save the Journal


intErrorValue = objGPApp.ExecuteSanscript("run script 'Save Button' of window 'GL_Transaction_Entry' of form 'GL_Transaction_Entry';", strErrorMessage) 


 


'Close GL Transaction Entry Form


intErrorValue = objGPApp.ExecuteSanscript("close form 'GL_Transaction_Entry';", strErrorMessage)


'------------------------------------------------------------------------------'


 



That's it! Let me know if you have any issues or inquiries about the above code, I will be more than happy to help.


Regards,

--


Mohammad R. Daoud


MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS


CTO


+962 - 79 - 999 65 85


Dynamics Innovations


daoudm@dynamicsinnovations.com


http://www.dynamicsinnovations.com

Thursday, October 8, 2009

Year End Closing

Frank around to finalize his series of posts about year end closing, for the time being he covered the following module:

Purchasing

Inventory

Sales

Updated:

Fixed Assets

Finally the big one:

Financial

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Visual Studio & GP Security

David has information and thoughts about integrating GP security with the forms developed using the .Net toolkit and the Menus, checkout his post below:

http://blogs.msdn.com/developingfordynamicsgp/archive/2009/10/07/visual-studio-tools-and-dynamics-gp-security.aspx

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Saturday, October 3, 2009

Year End Closing

Frank started his series about year end closing, started by the post below:

http://gp2themax.blogspot.com/2009/10/gptip42day-year-end-closing-procedures.html

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Include SP's in GP Package

Geoffrey Wayong has an interesting post about including service packs in the installation package, checkout his post below:

http://amllp.blogspot.com/2009/10/dynamics-gp-client-installs-with.html

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

OLE Notes

David posted an interesting article about OLE Attachments and how it works, checkout his post HERE.

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Tuesday, September 29, 2009

Macro Programming - Commands and Syntax

Guys,

Mark has posted a document that explains the Macro commands that helps you understand and write your own macros, checkout his post below:

http://msdynamicsgp.blogspot.com/2009/09/dynamics-gp-macro-commands.html

Regards,
--
Mohammad R. Daoud
MVP, MCP, MCT, MCBMSP, MCTS, MCBMSS
CTO
+962 - 79 - 999 65 85
Dynamics Innovations
daoudm@dynamicsinnovations.com
http://www.dynamicsinnovations.com

Related Posts:

Related Posts with Thumbnails