6 Replies Latest reply: Oct 10, 2011 5:15 PM by 831134 RSS

    Metadata Validation

    822620
      Hello,

      Can anyone point me to a resource for learning how to perform metadata validation?

      Example1:
      I have two custom metadata fields xStartDate and xEndDate - I don't want a user to be able to check in the content unless Start Date is before End Date.

      Example2:
      I have a custom metadata field called xContactEmail - I want to be able to check that the input is formatted as a valid email address.

      Thank you,
      Mitch
        • 1. Re: Metadata Validation
          830868
          Create a component with a filter on 'validateCheckinData'. Point to a Java Class where you do something like below:
          public class MyValidation implements FilterImplementor {
          
            @Override
            public int doFilter ( Workspace ws, DataBinder binder, ExecutionContext ctx ) {
          
              String myStartDate = binder.getLocal( "xStartDate" );
              String myEndDate = binder.getLocal( "xEndDate" );
              String myEmail = binder.getLocal( "xContactEmail" );
          
              if ( isNotBetweenDates( myStartDate, myEndDate ) ) {
                 m_binder.putLocal( "StatusMessage", "not between " + myStartDate + " and " + myEndDate );
                 return ABORT;
              } else if ( isNotValidEmail( myEmail ) ) {
                 m_binder.putLocal( "StatusMessage", myEmail + " is not valid email" );
                 return ABORT;
              }
              
              return CONTINUE;
          
            }
          
          }
          See HowTo components for how to set up your component and other samples.
          • 2. Re: Metadata Validation
            Jiri.Machotka-Oracle
            Alternatively, you could also try iDocScript and profiles - see an example at http://download.oracle.com/docs/cd/E17904_01/doc.1111/e10978/c04_metadata.htm#CSMRC573
            • 3. Re: Metadata Validation
              822620
              Jiri,

              I tried the example that they provided with a few minor changes:

              1. I used one of my custom content types
              2. I used one of my custom rules that is NOT global

              Content server allowed the check-in and didn't go to any error page... not really sure how to trouble shoot this.

              Have you had success with this?

              Mitch
              • 4. Re: Metadata Validation
                webmonkeymagic
                Those solutions are all server side - after the form is submitted. That's a bad user experience.
                I suggest you add some JavaScript to the checkin form that prevents submission when validation fails. You can throw an alert or better still, highlight the bad form data.
                I uh, don't know of an online example but any web dude could write the JavaScript.
                • 5. Re: Metadata Validation
                  Jiri.Machotka-Oracle
                  I'm afraid the profiles work "as is". In general, I agree with my predecessor - validations, or at least validations that you can do like that (for instance, I wrote a component for "quotas", as a filter, which can hardly not to be server-side), should be client-side, not server-side. So, if you go with customizations, Java-script is probably the first option.
                  • 6. Re: Metadata Validation
                    831134
                    We've done something in the past that used AJAX/JQuery client side to perform validation. Just extend the include to call your function(s) as needed.