Un poco de lo que sé, hago y pienso |
Vamos tomando forma... Pueden seguirme en Twitter @anasilviago |
Muchas veces, cuando alguien está a media transacción y por alguna razón se desconecta del servicio (Error en el sistema, fallo de electricidad, fallo en el servidor, etc), Dynamics AX deja guardado el estado de la transacción en la que estaba trabajando el usuario y no deja que está se modifique. Este es el caso de las liquidaciones, puede que alguien estuviera intentado liquidar pagos cuando se desconectó del servicio y al regresar la transacción siga marcada debido a que según AX algún usuario la está utilizando. Aparece una manita roja y cuando se intenta marcar para liquidar sale un mensaje diciendo que alguien más marcó la transacción para su liquidación.
Lo que pasa es que estás transacciones se quedaron registradas en la tabla de SpecTrans por lo tanto solo hay que borrarlas. Para borrarlas sólo vaya al AOT > Data Dictionary > Tables > SpectTrans, de clic derecho en la tabla y elija Add-ins, luego Table Browser y busque la línea de la transacción que desea eliminar. Borre la transacción y ya será libre de volverla a marcar para su liquidación correcta.
Utilizando el ERP de Microsoft, Dynamics AX 2009, empezó a aparecer un error a la hora de querer registrar ordenes de compra y facturas. El error decía:
No se puede crear un registro en Encabezado de pedido de compra: tabla de actualización (PurchParmSubTable). Pedido de Compra <xxx>, <Cliente>. La base de datos SQL ha emitido un error.
Pasé horas intentado arreglarlo pero no podía y ni googleando encontraba respuesta. Por fin encontré un foro en inglés que me ayudo.
Dice que el problema se da por las siguientes razones (la verdad yo no hice nada de lo siguiente pero me funcionó la solución):
LA SOLUCIÓN!!
Cambiar código de algunos métodos. Yo hice los siguientes cambios en mi código y funcionó sin ningún problema pero si ustedes deciden hacer es BAJO SU RESPONSABILIDAD. Les aconsejo copiar el código original por si acaso este no funciona y así puedan regresar a como estaban, en mi caso los métodos no eran muy elaborados ya que los dos insert eran simplemente un super().
Seguir los siguientes pasos:
1. Sobreescribir el código del método insert en la tabla PurchPamSubTable de la siguiente forma:
public void insert()
{
PurchParmSubTable tempPurchParmSubTable;
;
select tempPurchParmSubTable where
tempPurchParmSubTable.ParmId == this.ParmId
&& tempPurchParmSubTable.TableRefId == this.TableRefId
&& tempPurchParmSubTable.OrigPurchId == this.OrigPurchId;
if(tempPurchParmSubTable.RecId == 0)
{
super();
}
}
2. Sobreescribir el código del método createFromPurchParmTable de la tabla PurchPamSubTable:
static PurchParmSubTable createFromPurchParmTable(PurchParmTable _purchParmTable, boolean _insert = true)
{
PurchParmSubTable purchParmSubTable;
systemSequence systemSequence;
;
ttsbegin;
purchParmSubTable.clear();
purchParmSubTable.initValue();
purchParmSubTable.initFromPurchParmTable(_purchParmTable);
if (_insert)
{
systemSequence = new systemSequence();
purchParmSubTable.RecId = systemSequence.reserveValues(1, tablenum(PurchParmSubTable));
purchParmSubTable.insert();
}
ttscommit;
return purchParmSubTable;
}
3. Sobreescribir el código del método insert en la tabla SalesParmSubTable:
public void insert()
{
SalesParmSubTable tempSalesParmSubTable;
;
select tempSalesParmSubTable where
tempSalesParmSubTable.ParmId == this.ParmId
&& tempSalesParmSubTable.TableRefId == this.TableRefId
&& tempSalesParmSubTable.OrigSalesId == this.OrigSalesId
&& tempSalesParmSubTable.subId == this.subId;
if(tempSalesParmSubTable.RecId == 0)
{
super();
}
}
NOTA IMPORTANTE: Si sus métodos originales ya habían sido modificados entonces unan esas modificaciones con el código que les di anteriormente.
And here I am, all pieces in place like I planned them to be. Still something’s missing, I guess that’s how life is supposed to be… What if I didn’t want anything else? There wouldn’t be anything worth an effort. So I know I would like to live in a perfect world but when a sense that strange feeling that tells me that something’s missing I just smile to myself and think “THANK GOD!!”.
Of course it can be a little bitter, wanting something you don’t have, but the worst part is not even knowing what you want! I guess first I have to figure that out…
| Menso1: | Hey terminaste el trabajo? |
| Menso2: | Sí, querés que te lo pase? |
| Menso1: | Mandamelo a mi correo... |
| Menso2: | Cuál es? |
| Menso1: | *se lo dicta* |
| Menso2: | Todo va con minúsculas verdad? |
| Menso1: | *FACEPALM* |
Bueno, para empezar PhoneGap es una plataforma que permite crear aplicaciones móviles para SmartPhones (BlackBerry, Android, Iphone, Windows Phone, etc). Lo especial de esta plataforma es que no hay que desarrollar en lenguaje nativo de cada OS sino que se trabaja como una página web. Te permite escribir tu código en HTML, JavaScript, CSS y me acabo de enterar que en Flash también. Entonces no tenés que saber desarrollar nativamente en cada OS sino que sólo creas tu aplicación, la subís a la nube de PhoneGap y ellos te devuelven los archivos de la aplicación para OS que escojas. Obviamente tiene sus ventajas y desventajas.
Como ventaja es la facilidad de desarrollo y que te ahorras un montón de tiempo en hacer una sola aplicación para muchas plataformas, además tiene mucha documentación entonces cualquier problema o duda seguramente ya esta resuelta. Al ser tan grande la comunidad hay un montón de API’s que te ayudan a adaptar diferentes herramientas a tu aplicación. Por ahora es gratis pero lo compró Adobe entonces no creo que esto vaya a durar mucho tiempo entocnes es de aporvechar.
Desventajas es simplemente las limitaciones que tenés por no estar desarrollando nativamente en cada OS, por así decirlo no aprovechas todos los recursos que cada plataforma te brinda lo que puede ser un problema dependiendo de que tan “complicada” sea tu aplicación.
Ya he hecho un par de aplicaciones con PhoneGap y aquí les muestro una que hice, es practicamente un mapa de Google Maps pero con la locación ya definida que en este caso es el mapa de Antigua Guatemala, Guatemala. No tengo el código de esta aplicación pero si lo buscan en Google estoy segura que lo encuentran simplemente es de manejar las coordenadas para que te aparezca la locación que querés.
Bueno decidí que voy a empezar a publicar algo en esta cosa, me he dado cuenta que siempre que necesito algo no lo encuentro en un sitio super importante sino que es la gente común y corriente que postea cosas y ayuda a la “comunidad”. Por eso voy a poner de mi parte y voy a empezar a publicar cosas que vaya desarrollando y que tal vez puedan ayudar a alguien en algún momento de desesperación.
Son libre de usar todo lo que postee aquí, si necesitan algo extra me lo pueden pedir y si se los puedo pasar con gusto lo haré.
Me imagino que voy a tener muchas cosas de desarrollo móvil porque generalmente trabajo en eso, pero este blog no va a ser sobre un tema específico. Quién sabe? Tal vez hasta un día me sienta inspirada y me ponga a escribir algo “artístico”.
Espero que alguien lo lea y le sirva o al menos le guste =)
La imagen de semana santa! Se que va a estar muy muy muy alegre esta semana
The last two years of high school every teacher talked about getting us ready for...
A great friend of mine recently got me a Christmas gift…
Did you figure it out yet?
A sword, fire and a key.
All you Cashore fans know what I’m...
Night had a shield
it protected him,
but one dawn
the fury of the sun
was too much
for it to bare.
The shield broken,
his life on the...
Sometimes I wish for aliens to abduct me
sometimes I just wish for angels to come
for them to come and tuck me in at nightfall
with their...
Hace algunos días hablando con una de mis ganancias de este año (el termino ganancia se comprenderá más adelante). Estaba hablando de...
Hola que tal!!!…
cómo han estado todos???… me extrañaban vdd…
Ps hoy quiero contarles de los cambios radicales que se estan...