반응형

오라클 SR 처리를 위해

아래와 같은 정보를 수집하면 편하다...

ulimit -a : 메모리 정보

uname -a : OS 정보

adrci : 문제가 발생한 내역 압축하기 (ips 명령 사용)

opatch : 현재 패치 내역 조회하기



testdb01:/oracle_test] ulimit -a

time(seconds)        unlimited

file(blocks)         unlimited

data(kbytes)         2000000

stack(kbytes)        8192

memory(kbytes)       unlimited

coredump(blocks)     4194303

testdb01:/oracle_test] uname -a

HP-UX testdb01 B.11.23 U ia64 1770507378 unlimited-user license



testdb01:/tmp] adrci


ADRCI: Release 11.1.0.7.0 - Production on Sat Jan 13 09:25:50 2018


Copyright (c) 1982, 2007, Oracle.  All rights reserved.


ADR base = "/oralog_test/dblog"

adrci> show problem


ADR Home = /oralog_test/dblog/diag/rdbms/testdb/testdb1:

*************************************************************************

PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME                             

-------------------- ----------------------------------------------------------- -------------------- ---------------------------------------- 

14                   ORA 600 [kjuscv]                                            1630464              2018-01-12 22:36:29.336735 +09:00       

13                   ORA 600 [kjucvl:!busy]                                      1630463              2018-01-12 22:36:25.059486 +09:00         

14 rows fetched


adrci> show incident


ADR Home = /oralog_test/dblog/diag/rdbms/testdb/testdb1:

*************************************************************************

INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME                              

-------------------- ----------------------------------------------------------- ---------------------------------------- 

1630464              ORA 600 [kjuscv]                                            2018-01-12 22:36:29.336735 +09:00       

1630463              ORA 600 [kjucvl:!busy]                                      2018-01-12 22:36:25.059486 +09:00       

 

50 rows fetched


adrci> ips pack problem 13 in /tmp

Generated package 9 in file /tmp/ORA600kju_20180113092623_COM_1.zip, mode complete

adrci> ips pack problem 14 in /tmp 

Generated package 10 in file /tmp/ORA600kju_20180113092815_COM_1.zip, mode complete

adrci> ips pack incident 1630464 in /tmp

Generated package 11 in file /tmp/ORA600kju_20180113092948_COM_1.zip, mode complete

adrci> ips pack incident 1630463 in /tmp

Generated package 12 in file /tmp/ORA600kju_20180113093112_COM_1.zip, mode complete


opatch lsinventory

반응형
반응형

엑셀을 처리하는 방법

1. 일반적인 방법

   - DB <---> WAS (JAVA) 파일 생성 <---> JSP 다운로드

   - 문제점 : WAS에 메모리에서 엑셀 파일을 만들기 때문에 메모리 할당 공간이 부족할 때는 OOM(Out Of Memory)으로

                 힙 덤프를 사정없이 발사 !

 

2. 대용량 엑셀 처리 방법

    - 엑셀을 생성할 때 XML 방식으로 생성함

      http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats#Excel_XML_Spreadsheet_example

    - outputStream으로 행별로 Text를 써야 메모리에 한꺼번에 올리지 않아 WAS가 OOM를 뿜으면서 죽지 않음.

       ※ 첨부된 자바파일을 참고함

    - 대용량이므로 속도에 신경 쓰지 않을 수 없다 !!!

      그러므로 Fetch Size(JAVA에서 Oracle를 사용할 때 가지고오는 row의 양...)을 조절하여 성능향샹의 효과 까지 볼수 있다.

 

후후... 재미있는건... 난 자바를 잘 모른다...

개발자들도 원인을 잘 찾지 않는다...

귀찮은 걸까... 해결하고 싶지 않을껄까...

난 인프라 담당인데 하하하 -_-

 

BigGridDemo.java

반응형
반응형

EXCEPTION
    WHEN exception명1 [OR exception명2...] THEN
        문장1;
        문장2; ...
    [WHEN exception명3 [OR exception명4...] THEN
        문장1;
        문장2; ...]
    [WHEN OTHERS THEN
        문장1;
        문장2; ...]

 

WHEN OTHERS 구문은 EXCEPTION 처리의 마지막 구문으로서 미리 선언되지 못한 모든 경우의 EXCEPTION처리를 가능하게 합니다.

EXCEPTION Keyword에 의해 Error처리가 시작됩니다.

EXCEPTION 처리구문이 필요하지 않으면 생략할 수 있습니다.

 

=========================================================================================

Predefined EXCEPTION

DECLARE Section에서 선언할 필요가 없습니다.  

Oracle Server 에러 중에서 자주 발생되는 20가지 에러에 대해 미리 정의되어 있는 EXCEPTION입니다.

해당 EXCEPTION 처리 루틴에서 미리 정의된 EXCEPTION명을 참조하여 에러를 처리합니다.
Predefined EXCEPTION의 종류에는 다음과 같은 것들이 있습니다.

EXCEPTION명

에러번호

설   명

NO_DATA_FOUND

ORA-01403

데이터를 반환하지 않은 SELECT문

TOO_MANY_ROWS

ORA-01422

두 개 이상을 반환한 SELECT문

INVALID_CURSOR

ORA-01001

잘못된 CURSOR 연산 발생

ZERO_DIVIDE

ORA-01476

0으로 나누기

DUP_VAL_ON_INDEX

ORA-00001

UNIQUE COLUMN에 중복된 값을
입력할 때

CURSOR_ALREADY_OPEN

ORA-06511

이미 열러 있는 커서를 여는 경우

INVALID_NUMBER

ORA-01722

문자열을 숫자로 전환하지 못한 경우

LOGIN_DENIED

ORA-01017

유효하지 않은 사용자로 LOGON 시도

NOT_LOGGED_ON

ORA-01012

PL/SQL 프로그램이 오라클에 연결되지
않은 상태서 호출

PROGRAM_ERROR

ORA-06501

PL/SQL 내부에 오류

STORAGE_ERROR

ORA-06500

PL/SQL에 메모리 부족

TIMEOUT_ON_RESOURCE

ORA-00051

오라클이 자원을 기다리는 동안 시간
초과 발생

VALUE_ERROR

ORA-06502

산술, 절단 등에서 크기가 다른 오류 발생

======================================================================================

 

CREATE OR REPLACE PROCEDURE show_emp
(v_salary   IN   s_emp.salary%type )
IS
v_name    s_emp.name%TYPE;
v_sal        s_emp.salary%TYPE;
v_title      s_emp.title%TYPE;
BEGIN
SELECT name, salary, title
INTO v_name, v_sal , v_title
FROM s_emp
WHERE salary = v_salary ;
DBMS_OUTPUT.PUT_LINE(' 이 름 '||' 급 여 '||' 직 책 '  );
DBMS_OUTPUT.PUT_LINE('--------------------------------' );
DBMS_OUTPUT.PUT_LINE(v_name ||v_sal ||v_title);
EXCEPTION
WHEN NO_DATA_FOUND THEN
   DBMS_OUTPUT.PUT_LINE('ERROR!!!-해당급여를 받는 사원은
없습니다.');
WHEN TOO_MANY_ROWS THEN
   DBMS_OUTPUT.PUT_LINE('ERROR!!!-해당급여를 받는 사원이
너무 많습니다.');

END;
/

 

SQL>EXECUTE show_emp (2400)
    ERROR!!!-해당급여를 받는 사원이 너무 많습니다.
    PL/SQL 처리가 정상적으로 완료되었습니다.

SQL>EXECUTE show_emp (500)
    ERROR!!!-해당급여를 받는 사원은 없습니다.
    PL/SQL 처리가 정상적으로 완료되었습니다.

Non-Predefined EXCEPTION

Oracle Server Error중 미리 정의되지 않은 Error는 사용자가 DECLARE Section에서 EXCEPTION명을 정의하고 Oracle Server에서 제공하는 Error번호를 사용하여 Error와
연결한 후 EXCEPTION Section에서 Error처리 Routine을 기술합니다.

DECLARE
   exception명 EXCEPTION;
   PRAGMA EXCEPTION_INIT(exception명, 에러번호);
BEGIN
. . .
EXCEPTION
    WHEN exception명 THEN
. . .
END;

 


 

S_PRODUCT 테이블에서 제품번호를 입력받아 제품을 삭제하는 프로그램을
작성하면 다음과 같습니다.
Oracle Server 에러번호 -2292인 무결성 제약조건 위반 에러처리를 합니다.

 

CREATE OR REPLACE PROCEDURE del_product
(  v_id  IN     s_product.id%TYPE )
IS
  
 fk_error     EXCEPTION;
   PRAGMA    EXCEPTION_INIT(fk_error , -2292);

BEGIN
   DELETE FROM  s_product
   WHERE                id = v_id;
   COMMIT;
EXCEPTION
  
 WHEN fk_error THEN
     ROLLBACK;
     DBMS_OUTPUT.PUT_LINE('참조되는 CHILD RECORD가 있으므로 삭제할
수 없습니다.');

END;
/

 

 

SQL>EXECUTE del_product(50530)
참조되는 CHILD RECORD가 있으므로 삭제할 수 없습니다.

PL/SQL 처리가 정상적으로 완료되었습니다.    

User Defined EXCEPTION

사용자 정의 EXCEPTION은 Oracle Server Error는 아니고, 사용자가 정한 조건이 만족되지 않을 때, Error를 발생시키는 방법입니다.

DECLARE Section에서 EXCEPTION명을 정의하고
BEGIN Section에서 RAISE문을 써서 에러를 발생시킵니다. 그리고 EXCEPTION Section에서 에러 처리문을 기술합니다.

DECLARE
    exception명 EXCEPTION;
BEGIN
   RAISE exception명;
. . .
EXCEPTION
    WHEN exception명 THEN
. . .
END;

 



 

S_EMP 테이블에 새로운 사원을 입력하는 프로그램을 작성하면
다음과 같습니다.단, 사번은 일련번호로 부여할 수 있도록 값을 지정하고
이름, 직책, 급여, 커미션은 사용자가 입력합니다.
단, 급여를 600이하로 입력시에는 입력이 불가능하도록 처리합니다.

 

CREATE OR REPLACE PROCEDURE in_emp
(v_name    IN    s_emp.name%TYPE ,
 v_sal      IN    s_emp.salary%TYPE ,
 v_title     IN    s_emp.title%TYPE ,
 v_comm   IN    s_emp.commission_pct%TYPE )
IS
v_id       s_emp.id%TYPE ;
lowsal_err   EXCEPTION ;
BEGIN
  SELECT MAX(id)+1
  INTO v_id
  FROM s_emp ;
 IF  v_sal  >= 600 THEN
  INSERT INTO  s_emp
   (id,name,salary,title,commission_pct,start_date)
  VALUES(v_id,v_name, v_sal,v_title,v_comm,SYSDATE) ;
 ELSE
  RAISE  lowsal_err ;
 END IF ;
EXCEPTION
WHEN lowsal_err THEN
  DBMS_OUTPUT.PUT_LINE ('ERROR!!!-지정한 급여가 너무 적습니다.
600이상으로 다시 입력하세요.') ;

END;
/

 

 

SQL>EXECUTE in_emp('김흥국',500,'과장',12.5)
ERROR!!!-지정한 급여가 너무 적습니다.600이상으로 다시 입력하세요.
PL/SQL 처리가 정상적으로 완료되었습니다.  

SQL>EXECUTE in_emp('김흥국',900,'과장',12.5)
PL/SQL 처리가 정상적으로 완료되었습니다

 

일반적인 Error처리를 위하여 Oracle에서 제공하는 함수인 SQLCODE, SQLERRM을
활용할 수 있습니다.

SQLCODE : Oracle에서 지정된 Error Code를 숫자로 Return

SQLERRM :

Oracle에서 지정된 Error Code에 해당하는 Error Message를
Return

 

SQLCODE, SQLERRM 함수를 활용하는 것 외에도 WHEN OTHERS절을 사용하여 Error를
처리할 수 있습니다. WHEN OTHERS절은 예상치 못한 Error처리를 위해서 미리 선언되지
않은 모든 종류의 Error를 처리합니다.

이번에는 SQLCODE와 SQLERRM에 대해서 예를 통해 살펴봅니다.



User Defined EXCEPTION의 예제9에서 작성한 Procedure를 이용하여 데이터를
입력하되 단, 커미션을 30%로 지정하여 실행하시오.

 

BEGIN in_emp('이한이',1200,'사원',30); END;

*
1행에 오류:
ORA-02290: 체크 제약조건(SCOTT.S_EMP_COMMISSION_PCT_CK)이
위배되었습니다
ORA-06512: "SCOTT.IN_EMP", 줄 14에서
ORA-06512: 줄 1에서  

 

 

SQL>SELECT constraint_name, constraint_type, search_condition
    2  FROM user_constraints
    3  WHERE table_name = 'S_EMP' ;


 

 


 

예제 9에서 실행시에 해당 COMMISSION_PCT를 입력하지 않는 경우에도
프로그램이 정상적으로 수행되도록 User Defined EXCEPTION의 예제9에서
작성한 프로그램을 보완하면 다음과 같습니다.

 

CREATE OR REPLACE PROCEDURE in_emp
(v_name    IN    s_emp.name%TYPE ,
 v_sal      IN    s_emp.salary%TYPE ,
 v_title     IN    s_emp.title%TYPE ,
 v_comm   IN    s_emp.commission_pct%TYPE )
IS
v_id            s_emp.id%TYPE ;
lowsal_err   EXCEPTION ;
v_code         NUMBER ;
v_message    VARCHAR2(100) ;
 
BEGIN
  SELECT MAX(id)+1
  INTO v_id
  FROM s_emp ;
 IF  v_sal  >= 600 THEN
  INSERT INTO  s_emp
   (id,name,salary,title,commission_pct,start_date)
  VALUES(v_id,v_name, v_sal,v_title,v_comm,SYSDATE) ;
 ELSE
  RAISE  lowsal_err ;
 END IF ;
EXCEPTION
WHEN lowsal_err THEN
  DBMS_OUTPUT.PUT_LINE ('ERROR!!!-지정한 급여가 너무 적습니다.
600이상으로 다시 입력하세요.') ;
WHEN OTHERS THEN
   v_code := SQLCODE ;
   v_message := SQLERRM ;
DBMS_OUTPUT.PUT_LINE('에러코드   =>'||v_code) ;
DBMS_OUTPUT.PUT_LINE('에러메세지=>'||v_message) ;

END;
/

 

 

SQL>EXECUTE in_emp('이한이',1200,'사원',30)
에러코드   =>-2290
에러메세지=>ORA-02290: 체크 제약조건
(SCOTT.S_EMP_COMMISSION_PCT_CK)이 위배되었습니다

PL/SQL 처리가 정상적으로 완료되었습니다.

반응형

'Database > ORACLE' 카테고리의 다른 글

System Account Lock (System 계정 락 걸림)  (0) 2010.07.15
오라클 클론 디비로 복구 하기  (0) 2010.07.13
RMAN 사용법  (0) 2010.07.06
오라클 암호화 기능  (0) 2010.07.02
오라클 pump 관련 자료  (0) 2010.06.30
반응형

 
 ADOBE ACROBAT 8 Professional 에서

개관

Adobe® Acrobat®의 Form 기능에 익숙해져 있다면 form 도구 모음에 바코드 모양의 아이콘이 새로 생긴 것을 이미 봤을지도 모른다. 이는 2차원 바코드 오브젝트로, LiveCycle® 바코드 form 이면의 기술이다.
LiveCycle® 바코드 Form은 2D 바코드 기술을 사용하여 프린트되는 form으로부터 사용자 공급 데이터를 자동으로 캡처한다. 이는 OCR(Optical Character Recognition) 혹은 매뉴얼 데이터 엔트리를 사용하여 용지 기반 form을 처리해야 하는 요구사항을 배제한다. form 사용자는 단지 무료 Adobe Reader®를 이용, 그들의 form을 완성, 프린트, 서명한 후 팩스나 메일로 제출하기만 하면 된다. 몇몇 경우에, form 작성자는 최종사용자가 디지털 서명을 동반한 전자 제출이나 잉크 서명이 되어있는 지면상의 제출 중에서 선택할 수 있는 기회도 제공할 수 있게 된다.


2D 바코드가 실시간으로 데이터를 어떻게 캡처하는지 보려면 이 작은 form 견본 내의 정보를 변경해 보라.
바코드는 수정하고 필드를 나갈(예를 들어, Tab키를 사용하여) 때마다 변경될 것이다. 그 데이터 자체는 탭지정된, 자신만의 일상적 포맷이나 심지어 XML을 포함하는 방대한 포맷 내에 저장될 수 있다.




2D 바코드 적용하기

2D 바코드를 적용하기 이전에, 인쇄 전 작성될 수 있는 PDF Form(작성-인쇄 PDF Form)을 제작해야 할 필요가 있다. 만약 이미 그러한 form을 가지고 있다면, 인쇄-작성 form(인쇄된 후 필기로 작성된)을 열고 form 메뉴에서 새로운 “Run Form Field Recognition”을 사용하라. 이는 요구되는 위치에서 자동으로 필드를 생성하는 전체적인 form을 스캔할 것이다.
문자 그대로 금방 지면상의 form을 작성-인쇄 form으로 전환할 수 있다.


만약 Form 도구 모음이 아직 작업공간에 보이지 않는다면, Tools를 클릭한 후, Form, 그리고 마지막으로 “Show Forms Toolbar”를 클릭한다. 이렇게 하면 빠르고 쉽게 추가 필드를 생성하고, 기존의 것을 수정하여 2D 바코드를 적용할 수 있도록 해 줄 것이다.
form을 있는 그대로 배포해 수동으로 데이터를 입력하는 데 많은 시간과 돈을 쓰기보다는 작성-인쇄 form을 가지고 2D 바코드를 추가하여 데이터를 캡처해 수동 자료 기재에 대한 필요를 완전히 없앨 수도 있다.


바코드 툴을 선택하기 전에, 최종 사용자들이 제공하기를 기대하는 것을 반영하기 위한 가능한 많은 샘플 데이터로 자신의 form을 작성하는지를 확인하라.
2D 바코드를 적용할 수 있는 여러분의 form에서 빈공간을 찾아라. 요구되는 물리적 공간은 사용시 여러분이 계획하는 바코드 타입에 의존될 것이다. 여러분이 PDF417을 선택한다면, 높이보다 너비가 큰 직사각형 모양 이 필요할 것이며 DataMatrix뿐 아니라 QRCode의 경우는 정사각형 공간이 필요할 것이다.




Forms 도구 모음의 바코드 아이콘을 클릭하면 십자선 커서를 보게 될 것이다. 페이지에서 개방 구역을 선택 하고 텍스트 영역과 같은 방식으로 바코드를 “그리기”한다. 마우스 버튼을 뗀 후 보이는 첫 번째 화면에서 OK 버튼을 클릭하기 전에, 주의사항을 반드시 읽는다. “별개의 라이선스가 요구됨”이라는 문구를 보게 될 것 이다. 이 기술을 이용하기 위해 가능한 라이선스 요구사항이 있다는 점에 주의할 필요가 있다.
뒤에서 라이선 스 사용 케이스의 샘플을 더 제공할 예정이다.


일단 바코드가 그려지면, 특징 상자(properties box)가 나타나고 2D 바코드가 form 상에 렌더될 것이다. 만약 견본 데이터가 바코드가 생성되기 이전에 주입되지 않는다면 바코드 크기에 문제가 있을 수 있다는 주의사항을 알려줄 것이다. 견본 데이터 주입은 실제로 Adobe® Acrobat®이 모든 form 데이터를 보관 하도록 요구되는 바코드의 크기를 측정하도록 시도될 중요한 단계이다. 사실, 렌더된 바코드는 여러분이 도안했던 정확한 크기가 아닐지도 모른다.




Barcode Properties 바코드 특징(기능)들

General 탭에서 자동으로 산출되는 것이 적합하지 않다면 그 바코드에 대한 이름을 간단하게 제공할 필요가 있다.

Options 탭에서는 어떠한 바코드 기호를 쓸 것인지 결정한다. 각각의 기호는 그 구역이 자주 선택을 한정짓지만 특이한 특징들을 가지고 있다. 예를 들어, PDF417은 북미 지역에 대한 사실상의 기준이며 QRCode는 일본처럼 2바이트 문자 집합 언어를 사용하는 나라에서 더 인기가 많다. Adobe's decoder를 사용할 계획이 있다면 압축 옵션을 켜야만 한다. 압축 옵션을 켜놓은 상태에서, 데이터는 바코드로 렌더되기 전에 “편평화” 압축된다, 그러면 수동-스캐너나 제3자 바코드 판독기가 그 데이터를 해독할 수 없을지도 모른다.


디코드(판독) 조건은 바코드의 가장 중요한 설정 중 하나일 수도 있다. 작성-인쇄된 문서들을 실제로 받아 문서 스캐너로 스캔할 계획이라면, 문서 스캐너를 선택하라. 그 문서들을 팩스로 보낼 예정이라면, 디코드 조건으로 “팩스 서버(Fax Server)”를 선택해야 한다. 이 세팅은 바코드 크기 지정과 오류 수정 특징을 자동으로 변경하여 손상될지라도 디코드되도록 해준다. 바코드 크기 지정과 오류 수정을 변경하도록 해줄 수 있는 “Custom” 버튼이 있지만 바코드 기호에 익숙하고 여러분의 from 작업 흐름을 지원하는 특정한 변경 사항을 생성해야 하지 않다면 이러한 값들을 변경할 것을 권하지는 않을 것이다. 예를 들어, 오류 수정 레벨 을 2까지 줄이면 바코드에 상당히 더욱 많은 데이터를 입력할 수 있음을 알 수 있을 것이다. 그러나, 디코드 될 수 없는 바코드를 더욱 선호할 수도 있고 판독률은 극히 낮을 수도 있다.


Value 탭은 데이터가 어떻게 인코드되어야 하는지 뿐만 아니라 바코드에 포함되는 아이템들을 선택할 수 있게 해준다. “Encode using…”을 선택하면 자동으로 데이터가 인코드될 것이다.
또한 “Custom calculation script”를 선택하면 자신만의 스크립트를 쓸 수도 있다. 자동화된 경로를 택한다면 , Tab Delimited 포맷을 선택하여 어떠한 영역이 포함될지를 “Pick” 버튼을 클릭하여 선택한다. XML을 인코 딩 방식으로 쓸 수 있지만 delimited 포맷에 비하여 바코드 내에 더욱 많은 공간을 차지할 것이라는 점을 주의해야 할 것이다.

XML 인코딩
John Smith

Tab Delimited 인코딩
FirstName LastName
John Smith


”Tab Delimited”를 선택하면 데이터를 따라 영역 명칭을 포함하는 옵션을 가질 수 있다. 이는 form이 디코드 될 때에 다른 포맷으로 변환을 쉽게 할 수도 있다.
여러분이 바코드 내의 커스텀 코딩을 위한 선택을 한다면 순서에 맞는 영역과 여러분이 선택한 포맷을 암호 화할 수 있다.

Custom Calculation Script
event.value = this.getField(“FirstName”).value + “,” +
this.getField(“LastName”).value + “,” + this.getField(“Init”).value;





크기와 용량

바코드가 회색 상자로 변하는 것을 감지하였다면, 이는 바코드 내에 가능한 용량보다 더 많은 데이터를 입력 했음을 나타내는 것이다. 바코드 내에 포함된 영역의 수를 줄이고 싶거나 바코드 자체의 크기를 키우고 싶어 할 수도 있다. PDF나 그 자리(location) 내에 사용할 수 있는 바코드 수에는 제한이 없다는 점을 명심하여야 한다. 예를 들어, 4쪽짜리 문서에서, 4쪽의 바코드는 1에서 2쪽까지의 데이터를 캡처할 수 있고 4쪽의 두 번 째 바코드는 3에서 4쪽에 걸쳐 남아있는 데이터를 캡처할 수 있다.

바코드의 용량은 오류 수정, 크기, 내용을 포함하는 요인들의 수에 따라 정해진다. “fax” 기반 오류 수정 기능 이 있는 너비 3인치, 높이 1인치의 PDF417 바코드는 대략 300개의 대문자를 수용할 수 있다. “문서 스캐너” 기반 오류 수정이 되는 너비 7인치, 높이 1인치의 PDF417 바코드는 대략 1688개의 대문자를 수용할 수 있다. 2D 바코드의 모든 개념을 이해할 필요가 없다면, 여러분의 모든 form 영역에 대하여 최대 길이를 생성하고 다양한 데이터 타입의 form을 실험해 바코드가 절대 “grays out”되지 않는다는 확인해야 한다. 정상적 표현 을 사용하여 영역 내로 들어가는 데이터의 타입을 제한하고 싶을 수도 있다. 훌륭한 용량 실험은 문자 “HeLlO1Y3!”을 반복하여 최대 길이로 모든 영역을 채워가는 것이다. 이렇게 하면 바코드 인코더가 다양한 암 호화 방식을 전환해 가며 차례로 면밀히 바코드 용량을 테스트할 것이다. 그러나 사용자가 실제로 입력하는 것보다 더 많은 데이터를 인코드할 것이다.




Adobe® Acrobat® Standard 혹은 Professional 작업 흐름

여러분이 생성하는 form이 Adobe® Acrobat® Standard 혹은 Professional 을 사용하여 작성되고 인쇄될 예 정이라면, 어떠한 추가적 사용 허가(licensing) 과정도 요구되지는 않는다. Standard나 Professional에서 인 쇄할 경우, 2D 바코드들은 평문(plain text) 포맷 내에 나타난다. 바코드 기능들 내에서 데이터 압축을 켜지 않는 한, 핸드 헬드 스캐너를 포함하는 2D 기호를 읽어낼 수 있는 어떠한 판독기를 사용해도 그 바코드를 읽 어낼 수 있을 것이다.
만약 이미 고속 문서 스캐너를 가지고 있는 경우라면, 내장된 2D 바코드 판독 기능을 가지고 있을 것이다. 만 약 판독기를 가지고 있으면, Adobe® LiveCycle® Barcoded Forms Decoder를 구하면 된다.
Adobe® Acrobat® Standard 또는 Professional 기반의 작업 흐름 내에서, 여러분은 판독기만을 필요로 할 것이다.
여러분이 form을 발행하고 무료 Adobe® Reader®를 사용하여 작성하고 인쇄하기를 바라지 않는다면, 어떠 한 form도 사용 허가를 할 필요는 없을 것이다.




Adobe® Reader® 작업 흐름

여러분이 제작한 2D 바코드 PDF가 무료 Adobe Reader®를 사용하여 작성되어 인쇄될 예정이라면 라이선스 가 요구된다. 그 form이 사용 허가가 되어 읽지 않다면, 작성-인쇄 form이 작성되어 저장될 때에, 그 바코드는 암호화되어 판독될 수 없다. 그 2D 바코드가 핸드 스캐너로 스캔된다면, 긍정적인 판독을 산출하겠지만 그 결과는 왜곡된 데이터일 것이다. 고속 스캐너에 장착된 것과 같은 소프트웨어 기반 판독기의 경우도 그 결과 는 마찬가지일 것이다.

라이선스를 받았다면, 바코드 기능 내에 데이터 압축을 켜지 않는 한, 핸드 헬드 스캐너를 비롯, 2D 기호를 판독할 수 있는 어떠한 판독기를 사용해도 그 바코드를 읽어낼 수 있을 것이다. 바코드 부호는 form 디자이너에 의해 작동되거나 꺼질 수 있는 “특징”이 아닌, 단순히 하나의 인증 메커니즘 일 뿐이다.




Adobe® Reader® Workflow를 위한 Form Deployment(배치)

인증된 작성-인쇄 바코드 DFform은 Adobe®
LiveCycle® Reader Extensions를 사용하는 배치에 대하 여 준비되어 그 form의 2D 기능을 가능케 한다. 2D “right(저작권)”을 필요로 하는 파일을 선택하여 간편 사 용 웹 기반 인터페이스를 사용하여 업로드한다. 활성화하 기를 바라는 권리들을 선택하고 Adobe® LiveCycle® Reader Extensions는 확장된 바코드 PDF form을 생성하 여 고객이나 구성 요원에 배포하도록 해준다.

만약 이미 Adobe® LiveCycle® Reader Extensions를 가지고 있으며 Adobe® LiveCycle® Barcoded Forms 라이선스와 함께 주문하지 않을 예정이라면, Adobe® LiveCycle® Reader Extensions의 번들 버전은 추가 비 용 청구를 하지는 않는다. 이 번들 버전은 소프트웨어 ‘권 리'를 제공하여 PDF form상의 2D 기능을 활성화한다. 이 는 save-off-line과 같은 다른 Adobe® LiveCycle® Reader Extensions 저작권을 포함하지는 않는다.

Adobe® LiveCycle® Reader® Extensions를 이미 소유 하고 있거나 Adobe's LiveCycle® Barcoded Forms 라이 선스로 이를 주문하려고 하는 경우라면, PDF form상의 2D 기능을 가능케 하고 save-off-line, 주석달기 (commenting)뿐 아니라 많은 다른 기능과 같은 Adobe® LiveCycle® Reader Extensions의 모든 특징들이 소프트 웨어 “저작권”과 함께 제공될 것이다.
 

“전자 제출은 어떠한가?”

만약 최종 사용자가 여러분의 form을 인쇄하는 대신에 전 자상으로 제출하게 하는 옵션이 있다면, 반드시 트리를 저장하라. LiveCycle® Barcoded Forms는 인쇄되어야 하는 form에 적용되도록 되어 있다. 이는 잉크 혹은 복합 잉크 서명 법률 요구조건, 추가 부록물, 심지어는 고객이 나 내부 작업 흐름 선호도 등을 포함하는 어떠한 수의 근 거를 위한 것일 수 있다.
2D 바코드식 PDF form들은 훌륭한 과도적 stepping- stone 또는 bridge 기술을 만들어낸다. 지면의 form을 가 지고 있고 전자 포맷으로 변환하고 싶지만 여러분의 체계 에 있어서는 너무 ”과도한” 변화일지도 모른다고 생각이 든다면, 2D로 데이터 엔트리 제거를 시작하고 하부구조가 그에 준비가 되면 전자 제출형식으로 옮기기만 하면 된다 . 소모적인 수동 자료 기재를 없애는 동안 기존의 용지 기반 작업 흐름을 높이 평가하게 될 것이다.





“OCR 은 어떤가?”

OCR 혹은 ICR(Intelligent Character Recognition)은 어떤 경우에는 훌륭할 수 있지만 100% 신뢰성이 높은 것은 아니다. TAWPI 연구에서, OCR이 90%의 정확성으로 form 데이터를 캡처하는 최상의 경우가 있음이 판 명되었고, 이는 그야말로 최상의 케이스이다. 이는 조직 내부로 들어오는 데이터 중 최소 10%가 부정확하며 수동으로 처리되어야 할 필요가 있음을 의미한다. 일반적으로 이는 검증 혹은 유효화 단계라 명명된다. 2D 바코드가 일련의 오류 가능성을 제시하지 않기 때문에, 만약 그 바코드를 판독할 수 있다면 수동 검증 혹은 유효화 단계들을 없앤 100% 정확성을 가진 데이터의 100%를 보유한다는 점을 확신할 수 있다.

원문출처 :

http://www.adobe.com/devnet/livecycle/ barcodedforms/articles/acrobat_8_and_barcoded_forms.pdf

더 많은 정보를 원하시면 :

Adobe® LiveCycle® Barcoded Forms Datasheet

Adobe® LiveCycle®Reader Extension Datasheet

출처 : http://www.acrobatpdf.com/tip/detail_02.asp?id=15&gotopage=7&code=

반응형

+ Recent posts