DBA Data[Home] [Help]

PACKAGE BODY: APPS.WMA_RESOURCE

Source


1 PACKAGE BODY wma_resource AS
2 /* $Header: wmapresb.pls 115.2 2002/11/13 03:08:09 kboonyap noship $ */
3 
4   /**
5    * This procedure is the entry point into the Resource Transaction
6    * processing code for background processing.
7    * Parameters:
8    *   parameters  ResParams contains values from the mobile form.
9    *   status      Indicates success (0), failure (-1).
10    *   errMessage  The error or warning message, if any.
11    */
12   PROCEDURE process(parameters  IN        ResParams,
13                     status     OUT NOCOPY NUMBER,
14                     errMessage OUT NOCOPY VARCHAR2) IS
15     error VARCHAR2(241);                        -- error message
16     resRecord ResTxnRec;                        -- record to populate and insert
17   BEGIN
18     status := 0;
19 
20     -- derive and validate all necessary fields for insertion
21     if (derive(resRecord, parameters, error) = FALSE) then
22       -- process error
23       status := -1;
24       errMessage := error;
25       return;
26     end if;
27 
28     -- insert into the interface table for background processing
29     if (put(resRecord, error) = FALSE) then
30       -- process error
31       status := -1;
32       errMessage := error;
33       return;
34     end if;
35 
36   EXCEPTION
37     when others then
38       status := -1;
39       fnd_message.set_name ('WMA', 'GENERIC_ERROR');
40       fnd_message.set_token ('FUNCTION', 'wma_resource.process');
41       fnd_message.set_token ('ERROR', SQLCODE || ' ' || SQLERRM);
42       errMessage := fnd_message.get;
43 
44   END process;
45 
46 
47   /**
48    * This function derives and validates the values necessary for executing a
49    * resource transaction. Given the form parameters, it populates
50    * resRecord preparing it to be inserted into the interface table.
51    * Parameters:
52    *   resRecord  record to be populated. The minimum number of fields to
53    *              execute the transaction successfully are populated
54    *   parameters resource transaction mobile form parameters
55    *   errMessage populated if an error occurrs
56    * Return:
57    *   boolean    flag indicating the successful derivation of necessary values
58    */
59   Function derive(resRecord  IN OUT NOCOPY ResTxnRec,
60                   parameters     IN ResParams,
61                   errMessage IN OUT NOCOPY VARCHAR2)
62   return boolean IS
63 
64   BEGIN
65     /**
66      * populate required fields in the resource record. If the fields specify
67      * a resource not defined in the operation, the Cost Manager associates
68      * this new resource to the operation, then charges the resource
69      */
70     resRecord.row.created_by_name := parameters.environment.userName;
71     resRecord.row.creation_date := sysdate;
72     resRecord.row.last_update_date := sysdate;
73     resRecord.row.last_updated_by_name := parameters.environment.userName;
74     resRecord.row.operation_seq_num := parameters.opSeq;
75     resRecord.row.organization_code := parameters.environment.orgCode;
76     resRecord.row.organization_id := parameters.environment.orgID;
77     resRecord.row.process_phase := WIP_CONSTANTS.RES_VAL;
78     resRecord.row.process_status := WIP_CONSTANTS.PENDING;
79     resRecord.row.resource_code := parameters.resourceName;
80     resRecord.row.resource_seq_num := parameters.resourceSeq;
81     resRecord.row.source_code := WMA_COMMON.SOURCE_CODE;
82     resRecord.row.transaction_date := sysdate;
83     resRecord.row.transaction_quantity := parameters.transactionQty;
84     resRecord.row.transaction_type := WIP_CONSTANTS.RES_TXN;
85     resRecord.row.transaction_uom := parameters.transactionUOM;
86     resRecord.row.entity_type := WIP_CONSTANTS.DISCRETE;
87     resRecord.row.wip_entity_id := parameters.wipEntityID;
88     resRecord.row.wip_entity_name := parameters.wipEntityName;
89 
90     return true;
91 
92   EXCEPTION
93     when others then
94       fnd_message.set_name ('WMA', 'GENERIC_ERROR');
95       fnd_message.set_token ('FUNCTION', 'wma_resource.derive');
96       fnd_message.set_token ('ERROR', SQLCODE || ' ' || SQLERRM);
97       errMessage := fnd_message.get;
98       return false;
99   END derive;
100 
101 
102   /**
103    * Inserts a populated ResTxnRec record into WIP_COST_TXN_INTERFACE
104    * Parameters:
105    *   resRecord  The ResTxnRec representing the row to be inserted.
106    *   errMessage populated if an error occurrs
107    * Return:
108    *   boolean    A flag indicating whether table update was successful or not.
109    */
110   Function put(resRecord      IN        ResTxnRec,
111                errMessage IN OUT NOCOPY VARCHAR2) RETURN boolean IS
112 
113   BEGIN
114 
115     insert into wip_cost_txn_interface
116            (created_by_name,
117             creation_date,
118             last_update_date,
119             last_updated_by_name,
120             operation_seq_num,
121             organization_code,
122             organization_id,
123             process_phase,
124             process_status,
125             resource_code,
126             resource_seq_num,
127             source_code,
128             transaction_date,
129             transaction_quantity,
130             transaction_type,
131             transaction_uom,
132             entity_type,
133             wip_entity_id,
134             wip_entity_name)
135     values (resRecord.row.created_by_name,
136             resRecord.row.creation_date,
137             resRecord.row.last_update_date,
138             resRecord.row.last_updated_by_name,
139             resRecord.row.operation_seq_num,
140             resRecord.row.organization_code,
141             resRecord.row.organization_id,
142             resRecord.row.process_phase,
143             resRecord.row.process_status,
144             resRecord.row.resource_code,
145             resRecord.row.resource_seq_num,
146             resRecord.row.source_code,
147             resRecord.row.transaction_date,
148             resRecord.row.transaction_quantity,
149             resRecord.row.transaction_type,
150             resRecord.row.transaction_uom,
151             resRecord.row.entity_type,
152             resRecord.row.wip_entity_id,
153             resRecord.row.wip_entity_name);
154 
155     return true;
156 
157   EXCEPTION
158     when others then
159       fnd_message.set_name ('WMA', 'GENERIC_ERROR');
160       fnd_message.set_token ('FUNCTION', 'wma_resource.put');
161       fnd_message.set_token ('ERROR', SQLCODE || ' ' || SQLERRM);
162       errMessage := fnd_message.get;
163       return false;
164   END put;
165 
166 
167 end wma_resource;