Customers:
To update financial dimensions to all legal entities.
static void updateCustomerDimensions(Args _args)
{
CustTable custTable;
  
Struct struct;// = new Struct();
container ledgerDimension,com;
DimensionDefault DimensionDefault;
CompanyInfo companyInfo;
while select companyInfo where companyInfo.DataArea !="DAT"
{
struct = new struct();
com = conNull();
changeCompany(companyInfo.DataArea)
{
ledgerDimension =conNull();
com = conIns(com,1,companyInfo.DataArea);
          
struct.add('LegalEntity',companyInfo.DataArea);
ledgerDimension += struct.fields();
ledgerDimension += struct.fieldName(1);
ledgerDimension += struct.valueIndex(1);
DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);
//Customers
          
while select forUpdate crossCompany:com * from custTable
{
if(custTable.RecId)
{
ttsBegin;
custTable.DefaultDimension = DimensionDefault;
custTable.update();
info(strFmt("Customer %1 dimension updated -- %2",custTable.AccountNum,custTable.dataAreaId));
ttsCommit;
}
}
}
}
}
Fixed asset:
static void updateAssetDimensions(Args _args)
{
AssetTable assetTable;
AssetBook assetBook;
Struct struct;// = new Struct();
container ledgerDimension,com;
DimensionDefault DimensionDefault;
CompanyInfo companyInfo;
while select companyInfo where companyInfo.DataArea !="DAT"
{
struct = new struct();
com = conNull();
changeCompany(companyInfo.DataArea)
{
ledgerDimension =conNull();
com = conIns(com,1,companyInfo.DataArea);
struct.add('LegalEntity',companyInfo.DataArea);
ledgerDimension += struct.fields();
ledgerDimension += struct.fieldName(1);
ledgerDimension += struct.valueIndex(1);
DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);
//Vendors
while select forUpdate crossCompany:com * from assetBook
{
if(assetBook.RecId)
{
ttsBegin;
assetBook.DefaultDimension = DimensionDefault;
assetBook.update();
info(strFmt("Asset %1 dimension updated -- %2",assetBook.assetid,assetBook.dataAreaId));
ttsCommit;
}
}
}
}
}
To update financial dimensions to all legal entities.
static void updateCustomerDimensions(Args _args)
{
CustTable custTable;
Struct struct;// = new Struct();
container ledgerDimension,com;
DimensionDefault DimensionDefault;
CompanyInfo companyInfo;
while select companyInfo where companyInfo.DataArea !="DAT"
{
struct = new struct();
com = conNull();
changeCompany(companyInfo.DataArea)
{
ledgerDimension =conNull();
com = conIns(com,1,companyInfo.DataArea);
struct.add('LegalEntity',companyInfo.DataArea);
ledgerDimension += struct.fields();
ledgerDimension += struct.fieldName(1);
ledgerDimension += struct.valueIndex(1);
DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);
//Customers
while select forUpdate crossCompany:com * from custTable
{
if(custTable.RecId)
{
ttsBegin;
custTable.DefaultDimension = DimensionDefault;
custTable.update();
info(strFmt("Customer %1 dimension updated -- %2",custTable.AccountNum,custTable.dataAreaId));
ttsCommit;
}
}
}
}
}
Fixed asset:
static void updateAssetDimensions(Args _args)
{
AssetTable assetTable;
AssetBook assetBook;
Struct struct;// = new Struct();
container ledgerDimension,com;
DimensionDefault DimensionDefault;
CompanyInfo companyInfo;
while select companyInfo where companyInfo.DataArea !="DAT"
{
struct = new struct();
com = conNull();
changeCompany(companyInfo.DataArea)
{
ledgerDimension =conNull();
com = conIns(com,1,companyInfo.DataArea);
struct.add('LegalEntity',companyInfo.DataArea);
ledgerDimension += struct.fields();
ledgerDimension += struct.fieldName(1);
ledgerDimension += struct.valueIndex(1);
DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);
//Vendors
while select forUpdate crossCompany:com * from assetBook
{
if(assetBook.RecId)
{
ttsBegin;
assetBook.DefaultDimension = DimensionDefault;
assetBook.update();
info(strFmt("Asset %1 dimension updated -- %2",assetBook.assetid,assetBook.dataAreaId));
ttsCommit;
}
}
}
}
}
Update financial dimensions for master data:
static void testUpdateCustomerDimensions(Args _args)
{
    CustTable           custTable;
    Struct              struct;
    container           ledgerDimension,com;
    DimensionDefault    DimensionDefault,custDimensionDefault;
    CompanyInfo         companyInfo;
    DimensionAttributeValueSetStorage    dimStorage;
    Counter                              i;
    str                                  BusUnit,CCUnit,Dep,IG;
    ProjId                               projId;
    container                            conDefaultdim;
    struct = new struct();
    com = conNull();
    ledgerDimension =conNull();
    select forUpdate custTable where custTable.AccountNum =="US-011";
    custDimensionDefault = custTable.DefaultDimension;
    dimStorage = DimensionAttributeValueSetStorage::find(custDimensionDefault); //default dimension value
    for (i=1 ; i<= dimStorage.elements() ; i++)
    {
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == "BusinessUnit")
        {
            BusUnit = dimStorage.getDisplayValueByIndex(i);
        }
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == "CostCenter")
        {
            CCUnit = dimStorage.getDisplayValueByIndex(i);
        }
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == "Department")
        {
            Dep = dimStorage.getDisplayValueByIndex(i);
        }
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == "ItemGroup")
        {
            IG = dimStorage.getDisplayValueByIndex(i);
        }
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == "Project")
        {
            projId = "000003";//dimStorage.getDisplayValueByIndex(i);
        }
    }
    //projId = "000002";
    conDefaultdim = [5,'BusinessUnit',BusUnit,'CostCenter',CCUnit,'Department',Dep,'ItemGroup',IG,'Project',projId];
    DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(conDefaultdim);
    if(custTable.RecId)
    {
        ttsBegin;
        custTable.DefaultDimension = DimensionDefault;
        custTable.update();
        info(strFmt("Customer %1 dimension updated -- %2",custTable.AccountNum,custTable.dataAreaId));
        ttsCommit;
    }
}
http://axgenius.blogspot.in/2017/05/how-to-update-financial-dimensions-for.html
 
Hi, what is the use of com in the update of customers, i have a problem returning the value of the customer AccountNum, debugging this the value of the index is empty, how can i fix that?
ReplyDelete