Translate

terça-feira, 18 de julho de 2023

Copiar os Favoritos entre perfil de usuários no Dynamics AX.

 O menu de favoritos é popular no Dynamics AX.

Uma solicitação comum que recebo dos usuários é: "Ei, gostei do menu de favoritos desse cara, posso copiá-lo para minhas próprias configurações?".

A resposta no padrão Axe é: Não, você não pode. Mas, como quase tudo no AX, isso pode ser feito com uma pequena modificação.

Para poder copiar o menu de favoritos, você precisa saber onde ele está armazenado. Isso é feito na tabela SysPersonalization, no campo 'Buffer'. Estamos procurando registros nesta tabela com o tipo de elemento UserMenu.

O JOB abaixo copiará o menu de favoritos do usuário A para o usuário B. (Se o usuário B tiver uma configuração de menu de favoritos, ele será perdido, pois foi excluído primeiro.)

Favoritos antes de executar o job:


Acesse o AX como administrador, acesse a AOT, crie um novo job e cole o conteúdo abaixo alterando os UserId´s dos usuários conforme sua necessidade. 

Obs: Se você não souber como fazer isso, feche o AX e vai lavar uma louça!!!

server static void FavoritesJob(Args _args)
{ SysPersonalization FromSysPersonalization;
SysPersonalization ToSysPersonalization;
UserId FromUserId='UserA';
UserId ToUserId='UserB';
;

ttsbegin;

// step 1 - delete current favorites menu from user
while select forupdate ToSysPersonalization
where ToSysPersonalization.ElementType==UtilElementType::UserMenu
&& ToSysPersonalization.UserId==ToUserId
{
ToSysPersonalization.doDelete();
}

// step 2 - duplicate from user A
while select FromSysPersonalization
where FromSysPersonalization.UserId==FromUserId
&& FromSysPersonalization.ElementType==UtilElementType::UserMenu
{
ToSysPersonalization.data(FromSysPersonalization);
ToSysPersonalization.UserId=ToUserId;
ToSysPersonalization.doInsert();
}

ttscommit;
}

Execute o job e pronto.

Menu de favoritos após executar o JOB:



Nenhum comentário:

Postar um comentário