GetLastPublishResult: IMobileApplicationPublicatorErrorObject;
GetLastPublishResult: Prognoz.Platform.Interop.Mobile.IMobileApplicationPublicatorErrorObject;
Метод GetLastPublishResult возвращает объект, содержащий информацию о результате публикации мобильного приложения.
Для определения, произойдет ли остановка публикации мобильного приложения при возникновении любой ошибки, используйте IMobileApplicationPublicator.GetLastPublishResult.
Для выполнения примера в репозитории необходимо наличие контейнера мобильного приложения с идентификатором «MA_PUB_ADHOC». Контейнер мобильного приложения содержит аналитическую панель. Аналитическая панель имеет ключ «19869».
Добавьте ссылки на системные сборки: Metabase, Mobile.
Sub UserProc;
Var
MB: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
PubObjs: IMobileApplicationPublishObjects;
PubObj: IMobileApplicationPublishObject;
PObj: IMobilePublishObject;
Res: MobilePublishObjectResult;
LastPubResult: IMobileApplicationPublicatorErrorObject;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим мобильное приложение
Mobile := MB.ItemById("MA_PUB_ADHOC").Bind As IMobileApplication;
// Создадим публикатор мобильного приложения
Publicator := Mobile.CreatePublicator;
// Отменим публикацию при первой ошибке
Publicator.BreakOnError := True;
// Получим коллекцию публикуемых объектов
PubObjs := Publicator.Items;
// Получим публикуемую аналитическую панель по ключу
PubObj := PubObjs.ItemByKey(19869);
PObj := PubObj.PublishObject;
// Зададим путь публикации
PObj.ExportPath := "C:\" + PObj.Object.Id + ".zip";
// Публикуем аналитическую панель
Res := PObj.Publish;
// Выведем результат в окно консоли
If (Res As Integer) = 0 Then Debug.WriteLine("Публикация выполнена успешно!");
Debug.WriteLine("Путь публикации: " + PObj.ExportPath);
Else
Debug.WriteLine("При публикации возникла ошибка!");
End If;
If PObj.PublishWarnings <> 0 Then
Debug.WriteLine("Предупреждение:");
Debug.WriteLine(PObj.GetPublishWarningsText(PObj.PublishWarnings)[0]);
End If;
// Получим объект, содержащий последний результат публикации
LastPubResult := Publicator.GetLastPublishResult;
// Выведем в окно консоли последний результат публикации
Debug.WriteLine("Наименование проблемного объекта - " + LastPubResult.ObjectName);
Debug.WriteLine("Код результата публикации мобильного приложения - " + LastPubResult.Result.ToString);
End Sub UserProc;
После выполнения примера будет произведена публикация аналитической панели в указанный формат по заданному пути. В окно консоли будет выведен:
результат выполнения публикации;
наименование проблемного объекта, по вине которого произошла ошибка публикации и код результата выполнения.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Mobile;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
PubObjs: IMobileApplicationPublishObjects;
PubObj: IMobileApplicationPublishObject;
PObj: IMobilePublishObject;
Res: MobilePublishObjectResult;
LastPubResult: IMobileApplicationPublicatorErrorObject;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим мобильное приложение
Mobile := MB.ItemById["MA_PUB_ADHOC"].Bind() As IMobileApplication;
// Создадим публикатор мобильного приложения
Publicator := Mobile.CreatePublicator();
// Отменим публикацию при первой ошибке
Publicator.BreakOnError := True;
// Получим коллекцию публикуемых объектов
PubObjs := Publicator.Items;
// Получим публикуемую аналитическую панель по ключу
PubObj := PubObjs.ItemByKey[19869];
PObj := PubObj.PublishObject;
// Зададим путь публикации
PObj.ExportPath := "C:\" + PObj.Object.Id + ".zip";
// Публикуем аналитическую панель
Res := PObj.Publish(Null);
// Выведем результат в окно консоли
If (Res As Integer) = 0 Then System.Diagnostics.Debug.WriteLine("Публикация выполнена успешно!");
System.Diagnostics.Debug.WriteLine("Путь публикации: " + PObj.ExportPath);
Else
System.Diagnostics.Debug.WriteLine("При публикации возникла ошибка!");
End If;
If PObj.PublishWarnings <> 0 Then
System.Diagnostics.Debug.WriteLine("Предупреждение:");
System.Diagnostics.Debug.WriteLine(PObj.GetPublishWarningsText(PObj.PublishWarnings).GetValue(0).GetValue(0));
End If;
// Получим объект, содержащий последний результат публикации
LastPubResult := Publicator.GetLastPublishResult();
// Выведем в окно консоли последний результат публикации
System.Diagnostics.Debug.WriteLine("Наименование проблемного объекта - " + LastPubResult.ObjectName);
System.Diagnostics.Debug.WriteLine("Код результата публикации мобильного приложения - " + LastPubResult.Result.ToString());
End Sub;
См. также: