ExtErrorCode: Integer;
ExtErrorCode: integer;
Свойство ExtErrorCode возвращает код сообщения об ошибке при конвертации топоосновы.
Свойство ExtErrorCode конкретизирует ошибку конвертации для пользователя.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «MA_PUB», содержащего экспресс-отчет с картой. Добавьте ссылки на системные сборки: Metabase, Mobile.
Sub UserProc;
Var
mb: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
MaPubObs: IMobileApplicationPublishObjects;
result, i: Integer;
MaPubObj: IMobileApplicationPublishObject;
PubObj: IMobilePublishObject;
EaxPubObj: IMobilePublishAnalyzer;
Begin
mb := MetabaseClass.Active;
// Получаем публикуемое мобильное приложение (МП)
Mobile := mb.ItemById("MA_PUB").Bind As IMobileApplication;
// Создаем публикатор МП
Publicator := Mobile.CreatePublicator;
// Получаем объекты МП
MaPubObs := Publicator.Items;
For i := 0 To MaPubObs.Count - 1 Do
MaPubObj := MaPubObs.Item(i);
If MaPubObj.IsValid Then
PubObj := MaPubObj.PublishObject;
//Ищем экспресс-отчет
If MaPubObj.Type = MobilePublishObjectType.Analyzer Then
EaxPubObj := PubObj As IMobilePublishAnalyzer;
If PubObj.Object.ClassId = MetabaseObjectClass.KE_CLASS_EXPRESSREPORT Then
//Публикуем объект
result := PubObj.Publish(Null);
Debug.WriteLine("Экспресс-отчет: " + PubObj.Object.Name);
Debug.WriteLine("Результат публикации: " + result.ToString);
If result = MobilePublishObjectResult.AnalyzerMapTopobaseError Then
Debug.WriteLine("Ошибка конвертации:" + PubObj.ExtErrorCode.ToString);
Else Debug.WriteLine("Ошибки при конвертации нет");
End If;
End If;
End If;
End If;
End For;
End Sub UserProc;
Результат выполнения примера: в окно консоли выведена информация об ошибке конвертации топоосновы.
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Mobile;
...
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
MaPubObs: IMobileApplicationPublishObjects;
i: Integer;
MaPubObj: IMobileApplicationPublishObject;
PubObj: IMobilePublishObject;
EaxPubObj: IMobilePublishAnalyzer;
result: MobilePublishObjectResult;
Begin
mb := Params.Metabase;
// Получаем мобильное приложение (МП)
Mobile := mb.ItemById["MA_PUB"].Bind() As IMobileApplication;
// Создаем публикатор МП
Publicator := Mobile.CreatePublicator();
// Получаем объекты МП
MaPubObs := Publicator.Items;
For i := 0 To MaPubObs.Count - 1 Do
MaPubObj := MaPubObs.Item[i];
If MaPubObj.IsValid Then
PubObj := MaPubObj.PublishObject;
//Ищем экспресс-отчет
If MaPubObj.Type = MobilePublishObjectType.mpotAnalyzer Then
EaxPubObj := PubObj As IMobilePublishAnalyzer;
If PubObj.Object.ClassId As MetabaseObjectClass = MetabaseObjectClass.KE_CLASS_EXPRESSREPORT Then
//Публикуем объект
result := PubObj.Publish(Null);
System.Diagnostics.Debug.WriteLine("Экспресс-отчет: " + PubObj.Object.Name);
System.Diagnostics.Debug.WriteLine("Результат публикации: " + result.ToString());
If result = MobilePublishObjectResult.mporAnalyzerMapTopobaseError Then
System.Diagnostics.Debug.WriteLine("Ошибка конвертации:" + PubObj.ExtErrorCode.ToString());
Else System.Diagnostics.Debug.WriteLine("Ошибки при конвертации нет");
End If;
End If;
End If;
End If;
End For;
End Sub;
Результат выполнения примера: в окно консоли выведена информация об ошибке конвертации топоосновы.
См. также: