JasperReports ব্যবহার করে আপনি রিপোর্টগুলি নির্দিষ্ট সময় অনুযায়ী scheduled distribution করতে পারেন এবং সেগুলি email-এর মাধ্যমে ব্যবহারকারীদের কাছে পাঠাতে পারেন। এটি একটি অত্যন্ত উপকারী ফিচার, বিশেষ করে যখন আপনি নিয়মিত রিপোর্ট বা automated report delivery করতে চান। এই টপিকে, আমরা দেখবো কিভাবে scheduled report distribution এবং email integration সেটআপ করা যায় JasperReports-এর সাথে।
1. Scheduled Report Distribution in JasperReports
Scheduled Report Distribution এর মাধ্যমে আপনি রিপোর্ট নির্দিষ্ট সময়ে বা নির্দিষ্ট সময়সীমার মধ্যে অটোমেটিক্যালি জেনারেট এবং পাঠাতে পারবেন। এটি সাধারণত Jaspersoft Server বা JasperReports Server ব্যবহার করে বাস্তবায়ন করা হয়, যা report scheduling এবং automatic report distribution ফিচার সমর্থন করে।
Jaspersoft Server - Scheduled Report Setup:
- Jaspersoft Server ইনস্টল এবং কনফিগার করুন:
- Jaspersoft Server একটি web-based application যেখানে আপনি রিপোর্ট তৈরি, কাস্টমাইজ, এবং শিডিউল করতে পারেন।
- Report Scheduling:
- Jaspersoft Server-এ রিপোর্ট শিডিউল করার জন্য Repository ব্যবহার করা হয়। রিপোর্ট শিডিউল করতে নিচের পদক্ষেপগুলো অনুসরণ করতে হয়:
- Login to Jaspersoft Server:
- Server ইন্টারফেসে লগইন করুন, এবং যে রিপোর্টটি শিডিউল করতে চান তা নির্বাচন করুন।
- Schedule Report:
- রিপোর্টের উপর ডান ক্লিক করে Schedule অপশন নির্বাচন করুন।
- একটি Scheduling Wizard খুলবে, যেখানে আপনি সময়, ফ্রিকোয়েন্সি, এবং আউটপুট ফরম্যাট নির্ধারণ করতে পারবেন।
- আপনি রিপোর্টটির আউটপুট ফরম্যাট যেমন PDF, Excel বা CSV নির্বাচন করতে পারেন।
- Email Notification:
- শিডিউল করা রিপোর্টের জন্য email notifications কনফিগার করুন, যাতে রিপোর্টটি সফলভাবে তৈরি হলে এটি নির্দিষ্ট ইমেইল ঠিকানায় পাঠানো হয়।
Example of Scheduling a Report in Jaspersoft Server:
- Choose the Report: যে রিপোর্টটি আপনি শিডিউল করতে চান তা নির্বাচন করুন।
- Set Time and Frequency: রিপোর্টটি কবে এবং কতবার শিডিউল হবে তা নির্বাচন করুন। আপনি একবারের জন্য, দৈনিক, সাপ্তাহিক, বা মাসিক ভিত্তিতে শিডিউল করতে পারেন।
- Define Output Format: রিপোর্টের আউটপুট ফরম্যাট নির্ধারণ করুন (যেমন PDF, Excel, CSV)।
- Configure Email Settings: রিপোর্ট তৈরি হওয়ার পর এটি কোন ইমেইল ঠিকানায় পাঠানো হবে, তা কনফিগার করুন।
- Enable Email Attachments: রিপোর্টের আউটপুটটি email attachment হিসেবে পাঠানোর জন্য সেট করুন।
2. Email Integration for Report Distribution
JasperReports-এ রিপোর্টগুলি ইমেইল করার জন্য JavaMail API ব্যবহার করা হয়, যা ইমেইল পাঠানোর প্রক্রিয়াকে সহজ করে তোলে। আপনি JavaMail ব্যবহার করে নির্দিষ্ট ইমেইল ঠিকানায় রিপোর্ট আউটপুট পাঠাতে পারেন।
Steps to Integrate Email with JasperReports:
Add JavaMail Dependency: প্রথমে আপনার pom.xml ফাইলে JavaMail API এর ডিপেনডেন্সি যোগ করুন (যদি আপনি Maven ব্যবহার করেন):
<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency>- Send Email with JasperReport Output: রিপোর্ট জেনারেট হওয়ার পর সেটিকে ইমেইল আউটপুটে পাঠানোর জন্য আপনি JavaMail API ব্যবহার করতে পারেন।
Example of Sending Email with JasperReports Output:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import net.sf.jasperreports.engine.*;
public class EmailReport {
public static void sendEmail(String to, String subject, String body, String reportPath) {
// SMTP server configuration
String host = "smtp.example.com";
String from = "sender@example.com";
String password = "yourpassword";
Properties properties = System.getProperties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
// Authenticate the sender
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
});
try {
// Create a MimeMessage
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
// Create the body of the email
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText(body);
// Create the attachment part
MimeBodyPart attachmentPart = new MimeBodyPart();
attachmentPart.attachFile(reportPath);
// Combine text and attachment parts into a multipart message
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(textPart);
multipart.addBodyPart(attachmentPart);
message.setContent(multipart);
// Send the email
Transport.send(message);
System.out.println("Email sent successfully with the report attachment.");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void generateAndSendReport() throws JRException {
// Generate the report
JasperReport jasperReport = JasperCompileManager.compileReport("report.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
// Export the report to PDF
String reportPath = "report_output.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, reportPath);
// Send the email with the report attachment
sendEmail("recipient@example.com", "Your Scheduled Report", "Please find the attached report.", reportPath);
}
public static void main(String[] args) {
try {
generateAndSendReport();
} catch (JRException e) {
e.printStackTrace();
}
}
}
Explanation:
- JavaMail API: এখানে JavaMail API ব্যবহার করে ইমেইল পাঠানো হয়েছে।
- JasperReport Generation: JasperReport জেনারেট করার পর, JasperExportManager ব্যবহার করে এটি PDF আউটপুটে রেন্ডার করা হয়।
- Email with Attachment: তারপর, রিপোর্টটি ইমেইল আউটপুট হিসেবে attachment হিসাবে পাঠানো হচ্ছে।
3. Scheduled Report Distribution with Email Integration
আপনি JasperReports Server বা Jaspersoft Studio ব্যবহার করে রিপোর্ট শিডিউল করতে পারেন এবং সেই রিপোর্টটি নির্দিষ্ট সময় অনুযায়ী ইমেইল মাধ্যমে পাঠাতে পারেন। এই প্রক্রিয়াটি সাধারণত একটি automated workflow হিসেবে কাজ করে, যা প্রতিদিন বা প্রতি সপ্তাহে রিপোর্ট তৈরি এবং পাঠানোর জন্য ব্যবহার করা হয়।
Steps to Set Up Scheduled Report Distribution in JasperReports Server:
- Create Report: প্রথমে একটি রিপোর্ট তৈরি করুন এবং তারপরে এটি Jaspersoft Server এ আপলোড করুন।
- Schedule the Report: রিপোর্টটি শিডিউল করতে Scheduling Wizard ব্যবহার করুন।
- Email Configuration: রিপোর্ট সফলভাবে তৈরি হলে, সেটি ইমেইল মাধ্যমে নির্দিষ্ট ব্যবহারকারী বা গ্রুপে পাঠানোর জন্য Email Notification সেট করুন।
- Set Frequency: আপনি রিপোর্ট শিডিউল করার জন্য একবার, দৈনিক, সাপ্তাহিক, মাসিক বা অন্যান্য সময়সীমা নির্বাচন করতে পারেন।
- Scheduled Report Distribution: Jaspersoft Server ব্যবহার করে আপনি রিপোর্ট শিডিউল করতে পারেন এবং এটি নির্দিষ্ট সময় অনুসারে ইমেইল মাধ্যমে পাঠানো যেতে পারে।
- Email Integration: JavaMail API ব্যবহার করে আপনি রিপোর্টের আউটপুটকে ইমেইলে সংযুক্ত (attachment) হিসেবে পাঠাতে পারেন, যা PDF, Excel বা CSV ফরম্যাটে হতে পারে।
- Automation: রিপোর্টের শিডিউল এবং ইমেইল এক্সপোর্টিং অটোমেটিকালভাবে করার মাধ্যমে কার্যক্রম দ্রুত এবং দক্ষ করা যায়।
এই প্রক্রিয়াগুলি আপনাকে JasperReports ব্যবহার করে রিপোর্ট শিডিউলিং, শেয়ারিং এবং ইমেইল সিস্টেমের মাধ্যমে সম্পূর্ণ অটোমেশন সেটআপ করতে সাহায্য করবে।
Read more