Microsoft.Axapta.BusinessConnector Code Samples

Filed under:.NET,4.0,5.0,axapta,desarrollo,x++ — posted by admin on January 23, 2009 @ 5:29 am

Delete sample

// Execute a query to retrieve an editable record
// where the name is MyStateUpdated.
axRecord.ExecuteStmt(“select forupdate * from %1 where %1.Name ==
‘MyStateUpdated’”);

// If the record is found then delete the record.
if (axRecord.Found)
{
// Start a transaction that can be committed.
ax.TTSBegin();
axRecord.Delete();
// Commit the transaction.
ax.TTSCommit();
}

INSERT

// Create the .NET Business Connector objects.
Axapta ax;
AxaptaRecord axRecord;
string tableName = “AddressState”;

try
{
// Login to Microsoft Dynamics AX.
ax = new Axapta();
ax.Logon(null, null, null, null);

// Create a new AddressState table record.
using (axRecord = ax.CreateAxaptaRecord(tableName));
{

// Provide values for each of the AddressState record fields.
axRecord.set_Field(“NAME”, “MyState”);
axRecord.set_Field(“STATEID”, “MyState”);
axRecord.set_Field(“COUNTRYREGIONID”, “US”);
axRecord.set_Field(“INTRASTATCODE”, “”);

// Commit the record to the database.
axRecord.Insert();
}
}
catch (Exception e)
{
Console.WriteLine(“Error encountered: {0}”, e.Message);
// Take other error action as needed.
}
READ

// Create the .NET Business Connector objects.
Axapta ax;
AxaptaRecord axRecord;
string tableName = “AddressState”;

// The AddressState field names for calls to
// the AxRecord.get_field method.
string strNameField = “NAME”;
string strStateIdField = “STATEID”;

// The output variables for calls to the
// AxRecord.get_Field method.
object fieldName, fieldStateId;

try
{
// Login to Microsoft Dynamics AX.
ax = new Axapta();
ax.Logon(null, null, null, null);

// Create a query using the AxaptaRecord class
// for the StateAddress table.
using (axRecord = ax.CreateAxaptaRecord(tableName));
{

// Execute the query on the table.
axRecord.ExecuteStmt(“select * from %1″);

// Create output with a title and column headings
// for the returned records.
Console.WriteLine(“List of selected records from {0}”,
tableName);
Console.WriteLine(“{0}\t{1}”, strNameField, strStateIdField);

// Loop through the set of retrieved records.
while (axRecord.Found)
{
// Retrieve the record data for the specified fields.
fieldName = axRecord.get_Field(strNameField);
fieldStateId = axRecord.get_Field(strStateIdField);

// Display the retrieved data.
Console.WriteLine(fieldName + “\t” + fieldStateId);

// Advance to the next row.
axRecord.Next();
}
}
}

catch (Exception e)
{
Console.WriteLine(“Error encountered: {0}”, e.Message);
// Take other error action as needed.
}

UPDATE

// Create an Axapta record for the StateAddress table.
axRecord = ax.CreateAxaptaRecord(tableName);

// Execute a query to retrieve an editable record where the name is MyState.
axRecord.ExecuteStmt(“select forupdate * from %1 where %1.Name ==
‘MyState’”);

// If the record is found then update the name.
if (axRecord.Found)
{
// Start a transaction that can be committed.
ax.TTSBegin();
axRecord.set_Field(“Name”, “MyStateUpdated”);
axRecord.Update();

// Commit the transaction.
ax.TTSCommit();
}

Guía rápida de instalación ax2009. Sobre W2003 R2 y SQL2005

Filed under:5.0,axapta,dynamics2009 — posted by admin on @ 5:21 am

Guía rápida de instalación ax2009. Sobre W2003 R2 y SQL2005

Instalación del servidor Windows 2003.

Instalación de SQL server 2005

Instalar Aplication Role

Al ejecutar el instalador nos cargara los prerrequisitos automáticamente.

Necesario permisos de Administrador.

Crear base de datos para AX 2009.

Para ello el usuario(login) debe ser miembro del grupo “dbcreator“ en SQL server.

Instalar el AOS Role.

Dar permios al usuario(login) que instala AOS dentro de la base de datos como securityadmin.

Comprobar tras la instalación que se crea el inicio de sesión para el AOS “domain\host$” con los permisos “db_datareader”, “db_datawriter”, “db_ddladmin”, “public” sobre la BBDD.

Validar permisos de ejecución para el inicio de sesión del usuario de AOS (“domain\host$”) y las credenciales que arranque del servicio de AOS para los procedimientos almacenados, “CREATESERVERSESSIONS”, “CREATEUSERSESIONS”

Instalar Client Role.

Necesario permisos de Administrador.

Al iniciar sesión se crean los perfiles ,“Admin “y “guest” en la “userinfo” .

Instalar .NET bussines conector.

User: AXDOS\ProxyAX .

pass: Axapta20.

Instalar Role center and Enterprise Portal.

Necesario permisos de Administrador.

Requisitos previos:

- Crear la cuenta bussines conector en el dominio.

- Instalar el framework 3.5 básico sin SP

- Crear un grupo de aplicaciones en IIS y asignarle el usuario para Bussines conector.

- Crear un directorio virtual y asignarle la aplicación anterior.

- ASP .NET 2.0.

- Microsoft SQL Server 2005 ADOMD.Net

- Microsoft Windows SharePoint Service 3.0 SP1

Estos se instalan de forma automática con desde el instaler de AX2009.

Es necesario descargar de la pagina de Microsoft Sharepoint sp1.

http://www.microsoft.com/downloads/details.aspx?familyid=EF93E453-75F1-45DF-8C6F-4565E8549C2A&displaylang=en

Durante la instalación puede aparecer el siguiente error:

Error executing code: SysDevelopmentProxy (object) has no valid runable code in method ‘generate’.

(C)\Classes\SysDevelopmentProxy\generate
(C)\Classes\SysEPDeployment\clrGenerateProxies – line 7
(C)\Classes\SysEPDeployment\deployProxies
(C)\Classes\SysEPDeployment\deployAllWebParts
(C)\Classes\SysEPDeployment\deployEPOnSharepoint
(C)\Classes\SysEPDeployment\installEnterprisePortal


Microsoft.Dynamics.BusinessConnectorNet.BusinessConnectorException
at Microsoft.Dynamics.BusinessConnectorNet.AxaptaObject.Call(String methodName, Object[] paramList)
at Microsoft.Dynamics.BusinessConnectorNet.AxaptaObject.Call(String methodName, Object param1)
at Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsObjectAdapter.Call(String methodName, Object param1)

An error occurred during setup of Role Centers and Enterprise Portal.
Reason: No .NET Business Connector session could be found.
=== Rolling back setup of Role Centers and Enterprise Portal due to error =

Este es provocado por un error en la referencia al conector, al compilar la aplicación sin haber instalado el “bussines conector”.

Puede aparecer este error el desplegar las áreas de negocio.

Ha ocurrido un error inesperado.

A ProgressTemplate must be specified on UpdateProgress control with ID ‘AxProgressControl’.

System.InvalidOperationException

at System.Web.UI.UpdateProgress.CreateChildControls()

at System.Web.UI.Control.EnsureChildControls()

at System.Web.UI.UpdateProgress.get_Controls()

at Microsoft.Dynamics.Framework.Portal.UI.WebControls.AxProgressControl.Create()

at Microsoft.Dynamics.Framework.Portal.UI.WebControls.AxProgressControl.AddToPage(Control control)

at Microsoft.Dynamics.Framework.Portal.UI.WebControls.AxContentPanel.Page_PreLoad(Object sender, EventArgs e)

at System.EventHandler.Invoke(Object sender, EventArgs e)

at System.Web.UI.Page.OnPreLoad(EventArgs e)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Este error es debido a la instalación del SP1 sobre el framework 3.5. El Share point y Dynamics no admiten este parche.



image: detail of installation by Bronwyn Lace