2016-06-27 3 views
0

В настоящее время я работаю над приложением C# для извлечения данных из Bloomberg через API V3 .NET.Bloomberg desktop API Непосредственное значение поля

К сожалению, я не могу найти решение, когда поле ISIN не введено в Bloomberg.

Позвольте мне объяснить, у меня есть два isin, и мне нужно восстановить информационное поле для каждого из этих двух isin.

поле выглядит следующим образом: MAX_REDEMP_FEE

Это поле имеет значение для первого ISIN, но не второй, потому что значение не установлено в Bloomberg для второго ISIN.

enter image description here

Если я использую расширение Excel из Bloomberg, и я хочу, чтобы получить ту же информацию для этих кодов ISIN у меня есть следующий результат

enter image description here

Это то, что я хотел бы сделать с помощью C# , т. е. если информация отсутствует, автоматически присваивается значение «NA», я использую код ниже, и если поле в извлечении отсутствует, моя программа останавливается, потому что она не может найти значение.

   switch (msg.MessageType.ToString()) 
       { 
        case "ReferenceDataResponse": 

         Element securityDataArray = msg.GetElement("securityData"); 

         for (int index = 0; index < securityDataArray.NumValues; index++) 
         { 
          Element securityData = securityDataArray.GetValueAsElement(index); 
          Element fieldData = securityData.GetElement("fieldData"); 

          double maxRedempFee = fieldData.GetElementAsFloat64("MAX_REDEMP_FEE"); 

          Console.WriteLine(maxRedempFee); 
         } 

Как я могу поместить значение по умолчанию в maxRedempFee, если оно отсутствует?

С уважением.

+0

'if (securityDataArray.NumValues ​​== 0)/* плата недоступна * /'? – assylias

ответ

0

В поле ReferenceDataRequest поле не возвращается, если оно не имеет значения. В этом случае вы можете использовать .HasElement ("MAX_REDEMP_FEE", true); чтобы определить, действительно ли поле присутствует в ответе. Если он возвращает false, вы можете назначить значение NA/NA по вашему выбору; если он возвращает true, то вы используете свой метод .GetElementAs ... как обычно.