LoadFromXml(Element: IXmlDomElement);
SaveToXml(Element: Prognoz.Platform.Interop.MsXml2.IXmlDomElement);
Element. Элемент, из которого будут загружены параметры объектов мобильного приложения.
Метод LoadFromXml выполняет загрузку параметров объектов мобильного приложения из XML-файла.
Для выгрузки параметров публикатора в XML-файл используйте метод IMobileApplicationPublicator.SaveToXml.
Пример является процедурой со следующими входными параметрами:
Publicator. Публикатор мобильного приложения;
File. Полное имя XML-файла, содержащего параметры объектов мобильного приложения;
MbObj. Объект, содержащийся в мобильном приложении.
Добавьте ссылки на системные сборки: Metabase, Mobile, Xml.
Sub LoadParams(Publicator: IMobileApplicationPublicator; File: String; MbObj: IMetabaseObject);
Var
MaPubObjs: IMobileApplicationPublishObjects;
XmlDoc: IXmlDomDocument3;
el: IXmlDomElement;
MaPubObj: IMobileApplicationPublishObject;
PublishObject: IMobilePublishObject;
res: MobilePublishObjectResult;
s: String;
Begin
MaPubObjs := Publicator.Items;
// Загружаем параметры объектов мобильного приложения
XmlDoc := New DOMDocument60.Create;
XmlDoc.load(File);
el := XmlDoc.selectSingleNode("Root") As IXmlDomElement;
MaPubObjs.LoadFromXml(el);
// Проверяем, содержится ли указанный объект в мобильном приложении
MaPubObj := MaPubObjs.ItemByKey(MbObj.Key);
If MaPubObj <> Null Then
If MaPubObj.IsValid Then // Объект содержится и доступен для публикации
PublishObject := MaPubObj.PublishObject;
// Задаем путь для сохранения объекта
PublishObject.ExportPath := "C:\" + MbObj.Id + ".zip";
// Указываем версию объекта
PublishObject.Version := "1.0";
// Публикуем объект
res := PublishObject.Publish(Null);
// Сохраняем параметры публикации
XmlDoc := New DOMDocument60.Create;
el := XmlDoc.createElement("Root");
XmlDoc.appendChild(el);
PublishObject.SaveToXml(el);
XmlDoc.save("C:\PublishObject.xml");
// Выводим результаты публикации в окно консоли
s := MbObj.Name + " (" + MbObj.Id + ")";
If res = MobilePublishObjectResult.OK Then
Debug.WriteLine("Публикация объекта '" + s + "' выполнена");
Else
Debug.WriteLine("При публикации объекта '" + s + "' произошла ошибка");
End If;
End If;
// Сохраняем параметры объекта мобильного приложения
XmlDoc := New DOMDocument60.Create;
el := XmlDoc.createElement("Root");
XmlDoc.appendChild(el);
MaPubObj.SaveToXml(el);
XmlDoc.save("C:\" + MbObj.Id + ".xml");
End If;
End Sub LoadParams;
Результат выполнения процедуры: параметры объектов мобильного приложения загружены из файла File. Если объект MbObj содержится в мобильном приложении и доступен для публикации, то он будет опубликован. Результаты публикации выведены в окно консоли. Параметры объекта мобильного приложения и параметры его публикации сохранены в формате XML.
Пример является процедурой со следующими входными параметрами:
Publicator. Публикатор мобильного приложения;
File. Полное имя XML-файла, содержащего параметры объектов мобильного приложения;
MbObj. Объект, содержащийся в мобильном приложении.
Imports Prognoz.Platform.Interop.Mobile;
Imports Prognoz.Platform.Interop.MsXml2;
…
Public Shared Sub LoadParams(Publicator: IMobileApplicationPublicator; File: String; MbObj: IMetabaseObject);
Var
MaPubObjs: IMobileApplicationPublishObjects;
XmlDoc: IXmlDomDocument3;
el: IXmlDomElement;
MaPubObj: IMobileApplicationPublishObject;
PublishObject: IMobilePublishObject;
res: MobilePublishObjectResult;
s: String;
Begin
MaPubObjs := Publicator.Items;
// Загружаем параметры объектов мобильного приложения
XmlDoc := New DOMDocument60.Create();
XmlDoc.load(File);
el := XmlDoc.selectSingleNode("Root") As IXmlDomElement;
MaPubObjs.LoadFromXml(el);
// Проверяем, содержится ли указанный объект в мобильном приложении
MaPubObj := MaPubObjs.ItemByKey[MbObj.Key];
If MaPubObj <> Null Then
If MaPubObj.IsValid Then // Объект содержится и доступен для публикации
PublishObject := MaPubObj.PublishObject;
// Задаем путь для сохранения объекта
PublishObject.ExportPath := "C:\" + MbObj.Id + ".zip";
// Указываем версию объекта
PublishObject.Version := "1.0";
// Публикуем объект
res := PublishObject.Publish(Null);
// Сохраняем параметры публикации
XmlDoc := New DOMDocument60.Create();
el := XmlDoc.createElement("Root");
XmlDoc.appendChild(el);
PublishObject.SaveToXml(el);
XmlDoc.save("C:\PublishObject.xml");
// Выводим результаты публикации в окно консоли
s := MbObj.Name + " (" + MbObj.Id + ")";
If res = MobilePublishObjectResult.mporOK Then
System.Diagnostics.Debug.WriteLine("Публикация объекта '" + s + "' выполнена");
Else
System.Diagnostics.Debug.WriteLine("При публикации объекта '" + s + "' произошла ошибка");
End If;
End If;
// Сохраняем параметры объекта мобильного приложения
XmlDoc := New DOMDocument60.Create();
el := XmlDoc.createElement("Root");
XmlDoc.appendChild(el);
MaPubObj.SaveToXml(el);
XmlDoc.save("C:\" + MbObj.Id + ".xml");
End If;
End Sub LoadParams;
Результат выполнения процедуры: параметры объектов мобильного приложения загружены из файла File. Если объект MbObj содержится в мобильном приложении и доступен для публикации, то он будет опубликован. Результаты публикации выведены в окно консоли. Параметры объекта мобильного приложения и параметры его публикации сохранены в формате XML.
См. также: