martes, 25 de enero de 2011

Servidor BES recibe correo pero no envía.

Según estuve leyendo al respecto, existían como 7,428 razones para hacer eso posible, sin embargo la más común es que los usuarios no contaban con el permiso Send As. Si los usuarios del dominio pueden enviar correo correctamente, pero algún grupo no (como los administradores por ejemplo) el problema sigue siendo el mismo solo que para las cuentas protegidas.

La solución que realmente nos ayudo a nosotros fue ejecutar la siguiente línea de comandos :

dsacls “cn=AdminSDHolder,cn=System,dc=domain,dc=com” /G “domain.com\BESAdmin:CA;Send As”


Cambiando domain por el nombre del dominio.

Si no tienen instalado el dsacls pueden descargarlo desde la siguiente ruta:

http://www.microsoft.com/downloads/thankyou.aspx?familyId=6ec50b78-8be1-4e81-b3be-4e7ac4f0912d&displayLang=en

Mas información al respecto puede ser encontrado en los siguientes links:

http://www.xomba.com/blackberry_can_t_send_messages_domain_admin_bes_desktop_email_program_unable_submit_message

http://www.d-pit.com/content/view/840/39/

http://www.petestilgoe.com/2007/05/users-cannot-send-e-mail-messages-from-a-blackberry-mobile-device/

http://www.blackberryforums.com.au/forums/blackberry-general-discussion/2129-user-cant-send-emails-after-bes-4-1-updates.html

martes, 11 de enero de 2011

Las CTE (Common Table Expression)

Anteriormente utilizaba de manera regular las tablas temporales o las variables tipo tabla. En ambos casos tenia que definir la estructura de la tabla y posteriormente llenarla con datos y por último manipularla.

Ahora, utilizando las CTE, basta con declarar que columnas vamos a utilizar de la consulta para que se genere esa tabla sin ningún código adicional. El único inconveniente con el que me he encontrado, es que inmediatamente después de la CTE debe venir el SELECT, INSERT, UPDATE o DELETE con el que se desea utilizar los datos, puesto que posteriormente ya no se encuentra disponible.
A continuación agrego un ejemplo:
WITH TablaCTE(IdRegistro, ColumnaUno) AS
(
   SELECT IdRegistro, ColumnaUno
     FROM TablaOriginal
    WHERE MyCondicion
)
SELECT IdRegistro, ColumnaUno
FROM TablaCTE