GRC PC 2.5 creation of customized rules

Dear GRC gurus,
I have been told that GRC PC 2.5 is not ready for creating own customized rules.
however I can see that the GRC PC 2.5 function "Automated test cutomizing" is there just to do so.
also, GRC PC 2.5. manuals describe the process to create own rules, via R/3 Query functionality.
I would like to know at what extent is possible to create own customized rules (beyond those provided in the standar Business Content). And if possible, please give me an example of ad-hoc rules that you have created.
Many thanks in advance for your comments

HH,
We should distinguish between pre-delivered rules and rules pertaining to SAP Query, ABAP or non-SAP queries.
There are 104 pre-delivered rules delivered with PC 2.5. Pre-delivered rules have a fixed set of selection criteria that cannot be extended or replaced with custom criteria.  In PC 3.0 you will be able to configure and customize these rules but not in PC 2.5.  Custom rules can be built for all the other types. 
You configure rules in PC 2.5 to run queries or ABAP programs in backend systems.  We haven't implemented customized rules yet, but we've played around with them a little.  You can set a rule in PC 2.5 to run a query on a backend system and return the results for analysis to PC 2.5.  If the return value is above a certain value, below a certain value or equals a certain value, based on the rule criteria, it would pass or fail the test. 
I hope that helps.
Matt
I hope this helps.
Matt

Similar Messages

  • Custom Rules upload in 5.3

    Hello,
    I have a proof of concept project for GRC 5.3 implementation and  have configured the GRC RAR as per the config Guide and the Rule upload was done accordingly. In the configrued system, I am seeing the GLOBAL Rule set and all the rules generated against it.
    The real problem started when I started to load the custom Rule Files (BP,Functions.txt etc etc ) for all the custom rules we plan to use. I tried to load the  custom Files from CONFIGURATION tab -> RULE UPLOAD.
    - I am seeing some error messages and now I dont know if I have damaged the existing rules and need to fix the Global itself ?
    - How do I bring in the customized Text Files for Rules ?
    Thanks,
    Farah
    HERE IS A SNAPSHOT OF ERRORS :
    Business process ID: AP00 cannot be deleted because a Function ID exists
    Business process ID: BS00  cannot be deleted because a Risk ID exists
    Business process ID: CA00  cannot be deleted because a Risk ID exists
    Business process ID: CR00 cannot be deleted because a Function ID exists
    Business process ID: EC00 cannot be deleted because a Function ID exists
    Business process ID: FI00  cannot be deleted because a Risk ID exists
    Business process ID: HR00  cannot be deleted because a Risk ID exists
    Business process ID: MM00  cannot be deleted because a Risk ID exists
    Business process ID: PM00  cannot be deleted because a Risk ID exists
    Business process ID: PR00  cannot be deleted because a Risk ID exists
    Business process ID: SD00  cannot be deleted because a Risk ID exists
    Business process ID: SR00 cannot be deleted because a Function ID exists
    Business process upload not complete due to above errors

    Hello Alpesh,
    So if I am understanding it right, I should manually create a new Rulesset from the Rule Architect tab and for the decription call it custom
    and then start uploading the Rules against it .
    I will try it now and see if I can upload it without any errors or warning.
    Thanks,
    Farah

  • CO: IO automatic Creation of settlement rule

    Hello everyone,
    We created a customer field in internal order (ZWBS field).
    Now, I customized all transactions:
    1. By T-code KSR4 I created Strategy 'C25'.
    2. I created Strategy Seq. called 'ZC25' by T-Code 'KSR2_ORC'.
    3. I' have Assigned the strategy Seq. to the order type by T-code 'KSR2_ORC'.
    When I create and internal order and go into Settlement rule I can see the two lines (FUL & PER) exactly like I've customized, but when I'm saving the order, the settlement rules are not save with the order.
    Is anyone met with a problem like that?
    I'll be gratefull for your help.
    Thanks,
    Lior

    Hi Lior,
    Is this the same with CO: Automatic creation of Settlement rule - settlement rule not saved?
    Best Regards,
    Owen

  • CO: Automatic creation of Settlement rule - settlement rule not saved

    Hello,
    First, We have a customer field in our internal order called 'ZWBS'.
    also, I have  customized automatic Creation of settlement rule for internal order by:
    1. T-code KSR4 - I have created Strategy called 'C25'.
    2. I created Strategy Sequences for Automatic Generation of Settlement Rule called 'ZC25'
    with T-code KSR2_ORC.
    3.I Assigned the Strategy Sequence To Order Type ZC25.
    4. I used User Exit COOM0003 in order to create Settlement rule from ZWBS field.
    In KO01, when i go into the settlement rule I can see the 2 lines that the user exit created.
    The problem is that when i'm saving the internal order the settlement rules are not saved.
    My questions are:
    1. Is anyone met this problem?
    2. is the user exit work on T-code KO02 also?
    thanks for your help.
    Best regards,
    Lior

    Hi Lior,
    Hope below information can give you some hints:
    See the detailed description of the error for example for order, in transaction KO02, click button 'Master data', click button 'Settlement Rule', populate column category with 'PSG' and press
    <enter>. On the 'Assignment to a Profitabilty Segment' screen press button 'Derivation' and see the long text of message K/111. In case the generation of settlement rules fails again later use these steps to find out why and check the derivation rule by means of transaction KECM.
    Best Regards,
    Owen

  • Problem in  creation of Customer Master

    Hi gurus,
    I am facing problem in creation of customer master.
    I have created a account group zz01 copying from 0001.which has internal no. assignement for the customer.
    Now i am trying to create a customer master, at partner functions level under sales area data...  the system is asking for the no. for each partner functions.. when i tried to manually enter, the system is not taking any number nor it is letting me save the data.
    Please help me out in acertaining,  what could be the issue.
    regards
    Gupta
    [email protected]

    its due to the number ranges that is specified in the partner determination ... chech what is the number range assigned in the parner determination ,,, so once u check that u have to manually enter the number between that range only .. this should solve ur problem...
    path to check the number range is as below :
    spro-img-logistic generalbusiness partner-customers---define account groups and field selection ---    
    at this point click position button at the bottom and give ur account group .. select ur account group and click detail button .. now inside that u can see the specified number range .. dafault is 08 ( means u can specify between 400000 to 499999)..
    and some times  u may not have defined number range... check urs and create accordingly ... this should solve ur problem...
    rewards if solved ..
      thank you
    madhan

  • Custom Rule - Problem in passin values From Rule Container to WF Container?

    Hi Guys,
    I am having hard time passing values back from my custom rule. I have created a custom rule to determine the agents in PFAC which takes in the Person number as import element of container. It determines the Manager as agent and I am passing Managers Person Number back to workflow. If he dont approve the Request then it will be passed to his boss. In this case I will pass this imported Mangers Person number back to rule so that his boss will be determined as agent. I  have created ZRULE function module. I am passing value back from Rule container to Workflow Container using following code.
    swc_set_element ac_container 'SUPERPERNR'  lf_super_pernr.
    I have created a element SUPERPERNR on rule container and workflow container as well .The problem is in the Rule container I am not able to create SUPERPERNR as export parameter. The tick mark is grayed out and there is no option for setting it as export.
    My question is do I have create a Export element on Rule container or Not? If i just write the code
    ( swc_set_element ac_container 'SUPERPERNR'  lf_super_pernr ) will it set the value in WF container? In my case it is not setting. I have to bind the values from rule container to WF container and if My rule container element is not allowing me to click the tick mark as export how can i pass value of of rule container back to WF Container?
    Please help me guys.
    Thanks,
    Manish.

    Hi Manish,
         Same scenario I have developed in my system. This all steps I did in my system.
    1) Created a Z function module which takes import parameter (Parameter name = 'EMP') in the
        format 'US100123'.
    2) This in turn fetches back the supevisor or boss as an export parameter (Parameter name = 'BOSS') in
         the format 'US100245'.
    3) This function module is attached to a BUS object(SWO1).
    4) While attaching this function module to BUS object you need not do any manual coding it is done
        automatically.
    5) Implement, release and generate this BUS object.
    6) Create a new variable in your workflow (Parameter name = 'ZSUPERVISOR') for storing the value
        which is returned by the Z method.
    7) Create a new task.
    8) Put in your BUS object name, then your Z method name, select background processing checkbox.
    9) Press save, it will ask for transfer of missing elements, select yes.
    10) Then you will see a green button below your Z method name click on it.
    11) Top portion contains your Z method variables, below to it you have the import parameter window in
          this window you should have &EMP& -> &EMP&., below to import parameter window you have
          export parameter window in this window you should have &BOSS& <- &BOSS&. (This is method
          binding).
    12) Now click on enter button then click on back button it will generate the task binding automatically
         just press yes.
    13) Now click on binding exist button.
    14) Here you have the Workflow container variables as well as the system container variables.
    15) In the import parameter window left portion is for your workflow variables and right portion is for your 
          method variables. In my case i had sent workflow initiator and fetched his supervisor. The Import
          parameter binding was &WF_INTIATOR& -> &EMP&. and the export parameter binding part was
          &ZSUPERVISOR& <- &BOSS&.
    16) Save the task and run the workflow.
    Regards.
    Vaibhav Patil.

  • Migration of Fxcop Custom Rules to Visuatl Studio 2012

    I have an existing custom rule which was written in visual studio 2008 using fxocp SDK 1.35 and Microsoft.CCI 1.35. Now i am migrating it to latest version of Fxcop 11.0 and Microsoft .cci 11.0 using Vistual Studio 2012.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    //using Microsoft.FxCop.Sdk.Introspection;
    //using Microsoft.Cci;
    using Microsoft.FxCop.Sdk;
    using System.Collections;
    using System.IO;
    namespace LDOFxCopCustomRules.Rules.Design
    class DisposableObjectsShouldBeDisposed : BaseDesignRules
    string sFileName = System.Configuration.ConfigurationSettings.AppSettings["FolderForOutput"] + "\\" + @"DisposableObjectsShouldBeDisposed.Xls";
    bool bDisplayErrors = String.IsNullOrEmpty(System.Configuration.ConfigurationSettings.AppSettings["FolderForOutput"]);
    //string sExceptionLogFileName = @"D:\RTE.txt";
    static string sLockString = "Lock";
    string sFormat = "{0}\t{1}\t{2}\t{3}\n";
    string sAssemblyName;
    string sClassName;
    string sLineNumber;
    // Fields
    private Hashtable m_fieldsOwnedByType;
    private Hashtable m_fieldsWithDispose;
    private Method m_method;
    // Methods
    public DisposableObjectsShouldBeDisposed()
    : base("DisposableObjectsShouldBeDisposed")
    this.m_fieldsWithDispose = new Hashtable();
    this.m_fieldsOwnedByType = new Hashtable();
    if (!bDisplayErrors && !File.Exists(sFileName))
    if (!bShowInAllReport)
    lock (sLockString)
    File.WriteAllText(sFileName, string.Format(sFormat, "Assembly", "Class", "Method (fully qualified name)", "Line number"));
    public override ProblemCollection Check(Member member)
    string sTemp = member.FullName;
    bool bFinally = false;
    bool bDataReader = false;
    bool bDisposedCalled = false;
    int nDataReaderCount = 0;
    Local oCheckLocal;
    Method oMethod = null;
    int nCurrent = 0;
    InstructionList oList = null;
    this.m_method = RuleUtilities.GetMethod(member);
    if (this.m_method == null)
    return null;
    this.m_fieldsWithDispose.Clear();
    this.m_fieldsOwnedByType.Clear();
    //if (!this.m_method.DeclaringType.IsAssignableTo(SystemTypes.IDisposable))
    // return null;
    //if (RuleUtilities.ExtendsControl(this.m_method.DeclaringType))
    // return null;
    //if (!RuleUtilities.IsDisposeBool(this.m_method) && (!RuleUtilities.IsDisposeMethod(this.m_method) || HasDisposeBoolMethod(this.m_method.DeclaringType)))
    // return null;
    if (this.m_method.DeclaringType.IsAssignableTo(SystemTypes.IDisposable))
    if (RuleUtilities.ExtendsControl(this.m_method.DeclaringType))
    return null;
    if (!RuleUtilities.IsDisposeBool(this.m_method) && (!RuleUtilities.IsDisposeMethod(this.m_method) || HasDisposeBoolMethod(this.m_method.DeclaringType)))
    return null;
    sClassName = m_method.DeclaringType.Name.Name;
    sAssemblyName = m_method.DeclaringType.DeclaringModule.ContainingAssembly.ModuleName;
    MemberList members = this.m_method.DeclaringType.Members;
    for (int i = 0; i < members.Length; i++)
    switch (members[i].NodeType)
    case NodeType.Field:
    Field field = members[i] as Field;
    if (!field.IsStatic && field.Type.IsAssignableTo(SystemTypes.IDisposable))
    this.m_fieldsWithDispose[field] = null;
    break;
    case NodeType.InstanceInitializer:
    case NodeType.Method:
    this.VisitMethod(members[i] as Method);
    break;
    new DisposeVisitor(this.m_fieldsWithDispose).Visit(this.m_method);
    if (this.m_fieldsWithDispose.Count > 0)
    foreach (Field field2 in this.m_fieldsWithDispose.Keys)
    if (this.m_fieldsOwnedByType.Contains(field2))
    string str = RuleUtilities.Format(this.m_method.DeclaringType);
    string str2 = RuleUtilities.Format(field2.Type);
    sLineNumber = field2.SourceContext.StartLine.ToString();
    Problem item = new Problem(base.GetResolution(new string[] { str, field2.Name.Name, str2 }), field2.Name.Name);
    if (bDisplayErrors)
    base.Problems.Add(item);
    else
    if (bShowInAllReport)
    lock (LockClass.objLockAllReport)
    File.AppendAllText(sSingleReportName, string.Format(sSingleReportFormat, sAssemblyName, sClassName, m_method.FullName, sLineNumber, "DisposableObjectsShouldBeDisposed"));
    else
    lock (sLockString)
    File.AppendAllText(sFileName, string.Format(sFormat, sAssemblyName, sClassName, m_method.FullName, sLineNumber));
    else
    if (member.NodeType == NodeType.Method)
    oMethod = member as Method;
    // The below block is to identify if any of the method's class is implemented from the interface IDataReader.
    // If that is the case, the method will be skipped and next method will be picked.
    // Ideally, this should be changed to scanning each class, skipping if it has implemented IDataReader and then
    // scan the methods for proper usage of IDataReader. But due to time constraints, this change is not done
    TypeNode typ = oMethod.DeclaringType;
    InterfaceList intList = typ.Interfaces; // get the list of interfaces of the class and check for IDataReader
    foreach (Interface intf in intList)
    if (intf.FullName.Contains("IDataReader"))
    return null;
    // Start the actual logic
    if (oMethod != null)
    oList = oMethod.Instructions;
    Instruction oInstruction;
    for (nCurrent = 0; nCurrent < oList.Length; nCurrent++)
    oInstruction = oList[nCurrent];
    if (oInstruction.OpCode == OpCode._Locals)
    LocalList oLocalList = oInstruction.Value as LocalList;
    int nCount = oLocalList.Length;
    for (int nIdx = 0; nIdx < nCount; nIdx++)
    if (oLocalList[nIdx].Type.Name.Name == "IDataReader")
    bDataReader = true;
    nDataReaderCount++;
    if (nDataReaderCount > 0)
    if (oInstruction.OpCode == OpCode._Finally)
    bFinally = true;
    if (bFinally)
    if (oInstruction.OpCode == OpCode.Callvirt)
    oCheckLocal = oList[nCurrent - 1].Value as Local;
    if (oCheckLocal != null && oCheckLocal.Type != null && oCheckLocal.Name != null && oCheckLocal.Type.Name.Name != null && oCheckLocal.Type.Name.Name == "IDataReader")
    bDisposedCalled = true;
    //nDataReaderCount--;
    // Microsoft.FxCop.Sdk.Problem oProblem = new Microsoft.FxCop.Sdk.Problem(base.GetResolution(sTemp1), oMethod.Name.Name);
    if (bDataReader && !bDisposedCalled)
    sClassName = oMethod.DeclaringType.Name.Name;
    sAssemblyName = oMethod.DeclaringType.DeclaringModule.ContainingAssembly.ModuleName;
    sLineNumber = nCurrent > 0 && nCurrent < oList.Length? oList[0].SourceContext.StartLine.ToString().Trim() : string.Empty;
    if (bDisplayErrors)
    Microsoft.FxCop.Sdk.Problem oProblem = new Microsoft.FxCop.Sdk.Problem(base.GetResolution(sTemp), sClassName);
    base.Problems.Add(oProblem);
    else
    if (bShowInAllReport)
    lock (LockClass.objLockAllReport)
    File.AppendAllText(sSingleReportName, string.Format(sSingleReportFormat, sAssemblyName, sClassName, m_method.FullName, sLineNumber, "DisposableObjectsShouldBeDisposed"));
    else
    lock (sLockString)
    File.AppendAllText(sFileName, string.Format(sFormat, sAssemblyName, sClassName, oMethod.FullName, sLineNumber));
    return base.Problems;
    private static bool HasDisposeBoolMethod(TypeNode type)
    MemberList members = type.Members;
    int num = 0;
    int length = members.Length;
    while (num < length)
    Method method = members[num] as Method;
    if ((method != null) && RuleUtilities.IsDisposeBool(method))
    return true;
    num++;
    return false;
    public override Statement VisitAssignmentStatement(AssignmentStatement assignment)
    MemberBinding target = assignment.Target as MemberBinding;
    if (target != null)
    Field boundMember = target.BoundMember as Field;
    if (((boundMember != null) && (boundMember.DeclaringType == this.m_method.DeclaringType)) && (assignment.Source is Construct))
    this.m_fieldsOwnedByType[boundMember] = null;
    return base.VisitAssignmentStatement(assignment);
    // Properties
    public override TargetVisibilities TargetVisibility
    get
    return TargetVisibilities.All;
    // Nested Types
    private class DisposeVisitor : StandardVisitor
    // Fields
    private Hashtable m_fieldsWithDispose;
    private Method m_method;
    private Hashtable m_recursionCache = new Hashtable();
    private Hashtable m_variableToFieldMap = new Hashtable();
    // Methods
    internal DisposeVisitor(Hashtable fieldsWithDispose)
    this.m_fieldsWithDispose = fieldsWithDispose;
    public override Statement VisitAssignmentStatement(AssignmentStatement assignment)
    Local target = assignment.Target as Local;
    if (target != null)
    MemberBinding source = assignment.Source as MemberBinding;
    if (source != null)
    Field boundMember = source.BoundMember as Field;
    if ((boundMember != null) && (boundMember.DeclaringType == this.m_method.DeclaringType))
    this.m_variableToFieldMap[target] = boundMember;
    return base.VisitAssignmentStatement(assignment);
    public override Method VisitMethod(Method method)
    this.m_method = method;
    return base.VisitMethod(method);
    public override Expression VisitMethodCall(MethodCall call)
    MemberBinding callee = call.Callee as MemberBinding;
    if (callee != null)
    Method boundMember = callee.BoundMember as Method;
    if (boundMember == null)
    return base.VisitMethodCall(call);
    MemberBinding targetObject = callee.TargetObject as MemberBinding;
    Field key = null;
    if (targetObject == null)
    Local local = callee.TargetObject as Local;
    if (local != null)
    key = this.m_variableToFieldMap[local] as Field;
    else
    key = targetObject.BoundMember as Field;
    if (((key != null) && this.m_fieldsWithDispose.ContainsKey(key)) && (((boundMember.Name.Name == "Dispose") || (boundMember.Name.Name == "Close")) || ((boundMember.Name.Name == "Clear") && boundMember.DeclaringType.IsAssignableTo(FrameworkTypes.HashAlgorithm))))
    this.m_fieldsWithDispose.Remove(key);
    else if ((boundMember.DeclaringType == this.m_method.DeclaringType) && !this.m_recursionCache.Contains(boundMember))
    this.m_recursionCache[boundMember] = null;
    this.VisitMethod(boundMember);
    return base.VisitMethodCall(call);
    Below errors are raised. Please let me know the solution
    1. Error 2 Inconsistent accessibility: base class 'Microsoft.FxCop.Sdk.StandardVisitor' is less accessible than class 'LDOFxCopCustomRules.Rules.Design.DisposableObjectsShouldBeDisposed.DisposeVisitor' D:\LDOFxCopCustomRules\DisposableObjectsShouldBeDisposed.cs 287 23 LDOFxCopCustomRules
    Error 3 'Microsoft.FxCop.Sdk.StandardVisitor' is inaccessible due to its protection level D:\LDOFxCopCustomRules\DisposableObjectsShouldBeDisposed.cs 287 40 LDOFxCopCustomRules
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    //using Microsoft.FxCop.Sdk.Introspection;
    //using Microsoft.Cci;
    using Microsoft.FxCop.Sdk;
    using System.Collections;
    using System.IO;
    namespace LDOFxCopCustomRules.Rules.Design
    class AvoidUnusedParameters : BaseDesignRules
    string sFileName = System.Configuration.ConfigurationSettings.AppSettings["FolderForOutput"] + "\\" + @"AvoidUnusedParameters.Xls";
    bool bDisplayErrors = String.IsNullOrEmpty(System.Configuration.ConfigurationSettings.AppSettings["FolderForOutput"]);
    //string sExceptionLogFileName = @"D:\RTE.txt";
    static string sLockString = "Lock";
    string sFormat = "{0}\t{1}\t{2}\t{3}\n";
    string sAssemblyName;
    string sClassName;
    string sLineNumber;
    private Hashtable m_parameterUsage;
    public AvoidUnusedParameters()
    : base("AvoidUnusedParameters")
    this.m_parameterUsage = new Hashtable();
    if (!bDisplayErrors && !File.Exists(sFileName))
    if (!bShowInAllReport)
    lock (sLockString)
    File.WriteAllText(sFileName, string.Format(sFormat, "Assembly", "Class", "Method (fully qualified name)", "Line number"));
    public override ProblemCollection Check(Member member)
    Method method = member as Method;
    if (!ShouldAnalyze(method))
    return null;
    this.m_parameterUsage.Clear();
    if (CallGraph.FunctionPointersFor(method).Length > 0)
    return null;
    if (method.DeclaringType.IsAssignableTo(SystemTypes.Delegate))
    return null;
    if (RuleUtilities.IsEventHandling(method))
    return null;
    if (RuleUtilities.IsVisualBasicModule(method.DeclaringType.DeclaringModule) && (method.Name.Name == "Dispose__Instance__"))
    return null;
    if (RuleUtilities.HasCustomAttribute(method, SystemTypes.ConditionalAttribute))
    return null;
    for (int i = 0; i < method.Instructions.Length; i++)
    switch (method.Instructions[i].OpCode)
    case OpCode.Ldarg_0:
    case OpCode.Ldarg_1:
    case OpCode.Ldarg_2:
    case OpCode.Ldarg_3:
    case OpCode.Ldarg_S:
    case OpCode.Ldarga_S:
    case OpCode.Ldarg:
    case OpCode.Ldarga:
    Parameter parameter = method.Instructions[i].Value as Parameter;
    this.m_parameterUsage[parameter] = null;
    break;
    sClassName = method.DeclaringType.Name.Name;
    sAssemblyName = method.DeclaringType.DeclaringModule.ContainingAssembly.ModuleName;
    sLineNumber = method.SourceContext.StartLine.ToString();
    for (int j = 0; j < method.Parameters.Length; j++)
    Parameter key = method.Parameters[j];
    if (!this.m_parameterUsage.ContainsKey(key))
    FixCategories breaking = FixCategories.Breaking;
    if (!method.IsVisibleOutsideAssembly)
    breaking = FixCategories.NonBreaking;
    string str = RuleUtilities.Format(method);
    string name = method.Parameters[j].Name.Name;
    Problem item = new Problem(base.GetResolution(new string[] { name, str }), name);
    item.FixCategory = breaking;
    if (bDisplayErrors)
    base.Problems.Add(item);
    else
    if (bShowInAllReport)
    lock (LockClass.objLockAllReport)
    File.AppendAllText(sSingleReportName, string.Format(sSingleReportFormat, sAssemblyName, sClassName, method.FullName, sLineNumber, "AvoidUnusedParameters"));
    else
    lock (sLockString)
    File.AppendAllText(sFileName, string.Format(sFormat, sAssemblyName, sClassName, method.FullName, sLineNumber));
    this.m_parameterUsage.Clear();
    return base.Problems;
    private static bool IsVSUnitTestInitializer(Method method)
    if ((method.IsStatic && (method.ReturnType == SystemTypes.Void)) && ((method.Parameters.Length == 1) && (method.Parameters[0].Type.Name.Name == "TestContext")))
    for (int i = 0; i < method.Attributes.Length; i++)
    AttributeNode node = method.Attributes[i];
    if ((node.Type.Name.Name == "AssemblyInitializeAttribute") || (node.Type.Name.Name == "ClassInitializeAttribute"))
    return true;
    return false;
    private static bool ShouldAnalyze(Method method)
    if (method == null)
    return false;
    if ((method.Parameters.Length == 0) && method.IsStatic)
    return false;
    if (method.IsVirtual)
    return false;
    if (method.IsExtern)
    return false;
    if (method.IsAbstract)
    return false;
    if (RuleUtilities.IsFinalizer(method))
    return false;
    if (method.Name.Name == "__ENCUpdateHandlers")
    return false;
    Module declaringModule = method.DeclaringType.DeclaringModule;
    if (method.Name.Name.StartsWith("__", StringComparison.Ordinal) && RuleUtilities.IsAspAssembly(declaringModule))
    return false;
    if (RuleUtilities.IsISerializableConstructor(method))
    return false;
    if (IsVSUnitTestInitializer(method))
    return false;
    if (RuleUtilities.MethodOrItsTypeMarkedWithGeneratedCode(method))
    return false;
    return true;
    // Properties
    public override TargetVisibilities TargetVisibility
    get
    return TargetVisibilities.All;
    Below Errors are raised
    Error 8 The name 'SystemTypes' does not exist in the current context D:\AvoidUnusedParameters.cs 53 49 LDOFxCopCustomRules
    Error 9 'Microsoft.FxCop.Sdk.RuleUtilities' does not contain a definition for 'IsVisualBasicModule' D:\AvoidUnusedParameters.cs 61 27 LDOFxCopCustomRules
    Error 11 'Microsoft.FxCop.Sdk.BaseIntrospectionRule.FixCategories' is a 'property' but is used like a 'type' D:\AvoidUnusedParameters.cs 98 17 LDOFxCopCustomRules
    Error 12 The best overloaded method match for 'Microsoft.FxCop.Sdk.RuleUtilities.Format(Microsoft.FxCop.Sdk.AttributeNode)' has some invalid arguments D:\AvoidUnusedParameters.cs 103 30 LDOFxCopCustomRules
    Error 13 Argument 1: cannot convert from 'Microsoft.FxCop.Sdk.Method' to 'Microsoft.FxCop.Sdk.AttributeNode' D:\AvoidUnusedParameters.cs 103 51 LDOFxCopCustomRules
    Error 14 The name 'SystemTypes' does not exist in the current context D:\AvoidUnusedParameters.cs 136 55 LDOFxCopCustomRules
    Error 16 The type or namespace name 'Module' could not be found (are you missing a using directive or an assembly reference?) D:\LDOFxCopCustomRules\AvoidUnusedParameters.cs 180 9 LDOFxCopCustomRules
    Error 17 'Microsoft.FxCop.Sdk.RuleUtilities' does not contain a definition for 'IsAspAssembly' D:\AvoidUnusedParameters.cs 181 90 LDOFxCopCustomRules
    Error 18 'Microsoft.FxCop.Sdk.RuleUtilities' does not contain a definition for 'MethodOrItsTypeMarkedWithGeneratedCode' D:\AvoidUnusedParameters.cs 193 27 LDOFxCopCustomRules

    Hi sathishkumarV,
    I am trying to involve someone familiar with this topic to further look at this issue. There might
    be some time delay. Appreciate your patience.
    Best Regards,
    Jack
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Automatic Creation of Settlement Rule for Maintenance Order

    Hi,
    While doing TECO for Maintenance Order, its asking for Settlement Rule. IF I click settlement rule, message is coming as Maintain Settlement Profile with options like With Default, Without Default & Cancel.
    I have maintained the Cost center in Equipment Master. Also I maintained Cost Center as Default Settlement receiver.
    Also I have gone through setting in Automatic Creation of Settlement Rule under Controlling Category.
    But I couldnt understand that. Can you please tell what are the steps to be done?
    Regards,
    Maheswaran.

    Hi,
    Please check the indicatorsin Actual cost/cost sales  and Valid recevivers in settlement profile.
    If for cost center : 1 settlement optional is maintained in valid recevivers and also for order
    and in actual cost/ cost sales: indicator to be settled in full is selected.
    Also check Allocation structure too if you have assigned the valid allocation structure.
    **check if you have assigned the valid settlement profile to order types.
    *****Most important after doing all these settings you need to create new order. for same order you will not get the automatic settlement rule
    Hope this helps.
    Regards,
    PMAddi

  • Creation of custom operations  in SAP hr

    Dear HR Experts,
    Please let me know how to create custom operations for a custom rule that should be included and invoked during payroll run.
    Your answers are highly appreciated.

    Hi,
    Check with this link, It may help you.
    Hr table for income tax
    Regards,
    Shamma

  • Error during create CR for MDGC "Enter a relevant role for creation of customer master data"

    Hello Experts,
    I am unable to create a Customer CR in 'MDG 6.1 Customer UI' , the UI throws an error saying "Enter a relevant role for creation of customer master data".It looks like it is expecting me to mention the BP role ( like FLCU01 Customer or FLCU00 FI Customer ) , but I don't see that BP role section in the Customer UI to mention .
    While creating the vendor CR  , I am able to enter the BP role ( like FLVN01 vendor or FLVN00 FI Vendor ) in the UI BP Role section.
    Following are the UI's for Customer and Vendor
    Customers BS_OVP_BP: BS_OVP_CU > OVP: BS_CU_OVP - I do not see BP role section here.
    Vendors BS_OVP_BP: BS_OVP_SP > OVP: BS_SP_OVP - This is working fine  , I see BP role section here.
    Please advice what I am missing here , what should I do for the successful CR creation . Should I change the UI for Customers or do I need to do anything in CVI configuration.
    Thanks,

    Hi Abdullah,
    You were right in the first place the UIBB is missing  , the UIBB 'Role' was present in the 'Search Customer' page but not available in the 'Create Customer CR' page , so I created the 'Role' UIBB again and was able to create the CR now . Not sure how it got deleted in the first place , is there any options where we reset the UI screen to the default initial configuration
    But after approving the CR , only the Business Partner BP is getting created and the Customer is not getting created . Not sure what might be the issue now. Is there any config that tells to automatically create customer when BP is created. I was able to create Vendor using the create Vendor CR before.
    Thanks

  • Creation of customer using BAPI_CUSTOMER_CREATEFROMDATA1

    hi Techies..
    i want to create customer in effects in KNA1.
    iam using FM "BAPI_CUSTOMER_CREATEFROMDATA1".
    first is it correct one to create customer.
    nxt is the mandat fields given in documentation and mandat fields while we create through XD01 are different.
    plz list out mandat fields i need to pass...
    plz anyone help me out wts process of creation of customer through this bapi..
    Thanks in Adv..
    Raju Mummidi

    HI
    Re: BAPI function create Customer master(T-code XD01)??
    For XD01-- account group and customer number are mandatory.
    Re: BAPI for creating customers
    Regards
    Pavan

  • Issue in Program for mass creation of customer plans.

    Hello all,
    I am working on a program which helps mass creation of customer plans. My code works well, when no planning account is assigned,  but when I pass the planning account value into the Function module, it gives me an error saying ' Account cannot be displayed, please check your authorizations'. I donot have this problem, when I manually createthe customer plan in the CRM_UI.
    Please let me know the possible cause for this kind of message.
    Thanks,
    Disha.

    Hi Dishaa,
    I'm afraid that I don't have any other clues. Most often it is a difference in user. If you are absolutely sure that you are using the same user at the exact moment the authorization is checked it cannot be that.
    Kinda curious now what the solution to your problem is....
    Best regards,
    Guus
    Edited by: Guus Jansen on Feb 14, 2011 1:32 PM

  • R12 Creation of Custom Responsibilities

    Hi,
    We are currently on R12 with a single org setup and and have a requirement to create custom resp. to control user access.
    Pls. let me know if creation of custom menus, sub menus, request groups is the right option OR menu, function exclusions a better option.
    When compared to 11i does R12 require any additional setups apart from New Resp, Menu, Submenu, Functions, Request Groups, Profile Options..?
    Any metalink note Id which discusses detail of creation of custom resp. in R12 will be of great help.
    Thanks

    Hi,
    The only way you can restrict an user to do certain activities only by defining multiple custom responsibilities... e.g.. A user should not have the privilege to do setups in the system.. He is authorised to do trxs only.. for that you define a Responsibility like "Inventory User" and exclude "setup" function/menu while defining the Responsibility... Now assign this resp to the user..By using this he will be able to do trxs only but he can't do setup or setup changes in Inventory module...
    Your question:  Pls. let me know if creation of custom menus, sub menus, request groups is the right option OR menu, function exclusions a better option.
    To my know knowledge menu, function exclusion is a better option….
    Inventory Responsibilities (e.g.)
    ==============================================================
    Name: Application: Responsibility Key: Description: Effective Start date: Data Group Name: Data Group Application: Menu: Request Group Name: Request Group Application: Read Only Access Exclusions: (Menu) Exclusions: (Menu) Exclusions: (Function) Exclusions: (Function) Exclusions: (Function)
    ==============================================================
    EU_INV_CZE_CLERK_1 Inventory EU_INV_CZE_C1 EU_INV_CZE_CLERK_1 1-Jan-90 Standard Inventory INV_CLERK_1 All Inclusive GUI Inventory Manage Shipments Corrections
    EU_INV_CZE_CLERK_2 Inventory EU_INV_CZE_C2 EU_INV_CZE_CLERK_2 1-Jan-90 Standard Inventory INV_CLERK_2 All Inclusive GUI Inventory INV_CYCLE_COUNTING Manage Shipments Corrections
    EU_INV_CZE_CLERK_3 Inventory EU_INV_CZE_C3 EU_INV_CZE_CLERK_3 1-Jan-90 Standard Inventory INV_CLERK_3 All Inclusive GUI Inventory Miscellaneous Transaction
    EU_INV_CZE_SUPERVISOR Inventory EU_INV_CZE_SUPV EU_INV_CZE_SUPERVISOR 1-Jan-90 Standard Inventory INV_NAVIGATE All Inclusive GUI Inventory INV_SETUP INV_KANBAN Launch Cost Update Standard Cost Update
    Above supervisor resp will restrict user not do setups and he can't do cost update
    **EU_INV_CZE_Super User* Inventory EU_INV_CZE_SU EU_INV_CZE_ Super User 1-Jan-90 Standard Inventory INV_NAVIGATE All Inclusive GUI Inventory Launch Cost Update Standard Cost Update_
    Above super User resp will allow user do setups in Inventory but he can't do cost update as Supervisor resp
    EU_INV_CZE_Setup View Inventory EU_INV_CZE_SUVO EU_INV_CZE_ Setup View 1-Jan-90 Standard Inventory INV_SETUP All Inclusive GUI Inventory Yes
    Question-2_
    When compared to 11i does R12 require any additional setups apart from New Resp, Menu, Submenu, Functions, Request Groups, Profile Options..?
    Ans : No… since you are setting up resp for a single org now.
    Hope this will help.
    Thanks,
    S.P DASH
    Edited by: spdash12 on Oct 22, 2009 11:25 AM

  • GRC AC 10.1 - Risk Analysis: No rules were selected

    Hi All,
    I'm currently configuring the ARA module in GRC AC 10.1, and an facing this issue. When I run my User Analysis, its throwing an error message "No rules were selected'.
    As per your suggestions from discussions, i double checked all the below activities
    Activate the BC sets
    Run Sync Jobs
    Run Batch Risk Analysis
    After all this I found that the functions are not mapped to the logical groups(Back-end Systems) I have defined. Can you please let me know how to make sure you have correct back end system(logical Group) updated for the functions in the setup? Doesn't the configurations Connector/Connector Groups etc already mapped the functions to the back-end system? It would be a hell of work to do all the system mapping on function level manually.

    Hi Narsimha
    You need to map your connectors to the logical systems that are used in the function definitions
    Look at your integration framework Setup in the IMG.
    Governance, Risk and Compliance > Common Component Settings > Integration Framework > Maintain Connectors and Connection Types
    Also, for 10.1 there was an issue with logical systems. It may be that your configuration is correct: Re: GRC 10.0 SP14 - Poblems when generating rules for logical systems
    Regards
    Colleen

  • Junk Mail: applying custom rules disables junk database

    Using default settings my junk mail filter works most of the time. But there are several persistent streams of spam that never get recognized as junk, and custom rules would identify them easily. But everytime I try, suddenly all the other junk that was being flagged comes through to my in box. I've selected "Trust junk mail headers in messages" and "Filter junk mail before applying my rules" but it has no effect.
    Also, the minute I add custom rules, "Erase Junk Mail" greys out and cannot be selected anymore. I have to first send my junk box to trash, then erase my trash.
    I've read the help files and they don't address this at all. (Same problem in 10.6)

    Don't have 3.0 on my computer but go to the Mail menu and choose Preferences.
    The click on Junk Mail then on Advanced and see what color is chosen in the setting and the conditions under which it is set.

Maybe you are looking for