My Oracle Support Banner

イベント・タイプ : テーブルの更新、テーブル名: BOM/製造元、オブジェクト・タイプ:アイテムとしたJava PXを実行しても履歴タブに表示されない (Doc ID 2180161.1)

Last updated on FEBRUARY 19, 2019

適用範囲:

Oracle Agile PLM Framework - バージョン 9.3.5.0 から 9.3.5.0 [リリース 9.3]
この文書の内容はすべてのプラットフォームに適用されます。

現象

実際の動作
イベント・タイプ : テーブルの更新、テーブル名: BOM/製造元、オブジェクト・タイプ:アイテムとしたJava PXのイベント・ハンドラをもつイベントを設定しました。
以下の動作が確認できます。

  1. アイテムオブジェクトの製造元を製造元タブから削除しても、履歴タブにイベントが登録されない
  2. 変更オーダーから対象アイテムタブ BOM または 製造元タブ よりレッドライン取消しを実施しても、アイテムの履歴タブにイベントが登録されない

一方、上記2つのテストケースにおいてJava Clientのイベント・ハンドラ・モニターからはイベントが確認できます。

エラー
stderr.logより以下のエラーメッセージが確認できます :

com.agile.util.exception.CMAppException: Someone is working on this object. Please try again later.
at com.agile.pc.cmserver.base.BaseService.acquireLock(BaseService.java:1104)
at com.agile.pc.cmserver.base.CMLockQueue.addLockedObject(CMLockQueue.java:73)
at com.agile.pc.cmserver.base.TransactionInfo.addRefreshLockedObject(TransactionInfo.java:152)
at com.agile.pc.cmserver.base.TransactionInfo.addRefreshLockedObject(TransactionInfo.java:137)
at com.agile.pc.cmserver.base.BaseServiceHistory.patchItemHistory(BaseServiceHistory.java:1754)
at com.agile.pc.cmserver.base.BaseServiceHistory.appendHistory(BaseServiceHistory.java:449)
at com.agile.pc.cmserver.base.BaseServiceHistory.appendHistory(BaseServiceHistory.java:115)
at com.agile.pc.cmserver.base.BaseServiceHistory.appendHistory(BaseServiceHistory.java:93)
at com.agile.pc.cmserver.base.BaseService.logUserDefinedAction(BaseService.java:10019)
at com.agile.pc.cmserver.base.CMSessionBean.logUserDefinedActionWOVersionChange(CMSessionBean.java:9397)
at com.agile.pc.cmserver.base.CMSessionBean.logUserDefinedActionWOVersionChange(CMSessionBean.java:9361)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke_1(Unknown Source)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:34)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.logUserDefinedActionWOVersionChange(Unknown Source)
at com.agile.api.pc.DataObject$logActionWOVersionChangeAction.doSdkAction(DataObject.java:1080)
at com.agile.api.common.SDKAction.run(SDKAction.java:23)
at com.agile.api.common.Security.doAs(Security.java:59)
at com.agile.api.common.Security.doAs(Security.java:109)
at com.agile.api.pc.DataObject.logActionWOVersionChange(DataObject.java:537)
at com.agile.px.Extensions2.logResult(Extensions2.java:575)
at com.agile.px.Extensions2.logResult(Extensions2.java:592)
at com.agile.px.Extensions2.invokeAction(Extensions2.java:265)
at com.agile.px.PxSessionBean.invokeAction(PxSessionBean.java:119)
at com.agile.px.com_agile_px_PxSession_l8vd22_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:34)
at com.agile.px.com_agile_px_PxSession_l8vd22_EOImpl.invokeAction(Unknown Source)
at com.agile.soa.event.handler.PXInitiator.invoke(PXInitiator.java:102)
at com.agile.soa.event.handler.PXInitiator.invoke(PXInitiator.java:64)
at com.agile.soa.event.eventmgr.EventMgr.invokeEventHandlers(EventMgr.java:258)
at com.agile.soa.event.eventmgr.EventMgrSessionBean.sendEvent(EventMgrSessionBean.java:119)
at com.agile.soa.event.eventmgr.EventMgrSessionBean_naafhr_EOImpl.__WL_invoke_1(Unknown Source)
at com.agile.soa.event.eventmgr.EventMgrSessionBean_naafhr_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:34)
at com.agile.soa.event.eventmgr.EventMgrSessionBean_naafhr_EOImpl.sendEvent(Unknown Source)
at com.agile.soa.event.eventmgr.EventUtil.sendEvent(EventUtil.java:74)
at com.agile.soa.event.eventmgr.EventUtil.sendEvent(EventUtil.java:100)
at com.agile.soa.event.eventmgr.EventUtil.sendUpdateTableEvent(EventUtil.java:500)
at com.agile.soa.event.eventmgr.EventUtil.sendUpdateTableEvent(EventUtil.java:475)
at com.agile.pc.cmserver.base.CMSessionBean.doBulkTableEditing(CMSessionBean.java:12421)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke_3(Unknown Source)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke_2(Unknown Source)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke_1(Unknown Source)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:34)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.doBulkTableEditing(Unknown Source)
at com.agile.pc.cmserver.base.CMSessionBean.bulkTableEditing(CMSessionBean.java:12286)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke_3(Unknown Source)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke_2(Unknown Source)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke_1(Unknown Source)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:34)
at com.agile.pc.cmserver.item.ItemSessionBean_v9sfth_EOImpl.bulkTableEditing(Unknown Source)
at com.agile.ipa.pc.CMObjectBase.bulkTableEditing(CMObjectBase.java:5437)
at com.agile.ui.pcm.common.model.AbstractDataModel.bulkTableEditing(AbstractDataModel.java:662)
at com.agile.ui.pcm.change.RedLineDataModel.undoRedLines(RedLineDataModel.java:257)
at com.agile.ui.pcm.change.ChangeHandler.undoRedLines(ChangeHandler.java:3713)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.agile.ui.web.action.ActionServlet.invokeMethod(ActionServlet.java:1073)
at com.agile.ui.web.action.ActionServlet.handleRequest(ActionServlet.java:677)
at com.agile.ui.web.action.ActionServlet.doPost(ActionServlet.java:309)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:751)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at com.agile.ui.pcm.common.filter.RemoteFSRequestFilter.doFilter(RemoteFSRequestFilter.java:139)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at com.agile.ui.web.filter.LoggingFilter.doFilter(LoggingFilter.java:108)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at com.agile.ui.pcm.common.filter.WebClientLog.doFilter(WebClientLog.java:78)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at com.agile.ui.pcm.common.filter.SSOTicketFilter.doFilter(SSOTicketFilter.java:89)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at com.agile.ui.pcm.common.filter.WebSecurityFilter.doFilter(WebSecurityFilter.java:187)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at com.planetj.servlet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:293)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:137)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:220)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)


期待される動作
イベント・タイプ : テーブルの更新、テーブル名: BOM/製造元、オブジェクト・タイプ:アイテムとしたJava PXのイベント・ハンドラをもつイベントを設定すると以下の動作となります。

  1. アイテムオブジェクトの製造元を製造元タブから削除すると、履歴タブにイベントが登録される
  2. 変更オーダーから対象アイテムタブ BOM または 製造元タブ よりレッドライン取消しを実施すると、アイテムの履歴タブにイベントが登録される

手順

  1. 以下のjavaコードを含むサンプルjarファイルをAGILE_HOME/integration/sdk/extensions に設置します
      

  2. イベントを設定

    イベント・タイプ : テーブルの更新
    名前 : Item-UpdateBOMTable
    オブジェクト・タイプ : アイテム
    テーブル名 : BOM

    イベント・タイプ : テーブルの更新
    名前 : Item-UpdateManufacturesTable
    オブジェクト・タイプ  : アイテム
    テーブル名 : 製造元

  3. イベント・ハンドラ

    ハンドラ・タイプ : Java PX
    名前 : DirtyRowActionChecker
    イベント・アクション : sample.event.DirtyRowActionChecker

  4. イベント確認通知受信者

    名前 : Item-UpdateBOMTable
    イベント : Item-UpdateBOMTable
    イベント・ハンドラ  : DirtyRowActionChecker
    トリガー・タイプ : 事前
    実行モード : 同期
    順序: 0
    エラー処理ルール : 続行

    名前 : Item-UpdateManufacturersTable
    イベント : Item-UpdateManufacturersTable
    イベント・ハンドラ  : DirtyRowActionChecker
    トリガー・タイプ : 事前
    実行モード : 同期
    順序: 0
    エラー処理ルール : 続行

  5. Web Clientにログイン
  6. 部品オブジェクトP0001 の製造元タブに移動
  7. 製造元を削除
  8. 履歴タブに移動。イベントは確認できません。
  9. 変更 C00001を作成
  10. 対象タイプタブにP0001を追加しBOMタブに新しい部品P0002をレッドラインとして追加
  11. P0001の履歴タブに戻り、イベントが期待通り登録されたことを確認
  12. C00001に戻り対象アイテムタブにてP0001のレコードを押下
  13. BOMタブにてレッドライン取消しボタンを押下
  14. P0001履歴タブに移動。イベントは確認できません。
  15. C00001に戻り対象アイテムタブのP0001レコードを押下
  16. 製造元タブに移動し製造元を追加
  17. P0001履歴タブに移動。イベントが期待通り登録されたことを確認
  18. C00001に戻りり対象アイテムタブのP0001レコードを押下
  19. 製造元タブに移動し製造元レコードに対してレッドライン取消しボタンを押下
  20. P0001履歴タブに移動。イベントは確認できません。

 

原因

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


本書の内容
現象
原因
解決策
参照情報

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.