<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Micro blog dynamics AX &#187; 4.0</title>
	<atom:link href="http://ax.nom.es/category/40/feed" rel="self" type="application/rss+xml" />
	<link>http://ax.nom.es</link>
	<description>WordPress weblog</description>
	<lastBuildDate>Fri, 20 Jan 2012 09:14:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Varios ejemplos C# .net para conectar con AX 4.0  utilizando Bussines conector</title>
		<link>http://ax.nom.es/uncategorized/varios-ejemplos-c-net-para-conectar-con-ax-4-0-utilizando-bussines-conector</link>
		<comments>http://ax.nom.es/uncategorized/varios-ejemplos-c-net-para-conectar-con-ax-4-0-utilizando-bussines-conector#comments</comments>
		<pubDate>Thu, 24 Jun 2010 09:20:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ax.nom.es/?p=88</guid>
		<description><![CDATA[UAN using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Microsoft.Dynamics.BusinessConnectorNet.Axapta DynAx; DynAx =3D new = Microsoft.Dynamics.BusinessConnectorNet.Axapta(); // Test the connection to the .NET Business Connector=20 // by using the proxy user. System.Net.NetworkCredential nc =3D new = System.Net.NetworkCredential("proxyBCAX", "********"); try { DynAx.LogonAs("proxyBCAX", "", nc, "", [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UAN</strong></p>
<pre>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Microsoft.Dynamics.BusinessConnectorNet.Axapta DynAx;
            DynAx =3D new =
Microsoft.Dynamics.BusinessConnectorNet.Axapta();
            // Test the connection to the .NET Business Connector=20
            // by using the proxy user.
            System.Net.NetworkCredential nc =3D new =
            System.Net.NetworkCredential("proxyBCAX", "********");
            try
            {
                DynAx.LogonAs("proxyBCAX", "", nc, "", "", "", =
                   "C:\\Documents and Settings\\1314\\Escritorio\\BC.AXC");
                //DynAx.LogonAs(Environment.UserName, "", null, "", "", =
                 "", "C:\\Documents and Settings\\1314\\Escritorio\\BC.AXC");
                Console.WriteLine( "Success Login OK");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }
    }
}

<strong>CHU</strong>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                label1.Text = "";

                Microsoft.Dynamics.BusinessConnectorNet.Axapta DynAx = new
                    Microsoft.Dynamics.BusinessConnectorNet.Axapta();
                Microsoft.Dynamics.BusinessConnectorNet.AxaptaRecord DynRec;

                // Authenticate the user and establish a session.
                DynAx.Logon(Company.Text, null, AOS.Text, Configuration.Text);
                if (DynAx != null)
                {
                    label1.Text = ("Login OK");
                }

                // Define the record as the AddressState table.
                DynRec = DynAx.CreateAxaptaRecord("AddressState");

                // Define the query that will run on the AddressState records.
                // This will return all the data in the AddressState table with
                // the cursor positioned at the first record in the table.
                DynRec.ExecuteStmt("select * from %1");

                // Check if the query returned any data.
                if (DynRec.Found)
                {
                    // Display the record on the form that was retrieved from the query.
                    textBox1.Text = (string)DynRec.get_Field("Name");

                }
            }
            catch (Exception ex)
            {
                textBox1.Text = (ex.ToString());
                textBox1.Text += (ex.Message);
                label1.Text = ("Login Filed");
            }
        }
    }
}
<strong>ZRI</strong>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

                label1.Text = "";

                Microsoft.Dynamics.BusinessConnectorNet.Axapta DynAx = new
                    Microsoft.Dynamics.BusinessConnectorNet.Axapta();
                Microsoft.Dynamics.BusinessConnectorNet.AxaptaRecord DynRec;

            // Authenticate the user and establish a session.
                System.Net.NetworkCredential nc = new System.Net.NetworkCredential(USER.Text, PASS.Text);
            try
            {
                //"C:\\Documents and Settings\\1314\\Escritorio\\BC.AXC"
                DynAx.LogonAs(AXUser.Text, Domain.Text, nc, Company.Text, null, AOS.Text, Configuration.Text);

                if (DynAx != null)
                {
                    label1.Text = ("Login OK");
                }

                // Define the record as the AddressState table.
                DynRec = DynAx.CreateAxaptaRecord("AddressState");

                // Define the query that will run on the AddressState records.
                // This will return all the data in the AddressState table with
                // the cursor positioned at the first record in the table.
                DynRec.ExecuteStmt("select * from %1");

                // Check if the query returned any data.
                if (DynRec.Found)
                {
                    // Display the record on the form that was retrieved from the query.
                    textBox1.Text = (string)DynRec.get_Field("Name");

                }
                //DynAx.Logoff();
            }
            catch (Exception ex)
            {
                textBox1.Text = (ex.ToString());
                textBox1.Text += (ex.Message);
                label1.Text = ("Login Filed");
            }
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ax.nom.es/uncategorized/varios-ejemplos-c-net-para-conectar-con-ax-4-0-utilizando-bussines-conector/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uso de contenedores Con AX Business Connector Net</title>
		<link>http://ax.nom.es/axapta/uso-de-contenedores-con-ax-business-connector-net</link>
		<comments>http://ax.nom.es/axapta/uso-de-contenedores-con-ax-business-connector-net#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:54:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[5.0]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[dynamics2009]]></category>
		<category><![CDATA[x++]]></category>

		<guid isPermaLink="false">http://ax.nom.es/?p=80</guid>
		<description><![CDATA[using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.Security.Cryptography; using System.IO; using Microsoft.Dynamics.BusinessConnectorNet; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { Axapta AX; AX = new Axapta(); AX.Logon(&#8220;CNS&#8221;, null, &#8220;DYmanicsAx1:2713&#8243; , null); object[] Parmlist = new object[1]; AxaptaContainer Container = AX.CreateAxaptaContainer(); Container = (AxaptaContainer)AX.CallStaticRecordMethod(&#8220;InventDim&#8221;, &#8220;dimEnabledFieldList&#8221;, 1); Console.WriteLine(BankAccountTable.Call(&#8220;balanceCur&#8221;, Container)); AX.Logoff(); }]]></description>
			<content:encoded><![CDATA[<p>using System;<br />
using System.Collections.Generic;<br />
using System.Text;<br />
using System.Xml;<br />
using System.Security.Cryptography;<br />
using System.IO;<br />
using Microsoft.Dynamics.BusinessConnectorNet;</p>
<p>namespace ConsoleApplication3<br />
{<br />
class Program<br />
{</p>
<p>static void Main(string[] args)<br />
{<br />
Axapta AX;<br />
AX = new Axapta();<br />
AX.Logon(&#8220;CNS&#8221;, null, &#8220;DYmanicsAx1:2713&#8243; , null);<br />
object[] Parmlist = new object[1];</p>
<p>AxaptaContainer Container = AX.CreateAxaptaContainer();<br />
Container = (AxaptaContainer)AX.CallStaticRecordMethod(&#8220;InventDim&#8221;, &#8220;dimEnabledFieldList&#8221;, 1);<br />
Console.WriteLine(BankAccountTable.Call(&#8220;balanceCur&#8221;, Container));</p>
<p>AX.Logoff();<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://ax.nom.es/axapta/uso-de-contenedores-con-ax-business-connector-net/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft.Axapta.BusinessConnector Code Samples</title>
		<link>http://ax.nom.es/axapta/microsoftaxaptabusinessconnector-code-samples</link>
		<comments>http://ax.nom.es/axapta/microsoftaxaptabusinessconnector-code-samples#comments</comments>
		<pubDate>Fri, 23 Jan 2009 13:29:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[5.0]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[x++]]></category>
		<category><![CDATA[aot]]></category>
		<category><![CDATA[froms]]></category>

		<guid isPermaLink="false">http://ax.nom.es/?p=73</guid>
		<description><![CDATA[Delete sample // Execute a query to retrieve an editable record // where the name is MyStateUpdated. axRecord.ExecuteStmt(&#8220;select forupdate * from %1 where %1.Name == &#8216;MyStateUpdated&#8217;&#8221;); // 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(); } [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Delete sample</strong></p>
<p>// Execute a query to retrieve an editable record<br />
// where the name is MyStateUpdated.<br />
axRecord.ExecuteStmt(&#8220;select forupdate * from %1 where %1.Name ==<br />
&#8216;MyStateUpdated&#8217;&#8221;);</p>
<p>// If the record is found then delete the record.<br />
if (axRecord.Found)<br />
{<br />
// Start a transaction that can be committed.<br />
ax.TTSBegin();<br />
axRecord.Delete();<br />
// Commit the transaction.<br />
ax.TTSCommit();<br />
}</p>
<p><strong>INSERT</strong></p>
<p>// Create the .NET Business Connector objects.<br />
Axapta ax;<br />
AxaptaRecord axRecord;<br />
string tableName = &#8220;AddressState&#8221;;</p>
<p>try<br />
{<br />
// Login to Microsoft Dynamics AX.<br />
ax = new Axapta();<br />
ax.Logon(null, null, null, null);</p>
<p>// Create a new AddressState table record.<br />
using (axRecord = ax.CreateAxaptaRecord(tableName));<br />
{</p>
<p>// Provide values for each of the AddressState record fields.<br />
axRecord.set_Field(&#8220;NAME&#8221;, &#8220;MyState&#8221;);<br />
axRecord.set_Field(&#8220;STATEID&#8221;, &#8220;MyState&#8221;);<br />
axRecord.set_Field(&#8220;COUNTRYREGIONID&#8221;, &#8220;US&#8221;);<br />
axRecord.set_Field(&#8220;INTRASTATCODE&#8221;, &#8220;&#8221;);</p>
<p>// Commit the record to the database.<br />
axRecord.Insert();<br />
}<br />
}<br />
catch (Exception e)<br />
{<br />
Console.WriteLine(&#8220;Error encountered: {0}&#8221;, e.Message);<br />
// Take other error action as needed.<br />
}<br />
<strong>READ</strong></p>
<p>// Create the .NET Business Connector objects.<br />
Axapta ax;<br />
AxaptaRecord axRecord;<br />
string tableName = &#8220;AddressState&#8221;;</p>
<p>// The AddressState field names for calls to<br />
// the AxRecord.get_field method.<br />
string strNameField = &#8220;NAME&#8221;;<br />
string strStateIdField = &#8220;STATEID&#8221;;</p>
<p>// The output variables for calls to the<br />
// AxRecord.get_Field method.<br />
object fieldName, fieldStateId;</p>
<p>try<br />
{<br />
// Login to Microsoft Dynamics AX.<br />
ax = new Axapta();<br />
ax.Logon(null, null, null, null);</p>
<p>// Create a query using the AxaptaRecord class<br />
// for the StateAddress table.<br />
using (axRecord = ax.CreateAxaptaRecord(tableName));<br />
{</p>
<p>// Execute the query on the table.<br />
axRecord.ExecuteStmt(&#8220;select * from %1&#8243;);</p>
<p>// Create output with a title and column headings<br />
// for the returned records.<br />
Console.WriteLine(&#8220;List of selected records from {0}&#8221;,<br />
tableName);<br />
Console.WriteLine(&#8220;{0}\t{1}&#8221;, strNameField, strStateIdField);</p>
<p>// Loop through the set of retrieved records.<br />
while (axRecord.Found)<br />
{<br />
// Retrieve the record data for the specified fields.<br />
fieldName = axRecord.get_Field(strNameField);<br />
fieldStateId = axRecord.get_Field(strStateIdField);</p>
<p>// Display the retrieved data.<br />
Console.WriteLine(fieldName + &#8220;\t&#8221; + fieldStateId);</p>
<p>// Advance to the next row.<br />
axRecord.Next();<br />
}<br />
}<br />
}</p>
<p>catch (Exception e)<br />
{<br />
Console.WriteLine(&#8220;Error encountered: {0}&#8221;, e.Message);<br />
// Take other error action as needed.<br />
}</p>
<p><strong>UPDATE</strong></p>
<p>// Create an Axapta record for the StateAddress table.<br />
axRecord = ax.CreateAxaptaRecord(tableName);</p>
<p>// Execute a query to retrieve an editable record where the name is MyState.<br />
axRecord.ExecuteStmt(&#8220;select forupdate * from %1 where %1.Name ==<br />
&#8216;MyState&#8217;&#8221;);</p>
<p>// If the record is found then update the name.<br />
if (axRecord.Found)<br />
{<br />
// Start a transaction that can be committed.<br />
ax.TTSBegin();<br />
axRecord.set_Field(&#8220;Name&#8221;, &#8220;MyStateUpdated&#8221;);<br />
axRecord.Update();</p>
<p>// Commit the transaction.<br />
ax.TTSCommit();<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://ax.nom.es/axapta/microsoftaxaptabusinessconnector-code-samples/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como crear un entorno de desarrollo desde una instalación en producción.</title>
		<link>http://ax.nom.es/sql/como-crear-un-entorno-de-desarrollo-desde-una-instalacion-en-produccion</link>
		<comments>http://ax.nom.es/sql/como-crear-un-entorno-de-desarrollo-desde-una-instalacion-en-produccion#comments</comments>
		<pubDate>Tue, 08 Jul 2008 10:28:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[3.0]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[AOS]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://ax.nom.es/?p=65</guid>
		<description><![CDATA[Ahora q esta muy de moda lo del cambio contable por la nueva ley vamos a hacer un entorno de desarrollo. Nos encontramos en algunos casos que una cambio de Service pack o una actualización grave sobre producción representa una incompatibilidad entre el trabajo de los usuarios y las tareas de desarrollo, sin llegar a [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora q esta muy de moda lo del cambio contable por la nueva ley vamos a hacer un entorno de desarrollo.</p>
<p>Nos encontramos en algunos casos que una cambio de Service pack o una actualización grave sobre producción representa una incompatibilidad entre el trabajo de los usuarios y las tareas de desarrollo, sin llegar a exagerar como las instalaciones que hacíamos cuando heramos esclavos de las consultoras y a la &#8220;grupy&#8221; financiera de turno se le ocurría de debíamos tener el entorno de producción, el de preproducción y el de desarrollo. No es mala idea tener un lugar en el que poder trabajar con libertad tanto para desarrollo como para pruebas funcionales.</p>
<p>Axapta básicamente esta compuesto por un código fuente que se almacena en unos directorios dentro de unos archivos específicos y una base de datos. Todo esto no funciona sin un programa que interprete estos archivos y los enlace con la base de datos.</p>
<p>De esta manera para hacer un entorno de desarrollo a partir de producción solo debemos mantener esta coherencia directorio base de datos.</p>
<p>Ejemplo practico.</p>
<p>Tenemos una instalación tipo, 3.0 spX con una base de datos SQL server X.</p>
<p>Nuestra instalación se encuentra situada en &#8220;C:\Navision\Axapta Application\Appl&#8221; dentro del directorio tenemos los directorios de las diferentes aplicaciones. Normalmente Standard y producción.</p>
<p>Copiando producción y renombrar el directorio como Test ya tendríamos la mitad de nuestro entorno de desarrollo.</p>
<p>Después solo hay que realizar una copia de seguridad de la base de datos completa y restaurarla con otro nombre.</p>
<p>El último paso seria configurar el cliente o el AOS para que accedan al nuevo entorno y sincronicen los posibles cambios.</p>
<p><a href="http://ax.nom.es/wp-content/uploads/2008/07/test_1.jpg"><img class="alignnone size-thumbnail wp-image-66" title="test_1" src="http://ax.nom.es/wp-content/uploads/2008/07/test_1-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a href="http://ax.nom.es/wp-content/uploads/2008/07/test_2.jpg"><img class="alignnone size-thumbnail wp-image-67" title="test_2" src="http://ax.nom.es/wp-content/uploads/2008/07/test_2-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a href="http://ax.nom.es/wp-content/uploads/2008/07/test_3.jpg"><img class="alignnone size-thumbnail wp-image-68" title="test_3" src="http://ax.nom.es/wp-content/uploads/2008/07/test_3-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a href="http://ax.nom.es/wp-content/uploads/2008/07/test_4.jpg"><img class="alignnone size-thumbnail wp-image-69" title="test_4" src="http://ax.nom.es/wp-content/uploads/2008/07/test_4-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a href="http://ax.nom.es/wp-content/uploads/2008/07/test_5.jpg"><img class="alignnone size-thumbnail wp-image-70" title="test_5" src="http://ax.nom.es/wp-content/uploads/2008/07/test_5-150x150.jpg" alt="" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ax.nom.es/sql/como-crear-un-entorno-de-desarrollo-desde-una-instalacion-en-produccion/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como ejecutar un archivo cmd o .bat desde un cliente sobre el servidor AOS</title>
		<link>http://ax.nom.es/dynamics/como-ejecutar-un-archivo-cmd-o-bat-desde-un-cliente-sobre-el-servidor-aos</link>
		<comments>http://ax.nom.es/dynamics/como-ejecutar-un-archivo-cmd-o-bat-desde-un-cliente-sobre-el-servidor-aos#comments</comments>
		<pubDate>Thu, 27 Mar 2008 12:27:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[3.0]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[AOS]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[x++]]></category>
		<category><![CDATA[asciiio]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[xpo]]></category>

		<guid isPermaLink="false">http://ax.nom.es/uncategorized/como-ejecutar-un-archivo-cmd-o-bat-desde-un-cliente-sobre-el-servidor-aos</guid>
		<description><![CDATA[Para poder crear un archivo tipo bat o cmd con definirlo de esta manera &#8220;file = new asciiio(&#8216;c:\\filex.bat&#8217;,'w&#8217;);&#8221; ya tenemos un fichero llamado filex.bat en c:\ . Ahora bien en nuestro c: o en el del sevidor???? Pues eso solo lo sabremos si el metdodo q hemos ejecutado se lanza del lado del cliente o [...]]]></description>
			<content:encoded><![CDATA[<p>Para poder crear un archivo tipo bat o cmd con definirlo de esta manera  &#8220;file = new asciiio(&#8216;c:\\filex.bat&#8217;,'w&#8217;);&#8221; ya tenemos un fichero llamado filex.bat en c:\ . Ahora bien en nuestro c: o en el del sevidor???? Pues eso solo lo sabremos si el metdodo  q hemos ejecutado se lanza del lado del cliente o del lado del servidor, y para salir de dudas mejor definir una metodo static y ponerle server para que de fijo se lance en el servidor donde se este ejecutando nuestro AOS (AX32serv.exe).</p>
<p>static server void Start()<br />
{<br />
asciiio file;<br />
str txt;<br />
;<br />
winapi::deleteFile(&#8216;C:\\file2.txt&#8217;);</p>
<p>file = new asciiio(&#8216;c:\\filex.bat&#8217;,'w&#8217;);</p>
<p>if (file)<br />
{<br />
txt = (strfmt(&#8216;net start &#8220;Axapta batch 1&#8243; &#8216;));<br />
file.write(txt);</p>
<p>file = null;</p>
<p>winapi::shellExecute(&#8216;c:\\filex.bat&#8217;);<br />
winapi::deleteFile(&#8216;C:\\filex.txt&#8217;);<br />
}</p>
<p>}</p>
<p><a href="http://ax.nom.es/wp-content/uploads/2008/03/ftx_tpv_shutdownrestartservices.xpo" title="ftx_tpv_shutdownrestartservices.xpo">ftx_tpv_shutdownrestartservices.xpo</a></p>
<p><a href="http://ax.nom.es/wp-content/uploads/2008/03/dibujo111111.JPG" title="dibujo111111.JPG"><img src="http://ax.nom.es/wp-content/uploads/2008/03/dibujo111111.JPG" alt="dibujo111111.JPG" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ax.nom.es/dynamics/como-ejecutar-un-archivo-cmd-o-bat-desde-un-cliente-sobre-el-servidor-aos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como pasar parametros entre objetos usando la clase args AX axapta</title>
		<link>http://ax.nom.es/uncategorized/como-pasar-parametros-entre-objetos-usando-la-clase-args-ax-axapta</link>
		<comments>http://ax.nom.es/uncategorized/como-pasar-parametros-entre-objetos-usando-la-clase-args-ax-axapta#comments</comments>
		<pubDate>Tue, 19 Feb 2008 13:01:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[3.0]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[aot]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[x++]]></category>
		<category><![CDATA[froms]]></category>

		<guid isPermaLink="false">http://ax.nom.es/?p=31</guid>
		<description><![CDATA[Args  es utiliza para pasar argumentos al constructor de una clase. Args pueden transmitir información como el nombre, y los parámetros que llaman a una nueva clase. Los formularios, informes y consultas utilizan  la clase Args como primer argumento en el constructor. Pasandole el nombre del objeto a crear a una clase args y despues [...]]]></description>
			<content:encoded><![CDATA[<p dir="ltr">Args  es utiliza para pasar argumentos al constructor de una clase. Args pueden transmitir información como el nombre, y los parámetros que llaman a una nueva clase.</p>
<p>Los formularios, informes y consultas utilizan  la clase Args como primer argumento en el constructor.</p>
<p dir="ltr">Pasandole el nombre del objeto a crear a una clase args y despues llamar a classfactory con estos argumentos podemos inicializar fomularios, informes etc.</p>
<p dir="ltr"><font size="2">    Args a = new Args(&#8220;CustTable&#8221;);<br />
    formRun fr = ClassFactory.FormRunClass(a);<br />
    fr.init();<br />
    fr.run();<br />
</font> </p>
<p>para recuperar el objeto args en la clase de destino, por regla general existe un metodo que nos devuelve este dato.</p>
<p dir="ltr">elment.args() en el caso de formulario.</p>
<p dir="ltr">El objetivo de esto es poder pasar a traves de args objetos completos a otros contextos de ejecución de forma que podriamos abrir un formulario inicial F1 ejecutar otro formulario secundario F2 y poder ejecutar metodos del formulario 1 desde el formulario 2.</p>
<p dir="ltr">un ejemplo.</p>
<p dir="ltr">Hemos creado un from con un metodo para recuperar el texto de un strignedit y este texto lo vamos a pintar desde un report, utilizando para ello una clase intermedia o el metodo del form que lo ha llamado.</p>
<p dir="ltr"><a href="http://ax.nom.es/wp-content/uploads/2008/02/fir_dem.xpo" title="fir_dem.xpo">fir_dem.xpo</a> </p>
<p dir="ltr">public void init()<br />
{<br />
    object ob;<br />
    FIR_ReportClas FIR_ReportClas;</p>
<p dir="ltr">    super();</p>
<p dir="ltr">    //axl si no es la clase entonces es el formmm&#8230;<br />
    if (classIdGet(element.args().caller()) == classNum(FIR_ReportClas))<br />
    {<br />
            FIR_ReportClas = element.args().caller();<br />
            print FIR_ReportClas.texto();<br />
    }<br />
    else<br />
    {<br />
        ob = element.args().caller();<br />
        print ob.texto();<br />
    }</p>
<p dir="ltr"><a href="http://ax.nom.es/wp-content/uploads/2008/02/dibujoaaxxzee.bmp" title="dibujoaaxxzee.bmp"><img src="http://ax.nom.es/wp-content/uploads/2008/02/dibujoaaxxzee.bmp" alt="dibujoaaxxzee.bmp" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ax.nom.es/uncategorized/como-pasar-parametros-entre-objetos-usando-la-clase-args-ax-axapta/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalación de AX Dinamics 4.0 con oracle express</title>
		<link>http://ax.nom.es/uncategorized/instalacion-de-ax-dinamics-40-con-oracle-express</link>
		<comments>http://ax.nom.es/uncategorized/instalacion-de-ax-dinamics-40-con-oracle-express#comments</comments>
		<pubDate>Fri, 15 Feb 2008 10:04:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[3.0]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[axapta]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Instalación]]></category>

		<guid isPermaLink="false">http://ax.nom.es/?p=30</guid>
		<description><![CDATA[Desde este blog apostamos más por la utilidad y el buen hacer que por las facturas que van a cobrar las consultoras en ventas de productos Microsoft. Hemos de reconocer que AX es un buen producto como “erp” que ya se ha asentado en nuestro país y que día a día es una solución tanto [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Georgia">Desde este blog apostamos más por la utilidad y el buen hacer que por las facturas que van a cobrar las consultoras en ventas de productos Microsoft. Hemos de reconocer que AX es un buen producto como “erp” que ya se ha asentado en nuestro país y que día a día es una solución tanto para la pequeña como media empresa. <o:p></o:p></span><span style="font-family: Georgia">A la hora de implantar un Ax normalmente los que deciden que base de datos o plataforma se va a utilizar, suelen ser los comerciales que le venden la moto al pobre cliente que no sabe realmente que necesita ya <span> </span>que no tiene experiencia sobre en el tema. <o:p></o:p></span><span style="font-family: Georgia">Aprovechando esta carencia algún que otro desalmado le coloca un sql Server solo para sacarse unas perrillas de más y de paso subir un par de puntos en el ranking de “Partners“, o tal vez por puro desconocimiento o falta de profesionalidad. <o:p></o:p></span><span style="font-family: Georgia">Para nosotros y con la experiencia adquirida desde la versión 2.1, <span> </span>desde antes del año 2000 recomendamos “oracle” para las instalaciones que requieran un volumen de movimientos <span> </span>grande. Bases de datos que vayan a superar los 30 o 50 GB no en su instalación base, sino en el crecimiento que sufrirá tras su puesta en producción.<o:p></o:p></span><span style="font-family: Georgia"><o:p> </o:p></span><span style="font-family: Georgia">A lo que vamos. <o:p></o:p></span><span style="font-family: Georgia">La instalación de AX 4.0 es muy sencilla y solamente necesitamos una maquina 2003 server r2 actualizada y una base de datos en este caso oracle Express que aun con una limitación de 4 GB <span> </span>nos servirá de ejemplo. <o:p></o:p></span><span style="font-family: Georgia">http://www.oracle.com/technology/software/products/database/xe/index.html<o:p></o:p></span><span style="font-family: Georgia">Tras instalar oracle Express que no es muy difícil continuaremos con la de AX 4.0, uno de los pasos en la instalación es la elección de la base de datos, en este instante nos solicitara una serie de datos, el listener, el puerto tcp o el usuario y la contraseña de la base de datos. <o:p></o:p></span><span style="font-family: Georgia">Ax necesita que la autentificación de base de datos la realice el sistema operativo. Para conseguir esto solo necesitamos cambiar el parámetro de XE <o:p></o:p></span></p>
<pre><font size="2">os_authent_prefix<span>  </span><o:p></o:p></font></pre>
<p><span style="font-family: Georgia">Con un prefijo tipo ‘ops$’ nos sevira, <span> </span>de manera que oracle sepa identificar si el usuario del SO que solicita la conexión esta creado en oracle autorizando el acceso. <o:p></o:p></span><span style="font-family: Georgia"><o:p> </o:p></span><span style="font-family: Georgia">Crearemos un usuario<span>  </span>en oracle como este:<o:p></o:p></span></p>
<pre><span lang="EN-GB"><font size="2">-- Windows<o:p></o:p></font></span></pre>
<pre><span lang="EN-GB"><font size="2">CREATE USER "OPS$DOMINIO.COM\DBO" IDENTIFIED EXTERNALLY;<o:p></o:p></font></span></pre>
<pre><span lang="EN-GB"><font size="2">GRANT CONNECT TO "OPS$DOMINIO.COM\DBO";<o:p></o:p></font></span></pre>
<p><span style="font-family: Georgia">Crearemos un usuario en nuestro dominio en este caso DBO .<o:p></o:p></span><span style="font-family: Georgia">Oracle &#8211;&gt; OPS$dominio\DBO<o:p></o:p></span><span style="font-family: Georgia">Win &#8211;&gt; DBO<o:p></o:p></span><span style="font-family: Georgia">Y podremos finalizar la instalación.<o:p></o:p></span><span style="font-family: Georgia">Ni que decir tiene que debemos crear un tablespace de datos otro de indices etc. (Vamos lo típico en estos casos).<o:p></o:p></span><span style="font-family: Georgia"><a href="http://www.oracle-base.com/articles/misc/OsAuthentication.php">http://www.oracle-base.com/articles/misc/OsAuthentication.php</a><o:p></o:p></span><span style="font-family: Georgia"><o:p> </o:p></span><span style="font-family: Georgia">Para finalizar recomendaros que ORACLE + SUSE Linux <span> </span>+ AX es la mejor combinación para un optimo rendimiento de la instalación y evitar los sustos que nos dará Microsoft con el día a día que ya sabemos todos. <o:p></o:p></span><span style="font-family: Georgia"><o:p> </o:p></span><span style="font-family: Georgia">Un saludo.<o:p></o:p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://ax.nom.es/uncategorized/instalacion-de-ax-dinamics-40-con-oracle-express/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

