Spread by Payline Process
Use the following steps to control benefit spreading by a pay line when there is only one HR record and multiple distributions.
HRRQEM - Populate the misc field in the distribution window to misc 1 of PYUPEP.
HRPYPA, Distribution tab, Misc column - Assign a code (for example, NOBENE) to represent where you desire benefits to NOT spread to on the distribution window.
Run Sendpay.
Check PYUPEP, Vectors/Misc Values tab, Miscellaneous Codes 1 field to confirm NOBENE value transfer over from HRPYPA.
Add calc code to any benefits that should not spread to the unwanted pay lines:
NVAR0 := 0
NVAR1 := 0
NVAR2 := 0
NVAR3 := 0
NVAR5 := 0
NVAR9 := 0
NVAR8 := 0
<<First determine effort of pay lines that do NOT have the NOBENE misc code>>
DO
NVAR9 := NVAR9 + 1
MSCX.STATUS := "FLUSH"
LOAD(PYPX.CLS, NVAR9)
IF MSCX.STATUS = "FAILED"
GOTO LABEL2
ENDIF
<<Code from HRRQEM>>
CVAR5 := PYPX.MSCCHR{1}
IF CVAR5 <> "NOBENE"
NVAR8 := PYPX.EFFORT + NVAR8 <<Ttl effort>>
ENDIF
LABEL2
UNTIL MSCX.STATUS = "FAILED"
<<Another loop to assign the full amt * the new effort calculated above in nvar8>>
CVAR5 := " "
NVAR5 := ECNT.AMT
DO
NVAR0 := NVAR0 + 1
MSCX.STATUS := "FLUSH"
LOAD(PYPX.CLS, NVAR0)
IF MSCX.STATUS = "FAILED"
GOTO LABEL1
ENDIF
<<Code from HRRQEM>>
CVAR5 := PYPX.MSCCHR{1}
IF CVAR5 <> "NOBENE"
NVAR9 := PYPX.EFFORT/NVAR8
NVAR2 := ECNT.AMT * NVAR9
ROUND2(NVAR2)
NVAR1 := NVAR1 + NVAR2
ROUND2(NVAR1)
PYPX.SPRVAL := NVAR2
IF CNTD.VALDS{10} = "DEBUG"
WARN("TOT EFFORT=",NVAR8)
WARN("PY EFFORT=",PYPX.EFFORT)
WARN("APPOR EFFORT",NVAR9)
WARN("APPOR AMT",NVAR2)
WARN("PYPX.SPRVAL=",PYPX.SPRVAL)
WARN("RUNNING CNT=",NVAR1)
ENDIF
ENDIF
LABEL1
UNTIL MSCX.STATUS = "FAILED"
IF CNTD.VALDS{10} = "DEBUG"
WARN("USING EFFORT",NVAR8)
WARN("ECNTAMT", NVAR5)
WARN("FINAL AMT", NVAR1)
ENDIF
6. Verify in PYUPPH that the full amount of the contribution spread only to the pay lines without the NOBENE.