Oracle 통신 청구 및 수익 관리(Oracle BRM \ 공식적으로 포털 인프라넷이라고 함)는 사용자 지정 필드 및 저장소 클래스를 생성, 편집 및 삭제하는 두 가지 방법을 제공합니다. 하나는 개발자 센터 애플리케이션의 일부인 저장 클래스 편집기를 사용하는 방법이고, 다른 하나는 SDK 옵코드를 사용하는 방법입니다. 여러 가지 이유로 저는 후자를 선호하며, 이 글에서는 SDK 옵코드로 사용자 정의 필드를 조작하는 방법을 다룰 것입니다.
시작하기 전에 먼저 데이터 사전을 쓰기 가능하게 만드는 한 가지 변경을 수행해야 합니다. 방법은 다음과 같습니다:
1. 1. 텍스트 편집기에서 Oracle DM 또는 Microsoft SQL Server DM 구성 파일(BRM_HOME/sys/dm_oracle/pin.conf 또는 BRM_HOME/sys/dm_odbc/pin.conf)을 엽니다.
2. 다음 항목을 1로 설정하여 데이터 사전에서 필드 조작을 사용하도록 설정합니다.
우리의 목표는 다음과 같습니다:
1. 사용자 지정 필드를 만들려면 1.
2. 사용자 지정 필드 설명을 편집하려면 다음과 같이 하세요.
3. 데이터베이스에서 사용자 지정 필드를 삭제하려면 다음과 같이 하세요.
4. BRM에서 사용자 지정 필드를 사용할 수 있도록 설정하려면 4.
새 사용자 정의 필드 만들기
새 사용자 정의 필드를 생성하고 데이터베이스에 커밋하는 작업은 SDK 옵코드 또는 핀 배포 유틸리티를 사용하여 수행할 수 있습니다. 개발자는 알다시피 SDK 옵코드는 개발 단계에서 사용자 정의 필드를 보다 유연하게 생성, 편집 및 삭제할 수 있는 방법을 제공합니다. 반면에 핀 배포 유틸리티는 PODL(포털 객체 정의 언어)을 사용하여 필드 및 저장 가능한 클래스 정의를 내보내고 가져옵니다. 이는 특히 관리 수준에서 더욱 유용한데, 필드 정의를 소스 코드 관리에 넣음으로써 프로세스를 간소화하여 Oracle BRM 프로덕션 데이터베이스 데이터 사전이 손상될 가능성을 낮출 수 있기 때문입니다.
다음 SDK 옵코드를 사용하여 필드 사양을 관리할 수 있습니다:
1. PCM_OP_SDK_SET_FLD_SPECS - 필드를 생성하거나 수정합니다,
2. PCM_OP_SDK_GET_FLD_SPECS - 필드 사양을 검색합니다,
3. PCM_OP_SDK_DEL_FLD_SPECS - 필드를 삭제합니다.
필드를 생성하려면 PCM_OP_SDK_SET_FLD_SPECS 옵코드에 대한 입력 플리스트를 작성해야 합니다:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0 0
0 핀_필드 배열 [0]
1 PIN_FLD_DESCR STR [0] "부가가치세 번호 보유를 위한 사용자 지정 필드"
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
1 PIN_FLD_FIELD_NUM ENUM [0] 10000
1 PIN_FLD_FIELD_TYPE INT [0] 5
이제 생성된 필드가 데이터베이스 데이터 사전에 존재하는지 확인하기 위해 다음 입력 플라스트를 PCM_OP_SDK_GET_FLD_SPECS 옵코드에 공급합니다:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/objects 0 0 0
0 핀_필드 배열 [0]
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
사용자 지정 필드 설명 편집
이제 새 사용자 지정 필드가 존재하는지 확인했으면 다음 입력 플리스트를 사용하여 PCM_OP_SDK_SET_FLD_SPECS 옵코드를 호출하여 설명을 변경할 수 있습니다:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0 0
0 핀_필드 배열 [0]
1 PIN_FLD_DESCR STR [0] "사용자 지정 필드 - 부가가치세 번호"
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
1 PIN_FLD_FIELD_NUM ENUM [0] 10000
1 PIN_FLD_FIELD_TYPE INT [0] 5
다시 말하지만, 필드의 사양을 검색하여 변경이 완료되었는지 확인할 수 있습니다.
그런 다음 데이터베이스에서 사용자 지정 필드를 삭제합니다.
마지막으로, 실수가 발생하여 필드를 삭제해야 한다고 가정합니다. PCM_OP_SDK_DEL_FLD_SPECS 옵코드에 다음 입력 플리스트를 제공하고 필드를 삭제합니다:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0 0
0 핀_필드 배열 [0]
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
필드의 사양을 검색하는 연산자가 빈 리스트(POID 객체만)를 반환하면 데이터베이스 데이터 사전에서 필드를 찾을 수 없음을 의미합니다.
BRM에서 사용자 지정 필드를 사용할 수 있도록 설정
표준 관행에 따르면 사용자 지정으로 개발된 모든 항목은 BRM_HOME/custom 디렉터리에 저장되며, 이 경우 BRM_HOME/include/pin_flds.h가 확장되므로 새로운 사용자 지정 헤더 파일 BRM_HOME/custom/include/custom_flds.h를 생성해야 합니다.
이제 custom_flds.h에 다음 줄을 추가하여 새 사용자 정의 필드를 도입할 수 있습니다:
#define C_FLD_VAT_NUMBER PIN_MAKE_FLD(PIN_FLDT_STR, 10000)
위 줄은 "C_FLD_VAT_NUMBER"라는 사용자 지정 필드를 정의합니다(이름 지정 관행에 유의하세요,
데이터 유형이 "PIN_FLDT_STR"(STR은 문자열을 의미)인 BRM 필드의 경우 PIN_*, 사용자 지정 필드의 경우 C_*)입니다.
및 고유 식별자 "10000"(BRM_HOME/include/pin_flds.h와 관련하여)입니다. 데이터 유형은 정적입니다,
실행 중인 BRM 버전에 따라 정의되며, 정의는 BRM_HOME/include/pcm.h를 참조하세요.
그런 다음 이 명령을 사용하여 custom_flds.h에서 parse_custom_ops_fields.pl 펄 스크립트를 실행합니다:
$BRM_HOME/bin/parse_custom_ops_fields.pl -L pcmc -I custom_flds.h -O $BRM_HOME/custom/include/custom_mapping.m
마지막으로, 이러한 필드가 표시되기를 원하는 모든 pin.conf에 다음 줄을 추가합니다: - - ops_fields_extension_file ${BRM_HOME}/custom/include/custom_mapping.m
참고: 사용자 지정 필드를 사용하여 새로운 기능을 도입할 때는 이러한 필드를 사용하는 FM에 custom_flds.h 헤더 파일을 포함해야 합니다.