none
Business rule in MDS 2012 error: A database error has occurred. Contact your system administrator.

    Question

  • I get the following information in my MDS log as well as the above error message when I execute a business rule that has a condition of AND and an Action of Attribute must be unique in combination with 2 other attributes. 

    I'm running SQL Server 2012 11.0.3000

    MDS database version 11.1.0.0

    Any ideas?

    MDS Error: 0 : SqlException message: A database error has occurred. Contact your system administrator.
       at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.HandleExceptions(Exception ex)
       at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.ExecuteDataSet(String spName, CloseConnectionBehavior closeBehavior, Object[] parameterValues)
       at Microsoft.MasterDataServices.Core.DataAccess.MasterDataAccess.<>c__DisplayClass5.<ValidateEntityMembers>b__4()
       at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.ExecuteMethodWithDeadlockProtection(MethodDelegate method)
       at Microsoft.MasterDataServices.Core.BusinessLogic.Validations.ValidateMembers(Int32 versionId, Identifier entityIdentifier, IList`1 memberIds, RequestContext context, OperationResult results)
       at Microsoft.MasterDataServices.Core.BusinessLogic.Validations.Process(ValidationProcessCriteria criteria, Boolean commitVersion, Boolean validateEntityAsync, Boolean returnValidationResults, RequestContext context, OperationResult results)
    SQL Error Debug Info: Number: 208, Message: Invalid object name 'cteDuplicates0a070e37b106b9e3efe35a455076efa7'., Server: SQLRS-01, Proc: udp_SYSTEM_3_38_CHILDATTRIBUTES_ProcessRules, Line: 230
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: udp_SYSTEM_3_38_CHILDATTRIBUTES_ProcessRules, Line: 230
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: , Line: 0
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: udpBusinessRule_AttributeMemberController, Line: 0
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: udpValidateMembers, Line: 0

        DateTime=2013-08-15T13:25:15.6684023Z
    MDS Error: 0 : <ArrayOfError xmlns="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <Error>
        <Code>208</Code>
        <Context i:nil="true" />
        <Description>A database error has occurred. Contact your system administrator.</Description>
      </Error>
    </ArrayOfError>
        DateTime=2013-08-15T13:25:15.7152026Z


    • Edited by Labry Tuesday, September 10, 2013 4:37 PM
    Thursday, August 15, 2013 1:43 PM

Answers

  • OK I bit the bullet and contacted support on this one.

    There is a known issue with MDS 2012 and business rules with a combination of "must be unique" attributes. If you do not list the attributes in the same order that they were created you will get the generic error I cited. At first they told me it must be in the same order the attributes are in and that worked on one entity but not the other. The difference was that in the second entity I previously rearranged the attributes in question. Once I changed the order in the business rule to reflect the *original* order it worked like a champ.

    Hopefully this helps save someone some time and money.

    • Marked as answer by Labry Tuesday, September 10, 2013 4:36 PM
    Tuesday, September 10, 2013 4:36 PM

All replies

  • I wonder if a space in the attribute name is the cause.

    Friday, August 16, 2013 9:12 PM
  • There are no spaces in any of the attributes used in the business rule.
    Monday, August 26, 2013 7:31 PM
  • OK I bit the bullet and contacted support on this one.

    There is a known issue with MDS 2012 and business rules with a combination of "must be unique" attributes. If you do not list the attributes in the same order that they were created you will get the generic error I cited. At first they told me it must be in the same order the attributes are in and that worked on one entity but not the other. The difference was that in the second entity I previously rearranged the attributes in question. Once I changed the order in the business rule to reflect the *original* order it worked like a champ.

    Hopefully this helps save someone some time and money.

    • Marked as answer by Labry Tuesday, September 10, 2013 4:36 PM
    Tuesday, September 10, 2013 4:36 PM
  • Hello Labry,

    Could you elaborate a little bit on the solution?

    What do you actually mean with the "order"?

    Kind regards,

    Alexander

    Wednesday, November 12, 2014 11:50 AM
  • This helps a lot with understanding the issue and working around it. Is there any plan to resolve this or is it just going to be a 'feature'
    • Edited by DeeBeeGee Tuesday, April 07, 2015 2:23 PM
    Tuesday, April 07, 2015 2:22 PM
  • The relevant column in relation to the order required in the business rule seems to be the creation date of the attributes, or in metadata speak

    [MDS].[mdm].[tblAttribute].EnterDTM

    This is an issue if you are using MDSDeploy to publish entities from one environment to another if you have reordered the columns at any point. When publishing a package, MDSDeploy creates the columns in order of their sort position so the order according to EnterDTM will be out of sync from the source of the package. This means that the associated business rule will fail. Not ideal. 

    Tuesday, April 07, 2015 2:44 PM