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- 組織のサービス コンテキスト (オプションで null)。組織のアセット カテゴリ ID、アセット タグ名、expando ブリッジ属性を設定できます。

上記のドキュメントに、質問に応じていくつかの詳細を追加するには:

なぜ必要なの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、asset-tags、asset-categories などのさまざまな一般的なメソッドと属性のコレクションと考えることができます。これらは、個々の引数としてではなく、ServiceContext オブジェクトに囲まれて単一の引数として渡すことができます。メソッド呼び出しが面倒。ここにドキュメントがあります。
これをよりよく理解するための詳細を次に示します:開発ガイド& Wiki .

于 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
        );

以前のオラフ・コックのコメントは正しく、

WorkflowConstants.STATUS_APPROVED 

ステータスは

com.liferay.portal.NoSuchListTypeException.

これが新しいアカウントではない場合、私は彼に賛成票を投じます。

于 2015-03-17T12:51:13.167 に答える