En ciertas instalaciones, cuando intentamos validar la URL de Workflows, se nos produce el siguiente error:
"The request failed with HTTP status 405: Method Not Allowed"
Exactamente este error se nos produce cuando tenemos la siguiente configuración en nuestro servidor:
– Windows 2008 R2 64 bits
– SQL Server 2008
– IIS 7
Para resolver este error, simplemente le indicaremos a nuestro application Pool que admita 32 bits, para ello tendremos que hacer los siguientes pasos:
- IIS -> Application Pool de WorkFlows -> botón derecho en propiedades avanzadas -> Cambiar 32 bits a Verdadero (TRUE)
Una vez realizado estos cambios, reiniciamos IIS para ello utilizaremos la setencia (iisreset) y ya podremos validar correctamente la URL desde Dynamics Ax (Axapta)
En Dynamics Ax 4.0, podíamos agregar un usuario de Axapta a un grupo de usuario de Sharepoint desde el Menu Principal -> Administración -> Usuarios -> Boton Usuarios relacionados -> Pestaña WebSite.
Desgraciadamente, esta opción ha sido eliminada en Dynamics Ax 2009. Nosotros podemos volver a tener esta opción mediante un Job de X++
El siguiente ejemplo, agrega un usuario de Axapta al grupo de propietarios de Sharepoint mediante CLRInterop, para ello primero de todo tendremos que agrear la DDL Microsoft.Sharepoint.dll a nuestro AOT
staticvoid AddAXUserToSharepointGroup(Args _args){
Microsoft.SharePoint.SPWeb spWeb;
Microsoft.SharePoint.SPSite spSite;
Microsoft.SharePoint.SPGroupCollection spGroupCollection;
Microsoft.SharePoint.SPGroup spGroup;
Microsoft.SharePoint.SPUserCollection spUserCollection;
Microsoft.SharePoint.SPUser spUser;
EPWebSiteParameters epWebSiteParameters;
UserInfo userInfo;
SysUserInfo sysUserInfo;
str loginName;
System.Exception ex;
str siteGroupName;
;
try{//Sharepoint registrado en AX2009selectfirstonly epWebSiteParameters;
selectfirstonly userInfo
where userInfo.id==curUserId();
selectfirstonly sysUserInfo
where sysUserInfo.Id==curUserId();
loginName = userInfo.networkDomain+'\\'+ userInfo.networkAlias;
spSite =new Microsoft.SharePoint.SPSite(epWebSiteParameters.InternalUrl);
spWeb = spSite.get_RootWeb();
//Crea el usuario en Sharepoint
spUserCollection = spWeb.get_SiteUsers();
spUserCollection.Add(loginName, sysUserInfo.Email, userInfo.name,"");
//Agrega el usuario al grupo de propietarios
spUser = spUserCollection.get_Item(loginName);
spGroupCollection = spWeb.get_SiteGroups();
siteGroupName = CLRInterop::getAnyTypeForObject(spWeb.get_Title())+" Owners"; //Or Visitors, Members
spGroup = spGroupCollection.get_Item(siteGroupName);
spGroup.AddUser(spUser);
spGroup.Update();
}
catch (exception::CLRError){
ex = CLRinterop::getLastException();
try{if(ex){
info(ex.ToString());
}}
catch (exception::Internal){
ex = clrinterop::getLastException();
if(ex){
info(ex.ToString());
}}}}