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 헤더 파일을 포함해야 합니다.
좋은 정보를 제공해 주셔서 감사합니다.
훌륭한 통찰력에 감사드립니다. 이 특정 틈새 시장에 대해 궁금했습니다. 훌륭한 기사입니다.
훌륭한 게시물입니다.
훌륭한 사이트입니다. 유용한 정보가 많이 있습니다. 친구들에게 보낼 거예요!
블로그를 자주 읽고 있는데, 계속 멋진 일을 하라고 말씀드리고 싶었어요!
이것이 바로 인터넷의 존재 이유입니다. 멋진 게시물입니다.
평소처럼 훌륭한 게시물입니다!
오늘 찾은 정말 멋지고 인상적인 블로그입니다.
감사합니다. 옵코드 커스터마이징에 대한 글을 하나 더 게시할 수 있나요? 언제든지 문의해 주세요...
훌륭 이것은 제가 이 주제에 대해 검색해 본 웹사이트 중 최고의 웹사이트 중 하나입니다.
매우 유용한 정보 ... 다음과 같은 예도 제공 할 수 있습니까?
1. 모든 시간대 및 요금제 구성이 포함된 새 제품을 생성하고 서비스와 연결합니다.
2. 할인 제품을 생성하여 특정 서비스(또는) 서비스 캘린더에 연결한 다음 iScripts에서 이를 사용하여 거부 또는 할인합니다.
3. 새 MTA 코드 작성을 위한 간단한 예제
정말 좋은 블로그입니다. 수고하셨습니다!...
2010년 3월 18일에 작성된 \'Oracle BRM의 사용자 정의 필드\'라는 블로그를 읽고 있습니다.
실제로 매우 유용하지만 몇 가지 질문이 있는데 도와 주셨으면합니다.
현재 저는 Oracle BRM에서 새 필드를 만드는 작업을 하고 있는데, 지금까지는 블로그에서 읽은 지침을 따랐기 때문에 문제가 없습니다.
하지만 XML 인보이스를 내보내려고 할 때 XML 파일에 사용자 지정 필드 태그가 누락되었습니다.
12345로 표시됩니다. 그래서 대신 핀리스트에서 인보이스를 내보내 보았더니 BRM이 이미 내 사용자 지정 필드를 알고 있었습니다.
따라서 잘못된 pin.conf에 \"- - ops_fields_extension_file ${BRM_HOME}/custom/include/custom_mapping.m\"이라는 줄을 추가했다고 생각했습니다.
지금까지 1.${BRM_HOME}/bin/pin.conf 2.${BRM_HOME}/apps/pin_billd/pin.conf 3.${BRM_HOME}/apps/pin_inv/pin.conf 4.${BRM_HOME}/sys/cm/pin.conf에 이 줄을 추가했습니다.
또한 ${BRM_HOME}/bin 및 ${BRM_HOME}/apps/storable_class_to_xml에 Infranet.Property 파일을 추가해 보았습니다.
하지만 이 중 어느 것도 도움이 되지 않아 여러분께 도움이 되길 바라며 이 글을 쓰게 되었습니다.
제가 정말 잘못된 pin.conf에 \'ops_fields_extension_파일\'을 추가한 건가요, 아니면 다른 것을 망친 건가요?
감사합니다
Satya,
다음 Oracle BRM 기사에서는 정확히 어떤 내용을 다루어야 할까요?
잘 부탁드립니다,
Mitja