jueves, 19 de febrero de 2015

Selector de Carpetas en Navision

Este post lo he copiado de mibuso pero tenia que ponerlo aquí para que veáis que sencillo es:

Name                DataType        Subtype Length
ShellControl     Automation      'Microsoft Shell Controls And Automation'.Shell
Folder               Automation      'Microsoft Shell Controls And Automation'.Folder3
FolderItems      Automation      'Microsoft Shell Controls And Automation'.FolderItems3
FolderItem        Automation      'Microsoft Shell Controls And Automation'.FolderItem2


IF ISCLEAR(ShellControl) THEN
CREATE(ShellControl);
Folder := ShellControl.BrowseForFolder(0,'',0);
IF NOT ISCLEAR( Folder ) THEN BEGIN
 FolderItems := Folder.Items();
 FolderItem := FolderItems.Item;
 EXIT(FORMAT(FolderItem.Path));
END;
CLEAR( ShellControl );
CLEAR( Folder );
CLEAR( FolderItems );
CLEAR( FolderItem );
EXIT('');

miércoles, 18 de febrero de 2015

Manipular Ficheros físicos mediante Web Services

No se si alguna vez os ha surgido la necesidad de copiar o mover ficheros desde el cliente por roles o a través de Web Services.
Desde el cliente clásico funciona sin problemas, pero a la hora de hacerlo funcionar por Web Services surge el quebradero de cabeza.
Hay por ahí teorías que dan una posible solución que tiene que ver con que las funciones COPY,EXISTS,ERASE,etc.... no funcionan en la capa de WS.
Pero este no es el problema, el problema es que tenemos tres niveles en tres equipos. Es decir: que en nuestra arquitectura tenemos el cliente del Web Service (Capa 1), El Web Service en el servidor (Capa 2) y el servidor donde están los ficheros (Capa 3).
No se si habréis podido comprobar que si los ficheros a manipular están en el mismo servidor que donde tenemos instalada la capa de Web Service el problema desaparece. es más, es una de las recomendaciones que hace Microsoft para solucionar el problema.


La solución correcta consiste en Delegar servicios. Como ya he comentado, Microsoft recomienda que los archivos estén en el mismo servidor que la capa de Web Service para ahorrarte la enrevesada configuración de la Delegación.