ChangeCompany x CrossCompany
13:39 | Author: Honório, Renato

Fala pessuba,

Utilizei bastante o comando changecompany quando trabalhava com AX 4.0 e agora, que temos o AX 2009 e o comando crosscompany, podemos economizar muitas linhas de código.

Antes precisavamos fazer um while na tabela DataArea e lembrar de anular o tablebuffer utilizado para a operação multiempresa, senão o AX se perde no meio do while e não muda a empresa direito.

Fiz alguns exemplos de como era antes com o changecompany e como ficou agora com o crosscompany. Dêem uma olhada e qualquer galho é só gritar!

ChangeCompany
// Start  
static void antesChangeCompany(Args _args)
{
    DataArea        dataArea;
    CustTable       custTable;
    ;
    while select dataArea
        where dataArea.isVirtual == NoYes::No
    {
        changecompany(dataArea.Id)
        {
            custTable = null;
            while select custTable
            {
                info(strfmt("Código Cliente: %1, Nome: %2, Empresa no AX: %3", custTable.AccountNum, custTable.Name, custTable.dataAreaId));
            }
        }
    }
}
// End  


CrossCompany
// Start  
static void depoisCrossCompany(Args _args)
{
    CustTable       custTable;
    ;
    while select crosscompany custTable
    {
        info(strfmt("Código Cliente: %1, Nome: %2, Empresa no AX: %3", custTable.AccountNum, custTable.Name, custTable.dataAreaId));
    }
}
// End
CrossCompany com Filtro
// Start  
static void depoisCrossCompanyFiltro(Args _args)
{
    CustTable       custTable;
    container       cont = ['001' , '002']; //container com dataAreaIds utilizados para filtrar
    ;
    while select crosscompany:cont custTable
    {
        info(strfmt("Código Cliente: %1, Nome: %2, Empresa no AX: %3", custTable.AccountNum, custTable.Name, custTable.dataAreaId));
    }
}
// End  

Honório, Renato
, |
This entry was posted on 13:39 and is filed under , . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

0 comentários: