bluebyte.tistory.com/52 보완문서


PO 를 승인하는 과정중에 Purchasing 문서가 많은 이유로 승인이 진행 되지 않는경우가 있습니다.

 모듈 운영을 하다보면은  (원인을 찾아서 근본적으로 해결하는 것이 최상의 경우겠지만 .)

간헐적으로 발생하는 경우혹은 월 마감 작업때 발생 할 경우에 원인 분석에 그리 많은 시간을 주어지는 경우가 많지 않은듯합니다. 


ORACLE ERP 모듈을 PO/INV 모듈을 운영하면서 개발도하고, 다른 법인 프로젝트 구축도 하고,

Application DBA 역할도 하면서, 서버의 관리도 간혹하는데 원인까지 찾고 있으면 사방에서 날아오는

 문의 사항과 프로그램오류, 인사정보 인터페이스, 권한 부여,서버 상태 이상, 내부 업무등으로 

뭐하는짓인지 까먹을때가 많습니다.


본론으로 들어가서 PO 승인단계에서의 오류는 공식문서에는 아래의 3가지 경우를 알려주고 있습니다.


1. 일시적인 Workflow Error. 새로 생성된 문서에 대해서는 에러가 발생하지 않습니다.

2. PO 승인이 진행중일 때 Purge된 workflow. 이 Item type과 Item key에 대해 Workflow activity가 없습니다.

3. 문서에 존재하는 data corruption. 만약 문서에 수정을 필요로 하는 부정확한 데이터가 있고, 

Worklist에 notification이 없다면, 해당 문서는 Reject 될 수 있습니다.


위의 3가지 경우에는 아무것도 손안대고 표준프로그램만 사용했을때 기준으로는 맞을지 모르겠지만, 

Setup 만으로 100퍼센트 국내 고객요구사항을 맞추기 어렵겠죠.(아마도 그럴거에요;;;)


예외적인 케이스이긴하지만 현재 운영하고 있는 사이트서도 PO 표준 프로그램을 사용지만,

승인처리시에 특정 품목 타입의 경우 예산을 체크 하기위해서 폼퍼스널을 걸기도 하고,

특정 PO 의 경우 전자 결제 승인을 받게 하고자  표준 워크플로우를 뜯어서  전자결제 호출 로직을

 강제로 넣은상태로 운영중입니다.;;;;


모듈운영자에게 어드민계정이 오픈 되어 있다면 워크플로우 스텝별로 재시작도 가능하고 강제로 데이터

 보정도 가능하고, 다이어그램이 있어서 어느부분까지 어떻게 흘러 갔는지 확인이 가능합니다.

어쨌든 PO 에서뿐아니라 워크플로우사용하는 모듈에 대해서 확인은 여러가지 방법이 있습니다.



FND_TOP 아래에 wfstatus.sql 까서 실행시키거나

참고 문서 : 

bde_wf_item.sql - Runtime Data of a Single Workflow Item (문서 ID 187071.1) 


bde_wf_item.sql 사용 하거나 

참고 문서:

How To Diagnose and Troubleshoot Problems In Procurement Workflows Using Scripts (문서 ID 374428.1)


결국엔 필요한 데이터는 WF 로 시작하는 테이블에 내용이 전부 담겨져 있습니다.

(R12 12.1 기준  WF 로 시작하는 테이블  70개 정도)


참고 OBJECT (TABLE,VIEW)


- WF_ACTIVITIES

- WF_ACTIVITIES_VL

- WF_ACTIVITY_ATTR_VALUES

- WF_ITEM_ACTIVITY_STATUSES

- WF_ITEM_ACTIVITY_STATUSES_H

- WF_ITEM_ATTRIBUTE_VALUES 

- WF_ITEM_ATTRIBUTES_VL  

- WF_ITEMS

- WF_LOOKUPS

- WF_NOTIFICATIONS

- WF_PROCESS_ACTIVITIES


워크플로우 상태 확인 및 처리 방법은 나중에 별도로 진행예정인데 글쓰다 보니 내용이 길어 졌네요.


아무튼 이래저래 원인 찾아서 보정시키기 귀찮다 하는 경우에 PO RESET 스크립트가 있습니다.

Patch:9707155 를 조회해보면 3가지 SQL 파일을 확인 할 수 있습니다.


  • poxrespo.sql - to reset Standard, Blanket, Planned and Contract purchase orders 
  • poresrel.sql - to reset Blanket and scheduled releases
  • poresreq.sql - to reset Internal and purchase requisitions


PO 를 기준으로 수행해보면

PO번호, ORG_ID, PO_ACTION_HISTORY 삭제 여부를 입력하고나서 Commit 을 수행하면 됩니다.


  • ORGANIZATION_ID 확인 (제경우 14개 법인이 있네요)
SELECT hou.organization_id,
       hou.short_code,
       hou.set_of_books_id
FROM hr_operating_units hou;

/*

그림및 기타 쿼리등은 추후 보완;;;;;;;;;;;;;

*/



PO RESET SCRIPT 대상 문서

  • Canceled 되지 않은 문서
  • Finally Closed되지 않은 문서
  • ‘IN PROCESS’나 ‘PRE-APPROVED’상태인 문서

기타 추가 확인 사항은 하기 문서를 조회하면 됩니다. 


참고 문서

영문

How To Reset a Purchase Order or Requisition From In Process or Pre-Approved To Incomplete/Requires Reapproval For Isolated Cases (문서 ID 390023.1)


한글

Purchasing 문서를 InProcess나 Pre-Approved에서 Incomplete/Requires Reapproval 상태로 변경하는 방법 (문서 ID 1519399.1)






12-Feb-2012HOWTOPUBLISHED3


ORACLE ERP workflow 사용중 발생한 OBJECT 사용오류


1. 원인

   확인중


2. Workflow내역확인


 $FND_TOP/sql/wfstatus.sql


ORA-04061:

ORA-04065: 

ORA-06508:


3. 조치방안

A. OBJECT Recompile

 조치후에도 동일 오류 발생시 B 실행


B. Shared pool flush

    - Concurrent Manager shutdown

    - alter system flush shared_pool;

    - Package Update or Recompile

    - Concurrent Manager Restart