OOQL language linktype


type of connections between object instances


define - create new linktype definition

  linktype define   AdminName {LinkType_DefineOption} [force];

clone - duplicate a linktype and set the properties for the new instance

  linktype clone  AdminName define AdminName {LinkType_EditOption} [force];

edit - update the linktype properties [data for removed fields will be lost]

  linktype edit   AdminName {LinkType_EditOption} [force];

show - print the linktype properties

  linktype show   AdminName [LinkType_GetOption] [Token_Option] [ExportFile_Option] ;

select - extract linktypes on the base of query filters

  linktype select AdminPatternList [moddate Date_Range] [LinkType_GetOption]
                                     [Token_Option] [ExportFile_Option] ;

undefine - remove a linktype from the database [all link instances will be deleted]

  linktype undefine AdminName ;


LinkType_DefineOption
description GenericValue
application AdminName
image  FileName
imagedata GenericString
field  AdminName { AdminName }
fromside LinkType_Side
toside LinkType_Side
form AdminName
program AdminName event  LinkType_Event   Event_Type [Program_ArgsOption]
workflow AdminName event  LinkType_Event  [Workflow_Parameters]
history LinkType_History { , LinkType_History }
access LinkType_Access { LinkType_Access }
[! / not] duplicate
[! / not] selflink
[! / not] checkupdate
[! / not] undo
[! /not] hidden

LinkType_EditOption
name AdminName
description GenericValue
application AdminName
svnrev NUMBER
image  FileName
imagedata GenericString
field  Edit_Operator   AdminName { Edit_Operator   AdminName }
fromside LinkType_ModSide
toside LinkType_ModSide
form AdminName
program Edit_Operator  AdminName event  LinkType_Event   Event_Type [Program_ArgsOption]
workflow Edit_Operator AdminName event  LinkType_Event  [Workflow_Parameters]
history LinkType_History { , LinkType_History }
access LinkType_Access { LinkType_Access }
[! / not] duplicate
[! / not] selflink
[! / not] checkupdate
[! / not] undo
[! /not] hidden

LinkType_Event
connect
update
restore
modholder
changetype
disconnect

LinkType_History
everything
nothing
[! / not] Link_HistoryOption

LinkType_Access
holder  LinkType_AccessOption { , LinkType_AccessOption }
community LinkType_AccessOption { , LinkType_AccessOption }
user   LinkType_AccessOption { , LinkType_AccessOption }
team  LinkType_AccessOption { , LinkType_AccessOption }
assignment  LinkType_AccessOption { , LinkType_AccessOption }
   
    LinkType_AccessOption
    everything
    nothing
    [! / not] create
    [! / not] changetype
    [! / not] changeholder
    [! / not] edit
    [! / not] undo
    [! / not] read
    [! / not] destroy

LinkType_Side
LinkType_SideOption { LinkType_SideOption }
       
    LinkType_SideOption
   
note GenericValue
    LinkType_SideCard
    revision LinkType_SideRevision
    clone LinkType_SideClone
    class  AdminName { AdminName }

LinkType_ModSide
LinkType_ModSideOption { LinkType_ModSideOption }
       
    LinkType_ModSideOption
   
note GenericValue
    LinkType_SideCard
    revision LinkType_SideRevision
    clone LinkType_SideClone
    class  Edit_Operator   AdminName { Edit_Operator   AdminName }

LinkType_SideCard
single
multiple

LinkType_SideRevision
none
move
duplicate

LinkType_SideClone
none
move
duplicate

LinkType_GetOption
get [LinkType_GetBasicOption]
   
  LinkType_GetBasicOption
  { LinkType_GetBasicToken [as IDENTIFIER] { LinkType_GetBasicToken [as IDENTIFIER] } }
  LinkType_GetBasicToken [as IDENTIFIER]
     
    LinkType_GetBasicToken
    Common_GetBasicOption  
    duplicate  
    selflink  
    checkupdate  
    undo  
    field [. Field_GetBasicOption]
    field[] [. Field_GetBasicOption]
    field[ AdminName ]  
    form [. Form_GetBasicOption]
    history  
    program  
    program[ LinkType_Event   Event_Type ] [. Program_GetBasicOption]
    workflow  
    workflow[ LinkType_Event ] [. Workflow_GetBasicOption]
    holder  
    community  
    user [. User_GetBasicOption]
    user[] [. User_GetBasicOption]
    user[ AdminName ]  
    team [. Team_GetBasicOption]
    team[] [. Team_GetBasicOption]
    team[ AdminName ]  
    assignment [. Assignment_GetBasicOption]
    assignment[] [. Assignment_GetBasicOption]
    assignment[ AdminName ]  
    from.class [. Class_GetBasicOption]
    from.class[] [. Class_GetBasicOption]
    from.class[ AdminName ]  
    from.note  
    from.cardinality  
    from.revision  
    from.clone  
    to.class [. Class_GetBasicOption]
    to.class[] [. Class_GetBasicOption]
    to.class[ AdminName ]  
    to.note  
    to.cardinality  
    to.revision  
    to.clone  
    holderaccess[ LinkType_AccessOption ]  
    useraccess[ AdminName , LinkType_AccessOption ]  
    access[ LinkType_AccessOption ]  


KEYWORDs
access check if the framework user has access to the specified operation
application the associated application menu
assignment user roles enabled for specific action(s)
checkupdate this option enables/disables the synchronization counter for link instance updates
clone specifies the behaviour in case of from/to side object clonation:
none link instances are kept at the reference objects
move link instances are moved to the new objects
duplicate link instances are replicated for the new objects
community operations permitted to all application users (if generally enabled in the user definition)
duplicate if false inhibits the creation of more than one link instance between the same two objects
description the linktype description
event event associated to a check or action trigger
field link field(s)
force this flag allows to ignore errors during the creation/update (for example, the trigger programs, the classes or fields not yet defined)
form default form used to edit the link field values in the user interface
fromside /
from.
cardinality the from-side link cardinality
single = 1
multiple = N
class classes of objects allowed at the from side of the connection
note describes the from side connection meaning
revision specifies the behaviour in case of revision of from side objects
clone specifies the behaviour in case of clonation of from side objects
hidden administration hidden objects are not visible/usable
history specific operations activated for user action registration log
holder operations permitted to the link holder
holderaccess check if the link holder has access to the specified operation
image local path for the linktype icon to upload
imagedata base64 code for the linktype icon
moddate last modification date
name the linktype name
program trigger program associated to a specific event
revision specifies the behaviour in case of from/to side object revision:
none link instances are kept at the reference objects
move link instances are moved to the new objects
duplicate link instances are replicated for the new objects
team user groups enabled for specific action(s)
toside /
to.
cardinality the to-side link cardinality
single = 1
multiple = N
class classes of objects allowed at the to side of the connection
note describes the to side connection meaning
revision specifies the behaviour in case of revision of to side objects
clone specifies the behaviour in case of clonation of to side objects
selflink if false inhibits the creation of link instances of an object with itself
svnrev SVN repository revision number
user specific user enabled for specific action(s)
useraccess check if the specific user has access to the operation
undo this option enables/disables the rollback of edit operations for link instances
workflow workflow associated to a specific event (starts automatically)


SAMPLES

linktype define LT01 description "Linktype 01" field ATTR1 ATTR3
fromside single revision move clone none class CL01 CL03 note "from meaning"
toside multiple revision duplicate clone duplicate class CL02 CL03 note "to meaning"
program "CheckDestroy" event destroy check input 12 "PDF" ;

linktype edit LT01 description "Linktype 001" duplicate !hidden field remove ATTR3 add ATTR2
fromside multiple revision move clone duplicate class remove CL03 note "from01"
toside single revision none clone none class add CL01 note "to01";

linktype show LT01 token xml exportfile "c:\exp\expfile.xml";

linktype select LT* get { name id from.class[].{name description superclass.{ hidden name superclass } } to.class[].{name description ownsubclass} } token { "|" "," "@" "$"};

 

common syntax

Common_GetBasicOption
Common_GetBasicToken [ as IDENTIFIER ]

Common_GetBasicToken
id  
name  
origdate  
moddate  
moduser  
description  
svnrev  
hidden  
image  
imagedata  
feature[ AdminName ] [. Feature_GetBasicOption]
feature[] [. Feature_GetBasicOption]
feature [. Feature_GetBasicOption]
application [. Menu_GetBasicOption]
super  
admintype  

Edit_Operator
add
remove

Edit_RefOperator
addbefore AdminName set
addafter AdminName set
add
remove
movebefore
moveafter

Edit_AddOperator
addbefore AdminName define
addafter AdminName define
append

Edit_MoveOperator
movebefore
moveafter

Event_Type
action
check

AdminPatternList
AdminNamePattern {, AdminNamePattern}

AdminNamePattern
*
PATTERNIDENTIFIER
STRINGVAL
AdminName

GenericPatternList
GenericPattern {, GenericPattern}

GenericPattern
*
IDENTIFIER
PATTERNIDENTIFIER
GenericValue

AdminActor
user AdminName
team AdminName
assignment AdminName

AdminName
IDENTIFIER
QUOTED_STRING
SQUOTED_STRING

GenericValue
DATETIME
GenericNumber
GenericString
BOOLEANVAL

GenericString
STRINGVAL
QUOTED_STRING
SQUOTED_STRING

GenericNumber
NUMBER
REALNUMBER

Filter_Option
moddate Date_Range
application AdminNamePattern

Date_Range
=  DATETIME  
!= DATETIME
 
<  DATETIME
 
>  DATETIME
 
<= DATETIME
 
>= DATETIME
 
in [ DATETIME , DATETIME ]
 
in ( DATETIME , DATETIME ]
 
in [ DATETIME , DATETIME )
 
in ( DATETIME , DATETIME )  

Token_Option
token { Token_Separator { Token_Separator } }
token Token_Separator

Token_Separator
QUOTED_STRING
SQUOTED_STRING
IDENTIFIER
STRINGVAL
json
json-
json+
xml
xml-
xml+

ExportFile_Option
exportfile FileName [append] [xml | json ]

ImportFile_Option
importfile FileName [xml | json |emxxml]

LogFile_Option
logfile FileName [append]

FileName
QUOTED_STRING
SQUOTED_STRING

basic elements
grammar rules
[ ] = optional element - only one item is allowed : ( 0 or 1 )
{ } = optional element - more than one is allowed : ( 0 or N )
/ = alternative
= one of ...
   
  all bold texts represent keywords or command syntax

IDVAL
#<5 dec digits [ 0-9 ]>-<8 hex digits [ 0-9 A-F ]>
  example:
  #00020-34F2A80E

COMMENT
// <any character until the end of the line(\n \r)>
  example:
  // My single line comment

LONGCOMMENT
/* <any character> */
 

example:
  /* My multi line comment starts here
  continue here
  and finish here */


DATETIME
<year 4 digits>[ - /. ]<month 2 digits>[ - /. ]<day 2 digits>
  examples:
   2009-12-23    2009/03/19   2009.11.14
<year 4 digits>[ - /. ]<month 2 digits>[ - /. ]<day 2 digits> <hours>:<minutes>:[<seconds>]
  examples:
   2009-12-23 10:23   2009/03/19 16:03:34  2009.11.14 00:20:04

NUMBER
[+-]<decimal digits [ 0-9 ]>
  examples:
   -1203   +276   25

BOOLEANVAL
true / false

REALNUMBER
[+-]<decimal digits [ 0-9 ]>.<decimal digits [ 0-9 ]>[E(+-)<esponent [0-9]>]
  example:
   -37.837   +2.3874   13.887   1.4862E-04

QUOTED_STRING
"<any character>"
  example:
   "my quoted string"

SQUOTED_STRING
'<any character>'
  example:
   'my single quoted string'

IDENTIFIER
<one or more of [ a-z A-Z ]><zero or more of [ a-z A-Z 0-9 _ ]>
  example:
   Var1    object_Name_02

VARIABLE
$<one o more of [ a-z A-Z 0-9 ]><zero or more of [ a-z A-Z 0-9 _ ]>
 

example:
   $1   $var_02    $1b


STRINGVAL
<one or more of [ a-z A-Z 0-9 -_ $ ? @ | ~ % & / = : + \ # ' ]>
  a string not recognized as identifier

PATTERNIDENTIFIER
<a string with * (match 0 or more characters) and ? (match 1 character) wildcards>
  example:
   mypa*er?_ide?ti*

© 2008-2015 MS Enterprise Solutions | Website Templates by IceTemplates.com
Please Read: Privacy Policy and Terms of Use