Toad for update

En el IDE PL SQL DEVELOPER solo basta agregar al final de una consulta For update, para poder hacer la edición de los registros in situ, pero en el toad es algo diferente, para poder hacer lo mismo es necesario agregar el rowid.

Dejo el tips que después lo olvido 😛

Instalando Servidor Free BSD con Samba Apeche y Mysql

Revisando unos respaldos viejos en busca de códigos de ejemplo me encontre con un tutorial que hice para intalar un servidor freeBSD, esta algo desactualizado, pero mejor lo subo, así queda por si alguien le sirve y no se queda solo en mi memoria…

Para las opciones de Instalación seleccionar:

 

Chile

Spanish(Accent)

 

1.- Sistema Operativo.

 

Shell >> sysinstall à instalar Custom

Dà A…ETC

LABEL à doble de ramk para swap lo demas filesystem

MEDIA à CD

Commit

 

2.- Configurar post – instalación.

 

 

Shell >> sysinstall

 

Configure à Network à Ethernet

Agregar SSH y el interprete de commando de Linux

nombreEquipo

dominio: dominio.cl

192.168.0.1

200.x.x.x

IP EQUIPO y MASCARA

Sin IPV6 sin DHCP

 

–Reiniciar y verificar la configuración horaria para poder actualizar por ports.

 

3- Compilar el Kernel

 

Shell >> cd /usr/src/sys/i386/conf

Shell >> cp GENERIC KSERV

Shell >> config KSERV

Shell >> cd ../compile/KSERV

Shell >> make depend && make && make install

 

4- Actualizar

 

Shell >> portsnap fetch extract update

 

5- Instalar Samba

 

Shell >> cd /usr/ports/net/samba3

Shell>> make install

 

 

 

6- Configurar Samba.

 

Shell >> cd /usr/local/etc

Shell >> vi smb.conf

 

Modificar:

 

Workgroup = grupo

Server string = nombre

Security = share

 

Shell >> cd /etc/

Shell >> vi rc.local

 

Agregar al archivo creado

 

/usr/local/samba/sbin/nmbd

/usr/local/samba/sbin/smbd

 

Shell >> vi /etc/rc.conf

 

Agregar

 

Samba_enable = “YES”

 

7- Instalar Apache

 

Shell >> /usr/ports/www/apache13/ && make install clean

Shell >> vi /etc/rc.conf

 

Agregar

 

Apache_enable =”YES”

 

Shell>> reboot

 

 

Revisar

 

Shell >> netstat –a

 

Debe haber la siguuiente linea tcp4 0 0 *. http *.* LISTEN

 

Shell>> cd /usr/local/www

Shell>> chmod 777 data

 

 

 

 

 

8- Agregar Complementos php a Apache

 

Shell >> cd /usr/ports/lang/php5-extensions/ && make config

 

Seleccionar Extenciones a Instalar (mysql – session – etc)

 

Shell >> cd /usr/ports/lang/php5-extensions/ && make install clean

 

9- Instalar Servidor mysql

 

Shell >> pw groupadd mysql

Shell >> pw useradd –g mysql mysql

Shell >> cd /usr/local/

Shell >> gunzip < /ruta tar /mysql-version.tar.gz | tar xvf –

Shell >> ln – s mysql-version mysql

Shell >> cd mysql

Shell >> chown –R mysql . (notar el punto [.])

Shell >> chgrp –R mysql .

Shell >> scripts/mysql_install_db –user=mysql

Shell >> chown –R root .

Shell >> chown –R mysql data

Shell >> bin/mysqld_safe –user=mysql &

 

(hacer desde putty ya que toma la consola)

 

para inciar el servicio usar

 

Shell >> cd /usr/local/mysql/bin

Shell >> ./mysqld –u root (hacer desde putty ya que toma la consola)

 

10 – Permitir Acceso

 

Shell >> mysqladmin –u root password “contraseña”

Shell >> mysql –u root –p mysql

 

Mysql >> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’

   -> IDENTIFIED BY ‘password’;

 

Mysql >> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’localhost’

   -> IDENTIFIED BY ‘password’;

 

Mysql >> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’equipo.dominio’

   -> IDENTIFIED BY ‘password’;

 

11- Agregar usuario whell

 

Shell >> addUser

 

Seguir instrucciones y dejarlo en grupo wheel

 

12- Configurar pass de root

 

Shell >> sysinstall

 

Seleccionar Opcion de pass de root

 

Se que no esta muy claro, pero he estado algo ocupado… si alguien necesita más explicación que me diga por aquí

crear WS con Apache CXF

En mis nuevas aventuras con java, lo primero fue hacer unos WS con CXF, la verdad no es muy complejo… Para empezar hay que tener algunas cosas en nuestro classpath. Como las librerías de Apache CXF y Spring.

Luego creas un nuevo proyecto Web Dinámico, Uso Eclipse como Ide de Desarrollo. Lo primero es agregar la configuración al archivo Web.xml del proyecto.

hoy 1

Aquí defino la ruta en que mi WS va a funcionar y cual es el patrón de URL que va a usar, como ven hago referencia a otro archivo, llamado bean.xml,  ahí defino el endpoint y la clase que implementa mi servicio

 

hoy 2

 

Luego hago un Dto, que define mis entradas y salidas.

package com.test;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "Ejemplo")
@XmlType(propOrder = {"texto"})
public class EjemploDto implements Serializable {
 
 /**
 * 
 */
 private static final long serialVersionUID = -2385107524861075983L;
 private String texto;
 
 @XmlElement(required = true, name = "texto")
 public String getTexto()
 {
 return this.texto;
 }
 
 public void setTexto(String texto)
 {
 this.texto = texto;
 }
 
 
}

Defino que elementos son parte de los XML que se usarán. Luego hago una interface que se usará como contrato.

package com.test;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface ITest {
 
 @WebMethod
 public EjemploDto holaMundo(
 @WebParam(name = "Nombre") EjemploDto nombre
 );
}

y luego la clase que implementa.

package com.test;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService(endpointInterface = "com.test.ITest", serviceName = "WSTest")
public class TestImpl implements ITest {
 
 public EjemploDto holaMundo(
 @WebParam(name = "Nombre") EjemploDto nombre
 )
 {
 nombre.setTexto("hola mundo");
 return nombre;
 }
}

Luego a hacer deploy, en mi caso sobre Jboss y la salida queda así

hoy 3

 

Suerte 🙂

 

 

De vuelta a Java…

A partir de hoy dejo de lado en mundo .net y vuelvo a Java, tengo varios desafíos en Java y particularmente en struts y Spring, así que empezaré a postear cosas de eso.

En particular Spring que es la plataforma que ocupará más mi tiempo ahora. Voy a partir probablemente con el módulo MVC de Spring y de ahí al contenedor de inversión de dependencias.

A ver como me va 🙂

Leer Configuración de empresa cerrada en CRM Dynamics

Con el siguiente código se puede leer esa configuración...
 private void checkHolidays()
 {
 OrganizationServiceProxy servicio = CrmUtil.CreateOrganization();
 DateTime tempClosureDate;
 QueryExpression query = new QueryExpression("calendar");
 query.ColumnSet = new ColumnSet(true);
 ConditionExpression condition = new ConditionExpression();
 condition.AttributeName = "name";
 condition.Operator = ConditionOperator.Equal;
 condition.Values.Add("Business Closure Calendar");
 query.Criteria.Conditions.Add(condition);
 EntityCollection calendars = servicio.RetrieveMultiple(query);
 EntityCollection calendarrule = calendars[0].GetAttributeValue<EntityCollection>("calendarrules");
 foreach (Entity e in calendarrule.Entities)
 {
 tempClosureDate = (DateTime) e["starttime"];
 fechaFeriado.Add(tempClosureDate);
 
 }
 }

Cambiar un estado de una entidad en CRM Dynamics

 

Con el siguiente código se cambia un estado de una entidad normal. Hay entidades como Incident que se maneja de otra forma, pero en general este código funciona.

 

Microsoft.Xrm.Sdk.EntityReference moniker = new EntityReference();
 moniker.LogicalName = Contact.EntityLogicalName;
 moniker.Id = cid;
 OrganizationRequest request = new OrganizationRequest() { RequestName = "SetState" };
 request["EntityMoniker"] = moniker;
 OptionSetValue status = new OptionSetValue(3);
 OptionSetValue state = new OptionSetValue(1);
 request["State"] = state;
 request["Status"] = status;
 servicio.Execute(request);

No entiendo….

Por motivos que no entiendo… mi blog llega hasta pagina hasta la pagina 4… pensé en el template usado y lo cambie… pero nada.

 

bueno https://codigoctm.wordpress.com/page/5/ eso muestra el resto de las entradas… pero creo que es un bug en WordPress.com y no tengo mucho que hacer ahí.

😦

Crear Servicio JSonp y consumirlo con Jquery

A veces es necesario utilizar servicios jsonp para evitar problemas de Cross-Domain. Para eso tenemos que hacer una solución Web limpia y agregar un servicio WCF

Luego debo ir al WEB.config y preocuparme de la siguiente configuracion

 

<system.serviceModel>
 <behaviors>
 <endpointBehaviors>
 <behavior name="WsJsonBolsa.ServicioBolsaIframeAspNetAjaxBehavior">
 <enableWebScript />
 </behavior>
 </endpointBehaviors>
 <serviceBehaviors>
 <!-- Al pasar a producción, eliminar debugbehavior-->
 <behavior name="DebugBehavior">
 <serviceDebug includeExceptionDetailInFaults="true"/>
 </behavior>
 </serviceBehaviors>
 </behaviors>
 <bindings>
 <webHttpBinding>
 <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
 </webHttpBinding>
 </bindings>
 <serviceHostingEnvironment 
 multipleSiteBindingsEnabled="true" />
 <services>
 <service name="WsJsonBolsa.ServicioBolsaIframe" behaviorConfiguration="DebugBehavior">
 <endpoint address="" behaviorConfiguration="WsJsonBolsa.ServicioBolsaIframeAspNetAjaxBehavior"
 bindingConfiguration="webHttpBindingWithJsonP"
 binding="webHttpBinding" contract="WsJsonBolsa.ServicioBolsaIframe" />
 </service>
 </services>
 </system.serviceModel>

Una vez agregada la configuración, los servicios deben ser declarados así

 /// <summary>
 /// metodo de pruebas para revisar la visibilidad del servicio
 /// ==========================================================================
 /// </summary>
 /// <returns></returns>
 [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Json)]
 public string pruebaServicio()
 {
 return "hola mundo";
 }

 

Para consumirlo en javascript debes referenciar a Jquery y agregar la ruta del servicio

Con el siguiente codigo llamas e

 var urlServicio = 'http://localhost/ServicioEjemplo.svc';
function obtenerFamilias() {
 var url = urlServicio + /pruebaServicio?callback=0;
 var c = 0;
 var familia;
$.ajax({
 url: url,
 dataType: 'jsonp',
 crossDomain: true,
 success: function (response) {
 alert(d.data);
 },
 error: function (e) {
 consola(e.message);
 }
 });
 }

Así llamas los métodos del servicio en ajax… Lo demás es creatividad personal.

 

suerte