IMobilePublishObject.ExtErrorCode

Синтаксис Fore

ExtErrorCode: Integer;

Синтаксис Fore.NET

ExtErrorCode: integer;

Описание

Свойство ExtErrorCode возвращает код сообщения об ошибке при конвертации топоосновы.

Комментарии

Свойство ExtErrorCode конкретизирует ошибку конвертации для пользователя.

Пример Fore

Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «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;

Результат выполнения примера: в окно консоли выведена информация об ошибке конвертации топоосновы.

Пример Fore.NET

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;

Результат выполнения примера: в окно консоли выведена информация об ошибке конвертации топоосновы.

См. также:

IMobilePublishObject