3

我正在Organization使用以下方法在 Liferay 中创建一个:

OrganizationLocalServiceUtil.addOrganization (
                userId, parentOrganizationId, name,
                type, recursable, regionId, countryId,
                statusId, comments, false, serviceContext);

以下是我的困惑:

  1. 为什么我们需要parentOrganizationId
  2. 组织status指的是什么?
  3. 为什么ServiceContext
4

3 回答 3

3

简短的回答:有 javadoc

有点长:

  • 组织具有隐式层次结构 - 因此,如果您创建一个组织,您不妨在层次结构中的预期位置创建它,即 parentOrganizationId。
  • 您可能想尝试 ListTypeConstants.ORGANIZATION_STATUS_DEFAULT 作为您提供的状态
  • 通常,Liferay 将所有者或其他数据与创建的实体一起存储(例如,用于以后的权限检查)。这是可以从 serviceContext 中检索到的数据。
于 2012-12-19T09:04:05.793 回答
2

答案就在这个文档中。

从文档原样:

userId- 组织的创建者/所有者的
parentOrganizationId主键 - 组织的上级组织的主键
name- 组织的名称
type- 组织的类型
recursable- 组织的权限是否由其子组织继承 - 组织
regionId的主键组织区域
countryId- 组织国家的主键
statusId- 组织的工作流状态
comments- 关于组织的评论
site- 组织是否要与主站点关联
serviceContext- 组织的服务上下文(可选为空)。可以为组织设置资产类别 ID、资产标签名称和扩展桥属性。

要在上述文档中添加一些细节以回答您的问题:

为什么我们需要parentOrganizationId

Liferay 有一个层次组织结构的概念,所以你可以有层次的组织。所以如果你想创建顶级组织然后使用com.liferay.portal.model.OrganizationConstants.DEFAULT_PARENT_ORGANIZATION_ID传递 parentOrganizationId

组织状态指的是什么?

Liferay 有各种资产的工作流程(如 Kaleo 工作流程)。如果您不想使用它,请通过 [com.liferay.portal.kernel.workflow.WorkflowConstants.STATUS_APPROVED][4]

为什么选择 ServiceContext?

您可以null按照说明通过。
基本上,您可以将此类视为不同通用方法和属性的集合,例如 Expando、资产标签、资产类别等,它们可以作为单个参数传递,方法是包含在 ServiceContext 对象中,而不是作为单个参数并制作方法调用繁琐。这是文档
这里有一些更多细节让您更好地理解这一点:开发指南维基

于 2012-12-19T09:02:03.870 回答
2

适用于顶级组织的 Liferay 6.2 的工作片段是:

ServiceContext serviceContext = ServiceContextFactory.getInstance(request); //or null
Organization organization = OrganizationServiceUtil.addOrganization(
                OrganizationConstants.DEFAULT_PARENT_ORGANIZATION_ID,
                organizationName,
                OrganizationConstants.TYPE_REGULAR_ORGANIZATION,
                RegionConstants.DEFAULT_REGION_ID,
                CountryConstants.DEFAULT_COUNTRY_ID,
                ListTypeConstants.ORGANIZATION_STATUS_DEFAULT,
                "",
                false,
                serviceContext
        );

之前 Olaf Kock 的评论是正确的,并且使用

WorkflowConstants.STATUS_APPROVED 

对于状态将产生一个

com.liferay.portal.NoSuchListTypeException.

如果这不是一个新帐户,我会支持他。

于 2015-03-17T12:51:13.167 回答