You can reference my code.
local procedure RunReceiptVoucher(AsLump: Boolean)
var
ReceiptVoucher: Report "DIC Receipt Voucher";
GenJnlPostPreview: Codeunit "Gen. Jnl.-Post Preview";
PaymentRegistrationMgt: Codeunit "Payment Registration Mgt.";
ErrorMessageMgt: Codeunit "Error Message Management";
ErrorMessageHandler: Codeunit "Error Message Handler";
PostingPreviewEventHandler: Codeunit "Posting Preview Event Handler";
RecRef: RecordRef;
ErrorMsg: Text[250];
begin
ErrorMessageMgt.Activate(ErrorMessageHandler);
BindSubscription(PaymentRegistrationMgt);
PaymentRegistrationMgt.SetPreviewContext(AsLump);
GenJnlPostPreview.SetContext(PaymentRegistrationMgt, Rec);
IF NOT GenJnlPostPreview.Run() AND GenJnlPostPreview.IsSuccess() THEN begin
GenJnlPostPreview.GetPreviewHandler(PostingPreviewEventHandler);
PostingPreviewEventHandler.GetEntries(Database::"G/L Entry", RecRef);
ReceiptVoucher.InitializeForPaymentRegistration(RecRef);
ReceiptVoucher.Run();
end else begin
ErrorMessageMgt.GetLastError(ErrorMsg);
Error(ErrorMsg);
end;
end;