static str 60 addValidateCode(FormName formname, TableId refTableId, FieldId refFieldId) { #AOT TreeNode treeNode; TreeNode methodsTreeNode; str oldsource; str newsource; str superString = "super()"; str busRuleString; str newMethodName; str newMethodCode; ; treeNode = TreeNode::findNode(#FormsPath + "\\" + formName); treeNode = treeNode.AOTfindChild("Data Sources"); treeNode = treeNode.AOTfindChild(tableId2Name(refTableId)); if(refFieldId) { newMethodName = "validate"; newMethodCode = "public boolean validate()\n{\n boolean ret;\n ;\n ret = super() && PABusInessRules::CheckRules(element, this," + strfmt(' %1',refFieldId) + ");\n\n return ret;\n}\n"; //bus rule string is different if applied to a fieldId busRuleString = "super() && PABusInessRules::CheckRules(element, this," + strfmt(' %1)',refFieldId); treeNode = treeNode.AOTfindChild("fields"); treeNode = treeNode.AOTfindChild(fieldId2Name(refTableId,RefFieldId)); } else { newMethodName = "validateWrite"; newMethodCode = "public boolean validateWrite()\n{\n boolean ret;\n ;\n ret = super() && PABusInessRules::CheckRules(element, this);\n\n return ret;\n}\n"; busRuleString = "super() && PABusinessRules::CheckRules(element, this)"; } methodsTreeNode = treeNode.AOTfindChild("Methods"); treeNode = methodsTreeNode.AOTfindChild(newMethodName); if(!treeNode) { methodsTreeNode.AOTadd(newMethodName); methodsTreeNode.AOTsave(); treeNode = methodsTreeNode.AOTfindChild(newMethodName); newSource = newMethodCode; treeNode.AOTsetSource(newsource,false); } else { oldsource = treeNode.AOTgetSource(); // check if rule already applied if(strscan(oldSource,busRuleString,1,strlen(oldSource)) == 0) { newSource = strReplace(oldsource,superString,busRuleString); //new line to be inserted treeNode.AOTsetSource(newsource); } } TreeNode = TreeNode::findNode(#FormsPath + "\\" + formName); treeNode.AOTcompile(); treeNode.AOTsave(); return busRuleString; }
Modify or delete code through X++
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.