我在Liferay中创建Organization
使用:
OrganizationLocalServiceUtil.addOrganization (
userId, parentOrganizationId, name,
type, recursable, regionId, countryId,
statusId, comments, false, serviceContext);
以下是我的困惑:
parentOrganizationId
?status
指的是什么?ServiceContext
?答案 0 :(得分:3)
答案简短:There's javadoc
稍长一点:
答案 1 :(得分:2)
答案在于documentation。
从文档中可以看出:
userId
- 组织创建者/所有者的主键
parentOrganizationId
- 组织的上级组织的主要关键词
name
- 组织的名称
type
- 组织的类型
recursable
- 组织的权限是否由其子组织继承
regionId
- 组织区域的主键
countryId
- 组织所在国家/地区的主要关键字
statusId
- 组织的工作流程状态
comments
- 关于组织的评论
site
- 组织是否与主站点相关联
serviceContext
- 组织的服务上下文(可选null)。可以为组织设置资产类别ID,资产标签名称和expando桥接属性。
要在上述文档中添加一些针对您问题的具体信息:
为什么我们需要
parentOrganizationId
?
Liferay具有层次结构组织结构的概念,因此您可以拥有组织级别。
因此,如果您想创建顶级组织,请使用com.liferay.portal.model.OrganizationConstants.DEFAULT_PARENT_ORGANIZATION_ID
来传递
parentOrganizationId
组织状态是指什么?
Liferay对各种资产都有workflow(就像Kaleo工作流程一样)。如果你不想使用它而不是传递[com.liferay.portal.kernel.workflow.WorkflowConstants.STATUS_APPROVED][4]
为什么选择ServiceContext?
您可以按照所述null
传递
基本上,您可以将此类视为不同的一般方法和属性的集合,例如Expando,asset-tags,assets-categories等,它们可以作为单个参数传递,方法是将其包含在ServiceContext对象中,而不是作为单独的参数,并使方法调用繁琐。
这是documentation
以下是一些更好的细节供您更好地理解:Development Guide& Wiki
答案 2 :(得分: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.
如果这不是一个新帐户,我会支持他。