• Takahiro Nihei
  • NEWBIE
  • 5 Points
  • Member since 2023
  • developer
  • Value Plus

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 1
    Likes Given
  • 0
    Questions
  • 1
    Replies
管理パッケージをテスト環境にインストールした際に、項目レベルセキュリティチェックのメソッドにて、
項目名を取得できなくなってしまいました。
        ​Schema.DescribeSObjectResult result = new CustomObject__c().getSObjectType().getDescribe();
        Map<String, Schema.SObjectField> fieldMap = result.fields.getMap();
        Boolean isCreate = fieldMap.get('FieldName').getDescribe().isCreateable();

オブジェクトの設定画面などを見ると、各カスタム項目やカスタムオブジェクトに
「インストール済みパッケージ名」として名前空間プレフィックスが表示されているので、
項目として持っていると判断したのですが、どう取得すれば良いのかわかりません。
 
        //理想
        XXXXX namespace = [select namespacePrefix from XXXXX ];
        ​Schema.DescribeSObjectResult result = new CustomObject__c().getSObjectType().getDescribe();
        Map<String, Schema.SObjectField> fieldMap = result.fields.getMap();
        Boolean isCreate = fieldMap.get(namespace + 'FieldName').getDescribe().isCreateable();

知っている方がいましたら教えていただけると助かります。
よろしくお願いします。
管理パッケージをテスト環境にインストールした際に、項目レベルセキュリティチェックのメソッドにて、
項目名を取得できなくなってしまいました。
        ​Schema.DescribeSObjectResult result = new CustomObject__c().getSObjectType().getDescribe();
        Map<String, Schema.SObjectField> fieldMap = result.fields.getMap();
        Boolean isCreate = fieldMap.get('FieldName').getDescribe().isCreateable();

オブジェクトの設定画面などを見ると、各カスタム項目やカスタムオブジェクトに
「インストール済みパッケージ名」として名前空間プレフィックスが表示されているので、
項目として持っていると判断したのですが、どう取得すれば良いのかわかりません。
 
        //理想
        XXXXX namespace = [select namespacePrefix from XXXXX ];
        ​Schema.DescribeSObjectResult result = new CustomObject__c().getSObjectType().getDescribe();
        Map<String, Schema.SObjectField> fieldMap = result.fields.getMap();
        Boolean isCreate = fieldMap.get(namespace + 'FieldName').getDescribe().isCreateable();

知っている方がいましたら教えていただけると助かります。
よろしくお願いします。