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; } } */