12. August 2010 12:11
12. August 2010 12:30
12. August 2010 12:45
13. August 2010 13:06
23. August 2010 09:48
23. August 2010 12:40
JuDra hat geschrieben:zu 1.: Ziel war die Umsetzung einer eigenen Lösung, und die ist ja fast fertig, bis auf den "lustigen" Fehler.
JuDra hat geschrieben:zu 2.: Worauf bezieht sich diese Antwort? Auf das Tool von Mibuso, oder allgemein auf die Object-Tabelle?
24. August 2010 12:14
26. August 2010 09:51
26. August 2010 09:55
JuDra hat geschrieben:Kann mir vielleicht jemand den Primary Key von der Objects Tabelle sagen?
Bis jetzt bin ich von Type,Company Name, ID ausgegangen...
26. August 2010 10:00
26. August 2010 10:12
26. August 2010 10:55
OBJECT Table 61954 Obj. Admin. ReserveObject
{
OBJECT-PROPERTIES
{
Date=26.08.10;
Time=10:07:47;
Modified=Yes;
Version List=ESCA#JD#00004#1.01;
}
PROPERTIES
{
OnInsert=BEGIN
CALCFIELDS("Object Name","Version List");
IF NOT fktNewObject THEN
new:= TRUE;
IF fktblockObject(No) THEN
reserved:=TRUE
ELSE BEGIN
blocked:= TRUE;
END;
END;
CaptionML=[DEU=Obj. Verwaltung Reservierte Objekte;
ENU=Obj. Admin Reserved Objects];
}
FIELDS
{
{ 1 ; ;No ;Code20 }
{ 2 ; ;Type ;Option ;OptionString=TableData,Table,Form,Report,Dataport,XMLport,Codeunit,MenuSuite,Page }
{ 3 ; ;Company Name ;Text30 }
{ 4 ; ;ID ;Integer }
{ 5 ; ;Object Name ;Text100 ;FieldClass=FlowField;
CalcFormula=Lookup(Object.Name WHERE (Type=FIELD(Type),
Company Name=FILTER(''),
ID=FIELD(ID)));
CaptionML=[DEU=Objekt Name;
ENU=Object Name] }
{ 6 ; ;blocked ;Boolean ;CaptionML=[DEU=gesperrt;
ENU=blocked] }
{ 7 ; ;modified ;Boolean ;FieldClass=FlowField;
CalcFormula=Lookup(Object.Modified WHERE (Type=FIELD(Type),
Company Name=FIELD(Company Name),
ID=FIELD(ID))) }
{ 8 ; ;Version List ;Text80 ;FieldClass=FlowField;
CalcFormula=Lookup(Object."Version List" WHERE (Type=FIELD(Type),
Company Name=FIELD(Company Name),
ID=FIELD(ID))) }
{ 9 ; ;new ;Boolean ;CaptionML=[DEU=neu;
ENU=new] }
{ 10 ; ;reserved ;Boolean ;CaptionML=[DEU=reserviert;
ENU=reserved] }
{ 11 ; ;DatabaseName ;Option ;CaptionML=[DEU=DatenbankName;
ENU=Database Name];
OptionString=w1,_DE_addon }
}
KEYS
{
{ ;No,Type,Company Name,ID ;Clustered=Yes }
}
FIELDGROUPS
{
}
CODE
{
VAR
Text001@1000000003 : TextConst 'DEU=Dieses Objekt;ENU=This Object';
Text002@1000000002 : TextConst 'DEU=wird bereits von ObjverwaltungsNr.;ENU=is already blocked by Object Administration No.';
Text003@1000000001 : TextConst 'DEU=gesperrt.;ENU=.';
recObjAdminHeader@1000000000 : Record 61950;
recobject@1105100000 : Record 2000000001;
PROCEDURE fktNewObject@1000000000() : Boolean;
BEGIN
IF recobject.GET(Type,"Company Name",ID) THEN BEGIN
CALCFIELDS("Object Name", "Version List");
IF ("Object Name" <> '') OR ("Version List" <> '') THEN
EXIT(TRUE);
EXIT(FALSE);
END;
END;
PROCEDURE fktblockObject@1000000001(parObjAdminHeaderNo@1000000001 : Code[20]) : Boolean;
VAR
recReservedObj@1000000000 : Record 61954;
BEGIN
recObjAdminHeader.INIT;
recObjAdminHeader.GET(parObjAdminHeaderNo);
//Wenn Objekt bereits woanders! gesperrt, dann reservieren
recReservedObj.INIT;
recReservedObj.SETRANGE(recReservedObj.Type,Type);
recReservedObj.SETRANGE(recReservedObj."Company Name","Company Name");
recReservedObj.SETRANGE(recReservedObj.ID,ID);
recReservedObj.SETRANGE(recReservedObj.DatabaseName,DatabaseName);
//wenn Status im Kopf nicht abgeschlossen ist
IF recObjAdminHeader.Status <> recObjAdminHeader.Status::abgeschlossen THEN BEGIN
IF recReservedObj.FINDSET(FALSE,FALSE) THEN BEGIN //ist dieses Objekt bereits woanders vorhanden?
REPEAT
IF recReservedObj.blocked THEN BEGIN //wenn dieses bereits gesperrt, dann reservieren
MESSAGE(Text001 + ' ' + FORMAT(Rec.Type) + ' ' + FORMAT(Rec.ID) + ' ' + Rec."Object Name"
+ ' ' + Text002 + ' ' + recReservedObj.No + ' ' + Text003);
recObjAdminHeader.Status:=recObjAdminHeader.Status::reserviert;
recObjAdminHeader.MODIFY;
EXIT(TRUE);
END;
UNTIL recReservedObj.NEXT = 0;
END ELSE BEGIN //ansonsten sperren
recObjAdminHeader.Status:=recObjAdminHeader.Status::freigegeben;
recObjAdminHeader.MODIFY;
EXIT(FALSE);
END;
END;
END;
PROCEDURE fktreserveObject@1000000002();
VAR
recReservedObject@1000000000 : Record 61954;
BEGIN
//reserviert alle Objekte obwohl manche auch gesperrt h„tten werden k”nnen
recReservedObject.INIT;
recReservedObject.SETRANGE(recReservedObject.No,No);
recReservedObject.SETRANGE(recReservedObject.Type,Type);
recReservedObject.SETRANGE(recReservedObject."Company Name","Company Name");
recReservedObject.SETRANGE(recReservedObject.ID,ID);
recReservedObject.SETRANGE(recReservedObject.DatabaseName, DatabaseName);
IF recReservedObject.FINDSET(FALSE,FALSE) THEN BEGIN
REPEAT
blocked:= FALSE;
reserved:= TRUE;
MODIFY;
UNTIL recReservedObject.NEXT = 0
END;
END;
BEGIN
END.
}
}
26. August 2010 11:08
JuDra hat geschrieben:Ich hab auch schon versucht den Company Name Filter von Field auf Filter("") zu setzen, aber das bringt leider gar nichts...
26. August 2010 11:16
26. August 2010 11:26
JuDra hat geschrieben:Wenn ich die Objects-Tabelle öffne, kommen zuerst alle Objekt ohne Mandanten und danach folgen die gleichen mit den einzelnen Mandanten...
26. August 2010 11:55
Dein Feld Type:
TableData,Table,Form,Report,Dataport,XMLport,Codeunit,MenuSuite,Page
Object:
TableData,Table,Form,Report,Dataport,Codeunit,XMLport,MenuSuite,Page,,System,FieldNumber
30. August 2010 09:02
31. August 2010 09:38
JuDra hat geschrieben:Gehört der Rest nach Page auch noch alles dazu?
Wo finde ich das, wenn ich nochmal in diese Verlegenheit gerate? Auf die Objects kann ich ja nicht so ohne Weiteres zugreifen?