opPrimeKey | output | longchar | Primary Key field value of loaded record(s). Keys are chr(4) separated. Key fields are chr(2) separated. |
oiReturnStatus | output | integer | Return status of the method. |
if oiReturnStatus = 0 then oiReturnStatus = -98. for each t_sRptRequest on error undo, return: assign t_sRptRequest.RptRequestType = "V". if vcUserLogin = "facdef" and t_sRptRequest.RptRequestName begins "LASTUSED_" then assign t_sRptRequest.RptRequestName = {&STOREDSEARCH-FACTORY-DEFAULT}. /* ================================================================= */ /* Lookup variant by name */ /* ================================================================= */ if t_sRptRequest.RptRequestName = "" or t_sRptRequest.RptRequestName = ? then do: vcMsg = #T-3'Variant name is mandatory.':255(9193)T-3#. <M-4 run SetMessage (input vcMsg (icMessage), input '' (icArguments), input 'tRptRequest.RptRequestName' (icFieldName), input '' (icFieldValue), input 'E' (icType), input 3 (iiSeverity), input t_sRptRequest.tc_Rowid (icRowid), input 'BLF-160':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> oiReturnStatus = -1. return. end. if t_sRptRequest.tcBusActivityCode = "" or t_sRptRequest.tcBusActivityCode = ? or t_sRptRequest.tcBusComponentCode = "" or t_sRptRequest.tcBusComponentCode = ? then do: <Q-5 run DefaultVariantPrim (all) (Read) (NoCache) (input 0, (RequestID) input t_sRptRequest.RptRequestName, (RequestName) output dataset tqDefaultVariantPrim) in BReportRequestBase > find first tqDefaultVariantPrim no-error. if available tqDefaultVariantPrim then viRQID = tqDefaultVariantPrim.tiRptRequest_ID. else viRQID = -1. end. else do: <Q-6 run RptRequestPrim (all) (Read) (NoCache) (input 0, (RequestID) input t_sRptRequest.RptRequestName, (RequestName) input t_sRptRequest.tcBusComponentCode, (ComponentName) input t_sRptRequest.tcBusActivityCode, (ReportName) input 'V', (RequestType) output dataset tqRptRequestPrim) in BReportRequestBase > find first tqRptRequestPrim no-error. if available tqRptRequestPrim then viRQID = tqRptRequestPrim.tiRptRequest_ID. else viRQID = -1. end. if viRQID = -1 then viFcReturnSuper = -4. else do: <M-7 run DataLoad (input '' (icRowids), input string(viRQID) (icPkeys), input '' (icObjectIds), input '' (icFreeform), input yes (ilKeepPrevious), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> if viFcReturnSuper >= 0 then find first tRptRequest where tRptRequest.RptRequest_ID = viRQID. end. if viFcReturnSuper = -4 then do: /* ================================================================= */ /* When object not found or in create mode, create it. */ /* ================================================================= */ <M-8 run AddDetailLine (input 'RptRequest' (icTable), input '' (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> /* should be available */ if viFcReturnSuper >= 0 and not available tRptRequest then find tRptRequest where tRptRequest.tc_Rowid = vcLastCreatedRowid. /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ assign t_sRptRequest.tc_Status = "N":U. end. else do: /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ assign t_sRptRequest.tc_Status = "C":U. end. if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper. if viFcReturnSuper < 0 then return. /* ================================================================= */ /* Delete existing detail */ /* ================================================================= */ for each tRptRequestCBF where tRptRequestCBF.tc_ParentRowid = tRptRequest.tc_Rowid: assign tRptRequestCBF.tc_Status = "D":U. end. /* ================================================================= */ /* Update / add detail */ /* ================================================================= */ for each t_sRptRequestCBF where t_sRptRequestCBF.tc_ParentRowid = t_sRptRequest.tc_Rowid: find first tRptRequestCBF where tRptRequestCBF.tc_ParentRowid = tRptRequest.tc_Rowid and tRptRequestCBF.RptRequestCBF = t_sRptRequestCBF.RptRequestCBF and tRptRequestCBF.tc_Status = "D" no-error. if available tRptRequestCBF then assign t_sRptRequestCBF.tc_Status = "C":U. else do: <M-9 run AddDetailLine (input 'RptRequestCBF' (icTable), input tRptRequest.tc_Rowid (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper. if viFcReturnSuper < 0 then return. /* should be available */ if not available tRptRequestCBF then find tRptRequestCBF where tRptRequestCBF.tc_Rowid = vcLastCreatedRowid. assign t_sRptRequestCBF.tc_Status = "N":U. end. /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sRptRequestCBF.RptRequestCBF_ID = tRptRequestCBF.RptRequestCBF_ID /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ t_sRptRequestCBF.RptRequest_ID = tRptRequestCBF.RptRequest_ID t_sRptRequestCBF.tc_Rowid = tRptRequestCBF.tc_Rowid t_sRptRequestCBF.tc_ParentRowid = tRptRequest.tc_Rowid. end. /* ================================================================= */ /* Delete existing detail */ /* ================================================================= */ for each tRptRequestFilter where tRptRequestFilter.tc_ParentRowid = tRptRequest.tc_Rowid: assign tRptRequestFilter.tc_Status = "D":U. end. /* ================================================================= */ /* Update / add detail */ /* ================================================================= */ for each t_sRptRequestFilter where t_sRptRequestFilter.tc_ParentRowid = t_sRptRequest.tc_Rowid: find first tRptRequestFilter where tRptRequestFilter.tc_ParentRowid = tRptRequest.tc_Rowid and tRptRequestFilter.RptRequestFilterSequence = t_sRptRequestFilter.RptRequestFilterSequence and tRptRequestFilter.tc_Status = "D" no-error. if available tRptRequestFilter then assign t_sRptRequestFilter.tc_Status = "C":U. else do: <M-10 run AddDetailLine (input 'RptRequestFilter' (icTable), input tRptRequest.tc_Rowid (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper. if viFcReturnSuper < 0 then return. /* should be available */ if not available tRptRequestFilter then find tRptRequestFilter where tRptRequestFilter.tc_Rowid = vcLastCreatedRowid. assign t_sRptRequestFilter.tc_Status = "N":U. end. /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sRptRequestFilter.RptRequestFilter_ID = tRptRequestFilter.RptRequestFilter_ID /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ t_sRptRequestFilter.RptRequest_ID = tRptRequestFilter.RptRequest_ID t_sRptRequestFilter.tc_Rowid = tRptRequestFilter.tc_Rowid t_sRptRequestFilter.tc_ParentRowid = tRptRequest.tc_Rowid. end. /* ================================================================= */ /* Delete existing detail */ /* ================================================================= */ for each tRptRequestmail where tRptRequestmail.tc_ParentRowid = tRptRequest.tc_Rowid: assign tRptRequestmail.tc_Status = "D":U. end. /* ================================================================= */ /* Update / add detail */ /* ================================================================= */ for each t_sRptRequestmail where t_sRptRequestmail.tc_ParentRowid = t_sRptRequest.tc_Rowid: find first tRptRequestmail where tRptRequestmail.tc_ParentRowid = tRptRequest.tc_Rowid and tRptRequestmail.tcRoleName = t_sRptRequestmail.tcRoleName and tRptRequestmail.tc_Status = "D" no-error. if available tRptRequestmail then assign t_sRptRequestmail.tc_Status = "C":U. else do: <M-11 run AddDetailLine (input 'RptRequestMail' (icTable), input tRptRequest.tc_Rowid (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper. if viFcReturnSuper < 0 then return. /* should be available */ if not available tRptRequestMail then find tRptRequestMail where tRptRequestMail.tc_Rowid = vcLastCreatedRowid. assign t_sRptRequestmail.tc_Status = "N":U. end. /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sRptRequestmail.RptRequestMail_ID = tRptRequestmail.RptRequestMail_ID /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ t_sRptRequestmail.RptRequest_ID = tRptRequestmail.RptRequest_ID t_sRptRequestmail.tc_Rowid = tRptRequestmail.tc_Rowid t_sRptRequestmail.tc_ParentRowid = tRptRequest.tc_Rowid. end. /* ================================================================= */ /* Update / add detail */ /* ================================================================= */ vlOneRecord = yes. for each t_sRptRequestVariant where t_sRptRequestVariant.tc_ParentRowid = t_sRptRequest.tc_Rowid: if vlOneRecord then do: vlOneRecord = no. find first tRptRequestVariant where tRptRequestVariant.tc_ParentRowid = tRptRequest.tc_Rowid no-error. if not available tRptRequestVariant then do: <M-1 run AddDetailLine (input 'RptRequestVariant' (icTable), input tRptRequest.tc_Rowid (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper. if viFcReturnSuper < 0 then return. /* should be available */ if not available tRptRequestVariant then find tRptRequestVariant where tRptRequestVariant.tc_Rowid = vcLastCreatedRowid. end. if tRptRequestVariant.tc_Status = "N":U then assign t_sRptRequestVariant.tc_Status = "N":U. /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sRptRequestVariant.RptRequestVariant_ID = tRptRequestVariant.RptRequestVariant_ID /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ t_sRptRequestVariant.RptRequest_ID = tRptRequest.RptRequest_ID t_sRptRequestVariant.tc_Rowid = tRptRequestVariant.tc_Rowid t_sRptRequestVariant.tc_ParentRowid = tRptRequest.tc_Rowid. end. else do: <M-2 run SetMessage (input 'ambiguous reportvariant.' (icMessage), input '' (icArguments), input '' (icFieldName), input '' (icFieldValue), input 'E' (icType), input 3 (iiSeverity), input '' (icRowid), input 'BLF-159':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BReportVariant> oiReturnStatus = -1. return. end. end. /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sRptRequest.RptRequest_ID = tRptRequest.RptRequest_ID /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ t_sRptRequest.tc_Rowid = tRptRequest.tc_Rowid t_sRptRequest.tc_ParentRowid = "" opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4)) + string(tRptRequest.RptRequest_ID). end. if oiReturnStatus = -98 then oiReturnStatus = 0.