Description
Actions to take after writing current instance to the database, and before final commit of the transaction.
Use the field tc_status to test the status of the updated records:
'' = unchanged
'N' = new
'C' = changed
'D' = deleted
Parameters
oiReturnStatus | output | integer | |
Internal usage
unused
program code (program/bbusinessrelation.p)
<ANCESTOR-CODE>
/* ================================================================= */
/* Replicate address data to the emp_mstr table. */
/* Not needed for create as this will happen on create of employee. */
/* Must be run from PostSave as BMfgEmployee reads address data from */
/* the database. */
/* ================================================================= */
empty temp-table tEmployeeReplicate.
for each tAddress where
tAddress.tcAddressTypeCode = {&ADDRESSTYPECODESYSTEM-HEADOFFICE} and
tAddress.tc_Status = "C" on error undo, throw:
<Q-72 run EmployeeByBusinessRelationID (all) (Read) (NoCache)
(input 0, (CompanyId)
input tAddress.BusinessRelation_ID, (BusinessRelationId)
output dataset tqEmployeeByBusinessRelationID) in BEmployee>
for each tqEmployeeByBusinessRelationID on error undo, throw:
create tEmployeeReplicate.
assign tEmployeeReplicate.BusinessRelation_ID = tAddress.BusinessRelation_ID
tEmployeeReplicate.Employee_ID = tqEmployeeByBusinessRelationID.tiEmployee_ID
tEmployeeReplicate.EmployeeCode = tqEmployeeByBusinessRelationID.tcEmployeeCode
tEmployeeReplicate.EmployeeDepartmentCode = tqEmployeeByBusinessRelationID.tcEmployeeDepartmentCode
tEmployeeReplicate.EmployeeEndDate = tqEmployeeByBusinessRelationID.ttEmployeeEndDate
tEmployeeReplicate.EmployeeIsActive = tqEmployeeByBusinessRelationID.tlEmployeeIsActive
tEmployeeReplicate.EmployeeIsActiveExpNotes = tqEmployeeByBusinessRelationID.tlEmployeeIsActiveExpNotes
tEmployeeReplicate.EmployeeIsActiveTimeReg = tqEmployeeByBusinessRelationID.tlEmployeeIsActiveTimeReg
tEmployeeReplicate.EmployeeIsExternal = tqEmployeeByBusinessRelationID.tlEmployeeIsExternal
tEmployeeReplicate.EmployeeIsUser = tqEmployeeByBusinessRelationID.tlEmployeeIsUser
tEmployeeReplicate.EmployeeJobTitle = tqEmployeeByBusinessRelationID.tcEmployeeJobTitle
tEmployeeReplicate.EmployeeStartDate = tqEmployeeByBusinessRelationID.ttEmployeeStartDate
tEmployeeReplicate.ActivityCode_ID = tqEmployeeByBusinessRelationID.tiActivityCode_ID
tEmployeeReplicate.Company_ID = tqEmployeeByBusinessRelationID.tiCompany_ID
tEmployeeReplicate.CostCentre_ID = tqEmployeeByBusinessRelationID.tiCostCentre_ID
tEmployeeReplicate.Creditor_ID = tqEmployeeByBusinessRelationID.tiCreditor_ID
tEmployeeReplicate.Currency_ID = tqEmployeeByBusinessRelationID.tiCurrency_ID
tEmployeeReplicate.ExpenseCode_ID = tqEmployeeByBusinessRelationID.tiExpenseCode_ID
tEmployeeReplicate.Project_ID = tqEmployeeByBusinessRelationID.tiProject_ID
tEmployeeReplicate.Usr_ID = tqEmployeeByBusinessRelationID.tiUsr_ID
tEmployeeReplicate.tc_Rowid = tqEmployeeByBusinessRelationID.tc_rowid.
release tEmployeeReplicate.
end.
end.
if can-find (first tEmployeeReplicate)
then do:
<I-52 {bFcStartAndOpenInstance
&CLASS = "BMfgEmployee"}>
<M-90 run ApiReplicateFromFinancials
(input tEmployeeReplicate (tMfgEmployee),
input no (ilIsKeepInstancesOpen),
output viFcReturnSuper (oiReturnStatus)) in BMfgEmployee>
<I-64 {bFcCloseAndStopInstance
&CLASS = "BMfgEmployee"}>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
end.
finally:
empty temp-table tEmployeeReplicate.
end finally.