Items: IMobileApplicationPublishObjects;
Items: Prognoz.Platform.Interop.Mobile.IMobileApplicationPublishObjects;
Свойство Items возвращает коллекцию объектов, содержащихся в публикуемом мобильном приложении.
Изменение состава коллекции недоступно.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «OBJ_MA». Добавьте ссылки на системные сборки: Metabase, Mobile, Xml.
Sub UserProc;
Var
mb: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
MaPubObjs: IMobileApplicationPublishObjects;
i, j: Integer;
MaPubObj: IMobileApplicationPublishObject;
Obj: IMetabaseObject;
s: String;
ObjScrs: IMobileApplicationPublishObjectSources;
ObjScr: IMobileApplicationPublishObject;
XmlDoc: IXmlDomDocument3;
el: IXmlDomElement;
Begin
mb := MetabaseClass.Active;
// Получаем мобильное приложение (МП)
Mobile := mb.ItemById("OBJ_MA").Bind As IMobileApplication;
// Создаем публикатор МП
Publicator := Mobile.CreatePublicator;
// Получаем публикуемые объекты
MaPubObjs := Publicator.Items;
// Выводим информацию об объектах
For i := 0 To MaPubObjs.Count - 1 Do
MaPubObj := MaPubObjs.Item(i);
If (MaPubObj.Type = MobilePublishObjectType.AnalyticDashboard)
Or (MaPubObj.Type = MobilePublishObjectType.Analyzer)
Or (MaPubObj.Type = MobilePublishObjectType.Laner) Then
Obj := MaPubObj.PublishObject.Object;
s := Obj.Name + " (" + Obj.Id + ")";
Debug.WriteLine("Объект публикации: " + s);
Debug.Indent;
Debug.WriteLine("- доступен для публикации: " + MaPubObj.IsValid.ToString);
Debug.WriteLine("- ключ: " + MaPubObj.Key.ToString);
Debug.WriteLine("- требуется экспорт: " + MaPubObj.NeedExport.ToString);
// Выводим информацию об источниках данных объекта
ObjScrs := MaPubObjs.Sources(MaPubObj.Key);
If ObjScrs <> Null Then
Debug.WriteLine("- источники данных:");
Debug.Indent;
For j := 0 To ObjScrs.Count - 1 Do
ObjScr := ObjScrs.SourceItem(j);
Obj := ObjScr.PublishObject.Object;
s := Obj.Name + " (" + Obj.Id + ")";
Debug.WriteLine(s);
End For;
Debug.Unindent;
End If;
Debug.Unindent;
End If;
End For;
// Сохраняем параметры публикуемых объектов в XML-файл
XmlDoc := New DOMDocument60.Create;
el := XmlDoc.createElement("Root");
XmlDoc.appendChild(el);
MaPubObjs.SaveToXml(el);
XmlDoc.save("C:\PublishObjects.xml");
End Sub UserProc;
Результат выполнения примера: в окно консоли выведена информация о публикуемых объектах мобильного приложения и об их источниках данных, параметры публикации объектов выгружены в файл «C:\PublishObjects.xml».
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «OBJ_MA».
Imports Prognoz.Platform.Interop.Mobile;
Imports Prognoz.Platform.Interop.MsXml2;
…
[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
MaPubObjs: IMobileApplicationPublishObjects;
i, j: Integer;
MaPubObj: IMobileApplicationPublishObject;
Obj: IMetabaseObject;
s: String;
ObjScrs: IMobileApplicationPublishObjectSources;
ObjScr: IMobileApplicationPublishObject;
XmlDoc: IXmlDomDocument3;
el: IXmlDomElement;
Begin
mb := Params.Metabase;
// Получаем мобильное приложение (МП)
Mobile := mb.ItemById["OBJ_MA"].Bind() As IMobileApplication;
// Создаем публикатор МП
Publicator := Mobile.CreatePublicator();
// Получаем публикуемые объекты
MaPubObjs := Publicator.Items;
// Выводим информацию об объектах
For i := 0 To MaPubObjs.Count - 1 Do
MaPubObj := MaPubObjs.Item[i];
If (MaPubObj.Type = MobilePublishObjectType.mpotAnalyticDashboard)
Or (MaPubObj.Type = MobilePublishObjectType.mpotAnalyzer)
Or (MaPubObj.Type = MobilePublishObjectType.mpotLaner) Then
Obj := MaPubObj.PublishObject.Object;
s := Obj.Name + " (" + Obj.Id + ")";
System.Diagnostics.Debug.WriteLine("Объект публикации: " + s);
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine("- доступен для публикации: " + MaPubObj.IsValid.ToString());
System.Diagnostics.Debug.WriteLine("- ключ: " + MaPubObj.Key.ToString());
System.Diagnostics.Debug.WriteLine("- требуется экспорт: " + MaPubObj.NeedExport.ToString());
// Выводим информацию об источниках данных объекта
ObjScrs := MaPubObjs.Sources[MaPubObj.Key];
If ObjScrs <> Null Then
System.Diagnostics.Debug.WriteLine("- источники данных:");
System.Diagnostics.Debug.Indent();
For j := 0 To ObjScrs.Count - 1 Do
ObjScr := ObjScrs.SourceItem[j];
Obj := ObjScr.PublishObject.Object;
s := Obj.Name + " (" + Obj.Id + ")";
System.Diagnostics.Debug.WriteLine(s);
End For;
System.Diagnostics.Debug.Unindent();
End If;
System.Diagnostics.Debug.Unindent();
End If;
End For;
// Сохраняем параметры публикуемых объектов в XML-файл
XmlDoc := New DOMDocument60.Create();
el := XmlDoc.createElement("Root");
XmlDoc.appendChild(el);
MaPubObjs.SaveToXml(el);
XmlDoc.save("C:\temp\mobile\PublishObjects.xml");
End Sub;
Результат выполнения примера: в окно консоли выведена информация о публикуемых объектах мобильного приложения и об их источниках данных, параметры публикации объектов выгружены в файл «C:\PublishObjects.xml».
См. также:
Код примера