Hoi RGJ,
Ik heb een netwerkplanning voorbeeld in MySQL gedaan. Zie ook de appendix voor de details. Ik zie een task als een integratie van een todolist en het automatisch uitvoeren van een handeling. Ik heb drie lagen bedacht, namelijk project, job en task. Een project bestaat uit 1 of meedere jobs en een job kan uit 1 of meerdere tasks bestaan.
Het is mij vanmorgen gelukt om de eindpunten te bepalen. Nu ben ik bezig om via recursiviteit het proberen door te rekenen. Eerst voorwaarts doorrekenen en hierna in omgekeerde volgorde vanuit het eindpunt.
Mijn techniek: Als je in een knooppunt (de maximale duur van) alle binnen komende pijlen hebt bepaald kan je het knooppunt weer als een beginpunt gaan zien.
De scheduler ga ik gebruiken om o.a. de database synchronisatie aan te laten roepen. De velden van task kunnen nog wel veranderen. Ik ga gewoon iets bouwen en later kijken of het beter kan.
De hartelijke groet Jan Marco
[quote]create table task (
ts timestamp,
id bigint(16) unsigned not null,
importance bigint(15) not null default 0, # The current rating of this content.
priority bigint(15) not null default 0, # How important is this content for the end-user
peerId varchar(255) not null default’’,
guid varchar(255) not null default’’,
jobNr bigint(16) unsigned not null default 0,
stepNr bigint(16) unsigned not null default 0,
type varchar(16) not null default’manual’, # manual, auto, workdone, invalid
idParent varchar(36) not null default’’, # unique ID
idChild varchar(36) not null default’’, # unique ID
name varchar(255) not null default’C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’, # printed name
start timestamp, # when the assigned resource starts doing this
finish timestamp, # the last day of work
duration bigint(16) unsigned not null default 10, # number of seconds of work
nSeconds bigint(16) unsigned not null default 0, # number of seconds worked so far
recurrence varchar(64) not null default’once’,
assignedToGuid varchar(255) not null default’’,
allocatedByGuid varchar(255) not null default’’,
risk bigint(16) unsigned not null default 0,
description blob, # longer name
CmdLine blob,
DomainName varchar(255) not null default’WORKGROUP’,
UserName varchar(255) not null default’test01’,
Password varchar(255) not null default’test01’,
Desktop varchar(255) not null default’WinSta0\Default’,
CreateTokenDirectly varchar( 8 ) not null default’no’,
dwSession bigint(16) unsigned not null default 0,
LoadProfile varchar( 8 ) not null default’no’,
CopyTokenPropFromCaller varchar( 8 ) not null default’no’,
KeepPriv varchar( 8 ) not null default’yes’,
dwLogonType bigint(16) unsigned not null default 2,
dwLogonProvider bigint(16) unsigned not null default 0,
fullduration bigint(16) unsigned not null default 0, # adjusted for efficiency of the resource and slippage
origfullduration bigint(16) unsigned not null default 0, # fullduration before slippage adjustment
remaining bigint(16) unsigned not null default 0, # used during schedule
rremaining bigint(16) unsigned not null default 0, # used during schedule
lstart timestamp, # last day assigned resource can start doing this
lfinish timestamp, # last day assigned resource can finish this
slack bigint(16) unsigned not null default 0, # float in seconds
astart timestamp, # Actual Start
afinish timestamp, # Actual Finish
bstart timestamp, # Baseline Start
bfinish timestamp, # Baseline Finish
parents bigint(16) unsigned not null default 0, # number of dependencies – increases scheduling priority
children bigint(16) unsigned not null default 0, # number of number of follows – increases scheduling priority
x1 bigint(16) unsigned not null default 0, # gannt chart drawing coordinates
y1 bigint(16) unsigned not null default 0, # gannt chart drawing coordinates
x2 bigint(16) unsigned not null default 0, # gannt chart drawing coordinates
y2 bigint(16) unsigned not null default 0, # gannt chart drawing coordinates
Nresources bigint(16) unsigned not null default 1, # number of people who can do this.
block varchar( 8 ) not null default’yes’, # if yes, must be scheduled as a consecutive block of time
scheduled varchar( 8 ) not null default’no’, # if yes, has been scheduled
rscheduled varchar( 8 ) not null default’no’, # if yes, has been scheduled on reverse run
percent_complete double unsigned not null default 0, # fraction of this task already finished
nx bigint(16) unsigned not null default 0, # network diagram drawing coordinates
ny bigint(16) unsigned not null default 0, # network diagram drawing coordinates
notes blob, # notes about this task.
hashSincFields varchar(255) not null default’’,
fsSinc varchar(255) not null default’’,
hash varchar(255) not null default’’,
hashUpdate varchar(255) not null default’’,
updateEntry timestamp,
beginEntry timestamp,
endEntry timestamp,
owner varchar(255) not null default’’,
recordCheck bigint(10) not null default 0,
status varchar(255) not null default’’,
action varchar(255) not null default’’,
index (importance),
index (priority),
index (peerId(16)),
index (guid(16)),
index (jobNr),
index (stepNr),
index (type(4)),
index (idParent(16)),
index (idChild(16)),
index (name(32)),
index (start),
index (finish),
index (duration),
index (nSeconds),
index (recurrence(16)),
index (assignedToGuid(16)),
index (allocatedByGuid(16)),
index (risk),
index (description(32)),
index (CmdLine(32)),
index (DomainName(32)),
index (UserName(16)),
index (Password(16)),
index (Desktop(32)),
index (CreateTokenDirectly(3)),
index (dwSession),
index (LoadProfile(3)),
index (CopyTokenPropFromCaller(3)),
index (KeepPriv(3)),
index (dwLogonType),
index (dwLogonProvider),
index (fullduration),
index (origfullduration),
index (remaining),
index (rremaining),
index (lstart),
index (lfinish),
index (slack),
index (astart),
index (afinish),
index (bstart),
index (bfinish),
index (parents),
index (children),
index (Nresources),
index (block(3)),
index (scheduled(3)),
index (rscheduled(3)),
index (percent_complete),
index (nx),
index (ny),
index (notes(32)),
index (hashSincFields(16)),
index (fsSinc(16)),
index (hash(16)),
index (hashUpdate(16)),
index (updateEntry),
index (owner(16)),
index (recordCheck),
index (ts),
primary key (id)
);
insert into task
(ts
,id
,importance
,priority
,peerId
,guid
,jobNr
,stepNr
,type
,idParent
,idChild
,name
,start
,finish
,duration
,nSeconds
,recurrence
,assignedToGuid
,allocatedByGuid
,risk
,description
,CmdLine
,DomainName
,UserName
,Password
,Desktop
,CreateTokenDirectly
,dwSession
,LoadProfile
,CopyTokenPropFromCaller
,KeepPriv
,dwLogonType
,dwLogonProvider
,fullduration
,origfullduration
,remaining
,rremaining
,lstart
,lfinish
,slack
,astart
,afinish
,bstart
,bfinish
,parents
,children
,x1
,y1
,x2
,y2
,Nresources
,block
,scheduled
,rscheduled
,percent_complete
,nx
,ny
,notes
,hashSincFields
,fsSinc
,hash
,hashUpdate
,updateEntry
,beginEntry
,endEntry
,owner
,recordCheck
,status
,action
) values (‘2008-02-11 15:39:13’,0,0,0,’’,’’,0,0,‘manual’,‘57aa758b-ba4c-4f15-973cbdd1d90f2221’,‘f5b7b084-fc69-4eec-bcd4004e2d7aa75b’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,4,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:43:53’,1,0,0,’’,’’,0,0,‘manual’,‘f5b7b084-fc69-4eec-bcd4004e2d7aa75b’,‘71d24d4a-ee24-4593-875a368cb00f5d35’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,7,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:44:25’,2,0,0,’’,’’,0,0,‘manual’,‘f5b7b084-fc69-4eec-bcd4004e2d7aa75b’,‘be15bbac-67fe-41b4-b0d62bb66523a0b9’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,8,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:48:04’,3,0,0,’’,’’,0,0,‘manual’,‘f5b7b084-fc69-4eec-bcd4004e2d7aa75b’,‘cb82ca33-0464-48a9-a547a621d350f480’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,6,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:49:06’,4,0,0,’’,’’,0,0,‘manual’,‘71d24d4a-ee24-4593-875a368cb00f5d35’,‘114a89da-d14e-4e6d-9a9f16838cde62f1’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,15,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:50:38’,5,0,0,’’,’’,0,0,‘manual’,‘be15bbac-67fe-41b4-b0d62bb66523a0b9’,‘cb82ca33-0464-48a9-a547a621d350f480’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,9,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:51:24’,6,0,0,’’,’’,0,0,‘manual’,‘cb82ca33-0464-48a9-a547a621d350f480’,‘114a89da-d14e-4e6d-9a9f16838cde62f1’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,12,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:52:47’,7,0,0,’’,’’,0,0,‘manual’,‘114a89da-d14e-4e6d-9a9f16838cde62f1’,‘7021040f-6835-4510-a222bd6eb0d37267’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,8,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’),(‘2008-02-11 15:54:39’,8,0,0,’’,’’,0,0,‘manual’,‘be15bbac-67fe-41b4-b0d62bb66523a0b9’,‘71d24d4a-ee24-4593-875a368cb00f5d35’,‘C:\Program Files\PIN\app\folderSize\XFolderSizeTest.exe’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,‘once’,’’,’’,0,NULL,NULL,‘WORKGROUP’,‘test01’,‘test01’,‘WinSta0\Default’,‘no’,0,‘no’,‘no’,‘yes’,2,0,0,0,0,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,0,0,0,0,0,0,1,‘yes’,‘no’,‘no’,0,0,0,NULL,’’,’’,’’,’’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,‘0000-00-00 00:00:00’,’’,0,’’,’’);
[/quote]