DBA Data[Home] [Help]

PACKAGE: APPS.ASG_MOBTRAN

Source


1 PACKAGE ASG_MOBTRAN AUTHID CURRENT_USER AS
2 /* $Header: asgmots.pls 120.1 2005/08/12 02:48:07 saradhak noship $*/
3 
4 -- DESCRIPTION
5 --  This package allows MDG machines to send mobile changes
6 --  to the enteprise for processiong.
7 --  In order to mantain data integrity this package works under the
8 --  boundaries of mobile transactions.
9 --
10 --  A mobile transaction, contains all changes made by a mobile
11 --  device during a replication session.  The transaction is logicaly
12 --  devided in objects, Rows, and Columns.  Objects map to publications,
13 --  rows map to the mobile changed record, and columns map to the
14 --  columns of the record.
15 --
16 --
17 --
18 -- HISTORY
19 --   09-nov-01  vekrishn        Fix for Queue data loss
20 --   04-jun-01  vekrishn        Support for begin/end transaction.
21 --   15-dec-99  dcassine        Created.
22 --
23 --
24 
25 
26 NO_TRANSACTION          EXCEPTION;
27 OPEN_TRANSACTION        EXCEPTION;
28 NO_OBJECT               EXCEPTION;
29 NOT_IN_ROW              EXCEPTION;
30 IN_ROW                  EXCEPTION;
31 ASG_ERROR               EXCEPTION;
32 
33 OK                      CONSTANT NUMBER := 0;
34 ERROR                   CONSTANT NUMBER := 1;
35 
36 ASG_TRUE                CONSTANT NUMBER := 1;
37 ASG_FALSE               CONSTANT NUMBER := 0;
38 
39 
40 INVALID_TYPE            CONSTANT NUMBER :=  0;
41 CHAR_TYPE               CONSTANT NUMBER :=  1;
42 DATE_TYPE               CONSTANT NUMBER :=  2;
43 NUMBER_TYPE             CONSTANT NUMBER :=  3;
44 BLOB_TYPE               CONSTANT NUMBER :=  4;
45 CLOB_TYPE               CONSTANT NUMBER :=  5;
46 
47 M_DEBUG                 varchar2(1) := 'Y';
48 
49 QUEUE_TO_MDG            CONSTANT NUMBER :=  0;
50 QUEUE_TO_ENT            CONSTANT NUMBER :=  1;
51 
52 -- Before calling any member of this package, BeginTransaction must be called
53 -- Transactions are not process utill EndTransaction is called.
54 procedure BeginTransaction (trans_id IN number, transaction_owner in varchar2);
55 procedure CommitTransaction ;
56 procedure RollBackTransaction ;
57 
58 -- Transaction writing API
59 -- Before adding DML transactions to a transaction, setObject must be called
60 -- with the information of the object whos transactions are about to be process.
61 Procedure SetObject (object_name in varchar2, metadata in varchar2);
62 procedure UnsetObject;
63 
64 Procedure AddRow (row_id number,dml in varchar2);
65 Procedure PushRow;
66 Procedure PopRow;
67 
68 Procedure putString (data in varchar2);
69 Procedure putNumber (data in NUMBER);
70 Procedure putDate   (data in DATE);
71 
72 
73 -- transaction reading API
74 procedure process_queue_transaction;
75 procedure process_queue_transaction(debug_flag IN CHAR);
76 Function parse                  (dequeue_session IN number) return number;
77 Function getTransactionId       (dequeue_session IN number) return number;
78 Function getSourceGlobalName    (dequeue_session IN number) return VARCHAR2;
79 Function getTimeStamp           (dequeue_session IN number) return date;
80 Function getNextObject          (dequeue_session IN number) return VARCHAR2;
81 Function getObjectName          (dequeue_session IN number) return VARCHAR2;
82 Function getObjectMetadata      (dequeue_session IN number) return VARCHAR2;
83 Function getNextDML             (dequeue_session IN number) return VARCHAR2;
84 Function getDML                 (dequeue_session IN number) return VARCHAR2;
85 Function getRecID               (dequeue_session IN number) return number;
86 Function getColumns             (dequeue_session IN number) return number;
87 Function NextColumn             (dequeue_session IN number) return number;
88 Function getString              (dequeue_session IN number) return VARCHAR2;
89 Function getCHAR                (dequeue_session IN number) return VARCHAR2;
90 Function getNUMBER              (dequeue_session IN number) return number;
91 Function getDATE                (dequeue_session IN number) return DATE;
92 Function getConnectedUserId     (mobile_user_id  IN number) return number;
93 Function getTransHandler        (mobile_user_id  IN number) return VARCHAR2;
94 Function dequeue_transaction    return number;
95 Function rmqueue_transaction    return NUMBER;
96 Procedure purge_queue_transactions           (p_que_cnt IN NUMBER);
97 
98 /*
99    The following function its used to check if a mobile update can be applied
100    to the database.  In order for a mobile update to be applied, the record
101    which is beeing updated MUST have a lower value for its last_update column
102    that the user last_sync_date.
103 */
104 Function check_TimeStamp        (ObjectName in varchar2, user in number,
105                                 pk_col1    in varchar2, pk_val1 in number,
106                                 pk_col2    in varchar2, pk_val2 in number,
107                                 pk_col3    in varchar2, pk_val3 in number,
108                                 pk_col4    in varchar2, pk_val4 in number,
109                                 pk_col5    in varchar2, pk_val5 in number,
110                                 pk_col6    in varchar2, pk_val6 in number
111                                 ) return number;
112 
113 -- procedures used by the wrappers to set the error message
114 Procedure Set_Short_Error_message  (dequeue_session IN number, message in varchar2);
115 Procedure Set_Longer_Error_message (dequeue_session IN number, message in varchar2);
116 
117 -- Reply processing API
118 procedure REPLY_PROCESSOR;
119 
120 -- RPC request interface
121 -- returns transaction Id
122 Function DoRpc (destination_global_name in varchar2,    /* global name where to execute */
123                 Remote_procedure in varchar2,           /* procedure to call */
124                 Call_back_procedure in varchar2,        /* procedure to call with the result */
125                 who in varchar2 ) return number;        /* who requested the rpc */
126 
127 
128 -- UTIL functions / procedures
129 Procedure Purge_Queue (queue in number);
130 
131 -- internal API No NOT use!!!
132 Function putLob (data in BLOB) return number;
133 Function GetBLOB return BLOB;
134 Function GetBLOBl return number;
135 -- Debug enable / disable code
136 procedure Enable_Debug;
137 procedure Disable_Debug;
138 END ASG_MOBTRAN;