kd.bos.servicehelper.devportal

## 类 AppMetaServiceHelper

- java.lang.Object
- - kd.bos.servicehelper.devportal.AppMetaServiceHelper

-     @KSObject
      public class AppMetaServiceHelper
      extends java.lang.Object

  应用元数据服务帮助类

- - ### 构造器概要

    构造器
    构造器和说明
    `AppMetaServiceHelper()`

  - ### 方法概要

    所有方法 静态方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `static java.lang.String` | `buildAppMetadataDiffXml(kd.bos.metadata.devportal.AppMetadata metadata, kd.bos.metadata.devportal.AppMetadata baseMetadata, boolean onlyLocaleValue)` 获取两个AppMetadata的差量化xml数据
    `static boolean` | `cleanAppMetaCache(java.lang.String appId)` 清除应用元数据的缓存，包括设计期和运行期的元数据
    `static java.util.Map<java.lang.String,java.lang.Object>` | `convertAppFunctionPacketElementToDynamicObject(AppFunctionPacketElement appFunctionPacketElement, kd.bos.dataentity.entity.DynamicObject obj)` 将功能分组实体实例中的属性值更新到应用实体实例的属性中。
    `static java.util.Map<java.lang.String,java.lang.Object>` | `convertAppMenuElementToDynamicObject(AppMenuElement appMenuElement, kd.bos.dataentity.entity.DynamicObject obj, kd.bos.metadata.devportal.AppMetadata metadata)` 将应用菜单实例中的属性值更新到应用动态实体实例对象的属性里。
    `static kd.bos.dataentity.entity.DynamicObject` | `convertAppMetadataToDynamicAppObject(kd.bos.metadata.devportal.AppMetadata metadata)` 通过应用元数据，获取应用实体实例对象，只包含应用自身的属性，不包括应用菜单和应用功能分组。
    `static kd.bos.metadata.devportal.AppMetadata` | `convertDynamicObjectsToAppMetadata(kd.bos.dataentity.entity.DynamicObject[] objects)` 根据bos_devportal_bizapp，bos_devportal_menu，bos_devportal_bizunit这三个表中的数据，对应用元数据为空时生成元数据。
    `static java.util.Map<java.lang.String,java.lang.Object>` | `convertDynamicObjectToAppFunctionPacketElement(kd.bos.dataentity.entity.DynamicObject obj, AppFunctionPacketElement appFunctionPacketElement)` 将应用实体实例中的属性值更新到应用功能分组实体实例的属性中。
    `static java.util.Map<java.lang.String,java.lang.Object>` | `convertDynamicObjectToAppMenuElement(kd.bos.dataentity.entity.DynamicObject obj, AppMenuElement appMenuElement)` 将应用实体实例中的属性值更新到应用菜单实例的属性
    `static AppFunctionPacketElement` | `CreateBlankAppFunctionPacketElement()` 创建一个空的应用功能分组对象，只设置了Id
    `static AppMenuElement` | `CreateBlankAppMenuElement()` 创建一个空的应用菜单对象，只设置了Id
    `static kd.bos.metadata.devportal.AppMetadata` | `CreateBlankAppMetadata()` 创建一个空的应用对象，只设置了ModelType和Id
    `static java.util.Map<java.lang.String,java.lang.Object>` | `deleteApp(java.lang.String appId)` 删除应用
    `static void` | `deleteFunctionPacketById(java.lang.String funcId, java.lang.String bizAppId)` 根据功能分组id，删除指定功能分组
    `static void` | `deleteFunctionPacketByNumber(java.lang.String funcNumber, java.lang.String bizAppId)` 根据功能分组编码，删除指定功能分组
    `static void` | `deleteMenuById(java.lang.String menuId, java.lang.String bizAppId)` 根据菜单id，删除指定菜单
    `static void` | `deleteMenuByNumber(java.lang.String menuNumber, java.lang.String bizAppId)` 根据菜单编码，删除指定菜单
    `static java.util.List<java.lang.String>` | `deployAppMetadata(java.lang.String content)` 根据应用元数据内容，安装应用
    `static java.util.List<java.lang.String>` | `deployAppMetadata(java.lang.String content, java.lang.String bizCloudId)` 根据应用元数据内容，安装应用到指定业务云下
    `static kd.bos.metadata.devportal.AppMetadata` | `deserializeFromJSONString(java.lang.String json, kd.bos.metadata.devportal.AppMetadata baseMetadata)` 获取父类的应用元数据对象
    `static java.util.List<kd.bos.metadata.deploy.DeployFile>` | `getAppDeployFile(java.lang.String id)` 根据应用id，获取应用元数据文件
    `static kd.bos.metadata.devportal.AppMetadata` | `getAppMetadata(kd.bos.dataentity.entity.DynamicObject appObject)` 仅设计期使用 根据应用的实体实例对象，获取应用元数据。
    `static java.util.List<kd.bos.metadata.deploy.DeployFile>` | `getCloudDeployFile(java.lang.String cloudId)` 获取业务云的元数据文件内容
    `static java.lang.String` | `getDeveloperInfo()` 获取开发商标志
    `static AppFunctionPacketElement` | `getFunctionPacketById(java.lang.String funcId, java.lang.String bizAppId, boolean runtime)` 获取应用功能分组实体实例对象。
    `static AppFunctionPacketElement` | `getFunctionPacketByNumber(java.lang.String funcNumber, java.lang.String bizAppId, boolean runtime)` 根据功能分组编码，获取应用功能分组实体实例对象。
    `static java.lang.String` | `getIsvByApp(kd.bos.metadata.devportal.AppMetadata metadata)` 根据应用元数据对象，获取当前应用的开发商标识
    `static java.lang.String` | `getIsvByAppId(java.lang.String bizAppId)` 根据应用id，获取当前应用的开发商标识
    `static AppMenuElement` | `getMenuById(java.lang.String menuId, java.lang.String bizAppId, boolean runtime)` 根据菜单id，获取应用菜单实体实例对象。
    `static AppMenuElement` | `getMenuByNumber(java.lang.String menuNumber, java.lang.String bizAppId, boolean runtime)` 根据菜单编码，获取应用菜单实体实例对象。
    `static java.lang.String` | `getSvnUrl()` 通过租户id，获取svnurl
    `static kd.bos.metadata.devportal.AppMetadata` | `loadAppMetadataById(java.lang.String bizAppId)` 通过应用id,读取合并扩展后的运行时元数据
    `static kd.bos.metadata.devportal.AppMetadata` | `loadAppMetadataById(java.lang.String bizAppId, boolean runtime)` 根据bizAppId，加载应用的全部元数据，包括应用自身属性，应用菜单，应用功能分组。
    `static kd.bos.metadata.devportal.AppMetadata` | `loadAppMetadataFromCacheById(java.lang.String bizAppId, boolean runtime)` 根据应用id，从缓存中获取应用元数据。
    `static kd.bos.dataentity.entity.DynamicObject` | `loadDynamicAppObjectById(java.lang.String bizAppId)` 根据bizAppId，获取应用合并扩展后的DynamicObject属性
    `static kd.bos.dataentity.entity.DynamicObject` | `loadDynamicAppObjectById(java.lang.String bizAppId, boolean runtime)` 根据bizAppId，获取应用自身的DynamicObject属性
    `static java.util.Map<java.lang.String,java.lang.Object>` | `parseDiffOperations(java.lang.String diffXml)` 根据差量化元数据xml，解析出扩展的元素。
    `static java.util.Map<java.lang.String,java.lang.Object>` | `save(kd.bos.metadata.devportal.AppMetadata metadata)` 保存应用元数据对象
    `static java.util.Map<java.lang.String,java.lang.Object>` | `save(kd.bos.dataentity.entity.DynamicObject obj)` 根据实体实例对象更新元数据信息
    `static java.util.Map<java.lang.String,java.lang.Object>` | `save(kd.bos.dataentity.entity.DynamicObject obj, java.lang.String bizAppid)` 根据实体实例对象更新元数据信息 对于扩展应用中的菜单，由于obj对象的bizapp值是原厂应用，这里就需要指定当前扩展应用的id
    `static java.util.Map<java.lang.String,java.lang.Object>` | `saveDynamicAppObject(kd.bos.dataentity.entity.DynamicObject appObject)` 根据应用实体实例对象，保存应用元数据
    `static java.lang.String` | `serializeToJSONString(kd.bos.metadata.devportal.AppMetadata metadata, kd.bos.metadata.devportal.AppMetadata baseMetadata)` 获取父类应用元数据差量，结果序列号化为字符串

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### AppMetaServiceHelper

          public AppMetaServiceHelper()

  - ### 方法详细资料

    - #### getDeveloperInfo

          @KSMethod
          public static java.lang.String getDeveloperInfo()

      获取开发商标志

    - #### getSvnUrl

          public static java.lang.String getSvnUrl()

      通过租户id，获取svnurl

    - #### getIsvByApp

          public static java.lang.String getIsvByApp(kd.bos.metadata.devportal.AppMetadata metadata)

      根据应用元数据对象，获取当前应用的开发商标识
      参数:
        `metadata` - 应用元数据

    - #### getIsvByAppId

          public static java.lang.String getIsvByAppId(java.lang.String bizAppId)

      根据应用id，获取当前应用的开发商标识
      参数:
        `bizAppId` - 应用id

    - #### CreateBlankAppMetadata

          public static kd.bos.metadata.devportal.AppMetadata CreateBlankAppMetadata()

      创建一个空的应用对象，只设置了ModelType和Id

    - #### CreateBlankAppMenuElement

          public static AppMenuElement CreateBlankAppMenuElement()

      创建一个空的应用菜单对象，只设置了Id

    - #### CreateBlankAppFunctionPacketElement

          public static AppFunctionPacketElement CreateBlankAppFunctionPacketElement()

      创建一个空的应用功能分组对象，只设置了Id

    - #### convertDynamicObjectsToAppMetadata

          public static kd.bos.metadata.devportal.AppMetadata convertDynamicObjectsToAppMetadata(kd.bos.dataentity.entity.DynamicObject[] objects)

      根据bos_devportal_bizapp，bos_devportal_menu，bos_devportal_bizunit这三个表中的数据，对应用元数据为空时生成元数据。DynamicObject[0]必须是bos_devportal_bizapp对象。
      参数:
        `objects` - 动态实例数组 dynObjArry[0] bos_devportal_bizapp对象 dynObjArry[1..] bos_devportal_menu对象 dynObjArry[...] bos_devportal_bizunit对象

    - #### getAppMetadata

          public static kd.bos.metadata.devportal.AppMetadata getAppMetadata(kd.bos.dataentity.entity.DynamicObject appObject)

      仅设计期使用 根据应用的实体实例对象，获取应用元数据。 如果该应用对应的元数据对象已存在，则更新应用元素信息，如果不存在或id为空，创建新的元数据对象，并更新应用元素信息
      参数:
        `appObject` - 应用的实体实例对象

    - #### convertDynamicObjectToAppMenuElement

          public static java.util.Map<java.lang.String,java.lang.Object> convertDynamicObjectToAppMenuElement(kd.bos.dataentity.entity.DynamicObject obj,
                                                                                                              AppMenuElement appMenuElement)

      将应用实体实例中的属性值更新到应用菜单实例的属性
      参数:
        `obj` - 应用实体实例
        `appMenuElement` - 应用菜单实体实例
      返回:
        返回map对象,key值success为true,表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息

    - #### convertAppMenuElementToDynamicObject

          public static java.util.Map<java.lang.String,java.lang.Object> convertAppMenuElementToDynamicObject(AppMenuElement appMenuElement,
                                                                                                              kd.bos.dataentity.entity.DynamicObject obj,
                                                                                                              kd.bos.metadata.devportal.AppMetadata metadata)

      将应用菜单实例中的属性值更新到应用动态实体实例对象的属性里。
      参数:
        `appMenuElement` - 应用菜单实例
        `obj` - 应用动态实体实例对象
        `metadata` - 可以为null，但是如需返回parent对象的话，不能为空
      返回:
        返回map对象,key值success为true,表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息

    - #### convertDynamicObjectToAppFunctionPacketElement

          public static java.util.Map<java.lang.String,java.lang.Object> convertDynamicObjectToAppFunctionPacketElement(kd.bos.dataentity.entity.DynamicObject obj,
                                                                                                                        AppFunctionPacketElement appFunctionPacketElement)

      将应用实体实例中的属性值更新到应用功能分组实体实例的属性中。
      参数:
        `obj` - 应用实体实例
        `appFunctionPacketElement` - 应用功能分组实体实例
      返回:
        返回map对象,key值success为true,表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息

    - #### convertAppFunctionPacketElementToDynamicObject

          public static java.util.Map<java.lang.String,java.lang.Object> convertAppFunctionPacketElementToDynamicObject(AppFunctionPacketElement appFunctionPacketElement,
                                                                                                                        kd.bos.dataentity.entity.DynamicObject obj)

      将功能分组实体实例中的属性值更新到应用实体实例的属性中。 功能分组中上级功能分组不是F7，而是分开为id和name两个文本框
      参数:
        `appFunctionPacketElement` - 功能分组实体实例
        `obj` - 应用实体实例
      返回:
        返回map对象,key值success为true,表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息

    - #### loadAppMetadataFromCacheById

          @KSMethod
          public static kd.bos.metadata.devportal.AppMetadata loadAppMetadataFromCacheById(java.lang.String bizAppId,
                                                                                                      boolean runtime)

      根据应用id，从缓存中获取应用元数据。如果缓存中没有，则生成应用元数据，并存入缓存
      参数:
        `bizAppId` - 应用id
        `runtime` - boolean值。true，表示运行时的元数据；false,表示设计时的元数据
      返回:
        应用元数据

    - #### loadAppMetadataById

          @KSMethod
          public static kd.bos.metadata.devportal.AppMetadata loadAppMetadataById(java.lang.String bizAppId,
                                                                                             boolean runtime)

      根据bizAppId，加载应用的全部元数据，包括应用自身属性，应用菜单，应用功能分组。 元数据的加载只能逐一加载，无法像查表一样一次返回多个应用数据
      参数:
        `bizAppId` - 应用id
        `runtime` - boolean值，ture表示读取合并扩展后的运行时元数据，false表示读取该应用自身的元数据
      返回:
        应用元数据

    - #### loadAppMetadataById

          @KSMethod
          public static kd.bos.metadata.devportal.AppMetadata loadAppMetadataById(java.lang.String bizAppId)

      通过应用id,读取合并扩展后的运行时元数据
      参数:
        `bizAppId` -

    - #### convertAppMetadataToDynamicAppObject

          public static kd.bos.dataentity.entity.DynamicObject convertAppMetadataToDynamicAppObject(kd.bos.metadata.devportal.AppMetadata metadata)

      通过应用元数据，获取应用实体实例对象，只包含应用自身的属性，不包括应用菜单和应用功能分组。 应用场景：bizAppListPlugin
      参数:
        `metadata` - 应用元数据

    - #### loadDynamicAppObjectById

          @KSMethod
          public static kd.bos.dataentity.entity.DynamicObject loadDynamicAppObjectById(java.lang.String bizAppId,
                                                                                                   boolean runtime)

      根据bizAppId，获取应用自身的DynamicObject属性
      参数:
        `bizAppId` - 应用id
        `runtime` - boolean值，ture表示读取合并扩展后的运行时元数据，false表示读取该应用自身的元数据

    - #### loadDynamicAppObjectById

          @KSMethod
          public static kd.bos.dataentity.entity.DynamicObject loadDynamicAppObjectById(java.lang.String bizAppId)

      根据bizAppId，获取应用合并扩展后的DynamicObject属性
      参数:
        `bizAppId` - 应用id

    - #### buildAppMetadataDiffXml

          public static java.lang.String buildAppMetadataDiffXml(kd.bos.metadata.devportal.AppMetadata metadata,
                                                                 kd.bos.metadata.devportal.AppMetadata baseMetadata,
                                                                 boolean onlyLocaleValue)

      获取两个AppMetadata的差量化xml数据
      参数:
        `metadata` - 应用元数据
        `baseMetadata` - 应用元数据
        `onlyLocaleValue` - boolean值。true表示取得当前语种下的差量化数据，false表示取得3种语种下的多语言信息

    - #### parseDiffOperations

          public static java.util.Map<java.lang.String,java.lang.Object> parseDiffOperations(java.lang.String diffXml)

      根据差量化元数据xml，解析出扩展的元素。 该方法会在加载设计期元数据后，如果是扩展应用，进一步对一个用菜单和功能分组对象的type属性(默认为原厂值：1)赋值。
      参数:
        `diffXml` - 差量化元数据xml
      返回:
        返回map对象,key值为菜单ID或功能分组ID；value值为addNew/edit/remove作为value，来区分出：原厂/扩展/自建

    - #### deleteApp

          public static java.util.Map<java.lang.String,java.lang.Object> deleteApp(java.lang.String appId)

      删除应用
      参数:
        `appId` - 应用id
      返回:
        返回map对象,key值result；value值为success表示删除成功

    - #### save

          public static java.util.Map<java.lang.String,java.lang.Object> save(kd.bos.metadata.devportal.AppMetadata metadata)

      保存应用元数据对象
      参数:
        `metadata` - 应用元数据
      返回:
        返回map对象,key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因

    - #### save

          public static java.util.Map<java.lang.String,java.lang.Object> save(kd.bos.dataentity.entity.DynamicObject obj)

      根据实体实例对象更新元数据信息
      参数:
        `obj` - 实体实例对象，可能是应用、菜单或功能分组
      返回:
        返回map对象,key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因

    - #### save

          public static java.util.Map<java.lang.String,java.lang.Object> save(kd.bos.dataentity.entity.DynamicObject obj,
                                                                              java.lang.String bizAppid)

      根据实体实例对象更新元数据信息 对于扩展应用中的菜单，由于obj对象的bizapp值是原厂应用，这里就需要指定当前扩展应用的id
      参数:
        `obj` - 实体实例对象
        `bizAppid` - 应用id
      返回:
        返回map对象,key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因

    - #### saveDynamicAppObject

          public static java.util.Map<java.lang.String,java.lang.Object> saveDynamicAppObject(kd.bos.dataentity.entity.DynamicObject appObject)

      根据应用实体实例对象，保存应用元数据
      参数:
        `appObject` - 应用实体实例对象
      返回:
        返回map对象,key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因

    - #### getMenuById

          @KSMethod
          public static AppMenuElement getMenuById(java.lang.String menuId,
                                                              java.lang.String bizAppId,
                                                              boolean runtime)

      根据菜单id，获取应用菜单实体实例对象。
      参数:
        `menuId` - 菜单id
        `bizAppId` - 应用id
        `runtime` - boolean值。true，表示运行时的元数据；false,表示设计时的元数据

    - #### getFunctionPacketById

          @KSMethod
          public static AppFunctionPacketElement getFunctionPacketById(java.lang.String funcId,
                                                                                  java.lang.String bizAppId,
                                                                                  boolean runtime)

      获取应用功能分组实体实例对象。
      参数:
        `funcId` - 功能分组id
        `bizAppId` - 应用id
        `runtime` - boolean值。true，表示运行时的元数据；false,表示设计时的元数据

    - #### getMenuByNumber

          @KSMethod
          public static AppMenuElement getMenuByNumber(java.lang.String menuNumber,
                                                                  java.lang.String bizAppId,
                                                                  boolean runtime)

      根据菜单编码，获取应用菜单实体实例对象。
      参数:
        `menuNumber` - 菜单编码
        `bizAppId` - 应用id
        `runtime` - boolean值。true，表示运行时的元数据；false,表示设计时的元数据

    - #### cleanAppMetaCache

          @KSMethod
          public static boolean cleanAppMetaCache(java.lang.String appId)

      清除应用元数据的缓存，包括设计期和运行期的元数据
      参数:
        `appId` - 应用id
        `runtime` - boolean值。true，表示清楚成功

    - #### getFunctionPacketByNumber

          @KSMethod
          public static AppFunctionPacketElement getFunctionPacketByNumber(java.lang.String funcNumber,
                                                                                      java.lang.String bizAppId,
                                                                                      boolean runtime)

      根据功能分组编码，获取应用功能分组实体实例对象。
      参数:
        `funcNumber` - 功能分组编码
        `bizAppId` - 应用id
        `runtime` - boolean值。true，表示运行时的元数据；false,表示设计时的元数据

    - #### deleteMenuById

          @KSMethod
          public static void deleteMenuById(java.lang.String menuId,
                                                       java.lang.String bizAppId)

      根据菜单id，删除指定菜单
      参数:
        `menuId` - 菜单id
        `bizAppId` - 应用id

    - #### deleteMenuByNumber

          @KSMethod
          public static void deleteMenuByNumber(java.lang.String menuNumber,
                                                           java.lang.String bizAppId)

      根据菜单编码，删除指定菜单
      参数:
        `menuNumber` - 菜单编码
        `bizAppId` - 应用id

    - #### deleteFunctionPacketById

          @KSMethod
          public static void deleteFunctionPacketById(java.lang.String funcId,
                                                                 java.lang.String bizAppId)

      根据功能分组id，删除指定功能分组
      参数:
        `funcId` - 功能分组id
        `bizAppId` - 应用id

    - #### deleteFunctionPacketByNumber

          @KSMethod
          public static void deleteFunctionPacketByNumber(java.lang.String funcNumber,
                                                                     java.lang.String bizAppId)

      根据功能分组编码，删除指定功能分组
      参数:
        `funcNumber` - 功能分组编码
        `bizAppId` - 应用id

    - #### serializeToJSONString

          public static java.lang.String serializeToJSONString(kd.bos.metadata.devportal.AppMetadata metadata,
                                                               kd.bos.metadata.devportal.AppMetadata baseMetadata)

      获取父类应用元数据差量，结果序列号化为字符串
      参数:
        `metadata` - 父类应用元数据
        `baseMetadata` - 基类应用元数据

    - #### deserializeFromJSONString

          public static kd.bos.metadata.devportal.AppMetadata deserializeFromJSONString(java.lang.String json,
                                                                                        kd.bos.metadata.devportal.AppMetadata baseMetadata)

      获取父类的应用元数据对象
      参数:
        `json` - 字符串，表示应用元数据差量
        `baseMetadata` - 基类的应用元数据对象

    - #### getCloudDeployFile

          public static java.util.List<kd.bos.metadata.deploy.DeployFile> getCloudDeployFile(java.lang.String cloudId)

      获取业务云的元数据文件内容
      参数:
        `cloudId` - 业务云id

    - #### getAppDeployFile

          public static java.util.List<kd.bos.metadata.deploy.DeployFile> getAppDeployFile(java.lang.String id)

      根据应用id，获取应用元数据文件
      参数:
        `id` - 应用id

    - #### deployAppMetadata

          public static java.util.List<java.lang.String> deployAppMetadata(java.lang.String content)

      根据应用元数据内容，安装应用
      参数:
        `content` - 应用元数据内容
      返回:
        返回当前应用继承路径，应用id的集合

    - #### deployAppMetadata

          public static java.util.List<java.lang.String> deployAppMetadata(java.lang.String content,
                                                                           java.lang.String bizCloudId)

      根据应用元数据内容，安装应用到指定业务云下
      参数:
        `content` - 应用元数据内容
        `bizCloudId` - 业务云id
      返回:
        返回当前应用继承路径，应用id的集合