Возврат отмененного контракта

Sherzod Mutalov
Дата: 25.09.2013 08:20:24
Вопрос:
Как в Oracle eBS 11i возвратить отмененный контракт (который ранее был утвержден).

Как возникла проблема: Сотруднику, который занимается контрактами, потребовалось отменить некоторые строки в контракте (но не сам контракт). В итоге он "ошибочно" отменил весь ЗП (предварительно мы дали ему инструкцию по удалению строк, но халатность...).

Поиск в гугле выдал одну полезную ссылку, но там не вполне понятно как решается проблема (запрос не до конца):

http://oracle.ittoolbox.com/groups/technical-functional/oracle-apps-l/data-fix-to-undo-po-cancel-3938062#M3952053

Проблему требуется решить в срочном порядке :)
Да, к металинку нет доступа. Версия OeBS 11.5.7
Sherzod Mutalov
Дата: 25.09.2013 11:07:38
Примерно под нашу системку скрипт подвел, проверим в воскресение
-- po_headers_all

SELECT *
FROM po.po_headers_all pha
WHERE pha.po_header_id = :hdr_id;

UPDATE po.po_headers_all pha
SET pha.REVISION_NUM = 0
	, pha.REVISED_DATE = NULL
	, pha.CLOSED_DATE = NULL
	, pha.CANCEL_FLAG = 'N'
	, pha.CLOSED_CODE = NULL	-- CLOSED_CODE = 'OPEN'
WHERE pha.po_header_id = :hdr_id;

-- po_lines_all

SELECT *
FROM po.po_lines_all pla
WHERE pla.po_header_id = :hdr_id;

UPDATE po.po_lines_all pla
SET pla.CLOSED_DATE = NULL
	, pla.CANCEL_FLAG = 'N'
	, pla.CANCELED_BY = NULL
	, pla.CANCEL_REASON = NULL
	, pla.CANCEL_DATE = NULL
	, pla.CLOSED_CODE = NULL	-- CLOSED_CODE = 'OPEN'
	, pla.CLOSED_REASON = NULL
	, pla.CLOSED_BY = NULL
WHERE pla.po_header_id = :hdr_id;

-- po_line_locations_all

SELECT *
FROM po.po_line_locations_all plla
WHERE plla.po_header_id = :hdr_id;

UPDATE po.po_line_locations_all plla
SET plla.CLOSED_DATE = NULL
	, plla.CANCEL_FLAG = 'N'
	, plla.CLOSED_CODE = 'OPEN'
	, plla.CANCEL_REASON = NULL
	, plla.CLOSED_REASON = NULL
	, plla.CLOSED_BY = NULL
	, plla.CANCELED_BY = NULL
	, plla.CANCEL_DATE = NULL
	, plla.QUANTITY_CANCELED = 0
	, plla.QUANTITY_RECEIVED = 0
	, plla.QUANTITY_BILLED = 0
WHERE plla.po_header_id = :hdr_id;