3196: --
3197: --
3198: -- Ins_actionhist_submit
3199: -- When we start the workflow, if the document status is NOT 'IN PROCESS' or
3200: -- PRE-APPROVED, then insert a SUBMIT action row into PO_ACTION_HISTORY
3201: -- to signal the submission of the document for approval.
3202: -- Also, insert an additional row with a NULL ACTION_CODE (to simulate a
3203: -- forward-to since the DOC status is IN PROCESS. The code in the DOC-MANAGER
3204: -- looks for this row.
3211:
3212: l_doc_id number;
3213: l_doc_type varchar2(25);
3214: l_doc_subtype varchar2(25);
3215: l_note PO_ACTION_HISTORY.note%TYPE;
3216: l_employee_id number;
3217: l_orgid number;
3218:
3219: x_progress varchar2(100);
6297: l_approval_path_id number;
6298:
6299: CURSOR action_hist_cursor(doc_id number , doc_type varchar2) is
6300: select max(sequence_num)
6301: from po_action_history
6302: where object_id= doc_id and
6303: object_type_code = doc_type;
6304:
6305: CURSOR action_hist_code_cursor (doc_id number , doc_type varchar2, seq_num number) is
6303: object_type_code = doc_type;
6304:
6305: CURSOR action_hist_code_cursor (doc_id number , doc_type varchar2, seq_num number) is
6306: select action_code
6307: from po_action_history
6308: where object_id = doc_id and
6309: object_type_code = doc_type and
6310: sequence_num = seq_num;
6311:
6375: x_progress := '006';
6376: IF ((l_sequence_num = 0)
6377: OR
6378: (l_sequence_num > 0 and l_action_code is NOT NULL)) THEN
6379: INSERT into PO_ACTION_HISTORY
6380: (object_id,
6381: object_type_code,
6382: object_sub_type_code,
6383: sequence_num,
6420: '' );
6421:
6422: ELSE
6423: l_sequence_num := l_sequence_num - 1;
6424: UPDATE PO_ACTION_HISTORY
6425: set object_id = p_doc_id,
6426: object_type_code = p_doc_type,
6427: object_sub_type_code = p_doc_subtype,
6428: sequence_num = l_sequence_num,
6449:
6450: END IF;
6451:
6452: -- iProcurement: Approval History changes.
6453: -- Null action code will not be inserted into po_action_history table.
6454:
6455: -- bug4643013
6456: -- Still insert null action during submission except for requisition
6457:
6456: -- Still insert null action during submission except for requisition
6457:
6458: IF (p_doc_type <> 'REQUISITION') THEN
6459:
6460: INSERT into PO_ACTION_HISTORY
6461: (object_id,
6462: object_type_code,
6463: object_sub_type_code,
6464: sequence_num,
9586:
9587: BEGIN
9588: SELECT pah.employee_id, pah.ROWID
9589: INTO l_emp_id, l_rowid
9590: FROM po_action_history pah
9591: WHERE pah.object_id = p_doc_id
9592: AND pah.object_type_code = p_doc_type
9593: AND pah.object_sub_type_code = p_doc_subtype
9594: AND pah.sequence_num = (SELECT Max(sequence_num)
9591: WHERE pah.object_id = p_doc_id
9592: AND pah.object_type_code = p_doc_type
9593: AND pah.object_sub_type_code = p_doc_subtype
9594: AND pah.sequence_num = (SELECT Max(sequence_num)
9595: FROM po_action_history pah1
9596: WHERE pah1.object_id = p_doc_id
9597: AND pah1.object_type_code = p_doc_type
9598: AND pah1.object_sub_type_code = p_doc_subtype)
9599: AND pah.action_code is NULL;
9643:
9644: IF l_rowid IS NOT NULL THEN
9645: -- SQL What : Update the No action in the action history.
9646: -- Sql Why : To maintain the NO ACTION message in approver language.
9647: UPDATE po_action_history pah
9648: SET pah.action_code = p_action,
9649: pah.action_date = SYSDATE,
9650: pah.Note = l_note,
9651: pah.last_updated_by = fnd_global.user_id,
10066: Funcmode IN VARCHAR2,
10067: Resultout OUT NOCOPY VARCHAR2) IS
10068:
10069: L_Doc_Id NUMBER;
10070: L_Doc_Type Po_Action_History.Object_Type_Code%TYPE;
10071: L_Doc_Subtype Po_Action_History.Object_Sub_Type_Code%TYPE;
10072:
10073: BEGIN
10074:
10067: Resultout OUT NOCOPY VARCHAR2) IS
10068:
10069: L_Doc_Id NUMBER;
10070: L_Doc_Type Po_Action_History.Object_Type_Code%TYPE;
10071: L_Doc_Subtype Po_Action_History.Object_Sub_Type_Code%TYPE;
10072:
10073: BEGIN
10074:
10075: L_Doc_Type := Wf_Engine.Getitemattrtext (Itemtype => Itemtype,