OOQL language lifecycle

lifecycle definition / access policies for object instances



define - create new lifecycle definition

  lifecycle define   AdminName {Lifecycle_DefineOption} [force];

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

  lifecycle clone  AdminName define AdminName {Lifecycle_EditOption} [force];

edit - update the lifecycle properties
             [if a stage is removed the object instances are reassigned to the previous or the next stage]

  lifecycle edit   AdminName {Lifecycle_EditOption} [force];

show - print the lifecycle properties

  lifecycle show   AdminName [Lifecycle_GetOption] [Token_Option] [ExportFile_Option] ;

select - extract lifecycle on the base of query filters

  lifecycle select AdminPatternList {Filter_Option} [Lifecycle_GetOption]
                                     [Token_Option] [ExportFile_Option] ;

undefine - remove a lifecycle with no associated object instances from the database

  lifecycle undefine AdminName ;


Lifecycle_DefineOption
description GenericValue
application AdminName
image  FileName
imagedata GenericString
defaultfiletype AdminName
revisionrule  GenericString
filespace AdminName
class AdminName { AdminName }
filetype AdminName { AdminName }
history Lifecycle_History { , Lifecycle_History }
command AdminName { AdminName }
Lifecycle_StageListOption
[! / not] checkupdate
[! / not] undo
[! / not] addrecent
[! /not] hidden

Lifecycle_EditOption
name AdminName
description GenericValue
application AdminName
svnrev NUMBER
image  FileName
imagedata GenericString
defaultfiletype AdminName
revisionrule  GenericString
filespace AdminName
class  Edit_Operator   AdminName { Edit_Operator   AdminName }
filetype  Edit_Operator   AdminName { Edit_Operator   AdminName }
history Lifecycle_History { , Lifecycle_History }
command  Edit_RefOperator   AdminName { Edit_RefOperator   AdminName }
Lifecycle_StageEditListOption
[! / not] checkupdate
[! / not] undo
[! / not] addrecent
[! /not] hidden

Lifecycle_History
everything
nothing
[! / not] Object_HistoryOption

Lifecycle_GetOption
get [Lifecycle_GetBasicOption]
   
  Lifecycle_GetBasicOption
  { Lifecycle_GetBasicToken [as IDENTIFIER] { Lifecycle_GetBasicToken [as IDENTIFIER] } }
  Lifecycle_GetBasicToken [as IDENTIFIER]
     
    Lifecycle_GetBasicToken
    Common_GetBasicOption  
    revisionrule  
    checkupdate  
    undo  
    addrecent  
    defaultfiletype [. FileType_GetBasicOption]
    filespace [. FileSpace_GetBasicOption]
    class [. Class_GetBasicOption]
    class[] [. Class_GetBasicOption]
    class[ AdminName ]  
    filetype [. FileType_GetBasicOption]
    filetype[] [. FileType_GetBasicOption]
    filetype[ AdminName ]  
    history  
    command [. Command_GetBasicOption]
    command[] [. Command_GetBasicOption]
    command[ AdminName ]  
    stage [. Lifecycle_GetStageBasicOption]
    stage[] [. Lifecycle_GetStageBasicOption]
    stage[ AdminName ] [. Lifecycle_GetStageBasicOption]


KEYWORDs
addrecent if selected, objects will be added to the user recent list when opened [in any stage]
application the associated application menu
checkupdate this option enables/disables the synchronization counter for object instance updates
class type of objects manageable with this lifecycle
command contextual menu command(s) available for all stages of the object lifecycle
defaultfiletype the default file format for object attachments (used if not specified during the fileput)
description the lifecycle description
filespace the default filespace for the storage of object attachments (used if not specified)
filetype list of permitted filetypes for object attachments
force this flag allows to ignore errors during the creation/update (for example, a command, a class, a trigger program or a filetype not yet defined)
hidden administration hidden objects are not visible/usable
history specific operations activated for user action registration log
image local path for the lifecycle icon to upload
imagedata base64 code for the lifecycle icon
moddate last modification date
name the lifecycle name
revisionrule rule applied to increment the object revision [see tutorial for more info]
stage a single state of the lifecycle or the full stage list
svnrev SVN repository revision number
undo this option enables/disables the rollback of edit operations for object instances


lifecycle - stage

Lifecycle_StageListOption
stage AdminName  { Lifecycle_StageOption  }
       
    Lifecycle_StageOption
   
description GenericValue
    image   FileName
    imagedata  GenericString
    [! / not] autoprogress
    [! / not] autoreset
    [! / not] revisionable
    [! / not] addrecent
    program AdminName event Lifecycle_Event   Event_Type [ Program_ArgsOption ]
    workflow AdminName event  Lifecycle_Event  [Workflow_Parameters]
    history Lifecycle_StageHistory { , Lifecycle_StageHistory }
    access Lifecycle_StageAccess { Lifecycle_StageAccess }
    command AdminName { AdminName }
    Lifecycle_StageValidationList

Lifecycle_StageEditListOption
stage  Edit_AddOperator   AdminName  { Lifecycle_StageOption  }
stage  change  AdminName  { Lifecycle_StageModOption  }
stage  remove  AdminName  
stage  Edit_MoveOperator   AdminName  
       
    Lifecycle_StageModOption
   
name AdminName
   
description GenericValue
    image   FileName
    imagedata  GenericString
    [! / not] autoprogress
    [! / not] autoreset
    [! / not] revisionable
    [! / not] addrecent
    program Edit_Operator   AdminName event   Lifecycle_Event   Event_Type                             [ Program_ArgsOption ]
    workflow Edit_Operator AdminName event  Lifecycle_Event  [Workflow_Parameters]
    history Lifecycle_StageHistory { , Lifecycle_StageHistory }
    access Lifecycle_StageAccess { Lifecycle_StageAccess }
    command  Edit_RefOperator   AdminName { Edit_RefOperator   AdminName }
    Lifecycle_StageValidationModList

Lifecycle_Event
validate
ignore
refuse
setstage
progress
regress

Lifecycle_StageHistory
everything
nothing
[! / not] Object_HistoryOption

Lifecycle_StageAccess
holder  Lifecycle_StageAccessOption { , Lifecycle_StageAccessOption }
community Lifecycle_StageAccessOption { , Lifecycle_StageAccessOption }
user   Lifecycle_StageAccessOption { , Lifecycle_StageAccessOption }
team  Lifecycle_StageAccessOption { , Lifecycle_StageAccessOption }
assignment  Lifecycle_StageAccessOption { , Lifecycle_StageAccessOption }
       
    Lifecycle_StageAccessOption
   
everything
   
nothing
    [! / not] create
    [! / not] clone
    [! / not] changespace
    [! / not] changeclass
    [! / not] changename
    [! / not] changeholder
    [! / not] changelifecycle
    [! / not] edit
    [! / not] undo
    [! / not] read
    [! / not] fileput
    [! / not] fileget
    [! / not] filerename
    [! / not] filedelete
    [! / not] addlinkto
    [! / not] addlinkfrom
    [! / not] removelinkto
    [! / not] removelinkfrom
    [! / not] lock
    [! / not] unlock
    [! / not] progress
    [! / not] regress
    [! / not] revise
    [! / not] execute
    [! / not] delegate
    [! / not] revoke
    [! / not] destroy

Lifecycle_GetStageBasicOption
{ Lifecycle_GetStageBasicToken [as IDENTIFIER] { Lifecycle_GetStageBasicToken [as IDENTIFIER] } }
Lifecycle_GetStageBasicToken [as IDENTIFIER]
   
  Lifecycle_GetStageBasicToken
  Common_GetBasicOption  
  autoprogress  
  autoreset  
  revisionable  
  addrecent  
  history  
  program  
  program[ Lifecycle_Event  Event_Type ] [. Program_GetBasicOption]
  workflow  
  workflow[ Lifecycle_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 ]  
  command [. Command_GetBasicOption]
  command[] [. Command_GetBasicOption]
  command[ AdminName ]  
  owncommand [. Command_GetBasicOption]
  owncommand[] [. Command_GetBasicOption]
  owncommand[ AdminName ]  
  validation [. Lifecycle_GetValidationBasicOption]
  validation[] [. Lifecycle_GetValidationBasicOption]
  validation[ AdminName ] [. Lifecycle_GetValidationBasicOption]
  holderaccess[ Lifecycle_StageAccessOption ]  
  useraccess[ AdminName , Lifecycle_StageAccessOption ]  
  access[Lifecycle_StageAccessOption ]  


KEYWORDs
access check if the framework user has access to the specified operation at this stage
addrecent if selected, objects at this stage will be added to the user recent list when opened
assignment user roles enabled for specific action(s)
autoprogress objects are automatically promoted to the next stage when all requirements are satisfied
autoreset all validations are automatically resetted when the object assumes the current stage
command contextual menu command(s) available for this stage of the object lifecycle
community operations permitted to all application users (if generally enabled in the user definition)
description the stage description
event event associated to a check or action trigger
history specific operations activated for user action registration log
holder operations permitted to the object holder
holderaccess check if the object holder has access to the specified operation at this stage
image local path for the stage icon to upload
imagedata base64 code for the stage icon
name the stage name
owncommand contextual menu command(s) available specifically for this stage of the object lifecycle
program trigger program associated to a specific event
revisionable set if the object is revisionable when reaches this stage
stagefork the target stage for a object promotion action
team user groups enabled for specific action(s)
user specific user enabled for specific action(s)
useraccess check if the specific user has access to the operation
validation condition(s) that must be satisfied to promote the object state to another stage
workflow workflow associated to a specific event (starts automatically)

 

lifecycle - stage - validation
Lifecycle_StageValidationList
validation AdminName stagefork AdminName { Lifecycle_StageValidation }
       
    Lifecycle_StageValidation
    validate AdminActor {   AdminActor }
    refuse AdminActor {   AdminActor }
    ignore AdminActor {   AdminActor }

Lifecycle_StageValidationModList
validation  add  AdminName stagefork AdminName { Lifecycle_StageValidation }
validation  change AdminName [name AdminName] [stagefork AdminName]
   { Lifecycle_StageModValidation }
validation  remove  AdminName
       
    Lifecycle_StageModValidation
    validate Edit_Operator AdminActor { Edit_Operator AdminActor }
    refuse Edit_Operator AdminActor { Edit_Operator AdminActor }
    ignore Edit_Operator AdminActor { Edit_Operator AdminActor }

Lifecycle_GetValidationBasicOption
{ Lifecycle_GetValidationBasicToken [as IDENTIFIER] { Lifecycle_GetValidationBasicToken [as       IDENTIFIER]}}
Lifecycle_GetValidationBasicToken [as IDENTIFIER]
   
  Lifecycle_GetValidationBasicToken
  name  
  stagefork  
  validate  
  refuse  
  ignore  
  access[ validate ]  
  access[ refuse ]  
  access[ ignore ]  


KEYWORDs
access check if the framework user has access to the specified validation action
ignore positive result but not evaluated in detail / list of actors enabled to ignore the validation
name the validation name
refuse negative evaluation / list of actors enabled to refuse the validation
stagefork the target stage for a object promotion action
validate positive evaluation / list of actors enabled to validate the validation

 

SAMPLES

lifecycle define LC01 description "My LC1" defaultfiletype "FT02" revisionrule "01,02..,99" filespace FS0
class CL02 CL03 filetype FT03 !hidden

     stage "InWork" description "first stage" image "\Images\IW.gif" autoprogress
     program PRG01 event refuse action
     history create , revise , changename
     access holder fileput, addlinkto , create
     community fileget , filerename , regress
     user "name.surname" addlinkfrom
     team TM1 destroy
     assignment AS01 edit ,read

     stage 'Undereview' description "second stage" image "\Images\UR.gif" !autoprogress
     program PRG02 event ignore check
     history changeholder , edit
     access holder everything
     community changelifecycle
     user User2 changename
     team TM2 removelinkto , lock
     assignment AS02 execute ,read ;


lifecycle define LC02 description "My LC 2" defaultfiletype "FT03" revisionrule "01,02..,99" filespace FS0
class CL02 CL03 filetype FT03 !hidden
     stage InWork description "1st state " image "\Images\44.gif" autoprogress
     stage Undereview description "2nd state" image "\Images\46.gif" !autoprogress ;

lifecycle edit LC02 description "LC02 description" image "\Images\58.gif" revisionrule "01,02,03,..,99" hidden filespace remove FT03 class add CL01 remove CL03;

lifecycle edit LC02 stage addbefore "InWork" define 'RCT'
     description "new 2nd stage"
     program add PRG01 event refuse action
     history changeholder , edit
     access holder nothing
     community changelifecycle
     user "User3" changename
     user User5 edit , read
     team TM4 removelinkto , lock
     team 'TM3' unlock
     assignment AS01 execute ,read ;


lifecycle edit "LC02" stage change "RCT"
     validation add VAL1 stagefork Undereview
          validate add user "name.surname" add user User2 add team "TM4" add assignment "AS01"
          refuse add user "name.surname" add user User3 add team "TM3" add assignment "AS02"
          ignore add user User5 add user User4 add team "TM2" add team "TM1" add assignment "AS02"
     validation add VAL2 stagefork Undereview
          validate add user "name.surname" add user User4 add team "TM1" add assignment "AS01"
          refuse add user User2 add team "TM2"
          ignore add user User5 add user User2 add team "TM3" add team "TM1" add assignment "AS02";

lifecycle edit LC02 stage change Undereview
      validation add VAL1
           validate add user "name.surname"
      validation change VAL1 stagefork InWork
           ignore add team TM1 ;

lifecycle show LC02 get { name description defaultfiletype.{ name mimetype} } token { "|" ";" "," };

lifecycle show 'LC02' get { name filetype filetype[FT02] filetype[].{ name mimetype} } token xml;

lifecycle show LC02 get { stage[RCT].validation[VAL1].{ name ignore access[ignore] } stage.{ history autoprogress command } } 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