internal final class TI_test23
{
/// <summary>
/// Class entry point. The system will call this method when a designated menu
/// is selected or when execution starts and this class is set as the startup class.
/// </summary>
/// <param name = "_args">The specified arguments.</param>
public static void main(Args _args)
{
// create Advanced rule
Name name = "test2";
DimensionRule DimensionRule;
DimensionHierarchyView DimensionHierarchyView;
// get account structure 'SHC'
select DimensionHierarchyView
where DimensionHierarchyView.Name == curExt()
&& DimensionHierarchyView.UserLanguageId == xUserInfo::find().language;
// create Advanced rule
//DimensionRuleStorage newRuleStorage = DimensionRuleStorage::construct(name, name, DimensionHierarchyView.RecId);
//newRuleStorage.save();
//ttsbegin;
//DimensionRule.initValue();
//DimensionRule.Name = "test1";
//DimensionRule.Description = "test1";
//DimensionRule.AccountStructure = curExt();
//DimensionRule.insert();
//ttscommit;
//DimensionAttribute dimensionAttribute = DimensionAttribute::findByName('MainAccount');
//Info(name);
//Info(strFmt("%1", DimensionHierarchyView.RecId));
//DimensionRuleCriteria DimensionRuleCriteria;
//DimensionRule = DimensionRule::findByName(name, DimensionHierarchyView.RecId, NoYes::Yes);
//Info(strFmt("%1", DimensionRule.RecId));
//DimensionRuleCriteria.initValue();
//DimensionRuleCriteria.DimensionAttribute = dimensionAttribute.RecId;
//DimensionRuleCriteria.DimensionRule = DimensionRule.RecId;
//DimensionRuleCriteria.RangeFrom = name;
//DimensionRuleCriteria.RangeTo = name;
////DimensionRuleCriteria.WildCardString = DimensionCriteriaOperators::WildcardSQL; //
//DimensionRuleCriteria.insert();
// 3
LedgerAdvancedRuleStructureEntity en;
en.AccountRuleStructureName = "test3";
en.Description = "test3";
en.SegmentName01 = "BudgetCode";
en.insert();
// 2
//boolean hierarchyCreated = DimensionHierarchyConstraint::createHierarchy(
// DimensionHierarchyType::AccountRuleStructure,
// name,
// name);
//if(hierarchyCreated) Info("done");
DimensionHierarchyConstraint d;
DimensionHierarchyType hierarchyType = DimensionHierarchyType::AccountRuleStructure;
DimensionHierarchy activeDimensionHierarchy = DimensionHierarchy::findByTypeAndName(
hierarchyType,
name,
false,
true);
Info(strFmt("%1", activeDimensionHierarchy.RecId));
//activeDimensionHierarchy.onmo
DimensionHierarchyConstraint::activateDraftHierarchy(5637172105);
//DimensionRuleAppliedHierarchy
DimensionHierarchyConstraintCriteria c;
}
}
/*
class MK_Test2
{
DimensionHierarchy dimHierarchy;
DimensionConstraintTree dimConstraintTree;
int dimLevelNum;
/// <summary>
/// Class entry point. The system will call this method when a designated menu
/// is selected or when execution starts and this class is set as the startup class.
/// </summary>
/// <param name = "_args">The specified arguments.</param>
public static void main(Args _args)
{
MK_Test2 MK_Test2 = new MK_Test2();
ttsBegin;
MK_Test2.createHierarchy('MyHierarchy5', 'My hierarchy5');
MK_Test2.addLevelToTree(5637145090, 'BudgetCode', 'BudgetCode', 1, '', ''); // BudgetCode
//MK_Test2.addLevelToTree(5637145090, 'BudgetCode', 'BudgetCode', 1, '00500', '00700'); // BudgetCode
ttsCommit;
}
// HierarchyName
private void createHierarchy(HierarchyName _name, Description _description)
{
dimHierarchy.initValue();
dimHierarchy.Description = _description;
dimHierarchy.DraftDescription = dimHierarchy.Description ;
dimHierarchy.Name = _name;
dimHierarchy.IsDraft = true;
dimHierarchy.DraftName = dimHierarchy.Name;
dimHierarchy.StructureType = DimensionHierarchyType::AccountRuleStructure;
dimHierarchy.insert();
dimConstraintTree.DimensionHierarchy = dimHierarchy.RecId;
dimConstraintTree.insert();
}
//
private RefRecId addLevelToTree(DimensionAttributeRecId _attribute, Name _name, Description _description,
DimensionOrdinal _ordinal, DimensionFromValue _from, DimensionToValue _to, boolean _additionalCriteria = false)
{
DimensionConstraintNodeCriteria dimConstraintNodeCriteria;
DimensionConstraintNode dimConstraintNode;
DimensionHierarchyLevel dimHierarchyLevel;
if (! _additionalCriteria)
{
// Insert level in tree
// ---------------------------------
dimLevelNum++;
dimHierarchyLevel.clear();
dimHierarchyLevel.DimensionHierarchy = dimHierarchy.RecId;
dimHierarchyLevel.Level = dimLevelNum;
dimHierarchyLevel.DimensionAttribute = _attribute;
dimHierarchyLevel.insert();
}
// Add range node to level
// ------------------------
dimConstraintNode.clear();
dimConstraintNode.Description = _description;
dimConstraintNode.DimensionConstraintTree = dimConstraintTree.RecId;
dimConstraintNode.DimensionHierarchyLevel = dimHierarchyLevel.RecId;
dimConstraintNode.IsOptional = false;
dimConstraintNode.Name = _name;
dimConstraintNode.Ordinal = _ordinal;
//dimConstraintNode.ParentConstraintNode = _parentLevelId;
dimConstraintNode.insert();
// Add criteria to node
dimConstraintNodeCriteria.clear();
dimConstraintNodeCriteria.Ordinal = 1;
dimConstraintNodeCriteria.DimensionConstraintNode = dimConstraintNode.RecId;
if (_from || _to)
{
dimConstraintNodeCriteria.IsFromOpen = false;
dimConstraintNodeCriteria.IsToOpen = false;
dimConstraintNodeCriteria.RangeFrom = _from;
dimConstraintNodeCriteria.RangeTo = _to;
}
else
{
dimConstraintNodeCriteria.WildCardString = '%';
dimConstraintNodeCriteria.IsFromOpen = true;
dimConstraintNodeCriteria.IsToOpen = true;
}
dimConstraintNodeCriteria.insert();
return dimConstraintNode.RecId;
}
}
*/