Thursday, January 31, 2008
Wednesday, January 30, 2008
Let’s start by following these steps:
a. Writing a simple .wxs xml installer source code .
b. Compiling the source code
c. Building the MSI.
Use the READ UNCOMMITTED transaction isolation level for all Microsoft SQL Server 2000 database reads - Can be used to reduce blocking for installations running on Microsoft SQL Server 2000 databases.
WiX (Windows Installer XML) is a toolset that builds Windows Installation Packages from XML Source Code. It provides a command-line environment that developers may integrate into their build processes to build MSI (Microsoft Installer) packages. WiX is an open source project. This toolset is written in C#.
.NET Framework (Required on Developer’s system).
WiX Binaries and SDK(Required on Developer’s system).
Note: The installation packages built with this toolset do not require any software to be installed on the target computer.
Features and advantages of the toolset:
· Declarative approach
· Unrestricted access to Windows Installer functionality
· Source code instead of GUI-based assembly of information
· Complete integration into application build processes
· Possible integration with application development
· Support for team development, both in-house and third-party
· Free, open source
2. For e.g. AssetBudgetModel\DataSources\Assetbudget\fields click the data source right-click Fields, and then click Properties.
2. Set the Dynamic property to No.
By default, the Dynamic property is set to Yes and returns all fields from the table, map, or view. This makes maintenance easier because you don't need to change the query if a field is changed in the underlying data source. However, restricting the fields returned by the query is better for performance because unused data is not returned to the client each time the query is run.
Tuesday, January 29, 2008
1. Write a C# assembly which will have a simple method called "HelloWorld" which will take a string as argument and will return the string concatenated with "Hello".
2. Build the assembly
3. Open SQL Query Analyzer and
CREATE ASSEMBLY asmHelloWorldSQL FROM 'c:\HelloWorldSQLAssembly.dll'
Note: asmHelloWorldSQL is name of assembly which can be anything and we have to pass the path where the assembly resides
4. Create a function which will reference the assembly we created
CREATE FUNCTION dbo.clrHelloWorld
@name as nvarchar(200)
AS EXTERNAL NAME [asmHelloWorldSQL].[HelloWorldSQLAssembly.Class1].[HelloWorld]
Note: This function will invoke the HelloWorld method from the assembly and return the string.
5. SELECT dbo.clrHelloWorld('Invoke from SQL 2005')
this will return
"Hello Invoke from SQL 2005"
Happy assembling :-)
Msg 6263, Level 16, State 1, Line 1
Execution of user code in the .NET Framework is disabled. Enable "clr enabled" configuration option.
EXEC sp_configure 'clr enabled', 1
RECONFIGURE WITH OVERRIDE
e.g. Go to AOT->
Once it is run, it will list an infolog with the changes which are done to the code.
Friday, January 25, 2008
In init() method of Custtable datasource, put the following code:
In the value part, we can have OR expression i.e. ((CustGroup=="%1") (Currency=="%2"))
and then the actual values supplied at the end.
Wednesday, January 23, 2008
Tuesday, January 22, 2008
Optimistic Concurrency Control (OCC) helps increase database performance. Pessimistic Concurrency Control locks records as soon as they are fetched from the database for an update. However, Optimistic Concurrency only locks records from the time when the actual update is performed.
Pessimistic concurrency was the only option available in Microsoft Axapta 3.0 (now a part of Microsoft Dynamics). You can now choose which concurrency model to use—optimistic or pessimistic.
- Fewer resources are used to hold the locks during the update process.
- Records are locked for a shorter length of time.
- Records remain available for other processes to update if they have been selected from the database but haven't yet been updated.
The disadvantage of using OCC is that the update can fail if another process updates the same record. If the update fails, it must be retried. This can lead to a reduction in database performance.
How to catch Update Conflicts
Update Conflicts can be handled by catching the UpdateConflict and UpdateConflictNotRecovered events.
This pattern is used across AX API's for retrying the update conflicts and if it exceeds the maximum retry count then UpdateConflictNotRecovered exception is thrown.
Update Conflicts and recversion field
Update conflicts are detected by the kernel. It checks the value of the recVersion system field on the table at the time the record is selected for update. This value is matched to the value of the field when the record is subsequently updated. The default value of recVersion is 1. This is changed to a random value when a record is updated.
See the thread below for more details:
Monday, January 21, 2008
Wednesday, January 16, 2008
Microsoft Dynamics AX Technology WebCasts
Wednesday, January 9, 2008
Friday, January 4, 2008
Object Server 01: Dialog issued for client-less session 1: Error executing code: SysCheckList_Setup object does not have method 'isSetupMode'.
(S)\Classes\Application\isRunningMode - line 5
(S)\Classes\Application\dbSynchronize - line 12
(S)\Classes\Application\syncApplTables - line 5
(S)\Classes\Application\new - line 6
Object Server 01: Dialog issued for client-less session 1: Error executing code: object does not have method 'main'.
Object Server 01: I/O Error 38 (OS error ) occured when session 3 accessed E:\Program Files\Microsoft Dynamics AX\40\Application\appl\standard\axapd.aoi. User chose to retry.
Stopped AOS Service
Deleted axapd.aoi file in application folder
Restart AOS Service