Как разрешить MetadataAPI, дающую ошибку «System.CalloutException: IO Exception: Read timed out» при установке для recordType значения поля поиска

Я использую API метаданных для добавления значения списка выбора ('custom') в поле. У меня есть созданный тип записи (AAM_T), который должен быть связан со значением, которое я добавил в список выбора, но как при запуске: service.updateMetadata (new MetadataService.Metadata [] {recordType}); вызывает ошибку System.CalloutException: IO Exception: Read timed out.

MetadataService.PickListValue objPickListValue = new MetadataService.PickListValue();
objPickListValue.fullName = 'custom';
objPickListValue.default_x = false;

MetadataService.RecordType recordType = (MetadataService.RecordType) 
                                        service.readMetadata('RecordType',
                                        new String[] { 'Account.AAM_T'}).getRecords()[0];

MetadataService.RecordTypePicklistValue[] recordPickListType =  recordType.picklistValues;

if(recordPickListType.size() > 0){
   for(MetadataService.RecordTypePicklistValue rpk : recordPickListType) {
       if(rpk.picklist == picklistToUpdate){
            rpk.values.add(objPickListValue);
            break;
       }
    }

    try{
         service.updateMetadata( new MetadataService.Metadata[] { recordType });
       } catch(Exception ex){
          system.debug('@@@getStackTraceString : '+ex.getStackTraceString());
          //Result: System.CalloutException: IO Exception: Read timed out -- null
          system.debug('@@@getMessage : '+ex.getTypeName() 
                       + ': ' + ex.getMessage() + ' -- ' + ex.getCause());

        }

  }

person Kartik Sharma    schedule 12.08.2019    source источник
comment
Тайм-ауты - это нормально, если ваше развертывание должно запускать модульные тесты или запускать сложные изменения общего доступа, например. 1) Вы проверили, что все прошло нормально / не удалось в самой организации? В настройке - ›статус развертывания? 2) Вы знаете, что должны получить идентификатор развертывания, а затем продолжить опрос результатов, продолжая спрашивать checkDeployStatus (developer.salesforce.com/docs/atlas.en-us.api_meta.meta/).   -  person eyescream    schedule 12.08.2019
comment
Если я не ошибаюсь, статус развертывания связан с вызовами на основе файлов, поскольку я обновляю только тип записи, для которого не требуются вызовы на основе файлов. Я последовал последнему примеру Ом Пракаша (success.salesforce.com/answers?id=9063A000000pi0bQAA), но поскольку мой тип записи имеет несколько списков выбора для редактирования, которые могут быть ограничение времени ожидания ответа от API метаданных для Salesforce 160 сек.   -  person Kartik Sharma    schedule 13.08.2019


Ответы (1)


Вы можете попробовать это, как и любой другой веб-сервис. работал со мной

MetadataService.MetadataPort service = новый MetadataService.MetadataPort ();

service.timeout_x = 120000;

person Ram Manohar    schedule 14.04.2021