Tuesday, July 24, 2012

Code to set picked Invent Transaction into on order in Production Picking List
Courtesy of David
//DGU - Released Picked transaction while select inventTransOrigin where InventTransOrigin.InventTransId == this.InventTransId && InventTransOrigin.ItemId == this.ItemId && inventTransOrigin.ReferenceCategory == InventTransType::ProdLine && inventTransOrigin.ReferenceId == this.ProdId { while select forUpdate inventTrans where inventTrans.InventTransOrigin == inventTransOrigin.RecId && inventTrans.inventDimId == this.InventDimId && inventTrans.StatusIssue == StatusIssue::Picked && inventTrans.VoucherPhysical == "" && inventTrans.Voucher == "" { inventMovementPicked = inventTrans.inventMovement(); inventDimPicked = inventMovementPicked.inventdim(); inventDimParmPicked.initFromInventDim(inventDimPicked); inventUpd_Picked = InventUpd_Picked::newParameters(inventMovementPicked,inventDimPicked,inventDimParmPicked, inventDimPicked,inventDimParmPicked,inventTrans.Qty * -1); inventUpd_Picked.updateNow(); } } //End

Sunday, July 22, 2012

Error :
Microsoft SQL Server 2008 Setup: The following error has occurred: A network error occurred while attempting to read from the file: [install-device-name--and-root-of-path-here]\x64\setup\x64\sqlncli[1].msi
Solution :

Uninstall SQL Native Client

Tuesday, July 10, 2012

Useful Classes for Modifications

Here are some useful classes should any modification needs arises :
1. To modify ListPages, look for its Interaction classes. i.e : for PurchReqTableListPage, look for PurchReqTableListPageInteraction class.

2. To change whether an Inventory Dimension required to be mandatory or not, look for InventDimCtrl_Frm class. i.e : for ForecastSales class, look for InventDimCtrl_Frm_Forecast.

Monday, July 9, 2012

How to find On Hand Qty in AX 2012

Here's how to find On Hand Qty filtered by inventory dimension :

display Real itemOnHand()
{
ItemId                      itemId;
InventDimParm               inventDimParm;
InventSumDatePhysicalDim    inventSumDatePhysicalDim;

;

inventDimParm.initFromInventDim(this.inventDim());

return inventSumDatePhysicalDim::onHandQty(today(),this.ItemId,this.inventDim(),inventDimParm);

}
 

Thursday, July 5, 2012

How to enable Remote Errors in AX 2012 SSRS

How to enable remote errors in AX 2012 SSRS :

Open SQL Server Management Studio and run this query in the Reporting Service Database. You have to restart your SSRS instance service before it's going to take effect.

UPDATE    ConfigurationInfo
SET        Value = 'TRUE'
WHERE    Name = 'EnableRemoteErrors'

Wednesday, February 22, 2012

How to access an Access MDB Database from Microsoft Dynamics AX 2009

You can use the following code :


static void ConnectToAccess(Args _args)
{
//Declare connection object

CCADOConnection cn = new CCADOConnection();
CCADOCommand command = new CCADOCommand();
CCADORecordset rs = new CCADORecordset();
str Name;
;

//open connection and execute SQL command
cn.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Sample.mdb;Persist Security Info=False");
command.activeConnection(cn);
command.commandText("SELECT * FROM DEPARTMENTS");
rs = command.execute();


while (!rs.EOF())
{
info(Strfmt("%1",rs.fields().itemIdx(1).value())); //will display query value
rs.recordSet().moveNext();
}
cn.close();

}

Monday, February 13, 2012

Authorization Checks Code

Authorization Checks
Microsoft Dynamics AX 2009 performs automatic authorization when a user
accesses data through data sources on forms or reports. X++ code can also call
these checks in cases where automatic authorization does not occur.


if (hasSecurityKeyAccess(securitykeyNum(mySecurityKey),
AccessType::View))
{
//code requiring authorization goes here...
}
if (hasMenuItemAccess(menuItemDisplayStr(myMenuItem),
MenuItemType::Display)))
{
//code requiring authorization goes here...
}
DictTable dictTable = new DictTable(tablenum(myTable));
if (dictTable.rights >= AccessType::Insert))
{
//code requiring authorization goes here...
}
if
(isConfigurationkeyEnabled(configurationkeyNum(myConfigKey)
)
{
//code requiring authorization goes here...
}