------------------------------------------------------
MobiLink complete event model.
Legend:
- // This is a comment.
- <name>
The pseudocode for <name> is listed separately
in a later section, under a banner:
------------------------
name
------------------------
- VariableName <- value
Assign the given value to the given variable name.
Variable names are in mixed case.
- event_name
If you have defined a script for the given event name,
it is invoked.
------------------------------------------------------
CONNECT to consolidated database
begin_connection_autocommit
begin_connection
COMMIT
for each synchronization request with
the same script version {
<synchronize>
}
end_connection
COMMIT
DISCONNECT from consolidated database
------------------------------------------------------
synchronize
------------------------------------------------------
<authenticate>
<begin_synchronization>
<upload>
<prepare_for_download>
<download>
<end_synchronization>
------------------------------------------------------
authenticate
------------------------------------------------------
Status <- 1000
UseDefaultAuthentication <- TRUE
if( authenticate_user script is defined ) {
UseDefaultAuthentication <- FALSE
TempStatus <- authenticate_user
if( TempStatus > Status ) {
Status <- TempStatus
}
}
if( authenticate_user_hashed script is defined ) {
UseDefaultAuthentication <- FALSE
TempStatus <- authenticate_user_hashed
if( TempStatus > Status ) {
Status <- TempStatus
}
}
if( authenticate_parameters script is defined )
{
TempStatus <- authenticate_parameters
if( TempStatus > Status ) {
Status <- TempStatus
}
if( UseDefaultAuthentication ) {
if( the user exists in the ml_user table ) {
if( ml_user.hashed_password column is not NULL ) {
if( password matches ml_user.hashed_password ) {
Status <- 1000
} else {
Status <- 4000
}
} else {
Status <- 1000
}
} else if( -zu+ was on the command line ) {
Status <- 1000
} else {
Status <- 4000
}
}
if( Status >= 3000 ) {
// Abort the synchronization.
} else {
// UserName defaults to MobiLink user name
// sent from the remote.
if( modify_user script is defined ) {
UserName <- modify_user
// The new value of UserName is later passed to
// all scripts that expect the MobiLink user name.
}
}
COMMIT
------------------------------------------------------
begin_synchronization
------------------------------------------------------
begin_synchronization // Connection event.
for each table being synchronized {
begin_synchronization // Call the table level script.
}
for each publication being synchronized {
begin_publication
}
COMMIT
------------------------------------------------------
end_synchronization
------------------------------------------------------
for each publication being synchronized {
if( begin_publication script was processed ) {
end_publication
}
}
for each table being synchronized {
if( begin_synchronization table script was processed ) {
end_synchronization // Table event.
}
}
if( begin_synchronization connection script was processed ) {
end_synchronization // Connection event.
}
for each table being synchronized {
synchronization_statistics // Table event.
}
synchronization_statistics // Connection event.
for each table being synchronized {
time_statistics // Table event.
}
time_statistics // Connection event.
COMMIT |
For the details of upload processing, see Events during upload.
For the details of download processing, see Events during download.
![]() |
Discuss this page in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |