|
Options |
Name |
Purpose |
|
|
Allocate (character)
|
|
|
|
LOGICAL CanFind (character)
|
|
|
|
LOGICAL CanFind (integer)
|
|
|
|
CopyChildTable (character, handle)
|
|
|
|
CopyTable (IDataAdminModel)
|
|
|
|
CopyTable (table)
|
|
|
|
OpenEdge.DataAdmin.IDataAdminCollection CreateCollection (character, FilteredContext)
|
|
|
|
OpenEdge.DataAdmin.IDataAdminCollection CreateCollection (IDataAdminContext)
|
|
|
|
OpenEdge.DataAdmin.IDataAdminElement CreateEntity (IRequestInfo)
|
|
|
|
OpenEdge.DataAdmin.Binding.Query.FilteredContext CreateFilteredContext (IRow, IRequestInfo)
|
|
|
|
HANDLE CreateImportTable (character)
|
|
|
|
CreatePartitionAfterQuery (handle)
|
|
|
|
OpenEdge.DataAdmin.Message.IFetchRequest CreatePartitionRefreshRequest (character)
|
|
|
|
CreateRow (IDataAdminElement)
|
/* the default syserror has all info */
|
|
|
CreateRow (ITenantGroup)
|
|
|
|
DataRefreshed (IFetchResponse)
|
|
|
|
DeletePartitionAfterQuery ()
|
|
|
|
LOGICAL DeserializeRow (handle, log)
|
|
|
|
LOGICAL Find (character)
|
|
|
|
LOGICAL Find (integer)
|
|
|
|
CHARACTER FindExpression (character)
|
|
|
|
CHARACTER FindExpression (integer)
|
/*** 11.0 September 20, 2011 - remove ...
/* Called from merge with the changes returned from server to keep track of
which partitions that will need to be refreshed. */
method private logical CreatePartionRefreshIds (pdsChanged as handle):
define variable hQuery as handle no-undo.
define variable hBuffer as handle no-undo.
define variable hBefore as handle no-undo.
define variable lok as logical no-undo.
define variable lRefresh as logical no-undo.
define variable hPartition as handle no-undo.
hbuffer = pdsChanged:get-buffer-handle ("ttTenantGroup").
create query hQuery.
hquery:add-buffer (hbuffer).
hQuery:query-prepare ("for each ttTenantGroup").
hquery:query-open().
hquery:get-first.
loop:
do while hbuffer:avail:
if hbuffer:row-state = row-created then
do transaction on error undo, leave loop:
create ttGroupNameRequest.
assign
ttGroupNameRequest.Id = hBuffer::Id
ttGroupNameRequest.ObjectType = hBuffer::ObjectType
ttGroupNameRequest.ObjectNumber = hBuffer::ObjectNumber
ttGroupNameRequest.Name = hBuffer::name.
end.
hQuery:get-next.
lok = true.
end.
end method.
method public logical HasPartitionChanges():
define variable hBuffer as handle no-undo.
hbuffer = GetChild("partitions"):Tablehandle:default-buffer-handle.
return hBuffer:before-buffer:table-handle:has-records.
end method.
method public logical NeedPartitionRefresh():
define variable lok as logical no-undo.
return can-find(first ttGroupNameRequest).
end method.
method private logical EmptyPartitionRefresh():
empty temp-table ttGroupNameRequest.
end method.
method private void DeletePartitionsBeforeRequest ():
define variable hQuery as handle no-undo.
define variable hBuffer as handle no-undo.
create query hQuery.
/* now workaround the fact that fill cannot replace (even if it should? ) */
hbuffer = GetChild("partitions"):Tablehandle:default-buffer-handle.
hquery:set-buffers (buffer ttGroupNameRequest:handle).
hquery:add-buffer (hbuffer).
hQuery:query-prepare ("for each ttGroupNameRequest, each ttPartition where ttGroupNameRequest.name = ttPartition.TenantGroupname").
hquery:query-open().
hquery:get-first.
/* hBuffer:table-handle:tracking-changes = false.*/
do while hbuffer:avail:
hBuffer:buffer-delete ().
hQuery:get-next.
end.
/* hBuffer:table-handle:tracking-changes = true.*/
delete object hQuery.
end method.
method private IFetchRequest CreatePartitionRefreshRequest ():
define variable tree as IContextTree no-undo.
define variable msg as IFetchRequest no-undo.
tree = new ContextTree().
tree:Parse = true.
tree:SetHandle("requests",buffer ttGroupNameRequest:handle).
GetChild("partitions"):AddTableTo(tree).
msg = new FetchRequest("Partition",Id,tree:GetReadHandle()).
return msg.
end method.
method override public void MergeChanges( pResponse as ISaveRequest ):
define variable lok as logical no-undo.
define variable msg as IFetchRequest no-undo.
if not NeedPartitionRefresh() then
do:
CreatePartionRefreshIds(pResponse:DataHandle).
end.
super:MergeChanges(pResponse).
if (not HasPartitionChanges()) and NeedPartitionRefresh() then
do:
DeletePartitionsBeforeRequest().
msg = CreatePartitionRefreshRequest().
msg:UseReplaceOnClient = false.
FetchData(msg).
EmptyPartitionRefresh().
end.
end method.
*/
|
|
|
CHARACTER GetChildQuery (IRow)
|
|
|
|
CHARACTER GetCreateError (ITenantGroup)
|
|
|
|
CHARACTER GetJoinFields (character)
|
|
|
|
OpenEdge.DataAdmin.Binding.IDataAdminModel GetNamedChild (character)
|
/* support many-to-many to tenants (tenants as child) */
|
|
|
OpenEdge.DataAdmin.Binding.PartitionContext GetPartitionContext ()
|
|
|
|
HANDLE GetQueryHandles (character)
|
|
|
|
OpenEdge.DataAdmin.Message.IFetchRequest GetRequest ()
|
/*
method public ISaveRequest GetCreateRequest():
define variable hchanges as handle no-undo.
define variable savemsg as ISaveRequest no-undo.
SaveDataset = CreateDataset("tenantGroupMembers").
hchanges = GetChanges(SaveDataset).
savemsg = new SaveRequest(Name,Id,hchanges).
/* mCreate = true.*/
return savemsg.
end method.
*/
|
|
|
CHARACTER GetServerChildQuery (IRow)
|
|
|
|
initChildren ()
|
|
|
|
initChildren (IContextScope)
|
|
|
|
initChildren (IMultiTenantScope)
|
|
|
|
HANDLE InitDataset ()
|
/* temporary until all sub classes are using createDataset */
|
|
|
MergeChanges (ISaveRequest)
|
/** override to refresh partitions for create */
|
|
|
LOGICAL PartitionsNeedRefresh (character)
|
/** called from merge to check if allocationstate of a table changed */
|
|
|
LOGICAL RefreshPartitions (handle)
|
|
|
|
SerializeRow (handle)
|
|
|
|
ValidateGroup (ITenantGroup)
|
|
|
|
ValueChanged (character, character, character)
|
|