HamidReza Ireh

حمیدرضا ایره

HamidReza Ireh

حمیدرضا ایره

اعتبارسنجی داده ها همیشه یکی از مهمترین وظایف برنامه نویس ها در انجام پروژه ها می باشد. این اعتبارسنجی ها گاه ساده و گاه دارای پیچیدگی فراوان می باشند. برخی از آنها فقط در یک پروژه لازم بوده و برخی در بسیاری از پروژه ها استفاده می گردد. حال شرایطی را در نظر بگیرید که یک اعتبارسنجی همانند اعتبارسنجی شماره ملی دارید که در بسیاری از پروژه ها به آن نیاز دارید. اگر امکانی باشد که بتوانید آن را یکبار بنویسید و از آن در همه پروژه ها استفاده کنید، توسعه سیستم ها و همچنین نگهداری آنها را راحتتر می کند. در ADF امکانی هست که بتوانید یک اعتبارسنجی را نوشته و در سایر پروژه ها استفاده کنید.

به دلیل اینکه می خواهیم از اعتبارسنجی در سایر پروژه ها استفاده کنیم یک تمرین خوب آن است که یک application عمومی بسازید و در آن یک پروژه برای اعتبارسنجی ها ایجاد کنید تا بتوانید این اعتبارسنجی ها را از طریق ADF Libraries در اختیار تیم قرار دهید. برای این منظور یک application جدید به نام Common ایجاد نمایید و سپس یک پروژه با نام validations درون آن بسازید. در این پروژه باید تکنولوژی ADF Business Component‌ و Java را داشته باشد.
حال بر روی پروژه validations کلیک راست نمایید و گزینه New را انتخاب نمایید. در قسمت ADF Business Component گزینه Validation Rule‌را انتخاب نمایید تا ویزارد مربوط به ایجاد اعتبارسنجی اجرا گردد.

در پنچره ای که باز شده است ابتدا نام آن را وارد کنید. سپس در قسمت extends کلاس AbstractValidator را انتخاب نمایید و در قسمت Rule Display Name و Rule Description مقادیر مورد نظرتان را وارد نمایید. این اقلام اطلاعاتی را استفاده کنندگان خواهند دید و بهتر است که مفهوم و کاربرد کامل این اعتبارسنجی را بیان نماید.
کلاس AbstractValidator را extends‌ نمودیم تا بتوانیم از resource bundle مربوط به Entity‌ استفاده کنیم و همچنین بتوانیم از امکانات خود ADF برای گزارش خطا استفاده نماییم.

پس از زدن دکمه OK کلاس مربوط به این اعتبار سنجی ایجاد می گردد. حال کد اعتبارسنجی زیر را درون کلاس خود قرار دهید.

import oracle.jbo.rules.AbstractValidator;
import oracle.jbo.rules.JboValidatorContext;
import oracle.jbo.rules.JboValidatorInterface;
import oracle.jbo.rules.RulesBeanUtils;

public class NationCodeValidationRuleImpl extends
AbstractValidator implements
JboValidatorInterface {
private String description = "Use for validate nation code";
public NationCodeValidationRuleImpl() {}
public boolean validateValue(Object value) {
String[] allDigitEqual = new String[] {
  "0000000000", "1111111111", "2222222222",
"3333333333", "4444444444", "5555555555",
"6666666666", "7777777777", "8888888888","9999999999" };
for (String item : allDigitEqual)
if (item.equals(value))
return false;
char[] chArray = ((String)value).toCharArray();
Integer num0=Integer.valueOf(String.valueOf(chArray[0]))*10;
Integer num2=Integer.valueOf(String.valueOf(chArray[1]))*9;
Integer num3=Integer.valueOf(String.valueOf(chArray[2]))*8;
Integer num4=Integer.valueOf(String.valueOf(chArray[3]))*7;
Integer num5=Integer.valueOf(String.valueOf(chArray[4]))*6;
Integer num6=Integer.valueOf(String.valueOf(chArray[5]))*5;
Integer num7=Integer.valueOf(String.valueOf(chArray[6]))*4;
Integer num8=Integer.valueOf(String.valueOf(chArray[7]))*3;
Integer num9=Integer.valueOf(String.valueOf(chArray[8]))*2;
Integer a = Integer.valueOf(String.valueOf(chArray[9]));
Integer b = (
(
(
(
(
(
(num0 + num2)
+ num3)
+ num4)
+ num5)
+ num6)
+ num7)
+ num8)
+ num9;
Integer c = b % 11;
return (((c < 2 )&& ( a == c)) ||
((c >= 2)&& ((11 - c) == a)));
}
public void validate(JboValidatorContext ctx) {
if (!validateValue(ctx.getNewValue())) {
RulesBeanUtils.raiseException(getErrorMessageClass(),
getErrorMsgId(),
ctx.getSource(),
 ctx.getSourceType(),
ctx.getSourceFullName(),
 ctx.getAttributeDef(),
 ctx.getNewValue(),
 null,
 null);
}
}
public String getDescription() {
return description;
}
public void setDescription(String str)
description = str;
}

حال نوبت به ایجاد یک ADF Library‌ شده است تا با استفاده از آن، این validation را در اختیار سایرین برای استفاده قرار دهیم. برای این منظور بر روی پروژه Validations راست کلیک کرده و project properties‌ را انتخاب نمایید و در قسمت deployment profile یک پروفایل جدید از نوع ADF Library‌ ایجاد نمایید. حال پروژه را با استفاده از پروفایلی که ایجاد کردید deploy نمایید تا jar‌ فایل مربوطه ایجاد گردد.
حال این validation را می توانید درون JDeveloper‌ ثبت نمایید تا در پروژه ها از آن استفاده نمایید. برای این کار از منوی Tools گزینه preferences را انتحاب نمایید. در زیر قسمت ADF Business Component گزینه Register Rules را انتخاب نمایید. حال با استفاده از دکمه Pick Libraray‌ پنجره انتخاب کتابخانه را باز نمایید. چون این یک کتابخانه جدید است در این پنجره گزینه New‌ را کلیک نمایید تا پنجره ایجاد کتابخانه جدید باز گردد. سپس نام مربوط به این کتابخانه را وارد نمایید و دکمه Add Entry‌ را کلیک نمایید تا پنجره انتخاب Jar فایل باز گردد. Jar‌ فایل مربوط به Validation را انتخاب نمایید و سپس همه پنجره ها را تایید نمایید تا تغییرات ذخیره گردد.

حال یک نام برای آن وارد نمایید و تیک Register‌ را بزنید.

تبریک می گویم شما تمام مراحل را با موفقیت سپری کردید و دیگر به این validation در پنجره ایجاد اعتبارسنجی درون entity به آن دسترسی دارید و می توانید از آن استفاده نمایید.

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی