SwissSalary | Publisher Events |
Task #6937 und #10748 | 5058.000 1.)Come funzionano gli eventi?
2.)A partire da quale versione sono disponibili gli eventi?
3.)I casi di applicazione che SwissSalary ha pubblicato I partner potranno anche programmare un subscriber-event che aspetta un publisher-event pubblicato per poi modificarlo. Un subscriber permette ai partner di entrare nella funzionalità centrale dell’applicazione senza dover riprendere le tradizionali modifiche dei codici. -Caso d’applicazione al conteggio salario adattato Salvare il conteggio salario adattato in PDF Inviare a Direct il conteggio salario adattato -Caso d’applicazione al certificato di salario adattato Salvare certificato di salario adattato in PDF Inviare il certificato di salario adattato a Direct
4.)Esempi di codici per subscriber-events [EventSubscriber(ObjectType::Codeunit, Codeunit::"SwS Bulk Report Management", 'OnBeforeSavePaycheckAsPdf', '', false, false)] local procedure HandleOnBeforeSavePaycheckAsPdf(pPayrollHead: Record "SwS Payroll Head"; pReportID: Integer; pReportParams: Record "SwS Working Table"; var pDescription: Text[1024]; var pHandled: Boolean; var pPaycheckTempBlob: Record "SwS TempBlob") begin SaveCustomPaycheckAsPdf(pPayrollHead, pReportParams, pPaycheckTempBlob, pDescription); pHandled := true; end; local procedure SaveCustomPaycheckAsPdf(pPayrollHead: Record "SwS Payroll Head"; pReportParams: Record "SwS Working Table" temporary; var pPaycheckTempBlob: Record "SwS TempBlob"; var pDescription: Text[1024]) var CustomReport: Report "SwS Custom Paycheck"; Employee: Record "SwS Employee"; PayrollHeadWithNoFilters: Record "SwS Payroll Head"; FileTempBlobOutStream: OutStream; begin // Template for custom paycheck report if (pPayrollHead."Payroll No." = 0) or (pPayrollHead."Employee No." = '') then Error('Kein Lohnlauf gefunden. Fehlercode %1', 1005);
Clear(CustomReport); CustomReport.SetTableView(PayrollHeadWithNoFilters); // Set all user specific filters on DataItem back to empty CustomReport.UseRequestPage(false); CustomReport.SetReportParams(pReportParams); CustomReport.SetSinglePaycheckFilter(pPayrollHead."Payroll No.", pPayrollHead."Employee No.");
Clear(FileTempBlobOutStream); pPaycheckTempBlob.Blob.CreateOutStream(FileTempBlobOutStream); CustomReport.SaveAs('', REPORTFORMAT::Pdf, FileTempBlobOutStream);
Employee.Get(pPayrollHead."Employee No.");
pDescription := 'Lohnabrechnung Custom'; end;
5.)Utilizzare Microsoft Event-Publisher per sostituire i richiami delle relazioni local procedure HandleOnAfterSubstitueReport(ReportId: Integer; var NewReportId: Integer) begin IF ReportId = REPORT::"SwS Paycheck" THEN NewReportId := REPORT::"SwS Custom Paycheck"; end; |