Pegar datasource filtrado em um formulário
Fala pessoal…
Vou postar hoje uma dica bem legal que fiquei me debatendo como fazer ontem, e pode ser a dúvida de outros. É bem simples, mas como falei pode ser a dúvida de outros:
//Inicio <dynamicsaxbr>
DataSource_ds.queryRun().query();
//Fim
Com issso você pode instânciar um objeto QueryRun e fazer o loop nos resultados, assim:
//Start
QueryRun queryRun;
;
queryRun = new QueryRun(new Query(InventTable_ds.queryRun().query()));
while(queryRun.next())
{
//Faça
}
//End
Abraços,
Peterson Ferreira
Pacote de atualização com a NF-e e Integração Fiscal
Fala galera…
É com muita alegria que venho falar para vocês que a Microsoft disponibilizou hoje o pacote de atualização do Ax2009 contendo a integração do Ax diretamente com a SEFAZ para emissão da NF-e.
Mais informações www.daxdev.com.br
Fiquem ligados no blog que passei acima que em breve terão mais informações!!!
Abraços,
Peterson Ferreira
Vagas de desenvolvimento na Microsoft (São Paulo – BR)
No blog do Joel Pereira ele está divulgando vagas para desenvolvimento de AX segue o link.
Abraços,
Peterson Ferreira
Acessando permissões de usuários utilizando X++
Fala galera, hoje vou falar de um assunto bem interessante, e não encontrei ainda na net. Dei uma pesquisada fiz uns testes e espero que gostem.
Vamos lá…
Como todos sabem o Microsoft Dynamics AX possue as Security Keys que controlam o acesso de usuários. Com a security key bem configurada é possível dar acesso diferenciado em alguns campos ou até mesmo fazer validações diferentes de acordo com cada usuário.
Vou colocar logo abaixo algumas validações que podem ser feitas no “X++”, levando em consideração as security keys.
//Start
if (hasSecurityKeyAccess(securitykeyNum(BasicLedger), AccessType::View))
{
//Executa o código se o usuário tiver acesso.
}
//End
Para verificar se o usuário tem acesso a uma determinada tabela existe também uma função pré determinada assim como os campos de uma tabela também veja:
//Start
if (hasTableAccess (TableNum (custTable) AccessType::Edit))
{
//Executa o código se o usuário tiver acesso.
}
//End
//Start
if (hasFieldAccess (TableNum (custTable fieldnum) (custTable, AccountNum) AccessType::Delete))
{
//Executa o código se o usuário tiver acesso.
}
//End
O Base Enum “AccessType”, determina o tipo de acesso que o usuário terá.
Todos os métodos estão na classe Global, sendo assim estes métodos podem ser chamados em qualquer momento no X++.
PS: Galera, desculpa o tempo sem postar, é que mudei de trampo e ta uma correira danada! Mas enfim, espero que gostem.
Abraços,
Peterson Ferreira
Lançar diário utilizando X++
Fala pessoal,
Hoje vamos lançar um diário utilizando o X++, sei que será bem útil pois desde que comecei a trabalhar com o Dynamics AX ja precisei fazer isso várias vezes. Então mãos a obra…
Como todos sabem a tabela que armazena os diários e suas transções são respectivamente a LedgerJournalTable e a LedgerJournalTrans, e para que o exemplo abaixo funcione perfeitamente, é necessário que você tenha preenchido um tableBuffer da LedgerJournalTable (Cabeçalho do diário).
Existem duas classes que é possível fazer isso a LedgerJournalCheckPost e a LedgerJournalPost, que posteriormente chama a LedgerJournalCheckPost, mas faz alguma verificações como tipo de diário e outras. Neste exemplo irei utilizar a LedgerJournalPost:
//Start
static void postJournal(Args _args)
{
LedgerJournalTable ledgerJournalTable;
;
//Pega a primeira linha da JournalTable, independente do tipo de Diário
select firstonly ledgerJournalTable
where ledgerJournalTable.Posted == NoYes::No;
//Lança o diário independento do tipo de diário
//parâmetro1 = tableBuffer da LedgerJournalTalbe
//parâmetro2 = indica se os erros devem ou não ser jogados em um novo diário
LedgerJournalPost::postJournal(ledgerJournalTable, NoYes::No);
}
//End
Se tivessemos usado a classe LedgerJournalCheckPost, seria preciso especificar qual seria o tipo de diário, com a classe LedgerJournalPost ele se encarrega de verificar qual é o tipo de diário e aplicar uma regra para cada tipo.
OBS: Quem quiser saber mais procure a classe LedgerJournalEngine que é a encarregada de definir as regras para cada tipo de diário. Existe um Enum que carrega todos os tipos de diário ele se chama LedgerJournalType.
É isso ai pessoal, caso reste alguma dúvida estou as ordens para responder!!COMENTEM!!!
Abraços,
Peterson Ferreira


