お客様の資産保守データテンプレート
お客様の資産保守データテンプレート
- 保全ログに不可欠なデータフィールド
- 標準的なプロセス上の節目と作業指示書のステージ
- Hexagon EAMの技術的な抽出ロジック
設備保全属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ ActivityName | 発生した特定のタスクまたはステータス変更イベント。 | ||
| 説明 この属性は、「作業指示書作成済み」や「資材発行済み」など、実行されているプロセスのステップを示します。これは、ステータス変更の履歴または作業指示書に対してログに記録された特定のトランザクションイベントから派生します。 その重要性 イベントログの順序を定義し、プロセスフローの再構築とボトルネック分析を可能にします。 取得元 Hexagon EAMテーブル R5EVENTHISTORY, フィールド EVH_STATUS(説明にマッピング)または監査ログ 例 作業指示書作成済み作業指示書スケジュール済み作業指示書完了資材発行済み | |||
| ソースシステム SourceSystem | `データ`の`発信元``システム`名です。 | ||
| 説明 この属性は、データの記録システムを示します。このコンテキストでは、潜在的なレガシーデータや外部請負業者システムと区別するために、特定のEAMシステム名にハードコードされています。 その重要性 特に複数の保全インスタンスからデータを統合する際に、データ系列が明確であることを保証します。 取得元 ハードコードされた値 例 Hexagon EAMInfor EAMDatastream 7i | |||
| タイムスタンプ EventTimestamp | アクティビティが発生した日時。 | ||
| 説明 この属性は、イベントまたはステータス変更がシステムにコミットされた正確な瞬間を記録します。これにより、活動間の期間と作業指示書の全体的なサイクルタイムの計算が可能になります。 その重要性 正確なタイムスタンプは、リードタイムの分析、遅延の特定、SLA遵守率の算出に不可欠です。 取得元 Hexagon EAMテーブル R5EVENTHISTORY, フィールド EVH_DATE 例 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| 保全作業指示書 WorkOrderNumber | 保守作業指示書の一意の識別子。 | ||
| 説明 この属性は、保守ケースの一意の主キーを表します。初期要求から計画、実行、最終的な財務決済まで、作業指示書を追跡します。活動ログ、労働時間、および材料消費を結合するための中央ケース識別子として使用されます。 その重要性 保全プロセスの特定のインスタンスを特定し、サイクルタイムとプロセスバリアントのエンドツーエンド追跡を可能にします。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_CODE 例 WO-100234WO-100235WO-100236104592 | |||
| 最終データ更新 LastDataUpdate | レコードが最後に抽出または更新されたタイムスタンプ。 | ||
| 説明 この属性は、データがソースシステムから最後に取得された日時を追跡します。これにより、アナリストはデータの鮮度を理解し、レポートパイプラインにおける潜在的な遅延問題を特定するのに役立ちます。 その重要性 分析の正確性に対する信頼性を提供し、データ同期の問題をデバッグするのに役立ちます。 取得元 抽出時のシステム時刻 例 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| アセット AssetCode | 保守対象の機器または施設の一意の識別子。 | ||
| 説明 この属性は、作業指示書を特定の機器または場所とリンクさせます。これにより、資産ごとの故障頻度分析が可能になり、「問題のある機器」または交換が必要な機器を特定するのに役立ちます。 その重要性 アセット信頼性指標の計算と、保全作業がどこに集中しているかを理解するために不可欠です。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_OBJECT 例 PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| ユーザー UpdatedBy | そのアクティビティを実行したユーザーID。 | ||
| 説明 この属性は、ステータス変更または更新をトリガーした個人のログインIDを捕捉します。チームのワークロード分析、トレーニングニーズの特定、およびプロセスコンプライアンスの監査に使用されます。 その重要性 保全ライフサイクル全体にわたるユーザー行動とリソース利用の分析を可能にします。 取得元 Hexagon EAMテーブル R5EVENTHISTORY, フィールド EVH_USER 例 JSMITHADAVISSYSTEMMGR_USR | |||
| 作業指示書タイプ WorkOrderType | 作業指示書を予防保全、是正保全、または緊急保全に分類します。 | ||
| 説明 この属性は、保守作業の性質を分類します。計画された予防保守と事後的な緊急修理の比率を分析するために使用され、資産の健全性と管理成熟度を示す主要な指標です。 その重要性 予防保全比率分析ダッシュボードをサポートし、事後対応型作業を削減する機会の特定に役立ちます。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_TYPE 例 PPMCOREMGPRJ | |||
| 優先度 PriorityCode | 作業指示書に割り当てられた緊急度レベル。 | ||
| 説明 この属性は、作業指示書の重要度を日常的なものから緊急なものまで示します。リソースのスケジューリングを推進し、SLA遵守の監視と優先度の乱用検出に不可欠です。 その重要性 重要なタスクが正しく優先付けされていることを確認するための「優先度エスカレーションとリソース監査」ダッシュボードに不可欠です。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_PRIORITY 例 クリティカル高中低 | |||
| 実労働時間 ActualLaborHours | 作業指示書に計上された総時間数。 | ||
| 説明 この属性は、技術者が作業指示書に記録した時間の合計です。生産性を測定し、人件費を計算し、見積もり時間との差異を分析するために使用されます。 その重要性 技術者労働生産性ダッシュボードおよび労働時間差異KPIの主要なデータソースです。 取得元 Hexagon EAMテーブル R5BOOKEDHOURS, フィールド BOO_HOURS (作業指示書別に合計) 例 2.54.012.00.5 | |||
| 目標完了日 TargetCompletionDate | 作業指示書のスケジュールされた期限。 | ||
| 説明 この属性は、保守作業が完了する予定の日付を表します。この日付を実際の完了日と比較することは、SLA遵守と期限内パフォーマンスを計算する上で最も重要です。 その重要性 請負業者のSLA遵守モニターおよび計画精度の評価にとって不可欠です。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_TARGET 例 2023-11-012023-11-152023-12-01 | |||
| 部署 MaintenanceDepartment | 作業の実行を担当する部門またはワークセンター。 | ||
| 説明 この属性は、電気、機械、施設など、作業指示書に割り当てられたチームまたは保守工場を識別します。これにより、異なる技術チーム間のパフォーマンスベンチマーキングが可能になります。 その重要性 技術者労働生産性ダッシュボードをサポートし、異なる職種間でリソースを効果的に配分するのに役立ちます。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_MRC 例 電気工場機械保守施設フリートサービス | |||
| SLA状態 SLAState | 作業指示書がサービスレベル契約を満たしたかどうかを示します。 | ||
| 説明 この計算属性は、実際の完了日と目標完了日を比較します。ケースを「SLA内」または「違反」に分類し、請負業者および内部パフォーマンスに関するレポート作成を簡素化します。 その重要性 SLA遵守率KPIの直接のデータソースです。 取得元 計算済み: 実際の終了日 <= 目標日 例 SLA内違反オープン | |||
| アセット重要度 AssetCriticality | アセットの運用上の重要性を示すスコア。 | ||
| 説明 この属性は、資産が事業運営にとってどの程度重要であるかを示します。高優先度の作業指示書が本当に重要度の高い機器に関連しているかを検証するためによく使用され、潜在的なプロセス乱用を浮き彫りにします。 その重要性 優先度とアセット価値を相関させることで、「優先度エスカレーションとリソース監査」ダッシュボードをサポートします。 取得元 Hexagon EAMテーブル R5OBJECTS, フィールド OBJ_CRITICALITY(EVT_OBJECTとの結合が必要) 例 A - 極めて重要B - 重要C - 二次的D - 低 | |||
| 予防保全である IsPreventive | 作業指示書が予防保全であるかどうかを示すフラグ。 | ||
| 説明 このブール値属性により、作業指示書のフィルタリングと分類が容易になります。プロアクティブな作業と事後的な修理を分離することで、予防保守比率KPIの計算を簡素化します。 その重要性 予防保全比率分析ダッシュボードの基本的なセグメンテーションです。 取得元 WorkOrderTypeから派生 例 truefalse | |||
| 作成日 DateCreated | 作業指示書が最初に生成された日付。 | ||
| 説明 この属性は、作業指示書ライフサイクルの始まりを示します。計画平均時間の計算と、バックログ項目の経過日数を決定するためのベースラインとなります。 その重要性 保全計画速度ダッシュボードとバックログ経過時間KPIに必要です。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_CREATED 例 2023-09-012023-09-15 | |||
| 作業指示書の説明 WorkOrderDescription | 保全タスクの短いテキスト要約。 | ||
| 説明 この属性には、問題の件名または短い説明が含まれます。特定の問題のあるケースを深掘りしたり、非構造化テキスト内のパターンを特定したりする際に、アナリストにコンテキストを提供します。 その重要性 プロセスデータの人間によるレビューに必要なコンテキストを提供します。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_DESC 例 ポンプシール漏れ修理月次HVAC点検コンベアベルト交換 | |||
| 品質管理合格 QualityControlPassed | QCステップが文書化されたかどうかを示すフラグ。 | ||
| 説明 このブール値属性は、特定の品質管理活動またはチェックリスト項目が完了としてマークされているかどうかを確認します。これにより、安全規制および内部基準への準拠が保証されます。 その重要性 品質管理遵守率KPIを推進し、コンプライアンスと文書化の整合性ダッシュボードをサポートします。 取得元 チェックリストテーブルまたは活動履歴から派生 例 truefalse | |||
| 実際総費用 TotalActualCost | 作業指示書に記録された総財務コスト。 | ||
| 説明 この属性は、労務費、資材費、サービス費の合計コストを捕捉します。財務決済分析や、緊急保守と予防保守のコスト影響を理解するために不可欠です。 その重要性 財務決済と完了速度ダッシュボード、およびコストベースの意思決定をサポートします。 取得元 Hexagon EAMテーブル R5EVENTS, フィールド EVT_ACTCOST(または同様の集計列) 例 150.002500.5075.25 | |||
| 手戻り IsRework | 作業指示書に技術的な繰り返し作業が含まれていたかどうかを示すフラグ。 | ||
| 説明 この計算属性は、プロセスが品質チェックまたは完了ステータスからアクティブな作業ステータスにループバックするケースを特定します。これにより、品質問題やトレーニングギャップを正確に特定するのに役立ちます。 その重要性 技術的な手戻りおよび品質管理ダッシュボードと保全手戻り率KPIを推進します。 取得元 アクティビティの繰り返しに基づいて計算 例 truefalse | |||
| 緊急エスカレーション EmergencyEscalationFlag | 作成後に優先度が緊急に引き上げられたかどうかを示すフラグ。 | ||
| 説明 このブール値属性は、低い優先度で開始されたが後に緊急事態にアップグレードされた作業指示書を特定します。頻繁に発生する場合、初期のトリアージが不十分であったり、より迅速なサービスを得るためにシステムを不正利用している可能性を示唆します。 その重要性 優先度エスカレーションとリソース監査ダッシュボード、および緊急エスカレーション率KPIをサポートします。 取得元 優先度フィールドの監査履歴から派生 例 truefalse | |||
| 資材要求日 MaterialRequisitionDate | スペアパーツが要求された日付。 | ||
| 説明 この属性は、資材要求が倉庫または購買部門に提出されたタイムスタンプを捕捉します。この日付から「資材発行」までの時間を分析することで、サプライチェーンの効率が明らかになります。 その重要性 スペアパーツ調達リードタイムダッシュボードに必要です。 取得元 Hexagon EAMテーブル R5REQUISITIONS またはリンクされたトランザクションテーブル 例 2023-10-012023-10-05 | |||
設備保全アクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 作業指示書作成済み | システム内の保守作業指示書レコードの初期作成。このイベントはケースを確立し、保守ライフサイクル全体の最初のタイムスタンプを捕捉します。 | ||
| その重要性 プロセスインスタンスの開始を示し、総解決時間の測定のベースラインを設定します。バックログの経過時間の計算に不可欠です。 取得元 Hexagon EAM r5eventsテーブル。evt_codeを持つ新しいレコードが挿入されたときにログ記録されます。 取得 r5eventsでINSERTトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 作業指示書完了 | 技術作業が完了し、技術者が作業を完了としてマークしました。資産は稼働状態に戻されます。 | ||
| その重要性 エンドツーエンドのライフサイクル期間と平均修復時間にとって重要なマイルストーン。ダウンタイムの計測を停止します。 取得元 Hexagon EAM r5statuslog。「C」(完了)または「F」(終了)への移行。 取得 r5statuslogでトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 作業指示書完了 | 作業指示書は財務的にロックされ、アーカイブされました。これ以上コストや労務を計上することはできません。 | ||
| その重要性 プロセス終了。財務決済処理分析と最終コスト確定に不可欠です。 取得元 Hexagon EAM r5statuslog。「C」(完了)または「L」(ロック済み/完了)への移行。 取得 r5statuslogでトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 作業指示書承認済み | 作業指示書が計画および見積もりレビューを通過したことを示すステータス変更。作業の続行が承認されたことを意味します。 | ||
| その重要性 計画フェーズの終了をマークすることで、保守計画速度分析をサポートします。職務分掌コンプライアンスチェック。 取得元 Hexagon EAM r5statuslogテーブル。ステータス「A」(承認済み)またはシステム同等物への移行を探します。 取得 r5statuslogでトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 作業指示書開始済み | 技術者が実際に資産の作業を開始しました。多くの場合、「進行中」へのステータス変更または最初の労働時間入力のタイムスタンプによって示されます。 | ||
| その重要性 バックログ計算の終了点であり、レンチタイムの開始点。SLA遵守率に不可欠です。 取得元 Hexagon EAM r5statuslog。「進行中」(多くの場合ステータスコード「I」または「IP」)への移行。 取得 r5statuslogでトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 記録された労働時間 | 技術者が作業指示書に対して作業時間を記録します。この活動は、ケースごとに複数回発生する可能性があります。 | ||
| その重要性 労働時間差異および技術者労働生産性ダッシュボードの基盤。計画に対する実際の作業量を明らかにします。 取得元 Hexagon EAM r5booklaborテーブル。各行は作業指示書の時間記入項目を表します。 取得 r5booklaborでINSERTトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 資材発行済み | スペアパーツは倉庫から物理的に発行され、作業指示書に計上されます。これは材料消費を表します。 | ||
| その重要性 資材調達リードタイムの終了点。作業は開始されたものの部品不足により停止する遅延を特定します。 取得元 Hexagon EAM r5translinesテーブル。トランザクションタイプ「I」(発行)が作業指示書にリンクされます。 取得 r5translinesでINSERTトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| チェックリスト項目検証済み | 作業指示書内の特定のタスクまたは検査ステップが完了としてマークされます。これは、作業内の詳細な進捗状況を表します。 | ||
| その重要性 コンプライアンスと文書化の整合性に不可欠。安全チェックが体系的に記録されたことを証明します。 取得元 Hexagon EAM r5checklistまたはr5activitiesテーブル。特定の活動/タスクラインアイテムのステータス変更。 取得 r5checklistでUPDATEトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 作業指示書スケジュール済み | 作業指示書には、予定開始日または特定のリソースが割り当てられます。これにより、作業指示書はバックログからアクティブなスケジュールに移動します。 | ||
| その重要性 技術者労働生産性分析およびリソース配分効率の理解に不可欠です。 取得元 Hexagon EAM r5eventsテーブル(evt_schedstart更新)またはr5statuslog(「S」-スケジュール済みへの移行)。 取得 ステータスフィールドの前後比較、またはevt_schedstartの更新を確認 イベントタイプ inferred | |||
| 作業指示書承認済み | 通常、コンプライアンスまたは請負業者への支払いに必要な最終的な管理承認。すべてのデータが正確であることを確認します。 | ||
| その重要性 作業指示書承認サイクルの分析を監視します。ここでの遅延は、財務決済の速度に影響を与えます。 取得元 Hexagon EAM r5statuslog(「承認済み」への移行)または電子署名キャプチャログ。 取得 ステータスフィールドを前後で比較 イベントタイプ inferred | |||
| 優先度更新 | 作業指示書が最初に作成された後、優先度が変更されました。これにより、タイムスタンプと新しい優先度の値が記録されます。 | ||
| その重要性 優先度の乱用やスコープクリープを特定するための「優先度エスカレーションとリソース監査」ダッシュボードに不可欠です。 取得元 Hexagon EAM r5audittrail(監査が有効な場合)またはスナップショットから推測。多くの場合、evt_priorityフィールドの監査ログから派生します。 取得 evt_priorityでUPDATEトランザクションが実行されたときに記録 イベントタイプ explicit | |||
| 品質管理合格 | 監督者または検査官が完了した作業を確認し、品質を承認します。このステップは、完了前の修理を検証します。 | ||
| その重要性 品質管理コンプライアンス率KPIをサポートします。ここからループバックしている場合は技術的な手戻りを示します。 取得元 Hexagon EAM r5statuslog(「レビュー」または「QC」への移行)または特定のUDF検証に関するr5audittrail。 取得 ステータスフィールドを前後で比較 イベントタイプ inferred | |||
| 資材要求作成済み | スペアパーツまたは資材の要求が作業指示書にリンクされます。これにより、サプライチェーンのサブプロセスが開始されます。 | ||
| その重要性 スペアパーツ調達リードタイムの開始点。ここでの高頻度は、在庫可用性への依存を示します。 取得元 Hexagon EAM r5requisitionsテーブル。req_evt(作業指示書コード)を介してリンクされます。 取得 r5requisitionsでINSERTトランザクションが実行されたときに記録 イベントタイプ explicit | |||
抽出ガイド
ステップ
- Advanced Reporting Authoring権限を持つユーザーアカウントでHexagon EAMアプリケーションにログインしてください。
- 通常、「管理」または「レポート」メニューの下にある「レポート」モジュールに移動し、Advanced Reportingインターフェース(多くの場合Cognosまたは組み込みのSQLレポートビルダー)を起動してください。
- 新規レポート作成ウィザードを起動し、データソースタイプとして「SQL」または「Free-hand SQL」を選択してください。これにより、標準のビジネスオブジェクトモデルを使用するのではなく、データベースへの直接クエリが可能になります。
- 以下の「クエリ」セクションに記載されているSQLスクリプトをコピーし、データセット定義ウィンドウに貼り付けてください。
- プレースホルダー値([貴社組織コード]や日付範囲など)を、お客様の環境に関連する特定の値に置き換えてください。
- エディター内でクエリ構文を検証し、データベースプラットフォーム(OracleまたはSQL Server)がUNIONステートメントを受け入れることを確認してください。
- 結果として得られる列をレポートレイアウトリストにマッピングし、WorkOrderNumber、ActivityName、EventTimestampが明確に表示されるようにしてください。
- レポートをCSVまたはExcel形式でエクスポートするように設定し、結合されたセルや書式設定ヘッダーのない表形式構造を確保してください。
- データ構造を検証するため、検証期間(例:過去100件の作業指示書)でレポートを実行してください。
- 検証が完了したら、レポートを定期的に実行するようにスケジュールするか、完全な抽出期間に対して実行してください。
- 出力ファイルをダウンロードし、日付形式を確認してください。正確な順序付けのため、可能であればタイムスタンプに秒が含まれていることを確認してください。
- 結果のCSVファイルをProcessMindにインポートし、SourceSystem列をケース属性として、ActivityNameをアクティビティ分類子としてマッピングしてください。
設定
- 日付範囲: クエリパフォーマンスを維持するため、EVT_DATE(作成日)で過去6〜12ヶ月間の期間に絞り込むことを推奨します。
- 組織フィルター: Hexagon EAMは複数の組織を扱うことが多いため、他部門からのデータ混入を避けるため、特定の組織コードでフィルタリングするようクエリに含めてください。
- データベース構文: 以下のクエリは可能な限りANSI標準SQLを使用していますが、Hexagon EAMは通常OracleまたはSQL Serverで動作します。日付関数(例:SYSDATE対GETDATE)に若干の調整が必要な場合があります。
- ステータス設定: ステータスコード(例:「A」、「C」、「R」)とアクティビティ名(例:「作業指示書承認済み」)のマッピングは、お使いのシステムの特定のステータス設定に合わせる必要があります。
- 権限: レポートを実行するユーザーアカウントには、R5EVENTS、R5EVENTSTATUS、R5BOOKEDHOURS、R5TRANSACTIONS、R5AUDITVALUESテーブルへの読み取りアクセスが必要です。
a クエリ例 config
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' ステップ
- データベース接続の特定: Hexagon EAMのOracleまたはSQL Serverバックエンドデータベースへの読み取りアクセス権限(通常はサービスアカウント)があることを確認してください。
- コアテーブルの特定: R5EVENTS(作業指示書ヘッダー)、R5STATUS(ステータス履歴)、R5BOOKEDHOURS(労働時間)、R5TRANSACTIONS(資材)、R5AUDITVALUES(監査ログ)へのアクセスを確認してください。
- ステータスコードのマッピング: Hexagon EAMでは設定可能なステータスコード(例:A、C、O、R)を使用します。システムの構成(画面:管理 -> コード)を確認し、特定の1または2文字のコードを「承認済み」「スケジュール済み」「開始済み」「完了済み」「QC合格」「署名済み」「クローズ済み」のアクティビティにマッピングしてください。
- クエリの設定: 以下のSQLスクリプトを開き、プレースホルダーのステータスコード(例:「APPR」、「SCHD」、「COMP」)を実際のシステムコードに置き換えてください。
- 日付範囲の設定: EVT_DATEまたはTRN_DATEでフィルタリングするWHERE句を更新し、通常は過去12ヶ月間など特定の期間を選択して、クエリパフォーマンスを確保してください。
- 抽出の実行: SQLクライアント(SQL Developer、SSMS、またはToad)でクエリを実行してください。
- 監査データの検証: 「優先度更新」のアクティビティが0件の場合、EAMシステム設定でR5EVENTSテーブルの監査機能が有効になっているか確認してください。
- チェックリストデータの検証: R5CHECKLISTVALUESが使用しているバージョンに合った正しいテーブルであることを確認してください。古いバージョンでは、タスクレベルの完了にR5ACTIVITIESが使用されている場合があります。
- データのエクスポート: 結果セットをCSVまたはParquetファイルとして保存してください。解析エラーを避けるため、タイムスタンプ列がISO 8601形式(YYYY-MM-DD HH:MM:SS)でフォーマットされていることを確認してください。
- ProcessMindへのインポート: フラットファイルをProcessMindインターフェースにアップロードし、WorkOrderNumberをケースIDに、ActivityNameをアクティビティに、EventTimestampをタイムスタンプにマッピングしてください。
設定
- 期間フィルター: 現在、クエリはすべてのデータを選択しています。基盤となるCTEまたは各SELECTブロックに、WHERE EVT_DATE >= SYSDATE - 365 (Oracle) または GetDate() - 365 (SQL Server) のようなフィルターを追加することを強くお勧めします。
- ステータスコードマッピング: SQL内の文字列リテラル(例:「APPR」、「COMP」、「QC」)は、R5STATUSセットで定義されている実際のコードに置き換える必要があります。
- 監査設定: 「優先度更新」の抽出はR5AUDITVALUESテーブルに依存します。EVT_PRIORITY列の監査がオフになっている場合、この特定のアクティビティは欠落します。
- 組織/テナント: お使いのEAMインスタンスが複数の組織をホストしている場合、データが混在するのを避けるためにEVT_ORGまたはEVT_MRC(部署)のフィルターを追加してください。
- 言語: クエリは標準的な英語の列ヘッダーを想定しています。データベースがローカライズされた列名を使用している場合は、それに応じて調整してください。
a クエリ例 sql
/* 1. Work Order Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
E.EVT_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
E.EVT_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
WHERE E.EVT_TYPE IN ('JOB', 'PPM') -- Filter for Standard and Preventive WOs
UNION ALL
/* 2. Priority Updated (From Audit Log) */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
A.AUD_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
A.AUD_VALUE AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
A.AUD_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5AUDITVALUES A ON E.EVT_CODE = A.AUD_KEY1
WHERE A.AUD_TABLE = 'R5EVENTS'
AND A.AUD_FIELD = 'EVT_PRIORITY'
UNION ALL
/* 3. Work Order Approved */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Approved' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'APPR' -- Replace with your Approved status code
UNION ALL
/* 4. Material Requisition Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
R.REQ_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
R.REQ_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5REQUISITIONS R ON E.EVT_CODE = R.REQ_EVENT
UNION ALL
/* 5. Work Order Scheduled */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Scheduled' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SCHD' -- Replace with your Scheduled status code
UNION ALL
/* 6. Work Order Started */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Started' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS IN ('STRT', 'INPRG') -- Replace with your Started/In Progress status codes
UNION ALL
/* 7. Material Issued */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Issued' AS ActivityName,
T.TRN_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
T.TRN_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5TRANSACTIONS T ON E.EVT_CODE = T.TRN_EVENT
WHERE T.TRN_TYPE = 'ISSUE' -- Indicates material issue from store
UNION ALL
/* 8. Labor Hours Recorded */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
B.BOO_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
B.BOO_PERSON AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
B.BOO_HOURS AS ActualLaborHours
FROM R5EVENTS E
JOIN R5BOOKEDHOURS B ON E.EVT_CODE = B.BOO_EVENT
UNION ALL
/* 9. Checklist Item Verified */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
C.CKV_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
C.CKV_ENTEREDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5CHECKLISTVALUES C ON E.EVT_CODE = C.CKV_EVENT
WHERE C.CKV_COMPLETED = '+' -- Assuming '+' indicates checked/complete
UNION ALL
/* 10. Work Order Completed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Completed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'COMP' -- Replace with your Completed status code
UNION ALL
/* 11. Quality Control Passed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Quality Control Passed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'QC' -- Replace with your QC Passed status code
UNION ALL
/* 12. Work Order Signed Off */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Signed Off' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SIGNOFF' -- Replace with your Sign Off status code
UNION ALL
/* 13. Work Order Closed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Closed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'CLOS' -- Replace with your Closed status code ステップ
- Advanced Reporting Authoring権限を持つユーザーアカウントでHexagon EAMアプリケーションにログインしてください。
- 通常、「管理」または「レポート」メニューの下にある「レポート」モジュールに移動し、Advanced Reportingインターフェース(多くの場合Cognosまたは組み込みのSQLレポートビルダー)を起動してください。
- 新規レポート作成ウィザードを起動し、データソースタイプとして「SQL」または「Free-hand SQL」を選択してください。これにより、標準のビジネスオブジェクトモデルを使用するのではなく、データベースへの直接クエリが可能になります。
- 以下の「クエリ」セクションに記載されているSQLスクリプトをコピーし、データセット定義ウィンドウに貼り付けてください。
- プレースホルダー値([貴社組織コード]や日付範囲など)を、お客様の環境に関連する特定の値に置き換えてください。
- エディター内でクエリ構文を検証し、データベースプラットフォーム(OracleまたはSQL Server)がUNIONステートメントを受け入れることを確認してください。
- 結果として得られる列をレポートレイアウトリストにマッピングし、WorkOrderNumber、ActivityName、EventTimestampが明確に表示されるようにしてください。
- レポートをCSVまたはExcel形式でエクスポートするように設定し、結合されたセルや書式設定ヘッダーのない表形式構造を確保してください。
- データ構造を検証するため、検証期間(例:過去100件の作業指示書)でレポートを実行してください。
- 検証が完了したら、レポートを定期的に実行するようにスケジュールするか、完全な抽出期間に対して実行してください。
- 出力ファイルをダウンロードし、日付形式を確認してください。正確な順序付けのため、可能であればタイムスタンプに秒が含まれていることを確認してください。
- 結果のCSVファイルをProcessMindにインポートし、SourceSystem列をケース属性として、ActivityNameをアクティビティ分類子としてマッピングしてください。
設定
- 日付範囲: クエリパフォーマンスを維持するため、EVT_DATE(作成日)で過去6〜12ヶ月間の期間に絞り込むことを推奨します。
- 組織フィルター: Hexagon EAMは複数の組織を扱うことが多いため、他部門からのデータ混入を避けるため、特定の組織コードでフィルタリングするようクエリに含めてください。
- データベース構文: 以下のクエリは可能な限りANSI標準SQLを使用していますが、Hexagon EAMは通常OracleまたはSQL Serverで動作します。日付関数(例:SYSDATE対GETDATE)に若干の調整が必要な場合があります。
- ステータス設定: ステータスコード(例:「A」、「C」、「R」)とアクティビティ名(例:「作業指示書承認済み」)のマッピングは、お使いのシステムの特定のステータス設定に合わせる必要があります。
- 権限: レポートを実行するユーザーアカウントには、R5EVENTS、R5EVENTSTATUS、R5BOOKEDHOURS、R5TRANSACTIONS、R5AUDITVALUESテーブルへの読み取りアクセスが必要です。
a クエリ例 config
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG'