DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_TM

Source


1 PACKAGE BODY inv_tm AS
2 /* $Header: INVTMB.pls 120.1 2005/07/01 13:07:05 appldev ship $ */
3 --  FUNCTION launch
4 --  This function would call the inventory concurrent manager
5 --  to process a transaction in synchronous mode.
6 --
7 --  Input Parameters:
8 --      program - the concurrent manager program name
9 --      args    - use to pass the transaction header id
10 --      put1-5  - input parameters, default value = NULL
11 --      get1-5  - input parameters for fnd_transactions.get_values
12 --      timeout - timeout limit
13 --      rc_field - error code with the following possible values:
14 --                    - 0 means success
15 --                    - 1 means time out
16 --                    - 2 means concurrent manager is not available
17 --                    - 3 means no concurrent manager is defined
18 --
19 --    Return:
20 --      a boolean               TRUE if succeed, FALSE otherwise
21 --
22 
23    FUNCTION launch(program in varchar2,
24                    args in varchar2 default NULL,
25                    put1 in varchar2 default NULL,
26                    put2 in varchar2 default NULL,
27                    put3 in varchar2 default NULL,
28                    put4 in varchar2 default NULL,
29                    put5 in varchar2 default NULL,
30                    get1 in varchar2 default NULL,
31                    get2 in varchar2 default NULL,
32                    get3 in varchar2 default NULL,
33                    get4 in varchar2 default NULL,
34                    get5 in varchar2 default NULL,
35                    timeout in number default NULL,
36                    rc_field in varchar2 default NULL)
37    RETURN BOOLEAN
38    IS
39      outcome VARCHAR(80);
40      msg VARCHAR(255);
41      rtvl NUMBER;
42      args1 VARCHAR(240);
43      args2 VARCHAR(240);
44      args3 VARCHAR(240);
45      args4 VARCHAR(240);
46      args5 VARCHAR(240);
47      args6 VARCHAR(240);
48      args7 VARCHAR(240);
49      args8 VARCHAR(240);
50      args9 VARCHAR(240);
51      args10 VARCHAR(240);
52      args11 VARCHAR(240);
53      args12 VARCHAR(240);
54      args13 VARCHAR(240);
55      args14 VARCHAR(240);
56      args15 VARCHAR(240);
57      args16 VARCHAR(240);
58      args17 VARCHAR(240);
59      args18 VARCHAR(240);
60      args19 VARCHAR(240);
61      args20 VARCHAR(240);
62      prod VARCHAR(240);
63      func VARCHAR(240);
64      m_message VARCHAR2(2000);
65      p_userid  NUMBER;
66      p_respid  NUMBER;
67      p_applid  NUMBER;
68      rpc_timeout NUMBER;
69 
70 
71     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
72    BEGIN
73    -- load values for field gets;
74    args12 := null;
75    args13 := null;
76    args14 := null;
77    args15 := null;
78    args16 := null;
79 
80 /*
81    -- initialize profile
82    p_userid := 1001;  --hardcoded at vision
83    p_respid := 20634; --hardcoded to inventory in 11.5
84    p_applid := 401;   --hardcoded to inventory
85    fnd_global.apps_initialize(p_userid, p_respid, p_applid);
86 */
87 
88    if timeout is NULL then
89      rpc_timeout := to_number(fnd_profile.value('INV_RPC_TIMEOUT'));
90    else
91      rpc_timeout := timeout;
92    end if;
93 
94    prod := 'INV';
95    func := program;
96 
97    rtvl := fnd_transaction.synchronous
98      (
99       NVL(rpc_timeout,500),outcome, msg, prod,func, args,
100       put1, put2, put3, put4, put5,
101       get1, get2, get3, get4, get5,
102       args12,  args13,  args14,  args15,  args16,
103       chr(0), '', '', '');
104 
105    /* dbms_output.put_line('fnd_transaction.synchrous return: outcome is '
106           ||NVL(outcome,'NULL') || ' and rtvl is ' ||To_char(rtvl)); */
107 
108    -- handle problems
109 
110    --rc_field := rtvl;
111    IF rtvl = 1 THEN
112       --     FND_Message.debug('Remote Call Failed: Timed-Out');
113       fnd_message.set_name('INV', 'INV_TM_TIME_OUT');
114       fnd_msg_pub.add;
115       -- dbms_output.put_line(fnd_message.get);
116       -- dbms_output.put_line('timeout');
117       RETURN (FALSE);
118    ELSIF  rtvl = 2 THEN
119       --     FND_Message.debug('Remote Call Failed: Manager Unavailable');
120       -- dbms_output.put_line('Error in INVTM: '|| fnd_message.get);
121       -- dbms_output.put_line('no meessage from dbms_pipe, manager unavailable');
122       fnd_message.set_name('INV', 'INV_TM_MGR_NOT_AVAIL');
123       fnd_msg_pub.add;
124       RETURN (FALSE);
125    ELSIF rtvl = 3 THEN
126       fnd_message.set_name('FND','CONC-DG-Inactive No Manager');
127       fnd_msg_pub.add;
128       RETURN(FALSE);
129 /*
130    ELSIF  rtvl = 0 THEN
131       -- get info back from server and handle problems
132 --      rtvl := fnd_transaction.get_values
133 --        (args1, args2, args3, args4, args5,
134 --         args6, args7, args8, args9, args10, args11,
135 --         args12, args13, args14, args15,
136 --         args16, args17, args18, args19, args20);
137       -- dbms_output.put_line('syn call: '||To_char(rtvl));
138 */
139    END IF;
140 /*
141    IF (args1 IS NOT NULL) THEN
142       dbms_output.put_line(args1);
143    END IF;
144    IF (args2 IS NOT NULL) THEN
145       dbms_output.put_line(args2);
146    END IF;
147    IF (args3 IS NOT NULL) THEN
148       dbms_output.put_line(args3);
149    END IF;
150    IF (args4 IS NOT NULL) THEN
151       dbms_output.put_line(args4);
152    END IF;
153    IF (args5 IS NOT NULL) THEN
154       dbms_output.put_line(args5);
155    END IF;
156    IF (args6 IS NOT NULL) THEN
157       dbms_output.put_line(args6);
158    END IF;
159    IF (args7 IS NOT NULL) THEN
160       dbms_output.put_line(args7);
161    END IF;
162    IF (args8 IS NOT NULL) THEN
163       dbms_output.put_line(args8);
164    END IF;
165    IF (args9 IS NOT NULL) THEN
166       dbms_output.put_line(args9);
167    END IF;
168    IF (args10 IS NOT NULL) THEN
169       dbms_output.put_line(args10);
170    END IF;
171 */
172 
173    -- Kick back status
174    IF (outcome = 'SUCCESS' and rtvl = 0 ) THEN
175       RETURN (TRUE);
176     ELSE
177       RETURN (FALSE);
178    END IF;
179    END launch;
180 END inv_tm;