project BLF > class BWorkObject > method CreateDraftWorkObject
Description
Create a work object based on a draft instance
Parameters
icBusinessComponent | input | character | Business Component |
iiInstanceId | input | integer | id |
icDocumentName | input | character | DocumentName |
icCreatorUsrLogin | input | character | |
icObjectReference | input | character | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/bworkobject.p)
/* Get a list of everybody with Create activity on the Business Component in the current company */
<Q-12 run BusCompByActivityUserComp (all) (Read) (NoCache)
(input icBusinessComponent, (BusComponentCode)
input 'Create', (BusActivityCode)
input ?, (UsrName)
input ?, (UsrLogin)
input viCompanyId, (CompanyID)
input ?, (UsrID)
output dataset tqBusCompByActivityUserComp) in BBusinessComponent >
if not can-find(first tqBusCompByActivityUserComp where
tqBusCompByActivityUserComp.tcBusComponentCode = icBusinessComponent and
tqBusCompByActivityUserComp.tcBusActivityCode = "Create" and
tqBusCompByActivityUserComp.tiCompany_ID = viCompanyId)
then do:
<M-13 run SetMessage
(input trim(#T-8'No users found with Create privileges on component $1 in entity $2.':255(998716594)T-8#) (icMessage),
input icBusinessComponent + chr(2) + vcCompanyCode (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-224':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BWorkObject>
assign oiReturnStatus = -1.
return.
end.
<M-4 run DataNew (output viFcReturnSuper (oiReturnStatus)) in BWorkObject>
if viFcReturnSuper < 0 or
oiReturnStatus = 0
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
find first tqBusCompByActivityUserComp where
tqBusCompByActivityUserComp.tcBusComponentCode = icBusinessComponent and
tqBusCompByActivityUserComp.tcBusActivityCode = "Create" and
tqBusCompByActivityUserComp.tiCompany_ID = viCompanyId
no-error.
assign tWorkObject.WorkObjectInternal_ID = - iiInstanceId
tWorkObject.WorkObjectInstruction = icDocumentName
tWorkObject.WorkObjectIsInternalCtrl = yes
tWorkObject.WorkObjectIsReturnToSender = no
tWorkObject.WorkObjectIsSendMail = no
tWorkObject.tcWorkObjectInternalRef = icObjectReference
tWorkObject.Role_ID = 0
tWorkObject.BusComponent_ID = tqBusCompByActivityUserComp.tiBusComponent_ID
tWorkObject.tcBusComponentCode = icBusinessComponent
tWorkObject.tcBusActivityCode = "Create"
tWorkObject.BusActivity_ID = tqBusCompByActivityUserComp.tiBusActivity_ID.
<Q-8 run UserPrim (all) (Read) (NoCache)
(input ?, (UsrId)
input icCreatorUsrLogin, (UsrLogin)
output dataset tqUserPrim) in BUser >
find first tqUserPrim where
tqUserPrim.tcUsrLogin = icCreatorUsrLogin
no-error.
if available tqUserPrim
then assign tWorkObject.CreatorUsr_ID = tqUserPrim.tiUsr_ID
tWorkObject.tcCreatorUsrLogin = tqUserPrim.tcUsrLogin.
for each tqBusCompByActivityUserComp where
tqBusCompByActivityUserComp.tcBusComponentCode = icBusinessComponent and
tqBusCompByActivityUserComp.tcBusActivityCode = "Create" and
tqBusCompByActivityUserComp.tiCompany_ID = viCompanyId:
if can-do(tWorkObject.tcTo, tqBusCompByActivityUserComp.tcUsrLogin)
then next.
if tWorkObject.tcTo <> ""
then assign tWorkObject.tcTo = tWorkObject.tcTo + ",".
assign tWorkObject.tcTo = tWorkObject.tcTo + tqBusCompByActivityUserComp.tcUsrLogin.
end.
/* No validations */
assign vlFcDataValidated = yes.
<M-5 run DataSave (output viFcReturnSuper (oiReturnStatus)) in BWorkObject>
if viFcReturnSuper < 0 or
oiReturnStatus = 0
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.